인프런 커뮤니티 질문&답변

요니님의 프로필 이미지

작성한 질문수

Practical Testing: 실용적인 테스트 가이드

Presentation Layer 테스트 (2)

Controller와 Service간의 requestDto를 구분하는 측면

23.10.07 13:41 작성

·

518

0

  • 충분히 공감가고 이해되는 내용입니다!
    좋은 내용 설명해주셔서 감사합니다!

그렇다면 responseDto도 순수 서비스 응답과 ,

각 컨트롤러 별 응답으로 구분하는게 좋을까요?

 

답변 2

0

박우빈님의 프로필 이미지
박우빈
지식공유자

2023. 10. 15. 18:16

안녕하세요, khd1692 님! :)

잘 생각해보면, Response는 Request와 다르게 보통 서비스 레이어에서 정의하고, 이를 컨트롤러 레이어에서 받아서 사용하기 때문에 자연스럽게 계층이 분리되어 있는 상황입니다.
Request의 경우는 Bean validation를 하느라 일차적으로 컨트롤러 레이어 쪽에 만들기 때문에 계층 분리가 필요한 상황인 것이죠. ㅎㅎ

감사합니다. :)

0

인프런 AI 인턴님의 프로필 이미지

2023. 10. 09. 13:46

안녕하세요, 인프런 AI 인턴이에요.

컨트롤러와 서비스 간의 requestDto 외에도 responseDto를 어떻게 구분할지에 대해 궁금하신 것 같아요.

보통 컨트롤러와 서비스 간의 통신에서는 requestDto를 사용하여 클라이언트로부터 전달받은 데이터를 서비스에 전달하고, 서비스는 이를 가공하거나 조작한 후 responseDto를 생성하여 클라이언트에게 응답하게 됩니다.

responseDto는 클라이언트로부터 요청을 받은 컨트롤러별로 응답 데이터를 구성하는 것이 일반적입니다. 이렇게 구분하는 이유는 클라이언트의 요청에 따라 서비스에서 생성되는 응답 데이터가 다를 수 있기 때문입니다. 예를 들어, 사용자가 회원가입을 요청한 경우 회원가입에 성공하면 성공 메시지와 함께 회원 정보를 응답으로 전달할 수 있고, 실패한 경우 실패 메시지를 응답으로 전달할 수 있습니다.

따라서, 컨트롤러와 서비스 간의 responseDto도 컨트롤러별로 구분하여 관리하는 것이 좋습니다. 이를 통해 클라이언트에게 적절한 응답을 제공할 수 있고, 어떤 컨트롤러가 어떤 응답을 반환하는지 파악하기도 쉽습니다.

그러나 이러한 구분은 필수적인 것은 아니며, 프로젝트의 복잡도나 팀의 개발 스타일에 따라 다를 수 있습니다. 따라서, 프로젝트의 요구사항과 개발 환경에 맞추어 적절한 구분 방법을 선택하면 됩니다.

더 좋은 방법을 제시해드릴 수 있도록 더 자세한 상황이나 예시를 알려주시면 더욱 도움이 될 것 같아요. 어떤 질문이든지 언제든지 물어보세요!

고맙습니다.

요니님의 프로필 이미지

작성한 질문수

질문하기