강의

멘토링

로드맵

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

보물섬님의 프로필 이미지
보물섬

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 등록

비어있는 memberForm 객체를 전달하는 이유가?

작성

·

225

1

안녕하세요.

String createForm(Model model) 에서 Model에 비어있는 memberForm 을 넣어주는 이유가 validation 을 해주기 때문이라고 하셨는데

어짜피 스프링쪽 validation 은 서버쪽으로 데이터가 왔을때 해주는거라 딱히 의미가 없을거 같아 궁금해서 질문드립니다.

제가 생각하기에 비어있는 memberFrom을 넣어서 얻는 이득은 createMemberForm.html 에서 memberForm을 쓸데 null 관련 로직을 짜야 하는것 말곤 다른 이유를 찾기 힘들어서요.

물론 위의 null 관련부분이 꽤 귀찮은 작업같긴 합니다만 혹시 제가 모르고 있는 부분이 또 있을수도 있을거 같아서 질문 드려봅니다.

주말 잘보내세요~

퀴즈

61%나 틀려요. 한번 도전해보세요!

회원 가입 시 화면 입력 데이터를 엔티티 객체 대신 별도의 Form 객체로 받는 주된 이유는 무엇일까요?

데이터베이스 성능을 최적화하기 위해서

화면 종속적인 데이터나 유효성 검증 로직을 분리하기 위해서

JPA 영속성 컨텍스트와 직접적인 관계를 맺기 위해서

코드의 자동 생성 기능을 활용하기 위해서

답변 1

4

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 보물섬님

여기에서 말한 validation은 조금 다른 의미의 validation입니다.

(제가 다른 단어를 선택했어야 했는데, 혼란스러운 단어를 선택했네요)

여기에서 말한 검증이라는 뜻은 이렇게 사용하면 viewTemplate에서 form을 구성할 때 잘못된 이름을 넣으면 오류가 발생한다는 뜻입니다.

예를 들어서 th:field=*{namemm} 처럼 오타를 넣으면 뷰 템플릿이 로딩될 때 바로 오류를 발견할 수 있습니다.

그리고 이렇게 사용하는 이유가 한가지 더 있는데, 일관성이라는 측면이 있습니다.

1. 등록폼을 로딩할 때와 2. 등록에 실패했을 때 다시 같은 뷰로 돌아갈 때에 같은 뷰 템블릿을 그대로 재사용할 수 있습니다.

감사합니다.

보물섬님의 프로필 이미지
보물섬

작성한 질문수

질문하기