1.fetch API ๋ฅผ ์ด์ฉํ ๋คํธ์ํฌ ์์ฒญ
2. AXios
fetch๋ ES6๋ถํฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋ค์ด์์ต๋๋ค.
promise๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ก๋ค๋ ๊ฒ
๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ๋ชจ๋ ์ค์น๊ฐ ํ์ํ์ง ์๋ค๋ ๊ฒ
AJAX์ ํ ๋ฐฉ์์ผ๋ก URL ์ฃผ์๋ฅผ ํตํด ์๋ฒ๋ก๋ถํฐ ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ API
: ์นํ์ด์ง์ ๋ ์จ, ๋ฏธ์ธ๋จผ์ง ๋๋ ๊ฐ์ ์ ๋ณด๋ ์ ์ฒด ํ์ด์ง์์ ํด๋น ์์ญ๋ง ๋์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์์ผ ํ๋ฉฐ ์ด๋, ๋น๋๊ธฐ ๋ฐฉ์์ผ๋ก ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํจ. ์๊ฒฉ URL์ ๋งค๊ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฒญ
API (Application Programming Interface)
->์์ฒญ, ์์ ํ๋ ์ ํด์ง ๊ท์น
AJAX (Asynchronous Javascript And Xml)
->๋น๋๊ธฐ์ ์ผ๋ก ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ธฐ์
๋ผ์ฐ์ ํธํ์ฑ์ด ๋จ์ด์ง๊ณ response timeout ์ฒ๋ฆฌ ๋ฐฉ๋ฒ์ด ์๋ ๋ฑ ๊ธฐ๋ฅ์ ์ธ ๋ถ๋ถ์ด ์๋์ ์ผ๋ก ๋ถ์กฑํฉ๋๋ค.
๊ทธ๋ผ์๋ ๋ด์ฅ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ๋งํผ ์์ ์ ์ด์ง ์์ ํ๋ ์์ํฌ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ข์ต๋
fetch() (en-US) ํ๋ก๋ฏธ์ค๋ ๋คํธ์ํฌ์ ์ค๋ฅ๊ฐ ์์๊ฑฐ๋, ์๋ฒ์ CORS ์ค์ ์ด ์๋ชป๋ ๊ฒฝ์ฐ TypeError๋ก ๊ฑฐ๋ถํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋ ๊ฒฝ์ฐ๋ ๊ถํ ๋ฑ ์ค์ ์ ๋ฌธ์ ๊ณ , 404์ ๊ฐ์ ์๋ต์ ๋คํธ์ํฌ ์ค๋ฅ๊ฐ ์๋๋ฏ๋ก ๊ฑฐ๋ถํ์ง ์์ต๋๋ค. fetch()๊ฐ ์ฑ๊ณตํ๋์ง๋ฅผ ์ ํํ ์์๋ด๋ ค๋ฉด ํ๋ก๋ฏธ์ค์ ์ดํ ์ฌ๋ถ๋ฅผ ํ์ธํ ํ, Response.ok (en-US) ์์ฑ์ ๊ฐ์ด true์ธ์ง๋ ํ์ธํด์ผ ํฉ๋๋ค.
axios๋ node.js์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ http ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค.
fetch์ฒ๋ผ promise๋ฅผ ์ง์ํ๋ค๋ ๊ณตํต์ ์ด ์์ง๋ง, fetch์๋ ๋ฌ๋ฆฌ ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ด ์ข๊ณ ํธ๋ฆฌํ๋ฉฐ ๊ธฐ๋ฅ์ด ๋ง์ต๋๋ค!
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น๊ฐ ํ์ํ๋ค๋ ๋จ์ ์ด ์์ง๋ง fetch์ ๋นํด ๊ธฐ๋ฅ์์ผ๋ก ๋ ๋ํ
์ผํ๋ค๋ ํฐ ์ฅ์ ์ด ์์ต๋๋ค.
React์์ httpํต์ ์ ํ ๋์ ์ฃผ๋ก axios๋ฅผ ์ฌ์ฉ!
promise๊ธฐ๋ฐ์ ํธํ์ฑ์ด ์ข๊ณ , ๋ํ ์ผํ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค:)
: axios ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ค์น๊ฐ ํ์!!
1.npm install axios
2.yarn add axios
- ์๋ฒ์ request ๋ณด๋ด๊ณ
- ์๋ฒ๋ก๋ถํฐ response ์ค๋ฉด ์๋ต์ด ์์ ๋์ ์ค์ง ์์์ ๋ ๊ตฌ๋ถํ์ฌ ์ฌ์ฉ!
์๋ฒ์ ์์ฒญ์ ๋ณด๋์ ๋ ์๋ต์ด ์ค๊ธฐ๊น์ง ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก ์๋ฒ์ ๋ณด๋ด๋ ์์ฒญ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ฉฐ, ๊ทธ ์ดํ์ ์๋ต์ ๋ฐํ์ผ๋ก ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ .then ์ด๋ await๋ฅผ ์ด์ฉํฉ๋๋ค.
์ฐ์ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๋, axios์ request ๋ฉ์๋์๋ ๋ค์๊ณผ ๊ฐ์ ๋ค๊ฐ์ง ๋ฉ์๋๋ค์ด ์์ต๋๋ค!
์ด ๋ค ๊ฐ์ง ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ด ๋ณด๋ด์ผํ๋ ์ ๋ณด๋ค์ด ์์ต๋๋ค.