๐Ÿ“–
WeekEndStudy
  • WeekEndStudy
  • WebWorker์™€ ServiceWorker
  • IndexedDB
  • WebSocket
  • Nodejs Mysql ๊ณผ Serialize
  • Template Callback Pattern
  • JPA
  • Spring HATEOAS
  • CPU, GPU, Memory and Multi process
  • Docker
  • ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๊ฐœ๋ฐœ
  • Reconcilation
  • Kotlin
  • Kotlin Study 2
  • GraphQL
Powered by GitBook
On this page
  • ๋ฐ์ดํ„ฐ ํ†ต์‹  ๋ฐฉ์‹(Realtime, push, polling)
  • Realtime
  • Push
  • Polling
  • Long Polling(COMET)

Was this helpful?

WebSocket

PreviousIndexedDBNextNodejs Mysql ๊ณผ Serialize

Last updated 3 years ago

Was this helpful?

๋ฐ์ดํ„ฐ ํ†ต์‹  ๋ฐฉ์‹(Realtime, push, polling)

Realtime

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

Push

push server๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์˜ค๋ฉด ์‘๋‹ตํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๊ณต์ง€์‚ฌํ•ญ๊ณผ ๊ฐ™์€ ๋ฌด์—‡์ธ๊ฐ€ ํ†ต์ง€ํ•ด์ฃผ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. ๋‹ค์‹œ ๋งํ•ด ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ์—†์ด๋„ ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ตํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

Polling

ํด๋ง(polling)์ด๋ž€ ํ•˜๋‚˜์˜ ์žฅ์น˜(๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ)๊ฐ€ ์ถฉ๋Œ ํšŒํ”ผ ๋˜๋Š” ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ ๋“ฑ์„ ๋ชฉ์ ์œผ๋กœ ๋‹ค๋ฅธ ์žฅ์น˜(๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ)์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒ€์‚ฌํ•˜์—ฌ ์ผ์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•  ๋•Œ ์†ก์ˆ˜์‹  ๋“ฑ์˜ ์ž๋ฃŒ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค

Long Polling(COMET)

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น์„œ๋ฒ„์—๊ฒŒ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์ด ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ณด์•˜์„ ๋•Œ ์›น์„œ๋ฒ„์— ์ƒˆ๋กœ์šด ๋‚ด์šฉ์ด ์—†๋‹ค๋ฉด ๋Œ€๋‹ตํ•ด์ฃผ์ง€ ์•Š๋‹ค๊ฐ€ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์ด ์ƒ๊ธฐ๋ฉด ์ด๋•Œ ๋Œ€๋‹ตํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.

Interrupt ์™€ Polling

Interrupt์™€ Polling์€ CPU๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ๋””๋ฐ”์ด์Šค๋กœ ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋“ค์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด๋‹ค. Polling๊ณผ Interrupt๋Š” CPU๊ฐ€ ํ˜„์žฌ ํ•˜๋˜ ์ผ์„ ๋ฉˆ์ถ”๊ณ  ์ค‘์š”ํ•œ ์ผ์— ๋ฐ˜์‘ํ•˜๋„๋ก ๋ฉˆ์ถ”๊ฒŒ ํ•œ๋‹ค.

๊ธฐ๋ณธ์ ์ธ ๋น„๊ต

Interrupt

Polling

๊ธฐ๋ณธ

๋””๋ฐ”์ด์Šค๊ฐ€ CPU์—๊ฒŒ attention์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์•Œ๋ ค์ค€๋‹ค

CPU๊ฐ€ ๊ณ„์† CPU์˜ attention์ด ํ•„์š”ํ•œ ์ง€ ์•ˆํ•œ์ง€ ๋””๋ฐ”์ด์Šค์˜ ์ƒํƒœ๋ฅผ ์ฒดํฌํ•œ๋‹ค

๋ฉ”์ปค๋‹ˆ์ฆ˜

Interrupt๋Š” ํ•˜๋“œ์›จ์–ด์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด๋‹ค

Polling์€ ํ”„๋กœํ† ์ฝœ์ด๋‹ค

Servicing

Interrupt ํ—จ๋“ค๋Ÿฌ๊ฐ€ ๋””๋ฐ”์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค

CPU๊ฐ€ ๋””๋ฐ”์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค

Indication

Interrupt-request ๋ผ์ธ์ด ๋””๋ฐ”์ด์Šค๊ฐ€ servicing์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์•Œ๋ ค์ค€๋‹ค

Command-ready ๋น„ํŠธ๋Š” ๋””๋ฐ”์ด์Šค๊ฐ€ servicing์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์•Œ๋ ค์ค€๋‹ค

CPU

CPU๋Š” ๋””๋ฐ”์ด์Šค๊ฐ€ servicing์ด ํ•„์š”ํ•  ๋•Œ๋งŒ ๋ฐฉํ•ด๋ฐ›์œผ๋ฉด CPU์˜ ์‚ฌ์ดํด์„ ์ ˆ์•ฝํ•œ๋‹ค

