JPA Repository 질문이 있습니다!
안녕하세요!
기존 PostRepository를 사용하다가 JPA 도입으로 JpaPostRepository가 새로 생겼는데, JpaPostRepository 클래스에 재구현을 하기 위해 default 메서드를 추가했는데 그 방법이 아닌 PostRepositoryImpl 와 같은 구현체를 만들어서 구현해도 무방할까요? 실무에서는 어떤 방식이 더 자주 사용 되는지 궁금합니다.
Câu trả lời 2
1
안녕하세요 Aurora 님
JpaPostRepository 에 findAllPaged 메소드만 재정의한 이유는, PostRepository 에 있는 save, findAll, findById, deleteById 는 JpaRepository 의 기본 구현체가 이 메소드를 지원하는 반면, findAllPaged 는 그렇지 않기 때문에 재정의했습니다.
즉, PostRepository 라는 인터페이스를 그대로 사용하고 싶은데, JpaRepository 의 기능 추가하여 사용하고 싶어서 JpaPostRepository 라는 중간 인터페이스를 사용한 형태입니다.
PostRepositoryImpl 같은 구현체를 직접 만들어서 사용하셔도 됩니다. 다만 강의의도는 위에서 말씀드린 것처럼 Spring Data Jpa 가 지원하는 JpaRepository 인터페이스를 사용하기 위함이 크다고 생각해주시면 됩니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
Aurora님께서 JPA와 관련된 궁금증을 가지고 계시네요. JPA를 도입하면서 Repository를 구현하는 방법은 여러 가지가 있습니다. 질문하신 대로 두 가지 접근 방법에 대해 설명드릴게요.
Default 메서드를 사용한 JpaPostRepository: JpaPostRepository 인터페이스에
default메서드를 정의하여 인터페이스 자체에서 기본 구현을 제공할 수 있습니다. 이 방법은 인터페이스의 기능 확장이 비교적 간단하게 이루어질 수 있고, 인터페이스의 일관성을 유지할 수 있다는 장점이 있습니다.PostRepositoryImpl과 같은 구현체를 사용하는 방법: 기존의 Repository 인터페이스를 확장하거나 직접 구현체 클래스를 작성하여 필요한 메서드를 추가하는 방식입니다. 이 방법은 복잡한 비즈니스 로직이나 여러 인터페이스를 구현해야 할 때 유리합니다. 실무에서는 커스터마이징이 많거나 복잡한 쿼리 로직이 필요한 경우 구현체 클래스를 사용하여 클래스를 명확하게 분리하고 관리하는 경우가 많습니다.
실무에서는 프로젝트의 요구사항과 팀의 스타일에 따라 달라질 수 있지만, 복잡한 로직을 가지고 있거나 여러 개발자가 함께 작업할 때는 구체적인 구현체 클래스를 작성하는 것이 더 선호됩니다. 이는 유지보수성과 코드의 명료성을 높이기 때문입니다.
위 내용을 바탕으로 만약 관련된 추가 설명이나 예시가 필요하신 경우 기존 게시글을 참고하시면 큰 도움이 될 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
맥북으로 RDP 연결 질문
0
13
1
라우팅 테이블 설정 중 궁금한게 있습니다.
0
26
1
프롬프트, 스킬, sub-agent
0
16
0
라이브 운영중인 환경의 테이블에 인덱스 추가시 고려사항
0
18
2
수강 연장 가능하면 요청 드립니다.
0
15
2
RepositoryTest의 패키지 위치가 domain인 이유
0
13
1
페이지네이션 처리를 쿼리에서 하는 방식 질문
1
30
1
EC2 실습 중 docker-compose / docker ps 실행 시 권한 오류 문의
2
66
1
gradlew, java -jar 로 애플리케이션 실행시키기에서
1
42
1
application.yaml에서 enabled: true 인식 안됨
3
108
4
영상 안보임
0
81
4
중간 결과물을 다운 받을 수 있는 곳이 있나요?
1
73
2
여러 컨테이너 사용시 사용할 포트 번호는 무엇으로 하면 되나요?
1
59
1
URL 오타 방지
1
55
1
배포 후 Entity 수정 관련
1
75
1
EC2 HTTPS에 관련하여 질문 드립니다!
1
61
2
EC2 <-> RDS 연동 후 로컬에서의 Docker에 대해 궁금한 점이 있습니다.
1
69
1
Docker에 관하여 궁금한 점이 있습니다!
1
56
1
댓글 생성, 삭제 시 게시글의 댓글 수 증감 로직 질문
1
76
1
https 설정 질문
1
93
2
섹션 5-26. AWS EC2 서버 배포 파트 질문입니다.
1
95
2
강의내용 중 질문드립니다.
1
150
2
jakarta persistence 플러그인은 intellij ultimate에서만 사용가능하다고 나오네요.
1
131
2
다운받은 강의자료 압축풀기가 안되요
1
116
2

