🧳

DTO와 DAO

MVC Pattern등의 디자인 패턴에서 Model 혹은 DB를 담당하는 객체인 DTO와 DAO에 대해서 알아보자.

DTO : Data Transfer Object

DTO는 데이터를 담는 가방이라고 생각하면 쉽다.
객체간에 데이터를 교환할때 매개변수를 줄줄이 달아서 교환하거나, 익명 객체나 리스트에 넣어서 전달하는것은 좋지 않으니 구현한 객체이다.
특별한 기능이 존재하지 않고 getter나 setter같은 간단한 메소드만 구현되어있는 객체이다.
아래는 이번에 프로젝트를 만들면서 만든 DTO이다. Flask RESTX의 Namespace를 이용했다. (사실 MVC가 자-프링에서 많이 쓰이긴 하지만 나는 자프링을 모른다 ;ㅁ;)
class UserDto: api = Namespace('user', description='user information') user = api.model('user', { 'user_id' : fields.String(required=True, description='id by naver'), 'user_name': fields.String(required=True, description='user username'), 'provider': fields.String(required=True, description='user username'), 'email': fields.String(required=True, description='email'), 'phone_number': fields.String(required=True, description="phone number") })
Python
복사

DAO : Data Access Object

DAO는 Service에서 처리된 (혹은 Controller가 처리한) Buisness Logic을 DB에 CRUD하는 역할을 한다.
코드는 없어서 생략
DTO와 DAO는 Service Layer와 함께 Model Layer에 속하는 친구들이다.