Search
Duplicate
๐Ÿ˜€

04. Ajax

ํƒœ๊ทธ

AJAX(Asynchronous Javascript and XML)

Ajax ๊ฐœ์š”
โ€ข
๋น„๋™๊ธฐ์ ์ธ ๋ฐฉ์‹์œผ๋กœ Javascript๋ฅผ ์ด์šฉํ•ด์„œ XML์„ ์™”๋‹ค๊ฐ”๋‹ค ํ•˜๋„๋ก ํ•จ
โ€ข
Ajax๋Š” ์–ธ์–ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธ
โ€ข
Ajax๋Š” ์›น(Web)์—์„œ ํ™”๋ฉด์„ ๊ฐฑ์‹ ํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๊ฐ€์ ธ์™€ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜๋ฏธ
โ€ข
JavaScript์˜ XMLHttpRequest(XHR) ๊ฐ์ฒด๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒ
โ€ข
ํ™”๋ฉด ๊ฐฑ์‹ ์ด ์—†์œผ๋ฏ€๋กœ ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ๋Š” ํŽธ๋ฆฌํ•˜์ง€๋งŒ, ๋™์ ์œผ๋กœ DOM์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ตฌํ˜„์ด ๋ณต์žกํ•จ
์ผ๋ฐ˜ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต
โ€ข
data๋ฅผ ์ž…๋ ฅ ํ›„ event ๋ฐœ์ƒ
โ€ข
Ajax๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š์€ ์š”์ฒญ์€ ์„œ๋ฒ„์—์„œ data๋ฅผ ์ด์šฉํ•˜์—ฌ logic ์ฒ˜๋ฆฌ
โ€ข
logic ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์‘๋‹ต page๋ฅผ ์ƒ์„ฑํ•˜๊ณ , client์— ์ „์†ก(ํ™”๋ฉด ์ „ํ™˜์ด ์ผ์–ด๋‚จ)
Ajax ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต
โ€ข
data๋ฅผ ์ž…๋ ฅ ํ›„ event ๋ฐœ์ƒ
โ€ข
Ajax๋ฅผ ์ ์šฉํ•˜๋ฉด event ๋ฐœ์ƒ์‹œ ์„œ๋ฒ„์—์„œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•œ ํ›„ Text, XML ๋˜๋Š” JSON์œผ๋กœ ์‘๋‹ต
โ€ข
client(Browser)์—์„œ๋Š” ์ด ์‘๋‹ต data๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™”๋ฉด ์ „ํ™˜์—†์ด ํ˜„์žฌ ํŽ˜์ด์ง€์—์„œ ๋™์ ์œผ๋กœ ํ™”๋ฉด์„ ์žฌ๊ตฌ์„ฑ

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

โ€ข
์›น ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์€ ์„œ๋ฒ„ ์ค‘์‹ฌ์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹๊ณผ ํด๋ผ์ด์–ธํŠธ ์ค‘์‹ฌ์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐฉ์‹์œผ๋กœ ๊ตฌ๋ถ„

Javascript Ajax

โ€ข
XMLHttpRequest๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ Ajax ๋ฐฉ์‹์œผ๋กœ ํ†ต์‹ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด
โ€ข
XMLHttpRequest ๊ฐ์ฒด๋Š” Ajax ํ†ต์‹  ์‹œ ์ „์†ก๋ฐฉ์‹, ๊ฒฝ๋กœ, ์„œ๋ฒ„๋กœ ์ „์†กํ•  data ๋“ฑ ์ „์†ก์ •๋ณด๋ฅผ ๋‹ด๋Š” ์—ญํ• 
โ€ข
์‹ค์ œ ์„œ๋ฒ„์™€์˜ ํ†ต์‹ ์€ ๋ธŒ๋ผ์šฐ์ €์˜ Ajax ์—”์ง„์—์„œ ์ˆ˜ํ–‰
โ€ข
์ง์ ‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ Ajax๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €๋ณ„๋กœ ํ†ต์‹  ๋ฐฉ์‹์ด ๋‹ฌ๋ผ ์ฝ”๋“œ๊ฐ€ ๋ณต์žก

JQuery Ajax

โ€ข
$.ajax() ํ•จ์ˆ˜๋Š” jQuery์—์„œ Ajax ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํ•จ์ˆ˜
โ€ข
๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค์— ๋น„ํ•˜์—ฌ ์˜ต์…˜์„ ๋‹ค์–‘ํ•˜๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹ค๋ฌด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ
โ€ข
ํ•จ์ˆ˜์˜ ์˜ต์…˜์€ ๋‹ค์–‘ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ์ž๋™์œผ๋กœ ์ง€์ •ํ•˜๋ฏ€๋กœ ์ƒ๋žต ๊ฐ€๋Šฅ

JQuery Ajax - $.get(), $.post()

โ€ข
$.get(), $.post() ํ•จ์ˆ˜๋Š” $.ajax()์˜ ์˜ต์…˜ ์ค‘ type ์˜ต์…˜์ด ๋ฏธ๋ฆฌ ์ง€์ •๋œ ํ•จ์ˆ˜.
โ€ข
์ง€์ •๋œ HTTP Method๋กœ Ajax ํ†ต์‹ ์„ ํ•˜๋ฉฐ get()์€ GET ๋ฐฉ์‹์„, post()๋Š” POST ๋ฐฉ์‹์„ ์‚ฌ์šฉ

