DDD(Domain Driven Design)
비즈니스 도메인을 중심으로 소프트웨어 시스템을 설계하는 방법론으로, 마이크로서비스에 사용되는 디자인 패턴 중 하나
DDD의 아키텍처
- Presentation Layer: 사용자 인터페이스(UI)와 상호작용하는 레이어
- Application Layer: 사용자 요청을 처리하고 도메인 모델에게 전달하는 레이어
- Domain Layer: 도메인 모델이 위치하는 핵심 레이어
- Infrastructure Layer: 데이터베이스, 메시징, 네트워킹 등과 같은 인프라스트럭처 기술과 연동하는 레이어
- Persistence Layer: 데이터베이스와 연동하여 영속성(persistence)을 관리하는 레이어
DDD 왜 사용하려고 할까?
설계자와 개발자 둘의 언어 장벽을 해결 하기 위해
DDD 설계의 중요한 포인트
1. 도메인 모델의 구체화
도메인을 완벽히 이해하고, 비즈니스 요구사항과 기존 시스템의 도메인을 정확하게 파악
2. 컨텍스트 매핑
각 도메인 모델의 경계를 명확히 하고, 서로 다른 모델 간의 상호작용을 정의
3. 리팩토링
개발 과정에서 도메인 모델의 변경이 필요할 경우, 리팩토링을 수행
4. 테스트
테스트 주도 개발(TDD)을 적극적으로 활용
5. 도메인 전문가와의 소통
도메인 모델링 과정에서는 도메인 전문가와의 소통으로 요구사항을 정확하게 파악하는 것이 매우 중요
참고 URL
https://huisam.tistory.com/entry/DDD
https://incheol-jung.gitbook.io/docs/q-and-a/architecture/ddd
https://velog.io/@dnflekf2748/DDDDomain-Driven-Design
https://cocoder16.tistory.com/78
DDD(Domain Driven Design) 진입장벽 극복하기
도메인 주도 설계(DDD, Domain Driven Design) 소개 도메인이 무엇인가요? 도메인의 사전적 의미는 '소프트웨어로 해결해야 할 문제의 영역'입니다. 일반적으로 요구사항이라고 불리는 것들이며 이것을
cocoder16.tistory.com
DDD(Domain-Driven-Design)
D를 아십니까? >DDD라고 불리는 이 용어는 도메인 주도 설계라는 이름의 도메인과 일치하도록 소프트웨어를 모델링하는 데 중점을 둔 소프트웨어 설계 접근 방식이다. 특징 DDD는 계속해서 발전하
velog.io
DDD(Domain Driven Design) - Incheol's TECH BLOG
이벤트 소싱과 항상 함께 알아두어야 할 개념으로 CQRS가 있으며 간단히 설명하면 커맨드와 쿼리의 책임을 분리하자는 것이다. 커맨드는 일반적인 디비 기준으로 상태를 변경하는 C,U,D와 같은 메
incheol-jung.gitbook.io
DDD(Domain Driven Design) - 도메인 주도 설계란? 마이크로서비스의 관점에서
객체지향에서부터 도메인 주도 설계를 이해하기 위해서는 객체지향을 먼저 이해할 필요가 있습니다 객체지향에서의 핵심은 뭘까요? 객체지향에서의 핵심은 실세계의 객체(물건, 사람, 주문 ....
huisam.tistory.com
'IT' 카테고리의 다른 글
SPA(Single Page Application) (0) | 2023.03.23 |
---|---|
Node.js (0) | 2023.03.07 |
웹 로그(Web Log), 웹 로그 분석 (0) | 2023.02.20 |
Typescript(타입스크립트) (0) | 2023.02.16 |
Docker(도커) (0) | 2023.02.14 |