작성
·
222
1
스프링 데이터 JPA 회원 리포지토리를 사용하기 위해서 강의에서는
이렇게 돼있는데
이렇게 하면 안돼나요??? SpringDataJpaMemberRepository의 기능을 사용하는거니깐 제 부족한 논리로는 이게 맞는거 같아서요..ㅠㅠ
답변 3
0
qkrwnstns52님 맞습니다. 그냥 MemberRepository의 기능만 사용하게 됩니다.
만약 SpringDataJpaMemberRepository의 기능이 모두 필요하면, 향후 확장성을 포기하고, SpringDataJpaMemberRepository를 사용하는 것이 맞습니다.
다형성과 OCP 원칙을 지키는 확장성이냐, 아니면 편리하게 스프링 데이터 JPA가 제공하는 모든 기능을 사용하는 실용성이냐에 따라 트레이드 오프가 있는 것이지요.
관련해서 더 자세한 내용은 다음 강의를 참고해주세요^^
감사합니다.
0
SpringDataJpaMemberRepository가 JpaRepository와 MemberRepository의 기능들을 갖고 있는 인터페이스 아닌가요??
캡처 1 사진처럼하게 돼면 그냥 MemberRepository의 기능만 사용하게 되는게 아닌가요??? ㅠㅠ 지식이 얕아서 죄송합니다..
0
안녕하세요. qkrwnstns52님
자바 다형성 부분을 공부해보시면 이게 어떤 가치가 있는지 이해할 수 있을거에요.
이 부분을 SpringDataJpaMemberRepository로 적어두면 미래에 SpringDataJpaMemberRepository를 JdbcTemplateMemberRepository로 변경할 때 MemberService의 코드도 변경해야 합니다.
그런데 첫 그림처럼 MemberRepository 인터페이스를 통해서 주입받도록 해두면, SpringDataJpaMemberRepository를 JdbcTemplateMemberRepository로 변경할 때 MemberService의 코드를 전혀 변경하지 않아도 됩니다.
이게 바로 OCP 원칙을 지키는 코드이지요^^
객체지향, 다형성, OCP에 대한 자세한 내용은 다음 강의인 스프링 핵심 원리 - 기본편에서 자세히 설명해드립니다.
감사합니다.