Skip to content

[recap] ์ปค๋„ฅ์…˜ ํ’€(Conncetion Pool)์™€ HikariCPย #3

@JungYoonShin

Description

@JungYoonShin

๋ฌด์—‡์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‚˜์š”?

๐Ÿ‘‰ ์ปค๋„ฅ์…˜ ํ’€์ด๋ž€?

๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ์‹œํ‚จ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ์ˆ , ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ฐ™์€ ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ์ธ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ๋ฏธ๋ฆฌ ์ผ์ •์ˆ˜์˜ Connection ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด Pool์— ๋‹ด์•„ ๋‘”๋‹ค. ์ถ”ํ›„ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด Pool์—์„œ ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” Connection ๊ฐ์ฒด๋ฅผ ๋„˜๊ฒจ์ฃผ๊ณ  ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด, ์‹คํ–‰๋œ ์ƒํƒœ๋กœ Connection ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ Pool์— ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋ณด๊ด€ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

image

๐Ÿ‘‰๊ทธ๋ ‡๋‹ค๋ฉด ์ปค๋„ฅ์…˜ ํ’€์˜ ์žฅ์ ์€ ๋ฌด์—‡์ผ๊นŒ?

  1. ์„ฑ๋Šฅ ๊ฐœ์„ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์€ ๋น„์šฉ์ด ํฐ ์ž‘์—…์ด๋‹ค. ๋งค๋ฒˆ ์š”์ฒญ์ด ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์€ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ํฌ๋‹ค. ์ปค๋„ฅ์…˜ ํ’€์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฏธ๋ฆฌ ์ผ์ • ์ˆ˜์˜ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•ด๋‘๊ณ , ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ’€์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•˜์—ฌ ์—ฐ๊ฒฐ ์ƒ์„ฑ ๋ฐ ํ•ด์ œ์— ๋”ฐ๋ฅธ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‘๋‹ต ์‹œ๊ฐ„์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๋ฅผ ๊ฐ์†Œ์‹œํ‚จ๋‹ค.
  2. ํ™•์žฅ์„ฑ: ์ปค๋„ฅ์…˜ ํ’€์€ ์š”์ฒญ์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋™์‹œ์— ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ‘์†ํ•ด๋„ ํ’€์— ๋ฏธ๋ฆฌ ์ƒ์„ฑ๋œ ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์˜ ์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ์ปค๋„ฅ์…˜ ํ’€์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜์—ฌ ์ตœ์ ์˜ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๋“ฑ๋“ฑ๋“ฑ..

SpringBoot 2.0 ์ด์ „์—๋Š” tomcat-jdbc๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค, ํ˜„์žฌ 2.0์ดํ›„ ๋ถ€ํ„ฐ๋Š” HikariCP๋ฅผ ๊ธฐ๋ณธ์˜ต์…˜์œผ๋กœ ์ฑ„ํƒ ํ•˜๊ณ ์žˆ๋‹ค.

๐Ÿ‘‰ Hikari CP ์‚ฌ์šฉ๋ฒ•

build.gradle์— "org.springframework.boot:spring-boot-starter-jdbc"๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋œ๋‹ค๊ณ  ํ•œ๋‹ค! ๊ทธ๋ฆฌ๊ณ  application.yml ์ˆ˜์ •!

์ดํ›„ application.yml์— ์„ค์ •๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋ฉด ๋˜๋Š”๋ฐ

spring:
 datasource:
   url: jdbc:mysql://localhost:3306/world?serverTimeZone=UTC&CharacterEncoding=UTF-8
   username: root
   password: your_password

   hikari:
     maximum-pool-size: 10
     connection-timeout: 5000
     connection-init-sql: SELECT 1
     validation-timeout: 2000
     minimum-idle: 10
     idle-timeout: 600000
     max-lifetime: 1800000

server:
 port: 8000
แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2024-07-03 แ„‹แ…ฉแ„’แ…ฎ 12 21 07

์–ด๋ ค์šด ๋‚ด์šฉ์ด ์žˆ์—ˆ๋‹ค๋ฉด ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ•˜์˜€๋‚˜์š”?

  • ๊ตฌ๊ธ€๋ง!

์–ด๋–ค ์ž๋ฃŒ๋ฅผ ์ฐธ๊ณ ํ•˜์˜€๋‚˜์š”?

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions