JavaBookStudy / JavaBook

책읽기 스터디
https://javabookstudy.github.io/
Apache License 2.0
19 stars 2 forks source link

[토비의 스프링] 8.3.5_Hibernate가 왜 POJO 프레임워크인가요? #140

Closed kjsu0209 closed 2 years ago

kjsu0209 commented 2 years ago

738p 두 번째 문단을 보면 스프링 프레임워크와 하이버네이트가 대표적인 POJO 프레임워크라고 나옵니다.

스프링은 POJO 객체를 사용하니 이해 되지만, 하이버네이트는 어떻게 동작해서 POJO 프레임워크라고 할까요? 🤔

daebalprime commented 2 years ago

하이버네이트의 경우 쿼리 메서드 등 JPARepository를 구현한 인터페이스를 통해서 DB에 접근할 수 있도록 합니다. 만약 하이버네이트에서 MyBatis나 JDBC 등으로 기술을 변경하고 싶다면, 기존의 JPA 인터페이스를 구현한 클래스를 DI해주면 끝날 일입니다.

  1. 비즈니스 로직에서 하이버네이트와 관련된 API 호출을 하지 않도록 작성할 수 있으며(특정 환경에 종속되지 않는다.)
  2. JPA 인터페이스는 DB의 접근, 수정, 삭제 등을 담당하도록 하고 비즈니스 로직을 구현한 서비스 클래스는 비즈니스 로직만을 담당하게 될 것이므로(단일 책임 원칙을 지키는 클래스) POJO 기술이라고 할 수 있을 것입니다.