ch3-5-when-data-loading

3.5 ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ ์ผ์–ด๋‚  ์ˆ˜ ์žˆ๋Š” ์ผ

์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋Šฅ๊ณผ ๋ฐ์ดํ„ฐ๋งŒ ์ด์šฉํ•˜๋Š” ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ผ๋ฉด ๊ฒฐ๊ตญ ์„œ๋ฒ„์—์„œ ์›๊ฒฉ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์‹คํ–‰ ์‹œ์ ์— ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๊ณ  ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉ ํ•˜๋ฉด์„œ ์ถ”๊ฐ€๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•œ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํƒ€์ž…์ด๋‚˜ ๋กœ๋“œํ•˜๋Š” ๋ฐ์ดํ„ฐ ์–‘์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒ ์ง€๋งŒ ๋•Œ์— ๋”ฐ๋ผ์„œ๋Š” ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ์ ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋Ÿฐ ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ๋กœ๋“œ ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ํ•œ์ •์ ์ด๋ฏ€๋กœ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜์Œ์— ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

๋”ฐ๋ผ์„œ, ์›ฌ๋งŒํ•œ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ดˆ๊ธฐ ํŽ˜์ด์ง€ ๋กœ๋“œ ์‹œ์ ์— ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜์ง€ ๋ชปํ•œ๋‹ค.

๊ทธ๋Ÿผ์—๋„ ์‚ฌ์šฉ์ž ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ์ค„์—ฌ ๋งค๋„๋Ÿฝ๊ณ  ๋น ๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋™์ž‘์„ ๋ณด์—ฌ์ฃผ๋ ค๋ฉด ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•œ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์‹ค์ œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๊ณ  ์•„์˜ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฏธ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋„ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ์ง€ ์˜ˆ์ธกํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•ด์•ผ ํ•œ๋‹ค.

์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋กœ ๊ตฌ์„ฑ๋œ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด

๋ฏธ๋ฆฌ ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•ด์„œ ๋‹ค์Œ ํŽ˜์ด์ง€๋กœ ๋ฐ”๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ์ฒ˜๋ฆฌํ•˜๋ฉฐ ์–ด๋–จ๊นŒ?

๋˜๋Š” ๋”์šฑ ์„ธ๋ จ๋œ ๋ฐฉ๋ฒ•์œผ๋กœ, ๊ธด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ผ๋‹จ ๋ชจ๋‘ ํ‘œ์‹œํ•˜๊ณ  ๋ฆฌ์ŠคํŠธ๋ฅผ ์Šคํฌ๋กคํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•ด์„œ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์–ด๋–จ๊นŒ?

์‚ฌ์šฉ์ž๋ฅผ ๋œ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ํ• ์ˆ˜๋ก ์ข‹๋‹ค๋Š” ๊ฒฉ์–ธ์€ ๋ณ€์น˜ ์•Š๋Š” ์›์น™์ด๋‹ค.

๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ฌ ๋•Œ, UI๊ฐ€ ๋ธ”๋ก๋˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ํ•ด์•ผ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ฌ ๋•Œ์—๋Š” ๋กœ๋”ฉ ์ค‘์ž„์„ ํ‘œ์‹œํ•˜๋Š” ์ธ๋””์ผ€์ดํ„ฐ ๋“ฑ์„ ์ด์šฉํ•ด

์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ธ”๋ก๋˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ์ž„์„ ๋ณด์—ฌ์ค˜์•ผ ํ•œ๋‹ค.

์–ด๋–ป๊ฒŒ๋“  UI๋ฅผ ๋ธ”๋กํ•˜๋Š” ์ƒํ™ฉ์„ ์ตœ์†Œํ•œ์œผ๋กœ ์ค„์—ฌ์•ผ ํ•œ๋‹ค.

์ดˆ๊ธฐ ํŽ˜์ด์ง€๋Š”

  1. ๋ฐ์ดํ„ฐ๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ฑฐ๋‚˜

  2. Ajax๋‚˜ JSONP ๊ธฐ๋ฒ•์œผ๋กœ ๋ณ„๋„์˜ HTTP๋กœ ๋ฐ์ดํ„ฐ ๋กœ๋“œํ•˜๊ธฐ

๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ธ๋ผ์ธ์œผ๋กœ ์ถ”๊ฐ€์‹œ ํŽ˜์ด์ง€ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปค์ง„๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ๋Š” ๋ณ‘๋ ฌ ์š”์ฒญ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ๋Š” Ajax๋‚˜ JSONP๊ธฐ๋ฒ•์„ ์ถ”์ฒœ.

์ด์™ธ์— HTMLํŽ˜์ด์ง€ ์บ์‹œ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•œ๋‹ค.

3.5.1 ๋ฐ์ดํ„ฐ ์ธ๋ผ์ธ ํฌํ•จํ•˜๊ธฐ

๋ฐ์ดํ„ฐ ์ธ๋ผ์ธ ๊ธฐ๋ฒ•์€ ๋ณ„๋กœ ์ถ”์ฒœ ใ„ดใ„ดํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ์„œ ์ž‘์€ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ์‹œ ์ธ๋ผ์ธ ๊ธฐ๋ฒ• ์œ ์š”ํ•˜๋‹ค.

