ํ์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" }, ๋ฐ..
์์กด์ฑ ํจํค์ง "devDependencies": { "jest": "29.3.1", "react": "18.2.0", ... } ๋ฌธ์ test ํ๊ฒฝ์์ png ์ด๋ฏธ์ง ํ์ผ์ ๋ชป์ฝ์ด์ค๋ ์๋ฌ๊ฐ ๋ฐ์ error: `process()` or/and `processAsync()` method of code transformer found at fileTranformer.cjs "/fileTransformer.cjs" should return an object or a Promise resolving to an object. ์์ธjest๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๋๋ฅผ JavaScript๋ก ์คํํ๋ค. Node๊ฐ ์ง์ํ์ง ์๋ syntax์ธ JSX, TypeScript ๊ฐ์ ์ฝ๋๋ฅผ ๊ณง๋ฐ๋ก ์ฌ์ฉํ๋ ค๋ฉด pla..
๋ค์ด๊ฐ๊ธฐํ๊ฒฝnode 20.16 ํจํค์ง ์์กด์ฑreact testing library 13.4.0redux toolkit 1.9.5 msw 2.3 vite 5.2.11typescript 4.9.4jest 29.3.1 msw ํธ๋ค๋ฌ๋ก ์๋ฒ ์๋ต ๋ชจํน, RTK Query๋ก API ํธ์ถํ๋ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ๋ ์๋ฌ ๋ชจ์zip... ํ
์คํธ๋ก ์ฝ๋ ํ์ง์ ํฅ์์ํค๊ณ ์ ํ์ผ๋ jest testing framework + msw 2 ํ๊ฒฝ์์ ์
ํ
ํ๋ค๊ฐ ์ ์ ๊ฑด๊ฐ์ ์ํ์ ๋ฐ์๋คmsw ์์๋ ์๊ธด๊ฒ ์ด๋ ๊ฒ ์
ํ
ํ๋๊ฒ ๊ท์ฐฎ์ผ๋ฉด ~ ๋ ๋ชจ๋ํ ํ
์คํ
ํ๋ ์์ํฌ ์ฌ์ฉํ๋ ด~ ์ด๋ผ๊ณ ๊ถ์ฅ..If you find this setup cumbersome, consider migrating to a modern testing fra..
๋๋ณด๊ธฐ5์์ ๊ธฐ์กด ์ฒ์ ์ฐฝ๋ฆฝ ๋ฉค๋ฒ์๋ CTO๋ ํด์ฌ๋ก ๊ทธ์ ํจ๊ป ๋ค์ด์จ ๋ง์ ์์ง๋์ด๋ค์ด ํ์ฌ๋ฅผ ๋ ๋ฌ๊ณ ํ์ฌ๋.. ์ด๋๊ฐ ๋ถ ๋ ์๋ ์ด์ํ๊ณ ๋ ๊ณ์ ์ถ ์ฒ์ง ๋๋์ด ๋๋ ๋ถ์๊ธฐ๊ฐ ๊ณ์๋์๋ค. ํ๋ก ๋จ๊ฒจ์ง ์ฃผ๋์ด๋ค์ ๊ฐ ๊ธธ์ ์์ ๋ฏํ ์ํฉ์ ๋์ฌ์ก๋ค. ๋๊ตฐ๊ฐ ๊ฒฐ์ ์ ํด์ค์ผํ๋๋ฐ ์๋ฌด๋ ๊ฒฐ์ ํด์ฃผ๋ ์ฌ๋์ด ์๊ณ ... ์ด๊ฑธ ์ง๊ธ ๊ฐ๋ฐํด๋ ๋ถ๋ช
๋ ๋ฐ๋ ๊ฒ ๊ฐ์.. ๋ค๋ค ๋๊ธฐ๋ถ์ฌ๊ฐ ๋ง์ด ์ฌ๋ผ์ง ์ฑ ์ ์ฒด๊ธฐ๋ฅผ ๋ณด๋ด๊ณ ์๋ค. ์๋ก์ด ๋งค๋์ง๋ ๋ฒจ์ ๋ถ์์ ์๋๊ณ ์๋ ์ํฉ์ด์๋๋ฐ.. ๊ฐ์๊ธฐ ํ์ฌ๋ ์๊ธ์ด ์๋์ค๊ณ ..?? ๋์ค์ด ๋ ์ง๊ธ์ ์ด์ ์๊ฒ๋์์ง... ํ๋ฐ๊ธฐ์๋ ์๋ก์ด era๊ฐ ์์๋จ๊ณผํจ๊ป.. ๊ฑฐ์ ๋ชจ๋๊ฐ ํด์ฌ๋ฅผ ํ๊ฒ๋๋.. ์ํฉ์ด.. ๋๋ํ๋ค. - ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ ์งํ์๋ก์ด era๋ก ๋ค์ด์๋ฉด์ ๋งค์ผ ์์นจ ๋ฐ์ผ๋ฆฌ..