본문 바로가기
Programming/Java

[Spring] DAO, DTO, Service란

by devpine 2019. 4. 17.
반응형

MVC(Model - View - Controller)에서 Model은 DAO, DTO, Service로 나눌 수 있다.

MVC 관련:

http://webskills.kr/archives/479

 

DAO(Data Access Object)란? 

실제로 DB에 접근하는 객체. DB를 사용해 데이터를 조회하거나 조작하는 기능 담당.

DB와 관련없는 코드들을 분리하는 이유? HTTP Request를 Web Application이 받게 되면 Thread를 생성하게 되는데, DB로부터 데이터를 얻어오기 위해 Driver를 로드하고 매번 Connection 객체를 생성하게 되면 너무 많아진다. 그래서 DB 전용 객체로만 사용할 DAO가 있으면 부담이 적어진다. 

DBCP 개념 관련: 

https://www.holaxprogramming.com/2013/01/10/devops-how-to-manage-dbcp/

 

DTO(Data Transfer Object)란? 

계층간 데이터 교환을 위한 객체(Java Beans). DB 레코드의 데이터를 매핑하기 위한 데이터 객체이며 속성과 그 속성에 접근하기 위한 getter, setter 메소드만 가진 클래스. 즉, Data를 얻어 Service나 Controller등으로 보낼 때 사용하는 객체.

참고. VO(Value Object) vs DTO? VO는 DTO와 동일 개념이며, read only 속성을 가짐. VO는 특정 비즈니스 값을 담는 객체, DTO는 Layer간 통신 용도의 객체.

 

Service란? 

비즈니스 로직. Controller가 Request를 받으면 적절한 Service에 전달한다. 전달받은 Service는 DAO로 DB 접근, DTO로 Data 전달받고, 처리한다.

 

DAO, DTO, Service 관련:

https://lazymankook.tistory.com/30

반응형

'Programming > Java' 카테고리의 다른 글

[중급] Object 클래스  (0) 2019.12.19
[기초] 예외 처리  (0) 2019.12.19
[기초] 내부 클래스, 익명 클래스  (0) 2019.12.19
[기초] String 클래스  (0) 2019.12.19
Java 개발 환경 Intellij 설치  (0) 2019.12.19

댓글