1. 개요


이번 프로젝트의 목표는 “화려한 기술의 사용보다 안정성, 확장성, 코드 품질을 우선시하며 신뢰할 수 있는 서버 구현” 입니다. 확장성코드품질 목표를 달성하기 위해 DDD의 도입과 애플리케이션 아키텍처 설계에 대해 고민했던 내용을 담습니다.

도출된 애플리케이션 아키텍처

도출된 애플리케이션 아키텍처

image.png

2. DDD (Domain Driven Designe)


**마이크로서비스 아키텍처(MSA)**는 시스템을 여러 독립적인 서비스로 나누어 확장성과 독립성을 높이는 데 중점을 둡니다. 이러한 MSA 환경에서 **도메인 주도 설계(DDD)**를 적용하려는 이유는 다음과 같습니다

2.1. 마이크로 서비스와의 분리를 원활하게 하기 위해


<aside> ⚙

서비스를 DDD의 하위 도메인 기준으로 분리

</aside>

**마이크로서비스 패턴**에 따르면 서비스 분리 방식 중 하나로, **DDD의 하위 도메인(Subdomain)**을 기준으로 서비스를 정의하는 방법을 제안합니다. 이는 각 서비스가 독립적인 비즈니스 도메인을 담당하도록 설계하여 책임의 명확한 분리를 보장합니다.

“MSA와 DDD는 찰떡궁합이다.”

서비스의 분리에 대한 기준이 명확하게 존재하지 않았기에 이를 참고하여 DDD를 적용했습니다.