์์์ฑ(Persistence) ๋ฑ์ฅ!
๋ฐ์ดํฐ๋ค์ด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋์ด๋ ์ฌ๋ผ์ง์ง ์๊ณ ์ด๋ค ๊ณณ์ ์ ์ฅ๋๋ ๊ฐ๋ ์ ์์์ฑ(Persistence) ์ด๋ผ๊ณ ํ๋ค.
Issue_1
์๋ฐ์์ ๋ฐ์ดํฐ์ ์์์ฑ์ ์ํ JDBC ๋ฅผ ์ง์ํด์ฃผ๋๋ฐ, ์ด๋ ๋งคํ ์์ ์ ๊ฐ๋ฐ์๊ฐ ์ผ์ผ์ด ์ํํด์ผ ํ๋ ๋ฒ๊ฑฐ๋ก์์ด ์๋ค.
SQL Mapper ์ ORM ์ ๋ฑ์ฅ!
SQL Mapper ์ **ORM**์ ๊ฐ๋ฐ์๊ฐ ์ง์ JDBC Programming ์ ํ์ง ์๋๋ก ๊ธฐ๋ฅ์ ์ ๊ณตํด์ฃผ๋ Persistence Framework ์ข ๋ฅ์ด๋ค.
Issue_2
๊ธฐ์กด JDBC ๋ง์ ์ฌ์ฉ์ผ๋ก ์ฟผ๋ฆฌ ๋ฌธ์ ๋ง๋ค์ด ์์ฒญํ๋ ๊ณผ์ ์ ์ฟผ๋ฆฌ ๋ฌธ์ด ์กฐ๊ธ๋ง ๊ธธ์ด์ ธ๋ ๊ด๋ฆฌ๊ฐ ํ๋ค๊ณ ๋ฒ๊ฑฐ๋กญ๋ค.
JPA , MyBatis ๋ฑ์ฅ!
๋ฐ๋ผ์ JPA ์ MyBatis ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
์ ๋ฆฌ
Persistence Framework : SQL Mapper, ORM(Object Relational Mapping
๋ผ์ด๋ธ๋ฌ๋ฆฌ : JPA, MyBatis
SQL Mapper VS ORM ์ ๋ฆฌ
- SQL Mapper
- SQL ๋ฌธ์ ์ง์ ์์ฑํ๊ณ ์ฟผ๋ฆฌ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ ํ ๊ฐ์ฒด์ ๋งคํํ ์ง ๋ฐ์ธ๋ฉ ํ๋ ๋ฐฉ๋ฒ
- DBMS์ ์ข ์์ ์ธ ๋ฌธ์
- Ex) jdbcTemplate , MyBatis
- Object ์ SQL ์ ํ๋๋ฅผ ๋งคํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒดํํ๋ ๊ธฐ์
- ORM(Object Relational Mapping)
- Object ์ DB ํ ์ด๋ธ์ ๋งคํ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒดํ ํ๋ ๊ธฐ์
- ๊ฐ๋ฐ์๊ฐ ๋ฐ๋ณต์ ์ธ SQL์ ์ง์ ์์ฑํ์ง ์์.
- DBMS์ ์ข ์์ ์ด์ง ์์
- ๋ณต์กํ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ JPQL์ ์ฌ์ฉํ๊ฑฐ๋ SQL Mapper ๋ฅผ ํผ์ฉํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ.
JPA ์ MyBatis_์ ๋ฆฌ
- JPA(ORM)
- ์๋ฐ ORM์ ๊ธฐ์ ํ์ค
- ๋ํ์ ์ธ ์คํ์์ค๋ก Hibernate
- CRUD ๋ฉ์๋ ๊ธฐ๋ณธ ์ ๊ณต
- ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ค์ง ์์๋ ๋จ
- 1์ฐจ ์บ์ฑ, ์ฐ๊ธฐ์ง์ฐ, ๋ณ๊ฒฝ๊ฐ์ง, ์ง์ฐ๋ก๋ฉ ์ ๊ณต
- MyBatis๋ ์ฟผ๋ฆฌ๊ฐ ์์ ๋์ด ๋ฐ์ดํฐ ์ ๋ณด๊ฐ ๋ฐ๋๋ฉด ๊ทธ์ ์ฌ์ฉ ๋๊ณ ์๋ DTO์ ํจ๊ป ์์ ํด์ฃผ์ด์ผ ํ๋ ๋ฐ๋ฉด์, JPA ๋ ๊ฐ์ฒด๋ง ๋ฐ๊พธ๋ฉด ๋๋ค.
- ์ฆ, ๊ฐ์ฒด ์ค์ฌ์ผ๋ก ๊ฐ๋ฐ ๊ฐ๋ฅ
- but ๋ณต์กํ ์ฟผ๋ฆฌ๋ ํด๊ฒฐ์ด ์ด๋ ค์
- MyBatis (SQL Mapper)
'Spring๐ > ๊ฐ๋ ์๋ฆฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ID์์ฑ ์ NAME ์์ฑ (1) | 2024.04.03 |
---|---|
Controller vs @Restcontroller ์ฐจ์ด์ (0) | 2024.03.18 |