Repository 인터페이스를 만들고 JpaRepository를 상속받아 사용한다. 상속 관계를 다이어그램으로 살펴보면 위와 같고 JpaRepository를 상속받으므로써 이미 구현되어있는 save(), findAll() 등과 같은 필요한 거의 모든 메서드를 바로 사용할 수 있다. 스프링 데이터 JPA는 JpaRepository 라는 인터페이스를 제공하는데, 여기에 기본적인 CRUD 기능이 모두 제공된다. (일반적으로 상상할 수 있는 모든 기능이 다 포함되어 있다.) 하지만 interface이기 때문에 구현체가 필요한거 아니야?? 구현체도 스프링 데이터 JPA가 알아서 만들고 주입해준다. 위와 같은 메서드는 모두 필요없어진다. findByName은 공통할 수 없으므로 JpaRepository에서 제공하..