본문 바로가기

공부 기록/영상 후기

ㄷㄷㄷ: Domain Driven Design과 적용 사례공유 / if(kakao)2022

https://youtu.be/4QHvTeeTsj0

레거시 서버

- 모놀리식

- 기술 부채

- 유지보수의 어려움

- 기능의 고착화

 

Domain Driven Design(도메인 주도 설계)

- 도메인의 모델과 로직에 집중

- 유비쿼터스 랭귀지, 보편적 언어 사용 => 업무 용어 통일

- 소프트웨어 엔티티와 도메인 간 개념의 일치

  

Bounded Context : 범위를 구분해놓은 하위 도메인 개념

Context Map : Bounded Context 간의 관계를 보여준다.

Aggregate : 라이프사이클이 같은 도메인을 한데 모아놓은 집합

 

DDD의 대표적인 아키텍처

- Layered Architecture : User Interface > Application > Domain > Infrastructure

- Clean Architecture : External Interface > Interface Adapter > User Case > Entity

- Hexagonal Architecture : Clean Architecture와 비슷하나, Port & Adapter라는 구현 개념을 명시

 

장점

- 보편적인 언어 사용에 따른 빠른 커뮤니케이션

- 도메인 간 관계가 복잡한 경우 큰 틀에서 정리가 가능

- 도메인의 분리에 따른 유지보수에 대한 편의성

- 새로운 기능 및 요구 사항에 대한 유연성

- 캡슐화

- 낮은 결합도, 높은 응집도

- 도메인 로직의 분리로 비즈니스 로직에 집중

- 코드 가독성

 

단점

- 아키텍처 구현에서 생성되는 많은 코드

- 각 도메인에 대한 높은 이해도가 필요