: 계층간 데이터 교환을 위해 사용하는 객체
: 로직을 가지지 않음 (getter, setter, toString, equals 등 작성 가능)
: 데이터베이스의 데이터에 접근하기 위한 객체
: 데이터베이스에 접근하기 위한 로직, 비즈니스 로직을 분리하기 위해 사용
만약 유저가 입력한 데이터를 db에 저장하려는 상황
-> 유저가 입력한 데이터를 dto를 통해 받음
-> 서버는 dto를 받아 dao를 이용해 데이터베이스에 저장
: read-only (setter x)