

HTML 테이블
| 분류 | Entity | DTO | VO |
|---|---|---|---|
| 정의 | DB 테이블 매핑 객체 | 데이터 전송 객체 | 데이터 값 표현 객체 |
| 변경 가능 여부 | 가변/불변 객체 | 가변/불변 객체 | 불변 객체 |
| 로직 포함 여부 | ⭕ | ❌ | ⭕ |
| 포함 데이터 여부 | 전체 도메인 데이터 | 필요한 데이터만 | 필요한 데이터만 |
불변 객체는
Setter가 없어 변경이 불가하다.
Data Access Object
Repotiroy - 엔티티 객체를 보관하고 관리하는 저장소
DAO - 데이터에 접근하도록 DB접근 관련 로직을 모아둔 객체
개발할 때 둘이 같다고봐도 무방하다.
Repository
public interface MemberRepository {
Member findById(Integer memberId);
}
DAPImpl
public class MemberRepositoryImpl implements MemberRepository {
public Member findById(Integer memberId) {
String sql = "SELECT * FROM member WHERE member_id = ?";
return jdbcTemplate.query(sql, rowMapper, memberId).stream().findAny();
}