Rich Domain Model and Anemic Domain Model

2025-07-31

Rich Domain Model은 비즈니스 로직을 도메인 모델에 캡슐화하는 방법.

Anemic Domain Model은 비즈니스 로직을 서비스 계층에 위치시키는 방법.

데이터와 행위를 어떻게 조직할 것인가?

DDD는 객체 지향과 매우 닮아있다. 책임을 어떻게 분리하고 결합하는데에 노력이 필요하다. 데이터와 행위를 어떻게 조직할 것인가?이 질문은 객체 지향 설계에서 중요하게 여기는 부분이기도 하다.

Rich Domain Model에서는 데이터와 행위(비즈니스 로직)를 하나의 객체에서 관리할 수 있도록 캡슐화를 한다. 이는 책임이 명확해지고 응집도가 높아지는 것이다.

하지만, Anemic Domain Model에서는 도메인 객체가 데이터만 가지고 있고 행위는 서비스 계층에서 하도록 분리하는 것이다. 설계하기엔 쉽지만 데이터와 행위가 분리되어 캡슐화가 꺠지고, 응집도가 낮아지게 된다.

DDD에서는 주로 Rich Domain Model를 지향한다.

DDD의 목적은 복잡한 비즈니스 도메인을 효과적으로 모델링하고 개발하는 것이기 떄문에 Anemic Domain Model은 DDD가 추구하는 방향과 많이 다르고, 객체 지향이 가져온 이점을 모두 잃는 방법이라고 할 수 있다.