DB Connection Pool - ์ฉ์ด ์ ๋ฆฌ์ Single Connection์ ๋ฌธ์ ์
์ฉ์ด ์ ๋ฆฌ
DB Connection Pool
- DB ์ปค๋ฅ์ ์ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด
- DB ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๊ฐ ์์ฑํด์ Pool์ ๋ด์ ๋๊ณ ํ์ํ ๋ ๊บผ๋ด ์ฐ๋ ๋ฐฉ์
- ์ฌ์ฉ์ด ๋๋ ๊ฐ์ฒด๋ ๋ค๋ฅธ ์์ ์์ ๋ค์ ์ธ ์ ์๋๋ก ํ์ ๋ฐํ
Pooling
์์ฃผ ์ฐ๋ ๊ฐ์ฒด๋ฅผ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๊ณ , ํ์ํ ๋๋ง๋ค ๋น๋ฆฌ๊ณ , ์ฌ์ฉํ ๋ค์ ๋ฐ๋ฉํ๋ ๋ฐฉ์
Object Pool
์ฌ๋ฌ๊ฐ์ ๊ฐ์ฒด๋ฅผ ๋ชจ์๋ ๊ฒ
Single Connection์ ๋ฌธ์ ์
ํ๋์ Connection์์ ์ฌ๋ฌ๊ฐ์ Statement๋ฅผ ์์ฑํด์ ์ฌ์ฉํ๋ค๊ฐ ํ ๊ณณ์์ ์์ธ๊ฐ ๋ฐ์ํ๋ฉด rollback์ ์ํํด์ผ ํ๋ค. Rollback์ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ํตํด์๋ง ์ํํ ์ ์๋ค.
๋ฌธ์ ๋ ํ๋์ Statement๋ฅผ ์ฌ์ฉํ๋ค๊ฐ rollbackํ ๊ฒฝ์ฐ ๊ทธ ์ปค๋ฅ์ ์ ํตํด ์์ฑ๋ ๋ค๋ฅธ ๋ชจ๋ statement์ ์์ ๋ rollback๋๋ค๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ์น ๋ธ๋ผ์ฐ์ ์ ์์ฒญ์ ์ฒ๋ฆฌํ ๋ ๊ฐ ์์ฒญ์ ๋ํด ๊ฐ๋ณ DB ์ปค๋ฅ์ ์ ์ฌ์ฉํด์ผ ํ๋๋ฐ ์ด๋ฅผ ์ํด SQL ์์ ์ด ํ์ํ ๋๋ง๋ค DB ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ์คํ ์๋๊ฐ ๋๋ ค์ง๊ณ garbage๊ฐ ๋ฐ์ํ๋ค.
์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํด DB ์๋ฒ์์๋ ์ฌ์ฉ์ ์ธ์ฆ, ๊ถํ ๊ฒ์ฌ, ์์ฒญ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ค๋น ์์ ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
DB Connection Pool
DB ์ปค๋ฅ์ ํ์ ์ด์ฉํ๋ฉด ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. DB ์ปค๋ฅ์ ํ์ ์ด์ฉํ๋ฉด ๊ฐ ์์ฒญ์ ๋ํด ๋ณ๋์ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์์ ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค. ์ฌ์ฉํ DB ์ปค๋ฅ์ ๊ฐ์ฒด๋ ๋ฒ๋ฆฌ์ง ์๊ณ ํ์ ๋ณด๊ดํด ๋์๋ค๊ฐ ์ฌ์ฌ์ฉํ๋ฏ๋ก garbage๊ฐ ๋ฐ์ํ์ง ์๊ณ ์๋๊ฐ ๋น ๋ฅด๋ค.
DAO์ DB Connection Pool
DAO๊ฐ DB ์ปค๋ฅ์ ํ๋ก๋ถํฐ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์ป์ด ์์ ์ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
โ ํด๋ผ์ด์ธํธ๋ฅผ ํตํด DB ์์ ์ด ํธ์ถ๋๋ค.
โก DAO๋ DB ์ปค๋ฅ์ ํ์๊ฒ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฒญํ๋ค.
โข DB ์ปค๋ฅ์ ํ์ ํ์ฌ ๋ณด์ ํ๊ณ ์๋ ์ปค๋ฅ์ ๊ฐ์ฒด๊ฐ ์์ผ๋ฉด ์๋ก ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ๋ฐํํ๊ฑฐ๋ ๋ณด์ ํ๊ณ ์๋ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
โฃ DAO๋ ๋ฐํ๋ฐ์ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด์ SQL๋ฌธ์ ์คํํ๋ค.
โค ์์ ์ด ๋๋๊ณ DAO๋ DB ์ปค๋ฅ์ ํ์ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค.
โฅ DB ์ปค๋ฅ์ ํ์ ๋๋ ค๋ฐ์ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ๋ณด๊ดํ๋ค.
๋๊ธ