๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Database·SQL

DB Connection Pool - ์šฉ์–ด ์ •๋ฆฌ์™€ Single Connection์˜ ๋ฌธ์ œ์ 

by Leica 2020. 2. 16.
๋ฐ˜์‘ํ˜•

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 ์ปค๋„ฅ์…˜ํ’€์€ ๋Œ๋ ค๋ฐ›์€ ์ปค๋„ฅ์…˜ ๊ฐ์ฒด๋ฅผ ๋ณด๊ด€ํ•œ๋‹ค.
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€