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 ํํ ๋ฐฉ์