Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
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
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

Form 전송 객체 분리, DTO 본문

인프런/[인프런] 스프링 MVC 2

Form 전송 객체 분리, DTO

Seung__ 2021. 9. 25. 15:41
  • 실무에서는 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 를 적용할 일은 드물다.

 

 

 

Comments