HikariPool-1 - Starting...
HikariPool-1 - Start completed.
Spring Boot 실행 시 로그에 자주 보이는 이 메시지는 HikariCP (Hikari Connection Pool) 이라는 데이터베이스 커넥션 풀(Connection Pool) 이 초기화되었다는 뜻입니다
HikariCP는
“가볍고, 빠르고, 안정적인 JDBC Connection Pool 구현체”
입니다.
Spring Boot 2.x 이후부터는 기본 데이터베이스 커넥션 풀로 HikariCP가 자동 사용됩니다.
즉, 여러분이 spring.datasource.* 설정만 해두면 내부적으로 HikariCP가 커넥션을 관리합니다.
데이터베이스와 애플리케이션이 통신하려면 매번 이렇게 해야 합니다.
하지만 DB 연결을 매번 새로 열고 닫는 건 굉장히 느립니다.
그래서 HikariCP는 “미리 여러 개의 Connection을 만들어두고 재사용”합니다.
이것을 Connection Pool이라 부릅니다.
이 덕분에 DB 접근 속도가 수십 배 빨라집니다.
| 항목 | 설명 |
|---|---|
| 경량성(Lightweight) | 불필요한 기능 없이 최소한의 코드로 구성되어 매우 빠름 |
| 고성능(High performance) | 다른 풀(Druid, Tomcat JDBC 등) 대비 속도 우수 |
| 자동 관리 | Connection 누수, idle timeout 등 자동 관리 |
| Spring Boot 기본 내장 | 별도 설정 없이 자동 등록 |
→ 이는 커넥션이 부족하거나 닫히지 않아 “풀 고갈(pool exhaustion)”이 발생했다는 뜻입니다.
이 값들은 성능 조정과 안정성 확보에 중요합니다.
대규모 트래픽 환경에서는 maximum-pool-size 와 connection-timeout 을 상황에 맞게 조정합니다.
# -----------------------------------------
# 기본 데이터베이스 연결 설정
# -----------------------------------------
spring.datasource.url=jdbc:mysql://localhost:3306/mydb?serverTimezone=Asia/Seoul&characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=1234
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# -----------------------------------------
# HikariCP (Connection Pool) 설정
# -----------------------------------------
# 풀의 이름 (로그에 표시됨)
spring.datasource.hikari.pool-name=HikariPool-1
# 최대 커넥션 수 (풀에서 동시에 유지할 수 있는 최대 DB 연결 수)
spring.datasource.hikari.maximum-pool-size=10
# 최소 유휴 커넥션 수 (DB 요청이 없을 때 유지되는 최소 연결 수)
spring.datasource.hikari.minimum-idle=5
# 커넥션이 유휴 상태로 유지될 수 있는 최대 시간 (ms)
spring.datasource.hikari.idle-timeout=600000 # 10분
# 커넥션의 전체 수명 (ms) - 오래된 커넥션은 재생성
spring.datasource.hikari.max-lifetime=1800000 # 30분
# 커넥션을 가져올 때 최대 대기 시간 (ms)
spring.datasource.hikari.connection-timeout=30000 # 30초
# 테스트 쿼리 (DB 연결 유효성 검사용)
spring.datasource.hikari.connection-test-query=SELECT 1
HikariPool-1 - Starting... HikariPool-1 - Added connection conn0: url=jdbc:mysql://localhost:3306/mydb user=root HikariPool-1 - Start completed.
의미:
이후 SQL 실행 중에 이런 로그도 볼 수 있습니다:
HikariPool-1 - Connection is not available, request timed out after 30000ms.
→ 이는 커넥션이 부족하거나 닫히지 않아 “풀 고갈(pool exhaustion)”이 발생했다는 뜻입니다.
| 항목 | 설명 |
|---|---|
| 이름 | HikariCP (히카리 커넥션 풀) |
| 역할 | DB 연결을 미리 만들어두고 재사용하는 커넥션 풀 |
| 장점 | 빠름, 안정적, Spring Boot 기본 내장 |
| 로그 의미 | 풀 생성 및 커넥션 초기화 상태를 출력 |
| 주요 설정 | maximum-pool-size, idle-timeout, connection-timeout 등 |