728x90
1. DAO (Data Access Object)
- 역할: 데이터베이스와 직접 소통하여 데이터를 CRUD(생성, 읽기, 업데이트, 삭제) 작업을 수행하는 객체입니다.
- 내용:
- DAO 패턴은 데이터 접근 로직을 캡슐화하여 코드의 재사용성과 유지보수성을 높입니다.
- DAO는 데이터베이스와의 의존성을 줄여 테스트가 용이하도록 하며, JDBC, JPA 등을 사용해 구현할 수 있습니다.
2. DTO (Data Transfer Object)
- 역할: 계층 간 데이터를 전달하는 객체로, 주로 Controller와 Service 간에서 사용됩니다. DTO는 데이터를 이동시키는 그릇 역할을 하며 로직을 포함하지 않습니다.
- 내용:
- DTO는 계층 간에 필요한 정보만 포함하도록 설계하여 불필요한 데이터가 전송되지 않도록 최적화할 수 있습니다.
- Lombok을 사용해 getter/setter를 자동 생성할 수 있으며, Jackson 등을 사용해 직렬화 및 역직렬화에 활용됩니다.
3. VO (Value Object)
- 역할: 불변 객체로, 값을 전달하거나 비교하는 데 사용됩니다. 데이터의 무결성을 유지하고, 값 자체에 의미를 부여하는 역할을 합니다.
- 내용:
- VO는 데이터를 전달할 때 해당 값들이 변하지 않도록 보장합니다.
- VO는 객체 간의 값 비교를 위한 equals와 hashCode 메서드를 오버라이드하여 사용됩니다.
- DDD(Domain Driven Design)에서 VO는 중요한 개념으로, 특정 도메인 내에서 불변해야 할 속성을 관리합니다.
DTO와 VO의 차이점 정리
- DTO는 데이터 이동을 위해 설계된 가변 객체로, 데이터를 수정하고 전달하는 데 사용됩니다.
- VO는 값을 비교하거나 전달하기 위한 불변 객체로, 데이터의 변경이 불가능하며 데이터의 의미와 무결성을 보장합니다.
728x90
'Spring Boot' 카테고리의 다른 글
[Spring Boot] Validation AssertTrue/False 사용법 (1) | 2024.10.03 |
---|---|
[Spring Boot] "Validation(유효성)"검증 실패 처리: 클라이언트에게 적절한 오류 메시지 보내는 방법" (3) | 2024.10.03 |
[Spring Boot] MySql 연결하기 (0) | 2024.09.29 |
[Spring Boot] Validation 설명 (0) | 2024.09.27 |
[Spring Boot] Global Exception Handler 만들기 (0) | 2024.09.27 |