JPA 모델과 도메인 모델은 다른 것인가?
도메인 모델은 DB와 매핑되는 데이터 모델과 다르며 이를 분리해야 한다
- 어댑터 계층에 JPA 엔티티 등의 모델을 따로 만들고
- Repository를 구현한 어댑터를 이용해서 도메인 오브젝트와 JPA 오브젝트를 매핑해준다
- Member외에 MemberEntity 클래스를 만들어 JPA 관련 설정은 모두 이곳으로 옮긴다
- MemberRepository를 구현한 MemberRepositoryJpaAdapter에서 이 두가지 오브젝트
를 서로 매핑해주는 코드를 작성한다

이런 접근 방법을 선호하는 이유
데이터 모델과 도메인 모델이 너무 다른 경우
- 레거시 DB에 도메인 모델 설계를 적용하는 경우
복잡한 도메인 모델이 데이터 모델과 간단히 매핑되지 않는 경우
- JPA 모델과는 다른 도메인 모델이 존재한다면
데이터 저장 기술이 바뀌는 경우
코드에 등장하는 JPA 애노테이션은 기술 의존적이니까
도메인 코드에 관심사가 다른 JPA 매핑 애노테이션, DB 정보가 들어가니까