[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
        • 데이터베이스
        • 운영체제
      • 일상
        • 독서
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바