Programming๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

Ajax (Asynchronous JavaScript and XML)

Dodal 2020. 10. 27. 00:21

Ajax๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

๋น„๋™๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ + XML์ด๋‹ค.

์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

JSON/XML/HTML ๊ทธ๋ฆฌ๊ณ  ์ผ๋ฐ˜ ํ…์ŠคํŠธ ํ˜•์‹ ๋“ฑ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ํฌ๋งท์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

AJAX์˜ ๊ฐ•๋ ฅํ•œ ํŠน์ง•์€ ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋ฆฌํ”„๋ ˆ์‰ฌ ํ•˜์ง€ ์•Š๊ณ ์„œ๋„ ์ˆ˜ํ–‰ ๋˜๋Š” "๋น„๋™๊ธฐ์„ฑ"์ด๋‹ค.

์‚ฌ์šฉ์ž์˜ ์ด๋ฒคํŠธ๊ฐ€ ์ž‡์œผ๋ฉด ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€๋ถ„๋งŒ ์—…๋ฐ์ดํŠธ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

 

์š”์•ฝํ•˜๋ฉด,

1. ํŽ˜์ด์ง€ ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ์„œ๋ฒ„์— ์š”์ฒญ

2. ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ณ  ์ž‘์—…์„ ์ˆ˜ํ–‰

 

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ? ๋”๋ณด๊ธฐ ํด๋ฆญ!

๋”๋ณด๊ธฐ

๐Ÿ’ก์—ฌ๊ธฐ์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ž€? '๋„์„œ๊ด€'์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋ผ๋Š” ๋‹จ์œ„๋กœ ๋ฌถ์–ด ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“  ๊ฒƒ์„ ์„ค์น˜๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค์‹œ๋งํ•ด ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด์„œ ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜์ง€ ์•Š๊ณ ๋„

ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋งŒ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋ฉฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ๋น„๋™๊ธฐ ํ†ต์‹ , ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ„์— XML ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ธฐ์ˆ ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

XML? ๋น„๋™๊ธฐ? ๋”๋ณด๊ธฐ ํด๋ฆญ!

๋”๋ณด๊ธฐ

๐Ÿ’กXML์ด๋ž€? HTML๊ณผ ๋งค์šฐ ๋น„์Šทํ•œ ๋ฌธ์ž ๊ธฐ๋ฐ˜์˜ ๋งˆํฌ์—… ์–ธ์–ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ HTML์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ชฉ์ ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ 

์ „๋‹ฌํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ๋‹ค. ํƒœ๊ทธ๊ฐ€ ๋ฏธ๋ฆฌ ์ •์˜ ๋˜์–ด ์žˆ์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

::XML์˜ ํŠน์ง•

1. ๋‹ค๋ฅธ ๋ชฉ์ ์˜ ๋งˆํฌ์—… ์–ธ์–ด๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋‹ค๋ชฉ์  ๋งˆํฌ์—… ์–ธ์–ด์ด๋‹ค.

2. ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๋ผ๋ฆฌ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์†์‰ฝ๊ฒŒ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

3. ์ƒˆ๋กœ์šด ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค์–ด ์ถ”๊ฐ€ํ•ด๋„ ๊ณ„์†ํ•ด์„œ ๋™์ž‘ํ•˜๋ฏ€๋กœ ํ™•์žฅ์„ฑ์ด ์ข‹๋‹ค.

4. ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๊ฒƒ๋งŒ์„ ๋ชฉ์ ์œผ๋กœ ํ•œ๋‹ค.

5. ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ ํ˜•์‹์˜ ์–ธ์–ด๋กœ ๋ชจ๋“  XML ๋ฌธ์„œ๋Š” ์œ ๋‹ˆ์ฝ”๋“œ๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

๐Ÿ’ก๋น„๋™๊ธฐ(async)๋ฐฉ์‹์ด๋ž€?

๋น„๋™๊ธฐ ๋ฐฉ์‹์€ ์›นํŽ˜์ด์ง€๋ฅผ ๋ฆฌ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ์‹์˜ ์žฅ์ ์€ ํŽ˜์ด์ง€ ๋ฆฌ๋กœ๋“œ์˜ ๊ฒฝ์šฐ ์ „์ฒด ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์™€์•ผํ•˜๋Š”๋ฐ ์ด๋ฏธ์ง€,์Šคํฌ๋ฆฝํŠธ, ๊ธฐํƒ€ ์ฝ”๋“œ๋“ฑ์„ ๋ชจ๋‘ ์žฌ์š”์ฒญํ•  ๊ฒฝ์šฐ ๋ถˆํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์ง€๋งŒ

๋น„๋™๊ธฐ ๋ฐฉ์‹์„ ์ด์šฉํ•  ๊ฒฝ์šฐ ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งค์šฐ ํฐ ์žฅ์ ์ด ์žˆ๋‹ค.

 

๊ธฐ๋ณธ์ ์œผ๋กœ HTTPํ”„๋กœํ† ์ฝœ์€ ํด๋ผ์ด์–ธํŠธ์ชฝ์—์„œ Request๋ฅผ ๋ณด๋‚ด๊ณ  Server์ชฝ์—์„œ Response๋ฅผ ๋ฐ›์œผ๋ฉด ์ด์–ด์กŒ๋˜ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ๊ฒŒ ๋˜์–ด์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ํ™”๋ฉด์˜ ๋‚ด์šฉ์„ ๊ฐฑ์‹ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‹ค์‹œ ์š”์ฒญ์„ ํ•ด์•ผํ•˜๊ณ  ์‘๋‹ต์„ ํ•˜๋ฉด์„œ ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๊ฐฑ์‹ ํ•˜๊ฒŒ ๋œ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ํ•  ๊ฒฝ์šฐ ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋ถ„๋งŒ ๊ฐฑ์‹ ํ•  ๊ฒฝ์šฐ์—๋„ ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ๋‹ค์‹œ ๋กœ๋“œํ•ด์•ผํ•˜๋Š”๋ฐ ์—„์ฒญ๋‚œ ์ง€์›๋‚ญ๋น„์™€ ์‹œ๊ฐ„๋‚ญ๋น„๋ฅผ ์ดˆ๋ž˜ํ•˜๊ณ  ๋ง๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ajax๋Š” html ํŽ˜์ด์ง€ ์ „์ฒด๊ฐ€ ์•„๋‹Œ ์ผ๋ถ€๋ถ„๋งŒ ๊ฐฑ์‹ ํ• ์ˆ˜ ์žˆ๋„๋ก XML HttpRequest๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•œ๋‹ค.

์ด๊ฒฝ์šฐ Json์ด๋‚˜ XMLํ˜•ํƒœ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋ฐ›์•„ ๊ฐฑ์‹ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋งŒํผ ์ž์›๊ณผ ์‹œ๊ฐ„์„ ์•„๋ผ๊ณ  ์†๋„๋ฅผ ํ–ฅ์ƒ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•

'Programming๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

MAVEN  (0) 2021.12.03