inflearn logo
강의

Course

Instructor

Java ORM Standard JPA Programming - Basics

DDD와 JPA

734

log4j

3 asked

0


=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]
여기에 질문 내용을 남겨주세요.
 
안녕하세요
 
기존에 nosql위주로 개발을 하다가
mysql 및 JPA를 도입하려고하는 영한님 강의 듣고 있는 개발자입니다.
 
 
ddd와 연관지어서 jpa의 엔티티 정책에 궁금한 점이 2가지 있는데 (유사한 카테고리)
 
 
1. Team 에그리거트와 Member 에그리거트는 간의 경계가 허물어 지는 문제
 
예를들어서
 
@Entity
class MemberEntity {
...
@ManyToOne
Team team;
...
 
}
 
이런식으로 엔티티가 구성 하시던데요
 
에릭에반스인지 반버논 책인지 기억은 안나는데
Team을 직접 가지기보다는 String team_id;값을 가지는 것이 권장된다고 알고 있고 저는 실무에서 그렇게 사용하고 있었습니다.
제가 업무에서 mysql를 사용하지 않아서 실제 mysql jpa 사용하시는 분들도 실전에서 위처럼 그대로 사용하는지 궁금하네요.
 
JPA식으로 사용하게되면, MemberRepository에서 member 를 조회하면 , TeamRepository를 조회하지 않고도 팀 정보를 가져오게 되는 것인데, 이러면 바운디드 컨텍스가 무너지는 결과를 초래하지 않나 싶습니다.
 
이부분에 대해서 영한님 의견은 어떠신가요?
 
 
2. Entity의 오염
 
JPA를 쓰다보면 @ManyToOne, Load 정책 등 같은 비즈니스 로직과 무관한 DB종속적인 값들이 Entity에 들어가게되더라고요
DDD에서 말하는 순수 핵심 비즈니스 로직의 Entity만 넣고 쓰고 싶은데, JPA를 활용하게 되면 이게 힘든 부분이죠?
 
JPA Entity를 흔히말하는 DAO처럼 쓰고 별도의 Domain Entity를 만들고 싶은데 이렇게 가능한지 궁금합니다.
대충 JPA내용을 봤을때 이렇게 분리하는게 불가능한 것 같기는한데
 
실제로 Entity를 어떻게 사용중이신지 궁금합니다.
 
 

ddd java JPA

Answer 2

3

David

안녕하세요. log4j님, 공식 서포터즈 David입니다.

1. 본 강의는 DDD를 고려하여  만든 게 아닙니다. 따라서, 강의에서 사용된 코드는 DDD에서 권장하는 설계가 적용되어 있지 않습니다.

간접 참조에 대한 부분은 아래 글 답변의 2번째 항목을 참고해주세요.

https://www.inflearn.com/questions/27918

 

2. 아래 글 답변의 첫번째 항목을 참고해주세요.

https://www.inflearn.com/questions/90087

감사합니다.

0

log4j

네 도움이 되었습니다.

참고하겠습니다.

감사합니다

실무 조언 관련 질문입니다.

0

41

1

H2데이터베이스 파일 생성

0

50

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

49

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

47

1

JPQL 메소드와 락

0

50

1

Delivery @OneToOne

0

57

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

88

2

UnsupportedOperationException 발생

0

82

3

H2 Database 연결이 안됩니다.

0

87

2

연관관계 매핑 질문드립니다.

0

81

2

h2데이터베이스 실행오류

0

105

2

persistence.xml

0

103

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

77

1

영속성 컨텍스트

0

62

1

JPA 프록시

0

89

1

Native Query와 MyBatis

0

63

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

82

1

임베디드 타입 예시 코드 관련 질문

0

112

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

90

3

인텔리제이 패키지 커서 단축키 질문

0

106

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

135

1

양방향 연관관계 시 연관관계 주인을 설정하는 이유

0

68

1

임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.

0

95

1

데이터베이스가 초기화되는 것 같아요

1

176

2