Study Record

Entity, VO, DTO의 차이점

고고잉93 2024. 1. 24. 03:30
728x90

각 클래스에 대하여 용어를 정리하고 정확하게 구분하여 사용해보자

 

Entity

// RDB(Relational DataBase, 관계형 데이터베이스)에서의 Entity(개체)란, 현실세계에서의 개체를 표현하기 위한 유형, 무형의 실체로써, Entity를 표현하기 위해서 테이블을 생성한다.

  • - Entity는 DB 테이블내에 존재하는 컬럼만을 속성(필드)로 가지는 클래스. id(pk)를 통하여 구분한다.

**  무분별한 @Setter사용 지양

  - Setter 메서드는 update기능도 수행하기 때문에 사용의도를 파악하기 어렵다.

  - public으로 작성된 Setter메서드를통해 어디서든 접근이 가능하게 되어 의도치않은 변경이 발생할 수 있다.

 

 * @Setter를 대체하는 법

   - @Builder를 통하여 객체값 세팅

         ---- 추후 작성

 

VO(Value Object)

  •  VO는 값 그자체를 나타내는 객체 

** 불변성을 가질 수 없다.

  - Setter같은 데이터값의 변경의 여지가 있는 메서드가 있을수 없다.

  - 내부에 선언된 속성(필드)의 값들이 같다면 모두 같은 객체이다.

     ==> equals, hashcode의 @Override가 필요.

 

DTO(Data Transfer Object)

  •   계층간 데이터를 전달하는 객체 ( View - Controller - Service )

** Getter, Setter를 가지며 오직 데이터를 전달하기 위하여 사용.

 

 

728x90