해결된 질문
작성
·
478
4
안녕하세요
지금 현재 JPA에 대해 공부중입니다
근데 JPA사용방법에 대해 궁금한점이 하나있어서 이렇게 질문드립니다.
JPA에 대해 다른 강좌를 듣고 지금 김영한님의 스프링부트 JPA활용을 듣고 있는데요
제가 따로 JPA에 대해 학습을 할때 JpaRepository를 상속하여 Interface를 생성후에 그 안에서 필요에 따라 nativeQuery 또는 finddByUserIdAndUserName 과 같은 형태의 custom한 JpaRepository를 사용하여 데이터 조회 및 기타 crud쿼리를 실행하였었는데
김영한님의 강좌를 듣다보니 interface의 형태가 아닌 Repository클래스를 만들어서 EntityManager를 사용하여 데이터를 핸들링하는것을 볼수 있었습니다.
아직 강의를 다듣지 않은상태에서 이렇게 질문드리는게 조심스럽지만 저 두가지의 방식에 대한 차이와 실무에서는 전자의 형태는 잘 사용하지 않는지에 대해 학습하던도중 궁금증이 생겨 이렇게 용기내어 질문드려 봅니다 ^^;;
답변 5
9
안녕하세요 형짱님^^
JpaRepository를 사용하는 것은 스프링 데이터 JPA를 통해서 JPA를 사용하는 방법입니다.
스프링 데이터 JPA는 JPA를 편리하게 사용할 수 있도록 도와주는 라이브러리 입니다. 따라서 스프링 데이터 JPA도 중요하지만 근본적으로 JPA 자체를 잘 이해하고 사용하는것이 실무에서는 더욱 중요합니다.
이런 이유 때문에 이 강의에서는 의도적으로 스프링 데이터 JPA를 배제하고, 순수하게 JPA를 사용하도록 했습니다. JPA 자체를 잘 다루게 되면, 스프링 데이터 JPA는 JPA를 편리하게 사용하도록 도와주는 것이기 때문에 스프링 데이터 JPA도 더 잘 이해할 수 있습니다^^
저도 실무에서는 스프링 데이터 JPA를 즐겨 사용하기 때문에, 스프링 데이터 JPA 위주로 사용하고, 스프링 데이터 JPA로 해결할 수 없는 복잡한 상황이 오면 그때는 JPA를 직접 사용합니다^^
5
2
1
1
빠른답변정말감사드립니다^^
답변해주신내용을보니 이제퍼즐조각이 맞춰지네요
스프링데이터JPA 이론 강의를먼저듣고 김영한님의 실무 강좌를 듣다보니 앞서질문드린내용에대한 궁금증이 발생한듯하네요
남은 강의도 꾸준히듣고 궁금증 생기면 다시 질문드리도록하겠습니다
다시한번 빠른답변 감사드립니다