DAO
Data Access Object
데이터베이스에 접근하는 코드를 캡슐화 하는 역할
DAO 패턴은 데이터베이스 연결 및 SQL 쿼리 실행 등과 같은 로우레벨의 작업을 숨기고
대신 더 고차원 인터페이스를 제공함
일반적으로 create(), read(), update(), delete() 와 같은 메서드들을 제공함
장점)
- 데이터 접근 로직 분리
데이터 접근을 비즈니스 로직으로부터 분리시킴
비즈니스 로직은 변경없이 동일한 DAO 인터페이스를 사용하여 다양한 종류의 데이터 소스와 상화작용 가능
- 유지보수
모든 데이터 접근 코드가 한 곳에 모여있어 유지보수에 용이함
- 재사용성
CRUD 작업이 동일하게 이루어질 때, DAO를 재사용 할 수 있음
- 케스트
실제 DB 대신 Mock 객체를 사용하여 테스트를 할 수 있어서 테스트가 간단, 수월함
단점)
- 개발시간증가
- 각 테이블 혹은 엔티티 별로 DAO 클래스 혹은 인터페이스가 필요
DTO
Data Transfer Object
데이터를 객체 형태로 전달하는 역할
로직을 가지지 않은 순수한 데이터 객체
getter/setter 메서드와 함께 여러개의 인스턴스 변수를 가짐
- 레이어간 데이터 교환
시스템 내 다른 레이어 간에 (컨트롤러와 서비스 레이어) 데이터를 전송할 때 DTO가 사용돰
각 레이어는 독립적으로 변경되기 때문에 이들 사이의 결합도(coupling)을 최소화하기 위해 DTO를 사용
- 데이터베이스 행 전송
한 행의 데이터베이스 레코드를 나타내기 위해서 DTO 사용 가능
- 클라이언트-서버 통신
웹API에서 클라이언트와 서버 사이의 JSON 형식으로 데이터를 주고받을 때 DTO 사용
- 구조 단순화
복잡한 모델에서 필요한 정보만 추출하여 단순화된 형태로 제공될 때 사용
엔티티 Entity
데이터베이스의 테이블을 대표하는 클래스
엔티티는 데이터베이스의 테이블에서 각각의 행(row)를 나타내며
이러한 엔티티는 ORM(오브젝트-릴래이셔널 매핑) 프레임 워크에 의해 관리됨
- 식별성
각 엔티티 인스턴스는 유일한 식별자(ID)를 가짐
ID는 데이터베이스 테이블의 기본키에 매핑됨
- 영속성
엔티티 인스턴스들을 영속성 컨텍스트라 불리는 캐시에 저장되며 이 컨택스트와 연관된 세션 또는 트랜잭션 동안 지속됨
- 상태관리
ORM 프레임워크는 엔티티 인스턴스들의 상태 변화를 추적하고, 필요할 때 데이터베이스와 동기화 함
1. 기본 패스 주는 방법
2. GET 과 POST 의 차이점
'BackEnd > Servlet' 카테고리의 다른 글
MVC 패턴 · Dispatcher (0) | 2023.10.05 |
---|---|
[Servlet] JSP 02 (0) | 2023.10.05 |
[Servlet] JSP 01 (0) | 2023.10.04 |
[Servlet] 02 (0) | 2023.10.04 |
[Servlet] 01 (0) | 2023.09.27 |