inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Spring Boot를 활용하여 채팅 플랫폼 만들어보기

Entity와 Lazy Fetch에 관하여

Package 구성

해결된 질문

146

조은형

작성한 질문수 8

0

domain안에 따로 repository를 만든 이유가 있나요?

mysql spring-boot jpa jwt websocket

답변 2

0

Hong

이건 개인적인 스타일이라고 생각하셔도 됩니다.
외부에 빼는 방법도 있겠지만, 저는 항상 개발할때마다 API의 경우에는 domain에서만 repository를 주로 사용을 하기 떄문에, 내부에서 관리를 하는 편입니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 조은형님.

Spring Boot로 개발을 진행하면서 프로젝트의 구조를 구성하는 것은 중요한 부분입니다. domain 안에 repository를 따로 만드는 경우는 보통 다음과 같은 이유 때문입니다:

  1. 관심사의 분리: 프로젝트의 각 구성 요소를 명확히 분리하여, 각 부분이 자신의 역할에만 집중할 수 있게 합니다. domain 패키지 내에 repository를 두는 것은 도메인 모델과 해당 모델에 대한 데이터 접근 로직을 함께 관리하여 코드의 응집도를 높일 수 있습니다.

  2. 도메인 중심 설계: 도메인 패키지가 엔티티와 그와 관련된 비즈니스 로직을 포함하고 있기 때문에, 리포지토리도 같은 패키지에 위치하여 자연스럽게 연관된 코드와 결합됩니다. 이는 도메인 중심 설계(DDD; Domain-Driven Design)에서 권장되는 방식입니다.

  3. 유지보수의 편리함: 관련된 코드가 한 곳에 모여 있으면 수정이나 기능 추가 시에도 더 직관적으로 작업할 수 있습니다. 코드 탐색이 쉽고, 변경 시 영향 범위를 파악하기 쉬워집니다.

혹시 추가적으로 이 설명이 완전히 납득되지 않거나 더 궁금한 점이 있다면, 아래 유사한 질문을 확인해 보실 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

'디스패처(Dispatcher)' 훅 패턴 적용이 다 안되

0

9

1

usecase 사용 기준

0

9

0

실습용 테이블, 데이터 생성 파일 있을까요?

1

15

2

android crud중 c 영상이 12초만 있는 잘린 영상이에요.

0

22

2

설정 정보 없이 임베디드 데이터베이스 생성

0

17

1

비전공자인데 AI가 발전한 요즘 백엔드로 진로를 하고 싶으면 어떤식으로 공부를 해야 하는지 알 수 있을까요???

0

63

1

STOMP에서 메세지를 전송하는 방법에 대해

0

91

1

JWTDecodeException 에러가 나옵니다.

0

146

2

서비스 구동하며 테스트와 디버깅하기 - 1 에서 기동하는 방법

0

120

2

MySQLConfig 관련 질문있습니다.

0

170

2

ChatListResponse에 @Valid을 붙인 이유

0

134

2

checkTokenForRefresh에 대해 궁금한점

0

114

2

Client 파일은 어떤 IDE로 실행시키나요??

0

188

2

독립적인 Transactional을 둔 이유

2

141

2

springdoc이 무슨 설정인가요??

1

124

2

JwtProvider 를 Component 로 선언하신 이유가 궁금합니다.

0

201

2

안녕하세요 연관관계에 대해 질문이 있습니다.

0

145

2

안녕하세요 MySqlConfig 설정에 대해 질문이 있습니다.

0

125

2

MySQL을 미리 설정을 해놔야할까요?

0

176

3

./gradlew clean build 하면 오류가 생깁니다.

0

1185

2

작동하는 방법

0

175

2

@Transactional(transactionManager = "createChatTransacationMansger") 질문 있습니다.

0

184

2

강의 들으면서 블로그에 올려도 될까요?

0

183

2

실 서비스 환경 문의

1

262

2