๐Ÿ“˜ SyncMon

WebSocket์€ ์™œ ํ•„์š”ํ• ๊นŒ

์‹ค์‹œ๊ฐ„ ํ†ต์‹ ์ด ํ•„์š”ํ•œ ์ด์œ ์™€ WebSocket์˜ ๋™์ž‘ ๋ฐฉ์‹

์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๋‹ค ๋ณด๋ฉด ํ•œ ๋ฒˆ์ฏค ์ด๋Ÿฐ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ๋‚˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ฑ„ํŒ… ๋ฉ”์‹œ์ง€๊ฐ€ ์˜ค๋ฉด ํ™”๋ฉด์— ๋ฐ”๋กœ ๋ณด์—ฌ์•ผ ํ•˜๊ณ ,

์ฃผ๊ฐ€๋‚˜ ์ฝ”์ธ ์‹œ์„ธ์ฒ˜๋Ÿผ ๊ฐ’์ด ๊ณ„์† ๋ฐ”๋€Œ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ƒˆ๋กœ๊ณ ์นจ ์—†์ด ๊ฐฑ์‹ ๋˜์–ด์•ผ ํ•˜๋ฉฐ,

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

์ด๋Ÿฐ ์š”๊ตฌ์‚ฌํ•ญ์€ ๊ฒฐ๊ตญ ํ•˜๋‚˜์˜ ์งˆ๋ฌธ์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค.

โ€œ์›น์€ ์›๋ž˜ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ์‘๋‹ต์„ ๋ฐ›๋Š” ๊ตฌ์กฐ์ธ๋ฐ, ์„œ๋ฒ„๊ฐ€ ๋จผ์ € ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?โ€

์ด ์ง€์ ์—์„œ ๋“ฑ์žฅํ•˜๋Š” ๊ธฐ์ˆ ์ด ๋ฐ”๋กœ WebSocket์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” WebSocket์ด ๋ฌด์—‡์ธ์ง€, ์™œ ํ•„์š”ํ•œ์ง€, ๊ทธ๋ฆฌ๊ณ  HTTP์™€ ๋ฌด์—‡์ด ๋‹ค๋ฅธ์ง€๋ฅผ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

SyncMon์— WebSocket์ด ํ•„์š”ํ–ˆ๋˜ ์ด์œ 

์‹ค์‹œ๊ฐ„ ๋ชจ๋‹ˆํ„ฐ๋ง์—์„œ โ€œ๋ฐ”๋กœ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒโ€์˜ ์ค‘์š”์„ฑ

WebSocket์€ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ์„ ํ•œ ๋ฒˆ ๋งบ์€ ๋’ค, ๊ทธ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค.

๋ณดํ†ต ์›น์€ HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์„ ๋ณด๋‚ด์•ผ ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ตฌ์กฐ๋Š” ์กฐํšŒ๋‚˜ ์ €์žฅ ๊ฐ™์€ ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋Šฅ์—๋Š” ์ž˜ ๋งž์ง€๋งŒ, ์„œ๋ฒ„์—์„œ ๋จผ์ € ์•Œ๋ ค์ค˜์•ผ ํ•˜๋Š” ์ƒํ™ฉ์—๋Š” ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•˜์ง€ ์•Š์•„๋„, ์ด์ƒ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•˜๋Š” ์ˆœ๊ฐ„ ๋ฐ”๋กœ ํ™”๋ฉด์— ๋ฐ˜์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ๋งค์ดˆ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด์„œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ๋„ ๊ตฌํ˜„์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ด๋ฒคํŠธ๊ฐ€ ์—†์„ ๋•Œ๋„ ๊ณ„์† ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๊ณ , ์ด์ƒ ์ƒํ™ฉ์ด ์ƒ๊ฒจ๋„ ๋‹ค์Œ ์š”์ฒญ ์‹œ์ ๊นŒ์ง€๋Š” ์ง€์—ฐ์ด ์ƒ๊น๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ ๊ฒฝ์šฐ์—๋Š” HTTP๋ณด๋‹ค WebSocket์ฒ˜๋Ÿผ ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์„œ๋ฒ„๊ฐ€ ์ฆ‰์‹œ pushํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๊ฐ€ ๋” ์ž˜ ๋งž์Šต๋‹ˆ๋‹ค.


SyncMon์—์„œ๋Š” ์™œ WebSocket์ด ํ•„์š”ํ–ˆ์„๊นŒ

์ €ํฌ SyncMon์€ OGG ๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

์ด ์‹œ์Šคํ…œ์—์„œ๋Š” ๋‹จ์ˆœํžˆ ํ™”๋ฉด์— ์ƒํƒœ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ๋ถ€์กฑํ•œ ์‹œ์ ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

ํŠน์ • ๋ชจ๋‹ˆํ„ฐ๋ง ๋Œ€์ƒ์—์„œ ์ด์ƒ์ด ๋ฐœ์ƒํ•˜๋ฉด,

์šด์˜์ž๊ฐ€ ํ™”๋ฉด์„ ๊ณ„์† ๋ณด๊ณ  ์žˆ์ง€ ์•Š๋”๋ผ๋„ ์ฆ‰์‹œ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ ์š”๊ตฌ์‚ฌํ•ญ ์ค‘ ํ•˜๋‚˜๊ฐ€

