본문 바로가기

스터디64

[쿠버네티스 / 도커] 05. 지속적 통합과 배포 자동화, 젠킨스 [쿠버네티스 / 도커] 05. 지속적 통합과 배포 자동화, 젠킨스 자동화는 크게 지속적 통합(CI)와, 지속적 배포(CD) 두가지로 정의되며, 일반적으로 둘을 합쳐 CI/CD라고 한다. CI/CD는 실무적인 환경에서 변경 사항을 계속 추적해 좀 더 안정화된 애플리케이션을 만들고, 이를 배포하는 과정을 자동화해 시스템을 안정적으로 운영하는 데 가장 많이 쓰이는 개념이다. 1. 컨테이너 인프라 환경에서 CI/CD CI 코드를 커밋하고 푸시하면 CI 단계로 들어가는데, CI 단계에서는 애플리케이션이 자동으로 빌드되고 테스트를 거쳐 배포할 수 있는 애플리케이션인지 확인한다. 테스트를 통과하면 신뢰할 수 있는 애플리케이션으로 간주하고 CD 단계로 넘어간다. CD CI과정에서 생성된 신뢰할 수 있는 애플리케이션을 .. 2022. 7. 13.
[헤드퍼스트 디자인패턴] 06. 커맨드 패턴(Command Pattern) [헤드퍼스트 디자인패턴] 06. 커맨드 패턴(Command Pattern) 1. 커맨드 패턴이란? - 커맨드 패턴을 사용하면 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다. 커맨드 패턴은 크게 Invoker(호출자), Receiver(수신자), Command(명령) 객체로 구분된다. 인보커는 기능의 실행을 요청하고 리시버는 명령을 수행하는 객체다. 실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker) 클래스와 실제 기능을 실행하는 수신자(Receiver) 클래스 사이의 의존성을 제거한다. 따라서 실행될 기능의 변경에도 호출자 클래스를 수정 없이 그대로 사용 할.. 2022. 7. 10.
[도메인 주도 개발 시작하기] 04. 응용 서비스와 표현 영역 [도메인 주도 개발 시작하기] 04. 응용 서비스와 표현 영역 1. 표현 영역과 응용 영역 잘 만든 도메인이 제 기능을 하려면 사용자와 도메인을 연결해주는 매개체가 필요하다. 응용 영역과 표현 영역이 사용자와 도메인을 연결해 주는 매개체 역할을 한다. 표현 영역은 사용자의 요청을 해석한다. 사용자의 요청을 받은 표현 영역은 URL, 요청 파라미터, 쿠키, 헤더 등을 이용해서 사용자가 실행하고 싶은 기능을 판별하고 그 기능을 제공하는 응용 서비스를 실행한다. 응용 영역에 위치한 서비스는 실제 사용자가 원하는 기능을 제공한다. 응용 서비스의 메서드가 요구하는 파라미터와 표현 영역이 사용자로부터 전달받은 데이터는 형식이 일치하지 않기 때무에 표현 영역은 응용 서비스가 요구하는 형식으로 사용자 요청을 변환한다... 2022. 7. 9.
[쿠버네티스 / 도커] 04. 쿠버네티스를 이루는 컨테이너 도우미, 도커 [쿠버네티스 / 도커] 04. 쿠버네티스를 이루는 컨테이너 도우미, 도커 1. 도커를 알아야 하는 이유 - 최근에는 여러 공급사에서 만들어둔 컨테이너 이미지로 인해, 도커를 몰라도 쿠버네티스를 배우고 사용하는 것이 가능해졌다. 하지만 쿠버네티스를 이루고 있는 기술 자체는 컨테이너를 벗어날 수 없기 때문에, 트러블 슈팅을 제대로 하려면 컨테이너를 잘 알아야한다. 또한 CI/CD와 모니터링 모두 컨테이너로 관리되기 때문에 컨테이너와 이를 다루는 도커를 자세히 알면 컨테이너 인프라 환경을 한층 더 이해할 수 있다. 1.1 파드, 컨테이너, 도커, 쿠버네티스의 관계 쿠버네티스 클러스터는 워커 노드와 마스터 노드로 이루어져있다. 워커 노드라는 노드 단위로 파드를 관리한다. 파드는 1개 이상의 컨테이너로 이루어져있.. 2022. 7. 6.
[도메인 주도 개발 시작하기] 03. 애그리거트 [도메인 주도 개발 시작하기] 03. 애그리거트 1. 애그리거트 - 온라인 쇼핑몰 시스템을 개발할 때 아래와 같이 상위 수준 개념을 이용해서 전체 모델을 정리하면 전반적인 관계를 이해하는 데 도움이 된다. 위의 상위 수준 모델을 개별 객체 단위로 다시 그려보면 아래와 같다. 상위 모델에 대한 이해 없이 개별 객체 단위 수준에서 개념을 파악하려면 더 오랜 시간이 걸린다. 백 개 이상의 테이블을 한 장의 ERD에 표시하면, 개별 테이블 간의 관게를 파악하느라 전반적인 구조나 큰 수준에서의 도메인 간의 관게를 파악하기 어려워져, 코드를 변경하고 확장하는 것이 어려워진다. 복잡한 도메인을 이해하고 관리하기 쉬운 단위로 만들려면 상위 수준에서 모델을 조망할 수 있는 방법이 필요한데, 그 방법이 바로 애그리거트다... 2022. 7. 3.
[헤드퍼스트 디자인패턴] 05. 팩토리 패턴(Factory Pattern) [헤드퍼스트 디자인패턴] 05. 팩토리 패턴(Factory Pattern) 1. 두가지 팩토리 패턴 추상 팩토리 패턴 - 구상 클래스에 의존하지 않고도 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생성하는 인터페이스를 제공한다. 구상 클래스는 서브클래스에서 만든다. 팩토리 메소드 패턴 - 객체를 생성할 때 필요한 인터페이스를 만든다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정한다. 팩토리 메소드를 사용하면 인스턴스 만드는 일을 서브 클래스에 맡길 수 있다. 2. 요구사항 - 피자 가게에서 여러 피자를 판매 한다. Pizza orderPizza(String type) { Pizza pizza; // 계속 변경되어야 하는 부분 if(type.equals("cheese")) pizza = ne.. 2022. 7. 3.
728x90
반응형