작성
·
9
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 타이한님께서 올려주신 질문에 대해 답변드리겠습니다.
JPA 엔티티와 도메인 모델을 분리하는 경우, 주된 이유 중 하나는 영속성 계층의 변경에도 도메인 모델이 영향을 받지 않도록 하기 위함입니다. 그러나 도메인 모델과 영속성 모델의 분리를 통해 영속성 기술이 변경되더라도 도메인 로직의 변화는 최소화할 수 있습니다. 이는 Spring Data와 같은 추상화 계층을 사용해서 데이터 접근 기술의 변화를 관리할 수 있는 방법 중 하나입니다.
Spring Data는 기본적으로 데이터 접근을 위한 인터페이스를 제공합니다. JPA가 아닌 다른 기술(MyBatis 등)로 마이그레이션할 때, 특정 데이터 접근 API의 변경에 대응할 수 있도록 설계되어 있습니다. 따라서 Spring Data의 추상화를 잘 활용하면, 데이터 저장 기술을 JPA에서 MyBatis로 변경하는 경우에도 도메인 로직과의 의존성을 최소화할 수 있습니다.
단, MyBatis로 전환하는 경우에는 MyBatis의 SQL 매퍼 특성에 맞춘 구조적 변화를 고려해야 합니다. MyBatis는 SQL을 직접 작성할 수 있는 장점이 있지만, JPA와는 접근 방식에서 차이가 있기 때문에, 반복적으로 사용하는 쿼리는 XML이나 어노테이션 매핑으로 관리하게 될 것입니다. 이 과정에서 Spring Data MyBatis 라이브러리 등을 활용하면 Spring Data의 포트폴리오 내에서 양호한 호환성을 유지할 수 있습니다.
관련해서 이미 JPA와 도메인 모델의 분리를 주제로 다룬 Q&A가 있으며, 이에 대해서 JPA와 도메인 모델 분리에 대한 접근 방식 게시물을 통해 추가 정보를 얻으실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.