코드를 작성하는데 DTO와 Entity를 왜 나누는지, 언제 쓰이는지 궁금해졌다.
여기에 안 써놓으면 분명 까먹을테니 한 번 정리하도록 하겠다.
우선 두 개념을 먼저 알아보자.
DTO란 layer간 데이터 교환이 이루어질수 있도록 하는 객체라고 한다.
Controller와 같은 클라이언트와 직접 마주하는 계층에서 데이터 교환을 위해 사용된다.
DTO는 로직을 갖고 있지 않는 순수한 데이터 객체이며, getter&setter 메서드만 갖는다.
Entity란 실제 DB테이블과 매핑되는 클래스라고 한다. DB 테이블에 존재하는 컬럼을 필드로 가진다.
DTO는 교환에 사용되고 Entity는 최종 단계 느낌
둘을 나누는 이유는 DB와 View의 명확한 분리를 위해서임
entity가 변경되면 다른 클래스에 영향을 끼치기 쉬운데
dto는 view와 통신하면서 자주 변경되기 때문에 분리를 해줘야 한다.
출처