DTO

정안녕·2026년 1월 16일

Metaverse

목록 보기
9/16

DTO(Data transfer Object)

데이터를 전달하기 위한 객체

  • 서버(백엔드)와 사용자(프론트엔드)가 데이터를 주고 받을 때 쓰는
    정해진 형식의 데이터 묶음

일상 속에서 보는 DTO
1. 쇼핑앱에서 상품 주문
2. 상품을 담은 포장 박스에 송장(구매자 정보 등)을 붙여 택배 회사가 집까지 전달

  • 상품 : 전달해야 할 '실제 데이터'
  • 박스 : 데이터를 담아 전달하기 위한 DTO
  • 송장 정보는 데이터의 구조

즉, DTO는 데이터를 담는 박스와 비슷한 역할.
DTO가 없다면 데이터가 제대로 전달되지 않거나 뒤죽박죽 섞일 수 있다.

[DTO가 필요한 이유]

  1. 명확한 데이터 구조 제공
    -> DTO는 어떤 데이터가 주고 받아질지 미리 정해져있음
    EX) {"name":"홍길동", "email":"hong@example.com", "age":30}
  2. 불필요한 데이터 보호
    ->DTO는 필요한 데이터만 담아서 전달
    => 보안 강화
  3. 데이터 가공을 쉽게 처리
    -> DTO는 서버에서 데이터를 미리 정리해 깔끔한 형태로 전달.
    EX) "2025-01-16T10:00:00" -> "2025년 1월 16일" 변환

DTO 관련 용어

  1. 도메인 모델
  • 데이터 베이스에서 쓰는 "진짜 데이터" 의미
    ex) 쇼핑몰의 '사용자 정보', '주문 정보' 등
  1. DTO 도메인 모델의 차이
    -> 도메인 모델 : 데이터 베이스에서 직접 가져온 원본 데이터
    -> DTO : 원본 데이터를 가공해서 전달용으로 만든 포장된 데이터

  2. API와의 관계
    -> API(Application Programming Interface)는 서버와 클라이언트가 데이터를 주고 받는 통로. DTO는 API가 데이터를 주고 받을 때 쓰는 형식.

[실제 사례]

회원가입

  1. 사용자가 웹사이트에 입력한 정보
  • 이름 : 홍길동
  • 이메일 : hong@example.com
  • 비밀번호 : 123456
  1. 서버에서 필요한 DTO 구조
{
"name":"홍길동",
"email":"hong@example.com"
}

-> 비밀번호는 민감한 데이터이므로 DTO에는 포함하지 않음.

따라서 DTO 없이 데이터를 보낸다면 데이터 구조가 뒤죽박죽되어 서버가 읽을 수 없거나 불필요한 데이터까지 포함되어 보안 문제가 생길 수 있으므로 꼭 필요하다.

profile
죽순 디벨롭

0개의 댓글