DBCP (DataBase Connection Pool)

dongbin_Shin·2021년 12월 10일
0

JDBC

DBCP라는 것에 대해 알아보기 전에 먼저 JDBC에 대해 알아보자.

JDBC는 Java DataBase Connectivity의 약자로 자바에서 데이터베이스에 연결하기 위해 사용되는 인터페이스이다.

Oracle, MySQL, Postgresql 등 여러 데이터베이스에서는 JDBC를 사용하기 위해 필요한 각각의 Driver를 제공하는데 우리는 이것을 이용해 DB에 접속할 수 있다.

JDBC를 이용해 DB에 접속하는 순서는 다음과 같다.

  1. DB접속을 위해 JDBC 드라이버 로드
  2. getConnection 메소드로 DB 커넥션 객체를 얻는다.
  3. 쿼리 수행을 위해 PreparedStatement 객체 생성
  4. excuteQuery 를 실행해 쿼리 실행 결과를 받는다.

이때 DB 연결마다 1번과 2번의 과정(Driver 로드, 커넥션 객체 얻기)를 하면 굉장히 자원을 많이 소모해야 하는 작업이 반복된다.

DBCP

JDBC만을 이용해 DB에 접속하면 위와 같은 비효율성이 일어나게 된다.

때문에 우리는 WAS 실행 시 미리 일정량의 DB 커넥션 객체를 생성한 후 Pool에 저장해둔다.

이를 DBCP(DataBase Connection Pool)라고 한다.

이 DBCP를 이용해 DB접속을 하면 요청마다 위 단계를 반복할 필요 없이 미리 만들어 저장해 둔 커넥션 객체를 제공하고 연결이 종료되면 다시 pool에 반환해 보관하는 방식을 취해 효율성을 높일 수 있다.

profile
멋있는 백엔드 개발자

0개의 댓글