์์๋ธ ํ์ต (์ง๋ ํ์ต)์ฌ๋ฌ ๊ฐ์ ๋ชจ๋ธ์ ํ์ต์์ผ ๋ค์ํ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉ ๋ชจ๋ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ๊ณผ ๋ฌธ์ (ํ๊ท, ๋ถ๋ฅ)์ ์ ์ฉ ๊ฐ๋ฅํจ ํ๊ท๋ฌธ์ - ํ๊ท ๋ถ๋ฅ๋ฌธ์ - ํฌํํฌ๊ฒ Bagging๊ณผ Boosting ๋ ๊ฐ์ง ๋ฐฉ๋ฒ๋ก ์ด ์กด์ฌ Bagging ๋ฐฐ๊น
Bootstrap ๋ถํธ์คํธ๋ฉ ํต๊ณ์ ๊ธฐ๋ณธ - ๋ชจ์๋ฅผ ์ ํํ ์ถ์ ํ๊ธฐ ์ํด์๋ ๋ค์ํ๊ณ ์ข์ ํ๋ณธ ๋ฐ์ดํฐ ์
์ด ํ์but, ํ๋ณธ์ ๊ณ์ ๋ง์ด ์ป๋ ๊ฒ์ ํ์ค์ ์ผ๋ก ์ด๋ ค์ ํ์ฌ ๊ฐ์ง๊ณ ์๋ ์ํ์ ๋ณต์ ์ถ์ถํด์ ์ฌ๋ฌ๊ฐ์ ๋ฐ์ดํฐ์
์ ๋ง๋ฌ Bagging ๋ฐฐ๊น
Bootstrap Aggregation ๋ถํธ์คํธ๋ฉ ๋ฐ์ดํฐ๋ฅผ ํฉ์น ๊ฒ ๋ถํธ์คํธ๋ฉ์ผ๋ก ์์ฑ๋ ๋ฐ์ดํฐ์
์ ๊ฐ์ง๊ณ ๋ชจ๋ธ์ ํ์ตํ๋ ๊ฒํ์ต๋ ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๋ก ๋์จ ๋ชจ๋ ์์ธก์น ํ๊ท (ํ๊ท)๋ด๊ฑฐ๋, ํฌํ(๋ถ๋ฅ)๋ฅผ ํ์ฉํด์ ๋ถ์ฐ ์ค..
์ ์ฒด ๊ธ

๋ชฉํFirebase ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค๊ณ express๋ก ๊ตฌ์ถํ node ์๋ฒ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๋ค. Cloud Firestore๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ Firebase์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋๋ ค๋ฉด Cloud Firestore๋ผ๋ ์ ํ์ ์ฌ์ฉํ๋ฉด ๋๋ค.Realtime Database๊ฐ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ์์ ๋ญ ์ ํํด์ผํ์ง? ํ๋๋ฐ ๊ณต์๋ฌธ์(Cloud Firestore ๋๋ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค)์ ์ ์ ๋ฆฌ๋์ด์๋ค. ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ ๋ฆฌํ ์ ์์ด ๊ณต์๋ฌธ์์์๋ Cloud Firestore๋ฅผ ๊ถ์ฅํ๊ณ ์๋ค. Firebase ์ฝ์์์ ๋ด ํ๋ก์ ํธ๋ฅผ ๋๋ฅด๊ณ Cloud Firestore๋ฅผ ์ ํํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ถ๊ฐ ๋ฒํผ์ ๋๋ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค id์ ์์น๋ฅผ ์ง์ ํด์ค๋ค. ๋ณด์๊ท์น ํญ์์๋ ํ
์คํธ..

1. ํ๋ก์ ํธ ์์ฑ๋จผ์ ๊ตฌ๊ธ ๊ณ์ ์ผ๋ก Firebase Console์ ๊ฐ์
ํ๊ณ , ํ๋ก์ ํธ๋ฅผ ๋ง๋ ๋ค. ๋ฐฐํฌ ๊ธฐ๋ก์ด๋ Firebase๊ฐ ์ ๊ณตํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ์ฝ์์์ ๋์ฌ๋ณด๋์ฒ๋ผ ๋ณด๋ฉด์ ๊ด๋ฆฌํ ์ ์๋ค. ๋ด ํ๋ก์ ํธ๊ฐ ์ค๋ฅธ์ชฝ์ ์์ฑ๋ ๋ชจ์ต 2. Firebase CLI ์ค์น npm์ผ๋ก Firebase CLI ์ค์น npm install -g firebase-tools 3. ํ๋ก์ ํธ ์ด๊ธฐํ ๋ฐฐํฌํ๋ ค๋ ํ๋ก ํธ์๋ ํ๋ก์ ํธ์ ๋ฃจํธ์์ ํ๋ก์ ํธ๋ฅผ ์ด๊ธฐํํ๊ธฐ firebase init hosting ์ด๊ธฐํ ๋ช
๋ น์ ์คํํ๋ฉด, interactive ์ง๋ฌธ์ด ์ญ ๋์จ๋ค. Project setup? Please select an option:๊ธฐ์กด ๋ก์ปฌ ํ๋ก์ ํธ์๋ค Firebase ํ๋ก์ ํธ๋ก ์ฐ๊ฒฐํ๋ ๊ฒ์ด๋, Use an exist..

