inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 ORM 표준 JPA 프로그래밍 - 기본편

단방향 연관관계

하나의 바운디드 컨텍스트 안에서는 연관관계 맵핑을 사용하는 게 좋을까요?

95

psam1017

작성한 질문수 11

1


안녕하세요, 선생님 좋은 강의 늘 감사합니다. 자바 강의도 고급 3편 나올 날만을 기다리고 있습니다^^(자바는 개인계정이 아니라 비즈니스 계정으로 듣고 있습니다)

제가 이때까지 강의에서 배운 대로 실무에서 연관관계 맵핑을 사용하다가 MSA 프로젝트를 조금씩 하게 되었는데, 바운디드 컨텍스트 간에는 도메인끼리 전역 식별자(Long, String, ...) 을 사용하고 있습니다. 근데 한 바운디드 컨텍스트, 한 마이크로서비스 안에서는 서로 연관관계 맵핑을 하는 게 좋을까 문득 의문이 들었습니다.

 

  1. 서로 연관성이 높긴 하지만 결과적으로 다른 객체를 참고함에 있어서 어떤 건 키값으로, 어떤 건 엔티티 타입으로 참조하니까 동료들이 헷갈리진 않을까?

  2. (연관관계 맵핑한 경우)이후에 어떤 필요에 의해서 한 마이크로서비스 안에 있던 테이블들을 여러 개의 서비스로 나누게 된다면, 전역 식별자로 바꾸어야 하니 유지보수를 어렵게 하는 건 아닐까?

 

이런 고민들이 있는데 인터넷, AI 등으로는 뭔가 납득이 가는 답변을 못 만난 것 같아 고민고민하다가 결국 여기에 조심스레 여쭙고자 합니다.

 

하나의 바운디드 컨텍스트 안에서 연관관계 맵핑을 사용 ->

 

저는 이 두 고민 사이에서 아직 명확한 답을 내리진 못 했는데, 선생님께서는 혹시 어떻게 생각하실까요?

약간 강의 범위를 벗어난 것 같기도 해서 죄송합니다ㅠㅠ 짧게나마 도움 주시면 정말 감사하겠습니다.

 

java jpa

답변 1

1

y2gcoder

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

제가 DDD의 전문가는 아니지만 JPA를 주로 사용하시는 다른 분들의 얘기를 들어봤을 때,

공통적으로는 바운더리 컨텍스트를 기준으로 참조를 설정하는 것 같습니다 🙂

  • 같은 바운더리 컨텍스트 내의 엔티티끼리는 연관관계를 통한 참조

  • 다른 바운더리 컨텍스트 의 엔티티라면 식별자를 통한 참조

를 채택하는 경우가 많았던 것 같습니다 🙂

감사합니다.

1

psam1017

답변 주셔서 감사합니다:) 의문이 풀리지는 않았지만,일반적인 기준이 이러하다라고 가정하고 그 근거를 추론해보는 과정도 의미가 있을 것 같네요~

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

33

2

inheritance startegy 선택시 고려사항

0

24

1

Entity 동등성 비교

0

23

1

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

0

48

1

H2데이터베이스 파일 생성

0

58

2

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

0

57

2

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

0

58

1

JPQL 메소드와 락

0

55

1

Delivery @OneToOne

0

61

1

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

0

98

2

UnsupportedOperationException 발생

0

87

3

H2 Database 연결이 안됩니다.

0

98

2

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

0

88

2

h2데이터베이스 실행오류

0

110

2

persistence.xml

0

112

2

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

0

83

1

영속성 컨텍스트

0

69

1

JPA 프록시

0

98

1

Native Query와 MyBatis

0

72

1

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

0

92

1

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

0

121

3

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

0

96

3

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

0

109

2

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

0

149

1