For Beginners

[AJAX] Asynchronous Javascript and XML ๊ธฐ์ดˆ - 1 ๋ณธ๋ฌธ

2021๋…„ ์ž๋ฃŒ/WEB

[AJAX] Asynchronous Javascript and XML ๊ธฐ์ดˆ - 1

.log 2021. 3. 9. 09:20
728x90

๐Ÿ‘‰ AJAX๋ž€?

     ๋น„๋™๊ธฐ ๋ฐฉ์‹์˜ ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ, xml๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

๐Ÿ‘‰ ๋น„๋™๊ธฐ๋ž€?

     ํšŒ์› ๊ฐ€์ž…์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์กํ–ˆ์„ ๋•Œ, ํšŒ์› ๊ฐ€์ž… ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„์ด ํ๋ฅด๊ณ  ํšŒ์› ๊ฐ€์ž… ์™„๋ฃŒ ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค.

     ์ฆ‰, ์‘๋‹ต ํŽ˜์ด์ง€๊ฐ€ ๋‚˜์˜จ๋‹ค.

     ๋„ค์ด๋ฒ„๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.

     ์•„์ด๋”” ์ค‘๋ณต ์ฒดํฌ๊ฐ€ ์—†๋Š” ํผ์ธ ๊ฒฝ์šฐ, ์„œ๋ฒ„์— ๋™์ผํ•œ ์•„์ด๋””๋Š” ์กด์žฌํ•  ์ˆ˜ ์—†๋‹ค.

     ๊ทธ ๊ฒฝ์šฐ, ์‘๋‹ต ํŽ˜์ด์ง€๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋  ์ˆ˜ ์žˆ๋‹ค.

     ๊ฒฐ๊ณผ์ ์œผ๋กœ, ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์— ๋”ฐ๋ผ ์‘๋‹ต ํŽ˜์ด์ง€์˜ ํ™”๋ฉด์ด ๋‹ฌ๋ผ์ ธ์•ผ ํ•œ๋‹ค.

     html์ด reloading๋  ๋•Œ, html ์ •๋ณด๋ฅผ ๋ฟŒ๋ฆฌ๋Š” ๊ฒƒ์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ‘‰ ajax์™€ ์ผ๋ฐ˜ ์š”์ฒญ์˜ ์ฐจ์ด

์ผ๋ฐ˜ ์š”์ฒญ ajax ์š”์ฒญ
data๋ฅผ ์ž…๋ ฅ ํ›„ ์ด๋ฒคํŠธ ๋ฐœ์ƒ data๋ฅผ ์ž…๋ ฅ ํ›„ ์ด๋ฒคํŠธ ๋ฐœ์ƒ
์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋กœ์ง์ฒ˜๋ฆฌ ์„œ๋ฒ„์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„, text, XML, JSON์œผ๋กœ ์‘๋‹ต
logic ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์‘๋‹ต ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑ, client์— ์ „์†ก ํ™”๋ฉด ์ „ํ™˜ ์—†์ด ์‘๋‹ต ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑ

 

๐Ÿ‘‰ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํ˜ธ ์ž‘์šฉ

     ๋ชจ๋ฐ”์ผ๋กœ ๋“ค์–ด๊ฐ”์„ ๋•Œ์˜ ๋ฌธ์ œ์ 

     ๋งŽ์€ ๊ฒƒ์„ ๋กœ๋”ฉํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ๋งŒํผ ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ ์š”๊ธˆ์ด ๋น ์ ธ๋‚˜๊ฐ„๋‹ค.

     

๐Ÿ‘‰ Javascript AJAX

     XMLHttpRequest : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ Ajax ๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด.

     ์‹ค์ œ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์€ ๋ธŒ๋ผ์šฐ์ €์˜ Ajax ์—”์ง„์—์„œ ์ˆ˜ํ–‰.

     ์ง์ ‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ Ajax๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ € ๋ณ„๋กœ ํ†ต์‹  ๋ฐฉ์‹์ด ๋‹ฌ๋ผ ์ฝ”๋“œ ๋ณต์žก.

 

๐Ÿ‘‰ GET, POST, PUT, DELETE

์ „๋‹ฌ ๋ฐฉ์‹ CRUD
POST C
GET R
PUT U
DELETE D

 

๐Ÿ‘‰ AJAX ํ•จ์ˆ˜

