인프런 김영한님의 스프링 mvc2편을 보고 정리한 글입니다.
무엇을 배웠나요?
- BeanValidation의 기능인 groups를 실무에서는 잘 사용하지 않는다.
- 폼에서 전달하는 데이터와 도메인 객체와 딱 맞는 상황이 적기 떄문.
- 전체적인 흐름
- 폼 데이터 전달에 도메인 객체 사용
- HTML Form → 도메인 객체 → 컨트롤러 → 도메인객체 → Repository
- 장점 : 중간에 Item을 만드는 과정이 없어서 간단하다
- 단점 : 간단한 경우에만 적용할 수 있고 수정시 검증이 중복될 수 있고, groups를 사용해 복잡도가 올라간다.
- 폼 데이터 전달을 위한 별도의 객체 사용
- HTML Form -> 등록용 폼 객체-> Controller -> 도메인 객체생성 -> Repository
- 장점 : 전송하는 폼의 데이터가 복잡해도 별도의 폼 객체를 사용하기 떄문에 검증이 중복 되지 않는다.
- 단점 : 폼 데이터를 기반으로 컨트롤러에서 Item 객체를 생성하는 변환 과정이 추가된다.
- 폼 데이터 전달에 도메인 객체 사용
- 💡 등록, 수정용 뷰 템플릿이 비슷하서 합칠때 생기는 문제점
- 유지 보수에서 힘들어진다. 어설픈 분기분들이(등록 혹은 수정 etc)보이면 분리해야 할 신호이다.
- 맵핑으로 들어올때 @ModelAttribute로 등록 혹은 수정용 Form 객체를 받고 해당 객체를 도메인 객체로 적절히 변화하여 Repository에 넣는다.
'Spring' 카테고리의 다른 글
로그인 처리1 - 쿠키, 세션 (0) | 2022.09.11 |
---|---|
검증2 - Validation : HTTP 메시지 컨버터 (0) | 2022.09.01 |
검증2 - Validation : Bean Validation (0) | 2022.09.01 |
검증1 - Validation : Validator 분리1,2 (0) | 2022.08.26 |
검증1 - Validation : 오류 코드와 메시지 처리1~6 (0) | 2022.08.26 |