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

han님의 프로필 이미지
han

작성한 질문수

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

회원 웹 기능 - 등록

create() 함수에서 input tag에서의 값을 MemberForm으로 받는 이유가 있나요?

작성

·

223

0

@PostMapping("members/new")
    public String create(String name){
        Member member = new Member();
        member.setName(name);
        MemberService.join(member);
        return "redirect:/";
    }

위 코드처럼 String을 이용해 form에서 데이터를 받아오면 안 되는 건지 궁금합니다

답변 2

0

안녕하세요. DevC님, 공식 서포터즈 OMG입니다. AI 답변에 더하여 답변 드립니다.

Form객체는 Form전송할 때 서버와의 통신을 위해 사용하는 객체임을 명시적으로 나타낸다는 장점과

Form전송에서만 사용하기 때문에 생성된 객체이기 때문에 Member와 같이 범용적인 엔티티(객체)에서의 변경에 직접적인 영향을 받지 않습니다:)

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴이에요.

Spring Framework에서는 클라이언트로부터 전송된 데이터를 서버에서 처리하기 위해 여러 방법을 제공하고 있습니다. 이 중에서도 일반적으로 사용되는 방법 중 하나는 HTTP POST 요청의 몸체에 담긴 데이터를 객체로 변환해주는 기능입니다.

create() 함수에서 input tag에서의 값을 MemberForm으로 받는 이유는, 클라이언트로부터 전달받은 데이터를 객체로 변환하여 응용 프로그램에서 활용하기 위해서입니다. MemberFormname 필드를 가지고 있는 클래스일 것으로 추측됩니다. 클라이언트로부터 전달되는 name 데이터를 MemberForm 객체의 name 필드에 매핑하기 위해, 스프링 프레임워크는 HTTP 요청 파라미터 값을 자동으로 name 필드에 바인딩해줍니다.

따라서, create() 함수에서 String name 대신에 MemberForm 객체를 매개변수로 받는 경우, 클라이언트에서 전달되는 여러 데이터를 한 번에 처리할 수 있습니다.

이 방법을 사용하면 코드의 가독성 및 유지보수성이 향상되며, 추가적인 데이터 처리나 유효성 검사 등의 작업을 보다 효과적으로 할 수 있습니다.

더 자세한 내용이 필요하시다면, 코드 전체를 보여주시거나 관련 코드의 전반적인 구성에 대한 설명을 해주시면 더욱 도움이 될 것 같아요. 감사합니다.

han님의 프로필 이미지
han

작성한 질문수

질문하기