์„œ๋ฒ„์—์„œ ํŠน์ • ๋ชจ๋‹ˆํ„ฐ๋ง ์ด์ƒ์„ ๊ฐ์ง€ํ–ˆ์„ ๋•Œ, ํ™”๋ฉด์—์„œ TTS ์Œ์„ฑ์ด ๋ฐ”๋กœ ์žฌ์ƒ๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ์š”๊ตฌ์‚ฌํ•ญ์„ HTTP ๊ธฐ๋ฐ˜์œผ๋กœ ํ’€๋ ค๊ณ  ํ•˜๋ฉด ๊ตฌ์กฐ๊ฐ€ ์• ๋งคํ•ด์ง‘๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ์„œ๋ฒ„์—

โ€œ์ด์ƒ ์ƒํ™ฉ ์ƒ๊ฒผ๋‚˜์š”?โ€

๋ฅผ ๊ณ„์† ๋ฌผ์–ด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด ๋ฐฉ์‹์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ๋ถˆํŽธํ•ฉ๋‹ˆ๋‹ค.

ํ•˜๋‚˜๋Š” ๋ถˆํ•„์š”ํ•œ ์š”์ฒญ์ด ๊ณ„์† ์ƒ๊ธด๋‹ค๋Š” ์ ์ด๊ณ ,

๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ์ด์ƒ์ด ๋ฐœ์ƒํ•ด๋„ polling ์ฃผ๊ธฐ๋งŒํผ ๋Šฆ๊ฒŒ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

๋ชจ๋‹ˆํ„ฐ๋ง ์‹œ์Šคํ…œ์—์„œ ์ด ์ง€์—ฐ์€ ์ƒ๊ฐ๋ณด๋‹ค ์น˜๋ช…์ ์ž…๋‹ˆ๋‹ค.

์ด์ƒ ์ƒํ™ฉ์€ โ€œ๋‚˜์ค‘์— ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒโ€๋ณด๋‹ค โ€œ๋ฐœ์ƒํ•˜์ž๋งˆ์ž ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒโ€ ์ด ๋” ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ SyncMon์—์„œ๋Š”

์„œ๋ฒ„์™€ ํ™”๋ฉด ์‚ฌ์ด์— WebSocket ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜๊ณ ,

์ด์ƒ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ์ด๋ฒคํŠธ๋ฅผ ์ฆ‰์‹œ ํด๋ผ์ด์–ธํŠธ๋กœ pushํ•˜๋„๋ก ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ์ด ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์œผ๋ฉด

ํ™”๋ฉด ๊ฒฝ๊ณ ๋ฅผ ๋„์šฐ๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ TTS๋ฅผ ํ†ตํ•ด ์Œ์„ฑ์œผ๋กœ๋„ ์•Œ๋ฆฌ๋„๋ก ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰, ์—ฌ๊ธฐ์„œ WebSocket์„ ์“ด ์ด์œ ๋Š”

๋‹จ์ˆœํžˆ โ€œ์‹ค์‹œ๊ฐ„ ๊ธฐ์ˆ ์„ ์จ๋ณด๊ณ  ์‹ถ์–ด์„œโ€๊ฐ€ ์•„๋‹ˆ๋ผ,

๋ชจ๋‹ˆํ„ฐ๋ง ์ด์ƒ์„ ์šด์˜์ž๊ฐ€ ๋†“์น˜์ง€ ์•Š๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ์˜€์Šต๋‹ˆ๋‹ค.


์ •๋ฆฌ

WebSocket์€ ๋ชจ๋“  ์›น ๊ธฐ๋Šฅ์— ํ•„์š”ํ•œ ๊ธฐ์ˆ ์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์„œ๋ฒ„์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ฆ‰์‹œ ์‚ฌ์šฉ์ž ํ™”๋ฉด์— ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ต‰์žฅํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

SyncMon์—์„œ๋„ WebSocket์ด ํ•„์š”ํ–ˆ๋˜ ์ด์œ ๋Š” ๋ช…ํ™•ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด์ƒ ์ƒํ™ฉ์€ ์„œ๋ฒ„๊ฐ€ ๋จผ์ € ์•Œ๊ณ 
  • ๊ทธ ์ •๋ณด๋ฅผ ํ™”๋ฉด์— ์ฆ‰์‹œ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋ฉฐ
  • ์šด์˜์ž๋Š” ๊ทธ ์ˆœ๊ฐ„ ๋ฐ”๋กœ ์ธ์ง€ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค

ํŠนํžˆ TTS์ฒ˜๋Ÿผ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ž๋งˆ์ž ์ฆ‰์‹œ ๋ฐ˜์‘ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์€

์š”์ฒญ-์‘๋‹ต ๊ธฐ๋ฐ˜๋ณด๋‹ค ์„œ๋ฒ„ push ๋ฐฉ์‹์ด ํ›จ์”ฌ ์ž์—ฐ์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ SyncMon์—์„œ WebSocket์€

์‹ค์‹œ๊ฐ„ ํ†ต์‹  ์ž์ฒด๊ฐ€ ๋ชฉ์ ์ด ์•„๋‹ˆ๋ผ,

์žฅ์•  ์ง•ํ›„๋ฅผ ๋” ๋น ๋ฅด๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

ํƒœ๊ทธ:

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ: