IT/Spring

HikariCP

iamhyeon 2025. 7. 12. 16:26

 

 

🔍 HikariCP란?

HikariCP는 경량의 고성능 JDBC 커넥션 풀이다.

Spring Boot에서는 기본 커넥션 풀로 HikariCP를 사용하고 있으며, 빠른 속도와 낮은 메모리 사용량으로 잘 알려져 있다.

  • Hikari는 일본어로 "빛"이라는 뜻이며, 그 이름처럼 빠르고 가볍다는 특징을 가진다.
  • Spring Boot 2.x부터는 HikariCP가 기본으로 설정되어 있기 때문에 별도 설정 없이도 바로 사용할 수 있다.

🤔 커넥션 풀

애플리케이션이 데이터베이스에 접근할 때마다 커넥션을 새로 생성한다면 다음과 같은 문제점이 발생한다.

  • 커넥션 생성/종료는 비용이 크고 느리다
  • 대량의 요청 처리 시 DB 자원 고갈 가능성이 있다
  • 응답 속도 저하, 장애 발생 위험이 있다

➡️ 이런 문제를 해결하기 위해 미리 일정량의 커넥션을 만들어 재사용하는 커넥션 풀(Connection Pool)을 사용한다.
그중에서도 빠르고 효율적인 구현체가 HikariCP이다.


⚙️ 기본 설정 확인 

Spring Boot에서는 application.yml 혹은 application.properties에 간단히 설정할 수 있다.
Spring Boot 2.0 이상에서는 별도 지정 없이도 HikariCP가 자동으로 사용된다.

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: myuser
    password: mypassword
    driver-class-name: com.mysql.cj.jdbc.Driver
    hikari:
      maximum-pool-size: 10
      minimum-idle: 5
      idle-timeout: 600000
      connection-timeout: 30000
      pool-name: MyHikariCP

또는 application.properties 방식:

spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.pool-name=MyHikariCP

 


📊 주요 설정 옵션 

옵션명 설명 기본값
maximum-pool-size 커넥션 풀의 최대 커넥션 수 10
minimum-idle 최소한 유지할 커넥션 수 same as max
idle-timeout 커넥션이 유휴 상태로 유지되는 최대 시간(ms) 600000
connection-timeout 커넥션을 얻기 위한 최대 대기 시간(ms) 30000
pool-name 커넥션 풀의 이름 HikariPool-1

📌 정리

  • Spring Boot는 HikariCP를 기본 커넥션 풀로 사용한다.
  • 설정은 간단하지만, 성능과 안정성에 큰 영향을 미친다.
  • 운영 환경에 맞게 적절히 튜닝하는 것이 중요하다.

📚 참고 자료

 

GitHub - brettwooldridge/HikariCP: 光 HikariCP・A solid, high-performance, JDBC connection pool at last.

光 HikariCP・A solid, high-performance, JDBC connection pool at last. - brettwooldridge/HikariCP

github.com

 

반응형