DB에서 조회한 컬럼 값이 담긴 객체를 외부에 그대로 전달하면,
DB의 구조를 외부에 쉽게 알 수 있고, 민감한 정보가 담겨서 전달될 수 있다.
→ 보안상 매우 취약
DB에서 조회한 값이 담긴 Entity 객체를 외부에서 그대로 사용하는데 서버 내부에서 Entity가 변경될 경우,
해당 객체를 사용하는 모든 코드의 변경이 일어날 수 있다.
→ 유지 보수의 문제
실제 응답을 보내기 전에 데이터 조작에 대한 깨끗한 추상화 계층을 제공한다.
ex) 사용자 비밀번호와 같은 민감한 데이터는 항상 최종 응답에서 제외
응답되는 특정 속성은 추가 변환이 필요할 수 있다.
Nest.js에서 공식적으로 제공하는 class-transformer
패키지를 사용한다.