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

qzxy812님의 프로필 이미지
qzxy812

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 웹 기능 - 등록

memberForm name에 값이 들어가는 원리?를 모르겠어요

작성

·

192

0

김영한 개발자님 우선 좋은 강의 감사드립니다.
공부를 하다가 이해가지않는 부분이 있어서 질문드려요.
(강의 6:30분 부분부터)
name에 spring을 작성하고 등록버튼을 누르면 @PostMapping부분으로 데이터가 전송된다고 하셨는데
create 메소드가 호출되는거랑 MemberForm의 name변수에 spring이 저장되는거랑 무슨 연관인지 잘 이해가 안가요
create메소드 파라미터가 MemberForm인건 알겠는데 왜 name변수에 값이 등록되나요...?

답변 2

1

안녕하세요, qzxy812 님. 공식 서포터즈 codesweaver 입니다.
.
해당 부분은 스프링 프레임워크에서 개발의 편의를 위해 자동으로 처리해주는 부분입니다.

우리가 HTML 폼에 어떤 자료를 작성하고 전송하면 HTTP 헤더 혹은 바디에 폼의 이름과 사용자가 입력한 값들을 짝을 지어서 전달하게 됩니다. (폼 전송방식이 GET일 경우 헤더에, POST일 경우 바디에 전달합니다). 이 때 전달하는 양식은 name=spring&age=13 처럼 키와 값으로 이루어져 있고 &로 구분되어 있습니다..

웹 개발에서는 대부분의 코드가 이 사용자가 입력한 폼값에 대한 처리라고 보셔도 됩니다. (나머지 반은 데이터베이스에 이 값을 넣거나 빼오거나 하는거죠 :)). 거기다가 사용자가 정확한 값을 입력하였는지 일일히 검토를 해야하기 때문에 매우 반복적이고 지루한 작업입니다.

.

그래서 스프링 프레임워크에서 이를 자동으로 처리해주는 기능을 제공하는것입니다. 폼에 있는 input 태그의 '이름' (name) 과 컨트롤러가 받아야 하는 객체 (여기서는 MemberForm이 됩니다)가 가지고 있는 필드중 이름이 일치하는 것이 있다면 자동으로 값을 할당한 후 컨트롤러의 매개변수로 전달하게 됩니다.


감사합니다.

qzxy812님의 프로필 이미지
qzxy812
질문자

이해가 되었습니다. 자세한 설명 감사드려요!!

0

form에서 받은 'name 키'(name)와 컨트롤러가 인자로 받는 '객체의 필드명' 중 일치하는 필드가 있으면 name으로 받은 값(sprong)이 그 필드 값으로 자동 할당된다. 

맞나요?

qzxy812님의 프로필 이미지
qzxy812

작성한 질문수

질문하기