CPU๋Š” ์ฃผ๊ธฐ์ ์œผ๋กœ ๋””๋ฐ”์ด์Šค๊ฐ€ servicing์ด ํ•„์š”ํ•œ ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์ฒดํฌํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— CPU ์‚ฌ์ดํด์„ ๋‚ญ๋น„ํ•œ๋‹ค

Occurence

Interrupt๋Š” ์–ธ์ œ๋‚˜ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค

CPU๋Š” ์ผ์ •ํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ device๋ฅผ pollํ•œ๋‹ค

Interrupt๋Š” ๋””๋ฐ”์ด์Šค๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ CPU๋ฅผ interruptํ•  ๋•Œ ๋น„ํšจ์œจ์ด ๋œ๋‹ค

Polling์€ CPU๊ฐ€ service๋ฅผ ์œ„ํ•œ device ready๊ฐ€ ๊ฑฐ์˜ ์—†์„ ๋•Œ ๋น„ํšจ์œจ์ด ๋œ๋‹ค

์˜ˆ์‹œ

๋ฒจ์ด ์šธ๋ฆฌ๋ฉด ๋ฌธ์„ ์—ด๊ณ  ๋ˆ„๊ฐ€ ์™”๋Š”์ง€ ํ™•์ธํ•œ๋‹ค

๊ณ„์† ๋ˆ„๊ฐ€ ์™”๋Š” ์ง€ ๋ฌธ์„ ์—ด์–ด๋ณธ๋‹ค

Web Socket์ด๋ž€?

์›น์†Œ์ผ“์€ HTML5 ํ‘œ์ค€ ๊ธฐ์ˆ ๋กœ, ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ๋™์ ์ธ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ์ฑ„๋„์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Websocket API๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , ์š”์ฒญ ์—†์ด ์‘๋‹ต์„ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ API๋Š” W3C์—์„œ ๊ด€์žฅํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ํ”„๋กœํ† ์ฝœ์€ IETF์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์›น์†Œ์ผ“์€ ๋ณ„๋„์˜ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  HTTP์™€ ๊ฐ™์€ 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ด ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ์ธ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›น ์„œ๋ฒ„๋„ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ณ  ์žˆ์–ด์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

Socket.io

๊ทธ๋Ÿฌ๋‚˜ ์›น์†Œ์ผ“์€ HTML5์˜ ๊ธฐ์ˆ ์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ž˜๋œ ๋ฒ„์ „์˜ ์›น ๋ธŒ๋ผ์šฐ์ €๋Š” ์›น์†Œ์ผ“์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ž๋™ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜์ง€ ์•Š๋Š” ์ต์Šคํ”Œ๋กœ๋Ÿฌ ๊ตฌ ๋ฒ„์ „ ์‚ฌ์šฉ์ž๋“ค์€ ์›น์†Œ์ผ“์œผ๋กœ ์ž‘์„ฑ๋œ ์›นํŽ˜์ด์ง€๋ฅผ ๋ณผ ์ˆ˜ ์—†์ง€์š”. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ์—ฌ๋Ÿฌ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๊ฐ€ Socket.io์ž…๋‹ˆ๋‹ค. ์›นํŽ˜์ด์ง€๊ฐ€ ์—ด๋ฆฌ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น์†Œ์ผ“์„ ์ง€์›ํ•˜๋ฉด ์›น์†Œ์ผ“ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๊ณ , ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €๋ผ๋ฉด ์ผ๋ฐ˜ http๋ฅผ ์ด์šฉํ•ด์„œ ์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์„ ํ‰๋‚ด๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Socket.io๋Š” node.js ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ธฐ์ˆ ๋กœ, ๊ฑฐ์˜ ๋ชจ๋“  ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ๋ชจ๋ฐ”์ผ ์žฅ์น˜๋ฅผ ์ง€์›ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ 100% ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฉฐ, ํ˜„์กดํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‹ค์‹œ๊ฐ„ ์›น ๊ธฐ์ˆ ๋“ค์„ ์ถ”์ƒํ™”ํ•ด ๋†“์•˜์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, Socket.io๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฅ˜์— ์ƒ๊ด€์—†์ด ์‹ค์‹œ๊ฐ„ ์›น์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

Socket.io๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์›น ์„œ๋ฒ„์˜ ์ข…๋ฅ˜์™€ ๋ฒ„์ „์„ ํŒŒ์•…ํ•˜์—ฌ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๊ธฐ์ˆ ์„ ์„ ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ธŒ๋ผ์šฐ์ €์— FlashSocket์ด๋ผ๋Š” ๊ธฐ์ˆ ์„ ์ง€์›ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์„ค์น˜๋˜์–ด ์žˆ์œผ๋ฉด ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์—†์œผ๋ฉด AJAX Long Polling ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์™œ ์›น์†Œ์ผ“์„ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

