본문 바로가기
Spring Framework/JPA

JPA 엔티티 양방향 참조에 대한 생각

by devstep 2022. 6. 4.

JPA 엔티티 양방향 참조에 대한 생각

양방향 참조에 대한 질문

양방향 참조를 걸어주신 이유가 있을까요? 양방향 참조를 걸어줄 필요가 없다면, 단방향 참조를 활용하시는 것이 좋습니다. 왜 그럴까요? 단방향 참조 외에 양방향 참조를 굳이 써야 할 경우가 있다면, 언제일까요?

엔티티 참조에 대한 내 생각

먼저 양방향 참조로 엔티티를 모두 작성하고 개발하였다. 이유는 모든 연관관계를 양방향으로 우선 두고, 기능을 개발하면서 하나씩 고민해나가는 방향으로 잡아가기로 했었기 때문이다. 일단 DB 기반으로 관계가 있을수 있다는 것을 표시하고 개발해 나가면서 해당 관계의 필요유무를 고민해 나가려고 했던 것이었다.

그러면서 참고자료의 내용을 읽어보면서 단방향 참조를 활용하는 것이 좋은 이유를 생각해보면,
올바르게 모델링 된 연결은 데이터에 엑세스하는 방법이 항상 한 가지 뿐임을 보장한다라는 말이 와 닿았다.
관리 포인트가 하나여야 한다라는 것이 DB 엑세스에도 해당하는 것이었다.

양방향 참조를 굳이 써야 하는 이유는, 그럼에도 불구하고 업무 도메인 상 양방향 참조를 했을 경우 효율적일 때라고 생각한다.

참고자료

실제 개발하고 느낀점

JPA로 토이 프로젝트를 하면서 느낀 것은, DB는 관계가 있더라도 엔티티에 굳이 관계가 없어도 된다는 점이다.
어디서 연관관계를 끊어내야할까를 고민하다보면, 연관관계 자체가 필요없고, 엔티티의 속성에는 관계가 필요한 엔티티의 ID값만 있어도 충분한 경우들이 느껴진다.
그 때 엔티티의 모든 관계를 삭제하고 ID만 갖고 있게 구현하였을 때, 처음에는 어렵게만 느껴졌던 전체 구현이 하나씩 풀리면서 재미있었고 다른 기능들을 개발해나가면서 다른 고민을 할 것들이 기대가 되었다.

'Spring Framework > JPA' 카테고리의 다른 글

@GeneratedValue 기본키 전략 4가지  (0) 2022.06.05
@Embeddable 사용 이유와 장점  (0) 2022.06.04

댓글