SpringDataJPA는 구현체가 아니라 인터페이스를 만든다. 그러면 또 프록시가 구현체를 만들어 준다. SpringDataJPA는 이름으로 쿼리를 자동으로 생성해준다. 예를 들어 findByEmailAndName() 이렇게 하면 select m from Member m where m.email=? and m.name=? 이렇게 email과 name findBy 는 select 이렇게 JPQL을 생성해 줌. 인터페이스에 쿼리작성도 가능하다. 메소드에 @Query("select u from User u where u.emailAddress=?" User findByEmailAddress(String emailAddress); 또, @Query(value="sql문", nativeQurey=true) 하면..