-
VO와 DTO에 대한 이야기자바 2022. 10. 10. 16:51
작년 11월에 학원 수강을 하면서 VO와 DTO 객체에 대해 구글링을 했었는데
막상 지금에 와서 다시 쓰려니까 그때 본 블로그가 찾아지지 않는다.
그 블로그에서 설명하는 내용은 DTO와 VO에 대한 논란이 왜 나왔느냐에서부터 시작됐었는데
과거에 개발자로 일하던 분들의 시대에는 인터넷이 지금처럼 발달하지 않은 상태였다.
인터넷 커뮤니티도 활성화되지 않아서 동네에서 공부 잘 한다는 형한테 물어서 알거나
가끔가다 해외 서적이 번역되어 출판되면 그것을 사서 공부하는 식이었다고 한다.
그 시절에 나온 책 제목이 기억이 나지 않는데 하여튼
데이터를 받아서 전송해주는 객체를 그때는 VO라고 불렀다고 한다.
그리고 시간이 지나 새로 나온 책에서는 데이터를 받아서 전송해주는 객체를 TO라고 불렀다.
그때까지만 해도 지금처럼 개념 정립이 잘 되어있지 않았기 때문에 VO와 TO를 동일한 개념이라고 정의했었고
그렇게 공부했던 사람들의 머릿속에는 VO와 TO가 같은 것이라는 생각을 가지게 된 것이다.
시간이 더 지난 후에는 다시 DTO라는 용어가 나왔는데
이미 VO와 TO를 생각하던 사람들은 TO를 DTO와 동일시했고 다시 DTO를 VO와 동일시하게 된다.
2008년 블로그를 찾아보면 VO와 DTO를 동일한 개념으로 부르거나 아예 VO라고만 부르는 글들이 많다.
대체적으로 2016년까지도 DTO를 VO로 부르다가 이후에 쓰여진 블로그부터는
DTO를 데이터를 담아 전송해주는 객체, VO를 이미 정해진 값을 불러오는 객체로 구분지어 설명하고 있다.
(어..... 왜 그때지?... 그건 나도 잘 모르겠다.)
하여간.. 지금은 구분해서 잘 사용하고 있으니 상관없지 않을까.
추가로.. 2010년 이후에 SI에서 일하는 개발자들이 Map과 DTO 중에 어느 것을 사용해야 하는가에 대한
논쟁이 있었다고 한다. 결론은 Map의 승리.
그래서 SI업체에서는 클래스에 들어오는 매개변수 또는 클래스타입을 DTO를 만들어 사용하는게 아니라
HashMap<String, Object> 또는 List<HashMap<String, Obejct>> 형식으로 쓰게 됐다고 한다.
아마 이렇게 쓰이는 문화가 바뀌려면 오랜 시간이 걸리지 않을까 생각한다.
DTO와 VO, 의문에 대한 답변 (DTO와 VO는 왜 혼용되는가, DTO는 왜 사용하는가, VO는 무엇인가)
이번 우테코 테코톡에서 인비의 DTO와 VO에 대한 발표가 있었다. 테코톡이 끝나고 루트가 DTO와 VO에 대한 질문을 남겼는데, 생각해 보니 같은 의문점이 들어서 자료를 찾아봤다. 이번 글은 DTO와 VO
bperhaps.tistory.com
출처2 : https://zgundam.tistory.com/65
Map과 VO(Value Object)의 해묵은 논쟁과 나의 결론..
프로그래머란 생활을 10여년 가까이 하면서 프로그래머들간에 이런저런 논쟁을 하게 되는 상황을 종종 보게 된다. 논쟁이란 것이 결론이 나는 것도 있고 그렇지 않은 것도 있다보니 진행중인 논
zgundam.tistory.com
예전에 봤던 블로그는 찾지 못했다..... 일단 패스!
'자바' 카테고리의 다른 글
사파리에서 ajax 요청 시 timeout은 10초인 것 같습니다. (1) 2023.10.12 업무에서 쓰는 용어 ajax, alias, entity (0) 2023.09.29 WHERE 1=1 을 쓰는 이유 (0) 2022.10.10 [Java] JDK와 JRE의 차이 (0) 2022.09.12