
maximum-pool-size, connection-timeout, max-lifetime을 제대로 이해하자
Spring Boot에서 DB 연결은 대부분 HikariCP를 사용합니다.
HikariCP는 JVM 기반 애플리케이션에서 가장 빠른 커넥션 풀로 알려져 있으며 Spring Boot 기본 설정입니다.
하지만 기본 설정을 그대로 사용하면 트래픽 상황이나 DB 환경에 따라 장애가 발생할 수 있습니다.
이번 글에서는 아래 설정을 기준으로 실무에서 어떤 의미를 가지는지 사례 중심으로 설명합니다.
datasource:
hikari:
maximum-pool-size: 10
connection-timeout: 30000
max-lifetime: 1800000
1. HikariCP란 무엇인가
HikariCP는 DB 커넥션을 미리 생성해두고 재사용하는 커넥션 풀(Connection Pool) 입니다.
애플리케이션이 요청을 받을 때마다 DB 연결을 생성하면 성능이 크게 떨어집니다.
그래서 보통 구조는 다음과 같습니다.
↓
Spring Application
↓
Hikari Connection Pool
↓
Database
커넥션 풀은 DB 연결을 미리 만들어 두고 필요할 때 빌려주는 역할을 합니다.
2. maximum-pool-size
(최대 커넥션 개수)
이 설정은 애플리케이션이 동시에 사용할 수 있는 DB 커넥션의 최대 개수입니다.
예를 들어
이라면
합니다.
사례 1: 트래픽이 낮은 서비스
예
- 내부 시스템
- 관리자 페이지
- 연구 시스템
- PoC 프로젝트
정도면 충분합니다.
사례 2: 트래픽 많은 API 서버
예
이 경우
정도로 늘려야 합니다.
하지만 무조건 늘리는 것은 위험합니다.
왜냐하면 DB에도 max connection 제한이 있기 때문입니다.
예
max_connections = 100
애플리케이션 서버가 4대라면
따라서
정도로 설정하는 것이 안전합니다.
3. connection-timeout
(커넥션을 기다리는 최대 시간)
의미
만약 커넥션 풀이 꽉 차 있으면
↓
Connection pool 대기
이 상태가 됩니다.
30초 안에 커넥션을 못 얻으면
이 발생합니다.
사례 1: 커넥션 풀 부족
예
동시에
구조
10개 → 대기
이때
이면
5초 후 요청이 실패합니다.
사례 2: 너무 크게 잡으면 위험
이렇게 잡으면
합니다.
그러면
이 발생할 수 있습니다.
그래서 보통
정도가 적당합니다.
4. max-lifetime
(커넥션 최대 수명)
의미
합니다.
왜냐하면 DB나 네트워크에서 유휴 커넥션을 끊는 경우가 있기 때문입니다.
사례 1: AWS RDS
AWS RDS는
이 존재합니다.
그래서 커넥션을 오래 유지하면
Connection reset
같은 에러가 발생합니다.
사례 2: NAT / Firewall 환경
회사 내부망에서는
Firewall idle timeout
이 존재합니다.
이때 오래된 커넥션이 끊어집니다.
그래서 HikariCP는 일정 시간 후 커넥션을 새로 생성합니다.
5. 실무에서 가장 흔한 장애
커넥션 풀 고갈
로그
원인
1️⃣ DB 쿼리 느림
2️⃣ 트랜잭션 오래 유지
3️⃣ 커넥션 풀 부족
이때 해결 방법
쿼리 최적화
트랜잭션 범위 축소
6. 실무 추천 설정
보통 Spring Boot에서는 이렇게 시작합니다.
예
추천 기본값
datasource:
hikari:
maximum-pool-size: 15
minimum-idle: 5
connection-timeout: 30000
max-lifetime: 1800000
7. 정리
HikariCP 설정은 단순한 옵션처럼 보이지만 DB 성능과 안정성에 직접적인 영향을 줍니다.
핵심 포인트는 다음입니다.
- maximum-pool-size
→ 동시 DB 작업 개수 - connection-timeout
→ 커넥션 대기 시간 - max-lifetime
→ 커넥션 재생성 주기
이 세 가지를 DB max connection, 트래픽, 서버 수와 함께 고려해야 합니다.
✔ 한 줄 정리
DB 안정성을 위한 설정이다.
'DB' 카테고리의 다른 글
| Spring Boot에서 DB 커넥션 풀 크기를 계산하는 방법 (0) | 2026.03.11 |
|---|---|
| Spring Boot HikariCP 설정을 잘못하면 발생하는 5가지 장애 (0) | 2026.03.11 |
| 자바 백엔드 성능 최적화의 시작, HikariCP 제대로 알고 쓰기 (0) | 2026.03.11 |
| Redis (0) | 2026.03.10 |
| MinIO (0) | 2026.03.10 |
