실제 애플리케이션에서는 배송 정보와 같이 여러 엔티티에서 공통으로 사용되는 데이터가 존재합니다. JPA의 임베디드 타입 기능은 이런 중복된 칼럼들을 하나의 값 타입으로 묶어 재사용함으로써, 보다 객체지향적인 모델링을 가능하게 합니다. 본 포스팅에서는 @Embeddable과 @Embedded 어노테이션을 통해 Address, Name 등의 값 객체를 정의하고, 이를 엔티티에 포함시키는 방법과 @AttributeOverride를 사용하여 매핑 정보를 개별 엔티티에 맞게 재정의하는 방법을 살펴봅니다. 이를 통해 코드의 중복을 줄이고, 유지보수가 용이한 설계를 구현하는 방법을 소개합니다.
JPA에서는 새로운 값 타입을 직접 정의해서 사용 할 수 있습니다. 배송 관련 서비스에서 발송인(Sender), 수취인(Receiver)가 있을 경우 중복적으로 주소에 관련 칼럼들이 요구 됩니다. 이러한 중복적인 칼럼들을 자료형으로 규합해서 훨씬더 객체지향적으로 풀어 나갈 수 있을 거같습니다.
JPA의 임베디드 타입 기능을 활용하면, 중복되는 값 칼럼들을 하나의 값 객체로 묶어 재사용함으로써 객체지향적인 모델링이 가능해집니다. 또한, @AttributeOverride를 통해 각 엔티티에 맞게 매핑 정보를 유연하게 재정의할 수 있어, 데이터베이스 설계와 유지보수가 더욱 용이해집니다. 이러한 접근 방식은 코드의 중복을 줄이고 가독성과 확장성을 높여주며, 복잡한 도메인 모델을 설계할 때 큰 도움을 줍니다. 따라서, 여러분의 애플리케이션에서도 효율적인 데이터 모델링을 위해 JPA 임베디드 타입 기능을 적극 활용해 보시기 바랍니다.