[Java] 커넥션풀

Java <-> DB 연결관계에 대한 해석

Posted by owin2828 on 2020-01-06 17:11 · 1 min read
  • 본 문서에서는 커넥션 풀에 대하여 알아보도록 한다.

1. 커넥션 풀 등장 배경

  • 실제 서비스 운영 환경에서는 서로 다른 장비를 이용해 자바 프로그램과 DBMS를 실행
    이때 자바 프로그램에서 DBMS로 커넥션을 생성하는 시간은 성능 저하의 원인이 됨
  • 동시 사용자수가 많으면 사용자마다 DB 커넥션을 생성해 DBMS에 부하를 줌
  • 최초 연결에 따른 응답 속도 저하와 동시 접속자가 많을 때 발생하는 부하를 줄이기 위해 등장

2. 커넥션 풀의 개념 및 특징

Connection Pool

  • 커넥션 풀은 일정 개수의 DB 커넥션을 미리 만들어두는 기법
  • 커넥션이 필요하다면, 풀에서 커넥션을 가져와 사용한 뒤 다시 풀에 반납
  • 커넥션을 미리 생성하기 때문에 커넥션을 사용하는 시점에서 생성시간 단축
  • 동시 접속자가 많더라도 생성 부하가 적기에 더 많은 동시 접속자 처리 가능
  • 커넥션의 개수를 조절해 DBMS의 부하를 일정하게 조절

3. 커넥션 풀의 종류

DB 커넥션 풀 기능을 제공하는 대표 모듈은 다음과 같다.

  • Tomcat JDBC
  • HikariCP
  • DBCP
  • c3p0