jQuery Ajax - $(selector).load()

โ€ข
$.load() ํ•จ์ˆ˜๋Š” ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋‚ด์šฉ์„ ์กฐํšŒํ•˜์—ฌ, ์„ ํƒ์ž๋ฅผ ํ†ตํ•ด DOM ๊ฐ์ฒด์— ๋™์ ์œผ๋กœ ์‚ฝ์ž…
โ€ข
์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ์ž˜ ํ™œ์šฉํ•˜์ง€ ์•Š์Œ

* ์ฐธ๊ณ  : GET ๋ฐฉ์‹๊ณผ POST ๋ฐฉ์‹

GET ๋ฐฉ์‹์˜ ํŠน์ง•
โ€ข
URL์— ๋ณ€์ˆ˜(๋ฐ์ดํ„ฐ)๋ฅผ ํฌํ•จ์‹œ์ผœ ์š”์ฒญํ•œ๋‹ค.
โ€ข
๋ฐ์ดํ„ฐ๋ฅผ Header(ํ—ค๋”)์— ํฌํ•จํ•˜์—ฌ ์ „์†กํ•œ๋‹ค.
โ€ข
URL์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์–ด ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค.
โ€ข
์ „์†กํ•˜๋Š” ๊ธธ์ด์— ์ œํ•œ์ด ์žˆ๋‹ค.
โ€ข
์บ์‹ฑ ํ•  ์ˆ˜ ์žˆ๋‹ค. (์บ์‹ฑ - ํ•œ๋ฒˆ ์ ‘๊ทผ ํ›„, ๋˜ ์š”์ฒญํ•  ์‹œ ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ๋ ˆ์ง€์Šคํ„ฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ์‹œ์ผœ ๋†“๋Š” ๊ฒƒ)
POST ๋ฐฉ์‹์˜ ํŠน์ง•
โ€ข
URL์— ๋ณ€์ˆ˜(๋ฐ์ดํ„ฐ)๋ฅผ ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์š”์ฒญํ•œ๋‹ค.
โ€ข
๋ฐ์ดํ„ฐ๋ฅผ Body(๋ฐ”๋””)์— ํฌํ•จ์‹œํ‚จ๋‹ค.
โ€ข
URL์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋…ธ์ถœ๋˜์ง€ ์•Š์•„์„œ ๊ธฐ๋ณธ ๋ณด์•ˆ์€ ๋˜์–ด์žˆ๋‹ค.
โ€ข
์ „์†กํ•˜๋Š” ๊ธธ์ด์— ์ œํ•œ์ด ์—†๋‹ค
โ€ข
์บ์‹ฑ ํ•  ์ˆ˜ ์—†๋‹ค.

๋ฐ์ดํ„ฐ ์ „์†ก ํ˜•์‹

โ€ข
Server์™€ Client๋Š” ์ฃผ๊ณ  ๋ฐ›์„ data์˜ ํ˜•์‹์„ ๋งž์ถฐ์•ผ ํ•จ
โ€ข
๋Œ€ํ‘œ์ ์ธ data์˜ ํ˜•์‹์€ CSV, XML, JSON ๋“ฑ์ด ์žˆ์Œ
CSV (Comman Separated Values)
โ€ข
๊ฐ ํ•ญ๋ชฉ์„ ์‰ผํ‘œ( , )๋กœ ๊ตฌ๋ถ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•
โ€ข
๋‹ค๋ฅธ ๋‘ ํ˜•์‹œ๊ฒก ๋น„ํ•ด ๊ต‰์žฅํžˆ ์งง๋‹ค. ๋งŽ์€ ์–‘์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ ์œ ๋ฆฌ
โ€ข
๋‹จ, ๊ฐ๊ฐ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ๋‚ด์šฉ์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. (์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์™„๋ฒฝํžˆ ๊ณต์œ ํ• ๋•Œ ๊ฐ€๋Šฅ)
XML(eXtensible Markup Language)
โ€ข
xml์€ tag๋กœ data๋ฅผ ํ‘œํ˜„ํ•จ
โ€ข
tag๋ฅผ ๋ณด๋ฉด ๊ฐ data๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ํŒŒ์•… ๊ฐ€๋Šฅ
โ€ข
tag์— ์‚ฌ์šฉ์ž ์ •์˜ ์†์„ฑ์„ ๋„ฃ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ณต์žกํ•œ data ์ „๋‹ฌ ๊ฐ€๋Šฅ
JSON(JavaScript Object Notation)
โ€ข
CSV์™€ XML์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•œ ํ˜•์‹
โ€ข
JavaScript์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด์˜ ํ˜•์‹์œผ๋กœ data๋ฅผ ํ‘œํ˜„
โ€ข
Ajax ์‚ฌ์šฉ์‹œ ๊ฑฐ์˜ ํ‘œ์ค€์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” data ํ‘œํ˜„ ๋ฐฉ์‹