본문 바로가기

스터디64

[도메인 주도 개발 시작하기] 02. 아키텍처 개요 [도메인 주도 개발 시작하기] 02. 아키텍처 개요 1. 네 개의 영역 - 아키텍처를 설계할 때 출현하는 전형적인 네 가지 영역 : 표현, 응용, 도메인, 인프라스트럭처 표현 사용자의 요청을 받아 응용 영역에 전달하고 응용 영역의 처리 결과를 다시 사용자에게 보여주는 역할 응용 시스템이 사용자에게 제공해야 할 기능을 구현한다. ex) 주문 등록, 주문 취소, 상품 상세 조회 등 기능을 구현하기 위해 도메인 영역의 도메인 모델을 사용 로직을 직접 수행하기 보다는 도메인 모델에 로직 수행을 위임한다. 도메인 도메인의 핵심 로직을 구현 ex) 배송지 변경, 결제 완료, 주문 총액 계산 등 인프라스트럭처 구현 기술에 대한 것을 다룸. DB연결, 메시징 큐 구현, SMTP를 이용한 메일 발송 기능, REST AP.. 2022. 6. 24.
[쿠버네티스 / 도커] 03. 컨테이너를 다루는 표준 아키텍처, 쿠버네티스 [쿠버네티스 / 도커] 03. 컨테이너를 다루는 표준 아키텍처, 쿠버네티스 1. 쿠버네티스 이해하기 - 쿠버네티스는 컨테이너 오케스트레이션을 위한 솔루션이다. 오케스트레이션이란 복잡한 단계를 관리하고 요소들의 유기적인 관계를 미리 정의해 손쉽게 사용하도록 서비스를 제공하는 것을 의미한다. 다수의 컨테이너를 유기적으로 연결, 실행, 종료할 뿐만 아니라 상태를 추적하고 보존하는 등 컨테이너를 안정적으로 사용할 수 있게 한다. 1.2. 쿠버네티스 구성 방법 3가지 1.2.1 퍼블릭 클라우드 EKS, AKS, GKE등 퍼블릭 클라우드 업체에서 제공하는 관리형 쿠버네티스를 사용한다. 구성이 이미 다 갖춰져 있고 마스터 노드를 클라우드 업체에서 관리한다. 1.2.2 설치형 쿠버네티스 Rancher, OpenShif.. 2022. 6. 21.
[쿠버네티스 / 도커] 01. 새로운 인프라 환경 [쿠버네티스 / 도커] 01. 새로운 인프라 환경 1. 컨테이너 인프라 환경이란? - 컨테이너를 중심으로 구성된 인프라 환경 컨테이너란? - 하나의 운영 체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스 상태 1.1 모놀리식 아키텍처 - 하나의 큰 목적이 있는 서비스 또는 애플리케이션에 여러 기능이 통합되어 있는 구조 초기 단계에서 설계하기 용이하며 개발이 좀더 단순하고 코드 관리가 간편 서비스 운영 중 수정이 많을 경우 연관 된 다른 서비스에 영향을 미칠 가능성이 큼 기능이 추가될 수록 서비스 간의 관계가 매우 복잡해 질 수 있다. 한가지의 서비스를 확장하기 위해서는 다른 모든 서비스도 같이 확장해야하기 때문에 비효율적 하나의 서비스에서 에러가 발생하면 모든 서비스를 이용할 .. 2022. 6. 21.
[도메인 주도 개발 시작하기] 01. 도메인 모델 시작하기 [도메인 주도 개발 시작하기] 01. 도메인 모델 시작하기 1. 도메인 1.1 도메인이란? - 온라인 서점 소프트웨어는 온라인으로 책을 판매하는 데 필요한 상품조회, 구매, 결제, 배송 추적 등의 기능을 제공해야 한다. 이때, '온라인 서점'은 소프트웨어로 해결하고자 하는 문제 영역, 즉 도메인에 해당된다. 한 도메인은 다시 하위 도메인으로 나눌 수 있다. 하나의 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공한다. ex) 고객이 물건을 구매하면 주문, 결제, 배송, 혜택 하위 도메인의 기능이 엮이게 된다. 모든 도메인을 직접 구현해야 하는 것은 아니고 외부 업체의 시스템을 이용하기도 함. ex) PG사, 배송 업체 2. 도메인 모델 2.1 도메인 모델이란? - 다양한 정의가 존재하지만, .. 2022. 6. 19.
[헤드퍼스트 디자인패턴] 04. 싱글턴 패턴(Singleton Pattern) [헤드퍼스트 디자인패턴] 04. 싱글턴 패턴(Singleton Pattern) 1. 싱글턴 패턴이란? 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다. 2. 고전적인 싱글턴 패턴 구현법 public class Singleton { private static Singleton uniqueInstance; // 기타 인스턴스 변수 private Singleton() {} public static Singleton getInstance() { if(uniqueInstance == null) { uniqueInstance = new Singleton(); } return uniqueInstance; } // 기타 메소드 } 생성자는 private 이므로 외부에서 new 키워드를 통해 객체.. 2022. 6. 18.
[헤드퍼스트 디자인패턴] 03. 데코레이터 패턴(Decorator Pattern) [헤드퍼스트 디자인패턴] 03. 데코레이터 패턴(Decorator Pattern) 1. 데코레이터 패턴이란? 객체에 추가 요소를 동적으로 더할 수 있다. 데코레이터를 사용하면 서브클래스를 만들 때보다 훨씬 유연하게 기능을 확장할 수 있다. 2. 구현 목표 1. 카페의 주문 시스템을 만든다. 2. 고객은 커피를 주문할 때 우유나 두유, 모카를 추가하고 그 위에 휘핑크림을 얹기도 한다. 3. 고려사항 - 추후 옵션이 늘어날 수 있다. - 각각을 추가할 때마다 커피 가격이 올라가는 점을 고려해야 한다. 4. 구현 4.1 문제가 있는 설계 (상속을 사용 할 경우) 문제점 첨가물이 가격이 바뀔 때 마다 기존 코드를 수정해야 한다. 첨가물 종류가 많아지면 새로운 메소드를 추가해야 하고, cost() 메소드를 수정해.. 2022. 6. 18.
728x90
반응형