Open LeeGitaek opened 4 years ago
Spring Framework의 MVC에서 Model은 Service, DAO, DTO로 나눌 수 있음.
Data Access Object의 줄임말이다. DB를 사용해 데이터를 조회하거나 조작하는 기능을 담당하는 것들을 DAO라고 부른다. domain logic (비즈니스 로직이나 DB와 관련없는 코드들)을 persistence mechanism과 분리하기 위해 사용한다.
** persistence layer: Database에 data를 CRUD(Create, Read, Update, Drop)하는 계층
HTTP Request를 Web Application이 받게 되면 Thread를 생성하게 되는데 비즈니스 로직이 DB로부터 데이터를 얻어오기 위해 매번 Driver를 로드하고 Connection 객체를 생성하게 되면 엄청 많은 커넥션이 일어나므로 DAO를 하나 만들어 DB 전용 객체로만 쓰는 것이다. 이러면 부담이 줄어들게 된다.
DTO => Data Transfer Object VO => Value Object
DBCP? DBCP(Database Connection Pool)은 HTTP 요청에 매번 위의 1-5의 단계를 거치치 않기 위한 방법이다. Connection Pool을 이용하면 다수의 HTTP 요청에 대한 Thread를 효율적으로 처리할 수 있게 된다.
Connection Pool의 구현체의 역할:
Connection Pool를 효율적으로 관리하기 위한 값들이 존재하는데 이러한 값들은 DBCP 구현체를 제공하는 라이브러리를 통해 설정
Pool에 Connection 을 Idle(대기) 상태로 두었다고, 실제 사용하는(Active) 모습인데 DBCP를 관리하기 위한 올바른 설정 값에 대해 살펴 보도록 하자.
SDV 패턴 / 도메인 주도 설계 파악 이슈