[Spring boot] DBCP(DataBase Connection Pool)

2020. 3. 8. 18:40·Backend/Spring

 

 

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
'Backend/Spring' 카테고리의 다른 글
  • [Spring boot] Mockito
  • [Spring boot] Junit
  • [Spring boot] Spring boot와 MySQL 연동하기.
  • [Spring boot] 정적 리소스 사용
나는 유찌
나는 유찌
쩌리쨩
  • 나는 유찌
    유찌 개발 일기
    나는 유찌
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 사이드 프로젝트
        • 게시판
        • 블로그(Spring boot + React.js ..
      • 데이터베이스
        • SQLD
      • 이슈 해결
      • Front
        • Javascript
        • Vue.js
        • HTML+CSS
      • Backend
        • Spring
        • ORM
        • JAVA
      • 공부
        • HTTP
        • OOP
        • 이것저것
        • 코딩테스트 | 알고리즘
      • Computer Science
        • Computer architecture
        • 데이터베이스
        • 운영체제
      • 일상
        • 독서
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    jwt 로그인 구현
    독서
    Access Token Refresh Token
    mssql
    히가시노 게이고
    Spring Security AccessDecisionManager
    웹 개발
    pessimisticlock
    AntPathMatcher
    role scope
    jwt
    JWT이란?
    access token
    phantom read
    추리소설
    DIRTY READ
    AccessDecisionVoter
    mysql 격리수준
    Kotlin AntPathMatcher
    spring 격리수준
    LeetCode
    Kotlin AccessDecisionManager
    redis 분산락
    Spring boot에서 JWT 구현
    권한 scope 처리
    Access token 재발급
    spring
    refresh token
    Spring Boot
    한국소설
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
나는 유찌
[Spring boot] DBCP(DataBase Connection Pool)
상단으로

티스토리툴바