controller에서 service에 id를 넘기는 방법
163
작성한 질문수 1
안녕하세요
문의사항이 있어 질문드립니다.
일반적인 controller, service, repository layer 아키텍처를 구성할때,
answer controller의 특정 api가 파라미터를 통해 question 도메인의 id를 전달받은 경우가 있습니다.
answer controller는 question 엔티티를 controller에서 찾아 전달할 수도 있고, answer repository에 그대로 question Id를 전달하여 answer service가 question 엔티티를 찾도록 위임할 수도 있습니다.
이때 어떤 방법을 선택하는 것이 더 객체지향이나 유지보수 측면에서 좋을지 조언을 얻고 싶습니다.
예상되는 장단점은 다음과 같습니다.
Controller에서 questionId를 그대로 전달할 경우
장점
Controller의 코드가 복잡해지지 않고 web 계층 에만 집중할 수 있음
단점
service 계층에서 많은 일을 해야 함
controller에서 Question 엔티티를 조회하여 전달할 경우
장점
service 인터페이스가 깔끔해짐
단점
controller가 조금 더 복잡해진다.
question 엔티티를 조회하는 것이, 과연 controller의 역할인지 의문
답변 1
0
안녕하세요. 다메카솔님, 공식 서포터즈 y2gcoder입니다.
저는 식별자만 서비스 파라미터로 넘겨주는 것을 추천합니다!
말씀하신 것처럼 컨트롤러 계층에서 도메인 엔티티를 알고 있으면 좀 더 컨트롤러 계층이 복잡해질 수 있습니다.
컨트롤러는 HTTP 요청과 관련된 역할만 수행하고, 비즈니스 로직이나 비즈니스 로직의 순서를 제어하는 부분은 서비스 계층에 위임하는 것이 좋다고 생각합니다:)
다만 모든 프로젝트는 요구사항이나 비용에 따라 다를 수 있으니 다메카솔님의 상황에 맞는 선택을 하시는 것이 제일입니다!
감사합니다.
servlet과 container에 대한 질문입니다
0
25
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
64
1
jsp 의존성 수정 요청
0
80
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
143
1
save() 메서드 문의
0
67
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
101
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
97
1
RequestMapping을 이용한 핸들러, 어댑터
0
119
2
save 후 결과화면
0
89
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
178
1
수업 코드 제공 관련 문의
0
97
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
100
3
파일 오픈 시
0
70
1
스프링 배치 관련
0
78
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
96
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
79
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
75
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
139
1
html 변경하는 부분 적용 문제
0
103
1
한글 깨짐
0
77
2





