inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

30강. 책 생성 API 개발하기

BookRepository 위치

해결된 질문

430

lwisekiml

작성한 질문수 18

4

혹시 BookRepository를 domain/book 아래에 만드신 이유가 있으신가요??

 

BookRepository이니까 repository/book 아래 만드는게 나중에 찾을 때도 편할거 같고 좀더 직관적인 거같아서 질문드립니다.

java spring aws mysql spring-boot jpa

답변 1

1

최태현

안녕하세요, Iwisekiml님! 좋은 질문 감사드립니다! 😊

말씀해주신 것처럼 BookRepository 를 repository 패키지에 넣는 방법도 있습니다!

 

다만, 저는 매우 개인적으로 JpaRepository 와 같이 스프링이 제공하는 기본 Repository는 해당 도메인과 함께 놓는 것을 선호하는 편입니다. 그 이유는 다음과 같습니다!!

  1. 프로젝트가 커지게 되면 패키지를 타고 들어가 클래스를 찾는 경우보다, command + shift + O (Ctrl + Shift + N) 와 같은 단축키를 사용해 특정 클래스를 찾는 경우가 많아집니다! 즉, BookRepository를 찾고 싶을 경우 위의 단축키 -> BookRepo 입력 -> 화살표 아래로 선택 -> 엔터와 같은 순서로 찾게 되는거죠!

  2. 프로젝트 초반에 도메인 별로 repository/domain 패키지를 만드는 것이 번거롭게 느껴질 때가 있습니다.

  3. 스프링이 제공하는 기본 Repository는 DB에 접근할 수 있는 객체이기도 하지만, Entity (Domain 객체)를 저장하고 있는 저장소 라고 볼 수도 있습니다. 따라서 domain 패키지에 기본 Repository가 있다고 하더라도 domain 저장소 이기 때문에 어색하지 않을 수 있습니다!

    1. DAO와 Repository - https://www.inflearn.com/questions/111159/domain%EA%B3%BC-repository-%EC%A7%88%EB%AC%B8

 

다시 한 번 강조드리면, 제가 강의에서 보여드린 예시는 이번 프로젝트에 적합하다고 개인적으로 생각한 패키지 구성이라는 점입니다! 패키지를 구성하는 방법에는 정답이 없습니다! 이번 프로젝트 처럼 계층별 -> 도메인별로 패키지를 만들기도 하고, 어떤 분은 도메인별 -> 계층별 패키지 구성을 선호하시기도 합니다! 또 어떤 분은 계층형 아키텍처의 패키지 구조보다는 육각형 아키텍처의 패키지 구조를 사용하시기도 하죠!

 

https://www.inflearn.com/questions/16046/%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8-%ED%8F%B4%EB%8D%94-%EA%B5%AC%EC%A1%B0%EC%99%80-%EA%B0%95%EC%9D%98-%EC%9D%BC%EC%A0%95%EC%97%90-%EA%B4%80%ED%95%98%EC%97%AC-%EC%A7%88%EB%AC%B8%EC%9D%B4-%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4 를 함께 보셔도 좋을 것 같습니다!!

 

감사합니다!! 🙏

패키지 구분에 대해 궁금한게 있습니다

0

27

2

리액트 관련 질문이 있습니다.

0

65

2

스프링부트 버전

0

78

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

59

2

33강. UserLoanHistory의 관계성에 대한 질문

1

56

2

Java JDK 버전 문의의 건

0

136

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

90

3

h2 console 접속했을 테이블 질문

1

67

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

81

2

15강. updateUser() 질문

0

57

2

깃허브 질

0

86

2

여기까지 다 끝냈다고 하셨는데

0

80

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

53

1

spring 개념적인 질문

0

72

2

인텔리제이 샘플코드 실행 안됨 오류

0

144

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

88

1

마이그레이션 오류입니다.

0

176

3

Whitelabel Error Page 오류가 났습니다.

0

170

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

94

3

궁금한게 있습니다.

0

61

2

DTO 관련

0

71

2

궁금한게 있습니다!

0

70

2