ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • VO와 DTO
    jabsiri...... 2015. 9. 10. 14:00

    VO와 DTO


    스터디? 진행중 남의 소스를 보니 VO도 있고 DTO도 있는 것을 봤다.


    전혀 관심이 없었고 같은 개념으로 생각하고 VO를 저렇게도 부르나 보다 하고 신경도 안 썼었는데..그런게 아니었다. 

    역시 용어나 개념이 무엇이든 나오면 한 번은 봐야 하는 게 정답인가 보다.

    (그리고 타인의 소스는 조금 자주 많이 보는게 좋다는 것도...)

    그래서 정확한 개념이 무엇인지도 궁금하고 조금 찾아 보았다.



    - Value Object 

        한번 세팅된 값은 변하지 말아야 하는 ( immutable ) 그래서 == 이 같다고 나와야 한다고 마틴팔로우 형님이 쓴 책?글?에서 이야기했다고 한다. ( 들은 이야기 )


    - Data Transfer Object

        Layer 간의 데이터 전송 ( 데이터 교환 )이고 == 비교 시 같으면 안 된다고. 이것 또한 마틴팔로우 형님이 쓴 책?글?에 나와있다고 한다. ( 역시 들은 이야기 )



    자 그런데.

    대부분 VO를 immutable 하게 사용하고 있지 않은데 프로그램상에서 개념을 맞추려고 DTO라는 것을 추가해서 개발하고 있는 거 같다.


    그러면 굳이 DTO라는 객체를 따로 만들어야 할까? (파일 개수가 늘어나는데)라는 의문이 든다. VO를 DTO처럼 사용하면 되니까. 

       - 이미 개발자가 immutable 하지 않은 VO를 가지고도 그것을 고려하여 DTO 생성해서(추가해서) 사용하고 있다면

       - VO를 이용하여 개발할 때 DTO 생성하지 않고(추가하지 않고) 이를 고려해서 개발하는 것과 같은 것이 아닌가?

        ( 글 쓰고도 참.. 설명이되나. )


    또한 객체를 생성해주는 Library들을 보면 이미 reflection을 사용하여 만든 객체들은 immutable 하지 않다고 

    http://faildev.blogspot.kr/2012/05/bean.html 의 글에서 잘 설명 해주고 있다.


    이런 상황이라면 어차피 개발하면서 실수를 하면 VO의 값을 변경하여 쓸 수 있고 단지 개발자가 그렇게 하지 않게 고려하여 개발하고 있다는 것이다.


    정답은 아니어도 어떻게 사용하는게 합리적일까...


    참고자료


    [1]

    http://blog.javarouka.me/2013/03/javabeans-vo-dto.html

    JavaBeans, VO, DTO?


    [2]

    http://faildev.blogspot.kr/2012/05/bean.html 

    object generator library는 immutable class를 만들수없다.





    'jabsiri......' 카테고리의 다른 글

    [단상]객체지향의 사실과 오해를 읽고...  (0) 2016.07.26
    REST API 디자인 가이드  (0) 2016.03.15
    Hibernate....  (1) 2015.09.10
Designed by Tistory.