ํ์npm run dev๋ก ๊ฐ๋ฐํ๊ฒฝ ์คํํ๊ณ ๋ธ๋ผ์ฐ์ ์คํ์ ์๋ฌด๋ฐ ํ๋ฉด์ด ๋์ค์ง์๊ณ ๋ก๊ทธ์๋ ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ์ฐํ๋ ํ์ Uncaught SyntaxError: The requested module '/node_modules/.vite/deps/msw.js?v=3f957acc' does not provide an export named 'rest' ์์ธvite์ ์บ์ํ์ผ์ด ์ต์ ํ๊ฐ ๋์ง ์์ ๋ํ๋๋ ๋ฌธ์ ํ๋ก์ ํธ package.json์์ ๊ด๋ฆฌํ๊ณ ์๋ dependency ์์กด์ฑ์ด ์บ์๋์ด์๋ ์์กด์ฑ์ด๋ ๋ค๋ฅผ ๋ ๋ฐ์ ํด๊ฒฐnode_modules ๋ด๋ถ์ ์๋ vite ์บ์ํ์ผ์ธ `.vite ํด๋` ์ญ์ ์ดํ ๋ค์ npm run dev ์ฌ์คํ ์ด๋๋ ๋์ง์๋๋ค๋ฉด..? `node_modules` ๋ด..

๋ฌธ์ 2๊ฐ์ง ์ธํ์ด ์๋ค. "๋น๋ฐ๋ฒํธ"๋ฅผ ๋ผ๋ฒจ๋ก ๊ฐ์ง๋ ์ธํ 1๊ฐ์ "๋น๋ฐ๋ฒํธ ํ์ธ"์ ๋ผ๋ฒจ๋ก ๊ฐ์ง๋ ์ธํ 1๊ฐ ํ
์คํธ๋ฅผ ๋๋ฆฌ๋๋ฐ ์ด์ํ๊ฒ "๋น๋ฐ๋ฒํธ ํ์ธ" ์ธํ์ ์
๋ ฅ๋์ด์ผํ๋ ๊ฐ์ด ๊ณ์ ์์ "๋น๋ฐ๋ฒํธ" ์ธํ์ ์
๋ ฅ๋๋ ํ์์ด ์์๋ค.๋๋ฒ๊น
ํ๊ธฐ ๋๋ฌด ์ด๋ ค์ ๋๊ฒ์, ํ
์คํธ์์ ์๋ฌ๋๋ ๋ถ๋ถ์ ๋น๋ฐ๋ฒํธ ํ์ธ ์ธํ DOM ์์๋ฅผ ์ฐพ์ง ๋ชปํด์๋ ์๋์๋ค. ๋น๋ฐ๋ฒํธ ํ์ธ ์ธํ์ ์ฐพ์์ง๋๋ฐ, ๊ทธ๊ฒ ์ ๋๋ก๋ ์๋ ๋น๋ฐ๋ฒํธ ํ์ธ ์ธํ์ด ์๋ ์์ ๋น๋ฐ๋ฒํธ ์ธํ์ผ๋ก ์ฐพ์์ง๋ ๋ฌธ์ ์๋ค. ๋๋์ฒด ์์ด๋ด๊น.. ํ๋ค๊ฐ Testing Playground์์ ์๋ํด๋ณด๋ค๊ฐ ๋๋์ด ์์ธ์ ์ฐพ์๋ค. ์์ธ์ปดํฌ๋ํธ๋น๋ฐ๋ฒํธ๋น๋ฐ๋ฒํธ ํ์ธ ํ
์คํธ์ฝ๋screen.getByLabelText('๋น๋ฐ๋ฒํธ') input์ id๊ฐ ๊ฐ์ ๊ฒฝ์ฐ, id๊ฐ ..

