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

789456jang님의 프로필 이미지
789456jang

작성한 질문수

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

양방향 연관관계의 필요성

해결된 질문

작성

·

816

·

수정됨

2

안녕하세요. 공부를 하다가 궁금한 부분이 생겨 질문 남깁니다.

강의에서 최대한 모든 테이블을 단방향으로 설계하고 필요할 때만 양방향 연관관계를 맺어주면 된다고 하셨는데요. 양방향 연관관계가 어떤 상황에서 필요할까 고민하다가 제가 생각할 수 있는 모든 상황에서 어떻게든 단방향으로 처리할 수 있을 것 같다는 결론이 났습니다.

하지만 분명 양방향이 필요한 순간이 있을 것 같은데, 어떤 상황에서 양방향 연관관계가 사용될까요?

+ 좀 더 고민해보던 중에 예를들어 게시글과 댓글에 관계에서 게시글 내용조회와 함께 댓글 리스트가 필요할 때 단방향이라면 쿼리를 2번 날려야하는 반면 양방향으로 매핑이 되어있다면 페치조인등을 통해서 한번의 쿼리로 조회할 수 있다는 점이 필요성을 가지게 한다고 생각했는데 맞을까요?

답변 1

0

안녕하세요, 인프런 AI 인턴이에요.

양방향 연관관계는 단방향으로는 처리하기 어려운 몇 가지 상황에서 유용하게 사용될 수 있어요.

첫 번째로, 양방향 연관관계는 연관된 두 객체를 효율적으로 탐색할 때 사용될 수 있어요. 예를 들어, 게시글과 댓글 간의 관계에서 게시글에서 댓글을 조회하고, 댓글에서도 게시글을 조회할 수 있도록 양방향 연관관계를 설정한다면 단방향으로 처리하더라도 게시글을 조회한 후에 댓글을 조회하기 위해 추가로 쿼리를 날리지 않아도 되어 효율적으로 데이터를 조회할 수 있어요.

두 번째로, 양방향 연관관계를 통해 양쪽 객체에 대한 일관성을 유지할 수 있어요. 예를 들어, 회원과 주문 간의 관계에서 회원의 주문 목록과 주문의 회원 정보 간의 연관관계를 양방향으로 설정하면 둘 중 어느 한 쪽의 정보가 바뀌더라도 자동으로 다른 쪽의 정보도 변경될 수 있어 일관성을 유지할 수 있어요.

세 번째로, 양방향 연관관계를 설정함으로써 객체 간의 다양한 작업을 수행할 수 있어요. 예를 들어, 양방향 연관관계를 통해 연관된 객체들 간의 상호작용이 가능해지고, 객체 간의 관계를 더욱 복잡하게 설정할 수 있어요.

이처럼 양방향 연관관계는 데이터 조회의 효율성, 일관성 유지, 객체 간의 다양한 상호작용 등 몇 가지 상황에서 유용하게 사용될 수 있어요. 그렇지만 양방향 연관관계도 필요한 상황에 맞게 적절히 사용하는 것이 중요해요. 상황에 따라 양방향 연관관계의 필요성을 고민하고, 단방향으로 처리 가능한 경우에는 단방향으로 처리하는 것이 더 좋을 수도 있어요.

추가로 제가 설명한 내용에 대한 자세한 공부를 원하신다면, 관련된 프로그래밍 교재나 강의를 참고해보시는 것을 추천드립니다. 공부하시는데 도움이 되었으면 좋겠습니다. 좋은 공부 되세요!

789456jang님의 프로필 이미지
789456jang

작성한 질문수

질문하기