실전! 스프링 데이터 JPA - 섹션3. 공통 인터페이스 기능
CS/김영한 스프링 강의

실전! 스프링 데이터 JPA - 섹션3. 공통 인터페이스 기능

CRUD를 원래 적성대로 직접 만들어보자.

update는 변경 감지 기능을 사용할거기 때문에 굳이 필요 없다.

보면 알겠지만 대체로 다 비슷하다. 그래서 이 중복을 줄이기 위해 많은 사람들이 시도해보고, 한 천재가 인터페이스로 만들어서 data jpa에서 같이 해보자고 해서 만든거다.

위가 직접 만든 클래스고 밑이 data jpa로 인터페이스로만 한건데 둘 다 잘 된다. 즉, 내가 직접 만든 기본적인 CRUD는 정의하지 않아도 이미 있다.

구현체는 만든 적 없고 인터페이스만 있는데도 되는 이유는 스프링이 인터페이스를 보고 자기가 프록시 클래스 구현체로 만들어 사용하기 때문. 그래서 주입해야 하는 거고.

 

실제 인터페이스 내용을 보면 함수들이 미리 정의되어 있다.

 

상속하는 JpaRepository는 특화 기능이고 더 공통 기능은 이게 상속하는 PagingAndSortingRepository. 이런식으로 공통일수록 더 부모에 있고 한다.

 

common은 어느 db든 공통으로 쓰일만한 것들이 구현되어 있고 각 db 특화는 data-jpa 안에.

 

 

 

 

 

스프링 데이터 JPA부터는 공통보단 조금 더 특화적인 것들이 들어있다.