레거시 서버
- 모놀리식
- 기술 부채
- 유지보수의 어려움
- 기능의 고착화
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라는 구현 개념을 명시
장점
- 보편적인 언어 사용에 따른 빠른 커뮤니케이션
- 도메인 간 관계가 복잡한 경우 큰 틀에서 정리가 가능
- 도메인의 분리에 따른 유지보수에 대한 편의성
- 새로운 기능 및 요구 사항에 대한 유연성
- 캡슐화
- 낮은 결합도, 높은 응집도
- 도메인 로직의 분리로 비즈니스 로직에 집중
- 코드 가독성
단점
- 아키텍처 구현에서 생성되는 많은 코드
- 각 도메인에 대한 높은 이해도가 필요
'공부 기록 > 영상 후기' 카테고리의 다른 글
스프링 부트 2.0 Day 31. Redis 사용하기 (0) | 2023.06.06 |
---|---|
[10분 테코톡] 리차드의 @Transactional (0) | 2023.06.05 |
DDD (Domain-Driven Design)시작하기 (0) | 2023.06.03 |
카프카, 레빗엠큐, 레디스 큐의 큰 차이점! 이벤트 브로커와 메시지 브로커에 대해 알아봅시다. (0) | 2023.06.02 |
[따배쿠] 5-2. 쿠버네티스 Pod - livenessProbe를 이용해서 Self-healing Pod 만들기 (0) | 2023.05.31 |