์˜ต์…˜ ์†์„ฑ ์ด๋ฆ„ ์„ค๋ช… ์ž๋ฃŒํ˜•
async ๋™๊ธฐ, ๋น„๋™๊ธฐ๋ฅผ ์ง€์ • Boolean
url ๋Œ€์ƒ url์„ ์ง€์ • String
data ์š”์ฒญ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ง€์ • Object. String
type GET ๋˜๋Š” POST ๋“ฑ์„ ์ง€์ • String
success(data, status, xhr) Ajax ์„ฑ๊ณต ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์ง€์ • Function, Array

 

๐Ÿ‘‰ $.get(), $.post()

     type: GET ์ด๋ ‡๊ฒŒ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, $.get() ์ด๋ ‡๊ฒŒ ์ง€์ •ํ•ด์ฃผ๊ณ ,

     url์„ $.get(url, function(response){}); ์ด๋Ÿฐ์‹์œผ๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค.

GET ๋ฐฉ์‹์˜ ํŠน์ง• POST ๋ฐฉ์‹์˜ ํŠน์ง•
url์— ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จ์‹œํ‚จ๋‹ค. url์— ๋ณ€์ˆ˜๋ฅผ ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์š”์ฒญํ•œ๋‹ค.
url์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์–ด, ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค. url์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š์•„์„œ ๋ณด์•ˆ์ด ๋˜์–ด์žˆ๋‹ค.
์ „์†กํ•˜๋Š” ๊ธธ์ด์— ์ œํ•œ์ด ์žˆ๋‹ค. ์ „์†กํ•˜๋Š” ๊ธธ์ด์— ์ œํ•œ์ด ์—†๋‹ค.
์บ์‹ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์บ์‹ฑํ•  ์ˆ˜ ์—†๋‹ค.
๋ฐ์ดํ„ฐ๋ฅผ ํ—ค๋”์— ํฌํ•จํ•˜์—ฌ ์ „์†กํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋””์— ํฌํ•จํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.

 

๐Ÿ‘‰ Node์™€ Ajax์™€์˜ ์ฐจ์ด์ (์ •ํ™•ํ•˜์ง€ ์•Š์Œ)

Node: ํ•„์š”ํ•œ ๋‚ด์šฉ์„ html์— ๊ทธ๋Œ€๋กœ ์ ๋Š”๋‹ค.
Ajax ; ์‹ค์ œ ์‹คํ–‰์— ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋‚ธ๋‹ค.

 

๐Ÿ‘‰ ๋ฐ์ดํ„ฐ ์ „์†ก ํ˜•์‹ : CSV

  • Comma Seperated Values
  • ๊ฐ ํ•ญ๋ชฉ์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๋‹ค๋ฅธ ๋‘ ํ˜•์‹์— ๋น„ํ•ด ๊ต‰์žฅํžˆ ์งง๋‹ค.
  • ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ์— ์œ ๋ฆฌ
  • ๋‹จ, ๊ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ๋‚ด์šฉ์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๊ณ , ์™„๋ฒฝํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ณต์œ ํ•  ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ˆ„๋ฝ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ง๊ฐ€์ง€๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ

๐Ÿ‘‰ ๋ฐ์ดํ„ฐ ์ „์†ก ํ˜•์‹ : XML

  • eXtensible Markup Lanaguage
  • xml์€ tag๋กœ data๋ฅผ ํ‘œํ˜„ํ•จ
  • tag๋ฅผ ๋ณด๋ฉด ๊ฐ data๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ํŒŒ์•… ๊ฐ€๋Šฅ
  • tag์— ์‚ฌ์šฉ์ž ์ •์˜ ์†์„ฑ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ณต์žกํ•œ data ์ „๋‹ฌ ๊ฐ€๋Šฅ
  • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฃผ๊ณ  ๋ฐ›์„ ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹์„ ์ผ์น˜์‹œ์ผœ์•ผ ํ•œ๋‹ค.
  • ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ณด๋‹ค ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋” ๋งŽ์•„์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

๐Ÿ‘‰ ๋ฐ์ดํ„ฐ ์ „์†ก ํ˜•์‹ : JSON

  • xml์— ๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๋‹จ์ ์„ ๊ทน๋ณตํ•œ ๋ฐฉ์‹
  • CSV์™€ XML์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•œ ํ˜•์‹
  • JavaScript์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด์˜ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ํ‘œํ˜„
  • stringํ˜•ํƒœ๋กœ data๋ฅผ ํ‘œํ˜„ํ•จ.
Comments