์คํ๋ง ์ ๋ฌธ์๊ฐ ์์ ๋ฅผ ๋ง๋ค์ด๊ฐ๋ฉด์ ์คํ๋ง ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ๋ฐ์ ๋น ๋ฅด๊ฒ ํ์ตํ ์ ์์ต๋๋ค.
์คํ๋ง DB ์ ๊ทผ ๊ธฐ์ ์คํ ์์ ์์!
์๋
ํ์ธ์. ์ฌ๋ฌ๋ถ^^!
๋๋์ด ์คํ๋ง DB ์ ๊ทผ ๊ธฐ์ ๊ฐ์๊ฐ ์คํ ์ค๋น์ ๋์
ํ์ต๋๋ค. ์ค๋๊ธฐ๊ฐ ๊ธฐ๋ค๋ ค์ฃผ์๊ณ ์์ํด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
DB ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ๋ฐ์ ๋ฐฉ๋ํ ๋ถ๋์ ๋ค๋ฃจ๋ค ๋ณด๋, ๊ฐ์ ๋ถ๋์ด 140๊ฐ์ ๋์ ์ ๋๋ก ๋ง์์ก์ต๋๋ค.
์ด๋๋ก ๊ณ์ ์ค๋นํ๋ฉด ์ถ์๊ฐ ๋๋ฌด ๋ฆ์ด์ง ๊ฒ ๊ฐ์์ ๊ฐ์๋ฅผ 2๊ฐ๋ก ๋๋์ด ์ถ์ํ๊ธฐ๋ก ํ์ต๋๋ค.
1. ์คํ๋ง DB 1ํธ - ๋ฐ์ดํฐ ์ ๊ทผ ํต์ฌ ์๋ฆฌ
2. ์คํ๋ง DB 2ํธ - ๋ฐ์ดํฐ ์ ๊ทผ ํ์ฉ ๊ธฐ์
์ถ์ ์์ ์ผ์ 4์ 12์ผ(ํ) ~ 4์ 19(ํ) ์ฌ์ด์ 1ํธ์ด ์ถ์๋ ์์ ์
๋๋ค^^!
(2ํธ์ 5์๋ง ์ถ์ ์์ ์
๋๋ค.)
์ด๋ฒ DB ์ ๊ทผ ๊ธฐ์ ๊ฐ์๋ ์ค๋๊ธฐ๊ฐ ์ด์ฌํ ์ค๋นํ์ต๋๋ค. ๊ธฐ๋ํด์ฃผ์ ๋ ์ข์ต๋๋ค.
- ๊ฐ์๋ช
: ์คํ๋ง DB 1ํธ - ๋ฐ์ดํฐ ์ ๊ทผ ํต์ฌ ์๋ฆฌ
- ๊ฐ์ ์: 54๊ฐ
- ์ค๋ช
๊ทธ๋ฆผ: ์ฝ 80์ฅ
- ๊ฐ์ ์๋ฃ PDF: ์ฝ 200์ฅ
์์ธํ ๊ฐ์ ์๊ฐ๋ ๋ค์ ๋ด์ฉ์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์
ํ๋์ ์ ํ๋ฆฌ์ผ์ด์
์ ๋๋ถ๋ถ ์น ํ๊ฒฝ์์ ๋์ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์
๋๋ค.
๋จ์ํ๊ฒ ์๊ฐํ๋ฉด ์น ์ ํ๋ฆฌ์ผ์ด์
์ ํฌ๊ฒ 3๊ฐ์ง ๊ธฐ๋ฅ์ ์ํํฉ๋๋ค.
์ฐ๋ฆฌ๋ ์์ ์คํ๋ง MVC ๊ฐ์๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ํ์ตํ์ต๋๋ค. ์ด๋ฒ์๋ ๊ทธ ์ดํ ๋จ๊ณ์ธ ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ ์๋น์ค์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณด๊ดํ๊ณ ๊ด๋ฆฌํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๋ํด ๊น์ด์๊ฒ ํ์ตํฉ๋๋ค.
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ์คํ๋ง MVC๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ ๊ธฐ๋ฅ์ ์์ํ ์๋ฐ ์ฝ๋๋ก ๋ง๋ค์ด์ง๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณด๊ดํ๊ณ ๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ JDBC, JdbcTemplate, MyBatis, JPA์ ๊ฐ์ ๋ค์ํ ๊ธฐ์ ๋ค์ ์ ํํด์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์คํ๋ง์ด ์ ๊ณตํ๋ DB ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ๊ธฐ์ ๋ค์ ์คํ๋ง๊ณผ ํตํฉํด์, ๋งค์ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํด์๋ ๋ค์ํ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ํ์ตํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ํ์ตํ๊ธฐ ์ด๋ ค์ด ๋ํ์ ์ธ ์ด์ ๋ ๋ค์ 3๊ฐ์ง ๋๋ฌธ์ ๋๋ค.
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ฐ ์ง์์ด ์ฝํ๋ค
๋ชจ๋ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ธฐ๋ณธ ์ดํด๊ฐ ํ์ํฉ๋๋ค. ์ด ๊ฐ์๋ฅผ ํ์ตํ๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL์ ๋ํ ๊ธฐ๋ณธ ๋ด์ฉ์ ํ์ตํ์๊ธธ ๋ฐ๋๋๋ค.
2. ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ด ๋๋ฌด ๋ค์ํ๋ค
JDBC๋ถํฐ ์์ํด์ SQL ๋งคํผ๋ผ๊ณ ๋ถ๋ฆฌ๋ JdbcTemplate์ด๋ MyBatis ๊ฐ์ ๊ธฐ์ ๋ถํฐ ORM ๊ธฐ์ ์ธ JPA, ์คํ๋ง ๋ฐ์ดํฐ JPA, Querydsl ๊ฐ์ ์ต์ ๊ธฐ์ ๊น์ง ์ ๋ง ๋ค์ํ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ๋ค์ด ์์ต๋๋ค. ๋๋ฌด ๋ค์ํ ๊ธฐ์ ๋ค์ด ์กด์ฌํด์, ๊ฐ๊ฐ์ ๊ธฐ์ ๋ค์ด ์ด๋ค ์ฅ๋จ์ ์ด ์๊ณ , ์ด๋ค ์ํฉ์ ์ด๋ค ๊ธฐ์ ๋ค์ ์ฌ์ฉํ๋ฉด ์ข์์ง ๋ช
ํํ๊ฒ ์ดํดํ๊ณ ์ฌ์ฉํ๊ธฐ๋ ์ฝ์ง ์์ต๋๋ค.
3. ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ์ญ์ฌ๊ฐ ๋๋ฌด ์ค๋ ๋์๋ค
JDBC๋ถํฐ ์์ํ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ์ด๋ฏธ 20๋
์ด ๋์์ต๋๋ค. ๊ทธ๋์ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ๋ฐ์ ์ ๋ฌผ๋ก ์ด๊ณ , ์คํ๋ง์ ์ด๋ฌํ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ๋ค์ ๋์ฑ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ๋๋ก ๋๊ธฐ ์ํด ์ ๋ง์ ๊ธฐ๋ฅ์ ๋ฐ์ ์ํค๊ณ , ๊ฐ์ ํด์์ต๋๋ค. ๊ทธ๋์ ์ง๊ธ์ ๋๋ฌด ๋ง์ ๊ฒ์ด ์๋ํ๋๊ณ , ์ถ์ํ ๋์ด๋ฒ๋ ธ์ต๋๋ค. ํนํ ์ต๊ทผ์ ๊ฐ๋ฐ์ ์์ํ ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ค์ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ์ฌ์ฉํ ๋ ์ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๊ธฐ๋ฅ์ด ๋์ํ๋์ง ์ ํํ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ณ , ๋จ์ํ ์ฌ์ฉ๋ฒ ์์ฃผ๋ก ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ์ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ์ง?๋ผ๊ณ ์๋ฌธ์ ๊ฐ์ ธ๋ ๊ณผ๊ฑฐ์ ์ด๋ค ๋ถํธํ ๋ฌธ์ ๋๋ฌธ์ ์ง๊ธ ์ด๋ฐ ๋ฐฉ์์ผ๋ก ๊ฐ์ ๋๊ณ ์ฌ์ฉํ๋์ง ๊ณผ๊ฑฐ์ ๋ฌธ๋งฅ์ ์ ๋๋ก ์ดํดํ๊ณ ์ฌ์ฉํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ์์์ธ JDBC ๋ถํฐ ์ต์ ์ค๋ฌด ๊ธฐ์ ๊น์ง
์ด ๊ฐ์๋ 20๋
์ ์ผ๋ก ๋์๊ฐ๋๋ค. ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ์์์ธ JDBC๋ฅผ ์์์ผ๋ก, ์ปค๋ฅ์
, ์ปค๋ฅ์
ํ, ๋ฐ์ดํฐ์์ค, ํธ๋์ญ์
๊ฐ๋
, ๊ทธ๋ฆฌ๊ณ ์คํ๋ง์ด ์ง์ํ๋ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ๊น์ง, ๋ชจ๋ ๊ฒ์ ์ฝ๋๋ก ์ฌ๋ฌ๋ถ๊ณผ ํจ๊ป ๋ง๋ค์ด๋ณด๋ฉด์ ๋จ๊ณ์ ์ผ๋ก ์งํํฉ๋๋ค. ๊ณผ๊ฑฐ์ ์ด๋ค ๋ถํธํ ์ ์ด ์์ด์ ๋ค์ ๊ธฐ์ ์ด ํ์ํ๊ณ , ์ด๋ค ์ ๋ค์ด ๊ฐ์ ๋์๋์ง ๊ทธ ์ด์ ๋ฅผ ์ฐพ๊ณ ์ง์ ์ฝ๋ฉํ๋ฉด์ ํ๋์ฉ ์ดํดํ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ 2ํธ์ ํตํด MyBatis, JPA ๊ฐ์ด ์ค๋ฌด์์ ์ฃผ๋ก ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ๋ค๋ ํจ๊ป ํ์ตํ๊ฒ ๋ฉ๋๋ค.
๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋จ๋จํ
๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ํ์ตํ ๋๋ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ณธ๊ธฐ๊ฐ ์ค์ํฉ๋๋ค. ์ด ๊ฐ์์์๋ ์ค๋ฌด์์๋ ๋ง์ด ์ฌ์ฉ๋์ง๋ง ํ์ตํ๊ธฐ๋ ์ฝ์ง ์์ ํธ๋์ญ์
๊ณผ ์๋ฐ ์์ธ์ ๋ํ ๊ธฐ๋ณธ๊ธฐ๋ ํจ๊ป ๋ค๋ฃน๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ํ์ตํ ๋ด์ฉ๋ค์ด ์ค๋ฌด์์ ์ด๋ป๊ฒ ํ์ฉ๋๋์ง ์ฝ๋๋ก ํ์ตํ ์ ์์ต๋๋ค.
์ด ๊ฐ์๋ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ๋ํ ๋ชจ๋ ๋ด์ฉ์ ์ค๋ช
ํ์ง ์์ต๋๋ค.
๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ์ํด ํ์ํ ํต์ฌ ๋ผ๋๋ฅผ ์ธ์ฐ๊ณ , ๊ทธ ์์ ์ค๋ฌด์ ๊ผญ ํ์ํ ๊ธฐ์ ์ ์์ฃผ๋ก ์ค๋ช
ํฉ๋๋ค.
์ด ๊ฐ์๊ฐ ๋๋๋ฉด ์ฌ๋ฌ๋ถ์ ํผํผํ ๊ธฐ๋ฐ ์ง์์ ๋ฐํ์ผ๋ก ์คํ๋ง ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์์ ์๊ฒ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
์คํ๋ง DB ๊ฐ์๋ 1,2ํธ์ผ๋ก ๋๋์ด์ ธ ์์ต๋๋ค.
๋ณธ ๊ฐ์๋ ์คํ๋ง DB 1ํธ - ๋ฐ์ดํฐ ์ ๊ทผ ํต์ฌ ์๋ฆฌ์ ๋๋ค.
์คํ๋ง DB 1ํธ - ๋ฐ์ดํฐ ์ ๊ทผ ํต์ฌ ์๋ฆฌ
๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ํต์ฌ ๊ฐ๋ ์ ๋ค์ง๊ณ , ์คํ๋ง์ด ์ ๊ณตํ๋ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ ๊ธฐ๋ณธ ์๋ฆฌ๋ฅผ ์ดํดํฉ๋๋ค.
1ํธ์ ๋จผ์ ์คํ๋ง ์์ด ์์ํ ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ธ JDBC, ์ปค๋ฅ์ , ์ปค๋ฅ์ ํ, ๋ฐ์ดํฐ์์ค, ํธ๋์ญ์ ๊ฐ์ ๊ธฐ๋ฐ ๊ธฐ์ ์ ํต์ฌ ๊ฐ๋ ์ ๋จผ์ ํ์ตํฉ๋๋ค. ์ด๋ ๊ฒ ๊ธฐ๋ฐ์ ๋ค์ง ๋ค์์, ๊ทธ ์์ ์คํ๋ง ๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์ ์ด ์ด ๊ธฐ๋ฅ๋ค์ ์ผ๋ง๋ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋์ง ๋จ๊ณ๋ณ๋ก ๊น์ด์๊ฒ ํ์ตํฉ๋๋ค.
์คํ๋ง DB 2ํธ - ๋ฐ์ดํฐ ์ ๊ทผ ํ์ฉ ๊ธฐ์
1ํธ์ ๊ธฐ๋ฐ ์์ ๋ค์ํ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํฉ๋๋ค.
JdbcTemplate, MyBatis ๊ฐ์ SQL ๋งคํผ ๊ธฐ์ ๋ถํฐ, JPA, ์คํ๋ง ๋ฐ์ดํฐ JPA, Querydsl ๊ฐ์ ์ต์ ORM ๊ธฐ์ ์ ํ์ตํ๊ณ ๊ฐ ๊ธฐ์ ๋ค์ ์ฅ๋จ์ ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ์ ๊ทผ ๊ณ์ธต์ ํ
์คํธ ๋ฐฉ๋ฒ๊ณผ ์คํ๋ง ํธ๋์ญ์
์ ๋ํ ๋ค์ํ ๊ธฐ๋ฅ๋ค๋ ๊น์ด์๊ฒ ํ์ตํฉ๋๋ค.
์ ๋ฆฌ
๋ฐฑ์๋ ๊ฐ๋ฐ์๋ MVC์ DB ์ ๊ทผ ๊ธฐ์ ์ด๋ผ๋ 2๊ฐ์ง ํฐ ์ถ์ ๊ผญ ์์ฑํด์ผ ํฉ๋๋ค. ์ฌ๋ฌ๋ถ์ด ๋ ๊ฐ์ง ์ถ์ ์์ฑํ๊ณ , ๋ฉ์ง ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ก ์ฑ์ฅํ ์ ์๋๋ก ์ ๋ ์ด์ฌํ ๋์๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๋ฌด๋ฃ