강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

psam1017님의 프로필 이미지
psam1017

작성한 질문수

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

단방향 연관관계

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

작성

·

75

·

수정됨

1


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

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

 

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

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

 

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

 

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

  • 하지 않고 모두 전역식별자를 사용하는 게 좋다.

  • 팀의 방향성 등에 따라 달라질 수 있는 부분이고, 어느 쪽을 하든 상관 없다.

 

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

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

 

답변 1

1

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

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

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

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

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

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

감사합니다.

psam1017님의 프로필 이미지
psam1017
질문자

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

psam1017님의 프로필 이미지
psam1017

작성한 질문수

질문하기