๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • What would life be If we had no courage to attemp anything?
Language/JavaScript

[JavaScript] AJAX & JSON

by DevIseo 2023. 1. 15.

AJAX

  • Asynchronous JavaScript And XML (๋น„๋™๊ธฐ์‹ JavaScript์™€ XML)
  • ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด XMLHttpRequest ๊ฐ์ฒด๋ฅผ ํ™œ์šฉ
  • JSON, XML, HTML ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ˜•์‹ ๋“ฑ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ํฌ๋งท์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
    • [์ฐธ๊ณ ] AJAX์˜ X๊ฐ€ XML์„ ์˜๋ฏธํ•˜๊ธด ํ•˜์ง€๋งŒ, ์š”์ฆ˜์€ ๋” ๊ฐ€๋ฒผ์šด ์šฉ๋Ÿ‰๊ณผ JavaScript์˜ ์ผ๋ถ€๋ผ ๋Š” ์žฅ์  ๋•Œ๋ฌธ์— JSON์„ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•จ

|ํŠน์ง•

  • ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ reload(์ƒˆ๋กœ ๊ณ ์นจ)๋ฅผ ํ•˜์ง€ ์•Š๊ณ ์„œ๋„ ์ˆ˜ํ–‰๋˜๋Š” โ€œ๋น„๋™๊ธฐ์„ฑโ€
    • ์„œ๋ฒ„์˜ ์‘๋‹ต์— ๋”ฐ๋ผ ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€๋ถ„๋งŒ์„ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Œ
  • AJAX์˜ ์ฃผ์š” ๋‘๊ฐ€์ง€ ํŠน์ง•์€ ์•„๋ž˜์˜ ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
    1. ํŽ˜์ด์ง€ ์ƒˆ๋กœ ๊ณ ์นจ ์—†์ด ์„œ๋ฒ„์— ์š”์ฒญ
    2. ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰

|XMLHttpRequest ๊ฐ์ฒด

  • ์„œ๋ฒ„์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋ฉฐ ์ „์ฒด ํŽ˜์ด์ง€์˜ ์ƒˆ๋กœ ๊ณ ์นจ ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„ ์˜ฌ ์ˆ˜ ์žˆ์Œ
  • ์‚ฌ์šฉ์ž์˜ ์ž‘์—…์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ํŽ˜์ด์ง€ ์ผ๋ถ€๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ฃผ๋กœ AJAX ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์‚ฌ์šฉ
  • ์ด๋ฆ„๊ณผ ๋‹ฌ๋ฆฌ XML๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ์Œ
  • ์ƒ์„ฑ์ž
    • XMLHttpRequest()

HTTP ์š”์ฒญ ๋ฉ”์†Œ๋“œ

HTTP ์š”์ฒญ ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜ ๋ชฉ์  ํŽ˜์ด๋กœ๋“œ

GET index/retrieve ๋ชจ๋“ /ํŠน์ • ๋ฆฌ์†Œ์Šค ์ทจ๋“ X
POST create ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ O
PUT replace ๋ฆฌ์†Œ์Šค์˜ ์ „์ฒด ๊ต์ฒด O
PATCH modify ๋ฆฌ์†Œ์Šค ์ผ๋ถ€ ์ˆ˜์ • O
DELETE delete ๋ชจ๋“ /ํŠน์ • ๋ฆฌ์†Œ์Šค ์‚ญ์ œ X

 

Reference

์ด์›…๋ชจ ์ €, ใ€Œ๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ Deep Diveใ€, ์œ„ํ‚ค๋ถ์Šค(2020)

 

'Language > JavaScript' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JavaScript] ๋น„๋™๊ธฐ  (0) 2023.01.17
[JavaScript] API  (0) 2023.01.16
[FE/JavaScript] ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น(๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ํ• ๋‹น)  (0) 2022.07.06
[FE/JavaScript] strict mode  (0) 2022.06.27
[FE/JavaScript]this  (0) 2022.06.23

๋Œ“๊ธ€