해결된 질문
작성
·
226
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예
[질문 내용]
안녕하세요, 단/양방향 연관관계에 대해서 질문드립니다.
강사님께서 초반 설계시에는 단방향으로 연관관계 매핑을 최대한 끝내야 한다고 하셨습니다. 그리고, 비즈니스 로직상 양방향 매핑이 필요할 때에는 양방향을 추가하면 된다고 하셨는데요, 설계할 때 그러한 기준에 대해 강의 내용만으로는 아직 감이 잘 안잡히는 것 같습니다.
저같은 경우 연관된 객체 조회가 간편하다는 이유로 생각없이 양방향부터 걸어두었는데, 성능 이슈나 객체 탐색의 편의성간 트레이드 오프에 대해서 생각을 하지 못했던 것이 큰 것 같습니다.
혹시 단방향 -> 양방향으로 갈 때 고려해야 할 나름의 기준에 대해서 인사이트를 주실 수 있는지요 ??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. kcm9561님의 질문에 관한 답변을 도와드리겠습니다.
단방향과 양방향 연관관계에 대한 결정은 실제로 많은 개발자들이 고민하는 부분입니다. 성능과 유지보수성 사이의 균형을 고려해야 하며, 이는 종종 프로젝트 요구사항, 특정 비즈니스 로직의 복잡성, 팀의 선호 등 다양한 요소에 의해 영향을 받습니다.
강의에서 언급하신 것처럼, 보통은 최대한 단방향 매핑으로 설계를 시작하고, 필요할 경우 양방향 매핑을 추가하는 것이 좋은 접근법입니다. 이는 엔티티 간의 관계를 명확하게 하여 복잡도를 낮추고, 유지보수를 용이하게 할 수 있도록 돕습니다. 단방향 매핑으로 시작하면서 프로젝트가 진행됨에 따라 추가적인 필요성이 발생하였을 때 양방향을 고민해보는 것도 하나의 전략입니다.
양방향 매핑을 고려해야 할 경우는 다음과 같은 상황입니다:
- 엔티티 간의 관계를 통해 자주 데이터를 조회해야하는 경우
- 비즈니스 로직 상에서 연관된 엔티티들의 상호작용이 빈번하게 일어나는 경우
- 양방향 매핑을 통해 JPQL이나 Querydsl 등의 질의어를 더 간결하게 작성할 수 있는 경우
- 성능 최적화를 위해 양방향 매핑을 활용해야하는 경우 (예: 페치 조인(fetch join))
이에 대한 자세한 설명이 있는 기존 질문&답변을 참고하시면 좋을 것 같습니다:
추가적으로, 설계 과정에서 고려해야 할 사항에 대해 강사님의 답변을 참고하면 유용할 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.