Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바
- AOP
- Exception
- kotlin
- 김영한
- db
- 그리디
- Android
- http
- JDBC
- Proxy
- spring
- Spring Boot
- Thymeleaf
- QueryDSL
- SpringBoot
- pointcut
- springdatajpa
- 스프링 핵심 기능
- 스프링 핵심 원리
- JPQL
- Servlet
- jpa
- 인프런
- 알고리즘
- Greedy
- 백준
- transaction
- 스프링
- java
Archives
- Today
- Total
개발자되기 프로젝트
Form 전송 객체 분리, DTO 본문
- 실무에서는 groups 잘 사용하지 않음.
- 왜냐? 등록시 Form에서 전달하는 data와 Item Domain 객체와 맞지 않기 때문임.
- 실제 회원 등록시 회원 정보외에도 약관 정보 등 Item과 관계 없는 데이터가 넘어옴.
- 따라서 ITem을 직접 받는 것이 아리나, 별도 객체를 만들어서 전달함.
- 예를들어 ItemSaveForm을 만들어 @ModelAttribute로 사용.
- 이를 통해 Controller에서 Form data를 받고, 이후 Controller에서 넘어온 data를 사용해서 Item 생성.
1. Form data전달에 Item Domain객체 사용
- HTML Form -> Item -> Controller -> Item -> Repository
- 장점: 중간에 Item을 만드는 과정이 없어서 간단
- 단점: 간단한 경우에만 적용할 수 있다. 수정시 검증이 중복될 수 있고, groups를 사용해야 한다.
2. Form data전달을 위한 별도 객체 사용
- HTML Form -> ItemSaveForm -> Controller -> Item 생성 -> Repository
- 장점: 별도의 폼 객체를 사용해서 데이터를 전달 받음.
보통 등록과, 수정용으로 별도의 폼 객체를 만들기 때문에 검증이 중복되지 않음. - 단점: 폼 데이터를 기반으로 컨트롤러에서 Item 객체를 생성하는 변환 과정이 추가된다.
- update도 마찬가지이다.,
- 따라서 이렇게 폼 데이터 전달을 위한 별도의 객체를 사용하고,
- 등록, 수정용 폼 객체를 나누면 등록, 수정이 완전히 분리되기 때문에 groups 를 적용할 일은 드물다.
'인프런 > [인프런] 스프링 MVC 2' 카테고리의 다른 글
Bean Validation - HTTP 메시지 컨버터 (0) | 2021.09.25 |
---|---|
Form 전송 객체 분리 - 개발 (0) | 2021.09.25 |
Bean Validation - Groups (0) | 2021.09.25 |
Bean Validation - 한계점. (0) | 2021.09.25 |
Bean Validation - Object Error (0) | 2021.09.25 |
Comments