Programing/JAVA

JDBC, DBCP란? 웹 어플리케이션의 DB접속에 대한 고찰

리커니 2018. 7. 2.
반응형

JDBC, DBCP란? 웹 어플리케이션의 DB접속에 대한 고찰

 

자바 웹 어플리케이션에서 DB 접속과 관련된 라이브러리가

JDBC, DBCP 입니다.

 

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

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

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

 

그럼 JDBC만 있으면 DB접속이 되는데 DBCP는 왜 쓰지? 라는 궁금증이 생기실 겁니다.

답은 '효율' 입니다.

 

효율적인 DB 커넥션을 위해 DBCP를 사용하는 것이죠.

그럼 DBCP가 뭔지 알아보겠습니다.

 

DBCP는 DataBase Connection Pool 의 약자로 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를 통해 커넥션 풀에 채워 넣을 커넥션 개수

 

이제 다음 포스팅에서는 DBCP를 설정하는 방법에 대해서 알아보도록 하겠습니다.

 

반응형

댓글

💲 추천 글