DTO, Entity 변환에 대해서
- DTO와 Entity에 대해서 알아본다.
- DTO -> Entity, Entity -> DTO 변환에 대해서 알아본다.
- 해당 변환을 어느 계층에서 실행하는지 알아본다.
- 실제 프로젝트에서 DTO, Entity 변환을 어떤식으로 적용하는지 알아본다.

1) DTO, Entity
이전 작성 글
[Spring]Entity, DTO, VO
2) DTO -> Entity, Entity -> DTO
(1) DTO <-> Entity 변환하기
- DTO는 클라이언트와 서버 사이에서 데이터 전송 시 사용되고, Entity는 데이터베이스의 테이블에 직접 매핑되는데 사용된다.
- 예를 들어, 사용자로 부터 받은 데이터를 DTO로 감싸고 DTO를 Entity로 변환시킨 다음에 Entity를 데이터베이스에 저장한다. 그리고 반대방향도 마찬가지다.
(2) 변환시키는 이유는?
- Entity 보호 : Entity를 UI에 직접 노출하는 것은 보안상 좋지 않고 속성 변경이 일어날 확률이 있다. Entity는 무분별한 setter 사용을 지양한다.
- 데이터 선별 : Entity에는 불필요한 추가 정보가 있을 수 있는데, UI에는 필요한 데이터만 전달해야 할 수도 있다.
- 코드 분리 : 예를 들어 DTO에서 유효성 검사 로직이 있다면 Entity에서는 데이터베이스 모델링 및 비즈니스 로직에 집중할 수도 있다.
(3) 어느 계층에서 변환할 것인가?
- 여러 의견이 있으며 참고했던 링크들을 첨부한다.
- 현재는 DTO 파일에서 toEntity() 메소드를 통해 생성해서 반환하는 방식으로 진행중이다.
참고 글들
3) 실제 프로젝트에 적용하기
@