소프트웨어 설계시 사용되는 디자인 패턴
만드는 방법이 아닌 "잘" 만들기 위한 목적
MVC1 방식으로 만든 프로젝트가 Wetube CLoneCoding(express ver.)과 LifeFolio(exrpress ver.) 였었다.
Nest.JS 프로젝트를 하면서 경험해 본 바 있는 개념이었다.
다만, Nest.JS + GraphQL + postgreSQL 에 대응하는,
Entity + DTO + DAO 를 @Decorator 를 통해서 한 곳에서 선언하는 방식이었기에
아래 개념이 낯설게 느껴졌던 것 같다.
하지만, DAO 는 데이터 접근 객체 선언과 관련된 개념인데,
해당 메서드들이 정의되어 있는 것은 DAO 가 아니라 DB 개념을 포함하고 있는 별도의 클래스가 아닌가? 약간 혼란스럽다.
Data Transfer Object || Value Object 로, 데이터 전송 객체라고 부른다.
양쪽으로 전송되어 오고가는 데이터들을 담은 객체로,
여러 데이터들을 포장해서 만든 데이터 포장 객체이다.
Data Access Object 로, 데이터 접근 객체라고 부른다.
데이터들을 관리하는 여러 메서드들이 정의되어 있다.