[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - DB Connection Pool

2024. 4. 4. 09:55ยท ๐Ÿ“–์Šคํ„ฐ๋””/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋ชฉ์ฐจ
  1. ๐Ÿค”DB Connection Pool์ด๋ž€?
  2. โ—ป๏ธConnection ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •
  3. ๐Ÿค”DB Connection Pool์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?
  4. โ—DBCP ์žฅ์ 
  5. โ—DB Connection Pool ์ฃผ์˜ ์‚ฌํ•ญ
  6. ๐Ÿ’ญ๊ธ€ ์ •๋ฆฌ

๐Ÿค”DB Connection Pool์ด๋ž€?

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

 

โ—ป๏ธConnection ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •

  1. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ DB ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ์ปค๋„ฅ์…˜์„ ์กฐํšŒํ•œ๋‹ค.
  2. DB ๋“œ๋ผ์ด๋ฒ„๋Š” DB์™€ TCP/IP ์ปค๋„ฅ์…˜์„ ์—ฐ๊ฒฐํ•œ๋‹ค. (3 way handshake์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ๋™์ž‘ ๋ฐœ์ƒ )
  3. DB ๋“œ๋ผ์ด๋ฒ„๋Š” TCP/IP ์ปค๋„ฅ์…˜์ด ์—ฐ๊ฒฐ๋˜๋ฉด ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ, ๊ธฐํƒ€ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ DB์— ์ „๋‹ฌํ•œ๋‹ค.
  4. DB๋Š” ์•„์ด๋””, ํŒจ์Šค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ธ์ฆ์„ ๊ฑฐ์นœ ํ›„ ๋‚ด๋ถ€์— DB๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  5. DB๋Š” ์ปค๋„ฅ์…˜ ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.
  6. DB ๋“œ๋ผ์ด๋ฒ„๋Š” ์ปค๋„ฅ์…˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 

 

๐Ÿค”DB Connection Pool์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?

  • ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ CRUD์™€ ๊ฐ™์€ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ฃผ๋กœ DB๋ฅผ ์ด์šฉ
  • DBMS๋‚˜ ๋‹ค๋ฅธ ์™ธ๋ถ€์™€์˜ ์ ‘์†์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ํ•„์š”ํ•œ ์‹œ์Šคํ…œ์—๋Š” ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•ด์•ผํ•˜๋Š” ๊ธฐ๋Šฅ์ž„
  • DB์™€ Connection์„ ๋งบ๋Š” ์ž‘์—…์€ ๋งค์šฐ ๋А๋ฆฌ๋ฉฐ ์ž์›์„ ๋งŽ์ด ์†Œ๋ชจํ•˜๋Š” ์ž‘์—…
  • ์ฆ‰, ์„œ๋ฒ„๊ฐ€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋˜์–ด Connection์„ ๋งบ๋Š” ์ž‘์—…์€ ๋น„์šฉ์ด ํฌ๋‹ค
  • ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๋”ฉ ์‹œ์ ์— Connection ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•˜๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ๋ฏธ๋ฆฌ ์ค€๋น„๋œ Connection ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒํ•˜๋Š” ์ปค๋„ฅ์…˜ ํ’€ (Connection Pool)์ด ๋“ฑ์žฅํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ตœ์•…์˜ ์ƒํ™ฉ์œผ๋กœ ๋งŽ์€ Connetion์—ฐ๊ฒฐ ์š”์ฒญ์œผ๋กœ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋  ์ˆ˜ ์žˆ์–ด DBCP(DB Connection Pool)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

โ—DBCP ์žฅ์ 

  1. ๋ฏธ๋ฆฌ Connection์„ ๋งŒ๋“ค์–ด ๋†“์•„์„œ ์‹œ๊ฐ„ ๋น„์šฉ์ด ์ ๊ฒŒ ๋ฐœ์ƒ
  2. Connection์„ ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์„ฑ๋˜๋Š” Connection์ด ์ ์Œ

 

โ—DB Connection Pool ์ฃผ์˜ ์‚ฌํ•ญ

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

    • ์ปค๋„ฅ์…˜ ํ’€์ด ์ปค์ง€๋ฉด ์„ฑ๋Šฅ์€ ๋ฌด์กฐ๊ฑด ์ข‹์•„์งˆ๊นŒ?๋ผ๋Š” ์ƒ๊ฐ์„ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค. Connection์˜ ์ฃผ์ฒด๋Š” Thread์ด๋ฏ€๋กœ Thread์™€ ํ•จ๊ป˜ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.
        1. Thread Pool ํฌ๊ธฐ < Connection Pool ํฌ๊ธฐ
        2. Thread Pool์—์„œ ํŠธ๋žœ์žญ์…˜์„ ์ฒ˜๋ฆฌํ•˜๋Š” Thread๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” Connection ์™ธ์— ๋‚จ๋Š” Connection์€ ์‹ค์งˆ์ ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„๋งŒ ์ฐจ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค.

      • Thread Pool ํฌ๊ธฐ์™€ Connection Pool ๋ชจ๋‘ ํฌ๊ธฐ ์ฆ๊ฐ€
        1. Thread ์ฆ๊ฐ€๋กœ ์ธํ•ด ๋” ๋งŽ์€ Context Swiching์ด ๋ฐœ์ƒํ•œ๋‹ค.
        2. Disk ๊ฒฝํ•ฉ ์ธก๋ฉด์—์„œ ์„ฑ๋Šฅ ํ•œ๊ณ„๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
        3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ•˜๋“œ ๋””์Šคํฌ ํ•˜๋‚˜ ๋‹น ํ•˜๋‚˜์˜ I/O๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ๋ธ”๋กœํ‚น์ด ๋ฐœ์ƒํ•œ๋‹ค.
        4. ์ฆ‰, ํŠน์ • ์‹œ์ ๋ถ€ํ„ฐ๋Š” ์„ฑ๋Šฅ์ ์ธ ์ฆ๊ฐ€๊ฐ€ Disk ๋ณ‘๋ชฉ์œผ๋กœ ์ธํ•ด ๋ฏธ๋น„ํ•ด์ง„๋‹ค.

๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž…์žฅ์—์„œ ์ปค๋„ฅ์…˜์€ ์Šค๋ ˆ๋“œ์™€ ์–ด๋А ์ •๋„ ์ผ์น˜ํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

์ปค๋„ฅ์…˜์ด ๋งŽ๋‹ค๋Š” ์˜๋ฏธ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๊ฐ€ ์Šค๋ ˆ๋“œ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๊ณ 

์ด์— ๋”ฐ๋ผ Context Switching์œผ๋กœ ์ธํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋” ๋งŽ์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— Connection Pool์„ ์•„๋ฌด๋ฆฌ ๋Š˜๋ฆฌ๋”๋ผ๋„ ์„ฑ๋Šฅ์ ์ธ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

 

๐Ÿ’ญ๊ธ€ ์ •๋ฆฌ

- Connection์€ ์‹œ๊ฐ„ ๋น„์šฉ์ด ๋งŽ์ด ๋ฐœ์ƒํ•˜์—ฌ Connect Pool์˜ ๊ฐœ๋…์ด ์ƒ๊ฒผ๋‹ค.

- DBCP๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด ๋†“์€ Connection ๊ฐ์ฒด๋“ค์ด๋‹ค. (Pool ์— ์ €์žฅ)

- DBCP๋Š” Connectionํ•˜๊ณ  ๋‹ฌ๋ฆฌ .closeํ•˜๋ฉด ์ข…๋ฃŒ๋˜๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฐ˜๋‚ฉ(๋ฐ˜ํ™˜)๋˜๋Š” ๊ฒƒ์ด๋‹ค.

- ๋ฉ”๋ชจ๋ฆฌ์ฐจ์ง€ ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ๋Œ€๊ธฐ์ƒํƒœ๋กœ ์ธํ•ด ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด์„œ ์˜ต์…˜์„ค์ •์„ ํ•ด์•ผํ•œ๋‹ค.

 

 

๋”๋ณด๊ธฐ

์ถœ์ฒ˜ : https://devjjsjjj.tistory.com/entry/Connection-Pool%EC%9D%B4%EB%9E%80

https://www.holaxprogramming.com/2013/01/10/devops-how-to-manage-dbcp/

https://zzang9ha.tistory.com/376

 

'๐Ÿ“–์Šคํ„ฐ๋”” > ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - Join  (0) 2024.04.03
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - B-Tree & B+Tree  (0) 2024.04.01
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - ์ธ๋ฑ์Šค  (0) 2024.03.31
  1. ๐Ÿค”DB Connection Pool์ด๋ž€?
  2. โ—ป๏ธConnection ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •
  3. ๐Ÿค”DB Connection Pool์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ?
  4. โ—DBCP ์žฅ์ 
  5. โ—DB Connection Pool ์ฃผ์˜ ์‚ฌํ•ญ
  6. ๐Ÿ’ญ๊ธ€ ์ •๋ฆฌ
'๐Ÿ“–์Šคํ„ฐ๋””/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - Join
  • [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - B-Tree & B+Tree
  • [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - ์ธ๋ฑ์Šค
  • [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - ํŠธ๋ฆฌ๊ฑฐ
mmmhmm
mmmhmm
๋„ค๋ชจํ•˜๋‚˜ ๋™๊ทธ๋ผ๋ฏธ ๋‘๊ฐœ
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
mmmhmm
hmmumm
mmmhmm
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (49)
    • ๐Ÿ–ฅ๏ธํ”„๋กœ์ ํŠธ (3)
    • ๐Ÿ’กํ”„๋กœ์ ํŠธ ๋ฌธ์ œํ•ด๊ฒฐ (5)
    • ๐Ÿ”ฆ๊ณต๋ถ€ ๋ฌธ์ œํ•ด๊ฒฐ๊ณผ์ • (2)
    • ๐Ÿ“–์Šคํ„ฐ๋”” (38)
      • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (10)
      • ์Šคํ”„๋ง (6)
      • ๋„คํŠธ์›Œํฌ (10)
      • ์šด์˜์ฒด์ œ (12)
hELLO ยท Designed By ์ •์ƒ์šฐ.v4.2.2
mmmhmm
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] - DB Connection Pool
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.