• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

연관관계 메서드의 위치는 핵심적으로 컨트롤 하는 쪽이 무슨 말일까요?

23.05.05 12:08 작성 조회수 255

0

24분 30초부터 연관관계 메서드에 관련해서 설명해주시는데

연관관계 메서드의 위치는 핵심적으로 컨트롤 하는 쪽에 있는 것이 좋다 이게 무슨 말인지 잘 이해가 되지 않습니다 ㅠㅠ

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2023.05.08

안녕하세요, hjemsti 님! 공식 서포터즈 codesweaver 입니다.

연관관계 메서드를 작성한다는 것은 두 엔터티가 매우 밀접한 관계에 있다는 의미인데요, 밀접하다는 뜻은 두 엔터티가 논리상 매우 밀접한 개념이라는 뜻과 두 엔터티를 함께 사용하는 경우가 많다는 의미입니다. 엔터티 관계는 대등할수도 있으나 보통은 주종 관계인데, 강의에서는 '주'에 해당하는 엔터티에 연관관계 메서드를 작성하라고 설명한 것입니다.

가령 Order / OrderItem 중 Order가 주가 되고 OrderItem은 종이 됩니다. Order가 먼저 존재하고OrderItem이 생겨야 하기 때문입니다.

그런데 Member / Order 같은 경우는 서로 대등한 엔터티 이기에 헷갈릴 수 있습니다. (Member가 없는 Order는 불가능하니 Member가 주 아닌가? 라고 해석할 수도 있습니다) 그런데 보통 이 둘은 연관관계 메서드를 제공하지 않고 업무요건을 해결하는 방법도 있습니다. Member를 조회할 때 언제나 Order를 조회하지는 않을것이니 객체 그래프 탐색을 제공하지 않고, Member 가 OrderService에 주문 정보를 요청하는 식으로 분리할 수 있습니다.

여러 가지 상황을 고려하여 선택하되 대원칙은 주 엔터티에 연관관계 메서드를 제공한다고 이해하시면 됩니다.
감사합니다.