์น์ฌ์ดํธ ๊ฐ๋ฐ ์์ญ์ ๊ณ ๊ธ ๊ธฐ์ ์ธ Websocket์ ๋จ์ผ ์ฅ๊ธฐ ์ฐ๊ฒฐ์ ํตํด ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์๋ฐฉํฅ, ์ ์ด์ค ํต์ ์ฑ๋์ ์ ๊ณตํ๋ ํต์ ํ๋กํ ์ฝ์ ๋๋ค. ์ด๋ HTTP ๋ฐ HTTPS(๊ฐ๊ฐ ํฌํธ 80 ๋ฐ 443)์ ๋์ผํ ํฌํธ๋ฅผ ํตํด ์๋ํ๋ฉฐ ์ต์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ์ธ ๋ถ๋ถ์ด ๋์ด ์ค์๊ฐ ๋ฐ์ดํฐ ์ ์ก์ ๊ฐ๋ฅํ๊ฒ ํ๊ณ ํด๋ผ์ด์ธํธ ์ธก์์ ์ง์์ ์ธ ํด๋ง์ด ํ์ํ์ง ์๊ฒ ๋์์ต๋๋ค.
Websocket ํ๋กํ ์ฝ์ ๊ธฐ์กด HTTP ๊ธฐ๋ฐ ํต์ ์ ํน์ ์ ํ ์ฌํญ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฑ์ฅํ์ต๋๋ค. HTTP๋ ์์ฒญ-์๋ต ๋ชจ๋ธ์์ ์๋ํ์ง๋ง ์น์์ผ์ ์ง์์ ์ธ ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๊ตํ์ ํ์ฉํ์ฌ ๋๊ธฐ ์๊ฐ์ ํฌ๊ฒ ์ค์ด๊ณ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค. ๋๋ถ๋ถ์ ์ต์ ๋ธ๋ผ์ฐ์ ์ ์ง์์ ํตํด Websocket์ ๋ผ์ด๋ธ ์ฑํ ์์คํ , ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๋์๋ณด๋, ์จ๋ผ์ธ ๊ฒ์ ๋ฐ ๊ณต๋ ํธ์ง์ ํฌํจํ ๋ค์ํ ์๋๋ฆฌ์ค์์ ์ฌ์ฉ๋ฉ๋๋ค.
์น์์ผ์ ์ฃผ์ ์ด์ ์ ์๋ก์ด ์ฐ๊ฒฐ์ด๋ ์๋ฒ ๋ฆฌ์์ค๊ฐ ํ์ ์์ด ์ฌ๋ฌ ๋ฐ์ดํฐ ์ ์ก์ ๋์์ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๋ฅ๋ ฅ์์ ๋น๋กฏ๋ฉ๋๋ค. ๋ํ Websocket ํ๋กํ ์ฝ๊ณผ ๊ด๋ จ๋ ํค๋ ์ค๋ฒํค๋๋ ๊ธฐ์กด HTTP๋ณด๋ค ํจ์ฌ ๋ฎ์ผ๋ฏ๋ก ๋คํธ์ํฌ ํจ์จ์ฑ์ด ํฅ์๋ฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก Websocket์ ํ์ฉํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ฒ ์ธํ๋ผ์ ์ฑ๋ฅ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ๋ ๋ง์ ์์ ๋์ ์ฌ์ฉ์๋ฅผ ์์ฉํ๋๋ก ํ์ฅํ ์ ์์ต๋๋ค.
AppMaster ํ๋ซํผ์์ ๊ณ ๊ฐ์ Websocket ๊ธฐ์ ์ ํ์ฉํ์ฌ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ค์๊ฐ ํต์ ์ ์ด์งํ๋ ํ์ฅ ๊ฐ๋ฅํ๊ณ ํจ์จ์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
AppMaster ์ ํ๋ฆฌ์ผ์ด์ ์ Websocket์ ํตํฉํ๊ธฐ ์ํด ์น ๋ฐ ๋ชจ๋ฐ์ผ ํด๋ผ์ด์ธํธ์์ ํธ์ถํ ์ ์๋ Websocket endpoints ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ฌํ endpoints ์๋ฐฉํฅ ๋ฐ์ดํฐ ํ๋ฆ์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฏ๋ก ์ ํต์ ์ธ ์์ฒญ-์๋ต ์ฃผ๊ธฐ๋ ํด๋ง ์์ด๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ์ง์์ ์ผ๋ก ์ ๋ณด๋ฅผ ๊ตํํ ์ ์์ต๋๋ค. ๊ณ ๊ฐ์ ์๊ฐ์ BP(๋น์ฆ๋์ค ํ๋ก์ธ์ค) ๋์์ด๋๋ฅผ ํ์ฉํ์ฌ ์ด๋ฌํ Websocket ๋ฉ์์ง์ ๊ด๋ จ๋ ๋ณต์กํ ๋น์ฆ๋์ค ๋ ผ๋ฆฌ๋ฅผ ์ฝ๊ฒ ์ค๊ณ ๋ฐ ๊ตฌํํ๊ณ ์ด๋ฒคํธ ๊ธฐ๋ฐ ์ฒ๋ฆฌ๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํฉํ ์ ์์ต๋๋ค.
๋ํ AppMaster ๋์ ์์ ์ ๋ํ ํจ์จ์ฑ๊ณผ ์ ํฉ์ฑ์ผ๋ก ์๋ ค์ง Go(Golang) ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๊ตฌ์ถ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ๊ณ ๋ฐฐํฌํฉ๋๋ค. ์ด๋ฅผ ํตํด AppMaster ํ๋ซํผ์์ Websocket์ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ฐ์ ๋์ ์ฐ๊ฒฐ์ ์ฒ๋ฆฌํ๊ณ ์ต์ข ์ฌ์ฉ์์๊ฒ ์ํํ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์๋๋ก ์ค๋น๋์ด ์์ต๋๋ค.
AppMaster ์ธ์ฆ, ๋ฉ์์ง ์ฒ๋ฆฌ, ์ง๋ ฌํ ๋ฐ ๋ธ๋ก๋์บ์คํ ๊ณผ ๊ฐ์ ๋ค์ํ ์๋๋ฆฌ์ค์ ๋ํด Websocket endpoints ์ฌ์ฉ์ ์ ์ํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์์ ์ญ๋์ ๋์ฑ ๊ฐํํฉ๋๋ค. ๋ํ ์ฌ์ฉ์๋ ๋คํธ์ํฌ ์ค๋จ์ด๋ ํด๋ผ์ด์ธํธ ์ฅ์น ์ผ์ ์ค๋จ ์ค์ ์๋์ผ๋ก ๋ค์ ์ฐ๊ฒฐํ๊ณ ์ง์์ ์ธ ์ํ๋ฅผ ์ ์งํ๋๋ก endpoints ๊ตฌ์ฑํ ์ ์์ผ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ์์ ์ฑ์ด ํฅ์๋ฉ๋๋ค.
Websocket์ ํตํฉ์ ํตํด AppMaster ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ ์๋ฆผ ๋ฐ ๋ฐ์ดํฐ ์ ๋ฐ์ดํธ์ ๊ฐ์ ์ค์๊ฐ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ง์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ ์๊ฑฐ๋ ๊ธฐ์ ์ ์น์์ผ์ ์ฌ์ฉํ์ฌ ์ฌ๊ณ ์์ค์ ์ฆ์ ์ ๋ฐ์ดํธํ๊ณ ๊ณ ๊ฐ์๊ฒ ์ต์ ์ ํ ๊ฐ์ฉ์ฑ ์ ๋ณด๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ๊ณ ๊ฐ ๋ง์กฑ๋๋ฅผ ๋์ด๊ณ ๋ ๋ง์ ํ๋งค๋ฅผ ์ด์งํ ์ ์์ต๋๋ค. ๋ํ Websocket์ ๊ณต์ ํ๋ก์ ํธ์์ ์์ ํ๋ ์ฌ์ฉ์์ ์ค์๊ฐ ํ์ ์ ์ง์ํ์ฌ ์ ๋ฐ์ดํธ๋ฅผ ์ฆ์ ๊ณต์ ํ๊ณ ํจ์จ์ ์ธ ํ์ํฌ๋ฅผ ์ด์งํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ์น์์ผ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ค์๊ฐ ์๋ฐฉํฅ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ํ๋ ์น์ฌ์ดํธ ๊ฐ๋ฐ์ ์์ด์๋ ์ ๋ ๊ตฌ์ฑ ์์๊ฐ ๋์์ต๋๋ค. ์ด๋ ๊ธฐ์กด HTTP ๊ธฐ๋ฐ ๊ธฐ์ ์ ๋นํด ์๋นํ ์ฑ๋ฅ ์ด์ ์ ์ ๊ณตํ๋ฉฐ ๋ค์ํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํ์ฅ ๊ฐ๋ฅํ๊ณ ํจ์จ์ ์ธ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ์๊ฐ์ BP ๋์์ด๋, Golang ๋ฐฑ์๋ ์์ฑ ๋ฐ ํฌ๊ด์ ์ธ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)์ ๊ฐ์ถ AppMaster ์ no-code ํ๋ซํผ์ ๊ฐ๋ฐ์๊ฐ ์น์์ผ์ ๋ชจ๋ ์ ์ฌ๋ ฅ์ ํ์ฉํ์ฌ ์น, ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํจ๊ณผ์ ์ผ๋ก ๋ง๋ค ์ ์๋๋ก ์ง์ํฉ๋๋ค. ์ค๋๋ ๋์งํธ ์ธ๊ณ์ ์๊ตฌ ์ฌํญ.