๋ฐ์ํ
โ Spring์ ๊ตฌ์กฐ
1. Controller : ๊ฐ์ฅ ๋ฐ๊นฅ ๋ถ๋ถ, ์์ฒญ/์๋ต์ ์ฒ๋ฆฌํจ.
2. Service : ์ค๊ฐ ๋ถ๋ถ, ์ค์ ์ค์ํ ์๋์ด ๋ง์ด ์ผ์ด๋๋ ๋ถ๋ถ
3. Repo : ๊ฐ์ฅ ์์ชฝ ๋ถ๋ถ, DB์ ๋ง๋ฟ์ ์์. (Repository, Entity)
โ๏ธ RDBMS
- RDBMS(Relational DataBase Management System), ์ค์ฌ์ RDB
- ์ปดํจํฐ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๊ธฐ์
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- RDBMS์ ์ข ๋ฅ : MySQL, PostgreSQL, Oracle Database(์ ๋ฃ)
โ๏ธ H2
- RDBMS์ ํ ์ข ๋ฅ
- In-memory DB๋ก, ์๋ฒ๊ฐ ์๋ํ๋ ๋์์๋ง ๋ด์ฉ์ ์ ์ฅํ๊ณ , ์๋ฒ๊ฐ ์๋์ ๋ฉ์ถ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ญ์ ๋จ.
= ์๋ฒ๊ฐ ์ผ์ ธ์๋ ๋์์๋ง ์๋!
โ๏ธ SQL
- ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ , ์ ์ฅํ๊ณ , ๋ณ๊ฒฝํ๊ณ , ์ญ์ ํ๋ ๊ตฌ์ฒด์ ์ธ ๋ฌธ๋ฒ
โ๏ธ JPA
- ์คํ๋ง์ ์๋ฐ๋ก ์๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ SQL๋ก ์๋
- JPA(Sparing Data JPA)๋ ๊ทธ ์ฌ์ด ์๋ฐ๋ฅผ ์ํ ๋ฒ์ญ๊ธฐ ์ญํ ์ ํจ
- Java๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ฉด SQL๋ก ๋ฒ์ญํด์ค ๋ฟ๋ง ์๋๋ผ, ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ด ๊ฑฐ์ ์๋ฒฝํ๊ฒ ๋ค์ด์์.
โ๏ธ Repository
- JPA๋ฅผ ์๋์ํค๋ ๋งค๊ฐ์ฒด
- JPA๋ Repository๋ฅผ ํตํด์๋ง ์ฌ์ฉํ ์ ์์.
๋๋ณด๊ธฐ
Tabel์ SQL๋ก ์กฐํํ๋ ๊ฒ์ฒ๋ผ, Domain์ Repository๋ก ์กฐํํ๋ค.?
โ๏ธ API
- ํด๋ผ์ด์ธํธ - ์๋ฒ ๊ฐ์ ์ฝ์
- ํด๋ผ์ด์ธํธ๊ฐ ์ ํ๋๋ก ์๋ฒ์๊ฒ ์์ฒญ(Request)์ ๋ณด๋ด๋ฉด, ์๋ฒ๊ฐ ์๊ตฌ์ฌํญ์ ์ฒ๋ฆฌํ์ฌ ์๋ต(Response)์ ๋ฐํ
โ๏ธ Lombok
- ์ฝ๋ ์ ์ฝ
- ์๋ฐ ํ๋ก์ ํธ๋ฅผ ์งํํ๋๋ฐ ๊ฑฐ์ ํ์์ ์ผ๋ก ํ์ํ ๋ฉ์๋/์์ฑ์ ๋ฑ์ ์๋์์ฑํด์ค์ผ๋ก์จ ์ฝ๋๋ฅผ ์ ์ฝํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
โ๏ธ DTO
- DTO(Data Transfer Object)๋ ๊ณ์ธต๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ํด ์ฌ์ฉํ๋ ๊ฐ์ฒด
๋ฐ์ํ