본문 바로가기
내가 보려고 정리한 Spring

[Spring] DBCP

by nacastle 2020. 8. 22.

2가지 방식의 DB 커넥션 : JDBC / DBCP

 

DBCP는 DataBase Connection Pool 의 약자로 DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 합니다.

 

JDBC는 Java DataBase Connectivity 의 약자로 자바에서 데이터베이스에 연결하기 위한 인터페이스죠.

Oracle, MySQL, MsSQL 등 데이터 베이스는 JDBC를 사용하기 위한 각각의 Driver를 제공합니다.

JDBC는 이 Driver를 통해 DB에 접속을 합니다.



JDBC만을 사용할 경우라면 DB접속 시 아래와 같은 순서가 반복되게 됩니다.

1. DB 접속을 위한 JDBC 드라이버 로드

2. getConnection Method로 부터 DB 커넥션 객체를 얻음

3. 쿼리 수행을 위한 PreparedStatement 객체 생성

4. excuteQuery를 실행해서 결과를 받아옴.

 

여기서 비효율적인 부분은 1번과 2번 입니다.

DB 연결 시 마다 Driver를 로드하고 커넥션 객체를 얻는 작업을 반복하죠.

이 부분을 효율적으로 처리하도록 바꾸는 것이 DBCP의 역할 입니다.

 

 

 

DBCP를 사용하게 되면,

WAS 실행 시 미리 일정량의 DB Connection 객체를 생성하고 Pool 이라는 공간에 저장해 둡니다.

그리고 DB 연결 요청이 있으면, 이 Pool 이라는 공간에서 Connection 객체를 가져다 쓰고 반환 하게 됩니다.

 

DBCP를 사용하므로써 설정할 수 있는 옵션은 아래와 같습니다.

 

maxActive : 동시에 사용할 수 있는 최대 커넥션 개수
maxIdle : Connection Pool에 반납할 때 최대로 유지될 수 있는 커넥션 개수
minIdle : 최소한으로 유지할 커넥션 개수
initialSize : 최소로 getConnection() Method를 통해 커넥션 풀에 채워 넣을 커넥션 개수



출처: https://aljjabaegi.tistory.com/402 [알짜배기 프로그래머]

반응형