하이버네이트의 경우 쿼리 메서드 등 JPARepository를 구현한 인터페이스를 통해서 DB에 접근할 수 있도록 합니다. 만약 하이버네이트에서 MyBatis나 JDBC 등으로 기술을 변경하고 싶다면, 기존의 JPA 인터페이스를 구현한 클래스를 DI해주면 끝날 일입니다.
비즈니스 로직에서 하이버네이트와 관련된 API 호출을 하지 않도록 작성할 수 있으며(특정 환경에 종속되지 않는다.)
JPA 인터페이스는 DB의 접근, 수정, 삭제 등을 담당하도록 하고 비즈니스 로직을 구현한 서비스 클래스는 비즈니스 로직만을 담당하게 될 것이므로(단일 책임 원칙을 지키는 클래스)
POJO 기술이라고 할 수 있을 것입니다.
738p 두 번째 문단을 보면 스프링 프레임워크와 하이버네이트가 대표적인 POJO 프레임워크라고 나옵니다.
스프링은 POJO 객체를 사용하니 이해 되지만, 하이버네이트는 어떻게 동작해서 POJO 프레임워크라고 할까요? 🤔