일단 포트폴리오 하면서 VO, DTO가 동일하게 사용되는 줄 알았다.
VO : Value Object
- VO는 Front단에서 Front Controller로 넘어오는 객체라고 생각.
DTO : Data Transport Object
- DTO는 DB에서 Controller로 넘어오는 객체라고 생각.
Join을 걸게 되면 DTO 클래스를 생성해서 Front로 전달.
따라서, 패키지상에서 VO랑 DTO를 나누는 것이 어떤가하는 생각이 듬.
DTO를 다시 VO에 담는 경우도 있고, 반대가 되는 경우도 있고, 업무마다 필요할거라고 생각이 듬.
참고블로그를 검색하다가 찾은 것은
1) DTO에 resultMap 지정하여 담기 (직접 접근, 상속은 실패..)
- 주 테이블의 객체에 Join할 서브 클래스변수를 상속 또는 직접 접근하여 새로운 DTO 또는 기존 DTO에 저장
2) returnType을 map 담아서 객체에 담는 방법 (요건 안해봄)
- map에 다 담아서 VO 또는 DTO에 저장
위대하신 선배님들을 참고해서 구현해보는 것.... 그것이 신입의 자세!
참고사이트 :
http://www.itpaper.co.kr/27502/
https://ssssssu12.tistory.com/4
2020.04.09
블로그통계보니 이 글이 하루에 한번씩은 조회가 되니 기쁘긴 하다..
하지만 시간이 지나고 다시 보니,
비즈니스에 따라 다양한 경우에 따라 개발자에 따라 VO, DTO를 합치거나 분리하거나 활용이 가능하다.
MVC 경우에 VO or DTO에 컬럼에 맞게 변수를 다 넣어서 resultType을 vo.class로 mapping
아니면 vo를 개별로 만들어서 mapping
VO나 DTO나 VO로 통합해서 부르고 있습니다..
도움 못드려서 죄송합니다.. 지금도 잘 모르겠습니다...