[DDD] 도메인 엔티티, Domain Entity
DDD2024. 4. 17. 07:35[DDD] 도메인 엔티티, Domain Entity

도입 대기업들이 DDD를 지향하는 이유는 비즈니스가 만나는 필연적인 복잡성 때문입니다. Gitlab, Netlify 등의 서비스만 봐도 우리가 공부할 때 접하는 CRUD 프로젝트와는 비교되지 않는 비즈니스 로직의 복잡성이 존재합니다. 비즈니스 로직의 복잡성을 관리하기 위한 접근 방식이 바로 객체지향 프로그래밍 개념을 사용하여 객체 간 복잡한 동작을 모델링 하는 것 입니다. 자세히 설명하면 특정 영역에서 어떤 행위가 가능한지 불가능 한지를 모방하는 것입니다. (e.g. 계좌에 잔고가 있다면 인출할 수 있지만 잔고가 없다면 인출할 수 없음.) Domain-Driven은 도메인을 모델링하는 데 사용할 수 있는 아티팩트를 도입합니다: 이제 본 아티팩트 중 하나인 엔티티에 대해 이야기해보겠습니다. DDD에서 En..

DDD2024. 4. 16. 01:45[DDD] 값 객체, Value Object

엔티티 식별 우리는 특정 모델의 여러 인스턴스들을 각자 구분할 수 있을 때 엔티티를 통해 도메인 개념을 모델링합니다. 식별자가 존재하는지의 여부로 '값 객체'인지 '엔티티'인지 구분할 수 있습니다. 다음 예시를 보겠습니다: 우리가 흔히 말하는 User는 엔티티입니다. 왜냐하면 User의 인스턴스는 고유한 식별자(ID)를 가지고 있으며 ID를 통해 다른 각자 다른 User라는 것을 알 수 있기 때문에 User를 엔티티라고 부릅니다. 여기서 사용하는 고유한 식별자 방식은 UUID나 auto-increment 방식입니다. 값 객체(Value Object) VO에서 두 인스턴스의 구조가 같다면 같은 값 객체라고 볼 수 있습니다. 구조적 동일성(Structural Equality) 구조적 동일성은 두 객체가 동일..

image