๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์ ๋งค๋ฒ ํ๋(๋ณต์กํ ๊ณผ์ )
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ์ ํ๋ํ ๋๋ ๋ค์๊ณผ ๊ฐ์ ๋ณต์กํ ๊ณผ์ ์ ๊ฑฐ์น๋ค.
0. ์ฌ์ฉ์ ์์ฒญ
1. ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ DB ๋๋ผ์ด๋ฒ๋ฅผ ํตํด ์ปค๋ฅ์ ์ ์กฐํํ๋ค.
2. DB ๋๋ผ์ด๋ฒ๋ DB ์ TCP/IP ์ปค๋ฅ์ ์ ์ฐ๊ฒฐํ๋ค.
๋ฌผ๋ก ์ด๊ณผ์ ์์ 3 way handshake ๊ฐ์ TCP/IP ์ฐ๊ฒฐ์ ์ํ ๋คํธ์ํฌ ๋์์ด ๋ฐ์ํ๋ค.
3. DB ๋๋ผ์ด๋ฒ๋ TCP/IP ์ปค๋ฅ์ ์ด ์ฐ๊ฒฐ๋๋ฉด, ID/PW์ ๊ธฐํ ๋ถ๊ฐ์ ๋ณด๋ฅผ DB์ ์ ๋ฌํ๋ค.
4. DB๋ ID,PW๋ฅผ ํตํด ๋ด๋ถ ์ธ์ฆ์ ์๋ฃํ๊ณ , ๋ด๋ถ์ DB ์ธ์ ์ ์์ฑํ๋ค.
5. DB๋ ์ปค๋ฅ์ ์์ฑ์ด ์๋ฃ๋์๋ค๋ ์๋ต์ ๋ณด๋ธ๋ค.
6. DB ๋๋ผ์ด๋ฒ๋ ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ ํด๋ผ์ด์ธํธ์ ๋ฐํํ๋ค.
์ด๋ ๊ฒ ์ปค๋ฅ์ ์ ์๋ก ๋ง๋๋ ๊ฒ์ ๊ณผ์ ๋ ๋ณต์กํ๊ณ ์๊ฐ๋ ๋ง์ด ๋ง์ด ์๋ชจ๋๋ ์ผ์ด๋ค.
DB๋ ๋ฌผ๋ก ์ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์์๋ TCP/IP ์ปค๋ฅ์ ์ ์๋ก ์์ฑํ๊ธฐ ์ํ ๋ฆฌ์์ค๋ฅผ ๋งค๋ฒ ์ฌ์ฉํด์ผ ํ๋ค.
์ง์ง ๋ฌธ์ ๋ ๊ณ ๊ฐ์ด ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉํ ๋, SQL์ ์คํํ๋ ์๊ฐ ๋ฟ๋ง ์๋๋ผ
์ปค๋ฅ์ ์ ์๋ก ๋ง๋๋ ์๊ฐ์ด ์ถ๊ฐ๋๊ธฐ ๋๋ฌธ์ ๊ฒฐ๊ณผ์ ์ผ๋ก ์๋ต ์๋์ ์ํฅ์ ์ค๋ค.
์ปค๋ฅ์ ํ
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํ๋ฒ์ ํด๊ฒฐํ๋ ์์ด๋์ด๊ฐ ๋ฐ๋ก ์ปค๋ฅ์ ์ ๋ฏธ๋ฆฌ ์์ฑํด๋๊ณ ์ฌ์ฉํ๋ ์ปค๋ฅ์ ํ์ด๋ผ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ปค๋ฅ์
ํ์ ์ด๋ฆ ๊ทธ๋๋ก ์ปค๋ฅ์
์ ๊ด๋ฆฌํ๋ ํ(์์์ฅ ํ์ ์์ํ๋ฉด ๋๋ค.)์ด๋ค.
์ปค๋ฅ์ ํ ์ด๊ธฐํ
์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํ๋ ์์ ์ ์ปค๋ฅ์ ํ์ ํ์ํ ๋งํผ ์ปค๋ฅ์ ์ ๋ฏธ๋ฆฌ ํ๋ณดํด์ ํ์ ๋ณด๊ดํ๋ค.
๋ณดํต ์ผ๋ง๋ ๋ณด๊ดํ ์ง๋ ์๋น์ค์ ํน์ง๊ณผ ์๋ฒ ์คํ์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ๊ธฐ๋ณธ๊ฐ์ ๋ณดํต 10๊ฐ์ด๋ค.
์ปค๋ฅ์ ํ์ ์ฐ๊ฒฐ ์ํ
์ปค๋ฅ์ ํ์ ๋ค์ด ์๋ ์ปค๋ฅ์ ์ TCP/IP๋ก DB์ ์ปค๋ฅ์ ์ด ์ฐ๊ฒฐ๋์ด ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์ ์ธ์ ๋ ์ง ์ฆ์ SQL์ DB์ ์ ๋ฌํ ์ ์๋ค.
์ปค๋ฅ์ ํ ์ฌ์ฉ1
์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์์ ์ด์ ๋ DB ๋๋ผ์ด๋ฒ๋ฅผ ํตํด์ ์๋ก์ด ์ปค๋ฅ์ ์ ํ๋ํ๋ ๊ฒ์ด ์๋๋ค.
์ด์ ๋ ์ปค๋ฅ์ ํ์ ํตํด ์ด๋ฏธ ์์ฑ๋์ด ์๋ ์ปค๋ฅ์ ์ ๊ฐ์ฒด ์ฐธ์กฐ๋ก ๊ทธ๋ฅ ๊ฐ์ ธ๋ค ์ฐ๊ธฐ๋ง ํ๋ฉด ๋๋ค.
์ปค๋ฅ์ ํ์ ์ปค๋ฅ์ ์ ์์ฒญํ๋ฉด ์ปค๋ฅ์ ํ์ ์์ ์ด ๊ฐ์ง๊ณ ์๋ ์ปค๋ฅ์ ์ค์ ํ๋๋ฅผ ๋ฐํํ๋ค.
์ปค๋ฅ์ ํ ์ฌ์ฉ2
์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ปค๋ฅ์ ํ์์ ๋ฐ์ ์ปค๋ฅ์ ์ ์ฌ์ฉํด์ SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฌํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ ์ฒ๋ฆฌํ๋ค.
์ปค๋ฅ์
์ ๋ชจ๋ ์ฌ์ฉํ๊ณ ๋๋ฉด ์ด์ ๋ ์ปค๋ฅ์
์ ์ข
๋ฃํ๋ ๊ฒ์ด ์๋๋ผ,
๋ค์์ ๋ค์ ์ฌ์ฉํ ์ ์๋๋ก ํด๋น ์ปค๋ฅ์ ์ ๊ทธ๋๋ก ์ปค๋ฅ์ ํ์ ๋ฐํํ๋ฉด ๋๋ค.
์ฌ๊ธฐ์ ์ฃผ์ํ ์ ์ ์ปค๋ฅ์ ์ ์ข ๋ฃํ๋ ๊ฒ์ด ์๋๋ผ ์ปค๋ฅ์ ์ด ์ด์์๋ ์ํ๋ก ์ปค๋ฅ์ ํ์ ๋ฐํํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์ ๋ฆฌ
์ ์ ํ ์ปค๋ฅ์ ํ ์ซ์๋ ์๋น์ค์ ํน์ง๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ ์คํ, DB ์๋ฒ ์คํ์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ ํ ์คํธ๋ฅผ ํตํด์ ์ ํด์ผ ํ๋ค.
์ปค๋ฅ์
ํ์ ์๋ฒ๋น ์ต๋ ์ปค๋ฅ์
์๋ฅผ ์ ํํ ์ ์๋ค.
๋ฐ๋ผ์ DB์ ๋ฌดํ์ ์ฐ๊ฒฐ์ด ์์ฑ๋๋ ๊ฒ์ ๋ง์์ฃผ์ด์ DB๋ฅผ ๋ณดํธํ๋ ํจ๊ณผ๋ ์๋ค.
์ด๋ฐ ์ปค๋ฅ์ ํ์ ์ป๋ ์ด์ ์ด ๋งค์ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์ค๋ฌด์์๋ ํญ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ค.
์ปค๋ฅ์
ํ์ ๊ฐ๋
์ ์ผ๋ก ๋จ์ํด์ ์ง์ ๊ตฌํํ ์๋ ์์ง๋ง,
์ฌ์ฉ๋ ํธ๋ฆฌํ๊ณ ์ฑ๋ฅ๋ ๋ฐ์ด๋ ์คํ์์ค ์ปค๋ฅ์ ํ์ด ๋ง๊ธฐ ๋๋ฌธ์ ์คํ์์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๋ํ์ ์ธ ์ปค๋ฅ์ ํ ์คํ์์ค๋ commons-dbcp2 , tomcat-jdbc pool , HikariCP ๋ฑ์ด ์๋ค.
์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ํธ๋ฆฌํจ ์ธก๋ฉด์์ ์ต๊ทผ์๋ hikariCP ๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
์คํ๋ง ๋ถํธ 2.0 ๋ถํฐ๋ ๊ธฐ๋ณธ ์ปค๋ฅ์ ํ๋ก hikariCP ๋ฅผ ์ ๊ณตํ๋ค.
์ฑ๋ฅ, ์ฌ์ฉ์ ํธ๋ฆฌํจ, ์์ ์ฑ ์ธก๋ฉด์์ ์ด๋ฏธ ๊ฒ์ฆ์ด ๋์๊ธฐ ๋๋ฌธ์ ์ปค๋ฅ์ ํ์ ์ฌ์ฉํ ๋๋ ๊ณ ๋ฏผํ ๊ฒ ์์ด hikariCP ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ค๋ฌด์์๋ ๋ ๊ฑฐ์ ํ๋ก์ ํธ๊ฐ ์๋ ์ด์ ๋๋ถ๋ถ hikariCP ๋ฅผ ์ฌ์ฉํ๋ค.
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-db-1/dashboard
'Spring > Spring DB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์คํ๋ง DB 1ํธ] - 6. DB ๋ฝ (0) | 2023.03.19 |
---|---|
[์คํ๋ง DB 1ํธ] - 5. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๊ตฌ์กฐ์ DB ์ธ์ (0) | 2023.03.15 |
[์คํ๋ง DB 1ํธ] - 4. ํธ๋์ญ์ (0) | 2023.03.15 |
[์คํ๋ง DB 1ํธ] - 3. DataSource ์ดํด (0) | 2023.03.14 |
[์คํ๋ง DB 1ํธ] - 1. JDBC ์ดํด (0) | 2023.03.13 |