๐คDB Connection Pool์ด๋?
- ๋ฏธ๋ฆฌ ์ผ์ ๊ฐฏ์์ Connection์ ๋ง๋ค์ด Pool์ ์ ์ฅ
- ์ฌ์ฉ์ ์์ฒญ์ด ๋ฐ์ํ๋ฉด Connection์ ์ ๊ณต, ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋๋ฉด Pool์ ๋ฐํํ์ฌ ์ ์ฅ
- ์์ฑ๋ Connection์ด ๋ชจ๋ ์ฌ์ฉ์ค์ผ๋๋ ํด๋ผ์ด์ธํธ๋ ๋๊ธฐ ์ํ๋ก ์ ํ
โป๏ธConnection ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ณผ์
- ์ ํ๋ฆฌ์ผ์ด์ ์์ DB ๋๋ผ์ด๋ฒ๋ฅผ ํตํด ์ปค๋ฅ์ ์ ์กฐํํ๋ค.
- DB ๋๋ผ์ด๋ฒ๋ DB์ TCP/IP ์ปค๋ฅ์ ์ ์ฐ๊ฒฐํ๋ค. (3 way handshake์ ๊ฐ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ ๋์ ๋ฐ์ )
- DB ๋๋ผ์ด๋ฒ๋ TCP/IP ์ปค๋ฅ์ ์ด ์ฐ๊ฒฐ๋๋ฉด ์์ด๋์ ํจ์ค์๋, ๊ธฐํ ๋ถ๊ฐ ์ ๋ณด๋ฅผ DB์ ์ ๋ฌํ๋ค.
- DB๋ ์์ด๋, ํจ์ค์๋๋ฅผ ํตํด ๋ด๋ถ ์ธ์ฆ์ ๊ฑฐ์น ํ ๋ด๋ถ์ DB๋ฅผ ์์ฑํ๋ค.
- DB๋ ์ปค๋ฅ์ ์์ฑ์ด ์๋ฃ๋์๋ค๋ ์๋ต์ ๋ณด๋ธ๋ค.
- DB ๋๋ผ์ด๋ฒ๋ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ํด๋ผ์ด์ธํธ์ ๋ฐํํ๋ค.
๐คDB Connection Pool์ ์ฌ์ฉํ๋ ์ด์ ?
- ์น ์ดํ๋ฆฌ์ผ์ด์ ์ CRUD์ ๊ฐ์ ์์ ์ ์ฒ๋ฆฌํ ๋ ์ฃผ๋ก DB๋ฅผ ์ด์ฉ
- DBMS๋ ๋ค๋ฅธ ์ธ๋ถ์์ ์ ์์ด ๋น๋ฒํ๊ฒ ํ์ํ ์์คํ ์๋ ๋ฐ๋์ ์กด์ฌํด์ผํ๋ ๊ธฐ๋ฅ์
- DB์ Connection์ ๋งบ๋ ์์ ์ ๋งค์ฐ ๋๋ฆฌ๋ฉฐ ์์์ ๋ง์ด ์๋ชจํ๋ ์์
- ์ฆ, ์๋ฒ๊ฐ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์ ์ฐ๊ฒฐ๋์ด Connection์ ๋งบ๋ ์์ ์ ๋น์ฉ์ด ํฌ๋ค
- ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ๋ก๋ฉ ์์ ์ Connection ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ์ด ํ์ํ ๊ฒฝ์ฐ ๋ฏธ๋ฆฌ ์ค๋น๋ Connection ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์ํ๋ ์ปค๋ฅ์ ํ (Connection Pool)์ด ๋ฑ์ฅํ๊ฒ ๋๋ค.
์ต์ ์ ์ํฉ์ผ๋ก ๋ง์ Connetion์ฐ๊ฒฐ ์์ฒญ์ผ๋ก ์๋ฒ๊ฐ ๋ค์ด๋ ์ ์์ด DBCP(DB Connection Pool)๋ฅผ ์ฌ์ฉํ๋ค.
โDBCP ์ฅ์
- ๋ฏธ๋ฆฌ Connection์ ๋ง๋ค์ด ๋์์ ์๊ฐ ๋น์ฉ์ด ์ ๊ฒ ๋ฐ์
- Connection์ ์ฌ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์์ฑ๋๋ Connection์ด ์ ์
โDB Connection Pool ์ฃผ์ ์ฌํญ
- ๋์์ ์์๊ฐ ๋ง์ ๊ฒฝ์ฐ
- ๋๋ฌด ๋ง์ DB ์ ๊ทผ์ด ๋ฐ์ํ ๊ฒฝ์ฐ์๋ ์ปค๋ฅ์
์ ํ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ธ์ ์๋ ์ปค๋ฅ์
์ด ๋ฐ๋ฉ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค. ๋๋ฌด ๋ง์ ์ปค๋ฅ์
์ ์์ฑํ ์์๋ ์ปค๋ฅ์
๋ํ ๊ฐ์ฒด์ด๋ฏ๋ก ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋๊ณ , ํ๋ก๊ทธ๋จ์ด ์ฑ๋ฅ์ ๋จ์ด๋จ๋ฆฌ๋ ์์ธ์ด ๋๋ค.
์ฆ, WAS์์ ์ปค๋ฅ์ ํ์ ํฌ๊ฒ ์ค์ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์๋ชจ๊ฐ ํฐ ๋์ ๋ง์ ์ฌ์ฉ์๊ฐ ๋๊ธฐ ์๊ฐ์ด ์ค์ด๋ค๊ณ , ๋ฐ๋๋ก ์ปค๋ฅ์ ํ์ ์๊ฒ ์ค์ ํ๋ฉด ๊ทธ๋งํผ ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง๋ค. ๋ฐ๋ผ์ ์ฌ์ฉ๋์ ๋ฐ๋ผ ์ ์ ๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํด ๋์ด์ผ ํ๋ค.
- ์ปค๋ฅ์
ํ์ด ์ปค์ง๋ฉด ์ฑ๋ฅ์ ๋ฌด์กฐ๊ฑด ์ข์์ง๊น?๋ผ๋ ์๊ฐ์ ํ ์ ์๋๋ฐ ๊ทธ๋ ์ง ์๋ค. Connection์ ์ฃผ์ฒด๋ Thread์ด๋ฏ๋ก Thread์ ํจ๊ป ๊ณ ๋ คํด์ผ ํ๋ค.
- Thread Pool ํฌ๊ธฐ < Connection Pool ํฌ๊ธฐ
- Thread Pool์์ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํ๋ Thread๊ฐ ์ฌ์ฉํ๋ Connection ์ธ์ ๋จ๋ Connection์ ์ค์ง์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ๋ง ์ฐจ์งํ๊ฒ ๋๋ค.
- Thread Pool ํฌ๊ธฐ์ Connection Pool ๋ชจ๋ ํฌ๊ธฐ ์ฆ๊ฐ
- Thread ์ฆ๊ฐ๋ก ์ธํด ๋ ๋ง์ Context Swiching์ด ๋ฐ์ํ๋ค.
- Disk ๊ฒฝํฉ ์ธก๋ฉด์์ ์ฑ๋ฅ ํ๊ณ๊ฐ ๋ฐ์ํ๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๋ ๋์คํฌ ํ๋ ๋น ํ๋์ I/O๋ฅผ ์ฒ๋ฆฌํ๋ฏ๋ก ๋ธ๋กํน์ด ๋ฐ์ํ๋ค.
- ์ฆ, ํน์ ์์ ๋ถํฐ๋ ์ฑ๋ฅ์ ์ธ ์ฆ๊ฐ๊ฐ Disk ๋ณ๋ชฉ์ผ๋ก ์ธํด ๋ฏธ๋นํด์ง๋ค.
- ๋๋ฌด ๋ง์ DB ์ ๊ทผ์ด ๋ฐ์ํ ๊ฒฝ์ฐ์๋ ์ปค๋ฅ์
์ ํ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ธ์ ์๋ ์ปค๋ฅ์
์ด ๋ฐ๋ฉ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ค. ๋๋ฌด ๋ง์ ์ปค๋ฅ์
์ ์์ฑํ ์์๋ ์ปค๋ฅ์
๋ํ ๊ฐ์ฒด์ด๋ฏ๋ก ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋๊ณ , ํ๋ก๊ทธ๋จ์ด ์ฑ๋ฅ์ ๋จ์ด๋จ๋ฆฌ๋ ์์ธ์ด ๋๋ค.
๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์ฅ์์ ์ปค๋ฅ์ ์ ์ค๋ ๋์ ์ด๋ ์ ๋ ์ผ์นํ๋ค๊ณ ๋ณผ ์ ์๋ค.
์ปค๋ฅ์ ์ด ๋ง๋ค๋ ์๋ฏธ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๊ฐ ์ค๋ ๋๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํ๊ณ
์ด์ ๋ฐ๋ผ Context Switching์ผ๋ก ์ธํ ์ค๋ฒํค๋๊ฐ ๋ ๋ง์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ Connection Pool์ ์๋ฌด๋ฆฌ ๋๋ฆฌ๋๋ผ๋ ์ฑ๋ฅ์ ์ธ ํ๊ณ๊ฐ ์กด์ฌํ๋ค.
๐ญ๊ธ ์ ๋ฆฌ
- Connection์ ์๊ฐ ๋น์ฉ์ด ๋ง์ด ๋ฐ์ํ์ฌ Connect Pool์ ๊ฐ๋ ์ด ์๊ฒผ๋ค.
- DBCP๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ Connection ๊ฐ์ฒด๋ค์ด๋ค. (Pool ์ ์ ์ฅ)
- DBCP๋ Connectionํ๊ณ ๋ฌ๋ฆฌ .closeํ๋ฉด ์ข ๋ฃ๋๋๊ฒ์ด ์๋๋ผ ๋ฐ๋ฉ(๋ฐํ)๋๋ ๊ฒ์ด๋ค.
- ๋ฉ๋ชจ๋ฆฌ์ฐจ์ง ๋๋ ํด๋ผ์ด์ธํธ ๋๊ธฐ์ํ๋ก ์ธํด ์ฑ๋ฅ์ด ๋จ์ด์ง๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด์ ์ต์ ์ค์ ์ ํด์ผํ๋ค.
'๐์คํฐ๋ > ๋ฐ์ดํฐ๋ฒ ์ด์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐ์ดํฐ๋ฒ ์ด์ค] - Join (0) | 2024.04.03 |
---|---|
[๋ฐ์ดํฐ๋ฒ ์ด์ค] - B-Tree & B+Tree (0) | 2024.04.01 |
[๋ฐ์ดํฐ๋ฒ ์ด์ค] - ์ธ๋ฑ์ค (0) | 2024.03.31 |