저는 DTO랑 VO를 구분하지 않고 비슷한 맥락으로 보고 있었는데요. 이 들의 차이를 구분하고 어떤 상황에서 DTO를 도입하고, VO를 도입해야 하는지 하나씩 알아보도록 하겠습니다. DTO(Data Transfer Object) 순수하게 데이터를 담아 계층 간으로 전달하는 객체, Getter/Setter 메서드만을 가집니다. "데이터 전달"이 주목적입니다. 이를 통해 보내는 쪽에서 setter를 이용하여 값을 담아 전달하고, 받는 쪽에서는 getter를 이용하여 값을 꺼내서 쓰게 됩니다. setter의 경우, 변조 가능성이 있기 때문에(setter 사용 지양) 생성자로 값을 넣어주면, 전달하는 과정에서 변조가 불가능합니다. VO(Value Object) DTO(Data Transfer Object)와는 ..