Been Validation - Form 전송 객체 분리

slee2·2022년 2월 11일
0

이전에 말했지만, 실무에서는 groups 기능을 잘 사용하지 않는다.

이유는 보통 등록할때 받는 정보와 수정할때 받는 정보가 다른 경우가 많기 때문이다.

장단점 또한 살펴보자

폼 데이터 전달에 Item을 사용하면
HTML Form -> Item -> Controller -> Item -> Repository
장점 : 중간에 Item 만드는 과정이 없다.
단점 : 간단한 경우에만 적용할 수 있다. 수정시 검증이 중복될 수 있고, groups를 사용해야 한다.

폼 데이터 전달을 위한 별도 객체를 사용하면
HTML Form -> ItemSaveForm -> Controller -> Item 생성 -> Repository
장점: 전송하는 폼 데이터가 복잡해도 거기에 맞춘 별도의 폼 객체를 사용해서 데이터를 받을 수 있다. 검증이 중복될 일도 없다.
단점: 중간에 Item 객체에 값을 전달해줘야하는 과정이 필요함.

이름은 야무지게 잘 지으면 된다.

등록, 수정용 폼 html은 합치는게 좋을까?

어설프게 합치면 나중에 엄청 고통받을 수 있으니
분리하는게 좋긴하다.

개발

Item

Item의 경우 더 이상 검증을 하지 않을 것이므로 다 주석처리 해준다.

ItemSaveForm

ItemUpdateForm

add

edit

검증 예시
https://docs.jboss.org/hibernate/validator/6.2/reference/en-US/html_single/#validator-defineconstraints-spec

여기에 @Email, @Range 등등 검증하는 어노테이션이 모아져있다. 이거 보고 원하는 검증을 편하게 할 수 있으므로 한번 봐보자.

0개의 댓글