인프런 커뮤니티 질문&답변
스캔대상 질문드립니다.
작성
·
45
0
안녕하세요. 다른질문에도 동일하게 있는데 답변이 조금 모호한거같아서 다시 질문 드립니다.
강의 자료의 해당 강의 부분을 보면
org.springframework.data.repository.Repository 를 구현한 클래스는 스캔 대상
라고 되어있는데, 제가 이해한 바로는 이 부분이
org.springframework.data.jpa.repository.JpaRepository 를 상속받은 인터페이스는 스캔 대상
이렇게 수정되어야 할 것 같은데 맞을까요..??
퀴즈
순수 JPA 리포지토리 구현과 비교했을 때, Spring Data JPA 사용의 주요 장점은 무엇일까요?
복잡한 SQL 쿼리를 직접 작성할 필요가 전혀 없습니다.
기본적인 CRUD 작업을 위한 구현 코드를 직접 작성할 필요가 없습니다.
트랜잭션 관리를 수동으로 처리하여 더 세밀한 제어가 가능합니다.
엔티티의 변경 감지(Dirty Checking) 기능이 새롭게 추가됩니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 오리쉐리님.
스프링 데이터 JPA에서 스캔 대상이 되는 것은 [org.springframework.data.repository.Repository](http://org.springframework.data.repository.Repository) 인터페이스를 구현하거나 이를 확장한 인터페이스들입니다. 따라서 [org.springframework.data.jpa.repository.JpaRepository](http://org.springframework.data.jpa.repository.JpaRepository)를 상속받은 인터페이스도 스캔 대상에 포함됩니다.
- 스캔 대상: 스프링 부트는
[org.springframework.data.repository.Repository](http://org.springframework.data.repository.Repository)인터페이스를 상속받은 모든 인터페이스를 컴포넌트 스캔의 대상으로 인식합니다. 이는 스프링 데이터 JPA가 해당 인터페이스들의 구현체를 런타임에 자동으로 생성하게 합니다.
- JpaRepository:
[org.springframework.data.jpa.repository.JpaRepository](http://org.springframework.data.jpa.repository.JpaRepository)는[org.springframework.data.repository.Repository](http://org.springframework.data.repository.Repository)의 하위 인터페이스로, JPA에 특화된 여러 기능을 추가로 제공하는 역할을 합니다.
이 점에서, [org.springframework.data.jpa.repository.JpaRepository](http://org.springframework.data.jpa.repository.JpaRepository)를 상속받은 인터페이스는 모두 스캔 대상이 되며, 해당 인터페이스는 이미 기본적인 CRUD 기능을 제공 받습니다.
관련하여 읽어보시면 좋은 게시물이 있습니다:
- org.springframework.data.repository.Repository를 구현한 클래스??
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





