728x90
VO (Value Object)
- 리터럴 개념
- 값 그 자체의 의미를 가진 불변 객체이다. (Read-Only)
- 따라서 getter 메소드만 가지고 있어야 한다.
- VO 내부에 선언된 필드 모든 값들로 동일 객체인지 판단하기 위해 사용된다.
- 따라서 equals(), hashCode()를 오버라이드 할 필요가 있다.
DTO (Data Transfer Object)
- 계층간(Controller, View, Buiseness Layer) 데이터 교환을 위한 JavaBeans
- DB의 데이터를 Service나 Controller 등으로 보낼 때 사용하는 객체
- DB의 데이터가 Presentation Logic Tier로 넘어올 때는 DTO로 변환되어 오고간다.
- DTO는 로직이 없는 순수한 데이터 객체
- getter/setter 포함
- 주로 비동기 처리시 많이 사용
DAO (Data Access Object)
- DB의 데이터에 접근하기 위한 객체
- 직접 DB에 접근하여 삽입/ 삭제/ 조회 등 조작하는 기능 수행
- DB 접근을 위한 로직과 비즈니스 로직을 분리하기 위함
- PA, Hibernate, Mybatis 등의 Persistence Framework를 통해 접근
Entity
- 가장 Core한 클래스
- Domain Logic
- 실제 데이터베이스와 1:1로 매칭되는 클ㄹ래스
- DB테이블 내에 존재하는 컬럼만을 속성(필드)로 가져야 함
- 테이블 내에 없는 컬럼을 가져오면 안됨, 상속, 구현 안됨
- 최대한 외부에서 Entity의 getter/setter를 사용하지 않게 클래스 내부에서 필요한 로직을 구현해야 함
- setter 무분별하게 사용 금지 -> 객체의 일관성을 보장할 수 없기 때문VO (Value Object)
- 리터럴 개념
- 값 그 자체의 의미를 가진 불변 객체이다. (Read-Only)
- 따라서 getter 메소드만 가지고 있어야 한다.
- VO 내부에 선언된 필드 모든 값들로 동일 객체인지 판단하기 위해 사용된다.
- 따라서 equals(), hashCode()를 오버라이드 할 필요가 있다.
- 계층간(Controller, View, Buiseness Layer) 데이터 교환을 위한 JavaBeans
- DB의 데이터를 Service나 Controller 등으로 보낼 때 사용하는 객체
- DB의 데이터가 Presentation Logic Tier로 넘어올 때는 DTO로 변환되어 오고간다.
- DTO는 로직이 없는 순수한 데이터 객체
- getter/setter 포함
- 주로 비동기 처리시 많이 사용
- DB의 데이터에 접근하기 위한 객체
- 직접 DB에 접근하여 삽입/ 삭제/ 조회 등 조작하는 기능 수행
- DB 접근을 위한 로직과 비즈니스 로직을 분리하기 위함
- PA, Hibernate, Mybatis 등의 Persistence Framework를 통해 접근
- 가장 Core한 클래스
- Domain Logic
- 실제 데이터베이스와 1:1로 매칭되는 클ㄹ래스
- DB테이블 내에 존재하는 컬럼만을 속성(필드)로 가져야 함
- 테이블 내에 없는 컬럼을 가져오면 안됨, 상속, 구현 안됨
- 최대한 외부에서 Entity의 getter/setter를 사용하지 않게 클래스 내부에서 필요한 로직을 구현해야 함
- setter 무분별하게 사용 금지 -> 객체의 일관성을 보장할 수 없기 때문
'Spring' 카테고리의 다른 글
Spring - Rest API (0) | 2022.11.21 |
---|---|
Spring - @Controller (0) | 2022.11.21 |
Spring - IoC, DI (0) | 2022.11.21 |
Spring - 웹 계층 (0) | 2022.11.18 |
Spring - MVC 패턴 (0) | 2022.11.18 |
댓글