728x90
HikariCP란?
빠르고 간단하며 안정적인 JDBC Connection Pool 라이브러리입니다.
"Zero-overhead" 프로덕션 준비 완료된 커넥션 풀로, 약 130KB로 매우 가볍습니다.
🔬 JMH 벤치마크
JMH(Microbenchmark)를 이용해 커넥션 풀의 오버헤드를 측정합니다.

- 하나의 연결 주기 =
DataSource.getConnection()
→Connection.close()
- 하나의 Statement 주기 =
prepareStatement()
→execute()
→close()
⚙️ Configuration
기본 설명
- 대부분의 배포 환경에서 기본 설정만으로도 충분히 동작합니다.
- 시간 관련 값은 모두 밀리초(ms) 단위입니다.
- 정확한 타이머 의존: 성능과 안정성을 위해 시스템 시간 동기화 필수 (특히 VM 환경에서는 NTP 필요)
자세한 설명 보기
✅ 주요 속성 설명
🔐 필수 속성
속성 | 설명 |
---|---|
dataSourceClassName |
JDBC 드라이버에서 제공하는 DataSource 클래스 이름 |
jdbcUrl |
ex: jdbc:mysql://localhost:3306/sample |
username |
DB 접속을 위한 사용자 이름 |
password |
DB 접속 비밀번호 |
🔄 자주 사용되는 속성
속성 | 설명 |
---|---|
autoCommit |
기본 자동 커밋 설정 (기본값: true ) |
connectionTimeout |
Pool에서 커넥션을 얻을 때까지 기다릴 최대 시간 (기본값: 30000 ms, 최소값: 250 ms) |
idleTimeout |
유휴 연결 유지 시간 (기본값: 600000 ms) |
maxLifetime |
커넥션의 최대 수명 (기본값: 1800000 ms) |
connectionTestQuery |
커넥션 유효성 확인용 쿼리 (JDBC4 지원 시 설정 비권장) |
minimumIdle |
최소 유휴 커넥션 수 (기본값: 같은 값의 maximumPoolSize ) |
maximumPoolSize |
풀 내 최대 커넥션 수 (기본값: 10 ) |
그 외 설정 값은 공식 문서를 참조:
🔗 https://github.com/brettwooldridge/HikariCP
📌 요약
- 매우 빠르고 가벼운 커넥션 풀
- 커스터마이징이 가능하지만 기본값만으로도 충분
- 정확한 시간 설정과 연결 생명주기 관리가 핵심
- VM에서는 NTP 기반 시계 동기화 필수
🔗 참고
728x90
'BackEnd > Spring Boot' 카테고리의 다른 글
Token JJWT (0) | 2023.04.15 |
---|---|
json-simple 사용 (0) | 2023.04.15 |
JDBC란? (0) | 2023.04.15 |
Spring Boot 서버 구축[2] (0) | 2023.04.15 |
Spring Boot 서버 구축[1] (0) | 2023.04.15 |