이전에 말했지만, 실무에서는 groups
기능을 잘 사용하지 않는다.
이유는 보통 등록할때 받는 정보와 수정할때 받는 정보가 다른 경우가 많기 때문이다.
장단점 또한 살펴보자
폼 데이터 전달에 Item을 사용하면
HTML Form -> Item -> Controller -> Item -> Repository
장점 : 중간에 Item 만드는 과정이 없다.
단점 : 간단한 경우에만 적용할 수 있다. 수정시 검증이 중복될 수 있고, groups를 사용해야 한다.
폼 데이터 전달을 위한 별도 객체를 사용하면
HTML Form -> ItemSaveForm -> Controller -> Item 생성 -> Repository
장점: 전송하는 폼 데이터가 복잡해도 거기에 맞춘 별도의 폼 객체를 사용해서 데이터를 받을 수 있다. 검증이 중복될 일도 없다.
단점: 중간에 Item 객체에 값을 전달해줘야하는 과정이 필요함.
이름은 야무지게 잘 지으면 된다.
등록, 수정용 폼 html은 합치는게 좋을까?
어설프게 합치면 나중에 엄청 고통받을 수 있으니
분리하는게 좋긴하다.
Item
의 경우 더 이상 검증을 하지 않을 것이므로 다 주석처리 해준다.
여기에 @Email
, @Range
등등 검증하는 어노테이션이 모아져있다. 이거 보고 원하는 검증을 편하게 할 수 있으므로 한번 봐보자.