ALOHA CLASS
/
Front-End
/
Javascript
Search
Duplicate
Share
AJAX(Asynchronous JavaScript and XML)
๋น๋๊ธฐ ์์ฒญ
๋๊ธฐ์
์์ฒญ ํ, ์๋ต์ด ์ฌ ๋๊น์ง ๊ธฐ๋ค๋ฆฐ๋ค.
๋น๋๊ธฐ์
์์ฒญ ํ, ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ์์ฒญ์ ๋ ํ๋ค.
๋น๋๊ธฐ ์์ฒญ
XMLHttpRequest
XMLHttpRequest
๋ ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ๊ฐ์ฒด๋ก, ๋น๋๊ธฐ์ ์ผ๋ก ์๋ฒ์ ํต์ ํ ์ ์๋๋ก ๋์์ค๋๋ค. ์ด๊ธฐ์ ์ฃผ๋ก ์ฌ์ฉ๋์์ผ๋, ์ฝ๋ฐฑ ์งํฅ์ ์ด๊ณ ๋ณต์กํ API ๊ตฌ์กฐ๋ก ์ธํด ๊ฐ๋ ์ฑ์ด ๋จ์ด์ง๋ ๋จ์ ์ด ์์ต๋๋ค.
์ฃผ์ ์์ฑ ๋ฐ ๋ฉ์๋
XMLHttpRequest
fetch
JavaScript์์ ์ ๊ณตํ๋ API ์ค ํ๋๋ก, ๋คํธ์ํฌ ์์ฒญ์ ๋ง๋ค๊ณ ์๋ต์ ๋ค๋ฃฐ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
fetch
API๋ Promise๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, ๋น๋๊ธฐ์ ์ผ๋ก ๋คํธ์ํฌ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
fetch() ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ธ๋ผ์ฐ์ ๋ด์ฅ ํจ์๋ก, ๋คํธ์ํฌ์์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๋ ๋์์ ๊ฐ๊ฒฐํ๊ฒ ํํํฉ๋๋ค.ย fetch() ํจ์๋:
โข
์ฒซ ๋ฒ์งธ ์ธ์๋ก URL์ ๋ฐ์ต๋๋ค.
โข
๋ ๋ฒ์งธ ์ธ์๋ก ์ต์ ๊ฐ์ฒด๋ฅผ ๋ฐ์ต๋๋ค.
โข
Promise ํ์ ์ ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
๋ฐํ๋ ๊ฐ์ฒด๋:
โข
API ํธ์ถ์ด ์ฑ๊ณตํ์ ๊ฒฝ์ฐ์๋ ์๋ต(response) ๊ฐ์ฒด๋ฅผ resolveํฉ๋๋ค.
โข
์คํจํ์ ๊ฒฝ์ฐ์๋ ์์ธ(error) ๊ฐ์ฒด๋ฅผ rejectํฉ๋๋ค.
fetch
jQuery AJAX
โข
jQuery ajax ๊ฐ๋ฐ๋ฌธ์
jQuery.ajax()
Data to be sent to the server. If the HTTP method is one that cannot have an entity body, such as GET, the data is appended to the URL.
AJAX๋?
โข
AJAX (Asynchronous JavaScript and XML)
ํต์ฌ ํฌ์ธํธ
์์ฒญ โ ์๋ต์ด ์ค๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ ํ๋ฉด์ ๊ณ์ ๋์ํ๋ค (๋น๋๊ธฐ)
$.ajax
axios
axios
๋ JavaScript์ HTTP ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๋ธ๋ผ์ฐ์ ์ Node.js ํ๊ฒฝ์์ ๋ชจ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
axios
๋ Promise๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ๊ณผ ๋ค์ํ ์ค์ ์ต์ ์ ์ ๊ณตํ์ฌ ๋คํธ์ํฌ ์์ฒญ์ ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ๋์์ค๋๋ค.
Axios ๊ธฐ๋ณธ ๊ตฌ์กฐ
Axios์ ์ฃผ์ ๋ฉ์๋
axios
๊ฐ์
โข
Promise
โข
Promise ์ํ
โข
์ฃผ์ ๋ฉ์๋
โข
๊ธฐ๋ณธ ์์ ์ฝ๋
โข
API ํธ์ถ ์์ ์ฝ๋
Promise
๋น๋๊ธฐ ์์ ์ ์ฑ๊ณต ๋๋ ์คํจ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฐ์ฒด
Promise
async & await
JavaScript์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐํธํ๊ฒ ๋ง๋๋ ํค์๋์ ๋๋ค.
โข
Promise
โข
async
โข
await
async
async
: "๋น๋๊ธฐ" ๋๋ "๋น๋๊ธฐ์"์ด๋ผ๋ ์๋ฏธ๋ก ํด์๋ฉ๋๋ค. ์์ด ๋จ์ด
asynchronous
์ ์ค์๋ง๋ก, ๋์์ ์ผ์ด๋์ง ์๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
await
await
: "๊ธฐ๋ค๋ฆฌ๋ค" ๋๋ "๋๊ธฐํ๋ค"๋ผ๋ ์๋ฏธ๋ก ํด์๋ฉ๋๋ค. ์์ด ๋์ฌ
await
์์ ์ ๋ํ ๊ฒ์ผ๋ก, ์ด๋ค ์ผ์ด ์๋ฃ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
async & await