From 1c3b8211ee2b0f1ea3eea11aebd2800e361105ec Mon Sep 17 00:00:00 2001 From: Sumin Hwang <163857590+tnals0924@users.noreply.github.com> Date: Fri, 24 Jul 2026 23:02:13 +0900 Subject: [PATCH] =?UTF-8?q?chore:=20=EB=8F=99=EC=8B=9C=20=EC=A0=91?= =?UTF-8?q?=EC=86=8D=20100=EB=AA=85=20=EA=B8=B0=EC=A4=80=20=EC=BB=A4?= =?UTF-8?q?=EB=84=A5=EC=85=98=20=ED=92=80/=EC=8A=A4=EB=A0=88=EB=93=9C=20?= =?UTF-8?q?=ED=92=80=20=EC=84=A4=EC=A0=95=20=EC=A0=81=EC=9A=A9=20(#140)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - HikariCP 풀 크기 15로 고정, 커넥션 획득 타임아웃 3초로 단축 - max-lifetime 29분 설정으로 MySQL wait_timeout 만료 커넥션 획득 방지 - Tomcat 스레드 최대 100, 대기 큐 100으로 조정 - 배포 시 처리 중 요청 유실 방지를 위한 graceful shutdown 적용 Co-Authored-By: Claude Opus 4.8 --- src/main/resources/application-dev.yml | 20 ++++++++++++++++++++ src/main/resources/application-prod.yml | 22 ++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index b8698da..9d8408b 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -7,6 +7,15 @@ spring: driver-class-name: com.mysql.cj.jdbc.Driver username: ${DB_USERNAME} password: ${DB_PASSWORD} + hikari: + pool-name: BillilgeHikariCP + maximum-pool-size: 15 + minimum-idle: 15 + connection-timeout: 3000 + validation-timeout: 2000 + idle-timeout: 600000 + max-lifetime: 1740000 + keepalive-time: 300000 security: oauth2: @@ -37,6 +46,17 @@ spring: resolve-lazily: true +server: + tomcat: + threads: + max: 100 + min-spare: 20 + accept-count: 100 + max-connections: 2000 + connection-timeout: 5000ms + shutdown: graceful + + jwt: secret_key: ${JWT_SECRET_KEY} issuer: ${JWT_ISSUER} diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 30e482e..8774db8 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -7,6 +7,17 @@ spring: driver-class-name: com.mysql.cj.jdbc.Driver username: ${DB_USERNAME} password: ${DB_PASSWORD} + hikari: + pool-name: BillilgeHikariCP + # 동접 100 기준: 요청당 DB 점유 시간이 짧아(수십 ms) 커넥션은 적게 유지하는 편이 큐잉/컨텍스트 스위칭에 유리 + # 웹 요청 + @Async 알림 처리(기본 태스크 풀 8) 여유분까지 포함해 15 + maximum-pool-size: 15 + minimum-idle: 15 # 풀 크기 고정 (증감 시 커넥션 생성 지연 방지) + connection-timeout: 3000 # 풀 고갈 시 30초 대기 대신 3초 내 fail-fast + validation-timeout: 2000 + idle-timeout: 600000 + max-lifetime: 1740000 # 29분. MySQL wait_timeout보다 짧게 유지 + keepalive-time: 300000 security: oauth2: @@ -36,6 +47,17 @@ spring: resolve-lazily: true +server: + tomcat: + threads: + max: 100 # 동접 100을 동시에 수용. 초과분은 accept-count 큐에서 대기 + min-spare: 20 # 트래픽 유입 시 스레드 생성 지연 완화 + accept-count: 100 + max-connections: 2000 + connection-timeout: 5000ms + shutdown: graceful + + jwt: secret_key: ${JWT_SECRET_KEY} issuer: ${JWT_ISSUER}