본문 바로가기
Spring Boot

RequestDto, ResponseDto 사용하는 이유

by 코딩diary 2025. 2. 20.

1. 명확한 역할 분리

RequestDto : 클라이언트가 서버로 보낼 데이터(요청)

ResponseDto : 서버가 클라이언트에게 돌려줄 데이터(응답)

입출력 구조 명확하게 분리 가능

 

2. 보안성 강화

엔티티를 그대로 요청/응답에 사용하면 민감한 데이터가 노출될 가능성이 있다.

예를 들면, password같은 정보를 그대로 응답해주면 보안 사고로 이어질 수 있다.

그래서 ResponseDto를 따로 만들어서 필요한 데이터만 담아 보내면 막을 수 있다.

 

3. 엔티티 보호 (유지보수성 향상)

엔티티 구조는 서비스의 비즈니스 로직에 따라 변할 가능성이 크다.

엔티티를 그대로 사용하면 API 스펙이 바뀌면서 클라리언트와 충돌이 발생할 수 있다.

Dto를 사용하면 엔티티 구조가 바뀌어도 API의 응답 형식을 일정하게 유지할 수 있다.

 

4. 데이터 검증 및 가공 용이

ReqeustDto에서 @Valid, DTO 변환 로직 등을 사용해서 들어오는 데이터를 미리 검증할 수 있다.

예를들어, @NotNull, @Size(min = 3, max = 10) 같은 걸로 유효성 검사를 하면 컨트롤러에서 불필요한 검증 로직을 줄일 수 있다.

ResponseDto에서는 엔티티에서 받아온 데이터를 필요한 형태로 가공해서 클라이언트에 전달할 수도 있다.

 

 

"엔티티를 직접 노출하지 않고, 역할을 분리하면서, 보안과 유지보수를 고려하기 위해 Dto를 사용한다"