VO(Value Object)
- 목적 : VO는 값을 나타내는 객체로, 주로 불변(Immutable)하게 구현되어 값의 변화를 방지하고 객체 간의 안전한 데이터 전달을 지원한다.
- 특징 :
- 불변성을 유지하며 주로 값(Attributes)을 가지고 있다.
- 주로 도메인 모델에서 사용되며, 동일한 값을 가진 객체는 동등하다고 간주된다.
- 비즈니스 로직이나 행위를 가지지 않고 데이터를 보관하며, 값의 일관성을 유지하기 위해 사용된다.
public class AddressVO {
private final String city;
private final String zipCode;
public AddressVO(String city, String zipCode) {
this.city = city;
this.zipCode = zipCode;
}
// Getters
}
DAO(Data Access Object)
- 목적 : 데이터 액세스 계층에서 데이터베이스와의 상호작용을 처리하는 객체이다. 데이터베이스와의 통신을 캡슐화하고 비즈니스 로직과 데이터 액세스 코드를 분리한다.
-특징 :
- 주로 CRUD 작업을 수행한다.
- 데이터베이스와의 접근을 담당하여 비즈니스 로직이나 서비스에서 데이터베이스에 직접 접근하지 않도록 한다.
- JDBC나 ORM 프레임워크를 통해 데이터베이스에 접근한다.
public class UserDao {
public User findById(int userId) {
// 데이터베이스에서 사용자 조회
// ...
}
public void save(User user) {
// 데이터베이스에 사용자 저장
// ...
}
public void update(User user) {
// 데이터베이스에서 사용자 업데이트
// ...
}
public void delete(int userId) {
// 데이터베이스에서 사용자 삭제
// ...
}
}
DTO(Data Transfer Obejct)
-목적 : DTO는 주로 다른 계층 간 데이터 전송을 위한 객체이다. 서로 다른 계층 간에 데이터를 호율적으로 전달하고자 할 때 사용된다.
-특징:
- 주로 읽기 전용 데이터를 담고 있으며, 데이터 전달에만 사용된다.
- 비즈니스 로직을 포함하지 않으며, 데이터 전송의 효율성을 높이기 위해 필요한 필드들로만 이루어진다.
- 객체 간의 데이터 전송 시에 사용된다.
public class UserDTO {
private String username;
private String email;
// Getters and setters
}
Entity
- 목적 : 데이터베이스 테이블과 매핑되는 엔터티 객체로, 비즈니스 도메인에서 가장 중요한 개념 중 하나이다. 데이터베이스의 레코드를 나타내며, 주로 비즈니스 로직을 가진다.
-특징
- 데이터 베이스 테이블과 매핑되는 객체로 엔터티의 상태를 나타낸다.
- 비즈니스 로직이나 행위를 가질 수 있으며, 엔터티의 상태를 조작하는 메서드를 포함한다.
- 일반적으로 ORM을 통해 데이터베이스와 연동된다.
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String username;
private String email;
// Getters and setters, business logic methods
}
'기타' 카테고리의 다른 글
맥(mac)에서 cafe24 가상서버호스팅 ssh 접속하기 (2) | 2023.05.01 |
---|---|
동시성(Concurrency)과 병렬성(Parallelism) (7) | 2023.03.05 |
VSCODE 아이콘 테마 확장 프로그램 Material Icon Theme (0) | 2022.12.27 |
JSON 가독성 높이는 크롬 확장 프로그램 (0) | 2022.12.26 |
Visual Studio Code 설치 Stable, Insiders 차이 (0) | 2022.12.26 |
댓글