양방향 연관관계의 필요성
안녕하세요. 공부를 하다가 궁금한 부분이 생겨 질문 남깁니다.
강의에서 최대한 모든 테이블을 단방향으로 설계하고 필요할 때만 양방향 연관관계를 맺어주면 된다고 하셨는데요. 양방향 연관관계가 어떤 상황에서 필요할까 고민하다가 제가 생각할 수 있는 모든 상황에서 어떻게든 단방향으로 처리할 수 있을 것 같다는 결론이 났습니다.
하지만 분명 양방향이 필요한 순간이 있을 것 같은데, 어떤 상황에서 양방향 연관관계가 사용될까요?
+ 좀 더 고민해보던 중에 예를들어 게시글과 댓글에 관계에서 게시글 내용조회와 함께 댓글 리스트가 필요할 때 단방향이라면 쿼리를 2번 날려야하는 반면 양방향으로 매핑이 되어있다면 페치조인등을 통해서 한번의 쿼리로 조회할 수 있다는 점이 필요성을 가지게 한다고 생각했는데 맞을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
양방향 연관관계는 단방향으로는 처리하기 어려운 몇 가지 상황에서 유용하게 사용될 수 있어요.
첫 번째로, 양방향 연관관계는 연관된 두 객체를 효율적으로 탐색할 때 사용될 수 있어요. 예를 들어, 게시글과 댓글 간의 관계에서 게시글에서 댓글을 조회하고, 댓글에서도 게시글을 조회할 수 있도록 양방향 연관관계를 설정한다면 단방향으로 처리하더라도 게시글을 조회한 후에 댓글을 조회하기 위해 추가로 쿼리를 날리지 않아도 되어 효율적으로 데이터를 조회할 수 있어요.
두 번째로, 양방향 연관관계를 통해 양쪽 객체에 대한 일관성을 유지할 수 있어요. 예를 들어, 회원과 주문 간의 관계에서 회원의 주문 목록과 주문의 회원 정보 간의 연관관계를 양방향으로 설정하면 둘 중 어느 한 쪽의 정보가 바뀌더라도 자동으로 다른 쪽의 정보도 변경될 수 있어 일관성을 유지할 수 있어요.
세 번째로, 양방향 연관관계를 설정함으로써 객체 간의 다양한 작업을 수행할 수 있어요. 예를 들어, 양방향 연관관계를 통해 연관된 객체들 간의 상호작용이 가능해지고, 객체 간의 관계를 더욱 복잡하게 설정할 수 있어요.
이처럼 양방향 연관관계는 데이터 조회의 효율성, 일관성 유지, 객체 간의 다양한 상호작용 등 몇 가지 상황에서 유용하게 사용될 수 있어요. 그렇지만 양방향 연관관계도 필요한 상황에 맞게 적절히 사용하는 것이 중요해요. 상황에 따라 양방향 연관관계의 필요성을 고민하고, 단방향으로 처리 가능한 경우에는 단방향으로 처리하는 것이 더 좋을 수도 있어요.
추가로 제가 설명한 내용에 대한 자세한 공부를 원하신다면, 관련된 프로그래밍 교재나 강의를 참고해보시는 것을 추천드립니다. 공부하시는데 도움이 되었으면 좋겠습니다. 좋은 공부 되세요!
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
22
2
inheritance startegy 선택시 고려사항
0
22
1
Entity 동등성 비교
0
18
1
실무 조언 관련 질문입니다.
0
46
1
H2데이터베이스 파일 생성
0
56
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
52
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
51
1
JPQL 메소드와 락
0
55
1
Delivery @OneToOne
0
60
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
93
2
UnsupportedOperationException 발생
0
86
3
H2 Database 연결이 안됩니다.
0
92
2
연관관계 매핑 질문드립니다.
0
85
2
h2데이터베이스 실행오류
0
107
2
persistence.xml
0
106
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
80
1
영속성 컨텍스트
0
65
1
JPA 프록시
0
94
1
Native Query와 MyBatis
0
68
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
85
1
임베디드 타입 예시 코드 관련 질문
0
114
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
94
3
인텔리제이 패키지 커서 단축키 질문
0
108
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
143
1





