DTO와 Entity 클래스를 매핑해서 사용하는 이유는 여러가지 존재하지만 그 중 대표적인 이유는 아래 3가지
DTO 클래스 - API 계층에서 요청 데이터를 전달 받고, 응답 데이터를 전송하는 것이 주 목적
Entity 클래스 - 서비스 계층에서 데이터 액세스 계층과 연동하여 비즈니스 로직의 결과로 생성된 데이터를 다루는 것이 주 목적
1. 계층별 관심사 분리
: 사용되는 계층이 달라 기능에 대한 관심사가 다름
: 하나의 클래스나 메서드 내에서 여러 개의 기능들을 구현하고 있는 것은 객체 지향 코드 관점에서도 리팩토링 대상이 됨
2. 코드 구성의 단순화
: DTO 클래스에서 사용하는 유효성 검사 애너테이션이 Entity 클래스에서 사용될 경우 JPA에서 사용하는 애너테이션가 뒤섞여 유지보수하기 어려운 코드가 됨
3. REST API 스펙의 독립성 확보
: 데이터 액세스 계층에서 전달 받은 데이터로 채워진 Entity 클래스를 클라이언트의 응답으로 그대로 전달하게되면 원치 않는 데이터까지 클라이언트에 전송될 수 있음. 따라서 DTO 클래스를 사용하면 정보를 클라이언트에게 노출하지 않고, 원하는 정보만 제공이 가능
'공부 자료 > Spring' 카테고리의 다른 글
[Spring MVC] 체크 예외(Checked Exception), 언체크 예외(Unchecked Exception) (0) | 2022.10.26 |
---|---|
[Spring MVC] Spring MVC 예외 처리 (@ExceptionHandler, @RestControllerAdvice) (0) | 2022.10.25 |
[Spring Boot] Spring Boot 프로젝트 생성하기 (feat.스타터 사이트) (0) | 2022.10.22 |
[Spring MVC] DTO(Data Transfer Object)/클래스 생성 (0) | 2022.10.21 |
[Spring MVC] Spring MVC 동작 방식 & 구성 요소 (0) | 2022.10.20 |