패스잇
백엔드 개발 · 기초

JPA에서 @Embedded와 @Embeddable의 용도와 사용법에 대해 설명해주세요.

힌트 · 값 타입 컬렉션과 엔티티의 차이점을 생각해보세요.

값 타입재사용성객체 합성@Embeddable@Embedded

모범답안

JPA에서 @Embedded@Embeddable은 값 타입을 정의하고 사용하는 데 사용됩니다.

@Embeddable은 값 타입 클래스 자체에 붙여서, 이 클래스가 다른 엔티티에 포함될 수 있는 값 타입임을 명시합니다. 예를 들어 주소 정보를 담는 Address 클래스에 @Embeddable을 붙일 수 있습니다.

@Embedded는 엔티티 클래스 내에서 @Embeddable로 정의된 값 타입을 필드로 선언할 때 사용합니다. 이를 통해 엔티티는 값 타입의 속성들을 자신의 속성처럼 사용할 수 있게 됩니다. 객체 합성을 통해 코드 재사용성을 높이고, 엔티티를 더 의미있게 구성할 수 있습니다.

값 타입은 엔티티와 달리 식별자를 가지지 않고, 속성 값으로만 구별됩니다. 값 타입의 속성이 변경되면, 해당 값 타입 전체를 새로운 값으로 교체하는 방식으로 동작합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 JPA / ORM 면접 질문

← JPA / ORM 면접 질문 전체 보기