AppMaster ์ ๊ฐ์ no-code ํ๋ซํผ์ ๋งฅ๋ฝ์์ WebSocket์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์๋ฒ ๋ฐฑ์๋ ๊ฐ์ ์ค์๊ฐ ํต์ ์ ์ ๊ณตํ์ฌ ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ํํ ๋ฐ ๋์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. WebSocket์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์ง์์ ์ธ ์๋ฐฉํฅ ํต์ ์ฑ๋์ ์ค์ ํ์ฌ ๋๊ธฐ ์๊ฐ์ ์ต์ํํ๋ฉด์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋๋ก ํ๋ ์ต์ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ ๊ตฌ์ฑ ์์์ ๋๋ค. ์ด ๊ธฐ์ ์ ๊ธฐ์กด์ ๊ธด ํด๋ง ๊ธฐ์ ์ ํ์์ฑ์ ํจ๊ณผ์ ์ผ๋ก ์ ๊ฑฐํ๊ณ ๋ค์ค HTTP ์ฐ๊ฒฐ ์ค์ ๋ฐ ์ ์ง์ ๊ด๋ จ๋ ์ค๋ฒํค๋๋ฅผ ์ค์ ๋๋ค.
WebSocket์ 2008๋ HTML5 ์ฌ์์ ์ผ๋ถ๋ก ์ฒ์ ์๊ฐ๋ ์ดํ ์น ๊ธฐ๋ฐ ์ค์๊ฐ ํต์ ์ ํ์ค์ด ๋์์ต๋๋ค. Chrome, Firefox, Safari, Edge๋ฅผ ํฌํจํ ๋ชจ๋ ์ฃผ์ ์น ๋ธ๋ผ์ฐ์ ๋ ๋ฌผ๋ก ์๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์์ ์ง์๋๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ค์๊ฐ ๊ธฐ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ๊ฒ ํตํฉํ ์ ์์ต๋๋ค. WebSocket ํ๋กํ ์ฝ(RFC 6455)์ TCP๋ฅผ ํตํด ์๋ํ๋ฉฐ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ธฐ ์ํด HTTP์ ์ ์ฌํ ํธ๋์ ฐ์ดํฌ ํ๋ก์ธ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ HTTP์ ๋ฌ๋ฆฌ WebSocket ์ฐ๊ฒฐ์ ๊ฐ ๋ฐ์ดํฐ ๊ตํ ํ์๋ ๋ซํ์ง ์์ผ๋ฏ๋ก ์ง์์ ์ธ ๋ฐ์ดํฐ ์ ์ก ๋ฐ ์์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
ํนํ AppMaster ์ ๋งฅ๋ฝ์์ ์ฐ๋ฆฌ ํ๋ซํผ์ WebSocket์ ํ์ฉํ์ฌ ํ ๊ตฌ์ฑ์ ๊ฐ์ ์ํํ ํ์ ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ๊ตฌ์ฑ ์์ ๊ฐ์ ์ค์๊ฐ ๋๊ธฐํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. WebSocket์ ์ฌ์ฉํ์ฌ AppMaster ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ ๊ธฐ์กด ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ์ ๋นํด ๊ฐ๋ฐ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ํฌ๊ฒ ์ค์ด๋ฉด์ ๋ํํ ๋ฐ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด AppMaster ์ฌ์ฉ์๋ ๊ฐ๋ ฅํ Business Processes Designer๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ๋ฆฌ์ค WebSocket endpoints ์ค์ ํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฒ ๋ก์ง์ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์น ๋๋ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ฐ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐฑ์๋ ์๋น์ค์ ์ค์๊ฐ์ผ๋ก ํต์ ํ ์ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๋ฅผ ํตํด ๋ณต์กํ ์ฝ๋ฉ์ด๋ ์ธํ๋ผ ๊ตฌ์ฑ ์์ด๋ ์ฆ๊ฐ์ ์ธ ์๋ฆผ, ๋ผ์ด๋ธ ์ฑํ ๊ธฐ๋ฅ ๋๋ ์๋ฒ์ ์ค์๊ฐ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ๋ฅผ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ต๋๋ค.
๋ํ AppMaster Socket.IO์ ๊ฐ์ ์ ๊ณ ํ์ค WebSocket ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํตํฉ์ ์ง์ํ์ฌ ๋ฌธ์์ ๋ํ ์ค์๊ฐ ๊ณต๋ ์์ , ์ด๋ฒคํธ ๋ผ์ด๋ธ ์คํธ๋ฆฌ๋ฐ ๋๋ IoT ๋ฐ์ดํฐ ์์ง ๋ฐ ์ฒ๋ฆฌ์ ๊ฐ์ ๊ณ ๊ธ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฉ์ดํ๊ฒ ํฉ๋๋ค. ์ด๋ฌํ ํตํฉ์ ํตํด AppMaster ์ฌ์ฉ์๋ ์ฝ๋๋ฅผ ์์ฑํ ํ์ ์์ด ํน์ ์๊ตฌ ์ฌํญ์ ๋ง๋ ์ ๊ตํ ์ค์๊ฐ ๊ธฐ๋ฅ์ ๊ฐ์ถ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
AppMaster ์ ํ๋ฆฌ์ผ์ด์ ๋ด์ WebSocket ๊ตฌํ์ ํ๋ซํผ์ด WebSocket ์ฐ๊ฒฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ด์ฅ๋ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํ๋ฏ๋ก ๋งค์ฐ ์์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์น์ธ๋ ํด๋ผ์ด์ธํธ๋ง WebSocket ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํ ์ ์์ผ๋ฏ๋ก ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ์์คํ ์ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
์์์ ์ค๋ช ํ ์ด์ ์ธ์๋ AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์์ WebSocket์ ์ฌ์ฉํ๋ฉด ์ ๋ฐ์ ์ธ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ด ํฅ์๋ฉ๋๋ค. WebSocket ์ฐ๊ฒฐ์ ๊ธฐ์กด HTTP ํด๋ง ๊ธฐ์ ์ ๋นํด ๋ ์ ์ ๋ฆฌ์์ค๋ฅผ ์๋นํ๋ฏ๋ก AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฑ์๋ ์ธํ๋ผ์ ๊ณผ๋ํ ๋ถ๋ด์ ์ฃผ์ง ์์ผ๋ฉด์ ๋ ๋ง์ ์์ ๋์ ์ฐ๊ฒฐ๊ณผ ์ค์๊ฐ ๋ฐ์ดํฐ ๊ตํ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ์ด๋ฌํ ํฅ์๋ ํ์ฅ์ฑ์ผ๋ก ์ธํด AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํฐํ๋ผ์ด์ฆ ์์ค ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํนํ ์ ํฉํ๋ฉฐ ๋์์ ์ฅ๊ธฐ์ ์ผ๋ก ํธ์คํ ๋ฐ ์ธํ๋ผ ๋น์ฉ์ ์ ๊ฐํฉ๋๋ค.
์์ฝํ๋ฉด, AppMasterno-code ํ๋ซํผ ๋ด WebSocket์ ํตํฉ์ ํตํด ์ฌ์ฉ์๋ ์ต์ํ์ ๊ฐ๋ฐ ๋ ธ๋ ฅ์ผ๋ก ๊ณ ๋๋ก ๋ํํ์ธ ์ค์๊ฐ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ธ๊ธฐ ์๋ WebSocket ๋ผ์ด๋ธ๋ฌ๋ฆฌ, WebSocket endpoints ์ค์ ์ ์ํ ์ง๊ด์ ์ธ ๋น์ฆ๋์ค ํ๋ก์ธ์ค ๋์์ด๋, ๊ฐ๋ ฅํ ๋ด์ฅ ํ์ฅ์ฑ ๋ฐ ๋ณด์ ๊ธฐ๋ฅ๊ณผ์ ์ํํ ํตํฉ์ ์ ๊ณตํจ์ผ๋ก์จ AppMaster ํตํด ์ฌ์ฉ์๋ ์์ ์ ์ด๊ณ ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ฉฐ ๋น์ฉ ํจ๊ณผ์ ์ธ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. , ๋จ ํ ์ค์ ์ฝ๋๋ ์์ฑํ์ง ์๊ณ ๋ชจ๋ ๊ฐ๋ฅํฉ๋๋ค.