[Spring] DTO <-> Entity 변환에 대해서

GaramFlow·2023년 11월 17일
0

DTO, Entity 변환에 대해서

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

Spring flow

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) 실제 프로젝트에 적용하기

@
profile
간단한 지식 저장 및 공유를 위한 블로그입니다.

0개의 댓글