본문 바로가기
  • hello world
BackEnd/Servlet

DAO · DTO · Entity (+ ect)

by JJoajjoa 2023. 10. 6.

 

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