1차 프로젝트에서 Mybatis를 적용한 아키텍쳐는 단순히 Service에서 MybatisRepository를 의존한 것이다. JPA를 변환하고자 했을때 단순하게 생각하면 아래 아키텍쳐를 가질 수 있다.하지만 위 설계는 DIP를 위반한 것이다. 왜냐면 고수준 Service가 저수준 MybatisRepository와 JpaRepository를 직접 의존하기 때문이다. MybatisRepository를 지우지 않고 JPA 기능을 추가한 이유는 언제든지 수정중인 소스를 운영에 반영할수 있도록 하기 위함이다. JPA기능을 추가하고 테스트코드도 작성되지 않은 상태에서 Mybatis 기능을 삭제해버리면 이 소스를 운영에 반영 할 수 없다. 그래서 언제든지 운영에 반영할 필요가 있을때 빠르게 수정중인 소스에서 Myb..