ํ์ฌ websockify/websocket.py๋ "numpy"๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๊ฒฝ๊ณ ๋ฅผ ํ์ํฉ๋๋ค.
๊ฒฝ๊ณ : 'numpy' ๋ชจ๋ ์์, HyBi ํ๋กํ ์ฝ์ด ๋ ๋๋ฆฌ๊ฑฐ๋ ๋นํ์ฑํ๋จ
์ด๊ฒ์ ๋ค์ ํผ๋์ค๋ฝ์ต๋๋ค. ์ฐ์ , HyBi๋ ํ์คํ "๋นํ์ฑํ"๋์ง ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๋ง ๋๋ฆฐ๊ฐ์? ๋๋ noVNC๋ก ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์ํํ์ผ๋ฉฐ ๋์ ํ๋ ์ ์๋๋ก Youtube ๋น๋์ค๋ฅผ ์ฌ์ํ ๋์๋ websocket.py๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ธ์ค๋ CPU๋ฅผ ๋ง์ด ์ฌ์ฉํ์ง ์์ต๋๋ค. "์์" ๋ชฉ๋ก์๋ ๊ฑฐ์ ํ์๋์ง ์์ต๋๋ค. ์ด์ ๋ํด ์ค์ ์ธก์ ์ด ์ด๋ฃจ์ด์ก๋์ง ๊ถ๊ธํฉ๋๋ค. ์ธํฐ๋ท ๊ฒ์์ ํด๋ณด์์ง๋ง ์๋ฌด ๊ฒ๋ ์ฐพ์ง ๋ชปํ์ต๋๋ค(numpy ๋ฌธ์ ์ ์ธ...). IMHO, numpy๊ฐ ์๋นํ ์ฐจ์ด๋ฅผ ๋ง๋ ๋ค๋ ๊ฒ์ ์ธก์ ํ ์ ์๋ค๋ฉด ํ์ค Python ๊ธฐ๋ฅ๋ง ํ์๋ก ํ๋ ๊ฒ์ด ๋ ์ข๊ณ ๊นจ๋ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
"๋๋ฆฌ๊ฑฐ๋ ๋นํ์ฑํ๋" ๋ถ๋ถ์ websocket.py ์๋จ์์ ๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ์ด๊ณ ํ์ธ๋๋ 4๊ฐ์ ๋ค๋ฅธ python ๋ชจ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด ssl ๋ชจ๋์ ์ฐพ์ ์ ์์ผ๋ฉด TLS/wss๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค. ๋๋ ์ด๊ฒ์ ๋ ๋ช ํํ๊ฒ ํ ๋ณ๊ฒฝ ์ฌํญ์ ํธ์ํ์ต๋๋ค.
Numpy๊ฐ ํ์คํ ๋ ๋น ๋ฆ ๋๋ค. tests/latency.py + tests/latency.html ํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค(10ms ์ ์ก ์ง์ฐ ๋ฐ localhost์์ ์คํ).
ํจํท ํฌ๊ธฐ 2000๋ฐ์ดํธ:
ํจํท ํฌ๊ธฐ 20000๋ฐ์ดํธ:
ํจํท ํฌ๊ธฐ 100000๋ฐ์ดํธ:
๋ํ ํจํท ํฌ๊ธฐ๊ฐ 100kb์ธ ๊ฒฝ์ฐ numpy๊ฐ ์์ผ๋ฉด ๋๊ธฐ ์๊ฐ์ด 6๋ฐฐ ๋ ๋์ ๋ฟ๋ง ์๋๋ผ ์๋ฒ๊ฐ ๋ค์ณ์ง๊ธฐ ์์ํ๊ณ ํ ์คํธ ์ค์ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐฑ์คํํด์ผ ํฉ๋๋ค.
numpy๋ ์ค์ ๋ก ํด๋ผ์ด์ธํธ->์๋ฒ ๋ฐ์ดํฐ ๋ง์คํน์๋ง ์ํฅ์ ๋ฏธ์น๋ฏ๋ก noVNC์ ๊ฐ์ ์ฉ๋์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ websockify๋ noVNC๋ง์ ์ํ ๊ฒ์ด ์๋๋ฏ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒฝ์ฐ numpy๋ ์๋นํ ์ฑ๋ฅ ํฅ์์ ์ ๊ณตํฉ๋๋ค.
๊ฐ์ฌ ํด์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
"๋๋ฆฌ๊ฑฐ๋ ๋นํ์ฑํ๋" ๋ถ๋ถ์ websocket.py ์๋จ์์ ๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ์ ์ด๊ณ ํ์ธ๋๋ 4๊ฐ์ ๋ค๋ฅธ python ๋ชจ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์๋ฅผ ๋ค์ด ssl ๋ชจ๋์ ์ฐพ์ ์ ์์ผ๋ฉด TLS/wss๊ฐ ๋นํ์ฑํ๋ฉ๋๋ค. ๋๋ ์ด๊ฒ์ ๋ ๋ช ํํ๊ฒ ํ ๋ณ๊ฒฝ ์ฌํญ์ ํธ์ํ์ต๋๋ค.
Numpy๊ฐ ํ์คํ ๋ ๋น ๋ฆ ๋๋ค. tests/latency.py + tests/latency.html ํ ์คํธ๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ต๋๋ค(10ms ์ ์ก ์ง์ฐ ๋ฐ localhost์์ ์คํ).
ํจํท ํฌ๊ธฐ 2000๋ฐ์ดํธ:
ํจํท ํฌ๊ธฐ 20000๋ฐ์ดํธ:
ํจํท ํฌ๊ธฐ 100000๋ฐ์ดํธ:
๋ํ ํจํท ํฌ๊ธฐ๊ฐ 100kb์ธ ๊ฒฝ์ฐ numpy๊ฐ ์์ผ๋ฉด ๋๊ธฐ ์๊ฐ์ด 6๋ฐฐ ๋ ๋์ ๋ฟ๋ง ์๋๋ผ ์๋ฒ๊ฐ ๋ค์ณ์ง๊ธฐ ์์ํ๊ณ ํ ์คํธ ์ค์ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐฑ์คํํด์ผ ํฉ๋๋ค.
numpy๋ ์ค์ ๋ก ํด๋ผ์ด์ธํธ->์๋ฒ ๋ฐ์ดํฐ ๋ง์คํน์๋ง ์ํฅ์ ๋ฏธ์น๋ฏ๋ก noVNC์ ๊ฐ์ ์ฉ๋์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ websockify๋ noVNC๋ง์ ์ํ ๊ฒ์ด ์๋๋ฏ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒฝ์ฐ numpy๋ ์๋นํ ์ฑ๋ฅ ํฅ์์ ์ ๊ณตํฉ๋๋ค.