3.5.2 Ajax๋กœ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉํ•˜๊ธฐ

์›๊ฒฉ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋”ฉํ•˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์š”์ฒญ์ด๋ผ๋Š” ๋ง์€, Ajax๋ฅผ ๋– ์˜ฌ๋ฆด ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

์–ด์ฉ„๋“  Ajax API๋ฅผ ์ถ”์ƒํ™”ํ•˜๋Š” jQuery ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ฐ€๋Šฅ์„ฑ์ด ํฌ๋‹ค.

jQuery์˜ Ajax API๋Š” ํ•œ๊ฐœ์˜ ์ €์ˆ˜์ค€ ํ•จ์ˆ˜ jQuery.ajax()์™€ ์ด๋ฅผ ์ถ”์ƒํ™”ํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ณ ์ˆ˜์ค€ ์ถ”์ƒํ™” ํ•จ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์—ฌ๋Ÿฌ ๊ณ ์ˆ˜์ค€ ์ถ”์ƒํ™” ํ•จ์ˆ˜ ์ด์šฉ์‹œ ์ฝ”๋”ฉ ์–‘์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

jQuery.ajax() ๋Š” ์—ฌ๋Ÿฌ ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ค์ •, ์ปจํ…์ธ  ํƒ€์ž…, ์ฝœ๋ฐฑ ๋“ฑ์„ ์ธ์ž๋กœ ๋ฐ›๋Š”๋‹ค.

jQuery.ajax() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

url :์š”์ฒญ url. ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ๊ธฐ๋ณธ ๊ฐ’.

...

Ajax๋Š” ์š”์ฒญ์ด ๋ฐœ์ƒํ•œ ๋„๋ฉ”์ธ, ์„œ๋ธŒ๋„๋ฉ”์ธ, ํŽ˜์ด์ง€์˜ ํฌํŠธ๊ฐ€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค๋Š” ์›์น™์— ์ œํ•œ์„ ๋ฐ›๋Š”๋‹ค. (๋™์ผํ•œ Origin ์ •์ฑ…)

์ด๋Ÿฐ ์ œํ•œ์ด ์ƒ๊ธด ์ด์œ ๋Š”

Ajax ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ๋งˆ๋‹ค ๋„๋ฉ”์ธ์˜ ๋ชจ๋“  ์ฟ ํ‚ค ์ •๋ณด๋ฅผ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ „๋‹ฌํ•œ๋‹ค.

์š”์ฒญ์„ ๋ฐ›๋Š” ์›๊ฒฉ ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ฐฉ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ ๊ฐ™์€ ์˜ค๋ฆฌ์ง„ ์ •์ฑ…์ด ์—†๋‹ค๋ฉด ํ•ด์ปค๋Š” ๋ง˜๋Œ€๋กœ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ง€๋ฉ”์ผ์— ์ €์žฅ๋œ ๋ฉ”์ผ์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ณ  ํŽ˜๋ถ ์ƒํƒœ ๊ฐฑ์‹ ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ฐ™์€ ์˜ค๋ฆฌ์ง„ ์ •์ฑ…์€ ์›น ๋ณด์•ˆ์˜ ํ•„์ˆ˜์š”์†Œ์ง€๋งŒ ์ •๋‹นํ•˜๊ฒŒ ์›๊ฒฉ ์ž์›์„ ์ ‘์†ํ•˜๋ ค๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํฐ ํƒ€๊ฒฉ์„ ์ค€๋‹ค.

ํ˜„์žฌ Ajax๋„ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ๊ฐ„์˜ ์ž์› ๊ณต์œ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” CORS๋ผ๋Š” ํฌ๋กœ์Šค ์˜ค๋ฆฌ์ง„ ์ž์› ๊ณต์œ  ๊ธฐ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

CORS์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹ฟ๋‚˜๋‹ค.

๋ฐ˜ํ™˜๋œ ์‘๋‹ต์˜ ํ—ค๋”์— ๋ช‡ ์ค„ ์ถ”๊ฐ€ํ•˜๋ฉด ์„œ๋ธŒ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์Šน์ธํ•œ๋‹ค.

ํด๋ผ๋Š” ์ปค์Šคํ…€ ํ—ค๋” Ajax ์š”์ฒญ์— ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

IE 8๊ณผ ์ƒ์œ„ ๋ฒ„์ „์€ CORS ์ง€์›.

3.5.3 JSONP

JSON with padding์„ ์˜๋ฏธํ•˜๋Š” JSONP๋Š” ์›๊ฒฉ ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ

CORS๊ฐ€ ํ‘œ์ค€ํ™”๋˜๊ธฐ ์ „์— ํƒ„์ƒํ•œ ๊ธฐ๋ฒ•์ด๋‹ค.

JSONP์˜ ํ•ต์‹ฌ์€

Last updated

Was this helpful?