글
작성한 모든 글입니다.
-
[DDD Intro #6] Domain Event: 도메인에서 일어난 일을 표현하기
도메인 모델은 상태만으로 이루어져 있지 않다. 도메인에서는 계속 어떤 일이 일어난다. 주문이 접수되고, 결제가 완료되고, 배송이 요청되고, 구독이 갱신되고, 환불이 승인되고, 이용 권한이 만료된다.
-
[DDD Intro #5] Aggregate: 일관성의 경계
DDD의 전술적 패턴 중에서 가장 중요하면서도 가장 많이 오해되는 개념이 Aggregate다. Entity와 Value Object는 비교적 직관적으로 받아들이기 쉽다. 하지만 Aggregate는 처음 접하면 애매하다.
-
[DDD Intro #4] Bounded Context: 모델은 경계 안에서만 일관된다
DDD에서 가장 중요한 개념을 하나만 고르라면 많은 사람이 Bounded Context를 이야기할 것이다. 그런데 동시에 가장 많이 오해되는 개념이기도 하다.
-
[DDD Intro #3] 유비쿼터스 언어: 좋은 설계는 좋은 언어에서 시작된다
DDD에서 가장 중요하면서도 가장 쉽게 가볍게 다뤄지는 개념이 유비쿼터스 언어다. 많은 팀이 유비쿼터스 언어를 “용어집을 만드는 일” 정도로 이해한다. 물론 용어를 정리하는 것은 좋은 시작이다. 하지만 유비쿼터스 언어는 용어집보다 훨씬 더 깊은 개념이다.
-
[DDD Intro #2] 모델은 현실의 복사본이 아니다
DDD를 이해하려면 먼저 “모델”이라는 말을 다시 생각해야 한다. 많은 사람이 모델을 현실을 최대한 정확하게 옮긴 것이라고 생각한다. 현실에 회원이 있으니 Member를 만들고, 주문이 있으니 Order를 만들고, 결제가 있으니 Payment를 만든다. 현실에 있는 속성은 되도록 빠짐없이 담으려 한다.
-
[DDD Intro #1] DDD는 기술이 아니라 관점이다
DDD를 처음 공부하면 자연스럽게 기술적인 단어들이 먼저 눈에 들어온다. Entity, Value Object, Aggregate, Repository, Domain Service, Domain Event. 조금 더 나아가면 Layered Architecture, Hexagonal Architecture, CQRS, Event Sourcing 같은 단어들이 따라온다.