JPA의 Entity와 DTO를 구분하여 사용해야하는 이유
본문 바로가기
Spring/Spring Boot

JPA의 Entity와 DTO를 구분하여 사용해야하는 이유

by IYK2h 2021. 8. 20.
728x90

이유

  • view, service와 통신하는 DTO 클래스는 자주 변경된다. 반면 Entity는 그에 비해 변경도 적고, 영향범위는 매우크다
  • 테이블에 매핑되는 정보가 실제 View,service에서 원하는 정보와 다를 수 있다
  • DTO를 사용하지 않고 Entity를 넘기다 보면 원하지 않은 정보까지 전달하게 되어 문제가 발생할 수 있다.

Entity

  • 테이블에 대응하는 하나의 클래스

DTO

  • 계층간 데이터를 교환할 때 사용하는 객체
  • 로직을 갖고 있지 않은 데이터 객체, getter/setter 메소드만 갖음
  • DB외에서 사용 ex)Service, View

DTO와 Entity간의 데이타전달객체의 매핑은 ModelMappper를 활용하자.

ModelMapper를 적극적으로 활용하면 DTO와 Entity간의 객체전환 및 매핑시의 반복작업등을 상당부분 줄일 수 있게 된다.

ModelMapper를 추천하지 않는 사람도 있다.

Reference

[스프링, 스프링부트]Entity, DTO, 그 사이의 ModelMapper 이야기

728x90

'Spring > Spring Boot' 카테고리의 다른 글

JPA & PostgreSQL 연동  (0) 2021.09.03
JPA의 Entity  (0) 2021.08.27
JPA(Java Persistence API)란  (0) 2021.08.06
REST API  (0) 2021.07.23
Spring Boot MVC Pattern(Service, DAO, DTO, VO)  (0) 2021.07.09

댓글