본문 바로가기

컨벤션2

DTO 는 어떻게 구성하고, 변환해야 할까? 지난 번에 DTO 를 사용해야 하는 이유 를 정리해 본 후, 어떻게 매핑하면 될 지에 대해서도 한 번 정리해둔다면 내 생각을 말할 때 많은 도움이 될 것 같다고 생각했다. DTO class 를 어떻게 구성하고 변환할 것인가 1. 처음 공부했던 방식 (이동) 2. 개선했던 방식 (이동) 3. 각 방식에서의 장점과 단점, 내 생각 (이동) 4. 그 당시와 지금의 생각 (이동) 1. 처음 공부했던 방식 처음 Spring Boot 를 접하고 공부를 시작할 때에는 위와 같이 DTO class 들을 작성했었다. DTO 디렉토리 아래에 나름 편하게 구분하고 싶어서 {POST / GET / PATCH / DELETE} + {작업내용} + {Req / Res} 와 같은 네이밍을 가져갔었다. Entity - DTO 매핑방.. 2022. 7. 13.
DTO 를 사용해야 하는 이유 1. 필요한 데이터만을 응답으로 줄 수 있다. 클라이언트로 넘겨줘야 할 정보는 API 마다 상이하다. Entity 자체를 클라이언트에 대한 응답으로 넘기는 것은 불필요한 데이터를 포함할 수 있으며, 혹시 모를 민감 정보 노출 등의 문제를 일으킬 수 있다. 2. Entity 구현을 캡슐화하여 보호할 수 있다. DTO 가 없다면 클라이언트의 요청과 Entity Model 이 강하게 결합되어 클라이언트에서의 요구사항 변화가 Entity 에 영향을 끼치기 쉽다. Entity 는 도메인의 핵심 로직, 속성을 갖고 있으며, 실제 DB 테이블에 대응되는 클래스이므로 함부로 변경되지 않도록 보호되어야 한다. 3. Validation 코드와 Entity 속성 코드를 분리할 수 있다. Entity class 에는 @Col.. 2022. 7. 11.