설정 비교
minimumIdle는 유지선, maximumPoolSize는 상한선입니다.
차이는 "평소에 몇 개를 계속 잡아둘지"와 "부하가 몰릴 때 새 커넥션을 얼마나 추가로 만들어야 하는지"입니다.
공통 조건
두 경우 모두 maximumPoolSize = 10 입니다. 비교 포인트는 minimumIdle 을 얼마로 둘지입니다.
권장 기본값
10 = 10
고정 크기처럼 운영
유휴 상태여도 10개를 계속 유지합니다.
유휴 상태
평소에도 준비된 수가 그대로 남아 있습니다.
대기열 없이 바로 빌려줄 idle 커넥션이 확보됩니다.
요청 급증
새 생성 없이 바로 처리합니다.
응답 지연이 예측 가능하고 급증 순간의 흔들림이 작습니다.
운영 의미
안정적이지만, 놀고 있는 시간에도 DB 세션과 메모리를 계속 점유합니다.
탄력 운영
3 < 10
평소에는 작게 유지
유휴 상태에서는 3개만 남기고 나머지는 줄입니다.
유휴 상태
유휴 자원을 줄여 두는 구성입니다.
한가할 때는 DB 연결 수를 낮춰 세션 점유를 아낄 수 있습니다.
요청 급증
필요할 때만 최대 10개까지 늘어납니다.
늘어나는 구간만큼 새 커넥션 생성 비용과 순간 지연이 생깁니다.
운영 의미
자원은 절약되지만, 급증 트래픽에서는 생성 시간만큼 응답이 흔들릴 수 있습니다.
정리: 특별한 이유가 없다면 두 값을 같게 두어 고정 크기 풀처럼 운영하는 편이 안정적이고, minimumIdle 을 낮추는 선택은 자원 절약 대신 순간 지연을 감수하는 트레이드오프입니다.