๋ฉฐ์น ์ ๋๋ฃ์ ์ฝ๋๋ฅผ ๋ณด๋ค๊ฐ ๋ฐ๋ณด๊ฐ์ ์ง๋ฌธ์ ํ๊ฒ๋์ด ๋ค์ ์ ๋ฆฌํด๋ณด๋ JSON์ ๊ฐ๋
์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๋ ๋ฐ๋๋ฅผ `JSON.stringify()`๋ก ๋ณํํ๋ ์ฝ๋๋ฅผ ๋ณด๋๋ฐ ๊ฐ์๊ธฐ ํท๊ฐ๋ ธ๋ค. stringify๋ ๋ง๊ทธ๋๋ก ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ์ง๋ ฌํ์์ผ์ฃผ๋ ๊ฒ์๋๋๊ฐ? ์ ์๋ฒ์ ์์ฒญ๋ณด๋ผ๋ stringify๋ฅผ ์ํค๋๊ฑฐ์ง..?? ๋๋ .. JSON๊ณผ JavaScript์ object๋ฅผ ํท๊ฐ๋ฆฌ๊ณ ์์๋ ๊ฒ์ด์๋ค.. ๐ฑ ๋จผ์ JSON์ด ๋ญ์ง๋ฅผ ์ ํํ ์์์ผํ๋ค. JSONJSON(JavaScript Object Notation)์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ ์๋ ์ผ๋ฐ ํ
์คํธ ํฌ๋งท์ ๋ปํ๋ค. JavaScript์ ๊ฐ์ฒด ํ๊ธฐ๋ฒ์ ๋ณธ๋ฐ์ JSON syntax๊ฐ ๋ง๋ค์ด์ก๋ค.JSON ํฌ๋งท์ ํ
์คํธ์ผ๋ฟ JavaScript์..

๋ฌธ์ POST/PATCH Mutation ์์ฒญ์ ์บ์ฑ์ ๋ฌดํจํํ์ฌ ๋ฐ์ดํฐ์ ์ต์ ์ํ๋ฅผ ์ ์งํ๋๋ก ์ ์ฉํด๋์๋ค.์ด๋ฏธ์ง ๋ฑ๋ก POST > ์ด๋ฏธ์ง ๋ชฉ๋ก GET > ์ธ๋ค์ผ ์ด๋ฏธ์ง PATCH > ์ ์ฒด ์ด๋ฏธ์ง๋ชฉ๋ก GET ์์๋ก ํธ์ถ๋์ด ๊ฐฑ์ ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋๋ก ์์ํ์ผ๋, PATCH Mutation ์์ฒญ ์ดํ์ GET ์ฟผ๋ฆฌ๊ฐ ์คํ๋์ง ์์์, ์ธ๋ค์ผ์ด๋ฏธ์ง๊ฐ ํ๋ฉด์ ๋ฐ๋ก ๋ฐ์๋์ง ์๋ ๋ฌธ์ ๊ฐ ์์๋ค. Expected Behavior POST > GET > PATCH > GET Current BehaviorPOST > GET > PATCH (๋ธ๋ผ์ฐ์ ๋คํธ์ํฌ) POST > PATCH > GET (์ฝ์) ์ปดํฌ๋ํธ ์ฝ๋//ImageContainer.tsx์๋ฒ์ ์์ฒญ ๋ณด๋ด๋ ์ฝ๋ ์กด์ฌ ์ธ๋ค์ผ ์ค์ ํ๋ ํจ์ const ..

์ด์authoriztion token์ ๋ณด๋ก api์ ์์ฒญ์ ๋ฐ์์ ํ๋ฉด์ ์ ์ ์ ๋ณด๋ฅผ ๋์ฐ๋ ๋ง์ด ํ์ด์ง๊ฐ ์๋ค.ํ
์คํธ๋ฅผ ๋๋ฆฌ๋๋ฐ ํ
์คํธ ํ๊ฒฝ์์ ์๊พธ ์ ์ ์ ๋ณด๊ฐ ๋น๊ฐ์ผ๋ก ๋์ค๋ ์ด์๊ฐ ์์๋ค. ์ปดํฌ๋ํธ ๊ตฌํ ์ ์ ์ ๋ณด๋ฅผ get ํด์ค๋ ค๋ฉด ์ ์ฅ๋ ํ ํฐ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ฒ์ ์์ฒญํด์ response๋ก ๋ฐ์์์ผํ๋ค.์ด๋, ์ธ์ฆ ํ ํฐ์ ๋ก์ปฌ์คํ ๋ฆฌ์ง์์ ํ ํฐ ์ ๋ณด๋ฅผ ๋ฐ์์ค๋๋ฐ, ๋ก์ปฌ ์คํ ๋ฆฌ์ง์์ ํ ํฐ์ ๋ณด๋ฅผ ๋ฐ์์ฌ๋ localStorage Web API๋ฅผ ์ฌ์ฉํด์ localStorage.getItem("token")๋ก ๋ฐ๋ก ๋ฐ์์ค๋ ๊ฒ์ด ์๋๊ณ , store๋ผ๋ 3rd party ํจํค์ง๋ฅผ ํตํด ์คํ ๋ฆฌ์ง์ ์ ๊ทผํ๋ค. //package.json "dependencies": { "store": "2.0.12" }, ๋ฐ..