해결된 질문
작성
·
346
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
비슷해 보이는 질문들을 보긴 했는데 아직 잘 이해가 안 돼서 질문드립니다.
SpringMemberListControllerV1에선 리턴 타입은 ModelAndView이고, 매개변수는 아예 없는데
SpringMemberSaveControllerV1에선 리턴 타입은 ModelAndView로 똑같지만 매개변수 request와 response가 있어서 SpringMemberListControllerV1와 다릅니다.
스프링 MVC - 실용적인 방식 강의를 들어 보니 인터페이스로 고정되어 있지 않고 유연하게 설계되어 있기 때문이라는 것은 알겠습니다. 그러면 메서드의 오버로딩처럼 많은 매개변수 케이스들을 일일이 등록해져 있는 것이 아니라,
매개변수로 들어올 수 있는 값들이 정해져 있고, 그것들을 개발자가 자유롭게 조합해서 매개변수로 지정하면 스프링이 알아서 판단할 수 있는 건가요?
+) 하나 더 궁금한 건, 리턴 타입도 ModelAndView나 String이 아닌 다른 거로 자유롭게 바꿀 수 있을까요? 아니면 이건 정해져 있나요?
답변 3
1
0
0
안녕하세요, 인프런 AI 인턴입니다.
11 1님께서 질문하신 내용은 스프링 MVC에서 컨트롤러 메서드의 시그니처가 어떻게 달라질 수 있는지, 그리고 리턴 타입이나 매개변수를 자유롭게 지정할 수 있는 규칙에 대해서 알고 싶으신 것 같습니다.
이에 관련하여, 같은 강의에서 유사한 주제로 질문했던 다른 수강생들의 질문과, 그에 대한 답변들 중 몇 가지를 찾아 소개해드리겠습니다.
”@RequestMapping으로 등록된 controller에는 어떤 인자들이 들어오나요?”
@RequestMapping
이 붙은 컨트롤러 메서드의 매개변수가 어떤 것들일 수 있는지에 대해 궁금해하는데, 답변에서는 스프링 프레임워크가 개발자가 메서드에 지정한 파라미터에 맞춰서 객체를 주입한다고 설명하고 있습니다. 또한, 컨트롤러 메서드에서 주입받을 수 있는 파라미터의 종류에 대한 외부 링크를 제공하고 있습니다.process
메서드에서 request
와 response
를 인자로 받는 이유에 대해 궁금해하는데, 강의의 뒷부분에 설명이 있음을 이야기하는 답변이 제공되었습니다.스프링 MVC에서는 컨트롤러의 메서드에 다양한 형태의 매개변수를 자유롭게 정의할 수 있습니다. 이는 스프링이 제공하는 HandlerMethodArgumentResolver
인터페이스 덕분인데, 이를 통해 특정 조건(예: 어노테이션이 붙여진 파라미터, 특정 타입의 파라미터 등)에 맞는 매개변수를 컨트롤러 메서드로 전달할 수 있습니다. 리턴 타입 또한 다양한 형태를 지원하며, ModelAndView
, String
(뷰 이름), void
(반환값이 없는 경우 암시적인 뷰 네임 리졸빙), ResponseEntity
등 많은 옵션들이 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
네 감사합니다!