#8. Connection Pool, HikariCP

jychan99·2025년 3월 17일

개념정리

목록 보기
8/22

Connection Pool

Connection Pool(커넥션 풀)은 데이터베이스 연결을 미리 만들어서 재사용하도록 관리하는 기술이다.

왜 커넥션 풀이 필요할까?

일반적으로 애플리케이션이 DB에 접근하려면

1. DB 서버와 연결(Connection 생성)
2. SQL 쿼리 실행
3. 결과 처리
4. DB 연결 종료(Disconnect)

이런 과정이 필요한데,
문제는 "연결 생성""연결 종료"가 매우 비용이 크다.

(연결 생성: 네트워크 통신 + 인증 과정
연결 종료: 연결 정리 과정)

이 과정을 매 요청마다 반복하면 성능이 심각하게 저하됩니다.

Hikari

Hikari는 JDBC커넥션 풀링 라이브러리이다. 일본어로 빛을 의미하고, 그만큼 빠르고 가볍다는 특징이있어 기본 커넥션 풀로 자주 사용된다.

Spring Boot 설정

스프링 부트나 자바백엔드 프로젝트에서 다음과 같이 설정하면 된다.

application.yml

spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/mydb
    username: myuser
    password: mypassword
    driver-class-name: org.postgresql.Driver
    hikari:
      maximum-pool-size: 10 #최대 커넥션 수
      minimum-idle: 2 #최소 유휴 커넥션 수
      idle-timeout: 30000 # 유휴 상태 커넥션 유지 시간
      max-lifetime: 600000 # 커넥션 최대 수명 (DB에서 오래된 커넥션을 끊어버릴 때 대비)
      connection-timeout: 2000 # 커넥션을 얻기 위한 최대 대기 시간
      leak-detection-threshold: 2000 # 2초 이상 커넥션이 반납되지 않으면 로그를 남김
profile
내가 지금 두려워 하고 있는 일이 바로 내가 지금 해야 할 일이다. 🐍

0개의 댓글