해결된 질문
작성
·
290
·
수정됨
1
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
안녕하세요. 강의 잘 듣고 있습니다. 재밌게 강의를 듣던 중 궁금증이 생겨 이렇게 질문 드리게 되었습니다.
7분40초~7분50초 쯤 설명에 의하면 "우리가 웹에서 입력한 name값이 MemberForm의 name 필드로 전달이 된다"라는 식으로 말씀을 하셨는데, 어떻게 Member 클래스가 아닌 MemberForm 클래스의 name을 찾아가게 되는 건가요??
제가 워낙에 초보라서 그런지, 코드 상에서 "Member의 name이 아닌 MemberForm의 name을 찾아가도록 하는" 코드도 발견을 못하겠습니다..
또한 다른 분들의 말씀에 의해서 질문을 드리고 싶은데, MemberForm 클래스에서 setName() 메서드가 사용이 안되는 것 같은데, 7분55초~ 8분 쯤의 설명으로는 setName() 메서드를 사용하시는 것처럼 말씀하시더라구요. 이 역시도 제가 잘 몰라서 그러는데 실제로 setName() 메서드가 사용되는 건가요??
자세한 설명 부탁드리겠습니다.
감사합니다:-)
답변 1
1
안녕하세요. 김수환님, 공식 서포터즈 코즈위버입니다.
클라이언트가 서버에 요청을 보내면 서버는 이 요청을 어떻게 처리해야하는지 찾습니다.
사용자가 사용한 URL 정보를 통해 이를 처리할 수 있는 컨트롤러 객체와 메소드가 있는지 찾고, 발견하였다면 이 메소드를 어떻게 호출해야 하는지 파악합니다. (이 부분은 모두 스프링 프레임워크 내부에서 일어나는 일 입니다).
메소드를 호출하는데 MemberForm 객체가 필요하다면, 스프링 프레임워크는 사용자 요청을 기반으로 MemberForm 객체를 생성할 수 있는지 파악합니다. 보통은 기본생성자를 이용해 MemberForm객체를 생성합니다. 그리고 이 객체가 가지고 있는 멤버변수를 조사합니다. 가령 name=hello 라는 파라미터가 있다면 MemberForm 객체에 name 변수가 있는지 찾으며, 만약 있다면 값을 설정합니다. 값 설정을 위해서는 setter 메서드를 사용합니다.
이런 과정을 거쳐 생성한 MemberForm 객체를 컨트롤러 메서드의 파라미터로 전달하면서 호출합니다.
감사합니다.