Backend/Spring
[Spring boot] DBCP(DataBase Connection Pool)
나는 유찌
2020. 3. 8. 18:40
1. DBCP란?
DBCP는 DataBase Connnection Pool의 약자로 데이터베이스와 연결된 커넥션을 미리 만들어
풀(Pool) 속에 저장해 두고 필요할 때에 꺼내어 쓰는 것을 말한다.
또한 동시 접속자 수가 가질 수 있는 커넥션을 하나로 모아놓고 관리한다.
2. DBCP를 사용하는 이유
예를 들어, 한 사용자가 유명 게시판에서 자신이 작성한 글 내용을 수정한다고 한다.
내용을 수정하기 위해 자신이 작성한 글을 확인하고 수정을 하게 될 텐데
만일 순수 JDBC만을 이용하게 된다면 몇번의 데이터베이스와의 연결이 이루어지게 된다.
이 유명 게시판을 이용하는 사용자가 수천명이라고 가정했을 때 동시에 엄청난 연결이 일어나게 되는데
그렇게 된다면 터지게 될 위험이 크다.
이러한 문제를 해결하고자 나온것이 미리 커넥션을 만들어 저장해 놓은 뒤 필요시 꺼내어 사용하는 DBCP이다.
3. DBCP 사용효과
DBCP 라이브러리를 잘 사용하게 될 경우 애플리케이션의 일부분에서 발생하는 문제가 전체 문제로 전파되지 않도록 할 수 있다.
또한 일시적인 문제가 긴 시간동안 이어지지 않도록 할 수 있다.
반면 설정 값을 적절하게 설정하지 못할 경우 DBCP가 오히려 애플리케이션의 병목지점(지체)이 되게 할 수 있다.
4. DBCP 종류
- Spring boot에서는 2.0.0 버전을 기준으로 하위 버전에서는 기본 DBCP로 Tomcat JDBC를 선택하고,
상위 버전에서는 HikariCP로 변경했다.
이외에도 Apache의 Commons DBCP와 BoneCP 등등 있다.