1. 도메인, DDD

DDD에서 말하는 도메인이란?

⇒ 비즈니스 Domain, 즉 유사한 업무의 집합

DDD?

⇒ Domain Driven Design

위에서 말한, 비즈니스 Domain별로 나누어서 설계하는 방식

DDD의 핵심 목표 : 의존성 최소화, 응집성 최대화

DDD는 Strategic Design(개념적 설계)과 Tactical Design(구체적 설계)으로 나뉨

  1. Strategic Design

    : 비즈니스 Domain의 상황에 맞게 설계하는 것(큰 그림을 그림)

  2. Tactical Design

    : 구체적인 코드 레벨에서 도메인 로직을 어떻게 구현할지 설계하는 것

2. Monolithic Architecture vs MSA(MicroService Architecture)

image.png

image.png

Monolithic Architecture

: 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어 있는 형태

단점 : 부분 장애가 전체 서비스의 장애로 확대될 수 있음

Microservice

: 하나의 소프트웨어를 독립적인 여러 개의 애플리케이션으로 나눠서 개발, 배포하는 것

3. MSA와 DDD를 잘 활용할 수 있는 방식

MSA를 DDD로 구축하기