DataSource
์์ jdbc๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผ์ ํ๋ฉด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ ๋๋ง๋ค connection์ ๋งบ๊ณ ๋๋ ์์ ์ ํ๋ค. ์ด connection์ ๋งบ๊ณ ๋๋ ์์ ์ ์ค์ด๊ธฐ ์ํด ๋ฏธ๋ฆฌ connection์ ์์ฑํด ๋๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ณ ์ ํ๋ ์ฌ์ฉ์์๊ฒ ๋ฏธ๋ฆฌ ์์ฑ๋ connection์ ์ ๊ณตํ๊ณ ๋๋ ค๋ฐ๋๋ค. ์ด connection๋ค์ ๋ชจ์๋๋ ์ฅ์๋ฅผ connection pool์ด๋ผ ํ๋ฉฐ, โDatasource๋ java ์์ connection pool์ ์ง์ํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ด๋ค.
โ
โ
โ
JPA(Java Persistence API)
์๋ฐ ํ๋ซํผ SE์ ์๋ฐ ํ๋ซํผ EE๋ฅผ ์ฌ์ฉํ๋ ์์ฉํ๋ก๊ทธ๋จ์์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ฆฌ๋ฅผ ํํํ๋ ์๋ฐ API์ด๋ค.
JPA๋ DB ํ ์ด๋ธ๊ณผ ์๋ฐ ๊ฐ์ฒด ์ฌ์ด์ ๋งคํ์ ์ฒ๋ฆฌํด์ฃผ๋ ORM์ด๋ ๊ธฐ์ ์ ํ์ค์ ๋๋ค. ๋ฐ๋ผ์ JPA์๋ ๊ฐ์ฒด์ DB ์ฌ์ด์ ๋งคํ์ ์ด๋ป๊ฒ ์ค์ ํ๊ณ ์ด๋ป๊ฒ ๋์ํด์ผํ๋์ง ๊ธฐ์ ํ๊ณ ์์ต๋๋ค. ์ฆ ์๋ฐ์ ํด๋์ค์ DB์ ํ ์ด๋ธ์ ๋งคํํ๋ ๊ธฐ์ ์ด๋ ๋ป
โ
โ
โ
ORM(Object Relational Mapping) - ๊ฐ์ฒด ๊ด๊ณ ๋งคํ
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ์ ํธํ๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณํํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ.
๊ฐ์ฒด ์งํฅ ์ธ์ด์์ ์ฌ์ฉํ ์ ์๋ "๊ฐ์" ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ด๋ค.
โ
โ
โ
ํผ์์คํด์ค ํ๋ ์์ํฌ(Persistence Framework)
๋ฐ์ดํฐ์ ์ ์ฅ, ์กฐํ, ๋ณ๊ฒฝ, ์ญ์ (CRUD)๋ฅผ ๋ค๋ฃจ๋ ํด๋์ค ๋ฐ ์ค์ ํ์ผ๋ค์ ์งํฉ์ด๋ค.
ํผ์์คํด์ค ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ฉด JDBC ํ๋ก๊ทธ๋๋ฐ์ ๋ณต์กํจ์ด๋ ๋ฒ๊ฑฐ๋ก์ ์์ด ๊ฐ๋จํ ์์ ๋ง์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๋๋๋ ์์คํ ์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์์ผ๋ฉฐ ์์ ์ ์ธ ๊ตฌ๋๋ ๋ณด์ฅํ๋ค.
โ
โ
โ
MyBatis(๋ง์ด๋ฐํฐ์ค)
์๋ฐ ํผ์์คํด์ค ํ๋ ์์ํฌ์ ํ๋๋ก, XML ์์ ์๋ ์ด๋ ธํ ์ด์ (@Annotation)์ ์ฌ์ฉํ์ฌ SQL๋ฌธ์ผ๋ก ๊ฐ์ฒด๋ค์ ์ฐ๊ฒฐ์ํจ๋ค. ์ํ์น ๋ผ์ด์ ์ค 2.0์ผ๋ก ๋ฐฐํฌ๋๋ ์์ ์ํํธ์จ์ด๋ค.
โ
โ
โ
Hibernate(ํ์ด๋ฒ๋ค์ดํธ)
ํ์ด๋ฒ๋ค์ดํธ๋ JPA ํ๋ก๋ฐ์ด๋์ ํ ์ข ๋ฅ์ ๋๋ค. JPA ํ๋ก๋ฐ์ด๋๋ JPA์ ํ์ค์ ์ค์ ๋ก ๊ตฌํํ๊ณ ์์ต๋๋ค. ์ฝ๊ฒ ๋งํ์๋ฉด JPA๋ DB์ ์๋ฐ ๊ฐ์ฒด๋ฅผ ๋งคํํ๊ธฐ ์ํ ์ธํฐํ์ด์ค(API)๋ฅผ ์ ๊ณตํ๊ณ JPA ํ๋ก๋ฐ์ด๋๋(ํ์ด๋ฒ๋ค์ดํธ) ์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ๊ฒ์ด์ฃ .
โ
โ
โ
MVC1 , MVC2 ํจํด
Model, View, Controller์ ์ค์๋ง๋ก์จ MVC๋ ์ฌ์ฉ์์ ์ํธ์์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ ๊ฐ์ง ์์๋ก ๋๋ ๊ฒ์ ๋งํ๋ค.
Model
- ํ๋ก๊ทธ๋จ ๋ด๋ถ์ํ, ์ฆ ๋ฐ์ดํฐ๋ฅผ ๋งํ๋ค.
View
- ์ฌ์ฉ์ ์ธํฐํ์ด์ค, ์ ์ ์๊ฒ ๋ณด์ฌ์ง๋๊ฒ
Controller
- ๋ฐ์ดํฐ์ ๋น์ฆ๋์ค ๋ก์ง๊ฐ์ ์ํธ์์ฉ์ ๋ปํ๋ค.
โ
MVC1
- ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ๊ณผ ์๋ต์ JSP๊ฐ ๋ด๋นํ๋ ๊ตฌ์กฐ.
+ ๋จ์ ํ์ด์ง ์์ฑ์ผ๋ก ์ฝ๊ฒ ๊ตฌํ์ด ๊ฐ๋ฅํ๋ค.(๊ฐ๋ฐ์ด ์ฌ์)
- ๋ณต์กํด์ง๋ฉด ๊ฐ๋ฐ๊ณผ ์ ์ง๋ณด์๊ฐ ์ด๋ ค์์ง๋ค.
- ๊ฐ๋ฐ์์ ๋์์ด๋๊ฐ ์ญํ ๋ถ๋ด์ด ์ด๋ ค์์ง๋ค.
https://nickjoit.tistory.com/9
โ
โ
MVC2
- ์น๋ธ๋ผ์ฐ์ ์ ์์ฒญ์ ํ๋์ ์๋ธ๋ฆฟ์ด ๋ฐ๊ณ , ์๋ธ๋ฆฟ์ ์์ฒญ์ ๋ง๊ฒ ์ฒ๋ฆฌํ ํ ๊ฒฐ๊ณผ๋ฅผ JSP ํ์ด์ง๋ก
ํฌ์๋ฉ ํ๋ค.
- ํด๋ผ์ด์ธํธ์ ์์ฒญ, ์๋ต์ฒ๋ฆฌ, ๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ๋ถ๋ถ์ ๋ชจ๋ํ์ํจ ๊ตฌ์กฐ๋ค.
+ ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ณต์กํด๋ Controller์ View์ ๋ถ๋ฆฌ๋ก ๊ฐ๋ฐ, ์ ์ง๋ณด์, ํ์ฅ์ด ์ฉ์ดํ๋ค.
- ๊ฐ๋ฐ์ด ์ด๋ ต๋ค.(๋์ ์์ค์ ์ดํด๊ฐ ํ์ํ๋ค.)
https://nickjoit.tistory.com/9
โ
โ
โ
์คํ๋ง MVC
https://nickjoit.tistory.com/9
https://nickjoit.tistory.com/9
โ
โ
โ
๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํ ๋ด์ฉ์ด๊ณ , ํ๋ฆฐ ๋ด์ฉ์ด ์์ ์๋ ์์ต๋๋ค.
โ
โ
โ
References
https://deepweller.tistory.com/6
https://dev-troh.tistory.com/150
https://ko.wikipedia.org/wiki/%EC%9C%84%ED%82%A4%EB%B0%B1%EA%B3%BC
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Codeforces] 1167A: Telephone Number (0) | 2020.03.26 |
---|---|
Java ๊ด๋ จ ๋ฉด์ ์ค๋น 2 (0) | 2020.03.26 |
ํ๋ก๊ทธ๋๋จธ์ค[Java] - (Level2)์ ๋ง๋๊ธฐ(์คํ/ํ) (0) | 2020.03.25 |
[๋ฐฑ์ค] 1966๋ฒ: ํ๋ฆฐํฐ ํ(๊ตฌํ, ํ) (0) | 2020.03.24 |
[Codeforces] 1191A: Tokitsukaze and Enhancement (0) | 2020.03.24 |
๋๊ธ