inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 부트 개념과 활용

Service와 Repository의 관계에 대한 질문입니다!

해결된 질문

4203

김태수

작성한 질문수 3

0

좋은 강의 정말 감사합니다. 스프링 학습에 있어 너무 좋은 기회가 되었습니다.

강의를 듣고 예제 연습을 할때는 대부분 1개의 Service는 1개의  Repository와 연동? 매핑? 되어있습니다!

질문을 요약하자면 

1. 1개의 Request의 기능에서 2개 이상의 DTO에 대한 query를 실행해야 할때

  - 현재 제가 작성한 코드에는 1개의 Service 객체에서 2개의 Repository를 @Autowired하여 사용하고 있습니다. 지금 사용하고 있는 방법이 올바른지(보안, 효율성 측면) 궁금합니다. 

  - 제가 추가적으로 생각한 방법은 2개 이상의 DTO를 사용하려고 추가적인 Repository를 사용하니 Request를 받을 때 Body에서 2개 이상의 DTO를 묶어주는 객체를 받아오고 Controller에서 묶음으로 받은 객체를 사용할 각각의 DTO로 묶음해제하여 Controller객체에서 각 DTO 객체에 맞는 Service 메소드를 실행하는 방법인데 이방법이 맞는지 궁금합니다.

  - 만약 위 2개의 방법이 올바르지 않다면 어떤 방법으로 하면 효율적인지 궁금합니다.

2. 1개의 Service객체를 이용하여 Service를 처리하는데 다른 Service 객체를 사용해야 하는 경우, 다른 Service 객체를 @Autowired하여 사용하는 것이 효율적인지 궁금합니다.

질문이 너무 길고 장황하여 죄송합니다.

질문에 답변을 해주시면 정말 감사하겠습니다. 혹시 해당 질문에 대한 관련 사이트를 알려주시면 참고하여 찾아보겠습니다.

감사합니다.

spring-boot java spring

답변 2

3

백기선

어떤게 맞고 틀리고 그런건 없습니다. 본인이 또는 팀내에서 쓰기 편하면 그걸로도 괜찮은 겁니다. 저는 서비스 객체 하나에서 여러 리파지토리를 쓰기도 하고, 컨트롤러에서 서비스와 리파지토리를 모두 쓰기도 합니다. 

서비스에서 다른 서비스를 주입받아 사용하는것도 당연히 가능한 일이고 중복 코드를 제거한다는 관점에선 효율적이죠.

애플리케이션 아키텍처는 다양한 형태가 있습니다.

양파형: https://www.codeguru.com/csharp/csharp/cs_misc/designtechniques/understanding-onion-architecture.html
계층형: https://dzone.com/articles/layered-architecture-is-good

이건 약간 다르지만 DDD도 한번쯤 봐두시면 좋겠네요.

https://medium.com/modern-software-architecture/modern-software-architecture-1-domain-driven-design-f06fad8695f9

감사합니다.

0

김태수

빠르고 좋은 답변 감사합니다 :)

자동설정 만들기 1부의 Holoman 관련 문의 드립니다.

0

84

1

라이브러리 개발 예제 강의를 찾습니다 !!!

0

225

2

강의 진행되로 똑같이 했는데 jquery가 실행되지 않았는데

0

310

1

HateOas 가 업데이트가 되어서, "Spring HATEOAS" 코드를 아래처럼 하셔야 될겁니다.

0

364

2

springSecurit jwt에 대해서 질문드립니다.

0

343

1

섹션2 자동설정 부분 질문있습니다.

0

249

1

mongo shell 명령어 대체 mongo -> mongosh

0

1012

1

데이터베이스 마이그레이션 강의에서 질문 있습니다

0

707

0

자동 설정 만들기 2부에서 질문 있습니다

0

413

1

의존성 관리 응용 부분에서 질문 있습니다

0

321

0

Intellij 에서 빈 주입할때 계속 빨간줄이 뜨는데 어떻게 고쳐야 할까요

0

1184

1

자동설정으로 다른 프로젝트 빈 사용(번외질문)

0

363

0

CREATE TABLE 예제 따라하다가 'expected "identifier"; SQL statement:' 오류나는 경우

2

2212

2

junit5 관련하여 질문드립니다.

0

307

2

맨 처음 프로젝트 생성 후 Run 시 에러

0

535

2

외부 설정과 관련된 질문입니다.

0

255

1

test와 runner account.setEmail에 동일한 값 입력

0

323

1

컨트롤러 view 호출

0

265

1

JVM 과 arguments 는 뭔가요???

0

1170

1

pom 테그 에러

0

355

1

안녕하십니까 기선님!!!!! webclient와 비동기관련 질문요청드립니다

0

1554

1

webEnvironment 내장 톰캣

0

228

1

application.yml 파일 분리

0

393

1

안녕하세요 기선님 서블릿 어플리케이션 구조에 대해 질문드립니다

0

281

1