Closed leejaeseung closed 1 year ago
저는 현재 아래와 같이 생각중입니다.
Entity: 식별성이 필요한 객체 VO: 식별성이 필요하지 않은 객체이자, 어떤 객체의 프로퍼티(필드)로 쓰이는 객체 DTO: Data Transfer을 목적으로 하며 식별성이 필요하지 않은 객체 DAO: 데이터 영속화를 위한 로직이 포함된 객체이자, Entity, VO, DTO와 다르게 Spring bean(싱글톤)으로 관리되어야 할 객체
개인적으로는 책 덕분에 Entity, VO 개념 정의를 더 명확히 할 수 있었어요. 해당 이슈에 대한 제 생각은 이렇고, 다른 분들의 생각도 궁금합니다 :)
질문
책에서 Entity, VO 등의 설명이 나오는데 실제로 다른 분들은 DTO, DAO, VO, Entity 를 어떻게 구분하고 계시나요?
Entity 와 DAO 는 명확하게 정의된다고 생각하는데, DTO 와 VO 개념이 잘 정리되지 않았습니다. 아무래도 함수형으로 코드를 작성하다보니 모든 객체가 불변이기 때문에 DTO 와 VO 의 경계가 모호해 지더라구요. 처음엔 DTO 와 VO 를 아예 다른 종류의 실체라고 생각했는데, 최근 들어선 추상적인 개념이라는 생각이 들었습니다.
어떤 객체에 "이건 DTO 야" , "이건 VO 야" 라고 정의하는게 아니라 Data Trasfer 를 위해 사용되면 DTO , 유의미한 값을 포장한 객체라면 VO 라고 생각하니 좀 더 정리가 되는 듯 했습니다.
연관 챕터
24