์คํ๋ง ์ ๋ฌธ - ์ฝ๋๋ก ๋ฐฐ์ฐ๋ ์คํ๋ง ๋ถํธ, ์น MVC, DB ์ ๊ทผ ๊ธฐ์
์คํ๋ง ์ ๋ฌธ์๊ฐ ์์ ๋ฅผ ๋ง๋ค์ด๊ฐ๋ฉด์ ์คํ๋ง ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ๋ฐ์ ๋น ๋ฅด๊ฒ ํ์ตํ ์ ์์ต๋๋ค.
์๊ฐ์ 120,242๋ช
๋์ด๋ ์ด๊ธ
์๊ฐ๊ธฐํ ๋ฌด์ ํ

๊น์ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 2ํธ - ์คํ
์๋ ํ์ธ์. ์ฌ๋ฌ๋ถ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ 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
- ์ ๋ฆฌ






