์คํ๋ง MVC 2ํธ - ๋ฐฑ์๋ ์น ๊ฐ๋ฐ ํ์ฉ ๊ธฐ์
์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ์น ๊ธฐ์ ์ ๊ธฐ์ด๋ถํฐ ์ดํดํ๊ณ , ์์ฑํ ์ ์์ต๋๋ค. MVC 2ํธ์์๋ MVC 1ํธ์ ํต์ฌ ์๋ฆฌ์ ๊ตฌ์กฐ ์์ ์ค๋ฌด ์น ๊ฐ๋ฐ์ ํ์ํ ๋ชจ๋ ํ์ฉ ๊ธฐ์ ๋ค์ ํ์ตํ ์ ์์ต๋๋ค.
์๊ฐ์ 25,342๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ
์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 2ํธ ๊ฐ์๊ฐ ๋๋์ด ์คํ ํ์ต๋๋ค.
์คํ ๊ธฐ๋ ์ผ๋ก ์ ์ ๋ชจ๋ ๊ฐ์๋ฅผ 30% ํ ์ธํฉ๋๋ค ๐
์ ๋ชฉ: ๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 2ํธ โ ์ค๋ฌด์์ ๋ฐ๋์ ๋ง์ฃผ์น๋ 9๊ฐ์ง ์ค๊ณ ํจํด
๋งํฌ: https://inf.run/HgVZ2
<๊ฐ์ ๋ด์ฉ>
์ค๊ณ 1ํธ์์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ ์์ ๋ค์ก๋ค๋ฉด, ์ด์ ๋ ํ์ ์์ ๋ฐ๋์ ๋ง์ฃผ์น๊ฒ ๋๋ ๋ณต์กํ๊ณ ๊น๋ค๋ก์ด ์๊ตฌ์ฌํญ๋ค์ ํด๊ฒฐํด์ผ ํ ๋์ ๋๋ค.
์ค์ ํ๋ก์ ํธ ์ค๊ณ๋ฅผ ์์ํ๋ฉด, ์ฐ๋ฆฌ๋ ํ์ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋์ ๋ค๊ณผ ๋ง์ฃผํ๊ฒ ๋ฉ๋๋ค.
๊ณตํต ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํด์ผ ํ ๊น?
'๋ฌดํ ๊ณ์ธต ๊ตฌ์กฐ์ ์นดํ ๊ณ ๋ฆฌ, ์ด๋ป๊ฒ ์ค๊ณํด์ผ ์กฐํ ์ฑ๋ฅ์ ๋ง์น์ง ์์๊น?'
'๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ, ๋๋์ฒด ์ด๋ค ๋ฐฉ์์ผ๋ก ๋จ๊ฒจ์ผ ์ต์ ์ผ๊น?'
'ํ์์ด ํํดํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ง์๋ ๋ ๊น? ์๋๋ฉด ๋จ๊ฒจ๋ฌ์ผ ํ๋?'
'ํต๊ณ ์ฟผ๋ฆฌ๋ง ๋๋ฆฌ๋ฉด DB๊ฐ ๋๋ ค์ง๋๋ฐ, ์ด๋ป๊ฒ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํด์ผ ํ ๊น?'
'์ํ๋ง๋ค ์ ๊ฐ๊ฐ์ธ ์๋ง์ ์ต์ ๊ฐ๋ค์ ์ด๋ป๊ฒ ์ ์ฅํด์ผ ํ์ง?'
'์์ฆ ๋ง์ด ์ด๋ค๋ JSON, ๊ด๊ณํ DB์๋ ์ด๋ป๊ฒ ๋ น์ฌ๋ด๋ ๊ฒ ์ข์๊น?'
"๋๋๊ฒ๋ ์ค๋ฌด์์ ๊ฒช๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฌธ์ ๋ ๋๋ถ๋ถ ๋น์ทํฉ๋๋ค. ๋ณต์กํด ๋ณด์ด๋ ์ค๋ฌด์ ๋์ ๋ค๋ ๊ฒฐ๊ตญ 9๊ฐ์ง ํต์ฌ ์ ํ์ผ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค.
์ด ๊ฐ์๋ ๋ฐ๋ก ์ด๋ฐ ๊ณ ๋ฏผ๋ค์ ๋ํ ๋ช ์พํ ํด๋ต์ ๋๋ฆฝ๋๋ค.
์ด๋ฒ ๊ฐ์์์๋ ์๋ง์ ํ๋ก์ ํธ๋ฅผ ๊ฑฐ์น๋ฉฐ ์ฒ ์ ํ ๊ฒ์ฆ๋ ์ ์ ์ค์ ์ค๊ณ ๋ ธํ์ฐ๋ฅผ ์๋์์ด ๊ณต๊ฐํฉ๋๋ค. ๋ง๋งํ๋ ๋ฌธ์ ๋ค์ 9๊ฐ์ง ํด๋ฒ์ผ๋ก ์ ์ ํจ๊ป ์์ ๋ฅผ ํตํด ํ๋์ฉ ์ ๋ณตํด ๋ด ์๋ค.
์ด ๊ฐ์๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ ์ค๋ฌด ํ์ฅ์์ ๋ฐ๋ก ์ฌ์ฉํ๊ฒ ๋ '9๊ฐ์ง ํต์ฌ ์ค๊ณ ํจํด'์ ์๋ฒฝํ๊ฒ ๋ง์คํฐํ๊ฒ ๋ฉ๋๋ค.
๊ณตํต ์ฝ๋ ์ค๊ณ: ์์คํ ์ ํ์ค๊ณผ ํ์ฅ์ ์ฑ ์์ง๋ ๊ฒฌ๊ณ ํ ์ฝ๋ ๊ด๋ฆฌ ์ฒด๊ณ
๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ: ์นดํ ๊ณ ๋ฆฌ, ์กฐ์ง๋ ๊ฐ์ ๋ณต์กํ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ชจ๋ธ๋ง
๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ถ์ : ๋๊ฐ, ์ธ์ , ๋ฌด์์ ๋ณ๊ฒฝํ๋์ง ๊ธฐ๋กํ๋ ์ ๋ต
๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ: ๋ฐ์ดํฐ์ ๊ณผ๊ฑฐ ์ํ๋ฅผ ๋ณด์กดํ๊ณ ์์ ๋ณ๋ก ์กฐํํ๋ ์ด๋ ฅ ๊ด๋ฆฌ ํจํด
SOFT DELETE: ๋ฐ์ดํฐ์ ๋ณต๊ตฌ ๊ฐ๋ฅ์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๋ ผ๋ฆฌ์ ์ญ์ ๊ธฐ๋ฒ
ํต๊ณ ํ ์ด๋ธ ์ค๊ณ: ๋์ฉ๋ ๋ฐ์ดํฐ ํ๊ฒฝ์์๋ ์ฑ๋ฅ ์ ํ ์๋ ๊ณ ์ ์ง๊ณ ์ ๋ต
์์ ๊ด๊ณ ์ค๊ณ: ๋ถ๋ชจ, ์์ ๊ตฌ์กฐ๋ฅผ ๊ด๊ณํ DB์์ ์ฌ์ฉํ๋ ์ ๋ต
๋์ ์ค๊ณ (EAV):์ํ ์ต์ ์ฒ๋ผ ์์๋ก ๋ณํ๋ ์์ฑ์ ์ ์ฐํ๊ฒ ์์ฉํ๋ ์ค๊ณ
JSON ๋ฐ์ดํฐ ์ค๊ณ: NoSQL์ ์ ์ฐํจ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ น์ฌ๋ด๋ ํ๋์ ์ธ ์ค๊ณ ๊ธฐ๋ฒ
์ฌ๊ธฐ์ ๋ํด, ๋จ์ํ ์ด๋ก ์ ๋์ดํ๋ ๊ฒ์ ๋์ด ๊ฐ ํจํด์ ํ์คํ ์ฅ๋จ์ ๊ณผ ์ค๋ฌด ์ ํ ๊ธฐ์ค์ ๋ฌผ๋ก , ์ฑ๋ฅ ์ต์ ํ ๊ธฐ๋ฒ๊น์ง ์ค๋ฌด์ ํ์ํ ๋ชจ๋ ๋ ธํ์ฐ๋ฅผ ๋ด์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก "์ค๋ฌด ์ค๊ณ๋ ์ ํด์ง ์ ๋ต์ ์ฐพ๋ ๊ฒ์ด ์๋๋ผ, ์ํฉ์ ๋ง๋ ์ต์ ์ ํธ๋ ์ด๋์คํ(Trade-off)๋ฅผ ์ ํํ๋ ๊ณผ์ ์ ๋๋ค. ์ด ๊ฐ์๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ ์์ผ๋ฅผ ์ง์ง ์ค๋ฌด ๋ ๋ฒจ๋ก ๋์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด๋ค ํ๋ก์ ํธ๋ฅผ ๋ง์ฃผํ๋๋ผ๋, ์ฃผ์ ์์ด ์์ ์๊ฒ ์ค๊ณํ ์ ์๋ ์ง์ ํ ์ค๊ณ ์ ๋ฌธ๊ฐ๋ก ๋ง๋ค์ด ๋ค์ด๋๋ฆฌ๊ฒ ์ต๋๋ค."
์ ์ ์ ๋ง์ ์ค์ ๊ฒฝํ๊ณผ ์ค๋ ๊ณ ๋ฏผ์ ๊ฒฐ๊ณผ๋ฅผ ์ด ๊ฐ์์ ๋ด์์ต๋๋ค.
์ฌ๋ฌ๋ถ๊ป ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค.<์ ์ฒด ํ์ต ๋ชฉ์ฐจ>
1. ๊ฐ์ ์๊ฐ์ ์์ ์๋ฃ
2. ๊ณตํต ์ฝ๋ ์ค๊ณ
- ๊ณตํต ์ฝ๋๊ฐ ํ์ํ ์ด์
- ๊ณตํต ์ฝ๋ ํ ์ด๋ธ ์ค๊ณ
- ๊ณตํต ์ฝ๋๋ฅผ ๋ ๋ฒ์ฉ์ฑ ์๊ฒ - ๊ทธ๋ฃนํ ์ค๊ณ
- ๊ณตํต ์ฝ๋์ ์ถ๊ฐ ์์ฑ
- ๊ณตํต ์ฝ๋์ ๋จ์
- ๊ณตํต ์ฝ๋์ ๋จ์ ํด๊ฒฐ ๋ฐฉ์1
- ๊ณตํต ์ฝ๋์ ๋จ์ ํด๊ฒฐ ๋ฐฉ์2
- ๊ณตํต ์ฝ๋ vs ์ ํ๋ฆฌ์ผ์ด์ ENUM 1
- ๊ณตํต ์ฝ๋ vs ์ ํ๋ฆฌ์ผ์ด์ ENUM 2
- ๊ณตํต ์ฝ๋ vs ์ ํ๋ฆฌ์ผ์ด์ ENUM 3
- ๊ณตํต ์ฝ๋ ์ค๊ณ์ ๋น์ฆ๋์ค ์ค๊ณ์ ์ฐจ์ด
- ์ ๋ฆฌ
3. ๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ
- ๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ๊ฐ ํ์ํ ์ด์
- ์ธ์ ๋ฆฌ์คํธ ๋ชจ๋ธ
- ๊ณ์ธต ๊ตฌ์กฐ ์กฐํ์ ์ด๋ ค์
- CTE์ ์ฌ๊ท ์ฟผ๋ฆฌ 1
- CTE์ ์ฌ๊ท ์ฟผ๋ฆฌ 2
- ํ์ ํ ์ด๋ธ ๋ชจ๋ธ 1
- ํ์ ํ ์ด๋ธ ๋ชจ๋ธ 2
- ์ ๋ฆฌ
4. ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ ์ค๊ณ1
- ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ ์ค๊ณ๊ฐ ํ์ํ ์ด์
- ๋ณ๊ฒฝ ์ถ์ ์ปฌ๋ผ - ๊ธฐ๋ณธ
- ๋ณ๊ฒฝ ์ถ์ ์ปฌ๋ผ - ๋ณ๊ฒฝ ์ฌ์
- ๋ณ๊ฒฝ ์ถ์ ์ปฌ๋ผ - ๊ฐ์ฌ(Audit) ์ปฌ๋ผ
- ์ ๋ฆฌ
5. ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ ์ค๊ณ2
- ์ปฌ๋ผ์ ์ด์ ๊ฐ ๋ณด๊ด ๋ฐฉ์
- ํ์ฌ ํ ์ด๋ธ๋ก ์ด๋ ฅ ๊ด๋ฆฌ - ์์
- ํ์ฌ ํ ์ด๋ธ๋ก ์ด๋ ฅ ๊ด๋ฆฌ - ๋จ์ 1
- ํ์ฌ ํ ์ด๋ธ๋ก ์ด๋ ฅ ๊ด๋ฆฌ - ๋จ์ 2
- ํ์ฌ ํ ์ด๋ธ๋ก ์ด๋ ฅ ๊ด๋ฆฌ - ์ ํจ ๊ธฐ๊ฐ
- ์ ์ฒด ํ ์ค๋ ์ท ์ด๋ ฅ ํ ์ด๋ธ - ์์
- ์ ์ฒด ํ ์ค๋ ์ท ์ด๋ ฅ ํ ์ด๋ธ - ์ฃผ์์
- ์ ์ฒด ํ ์ค๋ ์ท ์ด๋ ฅ ํ ์ด๋ธ - ์ ํจ ๊ธฐ๊ฐ
- ์ ์ฒด ํ ์ค๋ ์ท ์ด๋ ฅ ํ ์ด๋ธ - ํ๊ณ
- ์ปฌ๋ผ ๋จ์ ๋ณ๊ฒฝ ๋ก๊ทธ ํ ์ด๋ธ
- ๊ณตํต ์ด๋ ฅ ํ ์ด๋ธ
- ์ ๋ฆฌ
6. SOFT DELETE
- SOFT DELETE๊ฐ ํ์ํ ์ด์
- SOFT DELETE - is_deleted ์ปฌ๋ผ ๋ฐฉ์
- SOFT DELETE - deleted_at ์ปฌ๋ผ ๋ฐฉ์ 1
- SOFT DELETE - deleted_at ์ปฌ๋ผ ๋ฐฉ์ 2
- SOFT DELETE vs HARD DELETE
- SOFT vs HARD vs STATUS
- SOFT DELETE์ ์ด๋ ฅ ํ ์ด๋ธ
- SOFT DELETE์ ์ธ๋ฑ์ค ์ค๊ณ
- ์ ๋ฆฌ
7. ํต๊ณ ํ ์ด๋ธ ์ค๊ณ
- ํต๊ณ ๋ฐ์ดํฐ์ ์ฑ๋ฅ ๋ฌธ์
- ํต๊ณ ํ ์ด๋ธ ์ค๊ณ
- ์ฃผ๊ฐ, ์๊ฐ ํต๊ณ์ ํจ์จ์ ์ธ ์ฒ๋ฆฌ
- ์ค์๊ฐ ํต๊ณ์ ํ์ด๋ธ๋ฆฌ๋ ์ค๊ณ
- ๋ฉฑ๋ฑ์ฑ ์ค๊ณ
- ๋ง์ดํฌ๋ก ๋ฐฐ์น
- UPSERT ์ต์ ํ
- ์ ๋ฆฌ
8. ์์ ๊ด๊ณ ์ค๊ณ
- ์์ ๊ด๊ณ ์ค๊ณ - ๋ฌธ์ ์ํฉ
- ๊ตฌํ ํด๋์ค๋ง๋ค ํ ์ด๋ธ ์ ๋ต
- ๊ตฌํ ํด๋์ค๋ง๋ค ํ ์ด๋ธ ์ ๋ต์ ์ฅ๋จ์
- ๋จ์ผ ํ ์ด๋ธ ์ ๋ต
- ๋จ์ผ ํ ์ด๋ธ ์ ๋ต์ ์ฅ๋จ์
- ์กฐ์ธ ์ ๋ต
- ์กฐ์ธ ์ ๋ต์ ์ฅ๋จ์
- ์ ๋ฆฌ
9. ๋์ ์ค๊ณ - EAV
- EAV ์ค๊ณ - ๊ธฐ์กด ๋ฐฉ์์ ํ๊ณ์ ์๋ก์ด ์ ๊ทผ๋ฒ
- EAV ํจํด ์๊ฐ
- EAV ์ค์ต - ์ผํ๋ชฐ ์ํ ์์ฑ ๊ด๋ฆฌ
- EAV ํจํด ๊ฐ์ - ์์ฑ ์ ์ ํ ์ด๋ธ
- EAV์ ์ฅ๋จ์ ๊ณผ ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
- EAV ์ค๋ฌด ํ์ฉ ์ฌ๋ก
- ์ ๋ฆฌ
10. JSON ์ค๊ณ
- EAV์ ํ๊ณ์ JSON์ ํ์์ฑ
- JSON ๋ฌธ๋ฒ
- MySQL์์ JSON ์ฌ์ฉํ๊ธฐ 1
- MySQL์์ JSON ์ฌ์ฉํ๊ธฐ 2
- JSON ํ์ฉ - ๋ค์ํ ์ค๋ฌด ์ฌ๋ก 1
- JSON ํ์ฉ - ๋ค์ํ ์ค๋ฌด ์ฌ๋ก 2
- JSON ์ธ๋ฑ์ค์ ์ฑ๋ฅ ์ต์ ํ 1
- JSON ์ธ๋ฑ์ค์ ์ฑ๋ฅ ์ต์ ํ 2
- JSON ์ค๊ณ์ ์ฅ๋จ์ ๊ณผ ํ๊ณ
- JSON ์ฌ์ฉ ๊ฐ์ด๋๋ผ์ธ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค vs NoSQL
- ์ ๋ฆฌ
์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ
๋๋์ด <๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 2ํธ: ์ค๋ฌด์์ ๋ฐ๋์ ๋ง์ฃผ์น๋ 9๊ฐ์ง ์ค๊ณ ํจํด> ๊ฐ์๊ฐ ์คํ ์ค๋น ๋ง๋ฐ์ง์ ๋ค์ด๊ฐ์ต๋๋ค. ์ด๋ฒ ๊ฐ์๋ ์ค๋ 1์ 28์ผ์์ 31์ผ ์ฌ์ด์ ์ ์ ์ถ์๋ ์์ ์ ๋๋ค.
์ค๋ฌด์์ ํ์ฐ์ ์ผ๋ก ๋ง์ฃผํ๊ฒ ๋๋ 9๊ฐ์ง ํต์ฌ ํจํด์ ํตํด ์ต์ ์ ์ค๋ฌด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ๋ฐฉ๋ฒ์ ์ตํ๊ณ , ์ด๋ค ์ํฉ์์๋ ์์ ์๊ฒ ์ค๊ณ๋ฅผ ์ฃผ๋ํ๋ ์ง์ ํ ์ ๋ฌธ๊ฐ๋ก ๊ฑฐ๋ญ๋์ค ์ ์๋๋ก ๋๊ฒ ์ต๋๋ค.
<๊ฐ์ ๋ด์ฉ>
์ ๋ชฉ: ๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ์ค๊ณ 2ํธ, ์ค๋ฌด์์ ๋ฐ๋์ ๋ง์ฃผ์น๋ 9๊ฐ์ง ์ค๊ณ ํจํด
์ค๊ณ 1ํธ์์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ์ ์์ ๋ค์ก๋ค๋ฉด, ์ด์ ๋ ํ์ ์์ ๋ฐ๋์ ๋ง์ฃผ์น๊ฒ ๋๋ ๋ณต์กํ๊ณ ๊น๋ค๋ก์ด ์๊ตฌ์ฌํญ๋ค์ ํด๊ฒฐํด์ผ ํ ๋์ ๋๋ค.
์ค์ ํ๋ก์ ํธ ์ค๊ณ๋ฅผ ์์ํ๋ฉด, ์ฐ๋ฆฌ๋ ํ์ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ ๋์ ๋ค๊ณผ ๋ง์ฃผํ๊ฒ ๋ฉ๋๋ค.
๊ณตํต ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํด์ผ ํ ๊น?
'๋ฌดํ ๊ณ์ธต ๊ตฌ์กฐ์ ์นดํ ๊ณ ๋ฆฌ, ์ด๋ป๊ฒ ์ค๊ณํด์ผ ์กฐํ ์ฑ๋ฅ์ ๋ง์น์ง ์์๊น?'
'๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ, ๋๋์ฒด ์ด๋ค ๋ฐฉ์์ผ๋ก ๋จ๊ฒจ์ผ ์ต์ ์ผ๊น?'
'ํ์์ด ํํดํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ก ์ง์๋ ๋ ๊น? ์๋๋ฉด ๋จ๊ฒจ๋ฌ์ผ ํ๋?'
'ํต๊ณ ์ฟผ๋ฆฌ๋ง ๋๋ฆฌ๋ฉด DB๊ฐ ๋๋ ค์ง๋๋ฐ, ์ด๋ป๊ฒ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํด์ผ ํ ๊น?'
'์ํ๋ง๋ค ์ ๊ฐ๊ฐ์ธ ์๋ง์ ์ต์ ๊ฐ๋ค์ ์ด๋ป๊ฒ ์ ์ฅํด์ผ ํ์ง?'
'์์ฆ ๋ง์ด ์ด๋ค๋ JSON, ๊ด๊ณํ DB์๋ ์ด๋ป๊ฒ ๋ น์ฌ๋ด๋ ๊ฒ ์ข์๊น?'
"๋๋๊ฒ๋ ์ค๋ฌด์์ ๊ฒช๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฌธ์ ๋ ๋๋ถ๋ถ ๋น์ทํฉ๋๋ค. ๋ณต์กํด ๋ณด์ด๋ ์ค๋ฌด์ ๋์ ๋ค๋ ๊ฒฐ๊ตญ 9๊ฐ์ง ํต์ฌ ์ ํ์ผ๋ก ๊ท๊ฒฐ๋ฉ๋๋ค.
์ด ๊ฐ์๋ ๋ฐ๋ก ์ด๋ฐ ๊ณ ๋ฏผ๋ค์ ๋ํ ๋ช ์พํ ํด๋ต์ ๋๋ฆฝ๋๋ค.
์ด๋ฒ ๊ฐ์์์๋ ์๋ง์ ํ๋ก์ ํธ๋ฅผ ๊ฑฐ์น๋ฉฐ ์ฒ ์ ํ ๊ฒ์ฆ๋ ์ ์ ์ค์ ์ค๊ณ ๋ ธํ์ฐ๋ฅผ ์๋์์ด ๊ณต๊ฐํฉ๋๋ค. ๋ง๋งํ๋ ๋ฌธ์ ๋ค์ 9๊ฐ์ง ํด๋ฒ์ผ๋ก ์ ์ ํจ๊ป ์์ ๋ฅผ ํตํด ํ๋์ฉ ์ ๋ณตํด ๋ด ์๋ค.
์ด ๊ฐ์๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ ์ค๋ฌด ํ์ฅ์์ ๋ฐ๋ก ์ฌ์ฉํ๊ฒ ๋ '9๊ฐ์ง ํต์ฌ ์ค๊ณ ํจํด'์ ์๋ฒฝํ๊ฒ ๋ง์คํฐํ๊ฒ ๋ฉ๋๋ค.
๊ณตํต ์ฝ๋ ์ค๊ณ: ์์คํ ์ ํ์ค๊ณผ ํ์ฅ์ ์ฑ ์์ง๋ ๊ฒฌ๊ณ ํ ์ฝ๋ ๊ด๋ฆฌ ์ฒด๊ณ
๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ: ์นดํ ๊ณ ๋ฆฌ, ์กฐ์ง๋ ๊ฐ์ ๋ณต์กํ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ชจ๋ธ๋ง
๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ถ์ : ๋๊ฐ, ์ธ์ , ๋ฌด์์ ๋ณ๊ฒฝํ๋์ง ๊ธฐ๋กํ๋ ์ ๋ต
๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ: ๋ฐ์ดํฐ์ ๊ณผ๊ฑฐ ์ํ๋ฅผ ๋ณด์กดํ๊ณ ์์ ๋ณ๋ก ์กฐํํ๋ ์ด๋ ฅ ๊ด๋ฆฌ ํจํด
SOFT DELETE: ๋ฐ์ดํฐ์ ๋ณต๊ตฌ ๊ฐ๋ฅ์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๋ ผ๋ฆฌ์ ์ญ์ ๊ธฐ๋ฒ
ํต๊ณ ํ ์ด๋ธ ์ค๊ณ: ๋์ฉ๋ ๋ฐ์ดํฐ ํ๊ฒฝ์์๋ ์ฑ๋ฅ ์ ํ ์๋ ๊ณ ์ ์ง๊ณ ์ ๋ต
์์ ๊ด๊ณ ์ค๊ณ: ๋ถ๋ชจ, ์์ ๊ตฌ์กฐ๋ฅผ ๊ด๊ณํ DB์์ ์ฌ์ฉํ๋ ์ ๋ต
๋์ ์ค๊ณ (EAV):์ํ ์ต์ ์ฒ๋ผ ์์๋ก ๋ณํ๋ ์์ฑ์ ์ ์ฐํ๊ฒ ์์ฉํ๋ ์ค๊ณ
JSON ๋ฐ์ดํฐ ์ค๊ณ: NoSQL์ ์ ์ฐํจ์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ น์ฌ๋ด๋ ํ๋์ ์ธ ์ค๊ณ ๊ธฐ๋ฒ
์ฌ๊ธฐ์ ๋ํด, ๋จ์ํ ์ด๋ก ์ ๋์ดํ๋ ๊ฒ์ ๋์ด ๊ฐ ํจํด์ ํ์คํ ์ฅ๋จ์ ๊ณผ ์ค๋ฌด ์ ํ ๊ธฐ์ค์ ๋ฌผ๋ก , ์ฑ๋ฅ ์ต์ ํ ๊ธฐ๋ฒ๊น์ง ์ค๋ฌด์ ํ์ํ ๋ชจ๋ ๋ ธํ์ฐ๋ฅผ ๋ด์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก "์ค๋ฌด ์ค๊ณ๋ ์ ํด์ง ์ ๋ต์ ์ฐพ๋ ๊ฒ์ด ์๋๋ผ, ์ํฉ์ ๋ง๋ ์ต์ ์ ํธ๋ ์ด๋์คํ(Trade-off)๋ฅผ ์ ํํ๋ ๊ณผ์ ์ ๋๋ค. ์ด ๊ฐ์๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ ์์ผ๋ฅผ ์ง์ง ์ค๋ฌด ๋ ๋ฒจ๋ก ๋์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ด๋ค ํ๋ก์ ํธ๋ฅผ ๋ง์ฃผํ๋๋ผ๋, ์ฃผ์ ์์ด ์์ ์๊ฒ ์ค๊ณํ ์ ์๋ ์ง์ ํ ์ค๊ณ ์ ๋ฌธ๊ฐ๋ก ๋ง๋ค์ด ๋ค์ด๋๋ฆฌ๊ฒ ์ต๋๋ค."
์ ์ ์ ๋ง์ ์ค์ ๊ฒฝํ๊ณผ ์ค๋ ๊ณ ๋ฏผ์ ๊ฒฐ๊ณผ๋ฅผ ์ด ๊ฐ์์ ๋ด์์ต๋๋ค.
์ฌ๋ฌ๋ถ๊ป ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค.
<์ ์ฒด ํ์ต ๋ชฉ์ฐจ>
1. ๊ฐ์ ์๊ฐ์ ์์ ์๋ฃ
2. ๊ณตํต ์ฝ๋ ์ค๊ณ
- ๊ณตํต ์ฝ๋๊ฐ ํ์ํ ์ด์
- ๊ณตํต ์ฝ๋ ํ ์ด๋ธ ์ค๊ณ
- ๊ณตํต ์ฝ๋๋ฅผ ๋ ๋ฒ์ฉ์ฑ ์๊ฒ - ๊ทธ๋ฃนํ ์ค๊ณ
- ๊ณตํต ์ฝ๋์ ์ถ๊ฐ ์์ฑ
- ๊ณตํต ์ฝ๋์ ๋จ์
- ๊ณตํต ์ฝ๋์ ๋จ์ ํด๊ฒฐ ๋ฐฉ์1
- ๊ณตํต ์ฝ๋์ ๋จ์ ํด๊ฒฐ ๋ฐฉ์2
- ๊ณตํต ์ฝ๋ vs ์ ํ๋ฆฌ์ผ์ด์ ENUM 1
- ๊ณตํต ์ฝ๋ vs ์ ํ๋ฆฌ์ผ์ด์ ENUM 2
- ๊ณตํต ์ฝ๋ vs ์ ํ๋ฆฌ์ผ์ด์ ENUM 3
- ๊ณตํต ์ฝ๋ ์ค๊ณ์ ๋น์ฆ๋์ค ์ค๊ณ์ ์ฐจ์ด
- ์ ๋ฆฌ3. ๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ
- ๊ณ์ธต ๊ตฌ์กฐ ์ค๊ณ๊ฐ ํ์ํ ์ด์
- ์ธ์ ๋ฆฌ์คํธ ๋ชจ๋ธ
- ๊ณ์ธต ๊ตฌ์กฐ ์กฐํ์ ์ด๋ ค์
- CTE์ ์ฌ๊ท ์ฟผ๋ฆฌ 1
- CTE์ ์ฌ๊ท ์ฟผ๋ฆฌ 2
- ํ์ ํ ์ด๋ธ ๋ชจ๋ธ 1
- ํ์ ํ ์ด๋ธ ๋ชจ๋ธ 2
- ์ ๋ฆฌ4. ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ ์ค๊ณ1
- ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ ์ค๊ณ๊ฐ ํ์ํ ์ด์
- ๋ณ๊ฒฝ ์ถ์ ์ปฌ๋ผ - ๊ธฐ๋ณธ
- ๋ณ๊ฒฝ ์ถ์ ์ปฌ๋ผ - ๋ณ๊ฒฝ ์ฌ์
- ๋ณ๊ฒฝ ์ถ์ ์ปฌ๋ผ - ๊ฐ์ฌ(Audit) ์ปฌ๋ผ
- ์ ๋ฆฌ5. ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ด๋ ฅ ์ค๊ณ2
- ์ปฌ๋ผ์ ์ด์ ๊ฐ ๋ณด๊ด ๋ฐฉ์
- ํ์ฌ ํ ์ด๋ธ๋ก ์ด๋ ฅ ๊ด๋ฆฌ - ์์
- ํ์ฌ ํ ์ด๋ธ๋ก ์ด๋ ฅ ๊ด๋ฆฌ - ๋จ์ 1
- ํ์ฌ ํ ์ด๋ธ๋ก ์ด๋ ฅ ๊ด๋ฆฌ - ๋จ์ 2
- ํ์ฌ ํ ์ด๋ธ๋ก ์ด๋ ฅ ๊ด๋ฆฌ - ์ ํจ ๊ธฐ๊ฐ
- ์ ์ฒด ํ ์ค๋ ์ท ์ด๋ ฅ ํ ์ด๋ธ - ์์
- ์ ์ฒด ํ ์ค๋ ์ท ์ด๋ ฅ ํ ์ด๋ธ - ์ฃผ์์
- ์ ์ฒด ํ ์ค๋ ์ท ์ด๋ ฅ ํ ์ด๋ธ - ์ ํจ ๊ธฐ๊ฐ
- ์ ์ฒด ํ ์ค๋ ์ท ์ด๋ ฅ ํ ์ด๋ธ - ํ๊ณ
- ์ปฌ๋ผ ๋จ์ ๋ณ๊ฒฝ ๋ก๊ทธ ํ ์ด๋ธ
- ๊ณตํต ์ด๋ ฅ ํ ์ด๋ธ
- ์ ๋ฆฌ6. SOFT DELETE
- SOFT DELETE๊ฐ ํ์ํ ์ด์
- SOFT DELETE - is_deleted ์ปฌ๋ผ ๋ฐฉ์
- SOFT DELETE - deleted_at ์ปฌ๋ผ ๋ฐฉ์ 1
- SOFT DELETE - deleted_at ์ปฌ๋ผ ๋ฐฉ์ 2
- SOFT DELETE vs HARD DELETE
- SOFT vs HARD vs STATUS
- SOFT DELETE์ ์ด๋ ฅ ํ ์ด๋ธ
- SOFT DELETE์ ์ธ๋ฑ์ค ์ค๊ณ
- ์ ๋ฆฌ7. ํต๊ณ ํ ์ด๋ธ ์ค๊ณ
- ํต๊ณ ๋ฐ์ดํฐ์ ์ฑ๋ฅ ๋ฌธ์
- ํต๊ณ ํ ์ด๋ธ ์ค๊ณ
- ์ฃผ๊ฐ, ์๊ฐ ํต๊ณ์ ํจ์จ์ ์ธ ์ฒ๋ฆฌ
- ์ค์๊ฐ ํต๊ณ์ ํ์ด๋ธ๋ฆฌ๋ ์ค๊ณ
- ๋ฉฑ๋ฑ์ฑ ์ค๊ณ
- ๋ง์ดํฌ๋ก ๋ฐฐ์น
- UPSERT ์ต์ ํ
- ์ ๋ฆฌ8. ์์ ๊ด๊ณ ์ค๊ณ
- ์์ ๊ด๊ณ ์ค๊ณ - ๋ฌธ์ ์ํฉ
- ๊ตฌํ ํด๋์ค๋ง๋ค ํ ์ด๋ธ ์ ๋ต
- ๊ตฌํ ํด๋์ค๋ง๋ค ํ ์ด๋ธ ์ ๋ต์ ์ฅ๋จ์
- ๋จ์ผ ํ ์ด๋ธ ์ ๋ต
- ๋จ์ผ ํ ์ด๋ธ ์ ๋ต์ ์ฅ๋จ์
- ์กฐ์ธ ์ ๋ต
- ์กฐ์ธ ์ ๋ต์ ์ฅ๋จ์
- ์ ๋ฆฌ9. ๋์ ์ค๊ณ - EAV
- EAV ์ค๊ณ - ๊ธฐ์กด ๋ฐฉ์์ ํ๊ณ์ ์๋ก์ด ์ ๊ทผ๋ฒ
- EAV ํจํด ์๊ฐ
- EAV ์ค์ต - ์ผํ๋ชฐ ์ํ ์์ฑ ๊ด๋ฆฌ
- EAV ํจํด ๊ฐ์ - ์์ฑ ์ ์ ํ ์ด๋ธ
- EAV์ ์ฅ๋จ์ ๊ณผ ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
- EAV ์ค๋ฌด ํ์ฉ ์ฌ๋ก
- ์ ๋ฆฌ10. JSON ์ค๊ณ
- EAV์ ํ๊ณ์ JSON์ ํ์์ฑ
- JSON ๋ฌธ๋ฒ
- MySQL์์ JSON ์ฌ์ฉํ๊ธฐ 1
- MySQL์์ JSON ์ฌ์ฉํ๊ธฐ 2
- JSON ํ์ฉ - ๋ค์ํ ์ค๋ฌด ์ฌ๋ก 1
- JSON ํ์ฉ - ๋ค์ํ ์ค๋ฌด ์ฌ๋ก 2
- JSON ์ธ๋ฑ์ค์ ์ฑ๋ฅ ์ต์ ํ 1
- JSON ์ธ๋ฑ์ค์ ์ฑ๋ฅ ์ต์ ํ 2
- JSON ์ค๊ณ์ ์ฅ๋จ์ ๊ณผ ํ๊ณ
- JSON ์ฌ์ฉ ๊ฐ์ด๋๋ผ์ธ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค vs NoSQL
- ์ ๋ฆฌ์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 1ํธ ๊ฐ์๊ฐ ๋๋์ด ์คํ ํ์ต๋๋ค.์คํ ๊ธฐ๋ ์ผ๋ก ์ ์ ๋ชจ๋ ๊ฐ์๋ฅผ 30% ํ ์ธํฉ๋๋ค ๐
์ ๋ชฉ: ๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 1ํธ โ ํ๋์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์์ ์ ๋ณต
๊ฐ์ ์: 83๊ฐ
๊ฐ์ ์๊ฐ: 16์๊ฐ 11๋ถ
๊ฐ์ PDF ์๋ฃ: ์ฝ 400์ฅ
๋งํฌ: https://inf.run/SEdxb
[๊ฐ์ ์๊ฐ]
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฐ์ ๋๋ค.
ํ์ง๋ง, ์ ๋๋ก ์ค๊ณํ์ง ๋ชปํ๋ฉด ํ๋ก์ ํธ๋ ๊ธ๋ฐฉ ํ๊ณ์ ๋ถ๋ชํ๊ณ , ์ ์ง๋ณด์๋ ์ง์ฅ์ด ๋ฉ๋๋ค.์ด๋ฒ ๊ฐ์๋ ๋จ์ํ ํ ์ด๋ธ์ ๋ง๋๋ ๋ฒ์ด ์๋๋ผ, ์ค๋ฌด์์ ํตํ๋ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ๋ฐฉ๋ฒ์ ์ฒด๊ณ์ ์ผ๋ก ์๋ ค๋๋ฆฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ ์ ๋ง์ ์ค์ ๊ฒฝํ๊ณผ ์ค๋ ๊ณ ๋ฏผ์ ๊ฒฐ๊ณผ๋ฅผ ์ด ๊ฐ์์ ๋ด์์ต๋๋ค.
[๊ฐ์ ํต์ฌ ํฌ์ธํธ]
๊ฐ๋ ์ โ ๋ ผ๋ฆฌ์ โ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง
3๋จ๊ณ ์ ๊ทผ์ผ๋ก DB ์ค๊ณ๋ฅผ ์์ ์ ๋ณตํฉ๋๋ค.์ค๋ฌด์ ๋ฐ๋ก ์ฐ๋ ์ค๊ณ ๋ ธํ์ฐ
์ด๋ก ์๋ง ๋จธ๋ฌด๋ฅด์ง ์๊ณ , ์ผํ๋ชฐ ํ๋ก์ ํธ๋ฅผ ์์ ๋ก ํ์ฉํฉ๋๋ค.์๋ชป๋ ์ค๊ณ์ ํจ์ ํผํ๊ธฐ
์ ERD๊ฐ ์ค์ํ์ง, ์ ์ ๊ทํ๊ฐ ํ์ํ์ง, ๊ทธ๋ฆฌ๊ณ ์ธ์ ์ญ์ ๊ทํ๋ฅผ ํด์ผ ํ๋์ง ์ค์ต์ ํตํด ๊นจ๋ซ๊ฒ ๋ฉ๋๋ค.ํค์ ๊ด๊ณ ์ค๊ณ์ ๋ณธ์ง
์์ฐ ํค vs ๋๋ฆฌ ํค, ์ผ๋์ผยท์ผ๋๋คยท๋ค๋๋ค ๊ด๊ณ, ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ๊น์ง ๊น๊ฒ ๋ค๋ฃน๋๋ค.์ต์ DB ์ค๊ณ ํธ๋ ๋ ๋ฐ์
์์ญ ๋ ์ ๊ต๊ณผ์์ ๋จธ๋ฌด๋ฅด์ง ์๊ณ , ํ๋์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ๋ก ์ ์ ์ํฉ๋๋ค.[๋ฐฐ์ฐ๊ฒ ๋ ๊ฒ๋ค]
์๊ตฌ์ฌํญ ๋ถ์๊ณผ ํต์ฌ ์ํฐํฐ ๋์ถ
ERD ์์ฑ ๋ฐ ์ฉ์ด ์ฌ์ ๊ด๋ฆฌ
์ ๊ทํ(1NF ~ BCNF)์ ๊ทธ ํ๊ณ
์ธ๋ฑ์ค์ ์ฑ๋ฅ ๊ณ ๋ คํ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง
์ผํ๋ชฐ ํ๋ก์ ํธ ์ ์ฒด DB ์ค๊ณ ์ค์ต
[๊ฐ์ ๋์]
๊ฐ๋ฐ์: ์ฝ๋ ์ง๊ธฐ ์ ์ ์ ๋๋ก ๋ DB๋ฅผ ์ค๊ณํ๊ณ ์ถ์ ๋ถ
๊ธฐํ์/๋ถ์๊ฐ: ๋ฐ์ดํฐ ํ๋ฆ๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ์ดํดํ๊ณ ์ถ์ ๋ถ
์ทจ์ ์ค๋น์: ๋ฉด์ ์์ ์ฐจ๋ณํ๋ DB ์ค๊ณ ์ญ๋์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ถ
์ฃผ๋์ด ๊ฐ๋ฐ์: ์ค๋ฌด์์ ๋ฐ๋ก ์ธ ์ ์๋ ์ค๊ณ ์์น์ ๋ฐฐ์ฐ๊ณ ์ถ์ ๋ถ
์๋์ด ๊ฐ๋ฐ์/๋ฆฌ๋: ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ํ์ง์ ๋์ด์ฌ๋ฆฌ๊ณ ์ถ์ ๋ถ
[๊ฐ์ ์ ์ฒด ๋ชฉ์ฐจ]
1. ๊ฐ์ ์๊ฐ์ ์์ ์๋ฃ
* 1-A. ์๋์ฐ - MySQL ์ค์น ์๋ด
* 1-B. macOS - ์ค์น ์๋ด
2. ์ค๊ณ์ ์ค์์ฑ
* ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ์ฒซ๊ฑธ์
* ์๋ชป๋ ์ค๊ณ๊ฐ ๋ถ๋ฅด๋ ์ฌ์
* ์ค๊ณ์ 3๋จ๊ณ - ๊ฐ๋ , ๋ ผ๋ฆฌ, ๋ฌผ๋ฆฌ
* ์ ๋ฆฌ
3. ๊ฐ๋ ์ ๋ชจ๋ธ๋ง
* ์๊ตฌ ์ฌํญ ๋ถ์๊ณผ ํต์ฌ ์์ ์๋ณ
* ์ํฐํฐ๋?
* ์ํฐํฐ ๋ถ๋ฅ1
* ์ํฐํฐ ๋ถ๋ฅ2
* ์์ฑ๊ณผ ์๋ณ์
* ์นด๋๋๋ฆฌํฐ์ ์ฐธ์ฌ๋
* ERD ์์ฑํ๊ธฐ
* ์ฐ๊ด ์ํฐํฐ - ๋ค๋๋ค ๊ด๊ณ ํด๊ฒฐ
* ์ฉ์ด ์ฌ์
* ์ ๋ฆฌ
4. ๊ฐ๋ ์ ๋ชจ๋ธ๋ง - ์ค์ต
* ์ค์ ์๊ตฌ ์ฌํญ ๋ถ์
* ์ค์ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง - ์์
* ์ค์ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง - ERD ์์ฑ
* ์ค์ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง - ์ฉ์ด ์ฌ์ ์์ฑ
* ์ ๋ฆฌ
5. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง1 - ํค
* ๋ค์ํ ์ข ๋ฅ์ ํค
* ์์ฐ ํค vs ๋๋ฆฌ ํค1 - ์์ฐ ํค
* ์์ฐ ํค vs ๋๋ฆฌ ํค2 - ๋๋ฆฌ ํค
* ์์ฐ ํค vs ๋๋ฆฌ ํค3 - ์ฑ๋ฅ ํธ๋ ์ด๋ ์คํ
* ์์ฐ ํค vs ๋๋ฆฌ ํค4 - ํ๋์ ์ธ ์ค๊ณ
* ๋ณตํฉํค ์ค๊ณ
* ๋ค๋๋ค ๊ด๊ณ์ ๋ณตํฉํค
* ์ ๋ฆฌ
6. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง2 - ์ฐธ์ฌ๋์ ์ผ๋๋ค ๊ด๊ณ
* ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ๊ด๊ณ
* ์ฐธ์ฌ๋
* ์ผ๋๋ค(1:N) ๋ค๋์ผ(N:1) ๊ด๊ณ - ์ธ๋ ํค ์์น1
* ์ผ๋๋ค(1:N) ๋ค๋์ผ(N:1) ๊ด๊ณ - ์ธ๋ ํค ์์น2
* ์ผ๋๋ค(1:N) ๋ค๋์ผ(N:1) ๊ด๊ณ - ์กฐ์ธ๊ณผ ๋ปฅํ๊ธฐ
* ์ ๋ฆฌ
7. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง3 - ์ผ๋์ผ, ๋ค๋๋ค ๊ด๊ณ
* ์ผ๋์ผ(1:1) ๊ด๊ณ - ์์
* ์ผ๋์ผ(1:1) ๊ด๊ณ - ์ธ๋ ํค ์์น
* ์ผ๋์ผ(1:1) ๊ด๊ณ - [์ค์ต] ๊ด๊ณ ํ์ฅ์ ์ ์ฐ์ฑ
* ์ผ๋์ผ(1:1) ๊ด๊ณ - ์ฃผ ํ ์ด๋ธ์ FK
* ๋ค๋๋ค(M:N) ๊ด๊ณ - ๊ด๊ณํ ๋ชจ๋ธ์ ํ๊ณ
* ๋ค๋๋ค(M:N) ๊ด๊ณ - ์ฐ๊ฒฐ ํ ์ด๋ธ
* ๋ค๋๋ค(M:N) ๊ด๊ณ - ์์ฑ
* ๋ค๋๋ค(M:N) ๊ด๊ณ - ๊ฐ๋ ์ , ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง
* ์ ๋ฆฌ
8. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง4 - ์๋ณ ๊ด๊ณ, ๋น์๋ณ ๊ด๊ณ
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ๊ฐ๋
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ์ผ๋๋ค(1:N)
* ์๋ณ ๊ด๊ณ์ ๋ฌธ์ ์
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - SQL ์ฟผ๋ฆฌ, ์ฑ๋ฅ
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ์ผ๋์ผ(1:1)
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ๋ค๋๋ค(M:N) 1
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ๋ค๋๋ค(M:N) 2
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ํ๋์ ์ธ ์ค๊ณ ํธ๋ ๋
* ์ ๋ฆฌ
9. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ์ค์ต
* ์ค์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ์์
* ์ค์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ERD ์์ฑ
10. ์ ๊ทํ
* ์ ๊ทํ - ์์
* ์ 1 ์ ๊ทํ
* ์ 2 ์ ๊ทํ
* ์ 3 ์ ๊ทํ
* BCNF ์ ๊ทํ
* ์ค๋ฌด์ ์ ๊ทํ
* ์ ๋ฆฌ
11. ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง
* ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง ๊ฐ์
* ํ ์ด๋ธ๊ณผ ์ปฌ๋ผ ๋ณํ ๊ท์น1 - ๊ธฐ๋ณธ ๊ท์น
* ํ ์ด๋ธ๊ณผ ์ปฌ๋ผ ๋ณํ ๊ท์น2 - ์ถ์ฝ์ด์ ๋จ์ ๋ณต์
* ๋ฐ์ดํฐ ํ์ 1 - ๋ฌธ์, ์ซ์, PK ํ์
* ๋ฐ์ดํฐ ํ์ 2 - ๋ ์ง์ ์๊ฐ ํ์
* ์ญ์ ๊ทํ
* ํ ์ด๋ธ ์ ์์
* ์ ๋ฆฌ
12. ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ์ค์ต
* ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ์ค์ต ์์
* ์ธ๋ฑ์ค ์ค๊ณ - ์ค์ต
* ์ญ์ ๊ทํ - ์ค์ต
* ์ผํ๋ชฐ ํ ์ด๋ธ ์ ์์
* ์ผํ๋ชฐ DDL๊ณผ DB ๋ง๋ค๊ธฐ
* ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ - ERD ์๋ ์์ฑ
* ์ผํ๋ชฐ ๊ธฐ๋ฅ ํ์ธ1
* ์ผํ๋ชฐ ๊ธฐ๋ฅ ํ์ธ2
* ์ ๋ฆฌ
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 1ํธ ๊ฐ์๊ฐ ๋๋์ด ์คํ ์ค๋น์ ๋ค์ด๊ฐ์ต๋๋ค.์ด๋ฒ์ ์ถ์ํ ์ค๊ณ 1ํธ์ 9์ 16์ผ ~ 9์ 19์ผ ์ฌ์ด์ ์ถ์ ์์ ์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋งต - ๊ฐ์ ์ถ์ ์์ ์ผ์
์ค๊ณ 1ํธ โ ํ๋์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์์ ์ ๋ณต - 9์ ์ค์ ์ถ์ ์์
์ค๊ณ 2ํธ - ์ค๋ฌด ์ค๊ณ ํจํด๊ณผ ํ์ฉ ๊ธฐ๋ฒ ๋ง์คํฐ - 2025๋ ์ฐ๋ง ์ถ์ ์์
์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ ๊ธฐ๋ฅํธ - 2026๋ ์ฐ์ด ์ถ์ ์์
์ ๋ชฉ: ๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 1ํธ โ ํ๋์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ์์ ์ ๋ณต
๊ฐ์ ์: 83๊ฐ
๊ฐ์ ์๊ฐ: 16์๊ฐ 11๋ถ
๊ฐ์ PDF ์๋ฃ: ์ฝ 400์ฅ
๊ฐ์ ์๊ฐ
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฐ์ ๋๋ค.
ํ์ง๋ง, ์ ๋๋ก ์ค๊ณํ์ง ๋ชปํ๋ฉด ํ๋ก์ ํธ๋ ๊ธ๋ฐฉ ํ๊ณ์ ๋ถ๋ชํ๊ณ , ์ ์ง๋ณด์๋ ์ง์ฅ์ด ๋ฉ๋๋ค.์ด๋ฒ ๊ฐ์๋ ๋จ์ํ ํ ์ด๋ธ์ ๋ง๋๋ ๋ฒ์ด ์๋๋ผ, ์ค๋ฌด์์ ํตํ๋ ํ๋์ ์ค๊ณ ๋ฐฉ๋ฒ์ ์ฒด๊ณ์ ์ผ๋ก ์๋ ค๋๋ฆฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ ์ ๋ง์ ์ค์ ๊ฒฝํ๊ณผ ์ค๋ ๊ณ ๋ฏผ์ ๊ฒฐ๊ณผ๋ฅผ ์ด ๊ฐ์์ ๋ด์์ต๋๋ค.
๊ฐ์ ํต์ฌ ํฌ์ธํธ
* ๊ฐ๋ ์ โ ๋ ผ๋ฆฌ์ โ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง
3๋จ๊ณ ์ ๊ทผ์ผ๋ก DB ์ค๊ณ๋ฅผ ์์ ์ ๋ณตํฉ๋๋ค.
* ์ค๋ฌด์ ๋ฐ๋ก ์ฐ๋ ์ค๊ณ ๋ ธํ์ฐ
์ด๋ก ์๋ง ๋จธ๋ฌด๋ฅด์ง ์๊ณ , ์ผํ๋ชฐ ํ๋ก์ ํธ๋ฅผ ์์ ๋ก ํ์ฉํฉ๋๋ค.
* ์๋ชป๋ ์ค๊ณ์ ํจ์ ํผํ๊ธฐ
์ ERD๊ฐ ์ค์ํ์ง, ์ ์ ๊ทํ๊ฐ ํ์ํ์ง, ๊ทธ๋ฆฌ๊ณ ์ธ์ ์ญ์ ๊ทํ๋ฅผ ํด์ผ ํ๋์ง ์ค์ต์ ํตํด ๊นจ๋ซ๊ฒ ๋ฉ๋๋ค.
* ํค์ ๊ด๊ณ ์ค๊ณ์ ๋ณธ์ง
์์ฐ ํค vs ๋๋ฆฌ ํค, ์ผ๋์ผยท์ผ๋๋คยท๋ค๋๋ค ๊ด๊ณ, ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ๊น์ง ๊น๊ฒ ๋ค๋ฃน๋๋ค.
* ์ต์ DB ์ค๊ณ ํธ๋ ๋ ๋ฐ์
์์ญ ๋ ์ ๊ต๊ณผ์์ ๋จธ๋ฌด๋ฅด์ง ์๊ณ , ํ๋์ ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง ๋ฐฉ๋ฒ๋ก ์ ์ ์ํฉ๋๋ค.
๋ฐฐ์ฐ๊ฒ ๋ ๊ฒ๋ค
์๊ตฌ์ฌํญ ๋ถ์๊ณผ ํต์ฌ ์ํฐํฐ ๋์ถ
ERD ์์ฑ ๋ฐ ์ฉ์ด ์ฌ์ ๊ด๋ฆฌ
์ ๊ทํ(1NF ~ BCNF)์ ๊ทธ ํ๊ณ
์ธ๋ฑ์ค์ ์ฑ๋ฅ ๊ณ ๋ คํ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง
์ผํ๋ชฐ ํ๋ก์ ํธ ์ ์ฒด DB ์ค๊ณ ์ค์ต
๊ฐ์ ๋์
๊ฐ๋ฐ์: ์ฝ๋ ์ง๊ธฐ ์ ์ ์ ๋๋ก ๋ DB๋ฅผ ์ค๊ณํ๊ณ ์ถ์ ๋ถ
๊ธฐํ์/๋ถ์๊ฐ: ๋ฐ์ดํฐ ํ๋ฆ๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ์ดํดํ๊ณ ์ถ์ ๋ถ
์ทจ์ ์ค๋น์: ๋ฉด์ ์์ ์ฐจ๋ณํ๋ DB ์ค๊ณ ์ญ๋์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ ๋ถ
์ฃผ๋์ด ๊ฐ๋ฐ์: ์ค๋ฌด์์ ๋ฐ๋ก ์ธ ์ ์๋ ์ค๊ณ ์์น์ ๋ฐฐ์ฐ๊ณ ์ถ์ ๋ถ
์๋์ด ๊ฐ๋ฐ์/๋ฆฌ๋: ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ํ์ง์ ๋์ด์ฌ๋ฆฌ๊ณ ์ถ์ ๋ถ
๊ฐ์ ์ ์ฒด ๋ชฉ์ฐจ
1. ๊ฐ์ ์๊ฐ์ ์์ ์๋ฃ
* 1-A. ์๋์ฐ - MySQL ์ค์น ์๋ด
* 1-B. macOS - ์ค์น ์๋ด
2. ์ค๊ณ์ ์ค์์ฑ
* ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ์ฒซ๊ฑธ์
* ์๋ชป๋ ์ค๊ณ๊ฐ ๋ถ๋ฅด๋ ์ฌ์
* ์ค๊ณ์ 3๋จ๊ณ - ๊ฐ๋ , ๋ ผ๋ฆฌ, ๋ฌผ๋ฆฌ
* ์ ๋ฆฌ
3. ๊ฐ๋ ์ ๋ชจ๋ธ๋ง
* ์๊ตฌ ์ฌํญ ๋ถ์๊ณผ ํต์ฌ ์์ ์๋ณ
* ์ํฐํฐ๋?
* ์ํฐํฐ ๋ถ๋ฅ1
* ์ํฐํฐ ๋ถ๋ฅ2
* ์์ฑ๊ณผ ์๋ณ์
* ์นด๋๋๋ฆฌํฐ์ ์ฐธ์ฌ๋
* ERD ์์ฑํ๊ธฐ
* ์ฐ๊ด ์ํฐํฐ - ๋ค๋๋ค ๊ด๊ณ ํด๊ฒฐ
* ์ฉ์ด ์ฌ์
* ์ ๋ฆฌ
4. ๊ฐ๋ ์ ๋ชจ๋ธ๋ง - ์ค์ต
* ์ค์ ์๊ตฌ ์ฌํญ ๋ถ์
* ์ค์ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง - ์์
* ์ค์ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง - ERD ์์ฑ
* ์ค์ ๊ฐ๋ ์ ๋ชจ๋ธ๋ง - ์ฉ์ด ์ฌ์ ์์ฑ
* ์ ๋ฆฌ
5. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง1 - ํค
* ๋ค์ํ ์ข ๋ฅ์ ํค
* ์์ฐ ํค vs ๋๋ฆฌ ํค1 - ์์ฐ ํค
* ์์ฐ ํค vs ๋๋ฆฌ ํค2 - ๋๋ฆฌ ํค
* ์์ฐ ํค vs ๋๋ฆฌ ํค3 - ์ฑ๋ฅ ํธ๋ ์ด๋ ์คํ
* ์์ฐ ํค vs ๋๋ฆฌ ํค4 - ํ๋์ ์ธ ์ค๊ณ
* ๋ณตํฉํค ์ค๊ณ
* ๋ค๋๋ค ๊ด๊ณ์ ๋ณตํฉํค
* ์ ๋ฆฌ
6. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง2 - ์ฐธ์ฌ๋์ ์ผ๋๋ค ๊ด๊ณ
* ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ๊ด๊ณ
* ์ฐธ์ฌ๋
* ์ผ๋๋ค(1:N) ๋ค๋์ผ(N:1) ๊ด๊ณ - ์ธ๋ ํค ์์น1
* ์ผ๋๋ค(1:N) ๋ค๋์ผ(N:1) ๊ด๊ณ - ์ธ๋ ํค ์์น2
* ์ผ๋๋ค(1:N) ๋ค๋์ผ(N:1) ๊ด๊ณ - ์กฐ์ธ๊ณผ ๋ปฅํ๊ธฐ
* ์ ๋ฆฌ
7. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง3 - ์ผ๋์ผ, ๋ค๋๋ค ๊ด๊ณ
* ์ผ๋์ผ(1:1) ๊ด๊ณ - ์์
* ์ผ๋์ผ(1:1) ๊ด๊ณ - ์ธ๋ ํค ์์น
* ์ผ๋์ผ(1:1) ๊ด๊ณ - [์ค์ต] ๊ด๊ณ ํ์ฅ์ ์ ์ฐ์ฑ
* ์ผ๋์ผ(1:1) ๊ด๊ณ - ์ฃผ ํ ์ด๋ธ์ FK
* ๋ค๋๋ค(M:N) ๊ด๊ณ - ๊ด๊ณํ ๋ชจ๋ธ์ ํ๊ณ
* ๋ค๋๋ค(M:N) ๊ด๊ณ - ์ฐ๊ฒฐ ํ ์ด๋ธ
* ๋ค๋๋ค(M:N) ๊ด๊ณ - ์์ฑ
* ๋ค๋๋ค(M:N) ๊ด๊ณ - ๊ฐ๋ ์ , ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง
* ์ ๋ฆฌ
8. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง4 - ์๋ณ ๊ด๊ณ, ๋น์๋ณ ๊ด๊ณ
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ๊ฐ๋
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ์ผ๋๋ค(1:N)
* ์๋ณ ๊ด๊ณ์ ๋ฌธ์ ์
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - SQL ์ฟผ๋ฆฌ, ์ฑ๋ฅ
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ์ผ๋์ผ(1:1)
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ๋ค๋๋ค(M:N) 1
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ๋ค๋๋ค(M:N) 2
* ์๋ณ ๊ด๊ณ vs ๋น์๋ณ ๊ด๊ณ - ํ๋์ ์ธ ์ค๊ณ ํธ๋ ๋
* ์ ๋ฆฌ
9. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ์ค์ต
* ์ค์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ์์
* ์ค์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ERD ์์ฑ
10. ์ ๊ทํ
* ์ ๊ทํ - ์์
* ์ 1 ์ ๊ทํ
* ์ 2 ์ ๊ทํ
* ์ 3 ์ ๊ทํ
* BCNF ์ ๊ทํ
* ์ค๋ฌด์ ์ ๊ทํ
* ์ ๋ฆฌ
11. ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง
* ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง ๊ฐ์
* ํ ์ด๋ธ๊ณผ ์ปฌ๋ผ ๋ณํ ๊ท์น1 - ๊ธฐ๋ณธ ๊ท์น
* ํ ์ด๋ธ๊ณผ ์ปฌ๋ผ ๋ณํ ๊ท์น2 - ์ถ์ฝ์ด์ ๋จ์ ๋ณต์
* ๋ฐ์ดํฐ ํ์ 1 - ๋ฌธ์, ์ซ์, PK ํ์
* ๋ฐ์ดํฐ ํ์ 2 - ๋ ์ง์ ์๊ฐ ํ์
* ์ญ์ ๊ทํ
* ํ ์ด๋ธ ์ ์์
* ์ ๋ฆฌ
12. ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ์ค์ต
* ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋ง - ์ค์ต ์์
* ์ธ๋ฑ์ค ์ค๊ณ - ์ค์ต
* ์ญ์ ๊ทํ - ์ค์ต
* ์ผํ๋ชฐ ํ ์ด๋ธ ์ ์์
* ์ผํ๋ชฐ DDL๊ณผ DB ๋ง๋ค๊ธฐ
* ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ - ERD ์๋ ์์ฑ
* ์ผํ๋ชฐ ๊ธฐ๋ฅ ํ์ธ1
* ์ผํ๋ชฐ ๊ธฐ๋ฅ ํ์ธ2
* ์ ๋ฆฌ
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ
๋๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธ, ๊ธฐ๋ณธํธ ๋ ๊ฐ์๊ฐ ์คํํ์ต๋๋ค.
์ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๋ฌธํ๋ ๋ถ๋ค๋ ๋ถ๋ด์์ด ๋ฐฐ์ธ ์ ์๋๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธ ๊ฐ์๋ฅผ ๋ฌด๋ฃ๋ก ์ ๊ณตํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋งต
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธ - SQL๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ (์คํ)
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ๊ธฐ๋ณธํธ (์คํ)
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ์ค๊ณํธ (2025๋ ํ๋ฐ๊ธฐ ์์ )
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ ๊ธฐ๋ฅํธ (2025๋ ํ๋ฐ๊ธฐ ์์ )
๊ฐ์ ๋์
์ฐธ๊ณ ๋ก ์ด๋ฒ ๊ฐ์๋ ๊ฐ๋ฐ์๋ฟ๋ง ์๋๋ผ ๊ธฐํ์, ๋ฐ์ดํฐ ๋ถ์๊ฐ ๋ถ๋ค๋ ๋ค์ ์ ์๋๋ก ์ฝ๊ฒ ๊ตฌ์ฑํ์ต๋๋ค.
๊ฐ๋ฐ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ด๋ฅผ ํํํ ๋ค์ง๊ณ ์ถ์ ์ฃผ๋์ด, ๋น์ ๊ณต์, ์ทจ์ ์ค๋น์
๊ธฐํ์/๋ง์ผํฐ: ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์์ฌ๊ฒฐ์ ์ด ํ์ํ ๋ถ
๋ฐ์ดํฐ ๋ถ์๊ฐ: SQL ์ญ๋์ ์๊ณ ์ถ์ ์ ๋ฌธ์
[๊ฐ๋ฐ์ ๊ด์ ์์ ๋ก๋๋งต ์๊ฐ]
๊ฐ๋ฐ์๋ผ๋ฉด ์ ์ฒด ๋ก๋๋งต์ ๋ชจ๋ ๋ฐ๋ผ์ค์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
๋ง์ ๊ฐ๋ฐ์ ๋ถ๋ค์ด ๊ณต๊ฐํ์๊ฒ ์ง๋ง, ๊ฒฐ๊ตญ ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ค๊ณ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์์ ํ์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ง์ผ๋ก๋ ๊ฒฐ์ฝ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ค์ด ๋ฐ๋ก ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ญ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ก๋๋งต์ ๊ทธ ๋๋จธ์ง ์ ๋ฐ์ ํต์ฌ ์ญ๋์ ์ฑ์์ ์ฌ๋ฌ๋ถ์ ํ ์ฐจ์ ๋์ ๊ฐ๋ฐ์๋ก ๋ง๋ค์ด ์ค ๊ฒ๋๋ค.
์ ๋ฌธํธ: ๋จผ์ , '์ ๋ฌธํธ'์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL ๊ธฐ์ด๋ฅผ ๋ค์ง๋๋ค.
๊ธฐ๋ณธํธ: ๊ธฐ๋ณธํธ์์๋ ์ฃผ๋์ด ๊ฐ๋ฐ์์๊ฒ ๋ฐ๋์ ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ค๋ฃน๋๋ค.
์กฐ์ธ, ์๋ธ์ฟผ๋ฆฌ, ์ ๋์จ, ์ผ์ด์ค ๋ฌธ์ ํตํด ์ด๋ค ๋ณต์กํ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ๋ SQL๋ก ํ์ด๋ด๋ ๋ฅ๋ ฅ์ ๊ฐ์ถ๊ฒ ๋ฉ๋๋ค.
์ธ๋ฑ์ค์ ๋์ ์๋ฆฌ๋ฅผ ์ ๋๋ก ํ์ ํด ์ค๋ฌด์ ๊ผญ ํ์ํ SQL ์ฑ๋ฅ ์ต์ ํ์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ค์ง๋๋ค.
ํธ๋์ญ์ ๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๊น์ด ์ดํดํด์, ๋ฐ์ดํฐ๊ฐ ๊นจ์ง์ง ์๋ ์์ ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ค๊ณํธ: ์ค๊ณํธ์ ์ฌ๋ฌ๋ถ์ ํ ๋จ๊ณ ๋ ๋์ ์์ค์ ๊ฐ๋ฐ์๋ก ๋ง๋ค์ด ์ค ๊ฒ๋๋ค. ์ข์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๊ฐ ์ด๋ป๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๊ฒฐ์ ํ๋์ง ๋ฐฐ์ฐ๊ณ , ์ค๋ฌด์์ ๋ง์ฃผํ ๋ณต์กํ ์๊ตฌ์ฌํญ์ ์ฒด๊ณ์ ์ผ๋ก ๋ชจ๋ธ๋งํ๋ ๋ฅ๋ ฅ์ ํค์ฐ๊ฒ ๋ฉ๋๋ค.
์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ ๊ธฐ๋ฅํธ: ์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ ๊ธฐ๋ฅํธ์ ๋์ฉ๋ ํธ๋ํฝ์ ๋ค๋ฃจ๋ ๊ณ ๊ธ ๊ฐ๋ฐ์๋ก ๊ฐ๋ ๋ง์ง๋ง ๊ด๋ฌธ์ ๋๋ค. ์๋ฌด๋ ํด๊ฒฐํ์ง ๋ชปํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ๋ณ๋ชฉ์ ์ฐพ์๋ด๊ณ , ์๋น์ค์ ํ๊ณ๋ฅผ ๋์ด์ฌ๋ฆฌ๋ ๊ณ ๊ธ ๊ธฐ์ ๋ค์ ๋ง์คํฐํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ด ๋ก๋๋งต์ ๋ง์คํฐํ๋ฉด, ์ฌ๋ฌ๋ถ์ด '๋จ์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฐ๋ฐ์'๋ฅผ ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ชฝ์ ๋ชจ๋ ๊น์ด ์๊ฒ ์ดํดํ๊ณ ์ต์ ํํด์, ์ด๋ค ๋ฌธ์ ์ํฉ์์๋ ํด๊ฒฐ์ ์ค๋ง๋ฆฌ๋ฅผ ์ฐพ์๋ด๋ ์ง์ง ์ค๋ ฅ์๋ ๊ฐ๋ฐ์๋ก ์ฑ์ฅํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
[๊ธฐํ, ๋ฐ์ดํฐ ๋ถ์๊ฐ ๊ด์ ์์ ๋ก๋๋งต ์๊ฐ]
๊ธฐํ์๋ ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ผ๋ฉด ์ ๋ฌธํธ๊ณผ ๋ค์ ๊ธฐ๋ณธํธ๊น์ง ๋ฃ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
์ ๋ฌธํธ: ์ ๋ฌธํธ์ ํตํด SQL ๊ธฐ์ด๋ฅผ ์ตํ๋ฉด, ๋ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๊ธฐ๋ค๋ฆด ํ์ ์์ด ์ํ๋ ๋ต์ ์ฆ์ ์ป๋ ์๋์ ๋ ๋ฆฝ์ฑ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
๊ธฐ๋ณธํธ: ๊ธฐ๋ณธํธ์์๋ ํ ๊ฑธ์ ๋ ๋์๊ฐ๋๋ค.
์กฐ์ธ, ์๋ธ์ฟผ๋ฆฌ, ์ ๋์จ, ์ผ์ด์ค ๋ฌธ ๊ฐ์ ๊ณ ๊ธ SQL์ ํ์ฉํด ์ฌ๋ฌ ๊ณณ์ ํฉ์ด์ง ๋ฐ์ดํฐ๋ฅผ ํฉ์น๊ณ , ๋๋ง์ ๊ธฐ์ค์ผ๋ก ์ฌ๊ฐ๊ณตํ๋ฉฐ ๋ถ์์ ๊น์ด๋ฅผ ๋ํ๊ฒ ๋ฉ๋๋ค.
์ด ๋ ๊ณผ์ ๋ง์ผ๋ก๋ ์ฌ๋ฌ๋ถ์ ๋ฐ์ดํฐ์ ๊ธฐ๋ฐํด ์๋น์ค๋ฅผ ๊ฐ์ ํ๊ณ , ์กฐ์ง์ ์ค๋ํ๊ณ , ๊ฐ๋ฐํ๊ณผ ์ํํ ์ํตํ๋ ํต์ฌ ์ธ์ฌ๋ก ๊ฑฐ๋ญ๋ ๊ฒ์ ๋๋ค.
๋ง์ฝ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ํ๋ก๋ํธ๋ฅผ ์ง์ ๋ฆฌ๋ํ๊ณ ์ถ๋ค๋ฉด, ์ฌํ ๊ณผ์ ์ผ๋ก '์ค๊ณํธ'์ ํ์ตํด์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ์ดํด๋ฅผ ๋ํ๋ ๊ฒ๋ ์ข์ ์ ํ์ด ๋ ์ ์์ต๋๋ค.
๊ธฐํ์์ ๋ถ์๊ฐ๋ถ๋ค๊ป ์ด ๋ก๋๋งต์ ์ ๋ฌธํธ๊ณผ ๊ธฐ๋ณธํธ์ ๋ฐ์ดํฐ๋ก ์ผํ๋ ๋ฐฉ์์ ์์ ํ ๋ฐ๊พธ์ด ์ค ๊ฒ๋๋ค.
์ ๋ฌธํธ - ์น์ ๋ชฉ์ฐจ
1. ๊ฐ์ ์๊ฐ์ ์์ ์๋ฃ
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๊ฐ
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
4. SQL - ๋ฐ์ดํฐ ๊ด๋ฆฌ
5. SQL - ์กฐํ์ ์ ๋ ฌ
6. SQL - ๋ฐ์ดํฐ ๊ฐ๊ณต
7. SQL - ์ง๊ณ์ ๊ทธ๋ฃนํ
๊ธฐ๋ณธํธ - ์น์ ๋ชฉ์ฐจ
1. ๊ฐ์ ์๊ฐ์ ์์ ์๋ฃ
2. ์กฐ์ธ1 - ๋ด๋ถ ์กฐ์ธ
3. ์กฐ์ธ2 - ์ธ๋ถ ์กฐ์ธ๊ณผ ๊ธฐํ ์กฐ์ธ
4. ์๋ธ์ฟผ๋ฆฌ
5. UNION
6. CASE ๋ฌธ
7. ๋ทฐ(View)
8. ์ธ๋ฑ์ค1
9. ์ธ๋ฑ์ค2
10. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ
11. ํธ๋์ญ์
12. ์ ์ฅ ํ๋ก์์ , ํจ์, ํธ๋ฆฌ๊ฑฐ
๋ก๋๋งต ์งํ ๊ด๋ จ ์ง๋ฌธ๋ค์ ๋ชจ์์ ๋ต๋ณ๋๋ ค์.
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋งต ์งํ ๊ธฐ๋ณธ ์์
- ๊ธฐ๋ณธ์ ์ธ ์์๋ ์๋ฐ -> ๋ฐ์ดํฐ๋ฒ ์ด์ค -> ์คํ๋ง -> ์คํ๋ง ๋ถํธ์ JPA ํ์ฉ ์์์ ๋๋ค.
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋งต ์งํ ์ถ์ฒ ์์
๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์งํ ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธํธ๊ณผ ๊ธฐ๋ณธํธ์ ์คํ๋ง ๋ก๋๋งต์ ์คํ๋ง DB1 ์ง์ ์ ํ์ตํ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ๋ค์ ์์๋ก ํ์ตํ๋ ๊ฒ์ ๋๋ค.
- ...
- ์คํ๋ง MVC2
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธํธ
- ์คํ๋ง DB 1ํธ
- ์คํ๋ง DB 2ํธ
- ...
์คํ๋ง ๋ถํธ์ JPA ํ์ฉ ๋ก๋๋งต์ ์งํํ ๋๋ ์ต์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธํธ๊น์ง๋ ๋ฃ๊ณ ์งํํ์๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณํธ, ์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ๊ธฐ๋ฅ์ ์ถ์๊ฐ ๋๋ฉด ๋ค์ ํ๋ฒ ์ ๋ฆฌํด์ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
3. mysql ๋ฒ ์ด์ค๋ก ํ์ต์งํํ๋์? ์ค๋ผํด๋ก ์งํํ๋์?
์ค์ต์ MySQL์ ์ค์ฌ์ผ๋ก ์งํ๋์ง๋ง, ๊ฐ์ ๋ด์ฉ์ MySQL๋ฟ๋ง ์๋๋ผ RDBMS ์ ์ฒด๋ฅผ ์์ฐ๋ฅด๋ ๋ณดํธ์ ์ธ ์ง์์ ์ ๋ฌํ๋ ๋ฐ ์ด์ ์ ๋ง์ถฅ๋๋ค. ๊ทธ๋์ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ๋งค์ด์ง ์๋ ํญ๋์ ์ดํด๋ฅผ ๋ชฉํ๋ก ํฉ๋๋ค.
๋น์ ๋ฅผ ํ์๋ฉด ์ด ๊ฐ์์์ ์ฐ๋ฆฌ๋ MySQL์ด๋ผ๋ ์๋์ฐจ๋ฅผ ์ด์ ํ๋ ๋ฒ์ ๋ฐฐ์ธ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋จ์ํ ํน์ ๋ชจ๋ธ์ ์๋์ฐจ ์กฐ์๋ฒ๋ง ์ตํ๋ ๊ฒ์ด ์๋๋ผ, ์ก์ , ๋ธ๋ ์ดํฌ, ํธ๋ค์ฒ๋ผ ์ด๋ค ์๋์ฐจ(RDBMS)๋ฅผ ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ผ ํ ์ด์ ์๋ฆฌ(RDBMS์ ํต์ฌ ๊ฐ๋ )๋ฅผ ๋ฐฐ์ฐ๋ ๋ฐ ์ค์ ์ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ๋ค๋ฅธ RDBMS๋ฅผ ๋ค๋ฃฐ ๋๋ ํฐ ๋์์ด ๋ ๊ฑฐ์์.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ
๋๋์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธ, ๊ธฐ๋ณธํธ ๋ ๊ฐ์๊ฐ ์คํ ์ค๋น์ ๋ค์ด๊ฐ์ต๋๋ค.
์ค๋๊ธฐ๊ฐ ๊ธฐ๋ค๋ ค์ฃผ์๊ณ ์์ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
์ถ์ ์์ ์ผ์ 7์ 30์ผ ~ 8์ 1์ผ๋ก ์์๋ฉ๋๋ค.
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋งต
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธ - SQL๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ (์คํ)
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ๊ธฐ๋ณธํธ (์คํ)
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ์ค๊ณํธ (2025๋ ํ๋ฐ๊ธฐ ์์ )
๊น์ํ์ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ ๊ธฐ๋ฅํธ (2025๋ ํ๋ฐ๊ธฐ ์์ )
๊ฐ์ ๋์
์ฐธ๊ณ ๋ก ์ด๋ฒ ๊ฐ์๋ ๊ฐ๋ฐ์๋ฟ๋ง ์๋๋ผ ๊ธฐํ์, ๋ฐ์ดํฐ ๋ถ์๊ฐ ๋ถ๋ค๋ ๋ค์ ์ ์๋๋ก ์ฝ๊ฒ ๊ตฌ์ฑํ์ต๋๋ค.
๊ฐ๋ฐ์: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ด๋ฅผ ํํํ ๋ค์ง๊ณ ์ถ์ ์ฃผ๋์ด, ๋น์ ๊ณต์, ์ทจ์ ์ค๋น์
๊ธฐํ์/๋ง์ผํฐ: ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์์ฌ๊ฒฐ์ ์ด ํ์ํ ๋ถ
๋ฐ์ดํฐ ๋ถ์๊ฐ: SQL ์ญ๋์ ์๊ณ ์ถ์ ์ ๋ฌธ์
[๊ฐ๋ฐ์ ๊ด์ ์์ ๋ก๋๋งต ์๊ฐ]
๊ฐ๋ฐ์๋ผ๋ฉด ์ ์ฒด ๋ก๋๋งต์ ๋ชจ๋ ๋ฐ๋ผ์ค์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
๋ง์ ๊ฐ๋ฐ์ ๋ถ๋ค์ด ๊ณต๊ฐํ์๊ฒ ์ง๋ง, ๊ฒฐ๊ตญ ๋ฐ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ค๊ณ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์์ ํ์ํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ง์ผ๋ก๋ ๊ฒฐ์ฝ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ค์ด ๋ฐ๋ก ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ญ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ก๋๋งต์ ๊ทธ ๋๋จธ์ง ์ ๋ฐ์ ํต์ฌ ์ญ๋์ ์ฑ์์ ์ฌ๋ฌ๋ถ์ ํ ์ฐจ์ ๋์ ๊ฐ๋ฐ์๋ก ๋ง๋ค์ด ์ค ๊ฒ๋๋ค.
์ ๋ฌธํธ: ๋จผ์ , '์ ๋ฌธํธ'์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL ๊ธฐ์ด๋ฅผ ๋ค์ง๋๋ค.
๊ธฐ๋ณธํธ: ๊ธฐ๋ณธํธ์์๋ ์ฃผ๋์ด ๊ฐ๋ฐ์์๊ฒ ๋ฐ๋์ ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ค๋ฃน๋๋ค.
์กฐ์ธ, ์๋ธ์ฟผ๋ฆฌ, ์ ๋์จ, ์ผ์ด์ค ๋ฌธ์ ํตํด ์ด๋ค ๋ณต์กํ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ๋ SQL๋ก ํ์ด๋ด๋ ๋ฅ๋ ฅ์ ๊ฐ์ถ๊ฒ ๋ฉ๋๋ค.
์ธ๋ฑ์ค์ ๋์ ์๋ฆฌ๋ฅผ ์ ๋๋ก ํ์ ํด ์ค๋ฌด์ ๊ผญ ํ์ํ SQL ์ฑ๋ฅ ์ต์ ํ์ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋ค์ง๋๋ค.
ํธ๋์ญ์ ๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๊น์ด ์ดํดํด์, ๋ฐ์ดํฐ๊ฐ ๊นจ์ง์ง ์๋ ์์ ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์ค๊ณํธ: ์ค๊ณํธ์ ์ฌ๋ฌ๋ถ์ ํ ๋จ๊ณ ๋ ๋์ ์์ค์ ๊ฐ๋ฐ์๋ก ๋ง๋ค์ด ์ค ๊ฒ๋๋ค. ์ข์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๊ฐ ์ด๋ป๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ๊ฒฐ์ ํ๋์ง ๋ฐฐ์ฐ๊ณ , ์ค๋ฌด์์ ๋ง์ฃผํ ๋ณต์กํ ์๊ตฌ์ฌํญ์ ์ฒด๊ณ์ ์ผ๋ก ๋ชจ๋ธ๋งํ๋ ๋ฅ๋ ฅ์ ํค์ฐ๊ฒ ๋ฉ๋๋ค.
์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ ๊ธฐ๋ฅํธ: ์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ ๊ธฐ๋ฅํธ์ ๋์ฉ๋ ํธ๋ํฝ์ ๋ค๋ฃจ๋ ๊ณ ๊ธ ๊ฐ๋ฐ์๋ก ๊ฐ๋ ๋ง์ง๋ง ๊ด๋ฌธ์ ๋๋ค. ์๋ฌด๋ ํด๊ฒฐํ์ง ๋ชปํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ๋ณ๋ชฉ์ ์ฐพ์๋ด๊ณ , ์๋น์ค์ ํ๊ณ๋ฅผ ๋์ด์ฌ๋ฆฌ๋ ๊ณ ๊ธ ๊ธฐ์ ๋ค์ ๋ง์คํฐํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ด ๋ก๋๋งต์ ๋ง์คํฐํ๋ฉด, ์ฌ๋ฌ๋ถ์ด '๋จ์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฐ๋ฐ์'๋ฅผ ๋์ด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ชฝ์ ๋ชจ๋ ๊น์ด ์๊ฒ ์ดํดํ๊ณ ์ต์ ํํด์, ์ด๋ค ๋ฌธ์ ์ํฉ์์๋ ํด๊ฒฐ์ ์ค๋ง๋ฆฌ๋ฅผ ์ฐพ์๋ด๋ ์ง์ง ์ค๋ ฅ์๋ ๊ฐ๋ฐ์๋ก ์ฑ์ฅํ๊ฒ ๋ ๊ฒ์ ๋๋ค.
[๊ธฐํ, ๋ฐ์ดํฐ ๋ถ์๊ฐ ๊ด์ ์์ ๋ก๋๋งต ์๊ฐ]
๊ธฐํ์๋ ๋ฐ์ดํฐ ๋ถ์๊ฐ๋ผ๋ฉด ์ ๋ฌธํธ๊ณผ ๋ค์ ๊ธฐ๋ณธํธ๊น์ง ๋ฃ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
์ ๋ฌธํธ: ์ ๋ฌธํธ์ ํตํด SQL ๊ธฐ์ด๋ฅผ ์ตํ๋ฉด, ๋ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๊ธฐ๋ค๋ฆด ํ์ ์์ด ์ํ๋ ๋ต์ ์ฆ์ ์ป๋ ์๋์ ๋ ๋ฆฝ์ฑ์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
๊ธฐ๋ณธํธ: ๊ธฐ๋ณธํธ์์๋ ํ ๊ฑธ์ ๋ ๋์๊ฐ๋๋ค.
์กฐ์ธ, ์๋ธ์ฟผ๋ฆฌ, ์ ๋์จ, ์ผ์ด์ค ๋ฌธ ๊ฐ์ ๊ณ ๊ธ SQL์ ํ์ฉํด ์ฌ๋ฌ ๊ณณ์ ํฉ์ด์ง ๋ฐ์ดํฐ๋ฅผ ํฉ์น๊ณ , ๋๋ง์ ๊ธฐ์ค์ผ๋ก ์ฌ๊ฐ๊ณตํ๋ฉฐ ๋ถ์์ ๊น์ด๋ฅผ ๋ํ๊ฒ ๋ฉ๋๋ค.
์ด ๋ ๊ณผ์ ๋ง์ผ๋ก๋ ์ฌ๋ฌ๋ถ์ ๋ฐ์ดํฐ์ ๊ธฐ๋ฐํด ์๋น์ค๋ฅผ ๊ฐ์ ํ๊ณ , ์กฐ์ง์ ์ค๋ํ๊ณ , ๊ฐ๋ฐํ๊ณผ ์ํํ ์ํตํ๋ ํต์ฌ ์ธ์ฌ๋ก ๊ฑฐ๋ญ๋ ๊ฒ์ ๋๋ค.
๋ง์ฝ ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ ํ๋ก๋ํธ๋ฅผ ์ง์ ๋ฆฌ๋ํ๊ณ ์ถ๋ค๋ฉด, ์ฌํ ๊ณผ์ ์ผ๋ก '์ค๊ณํธ'์ ํ์ตํด์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํ ์ดํด๋ฅผ ๋ํ๋ ๊ฒ๋ ์ข์ ์ ํ์ด ๋ ์ ์์ต๋๋ค.
๊ธฐํ์์ ๋ถ์๊ฐ๋ถ๋ค๊ป ์ด ๋ก๋๋งต์ ์ ๋ฌธํธ๊ณผ ๊ธฐ๋ณธํธ์ ๋ฐ์ดํฐ๋ก ์ผํ๋ ๋ฐฉ์์ ์์ ํ ๋ฐ๊พธ์ด ์ค ๊ฒ๋๋ค.
์ ๋ฌธํธ - ์น์ ๋ชฉ์ฐจ
1. ๊ฐ์ ์๊ฐ์ ์์ ์๋ฃ
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๊ฐ
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์
4. SQL - ๋ฐ์ดํฐ ๊ด๋ฆฌ
5. SQL - ์กฐํ์ ์ ๋ ฌ
6. SQL - ๋ฐ์ดํฐ ๊ฐ๊ณต
7. SQL - ์ง๊ณ์ ๊ทธ๋ฃนํ
๊ธฐ๋ณธํธ - ์น์ ๋ชฉ์ฐจ
1. ๊ฐ์ ์๊ฐ์ ์์ ์๋ฃ
2. ์กฐ์ธ1 - ๋ด๋ถ ์กฐ์ธ
3. ์กฐ์ธ2 - ์ธ๋ถ ์กฐ์ธ๊ณผ ๊ธฐํ ์กฐ์ธ
4. ์๋ธ์ฟผ๋ฆฌ
5. UNION
6. CASE ๋ฌธ
7. ๋ทฐ(View)
8. ์ธ๋ฑ์ค1
9. ์ธ๋ฑ์ค2
10. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ
11. ํธ๋์ญ์
12. ์ ์ฅ ํ๋ก์์ , ํจ์, ํธ๋ฆฌ๊ฑฐ
๋ก๋๋งต ์งํ ๊ด๋ จ ์ง๋ฌธ๋ค์ ๋ชจ์์ ๋ต๋ณ๋๋ ค์.
1. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋งต ์งํ ๊ธฐ๋ณธ ์์
- ๊ธฐ๋ณธ์ ์ธ ์์๋ ์๋ฐ -> ๋ฐ์ดํฐ๋ฒ ์ด์ค -> ์คํ๋ง -> ์คํ๋ง ๋ถํธ์ JPA ํ์ฉ ์์์ ๋๋ค.
2. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ก๋๋งต ์งํ ์ถ์ฒ ์์
๊ฐ์ฅ ํจ๊ณผ์ ์ธ ์งํ ์์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธํธ๊ณผ ๊ธฐ๋ณธํธ์ ์คํ๋ง ๋ก๋๋งต์ ์คํ๋ง DB1 ์ง์ ์ ํ์ตํ๋ ๊ฒ์ ๋๋ค.
๋ฐ๋ผ์ ๋ค์ ์์๋ก ํ์ตํ๋ ๊ฒ์ ๋๋ค.
- ...
- ์คํ๋ง MVC2
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธํธ
- ์คํ๋ง DB 1ํธ
- ์คํ๋ง DB 2ํธ
- ...
์คํ๋ง ๋ถํธ์ JPA ํ์ฉ ๋ก๋๋งต์ ์งํํ ๋๋ ์ต์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธํธ๊น์ง๋ ๋ฃ๊ณ ์งํํ์๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณํธ, ์ฑ๋ฅ ์ต์ ํ์ ๊ณ ๊ธ๊ธฐ๋ฅ์ ์ถ์๊ฐ ๋๋ฉด ๋ค์ ํ๋ฒ ์ ๋ฆฌํด์ ์๋ ค๋๋ฆฌ๊ฒ ์ต๋๋ค.
3. mysql ๋ฒ ์ด์ค๋ก ํ์ต์งํํ๋์? ์ค๋ผํด๋ก ์งํํ๋์?
์ค์ต์ MySQL์ ์ค์ฌ์ผ๋ก ์งํ๋์ง๋ง, ๊ฐ์ ๋ด์ฉ์ MySQL๋ฟ๋ง ์๋๋ผ RDBMS ์ ์ฒด๋ฅผ ์์ฐ๋ฅด๋ ๋ณดํธ์ ์ธ ์ง์์ ์ ๋ฌํ๋ ๋ฐ ์ด์ ์ ๋ง์ถฅ๋๋ค. ๊ทธ๋์ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฝ๋งค์ด์ง ์๋ ํญ๋์ ์ดํด๋ฅผ ๋ชฉํ๋ก ํฉ๋๋ค.
๋น์ ๋ฅผ ํ์๋ฉด ์ด ๊ฐ์์์ ์ฐ๋ฆฌ๋ MySQL์ด๋ผ๋ ์๋์ฐจ๋ฅผ ์ด์ ํ๋ ๋ฒ์ ๋ฐฐ์ธ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋จ์ํ ํน์ ๋ชจ๋ธ์ ์๋์ฐจ ์กฐ์๋ฒ๋ง ์ตํ๋ ๊ฒ์ด ์๋๋ผ, ์ก์ , ๋ธ๋ ์ดํฌ, ํธ๋ค์ฒ๋ผ ์ด๋ค ์๋์ฐจ(RDBMS)๋ฅผ ํ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ผ ํ ์ด์ ์๋ฆฌ(RDBMS์ ํต์ฌ ๊ฐ๋ )๋ฅผ ๋ฐฐ์ฐ๋ ๋ฐ ์ค์ ์ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ๋ค๋ฅธ RDBMS๋ฅผ ๋ค๋ฃฐ ๋๋ ํฐ ๋์์ด ๋ ๊ฑฐ์์.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ ๋๋์ด ์๋ฐ ๊ณ ๊ธ3ํธ ์๋ฐ ๋ก๋๋งต์ ๋ง์ง๋ง ๊ฐ์๋ฅผ ์คํํ์ต๋๋ค.
๋งํฌ: https://inf.run/iZKKT
๊น์ํ์ ์ค์ ์๋ฐ - ๊ณ ๊ธ 3ํธ, ๋๋ค, ์คํธ๋ฆผ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
๊ฐ์ ์๊ฐ: 16์๊ฐ 40๋ถ
๊ฐ์ ์: 97๊ฐ
๊ฐ์ PDF ์๋ฃ: 387 ํ์ด์ง
[๊ฐ์ ์๊ฐ]
๋๋ค, ์คํธ๋ฆผ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ ์ต์ ์๋ฐ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์๋ก์ด ๋ฌธ๋ฒ๊ณผ ๊ธฐ์ ๋ค์ ํ์ตํฉ๋๋ค.โจ์ด๋ฒ ๊ฐ์๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ด ๋๋ค, ์คํธ๋ฆผ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ ๊ธฐ์ ์ ๋จ์ํ ์๋ ๊ฒ์ ๋์ด์ ์ค๋ฌด์ ์ด ๊ธฐ์ ๋ค์ ์ด๋ป๊ฒ ์ ์ฉํด์ผ ํ๋์ง, ๊น์ด์๊ฒ ์ดํดํ๊ณ , ๋ ํ์ฉํ ์ ์๊ฒ ๊ฐ๋ฅด์ณ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
[๊ฐ์ ๋ด์ฉ ์์ฝ]
์ฃผ์ ๊ฐ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ๋๋ค๊ฐ ํ์ํ ์ด์
๊น๋ํ๊ณ ๊ฐ๊ฒฐํ ์ฝ๋๋ฅผ ์ํด, ๊ทธ๋ฆฌ๊ณ ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ํ์ฉํ๊ธฐ ์ํด ๋๋ค๊ฐ ์ง๊ธ์ ์๋ฐ์์ ์ผ๋ง๋ ์ค์ํ ์ญํ ์ ํ๋์ง ์์๋ด ๋๋ค.
2. ๋๋ค
์ค์ ์ฝ๋ ์์ ๋ฅผ ํตํด ๋๋ค์ ์ ์์ ๋ฌธ๋ฒ, ํ์ฉ ํ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ๊ธฐ์กด ๋ฐฉ์๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง, ๋ ์ด๋ค ์ ์ด ๋งค๋ ฅ์ ์ธ์ง ๋ช ํํ๊ฒ ์ดํดํ์ค ์ ์์ต๋๋ค.
3. ํจ์ํ ์ธํฐํ์ด์ค
๋๋ค์ ํจ๊ป ์ฐ์ด๋ ํ์ ๊ฐ๋ ์ธ ํจ์ํ ์ธํฐํ์ด์ค!โจํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ ์ด์ ์ ์๋ฐ ํ์ค API์ ๋ด์ฅ๋ ๋ค์ํ ํจ์ํ ์ธํฐํ์ด์ค๋ค์ ๊ฐํธํ๊ฒ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ํด ๋๋ฆฝ๋๋ค.
4. ๋๋ค ํ์ฉ
์ค๋ฌด ์ฝ๋์์ ๋๋ค๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํ ์ ์์๊น์?โจ๋ฐ๋ณต๋๋ ํจํด๊ณผ ๋ณต์กํ ๋ก์ง์ ๋จ์ํ์ํค๋ ๋๋ค์ ํต์ฌ ํ์ฉ๋ฒ์ ์์ ์ ํจ๊ป ์ตํ๋ด ์๋ค.
5. ๋๋ค vs ์ต๋ช ํด๋์ค
์ด๋ค ์ํฉ์์ ๋๋ค๊ฐ ๋ ํจ์จ์ ์ด๊ณ , ์ด๋ค ๊ฒฝ์ฐ์ ์ต๋ช ํด๋์ค๋ฅผ ์จ์ผ ํ๋์ง ๋น๊ต ๋ถ์ํฉ๋๋ค.
6. ๋ฉ์๋ ์ฐธ์กฐ
์๋ฐ 8๋ถํฐ ์ถ๊ฐ๋ ๋ฉ์๋ ์ฐธ์กฐ ๋ฌธ๋ฒ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊น๋ํจ์ ํ ๋จ๊ณ ์ ๊ทธ๋ ์ด๋ํด ์ค๋๋ค. ๋ฉ์๋ ์ฐธ์กฐ ๋ฌธ๋ฒ์ด ์ด๋ป๊ฒ ๋์ํ๊ณ , ์ค์ฉ์ ์ธ ํ์ฉ ์์๋ ๋ฌด์์ธ์ง ์๋ ค๋๋ฆฝ๋๋ค.
7. ์คํธ๋ฆผ API1 - ๊ธฐ๋ณธ
์คํธ๋ฆผ API๋ ๋๋ค์ ํจ๊ป ์๋ฐ ์ปฌ๋ ์ ์ ๋ค๋ฃจ๋ ์๋ก์ด ํจ๋ฌ๋ค์์ ๋ณด์ฌ์ค๋๋ค. ์ฒ์ ์ ํ๋ ๋ถ๋ค๋ ์ดํดํ๊ธฐ ์ฝ๊ฒ, ์คํธ๋ฆผ ๊ตฌ์กฐ์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ์๊ธฐ ์ฝ๊ฒ ์ ๋ฆฌํด ๋๋ฆฝ๋๋ค.
8. ์คํธ๋ฆผ API2 - ๊ธฐ๋ฅ
ํํฐ๋ง, ๋งคํ, ์ ๋ ฌ, ๋ฆฌ๋์ค ๋ฑ ์คํธ๋ฆผ์์ ์ ๊ณตํ๋ ํต์ฌ ๊ธฐ๋ฅ๋ค์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํด๋ด ๋๋ค. ์ฝ๋๋ฅผ ๋ณด๋ค ๋ ์ง๊ด์ ์ด๊ณ ํจ์ถ์ ์ผ๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ตํ ์ ์์ต๋๋ค.
9. ์คํธ๋ฆผ API3 - ์ปฌ๋ ํฐ
ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์์ง๊ณผ ๊ฐ๊ณต์ ์ํด ์คํธ๋ฆผ์์ ํ์ฉํ๋ Collector์ ๊ฐ๋ ์ ํ์ตํฉ๋๋ค. collect(), grouping, partitioning ๋ฑ, ์ค๋ฌด์์ ๊ผญ ํ์ํ ์คํฌ๋ค์ ์ตํ์ค ์ ์์ต๋๋ค.
10. Optional
null ์ฒ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ํด๊ฒฐํด ์ฃผ๋ Optional์ ์ ๋๋ก ํ์ฉํด๋ด ์๋ค. isPresent(), orElse(), orElseThrow() ๋ฑ ์ค์ ์์ ์ฆ์ NPE ๋ฌธ์ ๋ฅผ ์๋ฐฉํ ์ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค.
11. ๋ํดํธ ๋ฉ์๋
์๋ฐ ์ธํฐํ์ด์ค์ ์๋ก์ด ๋ฉด๋ชจ์ธ ๋ํดํธ ๋ฉ์๋๋ฅผ ์ดํด๋ด ๋๋ค.
์ธํฐํ์ด์ค๋ฅผ ํ์ฅํ ๋ ํธํ์ฑ์ ์ ์งํ๋ ๋ฐฉ๋ฒ๊ณผ ํจ๊ป, ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ์ ์์๋ด ๋๋ค.
12. ๋ณ๋ ฌ ์คํธ๋ฆผ
๊ณ ์ฑ๋ฅ์ ์ํ ๋ณ๋ ฌ ์ฒ๋ฆฌ! ForkJoin ํ ๋ถํฐ, ์คํธ๋ฆผ API๋ฅผ ํตํ ๋ฉํฐ์ฝ์ด ํ์ฉ ๋ ธํ์ฐ์ ๋ณ๋ ฌ ์คํธ๋ฆผ์์ ๋ฐ์ํ ์ ์๋ ์ฃผ์์ฌํญ๋ค์ ํจ๊ป ๋ฐฐ์ ๋ณด์ธ์.
13. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
๋๋ค, ์คํธ๋ฆผ API, Optional ๋ฑ ์๋ฐ 8 ์ดํ๋ก ์ถ๊ฐ๋ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ๊ฐ์ฒด์งํฅ ์ธ์ด์ ํจ์ํ ํจ๋ฌ๋ค์์ ์กฐํ๋ฅผ ํตํด, ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฝ๋๋ค.
๊ฐ์ฌํฉ๋๋ค.
์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ ๋๋์ด 2๋ ์ ๊ฑธ์ณ์ ์๋ฐ ๋ก๋๋งต์ ์์ฑํ์ต๋๋ค.
์๋ฐ ๋ก๋๋งต์ ๋ง์ง๋ง ๊ฐ์์ธ ๊น์ํ์ ์ค์ ์๋ฐ - ๊ณ ๊ธ 3ํธ, ๋๋ค, ์คํธ๋ฆผ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
์คํ ์ผ์ ์ด 3์ 25์ผ(ํ) ~ 3์ 28(๊ธ) ์ฌ์ด์ ์คํํ๋ ๊ฒ์ผ๋ก ํ์ ๋์์ต๋๋ค.
๊ฐ์ ์๊ฐ: 16์๊ฐ 40๋ถ
๊ฐ์ ์: 97๊ฐ
๊ฐ์ PDF ์๋ฃ: 387 ํ์ด์ง
[๊ฐ์ ์๊ฐ]
๋๋ค, ์คํธ๋ฆผ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ ์ต์ ์๋ฐ์์ ์์ฃผ ์ฌ์ฉ๋๋ ์๋ก์ด ๋ฌธ๋ฒ๊ณผ ๊ธฐ์ ๋ค์ ํ์ตํฉ๋๋ค.
์ด๋ฒ ๊ฐ์๋ฅผ ํตํด ์ฌ๋ฌ๋ถ์ด ๋๋ค, ์คํธ๋ฆผ, ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ฐ์ ๊ธฐ์ ์ ๋จ์ํ ์๋ ๊ฒ์ ๋์ด์ ์ค๋ฌด์ ์ด ๊ธฐ์ ๋ค์ ์ด๋ป๊ฒ ์ ์ฉํด์ผ ํ๋์ง, ๊น์ด์๊ฒ ์ดํดํ๊ณ , ๋ ํ์ฉํ ์ ์๊ฒ ๊ฐ๋ฅด์ณ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
[๊ฐ์ ๋ด์ฉ ์์ฝ]์ฃผ์ ๊ฐ์ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ๋๋ค๊ฐ ํ์ํ ์ด์
๊น๋ํ๊ณ ๊ฐ๊ฒฐํ ์ฝ๋๋ฅผ ์ํด, ๊ทธ๋ฆฌ๊ณ ๋ณ๋ ฌ ์ฒ๋ฆฌ์ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ํ์ฉํ๊ธฐ ์ํด ๋๋ค๊ฐ ์ง๊ธ์ ์๋ฐ์์ ์ผ๋ง๋ ์ค์ํ ์ญํ ์ ํ๋์ง ์์๋ด ๋๋ค.
2. ๋๋ค
์ค์ ์ฝ๋ ์์ ๋ฅผ ํตํด ๋๋ค์ ์ ์์ ๋ฌธ๋ฒ, ํ์ฉ ํ์ ๋ฐฐ์ฐ๊ฒ ๋ฉ๋๋ค. ๊ธฐ์กด ๋ฐฉ์๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง, ๋ ์ด๋ค ์ ์ด ๋งค๋ ฅ์ ์ธ์ง ๋ช ํํ๊ฒ ์ดํดํ์ค ์ ์์ต๋๋ค.
3. ํจ์ํ ์ธํฐํ์ด์ค
๋๋ค์ ํจ๊ป ์ฐ์ด๋ ํ์ ๊ฐ๋ ์ธ ํจ์ํ ์ธํฐํ์ด์ค!
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ ์ด์ ์ ์๋ฐ ํ์ค API์ ๋ด์ฅ๋ ๋ค์ํ ํจ์ํ ์ธํฐํ์ด์ค๋ค์ ๊ฐํธํ๊ฒ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ํด ๋๋ฆฝ๋๋ค.4. ๋๋ค ํ์ฉ
์ค๋ฌด ์ฝ๋์์ ๋๋ค๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํ ์ ์์๊น์?
๋ฐ๋ณต๋๋ ํจํด๊ณผ ๋ณต์กํ ๋ก์ง์ ๋จ์ํ์ํค๋ ๋๋ค์ ํต์ฌ ํ์ฉ๋ฒ์ ์์ ์ ํจ๊ป ์ตํ๋ด ์๋ค.5. ๋๋ค vs ์ต๋ช ํด๋์ค
์ด๋ค ์ํฉ์์ ๋๋ค๊ฐ ๋ ํจ์จ์ ์ด๊ณ , ์ด๋ค ๊ฒฝ์ฐ์ ์ต๋ช ํด๋์ค๋ฅผ ์จ์ผ ํ๋์ง ๋น๊ต ๋ถ์ํฉ๋๋ค.
6. ๋ฉ์๋ ์ฐธ์กฐ
์๋ฐ 8๋ถํฐ ์ถ๊ฐ๋ ๋ฉ์๋ ์ฐธ์กฐ ๋ฌธ๋ฒ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๊น๋ํจ์ ํ ๋จ๊ณ ์ ๊ทธ๋ ์ด๋ํด ์ค๋๋ค. ๋ฉ์๋ ์ฐธ์กฐ ๋ฌธ๋ฒ์ด ์ด๋ป๊ฒ ๋์ํ๊ณ , ์ค์ฉ์ ์ธ ํ์ฉ ์์๋ ๋ฌด์์ธ์ง ์๋ ค๋๋ฆฝ๋๋ค.
7. ์คํธ๋ฆผ API1 - ๊ธฐ๋ณธ
์คํธ๋ฆผ API๋ ๋๋ค์ ํจ๊ป ์๋ฐ ์ปฌ๋ ์ ์ ๋ค๋ฃจ๋ ์๋ก์ด ํจ๋ฌ๋ค์์ ๋ณด์ฌ์ค๋๋ค. ์ฒ์ ์ ํ๋ ๋ถ๋ค๋ ์ดํดํ๊ธฐ ์ฝ๊ฒ, ์คํธ๋ฆผ ๊ตฌ์กฐ์ ๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ์ ์๊ธฐ ์ฝ๊ฒ ์ ๋ฆฌํด ๋๋ฆฝ๋๋ค.
8. ์คํธ๋ฆผ API2 - ๊ธฐ๋ฅ
ํํฐ๋ง, ๋งคํ, ์ ๋ ฌ, ๋ฆฌ๋์ค ๋ฑ ์คํธ๋ฆผ์์ ์ ๊ณตํ๋ ํต์ฌ ๊ธฐ๋ฅ๋ค์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํด๋ด ๋๋ค. ์ฝ๋๋ฅผ ๋ณด๋ค ๋ ์ง๊ด์ ์ด๊ณ ํจ์ถ์ ์ผ๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ตํ ์ ์์ต๋๋ค.
9. ์คํธ๋ฆผ API3 - ์ปฌ๋ ํฐ
ํจ์จ์ ์ธ ๋ฐ์ดํฐ ์์ง๊ณผ ๊ฐ๊ณต์ ์ํด ์คํธ๋ฆผ์์ ํ์ฉํ๋ Collector์ ๊ฐ๋ ์ ํ์ตํฉ๋๋ค. collect(), grouping, partitioning ๋ฑ, ์ค๋ฌด์์ ๊ผญ ํ์ํ ์คํฌ๋ค์ ์ตํ์ค ์ ์์ต๋๋ค.
10. Optional
null ์ฒ๋ฆฌ๋ฅผ ๊น๋ํ๊ฒ ํด๊ฒฐํด ์ฃผ๋ Optional์ ์ ๋๋ก ํ์ฉํด๋ด ์๋ค. isPresent(), orElse(), orElseThrow() ๋ฑ ์ค์ ์์ ์ฆ์ NPE ๋ฌธ์ ๋ฅผ ์๋ฐฉํ ์ ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ ๋ค๋ฃน๋๋ค.
11. ๋ํดํธ ๋ฉ์๋
์๋ฐ ์ธํฐํ์ด์ค์ ์๋ก์ด ๋ฉด๋ชจ์ธ ๋ํดํธ ๋ฉ์๋๋ฅผ ์ดํด๋ด ๋๋ค.
์ธํฐํ์ด์ค๋ฅผ ํ์ฅํ ๋ ํธํ์ฑ์ ์ ์งํ๋ ๋ฐฉ๋ฒ๊ณผ ํจ๊ป, ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ์ ์์๋ด ๋๋ค.
12. ๋ณ๋ ฌ ์คํธ๋ฆผ
๊ณ ์ฑ๋ฅ์ ์ํ ๋ณ๋ ฌ ์ฒ๋ฆฌ! ForkJoin ํ ๋ถํฐ, ์คํธ๋ฆผ API๋ฅผ ํตํ ๋ฉํฐ์ฝ์ด ํ์ฉ ๋ ธํ์ฐ์ ๋ณ๋ ฌ ์คํธ๋ฆผ์์ ๋ฐ์ํ ์ ์๋ ์ฃผ์์ฌํญ๋ค์ ํจ๊ป ๋ฐฐ์ ๋ณด์ธ์.
13. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
๋๋ค, ์คํธ๋ฆผ API, Optional ๋ฑ ์๋ฐ 8 ์ดํ๋ก ์ถ๊ฐ๋ ๊ธฐ๋ฅ๋ค์ ๋ชจ๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋ฐ์ํ๊ณ ์์ต๋๋ค. ๊ฐ์ฒด์งํฅ ์ธ์ด์ ํจ์ํ ํจ๋ฌ๋ค์์ ์กฐํ๋ฅผ ํตํด, ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์๋ ค๋๋ฆฝ๋๋ค.
[์ ์ฒด ๋ชฉ์ฐจ]
1. ๋๋ค๊ฐ ํ์ํ ์ด์
* ํ๋ก์ ํธ ํ๊ฒฝ ๊ตฌ์ฑ
* ๋๋ค๊ฐ ํ์ํ ์ด์ 1
* ๋๋ค๊ฐ ํ์ํ ์ด์ 2
* ๋๋ค๊ฐ ํ์ํ ์ด์ 3
* ํจ์ vs ๋ฉ์๋
* ๋๋ค ์์2. ๋๋ค
* ๋๋ค ์ ์
* ํจ์ํ ์ธํฐํ์ด์ค
* ๋๋ค์ ์๊ทธ๋์ฒ
* ๋๋ค์ ์๋ต
* ๋๋ค์ ์ ๋ฌ
* ๊ณ ์ฐจ ํจ์
* ๋ฌธ์ ์ ํ์ด1
* ๋ฌธ์ ์ ํ์ด2
* ๋ฌธ์ ์ ํ์ด3
* ์ ๋ฆฌ3. ํจ์ํ ์ธํฐํ์ด์ค
* ํจ์ํ ์ธํฐํ์ด์ค์ ์ ๋ค๋ฆญ1
* ํจ์ํ ์ธํฐํ์ด์ค์ ์ ๋ค๋ฆญ2
* ๋๋ค์ ํ๊ฒ ํ์
* ๊ธฐ๋ณธ ํจ์ํ ์ธํฐํ์ด์ค
* ํนํ ํจ์ํ ์ธํฐํ์ด์ค
* ๊ธฐํ ํจ์ํ ์ธํฐํ์ด์ค
* ๋ฌธ์ ์ ํ์ด
* ์ ๋ฆฌ4. ๋๋ค ํ์ฉ
* ํํฐ ๋ง๋ค๊ธฐ1
* ํํฐ ๋ง๋ค๊ธฐ2
* ๋งต ๋ง๋ค๊ธฐ1
* ๋งต ๋ง๋ค๊ธฐ2
* ํํฐ์ ๋งต ํ์ฉ1
* ํํฐ์ ๋งต ํ์ฉ2
* ์คํธ๋ฆผ ๋ง๋ค๊ธฐ1
* ์คํธ๋ฆผ ๋ง๋ค๊ธฐ2
* ์คํธ๋ฆผ ๋ง๋ค๊ธฐ3
* ์คํธ๋ฆผ ๋ง๋ค๊ธฐ4
* ์ ๋ฆฌ5. ๋๋ค vs ์ต๋ช ํด๋์ค
* ๋๋ค vs ์ต๋ช ํด๋์ค1
* ๋๋ค vs ์ต๋ช ํด๋์ค2
* ์ ๋ฆฌ6. ๋ฉ์๋ ์ฐธ์กฐ
* ๋ฉ์๋ ์ฐธ์กฐ๊ฐ ํ์ํ ์ด์
* ๋ฉ์๋ ์ฐธ์กฐ1 - ์์
* ๋ฉ์๋ ์ฐธ์กฐ2 - ๋งค๊ฐ๋ณ์1
* ๋ฉ์๋ ์ฐธ์กฐ3 - ์์ ๊ฐ์ฒด์ ์ธ์คํด์ค ๋ฉ์๋ ์ฐธ์กฐ
* ๋ฉ์๋ ์ฐธ์กฐ4 - ํ์ฉ1
* ๋ฉ์๋ ์ฐธ์กฐ5 - ํ์ฉ2
* ๋ฉ์๋ ์ฐธ์กฐ6 - ๋งค๊ฐ๋ณ์2
* ์ ๋ฆฌ7. ์คํธ๋ฆผ API1 - ๊ธฐ๋ณธ
* ์คํธ๋ฆผ API ์์
* ์คํธ๋ฆผ API๋?
* ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ
* ์ง์ฐ ์ฐ์ฐ
* ์ง์ฐ ์ฐ์ฐ๊ณผ ์ต์ ํ8. ์คํธ๋ฆผ API2 - ๊ธฐ๋ฅ
* ์คํธ๋ฆผ ์์ฑ
* ์ค๊ฐ ์ฐ์ฐ
* FlatMap
* Optional ๊ฐ๋จ ์ค๋ช
* ์ต์ข ์ฐ์ฐ
* ๊ธฐ๋ณธํ ํนํ ์คํธ๋ฆผ9. ์คํธ๋ฆผ API3 - ์ปฌ๋ ํฐ
* ์ปฌ๋ ํฐ1
* ์ปฌ๋ ํฐ2
* ๋ค์ด ์คํธ๋ฆผ ์ปฌ๋ ํฐ1
* ๋ค์ด ์คํธ๋ฆผ ์ปฌ๋ ํฐ2
* ์ ๋ฆฌ10. Optional
* ์ต์ ๋์ด ํ์ํ ์ด์
* Optional์ ์์ฑ๊ณผ ๊ฐ ํ๋
* Optional ๊ฐ ์ฒ๋ฆฌ
* ์ฆ์ ํ๊ฐ์ ์ง์ฐ ํ๊ฐ1
* ์ฆ์ ํ๊ฐ์ ์ง์ฐ ํ๊ฐ2
* ์ฆ์ ํ๊ฐ์ ์ง์ฐ ํ๊ฐ3
* orElse() vs orElseGet()
* ์ค์ ํ์ฉ1 - ์ฃผ์ ์ฐพ๊ธฐ
* ์ค์ ํ์ฉ2 - ๋ฐฐ์ก
* ์ต์ ๋ - ๋ฒ ์คํธ ํ๋ํฐ์ค
* ์ ๋ฆฌ11. ๋ํดํธ ๋ฉ์๋
* ๋ํดํธ ๋ฉ์๋๊ฐ ๋ฑ์ฅํ ์ด์
* ๋ํดํธ ๋ฉ์๋ ์๊ฐ
* ๋ํดํธ ๋ฉ์๋์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ
* ์ ๋ฆฌ12. ๋ณ๋ ฌ ์คํธ๋ฆผ
* ๋จ์ผ ์คํธ๋ฆผ
* ์ค๋ ๋ ์ง์ ์ฌ์ฉ
* ์ค๋ ๋ ํ ์ฌ์ฉ
* ForkJoin ํจํด
* ForkJoin ํ๋ ์์ํฌ1 - ์๊ฐ
* ForkJoin ํ๋ ์์ํฌ2 - ์์ ํ์น๊ธฐ
* ์์ ํ์น๊ธฐ ์๊ณ ๋ฆฌ์ฆ
* ForkJoin ํ๋ ์์ํฌ3 - ๊ณต์ฉ ํ
* ์๋ฐ ๋ณ๋ ฌ ์คํธ๋ฆผ
* ๋ณ๋ ฌ ์คํธ๋ฆผ ์ฌ์ฉ์ ์ฃผ์์
* ๋ณ๋์ ํ ์ฌ์ฉ
* ์ ๋ฆฌ13. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
* ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์
* ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด๋?
* ์๋ฐ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ1
* ์๋ฐ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ2
* ์๋ฐ์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ3
* ์ ๋ฆฌ๊ฐ์ฌํฉ๋๋ค.







