작성
·
392
·
수정됨
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오) 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예
[질문 내용]
https://www.inflearn.com/questions/116505/%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4
위 내용을 읽고 이해한게 맞는지 질문하게 되었습니다.
SpringDataJpaMemberRepository 인터페이스가 JpaRepository와 MemberRepository 인터페이스를 상속받는데
"MemberRepository에 정의된 추상 메서드들을 SpringDataJpaMemberRepository에서 재정의할필요없이 JpaRepository 인터페이스에 기본적으로 정의되어 있는걸 상속받기 때문에 재정의 없이 바로 사용할 수 있다" 라고 이해했습니다.
그러나 만약 JpaRepository에서 정의된 기본 기능 외에 다른 기능이 필요하다면
SpringDataJpaMemberRepository 또는 부모인 MemberRepository에서 기능을 추가할 수 있는데,
SpringDataJpaMemberRepository에 추가하게 되면 스프링데이터jpa의 의존도가 올라가지만 스프링데이터jpa가 제공하는 편의기능으로 사용이 사용하기 편하게 되고
MemberRepository에 기능을 추가하게 되면 SpringDataJpaMemberRepository 에 간단히 내용을 적어 편하게 사용하는것보다는 복잡하지만, 대신에 스프링데이터Jpa의 의존도는 떨어진다.
라고 이해했는데 맞는지 확인해주실 수 있으신가요?? :)
답변 1
0
안녕하세요. 김동현님
여기서 질문의 핵심은 클라이언트 관점에서 봐야합니다.
클라이언트가 SpringDataJpaMemberRepository를 주입받게 되면 MemberRepository는 물론이고, 스프링 데이터 JPA 기술에도 의존적이게 됩니다.
반면에 클라이언트가 MemberRepository를 주입받게 되면 스프링 데이터 JPA 기술을 의존하지 않게 됩니다.
감사합니다.