해결된 질문
작성
·
368
답변 1
1
안녕하세요, Iwisekiml님! 좋은 질문 감사드립니다! 😊
말씀해주신 것처럼 BookRepository
를 repository 패키지에 넣는 방법도 있습니다!
다만, 저는 매우 개인적으로 JpaRepository
와 같이 스프링이 제공하는 기본 Repository는 해당 도메인과 함께 놓는 것을 선호하는 편입니다. 그 이유는 다음과 같습니다!!
프로젝트가 커지게 되면 패키지를 타고 들어가 클래스를 찾는 경우보다, command + shift + O (Ctrl + Shift + N) 와 같은 단축키를 사용해 특정 클래스를 찾는 경우가 많아집니다! 즉, BookRepository를 찾고 싶을 경우 위의 단축키 -> BookRepo 입력 -> 화살표 아래로 선택 -> 엔터와 같은 순서로 찾게 되는거죠!
프로젝트 초반에 도메인 별로 repository/domain
패키지를 만드는 것이 번거롭게 느껴질 때가 있습니다.
스프링이 제공하는 기본 Repository는 DB에 접근할 수 있는 객체이기도 하지만, Entity (Domain 객체)를 저장하고 있는 저장소 라고 볼 수도 있습니다. 따라서 domain
패키지에 기본 Repository가 있다고 하더라도 domain 저장소
이기 때문에 어색하지 않을 수 있습니다!
다시 한 번 강조드리면, 제가 강의에서 보여드린 예시는 이번 프로젝트에 적합하다고 개인적으로 생각한 패키지 구성이라는 점입니다! 패키지를 구성하는 방법에는 정답이 없습니다! 이번 프로젝트 처럼 계층별 -> 도메인별로 패키지를 만들기도 하고, 어떤 분은 도메인별 -> 계층별 패키지 구성을 선호하시기도 합니다! 또 어떤 분은 계층형 아키텍처의 패키지 구조보다는 육각형 아키텍처의 패키지 구조를 사용하시기도 하죠!
감사합니다!! 🙏