๋ฉ์ธ ํ๋ก์ ํธ์์ ํ
ํ๋ฆฟ์ ์ฌ์ฉํ ๋, ์ ์ฌ์ฉํ๋์ง ์ ๋ฆฌํ๋ ์ค์ ์๊ฒ ๋ ์ฌ์ค์ด๋ค. ์ fetch ๋ณด๋ค axios๋ฅผ ์ฐ๋ ๊ฒ์ด ์ข์๊น? axios์ fetch๋ ๋ชจ๋ HTTP ์์ฒญ์ ๋ณด๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ ๋๊ตฌ์
๋๋ค. ํ์ง๋ง axios๋ fetch๋ณด๋ค ํธ๋ฆฌํ API์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ํ๋ก๋ฏธ์ค ๊ธฐ๋ฐ์ผ๋ก ๋น๋๊ธฐ ์์
์ ์ฒ๋ฆฌํ๋ ๋ฐ ์์ด์ ๋ ์ง๊ด์ ์ด๊ณ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์๋ ์์ ์ฝ๋๋ฅผ ํตํด axios๊ฐ fetch๋ณด๋ค ์ด๋ป๊ฒ ํธ๋ฆฌํ์ง ์์๋ณด๊ฒ ์ต๋๋ค. 1. GET ์์ฒญ axios๋ก GET ์์ฒญ์ ๋ณด๋ด๋ ์์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: axios.get('/api/users') .then(response => { // ์๋ต ๋ฐ์ดํฐ ์ฒ๋ฆฌ console.log(response.data); }) .catch(..
์ ์ฒด ๊ธ
๐ฉ๐ป java, mysql, android, php, javascript๋ฅผ ๋ค๋ฃน๋๋คPre-project 44๊ธฐ ์ผ๋ก์ค๋ฒํ๋ก์ฐ ํ ๊นํ๋ธ: https://github.com/codestates-seb/seb44_pre_033 ๋
ธ์
: https://www.notion.so/codestates/f93bef9f78744dc8a362e8e58f22a005 ํผ๊ทธ๋ง: https://www.figma.com/file/rZQ9dlYffNx9ynTCKaqPtC/pre_project_033?type=design&node-id=2%3A19&mode=design&t=94ODJ6UaRZwP6CFm-1 ์์ฝํ๊ณ 1. api ๋ช
์ธ์ (์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ด๋์ ์ฐ์ผ๊ฒ์ธ์ง, ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ์ ์ฅํ ๊ฑด์ง, ์ด๋ป๊ฒ ๊ฐ์ ธ์ฌ์ง) ๊ธฐํ์ด ์ค์ํ๊ตฌ๋... api ๋ช
์ธ์๋ฅผ ์์ธํ๊ฒ ์ ์ด์ผ ํ๋๊ตฌ๋ swagger api ๋ฌธ์ํ h..
json ์๋ฒ ์ค์น์ ์ฌ๋๋ฐฉ๋ฒ https://www.npmjs.com/package/json-server json-server Get a full fake REST API with zero coding in less than 30 seconds. Latest version: 0.17.3, last published: 3 months ago. Start using json-server in your project by running `npm i json-server`. There are 316 other projects in the npm registry using json-ser www.npmjs.com npm install -g json-server npx json-server --watch posts..
์ด๋ฏธ json server์ ์๋ ์ ์ ์ ๋ณด๋ผ, ๊ฐ์
์ด ๋ถ๊ฐ๋ฅํ ์
๋ ฅ๊ฐ์ธ ๋ฐ๋ ํ์ด์ง๊ฐ ๋์ด๊ฐ๋ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค ์ด๋ฏธ ์กด์ฌํ๋ ์ด๋ฉ์ผ ๋น๋ฒ ์
๋ ฅํ๋ฉด ์๋ฌ๋ฉ์ธ์ง๊ฐ ๋ณ๊ฒฝ๋์ด์ผ ํ๋๋ฐ, ๋ณ๊ฒฝ์๋๊ณ ์ด๊ธฐ ์ํ๋ก ์๋๊ฒ ๋ฌธ์ ์๋ค. Navigate๋ฅผ ์๋ฃ์ผ๋ฉด, ์๋ฌ๋ฉ์ธ์ง๋ ๋ณ๊ฒฝ๋๊ณ ํ์ด์ง๋ ์๋์ด๊ฐ๋ค. Navigate ๋ฅผ ๋ฃ์ผ๋ฉด, ์๋ฌ๋ฉ์ธ์ง ๋ณ๊ฒฝ ์๋๊ณ ํ์ด์ง๋ ๋์ด๊ฐ๋ค. ์ด์ ๋ ์๋ฌ๋ฉ์ธ์ง ๋ณ๊ฒฝ์ state๋ก ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๋น๋๊ธฐ์ ์ผ๋ก ์คํ๋๋ค. ์ฆ, Navigate๋ณด๋ค ์๋ฌ๋ฉ์ธ์ง ๋ณ๊ฒฝ์ด ๋ฆ๊ฒ ์คํ๋๋ค. ๊ทธ๋์ ๋ฐ๋ก ํด๋ฆญ์ ๋๋ฅด์๋ง์ (์๋ฌ๋ฉ์ธ์ง ๋ณ๊ฒฝ์์ด) ํ์ด์ง๊ฐ ๋์ด๊ฐ๋ ๊ฒ์ด์๋ค ๊ณ ๋ฏผ์ ๋ง์ด ํ๋๋ฐ ํ์๋ถ์ด ๊ฐ์ด ๊ณ ๋ฏผํด์ ํด๊ฒฐ์ ํด์ฃผ์
จ๋ค !! (์ง์ง) ํด๊ฒฐ ==> ์ง์๋! useStateํ
์ผ๋ก ๋ณ๊ฒฝ๋๋ ๊ฐ๋ค์ ..
๋ํ์ ์ธ ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ๊ธฐ์ ๋ก๋ JWT ๊ฐ ์์ต๋๋ค. JWT (JSON Web Token) ๋ฐ์ดํฐ ์ ์ก์ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ํ ํฐ๊ธฐ๋ฐ ์ธ์ฆ๊ธฐ์ ๋ก, JSON ํ์์ผ๋ก ์ ์ฅํ ์ ๋ณด(payload)๋ฅผ ์ํธํ(์๋ช
)ํ์ฌ ์ ์กํฉ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ผ๋ ์ธ์ฆ์ ๋ณด๋ฅผ ์ํธํ๋ JWT ํ ํฐ์ผ๋ก ์ ๊ณตํ๊ณ , ์๋ฒ๋ ์ด ํ ํฐ์ ๊ฒ์ฆํ์ฌ ์ธ์ฆ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. JWT์ ๊ตฌ์ฑ์์ JWT๋ ์ด๋ป๊ฒ ํ ํฐ์ ์ํธํํ๊ณ ์ด๋ฅผ ๊ฒ์ฆํ๋ ์ง ์์๋ด
์๋ค JWT ๊ธฐ์ ๋ก ๋ง๋ ํ ํฐ์ ๋ณดํต ๋ค์๊ณผ ๊ฐ์ ํ์์ ๋ฌธ์์ด๋ก ์ด๋ฃจ์ด์ง๋๋ค ์ฌ๊ธฐ์์ ์ (.)์ด ์ฐํ ๋ถ๋ถ์ ๊ธฐ์ค์ผ๋ก ํค๋(Header) , ํ์ด๋ก๋(Payload), ์๊ทธ๋์ณ(Signiture) ์ด๋ ๊ฒ 3๋ถ๋ถ์ผ๋ก ๋๋ฉ๋๋ค ํค๋(Header) ๊ฐ์ฅ ์์ ์์นํ ํค๋์๋ ๋ง..
์ธ์
์ด๋ ์ฌ์ฉ์๊ฐ ์ธ์ฆ์ ์ฑ๊ณตํ ์ํ๋ฅผ ๋งํ๊ณ , ํ ํฐ์ด๋ ๊ตํต์น์ฐจ๊ถ๊ณผ ๊ฐ์ด, ๋ฌด์ธ๊ฐ๋ฅผ ์ด์ฉํ ์ ์๋ ๊ถํ์ด๋ ์๊ฒฉ์ ๋ํ๋ด๋ ์งํ์
๋๋ค ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ๋ฐฉ์์ ์ธ์
๊ธฐ๋ฐ ์ธ์ฆ์ด ๊ฐ์ง๊ณ ์๋ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ณ ์ ๋ง๋ค์ด์ก์ต๋๋ค. ์ธ์
๊ธฐ๋ฐ์ธ์ฆ์ ์๋ฒ์์ ์ ์ ์ ์ํ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค. ๊ทธ๋์ ๊ฐ๋ฐ์๋ค์ ์๋ฒ์ ๋ถ๋ด์ ์ค์ด๊ธฐ ์ํด์, ์๋ฒ์ ์ฌ์ฉ์์ ์ธ์ฆ์ํ๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์๋ ํด๋ผ์ด์ธํธ์ ์ด๋ฅผ ์ ์ฅํ๋ ๋ฐฉ๋ฒ์ ๊ณ ์ํ์๊ณ , ๊ทธ๊ฒ ๋ฐ๋ก ํ ํฐ์
๋๋ค. ์ธ์
๊ธฐ๋ฐ ์ธ์ฆ๋ฐฉ์ ๋จผ์ , ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ๋ฐฉ์์ด ์๊ฒจ๋ ๋ฐฐ๊ฒฝ์ธ, ์ธ์
๊ธฐ๋ฐ ์ธ์ฆ์ ๋ํ ๊ฐ๋จํ๊ฒ ์์๋ณผ๊น์? 1. ์ ์ ๊ฐ ์ธ์ฆ์ ๋ณด๋ฅผ ๋ด์ ์๋ฒ์ ๋ก๊ทธ์ธ ์์ฒญ์ ๋ณด๋
๋๋ค 2. ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ์ ์ ์ ์ธ์ฆ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค 3. ์ธ์ฆ์ ์ฑ๊ณตํ๋ค๋ฉด, ํด๋น ์ ์ ์ ๋ํ..
ํ์ฌ useReducer๋ก ๋ง๋ ํ๋ก์ ํธ๋ฅผ ์ค์ ์ง์ค์ ์ ์ญ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด RTK์ผ๋ก ๋ฆฌํฉํ ๋งํ๋ ์ค์ด๋ค. (์ฐ์ด๋ ์ฉ์ด๋ ๋น์ค๋ฌด๋ฆฌ ํ์ง๋ง, ๋ค๋ฅธ ์ ์ด ์์ด์ ๋ฆฌํฉํ ๋ง ํ๋ฉด์ ๋ฐฐ์ฐ๋์ค~) ๊ทธ๋ฐ๋ฐ, Components์ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ TodoCard(-TodoItem) , CompletedCard(-CompletedItem) ๊ฐ๊ฐ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์์์๋ ๋ถ๊ตฌํ๊ณ , ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. TodoCard์ ๋ชจ๋ฌ์ฐฝ์ ์ด์ด์ ์ ๋ณด๋ฅผ ์
๋ ฅํ๋ฉด, CompletedCard ์๋์ ๋ฉ๋ชจ๊ฐ ๋์ ๋๋ค๋ ์ ์ด๋ค. ํ๊ฒ์ด ์๋ชป๋์๋ ์ถ์ด import์ export ๋ฑ์ ํ์ธํ์ง๋ง, ๊ฒฝ๋ก ๋ฌธ์ ๋ ์์๊ณ , ์คํ์ ๋ฌธ์ ๋ ์๋์๋ค... ๋ฐ๋ธํด์ ๋ด๋, ์๊พธ modalCompletedItem์ด ์
๋ฐ์ดํธ ๋๋ ์ํฉ์ด๋ค... const He..