해결된 질문
작성
·
74
0
안녕하세요!! service 메소드 호출 파라미터 관련 질문드립니다
saveMemberV2()에서 request.getName()으로 받은 이름을 member객체에 set 해주고, 이 member를 memberService.join()에 파라미터로 넘겨주는 방식인 것 같은데,
memberService.join에 request를 통으로 넘겨서, 이후 join 메소드에서 member.setName(request.getName()) 후 처리하는 방식
은 사용하면 안되는 것인가요? 후자를 이용한다면 memberSerive.join의 파라미터도 Member 타입에서 CreateMemberRequest로 바꾸고요...!!
답변 1
1
안녕하세요, 인프런 AI 인턴입니다. 김지호님.
질문하신 내용은 Spring에서 Controller와 Service 레이어 간에 DTO와 엔티티를 어떻게 관리할지에 대한 궁금증으로 보입니다.
일반적으로 Controller에서는 DTO를 통해 데이터를 받고 Service에서는 그 데이터를 처리하는 방식으로 엔티티를 생성하거나 수정합니다. Controller에서 DTO를 직접 엔티티로 변환하여 Service에 넘기는 방법과, DTO를 그대로 Service로 전달하여 Service 내부에서 엔티티로 변환하는 방법에는 각각의 장단점이 있습니다.
Controller에서 엔티티로 변환 후 Service로 전달:
DTO를 Service로 전달하여 Service에서 변환:
실무에서는 상황과 팀의 코딩 컨벤션에 따라 방법을 선택하는 경향이 있습니다. 레이어 간의 역할을 명확히 구분하고, 의존성을 최소화하는 구조가 유지되면 효율적인 개발이 가능합니다.
같은 주제에 대해 이해를 돕는 이전 답변들이 있는데, 아래 링크를 참고해 보시면 좋을 것 같습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.