์ด ํ๋ก์ ํธ์ ์ฒซ ๋ฒ์งธ ์ฝ๋๋ฅผ ์์ฑํ ์ง ์ค๋๋์์ต๋๋ค. ๊ทธ ๋น์์๋ ๊ฐ๋ ์ฆ๋ช ์ด์๊ณ node.js๋ ๋งค์ฐ ์๋ก์ด ๊ธฐ์ ์ด์์ต๋๋ค. ๋ ํฐ ์ฝ๋๋ฒ ์ด์ค๋ก ์์ ํ๋ ๊ฒ๊ณผ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ฑฐ์ ์์ง ๋ชปํ์ต๋๋ค. ์ค์ ๋ก ํ์ฅ ํ ์๋๊ฐ ์์๊ณ ์ด์ Etherpad์์ ๋ง์ด ์ดํดํ์ง ๋ชปํ๋ ๋ง์ ์ฝ๋๋ฅผ ๋ณต์ฌํ์ต๋๋ค. ํ๋ก์ ํธ๋ฅผ ๋ ๋ฌ์ ๋ ๋ง์ ์ฝ๋ ํ๋์ด ์ค๋จ ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ง๋ง์ด ํ๋ก์ ํธ์ ๋ํ ์ฌ์ฉ์ ์์๋ ์ฌ์ ํ ๋์ ๊ฒ ๊ฐ์ต๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ด ์ค๋ ์ด๋ป๊ฒ ์ธ์ง ์๊ฐํ๊ฒํ์ต๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ ์์ ๋๊ฒ ๋ง๋๋ ์๋ก์ด ๊ธฐ์ ์ ์ฌ์ฉํ๋๋ก ํ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ํ ํ๋ ์ ์ํฌ๊ฐ ์์ง ํ๋ฆฝ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ฌ๊ธฐ์์ ๋ฐํด๋ฅผ ์ฌ๋ฌ ๋ฒ ์ฌ๋ฐ ๋ช ํด์ผํ์ต๋๋ค. ์ ํ ์ค๋ฅ๋ฅผ ํผํ๊ธฐ ์ํด ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ธก์์ typescript๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋งค์ฐ ํ ์คํธ ์ค์ฌ์ ์ ๊ทผ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ๊ฒ์ ๊ตฌ์ถํ๊ณ ๋ ๊ฐ์ฒด ์งํฅ์ ์ผ๋ก ๋ง๋์ญ์์ค. ์ด๋ฌํ ๊ฒ๋ค์ ํ ๋ฆฌํ์คํธ๋ฅผ ์ ๋ ฅํ๊ณ ํ ์คํธ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ๋๋ค์ด ๋ ์ฝ๊ฒ ๊ธฐ์ฌํ ์ ์๋๋กํด์ผํฉ๋๋ค. ํด๋ผ์ด์ธํธ ์ธก์์๋ ํธ์ง ๊ฐ๋ฅํ ์ฝํ ์ธ ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ฐ์์ผ๋ก ์ ํธ์ง๊ธฐ๋ฅผ ์์ํ ์ ์์ต๋๋ค. ์๋ง ์ฌ์ฌ์ฉ ํ ์์๋ ํธ์ง๊ธฐ๊ฐ์์ ์๋ ์์ต๋๋ค. ์ด๋ ๊ฒํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ณ ์ฝํ ์ธ ํธ์ง ๊ฐ๋ฅํ ๋ฒ๊ทธ๋ฅผ ํผํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. ๋ค์ ์์ฑํ๋ฉด ๋๋จธ์ง API ๋๋ ํ๋ฌ๊ทธ์ธ API๋ฅผ ์ฌ์ฉํ๋ ํ์ฌ ์ฝ๋๊ฐ ์์ ๋ ์ ์์ต๋๋ค. ๊ถ๊ทน์ ์ผ๋ก ๋ ๋ง์ ๊ธฐ๋ฅ์ ๊ตฌ์ถํ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๊ด์ฐฎ์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๊ฒ๋ค์ ๋ชจ๋ ์ง๊ธ๊น์ง์ ์๊ฐ์ด๋ฉฐ ์ ๋ ์ฌ๋ฌ๋ถ์ด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ๊ถ๊ธํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ๋ชจ๋ ๊ฒ์ ์๋กญ๊ณ ์์๊ฒ ๋ง๋ค๊ณ ์ถ์ดํ๊ณ ์ค์ ๋ก ํฐ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ค๋ ๋ด ์์ ๊ฐ๋ฐ์์ธ์ง ํ์คํ์ง ์์ต๋๋ค. ์๋๋ฉด ๋ด๊ฐ ํ๋ ธ๊ณ ์ด๋ฐ ์์ผ๋ก ์๊ฐํ๋ ์ฌ๋์ ๋๋ง์ด ์๋๋๋ค. ๋๋ ์์ฆ ๊ณ์ฝ์์ด๋ฉฐ ์ฌ๊ธฐ์์ ๋์ ๋์ํ๊ณ ๊ทธ๋ฌํ ๋ ธ๋ ฅ์ ํ์ํ๊ณ ์ถ๋ค๋ฉด ์ฐ๋ฝํ์ญ์์ค.
@Pita ๋ ๋ค์ ์์ฑ๋ Etherpad๊ฐ ํ์ฌ๋ณด๋ค ํจ์ฌ ๋ซ์ง ๋ง ์๋ฃํ๋ ๋ฐ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์์์ ์ธ๊ธ ํ ์์ด๋์ด๋ก ๊ฐ์ ํ ์ฌํญ :
iframe
ํญํฌ์๋ฅผ ์ ๊ฑฐ ํ ์ ์์ต๋๋ค. ๋๋ก๋ ์ฒ๋ฆฌํ๊ธฐ๊ฐ ์
๋ชฝ์
๋๋ค. ๋ค๋ฅธ ํํธ์ผ๋ก๋ Etherpad-core์ ๊ทธ ํ๋ฌ๊ทธ์ธ ๋ด๋ถ์ ๋ง์ ๊ฒ๋ค์ ๋ง๊ฐ๋จ๋ฆด ์ ์์ง๋ง, ๊ทธ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ๋ ๊นจ๋ํ๊ณ ๋จ์ํ ์ฝ๋๋ฒ ์ด์ค๋ก ๋๋์ผํ๋ ๋น์ฉ์
๋๋ค.ace2_inner.js
์์ ๋ณ๊ฒฝํด์ผ ํ ๋ ๋ฌด์ธ๊ฐ๋ฅผ ๊นจ๋ ๊ฒ์ด ๊ฐ์ธ์ ์ผ๋ก ํญ์ ๋๋ ค์ํฉ๋๋ค.์, ์ด๊ฒ์ด ์ข์ ์์ด๋์ด๋ผ๋ ๋ฐ ๋์ํ๋ฉฐ ๊ทธ ํ์๋ Etherpad๊ฐ
Rust์์ ์ฌ ์์ฑ (๋๋ ๊ทธ ์ผ๋ถ)์ ์ด๋ป์ต๋๊น? ๊ณผ์ฅ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ ์์ ํ๊ณ ๋นจ๋ผ์ผํ๋ ์์คํ ์ ๋ง์ ์ด์ ์ด ์์ต๋๋ค.
Rust์์ ์ฌ ์์ฑ (๋๋ ๊ทธ ์ผ๋ถ)์ ์ด๋ป์ต๋๊น? ๊ณผ์ฅ๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ฉฐ ์์ ํ๊ณ ๋นจ๋ผ์ผํ๋ ์์คํ ์ ๋ง์ ์ด์ ์ด ์์ต๋๋ค.
์ ๋ Rust์ ํฌ์ด์ง๋ง ์์ํ Rust ์๋ฒ ๋ wasm ํ๋ก ํธ ์๋๋ฅผํ๊ธฐ์๋ ๋๋ฌด ์ด๋ฅด๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ์๊ฐํ๋ ํ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ C / C ++ ๋์ Rust๋ก ๋ค์ดํฐ๋ธ ๋ชจ๋์ ์์ฑํ๋ ๊ฒ์ ๋๋ค ... ์๋ฅผ ๋ค์ด Neon Rust / Node ๋ฐ์ธ๋ฉ์ ์ค๋๋ ๊ฝค ์ ์๋ํฉ๋๋ค : https://github.com/neon-bindings/neon
ํ๋ก ํธ ์๋๋ฅผ ์ํด React๋ฅผ ์ง์งํ๊ฒ ๊ณ ๋ คํ๊ฑฐ๋ React๊ฐ ์ ์ ํ์ง ์๋ค๋ฉด ์ ์ด๋ ๊ตฌ์ฑ ์์๋ฅผ ๊ณ ๋ คํ๊ณ ๋ฐ์ดํฐ ํ๋ฆ ๋ฑ์ ๋ํด ์๊ฐํ ๊ฐ์น๊ฐ ์๋ค๋ ๋ฐ ๋์ํฉ๋๋ค. React๋ ๋๊ตฌ ๋ฐ ๊ฐ๋ฐ์ ์ธ์์ ๊ฐ์ง๊ณ ์์ง๋ง ๊ธฐ์ฌ์๋ฅผ ์ ์นํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค.
@lpagliari์ ๋์ํ๋ฉด ๊ธฐ์กด Etherpad ํ๋ฌ๊ทธ์ธ์ ๋ค์ ์๊ฐํ๊ณ ๊นจ๋จ๋ฆด ์ ์์ง๋ง ํ๋ฌ๊ทธ์ธ์ ๊ฐ๋ ๋ชฉํ๋ ๋๋ถ๋ถ์ ํ๋ฌ๊ทธ์ธ์ด ์ฌ์ฉํ๋ ํ์ฌ ์ ๊ทผ ๋ฐฉ์๋ณด๋ค React ์คํ์ผ ๊ตฌ์ฑ ์์๋ก ๋ ์ ์ ๊ณต ๋ ์ ์์ต๋๋ค.
Etherpad์ ๋ํด ์ด๋ค ๋ฌธ์ ๊ฐ ์๋์ง ๋ฌผ์ด๋ณผ ๋ ์ฌ๋๋ค๋ก๋ถํฐ๋ค์ ํ ๊ฐ์ง๋ ๋ชจ๋ฐ์ผ ์ง์์ ๋๋ค. ๋จ์ผ ๋ฐ์ ํ ํ๋ฐํธ ์๋๋ฅผ ๊ฐ๋ ๊ฒ์ด ์๋ง๋ ๊ฐ์ฅ ํฉ๋ฆฌ์ ์ผ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์ข์ ๊ธฐํ๊ฐ ๋ ๊ฒ์ ๋๋ค.
ํ๋ก๊ทธ๋ ์๋ธ ์น ์ฑ ์ง์นจ์ ์ ์ฒด ์ธํธ๋ ์ดํด๋ณผ ๊ฐ์น๊ฐ ์์ต๋๋ค.
์ด์ ๋ํ ์๊ฒฌ์ ๋ณด๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด React์ ํ๋ก ํธ ์๋ ์ฌ ์์ฑ์ ๋์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ๊ธฐ ์์ํ๊ณ ๋์ค์ ๋ฐฑ์๋๋ก ์ด๋ํ ์ ์์ต๋๋ค.
@fralix ์ ๋ Rust๋ฅผ ์ง์ ํ๋ ์ดํ๊ณ ๊ทธ ๋ค์ ์จ์ ์์ด๋์ด๊ฐ ๋ง์์
@rhelmer ๋ชจ๋ฐ์ผ์ ํ์ฌ ๋ฌธ์ ๋ ๋ฌด์์ ๋๊น? ํ๋ก ํธ ์๋ ์ฌ ์์ฑ์ ์ํด ์ด๊ฒ์ ์ฐ์ ์์๋ก๋๋ฉด ์ ๋นํํ๊ธฐ๊ฐ ๋ ์ฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค
์๋
ํ์ธ์ ์ฌ๋ฌ๋ถ,
๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ณ๋ค ๋ณด๋ ๋์์ด ์ค๋ ๋๋ฅผ ์ฐ์ฐํ ๋ฐ๊ฒฌํ์ต๋๋ค (์ด๋ ๋ผ์ดํธ ์ค์น๋ฅผ ์คํ ์ค์ด๋ฉฐ ์ข์ํฉ๋๋ค). ์ด ๋ฉ์ง ๋๊ตฌ๋ฅผ ๋ง๋ค์ด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค.
ํ๋์ ์ธ ์น ํ๋ ์ ์ํฌ๋ฅผ ์ฌ์ฉํ ์ฌ ์์ฑ์ ๊ณ ๋ คํ๋ค๋ฉด, ํนํ ๋ฐ์ํ๋ ๋์ preact (ํจ์ฌ ๋ ๋น ๋ฅธ vdom diffing / rendering)๋ฅผ ์ดํด๋ณด๊ณ ์ ์ฒด ๋ฐ์ ์ํ๊ณ์ ์ ๋์ ์ผ๋ก ํธํ๋๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ์ผ๋ถ ์ซ์๋ https://github.com/Rich-Harris/js-framework-benchmark ๋ฅผ ์ฐธ์กฐ
๋ํ react-material-ui, react-bootstrap ๋ฑ๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ดํด๋ณด์ญ์์ค. ๊ทธ๋ฌ๋ฉด ๋ฌด๋ฃ๋ก ์๋ต ํ ์ ์์ผ๋ฉฐ SASS์ ๋ง์ด ๋ง๋๊ณ ์ด์ธ๋ฆด ํ์๊ฐ ์์ต๋๋ค.
๋ฒ๋ค๋ง์ ์ํด ๋ฐ๋์ ์นํฉ์ ์ฌ์ฉํ์ญ์์ค (ํ์ฌ ์์ค ๋งต ๋ฐ ๋ฐ๋ฒจ ์ง์์ ํตํ ํซ ๋ฆฌ๋ก๋ฉ ๋ฐ ๋๋ฒ๊น ์ ํตํ ์ต๊ณ ์ ๊ฐ๋ฐ ๊ฒฝํ).
๋ํ REDUX ๋๋ ์ ์ฌํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด mobx๋ฅผ ํ์ธํ์ญ์์ค. ES7 ๋ฐ์ฝ๋ ์ดํฐ (๋งค์ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐ๋ฒจ ํ๋ฌ๊ทธ์ธ)๋ฅผ ์ฌ์ฉํ๋ฉด ๋ง์ ์ํ ๊ด๋ฆฌ ์์ฉ๊ตฌ๋ฅผ ์ ๊ฑฐ ํ ์ ์์ต๋๋ค. ๋ชจ๋ธ ์ฝ๋ฉ์ผ๋ก ๋์๊ฐ์ ๊ด์ฐฐ ๊ฐ๋ฅ ํญ๋ชฉ์ ์ ์ํ๋ฉด ๋ชจ๋ UI๊ฐ mobx์ ์ํ ์ํ ๋ณ๊ฒฝ์ ๋ํด ๋ฐ์ ์ ์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
@Pita ์ด๊ฒ์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?