목록전체 글 (51)

SRP (Single Responsibility Principle): 단일 책임 원칙"어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다."- 로버트 C. 마틴위의 그림과 같이 Man 클래스에 의존하고 있는 다양한 클래스들이 존재한다고 생각해 보자. 그림에서부터 확인이 가능하듯 Man 클래스에 부과된 역할과 책임이 너무 많기 때문에 남성의 표정이 그리 밝지 않다. 어느 날, 여자친구와 헤어질 경우 Man 클래스는 챙길 일 없는 기념일과 사랑한다고 말할 대상이 사라져 힘들어하게 된다. 거기다 여자친구와 결별한 영향이 부모님과 직장 상사에게 까지 영향이 미칠 수 있다. 이렇듯 한 클래스에 너무 많은 책임이 집중될 경우 발생할 수 있는 악영향과 관리의 어려움을 예방하기 위해 책임을 분리하라는 것이 단일..

CI/CD Pipeline Architecture 개발자가 Github에 변경된 코드를 Push 하게 되면, 홈서버에 위치한 Jenkins로 HTTP POST 요청이 전달된다. Jenkins에서는 해당 요청을 트리거로 지정된 Job을 수행하게 된다. 이번 프로젝트에서 설정한 Jenkins의 파이프라인은 Github의 Repository를 클론하여 해당 프로젝트의 이미지를 build 한 후 해당 이미지를 DockerHub로 Push 하는 것이다. 사용한 백엔드 프레임워크는 Spring Boot로 Gradle을 통해 bootJar된 jar 파일을 이미지화 시켜 DockerHub에 Push 하는 것이 주된 목표다.Spring Boot & yaml fileSpring Boot의 경우 데이터베이스에 대한 정보, ..

Elastic Block StoreEC2 인스턴스에 사용할 영구 블록 스토리지 볼륨을 제공한다. 각 Amazon EBS 볼륨은 EC2와 동일한 가용 영역 내에 자동으로 복제되어 구성요소 장애로부터 부호해주고, 고가용성 및 내구성을 제공한다. Amazon EBS 볼륨은 워크로드 실행에 필요한 지연 시간이 짧고 일관된 성능을 제공한다. Amazon EBS를 사용하면 몇 분 내에 사용량을 많게 또는 적게 확장할 수 있으며, 프로비저닝한 부분에 대해서만 저렴한 비용을 지불한다. 일종의 가상 하드디스크로 EC2와 EBS는 네트워크로 연결되어 있기 때문에 EC2 인스턴스가 종료되어도 계속 유지가 가능하다. EC2 스케일업 시에도 EBS를 종료하지 않고 EC2만 스케일업할 수 있다. 루트 볼륨으로 사용시에는 EC..