๋ชฉ์ฐจ
1. fetch()
2. fetchํจ์๋ฅผ ์ฌ์ฉํด backend API๋ถ์ด๊ธฐ
Ajax์ ํฌ์คํ ์ ์๊ธฐ์์ ๐
๋๊ทผ๋๊ทผ +_+ !
์ค๋์ backend๋ถ๋ค์ด ๋ง๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ fetchํจ์๋ฅผ ํตํด ๋ด๊ฐ ๋ง๋ ์์คํ๊ทธ๋จ ๋ก๊ทธ์ธ์ฐฝ์์ ์ ํจ์ฑ ์ฒดํฌ๋ฅผ ํด๋ณด๋ ์๊ฐ์ ๊ฐ์ก๋ค. ๊ทธ๋ฆฌ๊ณ ์ ํจํ ๊ฐ์ ๋๊ธฐ๋ฉด ๋ฐ์ ์ ์๋ ๊ท์ฌ์ด ํ ํฐ๋ค๋ ๋ฐ์๋ค!
1-1. fetch์ ๊ธฐ๋ฅ
๊ธฐ๋ณธ ๋ฌธ๋ฒ
let promise = fetch(url, [options])
response / request header๋ถ๋ถ์ ๋ณ๋๋ก ๋ค๋ฃจ์ง ์๊ฒ ๋ค.
ํจ์ ์ค๋ช
GET ์ด์ธ์ ์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ์ถ๊ฐ ์ต์ ์ ์ฌ์ฉํด์ผ ํ๋ค.
method : GET, POST, PATCH ๋ฑ http method๋ฅผ ์ ๋ ฅํ๋ค.
body : ๋ฌธ์์ด(์ : JSON)
ํต์ ์ ํ ๋๋
string
ํํ์ JSON์ผ๋ก ๋ณด๋ด์ผ ํ๊ธฐ ๋๋ฌธ์JSON.stringify()
๋ผ๋ ๋ฉ์๋๋ฅผ ํ์ฉํด์ ํฌ๋งท์ ๊ธฐ์กด์ Object์์ String์ผ๋ก ๋ณํํด์ค๋ค.ํต์ ์ ๋ค๋ฅธ ๋ก์ง์ ๋นํด ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ผ์ then ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค.
backend์์ ์์ ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด ๋ค์ด์๋ ์๋ฒ ์ฃผ์๋ฅผ API๋ผ๋ ๋ณ์๋ก ์ง์ ํด๋๊ณ ๐, fetchํจ์๋ฅผ ์ฌ์ฉํด ํต์ ์ ์์ํ๋ค.
์๋ ์ฝ๋์์
์ฒซ ๋ฒ์งธ then์์๋ server์์ ๋ณด๋ด์ค response๋ฅผ Object ํํ๋ก ๋ณํํด์ฃผ๊ณ
๋ ๋ฒ์งธ then์์๋ object๋ก ๋ณํํ response๋ฅผ console.log๋ก ํ์ธํ๋ค.
์ฌ๊ธฐ์ ์ํ๋ ๋ก์ง์ ๊ตฌํํ๋ฉด ๋๋ค!
fetchํจ์ ๋ด body๋ถ๋ถ์ ํญ๋ชฉ์ backend์์ ์ง์ ํ key์ ์ผ์นํด์ผํ๋ค.(๋ฐ์ดํฐ typeํ์ธ ์ ์!!)์์ Authorization์ ์๋ backend๋ถ์ key๊ฐ๊ณผ ์ผ์นํ๋ฉด ์ฐ์ ๋์ local storage์ ๋ด๊ธฐ๊ฒ ๋๋๋ฐ ๋ฏธ์ฒ ๊ทธ๊ฒ๊น์ง ํ์ธํ์ง ๋ชปํ์ฌ ์ฒซ ํ ํฐ๋ค์ ๋ค ์บก์ณํด๋ฒ๋ ธ๋ค...๐
์ฝ์์ฐฝ์ ์ฐํ ๊ฐ๋ค์ด ๋ญ๋ผ๊ณ .. ์์ด๋ ๊ฒ ๊ท์ฝ๋!! ๋ํฌ๋ค๐ฅฒ ย ์์ผ๋ก ์์ ํ๊ฒ ๋ณด๊ดํด์ค๊ฒ๐
์ ๋ฌ๋ฐ์ ํ ํฐ๋ค์ ์์ ํ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก JWT(์กด๋งํฑ ์๋)์ ๋ํด์๋ ํ์ตํ ์์ ์ด๋ค!