์ปค๋ฅ์
ํ(Connection Pool)์ ์ฌ์ฉํ๋ ์ด์

DB ์ปค๋ฅ์
์ ํ๋ํ ๋๋ ๋ค์๊ณผ ๊ฐ์ ๋ณต์กํ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
- ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์ DB ๋๋ผ์ด๋ฒ๋ฅผ ํตํด ์ปค๋ฅ์
์กฐํ
- DB ๋๋ผ์ด๋ฒ๋ DB ์
TCP/IP ์ปค๋ฅ์
์ ์ฐ๊ฒฐ(3-way-handShaking)
- DB ๋๋ผ์ด๋ฒ๋
TCP/IP ์ปค๋ฅ์
์ด ์ฐ๊ฒฐ๋๋ฉด, ID,PW์ ๊ธฐํ ๋ถ๊ฐ์ ๋ณด๋ฅผ DB์ ์ ๋ฌ
- DB๋ ID,PW๋ฅผ ํตํด ๋ด๋ถ ์ธ์ฆ์ ์๋ฃํ๊ณ ,๋ด๋ถ์ DB ์ธ์
์์ฑ
- DB๋ ์ปค๋ฅ์
์์ฑ ์๋ฃ ์๋ต ์ ์ก
- DB ๋๋ผ์ด๋ฒ๋ ์ปค๋ฅ์
๊ฐ์ฒด๋ฅผ ์์ฑํด์ ํด๋ผ์ด์ธํธ์ ๋ฐํ
๐ข ์๋นํ ๋ณต์กํ๊ณ ์๊ฐ๋ ์ค๋๊ฑธ๋ฆฐ๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์์ด๋์ด๊ฐ ๋ฐ๋ก ์ปค๋ฅ์
์ ๋ฏธ๋ฆฌ ์์ฑํด๋๊ณ ์ฌ์ฉํ๋ ์ปค๋ฅ์
ํ(Connection Pool)!! ์ปค๋ฅ์
ํ์ ์ด๋ฆ ๊ทธ๋๋ก ์ปค๋ฅ์
(Connection)์ ๊ด๋ฆฌํ๋ ํ(Pool)์ ์์!!ํ๋ฉด ๋๋ค.
DB ์ปค๋ฅ์
์ ๊ณ์ ์์ฑํ๋ ์ด์ ๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ๋๋ง๋ค ์๋ก์ด ์ฐ๊ฒฐ์ด ํ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ปค๋ฅ์
ํ(Connection Pool) ์ฌ์ฉ
1) ์ปค๋ฅ์
ํ(Connection Pool) ์ด๊ธฐํ

- ์ ํ๋ฆฌ์ผ์ด์
์ ์์ํ๋ ์์ ์, ์ปค๋ฅ์
ํ(Connection Pool)์ ํ์ํ ๋งํผ ์ปค๋ฅ์
์ ๋ฏธ๋ฆฌ ํ๋ณดํด์ ํ์ ๋ณด๊ด(๊ธฐ๋ณธ๊ฐ์ ๋ณดํต 10๊ฐ)

2) ์ปค๋ฅ์
ํ์ ์ฐ๊ฒฐ ์ํ

- ์ปค๋ฅ์
ํ์ ๋ค์ด ์๋ ์ปค๋ฅ์
์ TCP/IP๋ก DB์ ์ปค๋ฅ์
์ด ์ฐ๊ฒฐ๋์ด ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ ์ธ์ ๋ ์ง ์ฆ์ SQL์ DB์ ์ ๋ฌ ๊ฐ๋ฅ
3) ์ปค๋ฅ์
ํ ์ฌ์ฉ1

- ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์์ ์ด์ ๋ DB ๋๋ผ์ด๋ฒ๋ฅผ ํตํด์ ์๋ก์ด ์ปค๋ฅ์
์ ํ๋ํ๋ ๊ฒ์ด ์๋
- ์ด์ ์ปค๋ฅ์
ํ(Connection Pool)์ ํตํด ์ด๋ฏธ ์์ฑ๋์ด์๋ ์ปค๋ฅ์
์ ๊ฐ์ ธ๋ค ์ด๋ค.
- ์ปค๋ฅ์
์ ์์ฒญํ๋ฉด ์ปค๋ฅ์
ํ์ ์์ ์ด ๊ฐ์ง๊ณ ์๋ ์ปค๋ฅ์
์ค์ ํ๋๋ฅผ ๋ฐํ
4) ์ปค๋ฅ์
ํ ์ฌ์ฉ2

- ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์ ์ปค๋ฅ์
ํ์์ ๋ฐ์ ์ปค๋ฅ์
์ ์ฌ์ฉํด์ SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ ์ฒ๋ฆฌ
- ์ปค๋ฅ์
์ ๋ชจ๋ ์ฌ์ฉํ๋ฉด ์ปค๋ฅ์
์ ์ข
๋ฃํ๋ ๊ฒ์ด ์๋, ๋ค์ ์ปค๋ฅ์
ํ์ ๋ฐํ, ์ปค๋ฅ์
์ ์ข
๋ฃํ๋ฉด ์๋๊ณ ์ปค๋ฅ์
์ด ์ด์์๋ ์ํ๋ก ๋ฐํ
๋ํ์ ์ธ ์ปค๋ฅ์
ํ ์คํ์์ค๋ commons-dbcp2 ,tomcat-jdbc pool ,HikariCP ๋ฑ์ด ์๊ณ ์ฃผ๋ก HikariCP ์ฌ์ฉ
์คํ๋ง์์๋ spring-boot-starter-jdbc ๋๋ spring-boot-starter-data-jpa ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก HikariCP์ ๋ํ ์์กด์ฑ์ด ์๋์ผ๋ก ์ถ๊ฐ
๋ฐ์ดํฐ์์ค(DataSource)
์ปค๋ฅ์
์ ์ป๋ ๋ฐฉ๋ฒ์ JDBC DriverManager๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ์ปค๋ฅ์
ํ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์กด์ฌ


- ์ ํ๋ฆฌ์ผ์ด์
๋ก์ง์์
DriverManager ๋ฅผ ์ฌ์ฉํด์ ์ปค๋ฅ์
์ ํ๋ํ๋ค๊ฐ HikariCP ๊ฐ์ ์ปค๋ฅ
์
ํ์ ์ฌ์ฉํ๋๋ก ๋ณ๊ฒฝํ๋ฉด ์ปค๋ฅ์
์ ํ๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๋ ํจ๊ป ๋ณ๊ฒฝ ํด์ผํ๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.

- ๊ทธ๋ฌํ์ฌ
javax.sql.DataSource ๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ์๋ฐ์์ ์ ๊ณตํด์ค๋ค.
DataSource ๋ ์ปค๋ฅ์
์ ํ๋ํ๋ ๋ฐฉ๋ฒ์ ์ถ์ํ ํ๋ ์ธํฐํ์ด์ค
- ์ด ์ธํฐํ์ด์ค์ ํต์ฌ ๊ธฐ๋ฅ์ ์ปค๋ฅ์
์กฐํ
public interface DataSource {
Connection getConnection() throws SQLException;
๋๋ถ๋ถ์ ์ปค๋ฅ์
ํ ๊ตฌํ์ฒด๋ค์ javax.sql.DataSource ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ์ฌ, ์ปค๋ฅ์
ํ์ ํตํด ์ปค๋ฅ์
์ ์ ๊ณต
์ฐธ๊ณ :