좋은 질문입니다!

DTO는 백엔드 개발에서 아주 자주 등장하는 개념인데요,

DTO는 "Data Transfer Object"의 줄임말로, 말 그대로 데이터를 전달하기 위한 객체입니다.


✅ DTO란?

서버와 클라이언트, 또는 계층 간(Controller ↔ Service ↔ Repository)에서

데이터를 주고받기 위한 "순수한 데이터 담는 그릇" 역할을 하는 클래스입니다.


✅ 왜 DTO를 쓰나요?

1. 보안 / 노출 제한

Entity에는 비밀번호나 내부 정보가 있을 수 있는데,

이걸 그대로 프론트엔드에 보내면 보안 문제가 생길 수 있어요.

→ DTO는 필요한 정보만 골라서 전달합니다.

2. 유연한 구조 변경

DB 구조와 응답 구조가 1:1로 매칭되지 않을 때가 많습니다.

→ 프론트 요청에 맞게 필요한 형태로 데이터를 가공할 수 있습니다.

3. 엔티티 보호 (불변성 유지)

Entity는 JPA가 관리하는 객체라서 직접 수정하면 문제 생길 수 있어요.

→ DTO로 데이터를 복사해 사용하면 안전합니다.