인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

lmkn5342님의 프로필 이미지

작성한 질문수

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

임베디드 타입

임베디드 타입과 1대1 매핑

작성

·

34

0

임베디드 타입을 몰랐을 때는 따로 관리하면 좋을 것 같은 컬럼들을 1대1 매핑해서 사용했습니다. 예를 들어 Member 엔티티에 city, street, zipcode 컬럼을 Address 엔티티로 만들어서 Member와 Address를 1대1 매핑 시켰습니다.

임베디드 타입을 배우고 나니까 이전에 제가 했던 방법이 잘못된 방법인가 궁금해서 질문드립니다!

항상 좋은 강의 감사합니다.

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. lmkn5342님 질문 감사합니다.

임베디드 타입과 1대1 매핑 방식의 선택은 설계 의도와 요구사항에 따라 다를 수 있습니다. 두 방식 모두 장단점이 있으며, 각 방식에 대한 이해와 상황에 맞는 선택이 중요합니다.

  1. 임베디드 타입:

    • 장점: 코드 구조가 간결해지고, 관련된 필드들을 그룹화하여 관리할 수 있습니다. 또한, 객체 지향적인 설계를 촉진하며, 재사용성이 높습니다.
    • 단점: 독립적인 생명주기를 가지는 엔티티로 취급할 수 없으므로, Address 만의 특성을 관리하기 어려울 수 있습니다.
  2. 1대1 매핑:

    • 장점: Address를 독립된 엔티티로 관리할 수 있어, Address에 대한 추가적인 로직이나 연관관계를 쉽게 확장 및 관리할 수 있습니다.
    • 단점: 관계 관리에 대한 복잡성이 증가할 수 있으며, 필요 이상으로 많은 테이블을 사용할 수 있습니다.

임베디드 타입은 값 객체로서 주로 값의 묶음을 전혀 변경할 필요가 없고 단순히 사용하는 경우에 적합합니다. 그러나 Address와 같이 독립적인 정보로 사용되거나, 추적 및 독립된 관리가 필요한 경우라면 엔티티로 분리하여 1대1 매핑하는 것이 좋습니다.

비슷한 토픽에 대한 토론은 여기에서 찾아볼 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

lmkn5342님의 프로필 이미지

작성한 질문수

질문하기