본문 바로가기
Backend/Spring

[Spring boot] DBCP(DataBase Connection Pool)

by 나는 유찌 2020. 3. 8.

 

 

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 등등 있다.

 

 

 

 

 

'Backend > Spring' 카테고리의 다른 글

[Spring boot] Mockito  (0) 2020.03.08
[Spring boot] Junit  (0) 2020.03.08
[Spring boot] Spring boot와 MySQL 연동하기.  (0) 2020.02.24
[Spring boot] 정적 리소스 사용  (0) 2020.02.23
[Spring] @Pattern 체크 시 필수값이 아닐 때  (0) 2020.02.23