์ดˆ์ฐฝ๊ธฐ ์›น์€ ๋‹จ์ˆœํžˆ ์ธํ„ฐ๋„ท์— ์ ‘์†ํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ˜ํ…์ธ ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์—ญํ• ์— ์ง€๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์€ ํฌ๊ฒŒ ์ค‘์š”ํ•˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์ •๋ณด์˜ ๊ฒ€์ƒ‰ ๋ฐ ์—ด๋žŒ ์ˆ˜์ค€์— ๊ทธ์ณค์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์›น์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋“ค์ด ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๊ณ  ์Šค์Šค๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๋งŒ๋“ค์–ด ๊ต๋ฅ˜ํ•˜๊ณ ์ž ํ•˜๋Š” ์ˆ˜์š”๊ฐ€ ๋Š˜์–ด๋‚˜๋ฉด์„œ ๊ฒŒ์‹œํŒ, ๋ธ”๋กœ๊ทธ ๋“ฑ๊ณผ ๊ฐ™์€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ•˜๋Š” ๋ถ€๋ถ„๋“ค์ด ์ƒ๊ธฐ๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐ๋„ท๊ณผ ์›น์ด ํƒœ๋™ํ–ˆ๋˜ CERN๊ณผ ๊ฐ™์€ ์ดˆ์ฐฝ๊ธฐ์˜ ์—ฐ๊ตฌ๊ธฐ๊ด€์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ ์˜ค๋Š˜๋‚ ์˜ ์›น์€ ์ผ์ƒ์ƒํ™œ ๊นŠ์ˆ™์ด ํŒŒ๊ณ ๋“ค์—ˆ๊ณ , ๋„ค์ดํ‹ฐ๋ธŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋Œ€์ฒดํ•˜๋Š” ์ˆ˜์ค€์— ์ด๋ฅด๋ €์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ „ํ˜•์ ์ธ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๋ฐฉ์‹์€ HTTP ์š”์ฒญ์— ๋Œ€ํ•œ HTTP ์‘๋‹ต์„ ๋ฐ›์•„์„œ ๋ธŒ๋ผ์šฐ์ €์˜ ํ™”๋ฉด์„ ๋ชจ๋‘ ์ง€์šฐ๊ณ  ๋ฐ›์€ ๋‚ด์šฉ์„ ์ƒˆ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ์‹์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋•Œ Ajax์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์ด ๋‚˜ํƒ€๋‚˜๋ฉด์„œ ์‚ฌ์šฉ์ž์™€ ๊ธด๋ฐ€ํžˆ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์›น ์„œ๋น„์Šค๊ฐ€ ๋“ฑ์žฅํ•˜์˜€๊ณ  ์ธ๊ธฐ๋ฅผ ๋Œ๊ธฐ ์‹œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ RIA(Rich Internet Application) ๊ธฐ์ˆ ์˜ ๋ฐœ๋‹ฌ์ด ์›น์†Œ์ผ“์˜ ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•ด, ๊ธฐ์กด์—๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์›น ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ˆจ๊ฒจ์ง„ ํ”„๋ ˆ์ž„์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ Long Polling, Stream ๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๋ฐฉ์‹์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTP ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์›น ์„œ๋ฒ„๊ฐ€ ์ด ์š”์ฒญ์— ๋Œ€ํ•œ HTTP ์‘๋‹ต์„ ๋ณด๋‚ด๋Š” ๋‹จ๋ฐฉํ–ฅ์˜ ๋ฉ”์‹œ์ง€ ๊ตํ™˜ ๋ฐฉ์‹์„ ์œ ์ง€ํ•˜๋Š” ์„ ์—์„œ ๊ตฌํ˜„๋œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๊ธฐ์กด์˜ ๋ฐฉ๋ฒ•์— ์ผ์ข…์˜ ํŠธ๋ฆญ์„ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ๊ธฐ์กด์˜ ์›น ๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์ผ์€ ๋ณต์žกํ•˜๊ณ  ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.

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

์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ Ajax์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ๊ฐœ๋… ๋ฉด์—์„œ Ajax์™€ ์ฐจ์ด๋ฅผ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Ajax์˜ ๊ฒฝ์šฐ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์›น ์„œ๋ฒ„์—์„œ ํ˜ธ์ถœ๋œ ๊ฐ’์„ ๊ฒ€์ƒ‰, ์ž‘์„ฑํ•ด์„œ ์›น ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๋Š” ํ˜•์‹์˜ ๊ตฌ์กฐ๋ผ๋ฉด ์›น์†Œ์ผ“์˜ ๊ฒฝ์šฐ๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ˜ธ์ถœํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋Š” ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์—ฌ ๋ฐ˜๋Œ€๋กœ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๊นŒ์ง€ ์žˆ์Šต๋‹ˆ๋‹ค.

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