-
데이터를 클라이언트와 서버가 주고받을 때 DTO를 사용하다보니, DTO의 사용범위가 controller와 service사이에서 어디까지 사용하는 것이 옳은 것일까하는 의문이 들었다.
DTO
DTO는 Data Transfer Object로 계층간 데이터 교환을 위해서 사용하는 객체이다. 엔티티를 그대로 외부에 노출하게 되면, 모든 속성이 노출되고 엔티티가 변경될 위험이 있기 때문에 model, view 분리원칙에도 영향이 갈 수 있다. DTO를 사용해서 model정보를 캡슐화하고 선택적 정보선택을 통해서 꼭 필요한 정보만 보내주도록 해준다.
Service layer
다음의 블로그 글을 읽고 controller가 사용되지 않는 model정보를 추가로 가져오고 이용해서 여러 service에 의존해서 DTO를 변경하기 보다는 service 계층에서 DTO-엔티티변환을 이용하는 것이 용이다하고 판단하였다!
https://xlffm3.github.io/spring%20&%20spring%20boot/DTOLayer/
'Spring' 카테고리의 다른 글
controller에서 파라미터를 받는 방법 : @RequestParam, @RequestBody, @PathVariable (+ DTO를 포함하는 DTO) (0) 2021.10.26 hibernate lazy initialization exception could not initialize proxy - no session 에러 발생시 (0) 2021.09.05 No serializer found for class Exception 에러 해결방법 (0) 2021.09.05 @ManyToMany, @OneToMany, @ManyToOne관계 작성하기 (0) 2021.09.05 MultipartFile 파일업로드(with. react) (0) 2021.09.05