인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

성장하자님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

30강. 책 생성 API 개발하기

30강 질문

작성

·

47

·

수정됨

0

repository를 user를 다룰때는 repository라는 패키지를 따로 만들어서 했는데, 지금 강의의 book에 관한 repositorty를 따로 만들지 않고 인터페이스만 객체와 같은 패키지에 만들어서 extends로 jpa를 받기 때문에 따로 만들 필요가 없어서 이렇게 만든거라고 이해 했는데 맞게 이해한걸까요? 즉, jpa를 익스텐즈한 인테페이스 덕분에 따로 sql문법을 작성하지 않았다는 말이 맞을까요?> 추가로 왜 객체가 있는 패키지에 인터페이스를 만드는 이유가 띠로 있나요?

 

답변 1

0

최태현님의 프로필 이미지
최태현
지식공유자

안녕하세요! 🙂 성장하자님~ 항상 디테일한 부분까지 질문 주셔서 감사합니다.

 

repository를 user를 다룰때는 repository라는 패키지를 따로 만들어서 했는데, 지금 강의의 book에 관한 repositorty를 따로 만들지 않고 인터페이스만 객체와 같은 패키지에 만들어서 extends로 jpa를 받기 때문에 따로 만들 필요가 없어서 이렇게 만든거라고 이해 했는데 맞게 이해한걸까요?

 

제가 질문을 정확히 이해한 것인지 모르겠지만

  • JpaRepository를 extends하는 interface를 만들 때는 패키지를 repository 로 분리하지 않고,

  • JdbcTemplate을 사용하는 Repository를 만들 때는 repository 패키지를 왜 분리했는가

가 질문인 것 처럼 느껴집니다!

 

결론부터 말씀드리면... 개인 취향에 가깝습니다. 🙂

어떤 분들은

  • JpaRepository 이건 SQL을 직접 사용하는 Repository 이건 repository패키지로 분리하는 것을 선호하시고요!

어떤 분들은

  • @Entity 와 같은 패키지에 JpaRepository 및 관련 Repository (ex. Querydsl) 을 함께 넣으시는 것을 선호하시기도 합니다.

 

저는 개인적으로 후자의 취향을 갖고 있고, 프로젝트 내 일관성만 유지되면 어떤 방식이건 크게 다르지 않다 라고 생각하고 있습니다. 감사합니다. 🙏