ch3-5-when-data-loading
3.5 ๋ฐ์ดํฐ๋ฅผ ๋ก๋ฉํ ๋ ์ผ์ด๋ ์ ์๋ ์ผ
์น ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ฅ๊ณผ ๋ฐ์ดํฐ๋ง ์ด์ฉํ๋ ์ํฉ์ด ์๋๋ผ๋ฉด ๊ฒฐ๊ตญ ์๋ฒ์์ ์๊ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํด์ผ ํ๋ค.
์ผ๋ฐ์ ์ผ๋ก, ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ ์์ ์ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ ์ฌ์ฉ์์ ์ํธ์์ฉ ํ๋ฉด์ ์ถ๊ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ค.
์ ํ๋ฆฌ์ผ์ด์ ํ์ ์ด๋ ๋ก๋ํ๋ ๋ฐ์ดํฐ ์์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง ๋์ ๋ฐ๋ผ์๋ ์ด๊ธฐ ํ์ด์ง ๋ก๋ ์์ ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
๊ทธ๋ฐ ๊ฒฝ์ฐ, ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ ๋ก๋ ์๊ฐ์ ๊ธฐ๋ค๋ฆฌ์ง ์์๋ ๋๋ค.
๊ทธ๋ฌ๋ ๋ธ๋ผ์ฐ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ ํ์ ์ ์ด๋ฏ๋ก ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ์์ ๊ฐ์ ธ์ฌ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
๋ฐ๋ผ์, ์ฌ๋งํ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์ด๊ธฐ ํ์ด์ง ๋ก๋ ์์ ์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ง ๋ชปํ๋ค.
๊ทธ๋ผ์๋ ์ฌ์ฉ์ ๋๊ธฐ์๊ฐ์ ์ค์ฌ ๋งค๋๋ฝ๊ณ ๋น ๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๋์์ ๋ณด์ฌ์ฃผ๋ ค๋ฉด ๋ฏธ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํด์ผ ํ๋ค.
๊ทธ๋ฐ๋ฐ ์ค์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๊ฐ ์๊ณ ์์ ์ฌ์ฉํ์ง ์์ ๋ฐ์ดํฐ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๋ฐฉ๋ฒ์๋ ํ๊ณ๊ฐ ์๋ค.
๋ฐ๋ผ์ ์ฌ์ฉ์๊ฐ ์ด๋ค ์ข ๋ฅ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๊ฒ์ธ์ง ์์ธกํด์ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํด์ผ ํ๋ค.
์ฌ๋ฌ ํ์ด์ง๋ก ๊ตฌ์ฑ๋ ๋ฆฌ์คํธ๋ฅผ ํ์ํ๋ ์ํฉ์ด๋ผ๋ฉด
๋ฏธ๋ฆฌ ๋ค์ ํ์ด์ง๋ฅผ ๋ก๋ํด์ ๋ค์ ํ์ด์ง๋ก ๋ฐ๋ก ๋์ด๊ฐ ์ ์๋๋ก ์ฒ๋ฆฌํ๋ฉฐ ์ด๋จ๊น?
๋๋ ๋์ฑ ์ธ๋ จ๋ ๋ฐฉ๋ฒ์ผ๋ก, ๊ธด ๋ฆฌ์คํธ๋ฅผ ์ผ๋จ ๋ชจ๋ ํ์ํ๊ณ ๋ฆฌ์คํธ๋ฅผ ์คํฌ๋กคํ ๋๋ง๋ค ์๋์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํด์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์ด๋จ๊น?
์ฌ์ฉ์๋ฅผ ๋ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ ์๋ก ์ข๋ค๋ ๊ฒฉ์ธ์ ๋ณ์น ์๋ ์์น์ด๋ค.
๋ฐ์ดํฐ ๊ฐ์ ธ์ฌ ๋, UI๊ฐ ๋ธ๋ก๋์ง ์๋๋ก ์ฃผ์ํด์ผ ํ๋ค.
์๋ฅผ ๋ค์ด ๋ฐ์ดํฐ ๊ฐ์ ธ์ฌ ๋์๋ ๋ก๋ฉ ์ค์์ ํ์ํ๋ ์ธ๋์ผ์ดํฐ ๋ฑ์ ์ด์ฉํด
์ธํฐํ์ด์ค๊ฐ ๋ธ๋ก๋์ง ์๊ณ ์ฌ์ฉํ ์ ์๋ ์ํ์์ ๋ณด์ฌ์ค์ผ ํ๋ค.
์ด๋ป๊ฒ๋ UI๋ฅผ ๋ธ๋กํ๋ ์ํฉ์ ์ต์ํ์ผ๋ก ์ค์ฌ์ผ ํ๋ค.
์ด๊ธฐ ํ์ด์ง๋
๋ฐ์ดํฐ๋ฅผ ์ธ๋ผ์ธ์ผ๋ก ๋ณด์ฌ์ฃผ๊ฑฐ๋
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?