인프런 커뮤니티 질문&답변

ohju님의 프로필 이미지

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

Form 전송 객체 분리 - 개발

분리 이해가 잘 안 됩니다.

22.04.18 18:18 작성

·

229

0

강의를 2번째 돌려보고 있습니다. 처음엔 강사님 코드 따라치고 지금은 프로젝트를 따로 만들어 직접 사용해 보면서 하고 있다 막히는 부분이 있어서 질문 드립니다.

분리를 하라는 것이 View에서 th:object에 담아오는 model 객체를 여러개 만들어 사용하라고 이해를 해서 아래와 같이 했습니다.

1. item1Vo (등록)

2.item2Vo (수정)

두 VO를 만들어주고 하나는 아이템 등록, 하나는 아이템 수정 정보를 받아오게 했습니다.

 

그 뒤에 itemDto를 만들어주고 Controller에서 itemDto로  item1Vo와 item2Vo를 옮겨서 Service로 보내주는데

 

이떄, 검증 로직은 item1Vo, item2Vo에 해야 하나요? itemDto에 해야 하나요?

(검증 애노테이션은 item1Vo와 item2Vo에 붙였고 등록의 검증 로직은 성공한 상태입니다.)

강사님이 말씀하신 따로 form객체를 만들어서 분리를 하라는 것이 제가 하고 있는 것을 말씀하시는 건가요?

 

++ 추가

이렇게 검증해야 하는 게 많아지면 supports가 구분을 해준다고 하셨는데 

@Override
public boolean supports(Class<?> clazz) {
return item1Vo.class.isAssignableFrom(clazz);
}

위 코드는 item1Vo를 적용한 상태이지만 item2Vo를 적용하려면 어떤 식으로 넣어줘야 할까요?..

깃허브 다른 분들꺼 찾아보니까 새로 클래스 만들어서 

@Override
public boolean supports(Class<?> clazz) {
return item2Vo.class.isAssignableFrom(clazz);
}

이렇게 사용하던데 이렇게 사용하면 supports의 구분 기능이 필요가 없는 게 아닌가 싶어서요.

답변 2

1

100end님의 프로필 이미지

2022. 06. 02. 20:33

혹시 컨트롤러에서 검증하는 부분을 Validator로 분리하는 부분과 각 화면Form에서 넘어오는 데이터가 조금씩 달라서 각 화면Form에 맞는 데이터를 담는 객체로 분리해주는 것을 혼동하신 것이 아닌가 싶어요.

1

김영한님의 프로필 이미지
김영한
지식공유자

2022. 04. 22. 22:33

안녕하세요. ohju님

form 객체를 분리하는 것이고, 이미 잘 진행하고 있는 것 같습니다.

추가 부분은 저도 정확히 이해가 안되네요. 혹시 아시는 분 있으면 답변 부탁드립니다.

감사합니다.

ohju님의 프로필 이미지

작성한 질문수

질문하기