Connection Pool
Last updated
Last updated
๋ค์์ JDBC ๋๋ผ์ด๋ฒ๋ฅผ ์ด์ฉํด DB์ ์ ์ํ๋ ์์ ์ด๋ค.
JDBC๋ฅผ ์ด์ฉํด ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ป๊ธฐ๊น์ง ๊ณผ์ ์์ ๊ฐ์ฅ ๋น์ฉ์ด ๋ง์ด ๋ฐ์ํ๋ ๋ถ๋ถ์ ์น ์๋ฒ์์ ๋ฌผ๋ฆฌ์ ์ผ๋ก DB์๋ฒ์ ์ต์ด๋ก ์ฐ๊ฒฐ๋์ด Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ถ๋ถ์ด๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ์ HTTP ์์ฒญ์ ๋ฐ๋ผ Thread๋ฅผ ์์ฑํ๊ฒ๋๊ณ , ๋๋ถ๋ถ์ ๋น์ฆ๋์ค ๋ก์ง์ DB ์๋ฒ๋ก ๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ป๊ฒ๋๋ค. ๋ง์ฝ ์์ ๊ฐ์ด ๋ชจ๋ ์์ฒญ์๋ํด DB ์ ์์ ์ํ Driver๋ฅผ ๋ก๋ํ๊ณ , Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฐ๊ฒฐํ๋ค๋ฉด ๋ฌผ๋ฆฌ์ ์ผ๋ก DB ์๋ฒ์ ์ง์์ ์ผ๋ก ์ ๊ทผํด์ผ๋ ๊ฒ์ด๋ค.
์ด๋ฌํ ๊ฒฝ์ฐ์ DBCP(Database Connection Pool)์ ์ด์ฉํด DB Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ถ๋ถ์ ๋ํ ๋น์ฉ๊ณผ ์๊ฐ์ ์ค์ด๊ณ , ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๋ํ ๋ถ๋ด์ ์ค์ผ ์ ์๋ค.
Connection Pool์ ์ด์ฉํ๋ฉด ๋ค์์ HTTP ์์ฒญ์ ๋ํ Thread๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ฒ๋๋ค.
WAS ๊ฐ ์คํ๋ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ Connection Pool ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด Connection Pool ๊ตฌํ์ฒด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.[[Apache Common DBCP ์คํ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ][http://commons.apache.org/]]
Connection Pool์ด๋ DB์ ๋ฏธ๋ฆฌ ์ฐ๊ฒฐ(connection)์ ํด๋์ ๊ฐ์ฒด๋ค์ ์ ๋ฉ์ด(Pool)์ ์ ์ฅํด๋์๋ค๊ฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ด ์ค๋ฉด connection์ ๋น๋ ค์ฃผ๊ณ , ์์ ์ด ๋๋๋ฉด ๋ค์ connection์ ๋๋ ค๋ฐ์ pool์ ์ ์ฅํ๋ ๋ฐฉ์์ ๋งํ๋ค.
WAS๊ฐ ์คํ๋๋ฉด์ ๋ฏธ๋ฆฌ ์ผ์ ๋์ DB Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ Pool์ ์ ์ฅํด๋๋ค.
HTTP ์์ฒญ์ ๋ฐ๋ผ ํ์ํ ๋ Pool์์ Connection ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ๋ค ์ฐ๊ณ ๋ฐํํ๋ค.
์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก HTTP ์์ฒญ ๋ง๋ค DB Driver๋ฅผ ๋ก๋ํ๊ณ ๋ฌผ๋ฆฌ์ ์ธ ์ฐ๊ฒฐ์ ์ํ Connection ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋น์ฉ์ด ์ค์ด๋ค๊ฒ ๋๋ค.
์๋ฒ๋ ๋์์ ์ฌ์ฉํ ์ ์๋ ์ฌ๋์ ์๊ฐ ์๋๋ฐ, ์ผ๋ฐ์ ์ธ Connection Pool ์ด์ฉ์ ๋์ ์ ์์ ์๋ฅผ ๋ฒ์ด๋๊ฒ ๋ ๊ฒฝ์ฐ ์๋ฌ(์์ธ)๊ฐ ๋ฐ์ํ๋ฏ๋ก, ํฌ๊ธฐ๋ ์๋ฒ ์ ์์ ์ ๋ฑ ์๋ฒ ๋ถํ์ ๋ฐ๋ผ์ ์กฐ์ ํด์ผํ๋ค. Connection ๋ํ ๊ฐ์ฒด์ด๋ฏ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ฌด์์ ๋ง์ด ๋๋ฆฌ๋ ๊ฒ์ ์คํ๋ ค ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์๋ค.
Connection Pool์์ ์์ฑ๋์ด ์๋ Connection์ ์๋ ํ์ ์ ์ด๋ค. ๋์ ์ ์์๊ฐ ๋ง์์ ธ ๋จ์์๋ Connection์ด ์๋ ๊ฒฝ์ฐ ํด๋น ํด๋ผ์ด์ธํธ๋ ๋๊ธฐ ์ํ๋ก ์ ํ์ด๋๊ณ , ๋ฐํ๋๋ฉด ๋๊ธฐํ๊ณ ์๋ ์์๋๋ก Connectoin์ด ์ ๊ณต๋๋ค.