inflearn logo
강의

講義

知識共有

Microservice実装(EDA、Hexagonal、DDDを使用)

設計されたドメインモデルを見てみる

Entity와 VO에 대해..

765

Minkyu Ha

投稿した質問数 5

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

안녕하세요.

도메인모델을 만들때 Entity와 VO는 단순히 불변성을 가지고 구분하는 것인지요?

그리고 JPA에서의 Entity와는 다른 개념인지 궁금합니다.

감사합니다.

EDA msa ddd entity

回答 1

0

han jeong heon

안녕하세요 강의자 한정헌입니다. 간단히 답변을 드리면

도메인 주도 설계(DDD)에서 엔터티(Entity)와 값 객체(Value Object)는 고유성의 여부를 중심으로 하는 개념이며, 불변성은 값 객체의 특성 중 하나일 수 있습니다. 두 개념을 좀더 설명드리면

  1. 엔터티(Entity):

    • 엔터티는 고유한 식별자에 의해 정의되는 객체입니다. 시간과 다양한 상태를 통해 유지되는 독특하고 고유한 식별자를 가지고 있습니다.

    • 동일한 속성을 가진 두 엔터티는 식별자가 다르면 여전히 구별됩니다.

    • 엔터티는 일반적으로 가변적입니다. 시간이 지남에 따라 상태가 변할 수 있지만 식별자는 유지됩니다.

    • 예: 유일한 고객 ID를 가진 '고객' 엔터티. 두 고객이 동일한 이름과 주소를 가지더라도 ID가 다르면 서로 다른 엔터티로 간주됩니다.

  2. 값 객체(Value Object):

    • 값 객체는 특정 속성을 설명하는 객체로, 고유한 식별자가 없습니다. 그 식별자는 속성의 동일성에 기반합니다.

    • 값 객체는 일반적으로 불변성을 가지고 있습니다. 한 번 생성되면 상태가 변경되지 않습니다.

    • 예: 빨강, 초록, 파랑 값을 가진 '색' 객체. 동일한 RGB 값으로 두 색 객체가 동일하게 간주됩니다.

불변성은 값 객체의 일반적인 특성 중 하나이지만 엔터티와 값 객체를 구별하는 주요 기준은 식별자의 개념입니다. 엔터티는 고유한 식별자를 가지고 있으며, 값 객체는 그렇지 않습니다.

JPA(Java Persistence API)에서 엔터티와 관련된 용어는 DDD의 엔터티와 관련이 있지만 정확히 동일하지는 않습니다. JPA의 엔터티는 데이터베이스 테이블에 매핑되는 영속 데이터 객체로, 주로 테이블의 레코드를 나타냅니다. DDD의 엔터티와 일치할 수 있지만 항상 도메인 주도 설계의 모든 개념과 일치하다고 볼 수는 없을 것 같네요.

요약하면, 용어의 겹침이 있지만 "엔터티"라는 용어가 사용되는 특정 맥락을 이해하는 것이 중요합니다.

감사합니다.

도메인 모델에서 관계와 규칙을 구분하는 방법

0

37

2

user-service jwt

0

32

2

애그리거트 질문있습니다!

0

31

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

46

1

스프링부트 버전 문의드립니다.

0

38

1

7강에 2분 쪽에 문의 있습니다.

0

13

2

gRPC 실무에서 질문

0

35

2

5강 43초 부분에서 에러가 납니다.

0

20

2

강의보다 바로 여쭤봅니다.

0

72

2

Aggregate 하위에 꼬리를 무는 Entity 는?

0

135

2

헥사곤 아키텍쳐 관련하여 문의드립니다.

2

168

2

VO 클래스의 불변 필드 선언을 하지 않으신 이유?

0

212

2

RentalCard 의 calculateLateFee 메서드 구현이 잘못된 것 같습니다.

1

161

2

UserCase가 많은데... 이유?

0

504

1

음성 부분이 너무 깨지는데...

0

357

1

CQRS 질문 드립니다.

0

360

1

강의 음성 및 영상

0

349

1

domain.model.event에 정의되는 객체들에 대한 질문이 있습니다

0

367

1

수업에 사용한 소스코드 문의

0

595

1

EDA 이해

0

467

1

보상트랜잭션 후 클라이언트 알림 방법 등

0

357

1

MSA 구조에서 공통 클래스

0

901

2

@Repository 두 곳에서 사용하시는 이유

0

459

1

DTO 클래스의 위치에 대해 질문있습니다!

1

759

1