Jenkins 배포 환경 구축
2023. 3. 11. 21:46
개발 지식/DevOps
0. 목표 및 테스트 환경 Jenkins 세팅 SSH를 통한 배포 dockerized 애플리케이션 배포 자동화 GCP 클라우드 서버를 통해 진행! CentOS로 진행 - Jenkins를 실행시킬 jenkins-test-1 - Docker 컨테이너를 띄울 worker-test-1 2개의 서버를 생성하였음 1. 관련 파일 설치 - wget, maven(Java 포함), git, docker 설치 sudo yum install wget sudo yum install maven sudo yum install git sudo yum install docker 2. Jenkins 설치 Jenkins 설치 시 패키지를 먼저 추가해 준 다음 설치를 진행해야 한다 sudo wget -O /etc/yum.repos.d/j..
간단한 Docker 환경 구축하기
2023. 3. 11. 18:44
개발 지식/DevOps
0. Docker 환경의 애플리케이션 실행 과정 Docker File 빌드 시 Docker Image가 생성됨. Docker Image를 저장소에 푸쉬하면 Docker Image가 저장소에 업로드 됨. 풀을 통해 Docker Image 다운로드 다운로드된 Docker Image를 런하여 컨테이너 실행 1. Docker File 작성 https://spring.io/guides/topicals/spring-boot-docker/ Spring | Home Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform. spring.io Spring Boot 에서 제공하는 샘플 코드를..
CPU bound Test
2023. 3. 8. 23:11
개발 지식/DevOps
1. 기본 용어 정의 Burst 어떤 현상이 짧은 시간 안에 집중적으로 일어나는 일 CPU Burst 프로세스가 CPU에서 명령을 실행하는 시간 I/O Burst 프로세스가 I/O(Input/Output) 를 요청한 뒤 기다리는 시간 CPU bound 프로세스 CPU burst가 많은 프로세스 주로 행렬 곱이나 고속 연산을 할 때 CPU 성능에 의해 작업 속도가 결정됨 ex) 머신러닝 프로그램 I/O bound 프로세스 CPU burst가 많은 프로세스 파일 쓰기, 디스크 작업, 네트워크 통신을 할 때 주로 나타남 작업(다른 시스템과 통신) 병목에 의해 작업 속도가 결정됨 ex) 백엔드 API 서버 2. CPU bound 애플리케이션 Hash 연산을 반복하여 CPU를 극단적으로 사용하는 애플리케이션을 통..
함께 자라기 - 3부 애자일
2022. 9. 1. 14:10
개발 서적/함께 자라기 - 애자일로 가는길
1. 애자일 애자일은 불확실성이 높은 프로젝트에 적합한 방법이다 애자일이 불확실성을 다루는 방식은 좀 더 짧은 주기로 더 일찍 피드백을 받고 더 다양한 사람으로부터 더 자주 그리고 더 일찍 피드백을 받는 것으로 정리할 수 있다 시대가 변하면서 불확실성이 낮은 프로젝트는 비즈니스적 가치가 없어지고 불확실성이 높은 프로젝트를 하는 것이 일반적이 됨에 따라 빠른 속도로 인기를 얻게 되었다 결과적으로 애자일은 서로의 업무를 공유하고 상호 검토하는 협력을 통해 불행항 일을 '또는' 조건에서 '그리고' 조건으로 바꾸게 한다 모든 사람이 통찰을 얻어야 업무를 개선할 수 있는게 아니라 한 사람이라도 통찰을 얻으면 그걸 공유해서 전체가 개선되는 것 이다 학습과 협력은 불확실성이 큰 상황에서 좋은 대응전략이 된다 애자일의..
함께 자라기 - 2부 함께
2022. 8. 29. 23:06
개발 서적/함께 자라기 - 애자일로 가는길
1. 소프트웨어 관리자의 개선 우선순위 조엘 테스트라는 개발팀 평가 테스트가 있다 소스 컨트롤을 사용하는가? 한 번에 빌드를 만들어낼 수 있는가? 일일 빌드를 만드는가? 버그 데이터베이스를 가지고 있는가? 새로운 코드를 작성하기 전에 버그를 고치는가? 최신 업데이트된 스케줄이 있는가? 스펙(제품 명세)이 있는가? 프로그래머가 조용한 작업환경에서 일하는가? 돈이 되는 한 최고의 툴을 사용하는가? 테스터가 있는가? 채용 면접 때 후보가 코드를 짜게 해보는가? 복도 사용성 테스트를 하는가? 조엘이 2000년에 작성한 블로그 글에서 소개된 이 테스트는 많은 인기를 얻었고, 그만큼 비판도 많이 받았다고 한다 이 12가지 항목에 "예"라고 대답하면 "완벽하다"라고 말한다 각 항목은 객관적으로 예/아니오 답이 나올 ..
함께 자라기 - 1부 자라기
2022. 8. 29. 20:25
개발 서적/함께 자라기 - 애자일로 가는길
1. 1만 시간의 법칙 - 안데쉬 에릭손 1만 시간 법칙에서 1만 시간은 '자신의 기량을 향상시킬 목적으로 반복적으로 하는 수련'을 한 시간을 일컫는다 안데쉬 에릭손은 그런 수련을 '의도적 수련' 이라고 정의했다 의도적 수련이 필요한 이유는 평생을 걷는다고 해서 또는 평생을 양치질을 한다고해서 점점 더 나아지는게 아니기 때문이다 목표를 가지고 피드백을 반영하는 것이 의도적 수련의 포인트이다 2. 자기계발과 복리의 비밀 더글라스 엥겔바트는 작업을 A, B, C 세가지 수준의 작업으로 구분했다 A작업. 원래 그 조직이 하기로 되어 있는 일 B작업. A 작업을 개선하는 일 (즉, A작업에서 시간과 품질을 개선하는 작업. 시스템과 프로세스 설계 등) C작업. B 작업을 개선하는 일 (즉, 개선 사이클 자체의 시..
[Study] 2022/08/16
2022. 8. 22. 00:17
개발 서적/클린코드
참여인원 (2명) 본인 wony - https://youn12.tistory.com/ 스터디 진행 방식 - 10~17 챕터 각자 정리한 내용 발표 - 챕터 별로 기억에 남았던 내용 및 느낀 점 논의 - 해당 내용들과 관련된 경험 논의 기억에 남는 내용 - 시스템 시스템에 대한 내용을 논의하다보니 디자인 패턴에 대한 학습이 많이 부족하다고 느낌 다음 스터디 주제 선정 시 반영하기로 함 - 응집도 공통적으로 가장 기억에 남았던 내용응집도 관련 내용을 기억하고 실무에 사용할 수 있도록 노력 - 객체지향 생활 체조 원칙 객체지향 생활 체조 원칙은 소트웍스 앤솔러지 책에서 다루고 있는 내용으로 객체지향 프로그래밍을 잘 하기 위한 9가지 원칙 규칙 1:한 메서드에 오직 한 단계의 들여 쓰기(indent)만 한다. ..
클린코드 - 17.냄새와 휴리스틱
2022. 8. 15. 20:28
개발 서적/클린코드
1. 주석 - 부적절한 정보 변경 이력 등의 주석은 적절하지 못하다 소스 코드 관리 시스템, 버그 추적 시스템, 이슈 추적 시스템 등 다른 시스템에서 저장하도록 맡기자 - 쓸모 없는 주석 주석은 빨리 낡는다 쓸모 없어질 주석은 달지 않는 편이 가장 좋으며 쓸모 없어진 주석은 재빨리 삭제하는 편이 좋다 - 중복된 주석 코드만으로 충분한 경우 중복된 주석을 달지 않는다 i++; // i 증가 - 성의 없는 주석 문법과 구두점을 올바로 사용하고 간결하고 명료하게 작성한다 - 주석 처리된 코드 얼마나 오래된 코드인지 중요한 코드인지 아닌지 알 길이 없어진다 정말 필요하다면 소스 코드 관리 시스템(형상 관리 시스템)에서 이전 버전을 가져와 사용하면된다 2. 환경 - 여러 단계로 빌드하는 경우 빌드는 간단히 한 단..
클린코드 - 15.JUnit 들여다보기 & 16.SerialDate 리팩터링
2022. 8. 13. 21:14
개발 서적/클린코드
1. JUnit 프레임워크 Junit은 자바 프레임워크 중에서 가장 유명하다 테스트 코드 역시 좋은 구조가 필요하다 오히려 테스트 코드는 더욱 읽기 편해야 한다 2. 보이스카우트 규칙 캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라 잘 짠 코드가 전부는 아니다 시간이 지나도 언제나 깨끗하게 유지해야 한다 한꺼번에 많은 시간과 노력을 투자해 코드를 정리할 필요가 없다 변수 이름 하나를 개선하고, 조금 긴 함수 하나를 분할하고, 약간의 중복을 제거하고, 복잡한 if 문 하나를 정리하면 충분하다 3. 결론 세상에 개선이 불필요한 모듈은 없다 코드를 처음보다 조금 더 깨끗하게 만드는 책임은 우리 모두에게 있다 마무리 느낀 점 15장과 16장은 대부분 코드를 통해 설명되어있어서 정리할 내용이 많지 않았다 이..
클린코드 - 14.점진적인 개선
2022. 8. 13. 20:54
개발 서적/클린코드
1. 깨끗한 코드 프로그래밍은 과학보다 공예에 가깝다 깨끗한 코드를 짜려면 먼저 지저분한 코드를 짠 뒤에 정리해야 한다는 의미다 2. 점진적으로 개선하라 프로그램을 망치는 가장 좋은 방법 중 하나는 개선이라는 이름 아래 구조를 크게 뒤집는 행위다 어떤 프로그램은 그저 그런 개선에서 결코 회복하지 못한다 개선 전과 똑같이 프로그램을 돌리기가 아주 어렵기 때문이다 변경 전후에 시스템이 똑같이 돌아간다는 사실을 확인하려면 언제든 실행 가능한 자동화된 테스트 슈트가 필요하다 단위 테스트와 인수 테스트를 활용하자 리팩터링을 하다보면 코드를 넣었다 뺐다 하는 사례가 아주 흔하다 단계적으로 조금씩 변경하며 매번 테스트를 돌려야 하므로 코드를 여기저기 옮길 일이 많아진다 리팩터링은 루빅 큐브 맞추기와 비슷하다 큰 목표..