WebSockets๋ ํด๋ผ์ด์ธํธ(์ผ๋ฐ์ ์ผ๋ก ์น ๋ธ๋ผ์ฐ์ )์ ์๋ฒ(์ผ๋ฐ์ ์ผ๋ก ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ) ๊ฐ์ ๋จ์ผ ์ฅ๊ธฐ ์ฐ๊ฒฐ์ ํตํด ์ ์ด์ค(์๋ฐฉํฅ) ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋๋ฆฌ ์ฑํ๋ ํต์ ํ๋กํ ์ฝ์ ๋๋ค. IETF(Internet Engineering Task Force)์์ RFC 6455์ ์ ์ ์๋ ํ์ค์ผ๋ก ์ค์ ํ WebSocket์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ค์๊ฐ ๋ฐ์ดํฐ ๊ตํ ๋ฐ ์ ์ง์ฐ ํต์ ์ ์ํด HTTP์ ๊ฐ์ ํ๋กํ ์ฝ์ ๋ํ ๋ณด๋ค ํจ์จ์ ์ธ ๋์์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. WebSockets๋ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํธ์์ฉ์ฑ๊ณผ ์๋ต์ฑ์ ํฌ๊ฒ ํฅ์์ํค๊ธฐ ๋๋ฌธ์ ๋ฐฑ์๋ ๊ฐ๋ฐ ์ธ๊ณ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
WebSocket์ ํ์์ฑ์ HTTP์ ๊ฐ์ ๊ธฐ์กด ์์ฒญ-์๋ต ๊ธฐ๋ฐ ํต์ ๋ฉ์ปค๋์ฆ์ ํ๊ณ์์ ๋ฐ์ํฉ๋๋ค. ์ด๋ฌํ ๋ฉ์ปค๋์ฆ์์ ํด๋ผ์ด์ธํธ๋ ์๋ฒ์์ ๊ฐ๋ณ ์ฐ๊ฒฐ์ ์ค์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๊ฒ์ํ๋ฏ๋ก ์ค์๊ฐ ํต์ ์๋๋ฆฌ์ค์ ๋์ ์ค๋ฒํค๋์ ๋๊ธฐ ์๊ฐ์ด ๋ถ๊ณผ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ธฐ์กด์ HTTP ์ ๊ทผ ๋ฐฉ์์ ์น ๋๋ ๋ชจ๋ฐ์ผ ๊ธฐ๋ฐ ์ฑํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ๋ฉ์์ง๋ฅผ ํ์ธํ๊ธฐ ์ํด ์์ฃผ ํด๋งํด์ผ ํ๋ฏ๋ก ์๋นํ ์ฑ๋ฅ ์ค๋ฒํค๋์ ์ ์ฌ์ ์ธ ํ์ฅ์ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. WebSocket์ ์ค๋ ์ง์๋๋ ์ฐ๊ฒฐ์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ง์์ ์ธ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ์ฌ ์ด๋ฌํ ์ ํ ์ฌํญ์ ํด๊ฒฐํฉ๋๋ค.
๋ฐฑ์๋ ๊ฐ๋ฐ์ ๋งฅ๋ฝ์์ WebSockets๋ ๊ฒ์, ๊ธ์ต ๊ฑฐ๋ ํ๋ซํผ, ์ค์๊ฐ ๋ถ์ ๋ฐ ์์ ๋ฏธ๋์ด ํผ๋์ ๊ฐ์ ๋ค์ํ ๋ํํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ณด๋ค ์ํํ๊ณ ํจ์จ์ ์ธ ํต์ ์ฑ๋์ ์ด์งํฉ๋๋ค. ์ด ์๋ฐฉํฅ ํต์ ์ ํตํด ๋ฐฑ์๋ ์๋ฒ๋ ๋ฐ์ดํฐ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํด์ง๋ฉด ํด๋ผ์ด์ธํธ์ 'ํธ์'ํ์ฌ ์ง์์ ์ธ ํด๋ผ์ด์ธํธ ํด๋ง์ด ํ์ํ์ง ์์ต๋๋ค. ๋ํ WebSockets๋ ์ฌ๋ฌ ์์ฒญ์ ๋ํด ๋์ผํ ์ฐ๊ฒฐ์ ์ฌ์ฌ์ฉํ์ฌ ์๋ฒ ์ธก ๋ฆฌ์์ค ์๋น๋ฅผ ์ค์ฌ ๋ฐฑ์๋ ์์คํ ์ ์ ๋ฐ์ ์ธ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
AppMaster no-code ํ๋ซํผ ๋ด์์ WebSockets๋ ๊ณ ๊ฐ์ด ์ค์๊ฐ ํต์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ๋ํํ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ๊ณ ๊ฐ๋ฐํ ์ ์๋๋ก ํ๋ ๋ฐ ํ์์ ์ ๋๋ค. AppMaster ํด๋ผ์ด์ธํธ๋ WebSockets ํ๋กํ ์ฝ์ ํ์ฉํ์ฌ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์น ๋ฐ ๋ชจ๋ฐ์ผ ํด๋ผ์ด์ธํธ์ ํจ์จ์ ์ผ๋ก ์ํธ ์์ฉํ ์ ์๋๋ก REST API ๋ฐ WSS endpoints ์์ฑํ ์ ์์ต๋๋ค. ๊ฐ๋ ฅํ Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ ์ด๋ฌํ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ WebSocket ์ฐ๊ฒฐ์ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์ํฐํ๋ผ์ด์ฆ ๋ฐ ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์ ํ์ํ ์งง์ ๋๊ธฐ ์๊ฐ ํต์ ๋ฐ ํ์ฅ์ฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
AppMaster ์ฌ์ฉํ๋ฉด ๊ณ ๊ฐ์ด ๋ฐ์ดํฐ ๋ชจ๋ธ, ๋น์ฆ๋์ค ๋ ผ๋ฆฌ ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์๊ฐ์ ์ผ๋ก ์์ฑํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ํฌ๊ฒ ๊ฐ์ํํ ์ ์์ต๋๋ค. WebSockets ์ง์์ ์์ฑ๋ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํฉํจ์ผ๋ก์จ ํ๋ซํผ์ ํด๋ผ์ด์ธํธ๊ฐ ๋งค๋ ฅ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ณ ๋์ ๋ํํ ์๋ต ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ PostgreSQL ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ์คํ ๋ฆฌ์ง๋ก ์ฝ๊ฒ ์ํธ ์์ฉํ ์๋ ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํด๋ผ์ด์ธํธ๋ ์ต์ํ์ ์๋ ์์ ์ผ๋ก WebSocket์ ์ด์ ์ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ฉด์ ์ ํ๋ฆฌ์ผ์ด์ ๋ ผ๋ฆฌ ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ค๊ณ์ ์ง์คํ ์ ์์ต๋๋ค.
WebSocket ์ฐ๊ฒฐ ๋ณด์์ ํนํ ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ๋ฌ๋ ๋ฐ์ดํฐ์ ๊ธฐ๋ฐ์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๋ฐ ์ค์ํฉ๋๋ค. AppMaster TLS(์ ์ก ๊ณ์ธต ๋ณด์)๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ํต์ ์ ์ํธํํ๋ WSS(WebSocket Secure) ํ๋กํ ์ฝ์ ์ง์ํ์ฌ ์ด๋ฌํ ์ธก๋ฉด์ ์ฒ๋ฆฌํฉ๋๋ค. ์ ์ ํ ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฉ์ปค๋์ฆ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉด WebSocket ์ฐ๊ฒฐ์ ํด๋ผ์ด์ธํธ์ ๋ฐฑ์๋ ์๋ฒ ๊ฐ์ ์ค์ํ ์ ๋ณด๋ฅผ ์ ์กํ๊ธฐ ์ํ ๋ณด์ ์ฑ๋์ ์ ๊ณตํ ์ ์์ต๋๋ค.
WebSockets๋ ์ง์ฐ ์๊ฐ์ด ์งง์ ์ค์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ์์ ์ฆ๊ฐ์ ๋ถ์ํ๋ ํ์ ์ ์ธ ํต์ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํจ์ผ๋ก์จ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์์ด์๋ ์ ๋ ์์์ ๋๋ค. ์ต์ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ด์์ธ WebSockets๋ ์ ์ด์ค ํต์ , ์๋ฒ ์ค๋ฒํค๋ ๊ฐ์, ํ์ฅ์ฑ ํฅ์๊ณผ ๊ฐ์ ๋ค์ํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. AppMasterno-code ํ๋ซํผ์ ์ด ํ๋กํ ์ฝ์ ์ค์์ฑ์ ์ธ์ ํฉ๋๋ค. ์ด๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ํํ๊ฒ ํตํฉํ์ฌ ๊ณ ๊ฐ์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ํต์ฌ ๊ธฐ๋ฅ์ ์ง์คํ๋ฉด์ WebSocket์ ์ฑ๋ฅ์ ํ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.