데이터베이스의 테이블
과 매핑되는 객체
데이터베이스 레코드를 객체 인스턴스로 표현
영속성 데이터를 저장하고 관리하는 역할
데이터베이스 테이블의 컬럼
과 매핑
되는 필드
를 가짐
JPA(Java Persistence API)의 @Entity
애노테이션을 사용
데이터 액세스 계층
에서 사용
계층 간(예: 컨트롤러와 서비스 계층 간) 데이터 교환을 위한 객체
여러 계층에서 공유되는 데이터를 포함하지만, 특정 계층에 종속되지 않음
데이터베이스와 직접 매핑되지 않음
불필요한 정보를 제거
하고 필요한 데이터만 전송할 수 있음
보안, 성능, 유지보수 측면에서 이점이 있음
비즈니스 로직
이나 서비스 계층
에서 사용
그니까 Entity는 데이터베이스 테이블과 진짜로 매핑 되는 객체!
DTO는 클라이언트에게 전송될 객체.
그래서 위 예시에서 UserDTO에는 password 필드를 정의 하지 않고 사용.
참고로 @Entity 는 jpa에서 제공하는 애노테이션이다