태그: 도메인 모델
이 태그가 달린 모든 글 "도메인 모델".
-
[DDD Intro #21] ORM과 DDD: JPA Entity는 도메인 모델인가
Java와 Spring 환경에서 DDD를 이야기하면 거의 반드시 JPA 이야기를 만나게 된다. Entity라는 단어가 겹치기 때문이다. JPA에도 Entity가 있고, DDD에도 Entity가 있다. 그래서 많은 팀이 자연스럽게 JPA Entity를 도메인 모델로 사용한다.
-
[DDD Intro #19] Layered Architecture: 도메인 계층을 보호하기
DDD를 구현하려고 하면 곧 아키텍처 이야기를 만나게 된다. Presentation Layer, Application Layer, Domain Layer, Infrastructure Layer 같은 이름이 등장한다. 패키지를 나누고, 의존성 방향을 정하고, 각 계층의 책임을 구분한다.
-
[DDD Intro #18] Specification과 Policy: 조건과 정책을 모델링하기
도메인 로직은 처음에는 작은 조건문으로 시작한다. 특정 상태이면 처리하지 않고, 특정 날짜가 지나면 만료시키고, 특정 요금제이면 할인하지 않는다. 처음에는 if 몇 개면 충분하다.
-
[DDD Intro #17] Factory: 생성에도 도메인 지식이 있다
객체 생성은 종종 단순한 기술 문제처럼 여겨진다. 생성자를 호출하고, 필요한 값을 넣고, 필드를 채우면 끝이라고 생각하기 쉽다. 하지만 도메인 모델에서는 생성도 중요한 행위일 수 있다.
-
[DDD Intro #16] Domain Service: 객체에 억지로 넣기 어려운 도메인 로직
DDD를 공부하면 “도메인 로직은 도메인 객체 안에 있어야 한다”는 말을 자주 듣는다. 이 말은 중요하다. 도메인 규칙이 Application Service나 Controller에 흩어지면 모델은 빈약해진다.
-
[DDD Intro #13] 도메인 객체에 행위를 넣는다는 것
DDD를 적용한다고 말하면서도 실제 코드를 보면 도메인 객체가 거의 아무 일도 하지 않는 경우가 많다. 클래스 이름은 Subscription, Order, Payment처럼 도메인스럽지만, 내부에는 필드와 getter, setter만 있다. 중요한 규칙은 대부분 SubscriptionService, OrderService, PaymentService 같은 서비스 클래스에 들어 있다.
-
[DDD Intro #12] Entity: 식별성과 생명주기를 가진 도메인 객체
Value Object는 값으로 식별된다. 10,000원은 10,000원이고, 같은 시작일과 종료일을 가진 기간은 같은 기간이다. 중요한 것은 그 값 자체다.
-
[DDD Intro #11] Value Object: 원시값이 아니라 도메인 개념으로 표현하기
DDD의 전술적 패턴을 떠올리면 많은 사람이 Entity부터 생각한다. 식별자, 생명주기, 상태 변화가 있는 객체는 분명 중요하다. 하지만 실제 코드에서 도메인 의미를 가장 작고 선명하게 드러내는 출발점은 Value Object일 때가 많다.