인프런 커뮤니티 질문&답변
답변 2
3
안녕하세요. 시환님
답변을 드리고 싶은데, 제가 이해를 잘 못하는 부분이 있어서 추가로 여쭈어볼께요.
Q: 컨트롤러에서 파라미터를 Request로 받은 후?
이 부분이 잘 이해가 안됩니다. 여기서 질문하신 Request가 HttpRequest인지, 엔티티인지, Dto인지 구체적으로 설명부탁드릴께요.
Q: 컨트롤러에서 RequestDto로 받고 -> 서비스처리 -> Response로 반환이 더 보편적인 방법인가요?
이 부분도 어떤 것을 물어보시는 것인지 좀 더 구체적으로 풀어서 설명 부탁드릴께요^
질문이 혹시 컨트롤러에서 서비스 계층으로 매게변수를 넘길 때 Dto로 넘기는게 좋은지 엔티티로 넘기는게 좋은지? 라는 질문이라면, 둘다 가능합니다. 한 프로젝트 안에서도 상황에 따라서 어떤 경우에는 엔티티를 넘기는게 좋고, 어떤 경우에는 Dto로 넘기는게 좋습니다. 결국 상황에 따라서 다릅니다. 엔티티로 넘기고 싶어도 정말 복잡한 상황에는 엔티티만 넘겨서 해결이 안되는 경우도 많습니다.
응답도 마찬가지 입니다. 컨트롤러, 서비스, 리포지토리는 모두 엔티티에 의존합니다. 따라서 해당 계층에서 엔티티를 받는 것은 괜찮습니다. (참고로 이후에 설명드릴 지연 로딩 OSIV 옵션에 따라서 컨트롤러에서 엔티티를 사용하는 것은 위험할 때도 있습니다.)
다만 꼭! 주의해야 할 점은 컨트롤러에서 API 요청이나 응답으로 엔티티를 사용하면 안됩니다! Dto를 사용해야 합니다.
감사합니다^^
1
네 Request가 RequestDto의 의미로 적은것이고 혹시 컨트롤러에서 서비스 계층으로 매게변수를 넘길 때 Dto로 넘기는게 좋은지 엔티티로 넘기는게 좋은지? 이것이 맞습니다
말씀해주신 것들로 충분히 도움이 되었습니다 감사합니다





