์๋ค ์,
์ด๊ฒ์ ์์ ํ ๋ฒ๊ทธ๊ฐ ์๋๋๋ค.
๋๋ ๊ถ๊ธํ๋ค. Electron์ผ๋ก ๋น๋๋ ์ฑ์ด ์์ค๋ฅผ ๋ณดํธํฉ๋๊น? JxCore๋ฅผ ์๋ํ์ง๋ง ์์ค๋ฅผ ๋ณดํธํ์ง ์์ต๋๋ค. ์ ์๋ ์ด๋ป์ต๋๊น?
๊ฑด๋ฐฐ
์๋์, asar
์์นด์ด๋ธ์ ํจํค์งํ ๊ฒฝ์ฐ์๋ ์์ค ์ฝ๋๋ฅผ ์ป๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค. V8 JavaScript ์์ง์ ์์ค ์ฝ๋๋ฅผ ์จ๊ธฐ๋๋ก ์ค๊ณ๋์ง ์์์ต๋๋ค. NW.js๋ ์์ค ์ฝ๋์ ํ ํ์ผ์ ์์ ํ ์จ๊ธฐ๋ ๋ฐ ์ฑ๊ณตํ์ง๋ง ์๋นํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํฉ๋๋ค.
๋ฐ๋ผ์ ์ ๋ง๋ก ์์ค ์ฝ๋๋ฅผ ๋ณดํธํ๋ ค๋ฉด C++๋ก ์์ฑํ๊ณ ๋ค์ดํฐ๋ธ Node ๋ชจ๋์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
๋ช ๊ฐ์ง ์ต์ ์ด ์์ง๋ง ์ ๊ณตํ๋ ๋ณดํธ ์์ค์ @zcbenz๊ฐ ์ธ๊ธํ ์ด์ ๋ก ์ ํ๋ฉ๋๋ค.
์ด ๋ชจ๋ ๋ฐฉ๋ฒ์๋ ์ฝ๊ฐ์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํฉ๋๋ค.
@etiktin ๋๋ ์ด ๋ฌธ์ ๋ฅผ
C++ ์ ๋์จ์์ node.js ์ฝ๋๋ฅผ ์ง์ ์ ์ฉํ ์ ์์ต๋๊น?
@fritx , ๋
ธ๋์๋ ์ฝ๋๋ฅผ
์ฌ์ฉ์๋ ์ฌ์ ํ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ด๊ณ ๋ก๋๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ์ฌ์ฉ์ ์ ์ Electron ๋น๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจ๋จํ๊ณ Electron ๋น๋๊ฐ ๋ณ์กฐ๋์ง ์์๋์ง ํ์ธํ๋ ์ ๋์จ ๊ฒ์ฌ๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์ฌ์ฉ์๋ ์ฌ์ ํ ๋ฉ๋ชจ๋ฆฌ์ ๋ฌธ์์ด๋ก ์ฝ๋๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
์ข์ ์๋ฆฌ ์์ค๋ฅผ ๋ณดํธ! :์ด์ :
๊ทธ๋ ๋ค๋ฉด GitKraken, Whatsapp ๋๋ Slack๊ณผ ๊ฐ์ ํ์ํ ์ฝ๋ ์ ์ ์ฑ์ด ์ฝ๋๋ฅผ ์จ๊ธธ ์ ์๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง๋ฌธ์ด ์์ต๋๋ค.
@ alexis57 ๊ฐ์ ์ง๋ฌธ์ด ์์ต๋๋ค. ์๋ง๋ ๊ฒ์ฌ ์์๊ฐ ๋นํ์ฑํ๋์๊ฑฐ๋ ๋ญ๊ฐ๊ฐ์์ ์ ์์ต๋๋ค.
์๋๋ฉด ์ฃผ์ ์ฝ๋๊ฐ C/C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๊ฐ์ ธ์จ ๋ค์ GUI์ฉ์ผ๋ก ์ ์๋ฅผ ์ฌ์ฉํ๋์ง ์ ์ ์์ต๋๋ค.
whatsapp๊ณผ slack์ด ์์ค ์ฝ๋๋ฅผ ๋ณดํธํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์ถ์ต๋๋ค.
AFAIK ๊ทธ๊ฒ์ ๋จ์ํ ๋ณดํธ๋์ง ์์ต๋๋ค. app.asar๋ฅผ ์ถ์ถํ๊ณ ์์ค ์ฝ๋์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ฏผ๊ฐํ ๋ถ๋ถ์ ๋ํด ์์์ ์ ์ํ ๊ฒ์ฒ๋ผ ์ผ๋ฐ์ ์ผ๋ก C/C++์ ๊ฐ์ ์ปดํ์ผ๋ ์ธ์ด๋ก ์ฌ์ฉ์ ์ง์ ์ ๋์จ์ ์์ฑํฉ๋๋ค.
C++ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ์ปดํ์ผํ ์ ์์ต๋๊น?
@boeserwolf ๊ฐ์ฌํฉ๋๋ค! :)
๊ตฌ๋
node-ffi
๋ก๋ ๊ฐ๋ฅํฉ๋๋ค. Electron์ UI์๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค.
C/C++๋ก ์ฝ๋๋ฅผ ์์ฑํ ๋ค์ emscripten ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ด์ ๋ธ๋ฆฌ๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ์ ์ข์ต๋๋ค . ์ด๊ฒ์ Chromium์์ ์ ์๋ํฉ๋๋ค.
์ถฉ๋ถํ ๋ ธ๋ ฅ์ผ๋ก ๋ฌด์์ด๋ ๋ถํด/๋๋ ํํ ์ ์์ต๋๋ค. JavaScript๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ณ ASAR์ ํฌํจ์ํค๋ฉด ๋๋ค์์ ์ฌ๋๋ค์ด ์ ๊ทผํ์ง ๋ชปํ๊ฒ ๋ฉ๋๋ค. ์ ์๊ถ/๋ผ์ด์ ์ค๊ฐ ์ ์ฉ๋์ง ์๋ ์ฝ๋๋ฅผ ๋ณดํธํด์ผ ํ๋ ์ด์ ๊ฐ ์์ต๋๊น?
์ฌ๊ธฐ ๋ด 2์ผํธ, NW๊ฐ v8 ์ค๋
์ท ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
https://nwjs.io/blog/js-src-protect-perf/
nwjs์์ ์ด์ ์ 30%์๋ "์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๊ฐ ์ด์ ์ฑ๋ฅ ์ค๋ฒํค๋ ์์ด JS ์์ค ์ฝ๋๋งํผ ๋น ๋ฅด๊ฒ ์คํ๋จ"์ด๋ผ๋ ๊ธฐ์ฌ๋ฅผ ๋ณด์๊ณ NW์ ์ดํ ๋ฆด๋ฆฌ์ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ ๊ฒ์ ๋๋ค.
์ด๊ฒ์ ์ ๋ง ๊ด์ฌ์ด ์์ด์ @craftpip ๊ธฐ์ฌ๋ ๋นจ๊ฐ์์ผ๋ก ํ์
๊ฐ๋ฐ์ ์ ์ฅ์์๋ ๋๋ฌด ๋ถํธํฉ๋๋ค. ํฌ๊ธฐํ๊ณ NW๋ก ๋ฐ๊พธ์ธ์...
๋งค์ฐ ์ฐ์ํ ๋ฐฉ์์ผ๋ก ์ฝ๋ ๋ณดํธ๋ฅผ ์ฌ์ฉํ๋ ๋ค๋ฅธ node.js ํ๋ก์ ํธ๋ฅผ ๊ณต์ ํ๊ณ ์ถ์ต๋๋ค: https://github.com/zeit/pkg
Electron์ ์์ค ๋ณดํธ์ ๋ํ ํฌ๋ง์ด ์์ต๋๊น?
์ผ๋ถ ๋ถ๋ถ์ C++๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ์ธ์๋ JavaScript ์์ค๋ฅผ ์ถ์ํ๊ณ _obfuscate_ํ ์ ์์ต๋๋ค(์: javascript-obfuscator ์ฌ์ฉ ).
์ถ์์ ๋๋ ํ๋ ์ฝ๋๋ฅผ "๋์ฉ"ํ๋ ๋ฐ ํ์ํ ๋ ธ๋ ฅ์ _๊ทน์ ์ผ๋ก_ ์ฆ๊ฐ์ํค๋ฉฐ(๋ฐ๋ผ์ _๋น์ฉ_), ์ข ์ข ์ฒ์๋ถํฐ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋งํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์คํ ๊ฐ๋ฅํด์ง๋ ์ง์ ๊น์ง ๊ฐ๋๋ค. ๊ธฐ์ ์ ์ผ๋ก ํ ์ ์๋ ์ผ์ ์์ต๋๋ค. ๋น์ ์ด ์์ ํ ๋ค์ดํฐ๋ธ๊ฐ ๋๋๋ผ๋ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ ๋ํดํ์ญ์์ค (๋ฒ์ ์ฐพ๋ ๊ฒ ์ธ์๋ ์๋ฌด ๊ฒ๋ ์์).
์์ค ์ฝ๋๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ์ง ์์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๋น๋ฐ์ ์จ๊ธฐ๊ณ ์ถ๋ค๋ฉด:
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฌด๋ฃ ์๋น์ค๋ฅผ ๋ง๋ค์์ต๋๋ค. ์์ฉ ์ ์ ์ฑ์ ๋ง๋ค๊ณ ์๋๋ฐ ์๊ฒฉ ์ฆ๋ช ์ด ๋์ฉ๋ ๊น ๊ฑฑ์ ์ด ๋์ด ๋ง๋ค๊ฒ ๋์์ต๋๋ค.
๊ทธ๊ฒ์ ์ค์ ์ ์ ์์ฉ ํ๋ก๊ทธ๋จ IFF๋ฅผ ์์ํ๋ ํฌ๋ก์ค ํ๋ซํผ ๋์ฐ๋ฏธ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด ์๋ํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ํ๋ฉด ํ๊ฒฝ ๋ณ์๋ฅผ ํตํด ์๊ฒฉ ์ฆ๋ช ์ ์ ๋ฌํฉ๋๋ค.
์ถ๊ฐ ์ ๋ณด:
์๊ฐ:
https://medium.com/@rocketlaunchr.cloud/introducing -electron-vault-d09ade2c2020
์ ์ ์๋ฅ ๋น์น:
https://rocketlaunchr.github.io/electron-vault-docs/
@JohnWeisz
If the data is indeed sensitive, I think it should be handled by a remote server.
์๊ฒฉ ์๋ฒ ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ค์ ๋ก ๋ณ๊ฒฝ๋์ง ์์ Electron ์ฑ์์ ์ด๋ป๊ฒ ์ง์ ์ผ๋ก ์ ์ ์์ต๋๊น?
๊ทธ๊ฒ์ด ๋ด๊ฐ ํด๊ฒฐํ๋ ค๊ณ ํ๋ ๋ฌธ์ ์
๋๋ค.
Client Credentials
๋ถ์ฌ ์ ํ๊ณผ ํจ๊ป OAuth๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ client_secret
๋ ์ฌ์ ํ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์์ง๊ณ ์ด๋ก ์ ์ผ๋ก ๋๊ตฌ๋ ์ฝ์ ์ ์์ต๋๋ค. Electron ์์ค ์ฝ๋๊ฐ 100% ์ด๋ ค ์๊ณ ์ฌ์ฉ ๊ฐ๋ฅํ๋ฏ๋ก "ํฅ๋ฏธ๋ก์ด" ๋ฌธ์์ด์ ์ฝ๊ฒ ๊ฒ์ํ ์ ์์ต๋๋ค.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ 100% ํ์คํ ๋ฐฉ๋ฒ์ ์์ง๋ง ๋ด ์๋ฃจ์ ์ด ํ์คํ ๊ฐ์ ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์นํฉ์ด๋ angular2/4/6 ๋๋ vuejs2์ ๊ฐ์ SPA ํ๋ ์์ํฌ๋ก JS ์ฑ์ ๋น๋ํ๋ฉด ์ด๊ฒ์ด ๊ฐ๋ฅํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด asar ํ์ผ์ ์ถ์ถํ๋๋ผ๋ ์ฝ๋๋ฅผ ์ฝ๊ธฐ ํ๋ค ์ ์์ต๋๋ค.
๋ฌธ์ ๊ฐ ์ค์ ์ํธํ์๋ง ์ด์ ์ ๋ง์ถฐ์๋ ์ ๋๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ค ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ/์ฌ์ฉ์๊ฐ ํด๋ผ์ด์ธํธ์ ์์ค ์ฝ๋๋ฅผ ๋ณ์กฐํ์ง ์์์ต๋๋ค.
์๋ช ๋ asar๋ฅผ ๋ณด๊ดํ๊ฑฐ๋ ์์ค ์ฝ๋๊ฐ ๋ก๋๋๋ ์ ์ฌํ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ์๊ฐ ํ์ผ์ ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๊ฐ ์ ์ ๋ฐ์ด๋๋ฆฌ ์์ฒด์ ํตํฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ๊ณผ๋ถํ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๋ ์ ์ ์๋ --include-integrity-check ํ๋๊ทธ๋ฅผ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ปดํ์ผ๋ฉ๋๋ค.
@tulpn
๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๊ฐ ์ ์ ๋ฐ์ด๋๋ฆฌ ์์ฒด์ ํตํฉ๋ ์ ์๊ธฐ ๋๋ฌธ์
...
-- ๊ทธ๋ฌ๋ฉด ์ด๋ฏธ Electron์ด ํ๋ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ ์ํธํ/๋ณตํธํ๋ฅผ ์ถ์ถํ๋ ๊ฒ๋ฟ์ด๋ฉฐ ์์ค ์ฝ๋๊ฐ ์์ต๋๋ค. ๋๋ ๋๋ ํ๊ฐ ์ฌ๊ธฐ์์ ์ทจํ ์ ์๋ ์ ์ผํ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๊ณ ํ์ ํฉ๋๋ค(์ถ์, ์ถ์+๋๋ ํ ๋๋ ๊ธฐ๋ณธ ์ฝ๋ ์ปดํ์ผ).
๋๋ ์ผ๋ถ ์ฑ ์ฝ๋๋ฅผ ์๊ฒฉ ์๋น์ค๋ก ์ด๋ํฉ๋๋ค(๋ณด์์ด ํ์ํ ๊ฒฝ์ฐ ์ธ์ฆ ํฌํจ).
๋ฐ์ดํฐ๋ฅผ ์ํธํํ๊ณ ๋ฐํ์์ ์ํธ๋ฅผ ํด๋ ํ๊ณ ํ ํฐ์ด๋ ๋ชจ๋ ์ข ๋ฅ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ์ ๊ฐ์ ๋ณ์์ ์ง์ ๋ก๋ํ ์ ์์ง๋ง ์ ์ฒด ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์ํธํ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๊ฒฝ์ฐ ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค. Node C++ Addons์ ๊ธฐํ๋ฅผ ์ค ์ ์์ต๋๋ค.
nodejs๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํฉ๋๋ค.
Node.js ์ ๋์จ์ C++๋ก ์์ฑ๋ ๋์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๊ณต์ ๊ฐ์ฒด๋ก, require() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ Node.js์ ๋ก๋ํ ์ ์์ผ๋ฉฐ ์ผ๋ฐ Node.js ๋ชจ๋์ฒ๋ผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฃผ๋ก Node.js์์ ์คํ๋๋ JavaScript์ C/C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก ์ฝ๋๋ฅผ ๋ฐ์ด๋๋ฆฌ๋ก ์ปดํ์ผํ๋ฏ๋ก ์ฝ๋๋ฅผ ์ถ์ํํ ์ ์๊ณ ์ฑ๋ฅ์ด ํจ์ฌ ๋นจ๋ผ์ง๊ณ ์ฝ๋๋ฅผ ์ด๋ ์ ๋ ์จ๊ธธ ์ ์์ต๋๋ค.
์๋์,
asar
์์นด์ด๋ธ์ ํจํค์งํ ๊ฒฝ์ฐ์๋ ์์ค ์ฝ๋๋ฅผ ์ป๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค. V8 JavaScript ์์ง์ ์์ค ์ฝ๋๋ฅผ ์จ๊ธฐ๋๋ก ์ค๊ณ๋์ง ์์์ต๋๋ค. NW.js๋ ์์ค ์ฝ๋์ ํ ํ์ผ์ ์์ ํ ์จ๊ธฐ๋ ๋ฐ ์ฑ๊ณตํ์ง๋ง ์๋นํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํฉ๋๋ค.๋ฐ๋ผ์ ์ ๋ง๋ก ์์ค ์ฝ๋๋ฅผ ๋ณดํธํ๋ ค๋ฉด C++๋ก ์์ฑํ๊ณ ๋ค์ดํฐ๋ธ Node ๋ชจ๋์ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
C++ ์ ๋์จ์์ devtools๋ฅผ ๋นํ์ฑํํ๋ ๋ฐฉ๋ฒ๊ณผ C++ ์ ๋์จ์์ ์ ์์ ๋ชจ๋ API์ ์ก์ธ์คํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ด๋ฉฐ devtool ์์ด ์ฑ์ ํจํค์งํ ๊ณํ์ด ์์ต๋๊น? ํดํน์ ๋ฐฉ์งํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค( @ zcbenz )
์ฐ๋ฆฌ๋ ์์ค์ฝ๋๊ฐ ๊ณต๊ฐ๋๋ ๊ฒ์ ์ง์ณค์ต๋๋ค. ๋๋ nw๋ก ์ด์ฌํ๋ค
@ahmtcn123 ๊ทํ์ ์๊ฒฌ์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ด๋ป๊ฒ ๋์์ด ๋ฉ๋๊น?
essense์ ์ํด ์์ค ์ฝ๋๊ฐ ๊ณต๊ฐ๋์ด ์๋ ์น ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ฑ์ ๋น๋ํ๊ณ ์ถ์ผ๋ฏ๋ก ๊ทธ๋ฌํ ํ๋๋ฅผ ์ ์งํ์ง ๋ง์ญ์์ค.
๊ฑด๋ฐฐ!
_ํธ์ง: ๊ณ์ ๋ฐ๋ ํฌํํ์ธ์_ ๐ฟ
์ v8snapshot์ ์ง์ํ์ง ์์ต๋๊น?
๋๋ ์ฐ๋ฆฌ๊ฐ ์์ค ์ฝ๋๋ฅผ ์์ ํ ๋ณดํธํ ์ ์๋ค๋ ๊ฒ์ ์ดํดํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๋ ผ๋ฆฌ ์ฝ๋๋ฅผ ๋ณดํธํ๊ณ localhost๋ฅผ ํตํด ์ ์ UI์์ ํธ์ถํ๊ธฐ ์ํด ๊ธฐ๋ณธ ์ปดํ์ผ๋ ๊ธฐ์ (์: golang)์ ์ฌ์ฉํ์ฌ ์น ์๋น์ค๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
๋ง์ง๋ง ๋ง
๋ถ์
์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?
์์ค ์ฝ๋ ๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ ์ฝ๋๋ฅผ ๋ณดํธํ๋ ๋งค์ฐ ๋์ ๋ฐฉ๋ฒ์ธ
๋ณดํธ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ ์ค์ํ ์์ ์ ์ํํ๊ธฐ ์ํ ์ธ์ฆ, ์ํธํ ๋ฑ๊ณผ ๊ฐ์ ๋ณด๋ค ํ์ค์ ์ธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ญ์์ค.
์ง์ฌ์ผ๋ก, ๋น์ ์ ๋น์ ์ ์ฑ์ C๋ก ์์ฑํ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด์จ๋ ์ฐ๋ฆฌ๋ ๋น์ ์ ์์ค ์ฝ๋๋ฅผ ์ป์ ๊ฒ์ ๋๋ค.
PD: ๋น์ ์ ๋น ๋ณด์ด์ฆ(whatsapp web, slack, ํ, vscode)์ ์์ค ์ฝ๋์ ์ ๊ทผํ ์ ์๊ณ ๊ทธ๋ค ์ค ๋๊ตฌ๋ ๊ทธ๊ฒ์ ๋ํด ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ์๋ง๋ ๋น์ ์ด ๋ญ๊ฐ ์๋ชปํ๊ณ ์๋ ๊ฒ์ ๋๋ค.
"""PD: ๋น ๋ณด์ด์ฆ(whatsapp web, slack, ํ, vscode)์ ์์ค ์ฝ๋์ ์ก์ธ์คํ ์ ์์ผ๋ฉฐ ๊ทธ๋ค ์ค ๋๊ตฌ๋ ์ ๊ฒฝ ์ฐ์ง ์์ต๋๋ค. ์๋ง๋ ๋น์ ์ด ๋ญ๊ฐ ์๋ชปํ๊ณ ์๋ ๊ฒ ๊ฐ์ต๋๋ค."""
์ด๋ณด๋ค ๋ ๋ฉ์ฒญํ ์ฃผ์ฅ์ ๊ฑฐ์ ํ ์ ์์ต๋๋ค.
๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง๋๊ณ ๋น์ ์์ ์ด์ง ์์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒ์ ์ํ์ง ์๊ณ ์ํํธ์จ์ด๋ฅผ ํ๋งคํ๋ ๊ฒ์ ์ค์ ๋ก ์ฌ์ฉ์๊ฐ ๊ณ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ง์ง ์๋ ์ ํํ ์ด์ ๋ํ ๋ฒ๋ฅ ์ด ์์ต๋๋ค.
@kidandcat
์ง์ฌ์ผ๋ก, ๋น์ ์ ๋น์ ์ ์ฑ์ C๋ก ์์ฑํ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด์จ๋ ์ฐ๋ฆฌ๋ ๋น์ ์ ์์ค ์ฝ๋๋ฅผ ์ป์ ๊ฒ์ ๋๋ค.
๊ณ์ํด์ Microsoft Word, Photoshop ๋๋ ์ต๊ณ ํ๋งค ๊ฒ์๊ณผ ๊ฐ์ ๋ชจ๋ ์ต๊ณ ํ๋งค ์ฑ์ ์์ค๋ฅผ ์ป์ผ์ญ์์ค. ๋น์ ์ ์ต๋ง ์ฅ์์ด๊ณ ๋๋ ๊ทธ๊ฒ์ ๋ชจ๋ฅด๊ณ ์์ต๋๊น?
์๋์, ์ ๋ ์ต๋ง์ฅ์๊ฐ ์๋๋๋ค. ์๋ํ๋ฉด ๊ทธ ํ๋ก๊ทธ๋จ์ ์์ค ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ ์ธ๋ชจ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋น์ ์ ๊ทธ๊ฒ์ ๊ฐ์ง๊ณ ๋ฌด์์ ํ์๊ฒ ์ต๋๊น?
์ฌ๋ฌ๋ถ, ์ด ์ค๋ ๋์๋ ๊ฐ ๋๊ธ์ ๋ํด ์๋ฆผ์ ๋ฐ๋ ๋ง์ ์ฌ๋๋ค์ด ์์ต๋๋ค. ๊ฑด์ค์ ์ธ ์ํ๋ก ์ ์งํ์ธ์.
์ ์๊ฐ์๋ JavaScript์ ์์ค ์ฝ๋ ํน์ฑ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ง์ ๊ฒฝ์ฐ์ ๊ฑฐ๋ ์ฐจ๋จ๊ธฐ๊ฐ ์๋ ์ด์ ๋ฅผ ์์ฝํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
@JohnWeisz ๋ ์ ๋ง ํฉ๋ฆฌ์ ์ธ ๋ง์ ๋ง์ด ํ์ต๋๋ค. ๋ํ ์ถฉ๋ถํ์ง ์์ ๊ฒฝ์ฐ ์ค๋ WebAssembly๋ฅผ ์ฌ์ฉํ ์ ์๋ค๊ณ ๋ง๋ถ์ ๋๋ค. ์์ค ์ฝ๋๋ฅผ ๋ณดํธํ๋ ์ธก๋ฉด์์ ์ด๋ ์๋นํ ์ข์ ๊ฒ์ ๋๋ค.
@kidandcat ์ฌ์ค์ ๋๊น?"์ง์ฌ์ผ๋ก C๋ก ์ฑ์ ์์ฑํ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด์จ๋ ์์ค ์ฝ๋๋ฅผ ์ป์ ๊ฒ์ ๋๋ค."
Google์์ ๊ฒ์ํ๋๋ฐ C/C++์์ ์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ์์ ์์ค ์ฝ๋๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ธฐ๊ปํด์ผ ์ด์ ๋ธ๋ฆฌ ๋ฌธ์ ์ป์ ์ ์์ต๋๋ค.
์์ ์ฉ Windows ๋ฐ์คํฌํฑ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐ ์ค์ ๋๋ค. ์ฝ๋ ๋ก์ง์ ํต์ฌ ์ญ๋์ ๋๋ค. ์ด๋ฌํ ๋ ผ๋ฆฌ๋ ํด๋ผ์ด์ธํธ ์ธก์์ ์คํ๋์ด์ผ ํ์ง๋ง ๊ฒฝ์์ ์ฒด๊ฐ ์ด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฝ๋ ๋ณดํธ๋ ์ ๊ฒฝ์ฐ์๋ ๊ฑฐ๋ ์ฐจ๋จ๊ธฐ์ ๋๋ค.
@z1988hf
C/C++์์ ์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ์์ ์์ค ์ฝ๋๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ธฐ๊ปํด์ผ ์ด์ ๋ธ๋ฆฌ ๋ฌธ์ ์ป์ ์ ์์ต๋๋ค.
์ด๊ฒ์ด ์ค์ ๋ก ์๋ฏธํ๋ ๋ฐ๋ ์๋ณธ ์์ค ์ฝ๋ ๋๋ ์ด์ ๋๋ฑํ ๊ฒ์ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋งํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋๋ฌด ์ด๋ ต๊ณ ๋น์ฉ์ด ๋ง์ด ๋ญ๋๋ค. ๋๋ ํ๋ ์ฝ๋์ ๋ํด์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
@kidandcat ์ฌ์ค์ ๋๊น?"์ง์ฌ์ผ๋ก C๋ก ์ฑ์ ์์ฑํ๊ณ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด์จ๋ ์์ค ์ฝ๋๋ฅผ ์ป์ ๊ฒ์ ๋๋ค."
Google์์ ๊ฒ์ํ๋๋ฐ C/C++์์ ์ปดํ์ผ๋ ๋ฐ์ด๋๋ฆฌ์์ ์์ค ์ฝ๋๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ต๋๋ค. ๊ธฐ๊ปํด์ผ ์ด์ ๋ธ๋ฆฌ ๋ฌธ์ ์ป์ ์ ์์ต๋๋ค.
์์ ์ฉ Windows ๋ฐ์คํฌํฑ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐ ์ค์ ๋๋ค. ์ฝ๋ ๋ก์ง์ ํต์ฌ ์ญ๋์ ๋๋ค. ์ด๋ฌํ ๋ ผ๋ฆฌ๋ ํด๋ผ์ด์ธํธ ์ธก์์ ์คํ๋์ด์ผ ํ์ง๋ง ๊ฒฝ์์ ์ฒด๊ฐ ์ด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์ํ์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฝ๋ ๋ณดํธ๋ ์ ๊ฒฝ์ฐ์๋ ๊ฑฐ๋ ์ฐจ๋จ๊ธฐ์ ๋๋ค.
๋ํ ์ด์ ๋ธ๋ฆฌ๋ ์ฝ๋ ๋ฉ์ดํธ์ด๋ฉฐ ๋ ผ๋ฆฌ๊ฐ ์์ต๋๋ค. ์ฝ๋๋ฅผ ์ปดํ์ผํ๋ ๊ฒ๋ณด๋ค ์ฝ๋๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ๋ ๋ง์ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. (๊ทธ๋ฌ๋ @JohnWeisz๊ฐ ๋งํ๋ฏ์ด ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ์ํํธ์จ์ด๋ ๋งค์ฐ ๋น์ธ๋ฏ๋ก ๊ฒฝ์์๊ฐ ์๋ํ๊ธฐ ์ํด ์์ฒ ๋ฌ๋ฌ๋ฅผ ํฌ์ํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ค๋ฉด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค)
Slack๊ณผ ๊ฐ์ ์ฑ์ ์์ค ์ฝ๋ ๋ณดํธ์ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๊ณ ์ธ๊ธํ๋ ์ฌ๋๋ค์๊ฒ๋ ๋ชจ๋ ์ฑ์ ๋ํ ์ต์์ ๋น๊ต๊ฐ ์๋๋๋ค. Slack์ ์จ๋ผ์ธ์์ ์๋ํ๋ ์๋น์ค์ด๋ฉฐ ์ ์ ์ฑ์ ์น ์ฑ์ ํ์ํ๊ธฐ ์ํ ์ ธ์ผ ๋ฟ์ ๋๋ค. slack๊ณผ ๊ฐ์ ์ฑ์ ๋น๋ฐ ์์ค์ ๋๋ถ๋ถ์ ์น ์๋ฒ์ ์์ต๋๋ค.
Slack๊ณผ ๊ฐ์ ์ฑ์ ์์ค ์ฝ๋ ๋ณดํธ์ ์ ๊ฒฝ ์ฐ์ง ์๋๋ค๊ณ ์ธ๊ธํ๋ ์ฌ๋๋ค์๊ฒ๋ ๋ชจ๋ ์ฑ์ ๋ํ ์ต์์ ๋น๊ต๊ฐ ์๋๋๋ค. Slack์ ์จ๋ผ์ธ์์ ์๋ํ๋ ์๋น์ค์ด๋ฉฐ ์ ์ ์ฑ์ ์น ์ฑ์ ํ์ํ๊ธฐ ์ํ ์ ธ์ผ ๋ฟ์ ๋๋ค. slack๊ณผ ๊ฐ์ ์ฑ์ ๋น๋ฐ ์์ค์ ๋๋ถ๋ถ์ ์น ์๋ฒ์ ์์ต๋๋ค.
@๋น์ ์ด ์ข์ํ๋
Spotify๋ ์ด๋ป์ต๋๊น!!!,์ฐ๋ฆฌ๋ ๋น์ ์ด ๋ฌด์์ ์๋ฏธํ๋์ง ์์ง๋ง ์คํ๋ผ์ธ ์ฑ์ ์ด๋ป์ต๋๊น??
@annymosse Spotify์ ๋น๋ฐ ์์ค๋ ๊ทธ๋ค์ ์ฑ์ด ์๋๋๋ค. ๋๊ตฐ๊ฐ Spotify ์ฑ ์์ค๋ฅผ ํ์ณค๋ค๋ฉด ๋ณ๋ก ๋ฌธ์ ๊ฐ ๋์ง ์์ ๊ฒ์ ๋๋ค. ์ฑ์ ์ถฉ๋ถํ ์ข์ต๋๋ค. ์ฌ๋๋ค์ด Spotify๋ฅผ ์ฌ์ฉํ๊ณ ๋น์ฉ์ ์ง๋ถํ๋ ์ง์ง ์ด์ ๋ ์ ๊ณต๋๋ ์ฝํ ์ธ ์ ์์ ์คํธ๋ฆฌ๋ฐ์ ํธ๋ฆฌํจ ๋๋ฌธ์ ๋๋ค. ๋ง์ Spotify ๊ณ ๊ฐ์ด ๋์๋ณด๋ค ์ ํธํ๋ ์ผ๋ถ UX ์ธ๋ถ ์ ๋ณด๊ฐ ์์ง๋ง ๊ฒฝ์์ ์ฒด๋ ์ด๋ฅผ ๋ณต์ฌํ๊ธฐ ์ํด ์์ค ์ฝ๋๊ฐ ์ค์ ๋ก ํ์ํ์ง ์์ต๋๋ค. ๋ํ Spotify์ ์์ค ์ฝ๋๋ฅผ ๋ณด๋ ค๊ณ ์๋ํ์ง ์์์ง๋ง ์ด๋๊ฐ์ ์ฑ์ ์ผ์ข ์ ๋ณดํธ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์ดํฐ๋ธ C ์ ๋์จ๋ฟ๋ง ์๋๋ผ ์ผ๋ถ ๊ฒฌ๊ณ ํ ๋๋ ํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ์ด๊ฒ์ด DRM์ผ๋ก ์ธํด ๊ทธ๋ค์๊ฒ ํ์ํ ์๊ตฌ ์ฌํญ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@yourfavorite ์์ค๋ฅผ ์ดํด๋ณด์ธ์. ๋๋๋ก ์์ฉ ์ฑ์ ๋ํ ์์ค๋ฅผ asar files
๋ฐ package.json
๋ฐ *.js
๋ฅผ ์ ๋ฌํ๋ ์ต์ํ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ
์์ค ์ฝ๋ ๋ณดํธ์ ๋ฐ๋ํ๋ ๊ฒ์ด ์๋๋ผ Slack๊ณผ Spotify๊ฐ ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ ์๋ก ์ํํ๋ ์์ ์ ๋ํ ์ต์์ ๋น๊ต๊ฐ ์๋ ์ ์์ต๋๋ค. ๋ํ ์์ค ์ฝ๋ ๋ณดํธ๊ฐ ์ ํ์ ์ค์ํ ๊ฒฝ์ฐ ์ ์๊ฐ ํ์ฌ๋ก์๋ ๊ฐ์ฅ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ถ๋ช ํ ๋งํ์๋ฉด, ๋๋ ์ ์์ ์ค๋ ์ผ์ข ์ ์์ค ์ฝ๋ ๋ณดํธ์ ์ฐฌ์ฑํฉ๋๋ค.
์ฌ์ฉ์๊ฐ .srt/.ass ์๋ง ํ์ผ์ ์ํํธ์จ์ด๋ก ๋๋๊ทธํ๋ฉด ์ํํธ์จ์ด๊ฐ Google ๋ฒ์ญ API๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ๋ผ์ธ์ ๋ฒ์ญํฉ๋๋ค.
์ฌ์ฉ์๋ 1๊ฐ์ ๋น๋์ค์ 1๊ฐ์ ์์ด ์๋ง์ ๋ค์ด๋ก๋ํ์ต๋๋ค.
์ด์ ๊ทธ๋ค์ ์ด ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์์ด ์๋ง์ ๋ฒ์ญํ ์ ์์ต๋๋ค.
์ค๊ตญ์ด ๋๋ ๋ค๋ฅธ ์ธ์ด๋ก.
๊ทธ๋์ ๊ทธ๋ค์ ๋ด์ฉ์ ์ดํดํ ์ ์์ต๋๋ค.
์์ค ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ป์ ์ ์๋ ๊ฒฝ์ฐ.
๋ถ๋ช
ํ ๊ณต๊ฒฉ์๊ฐ ๋ด API ํค ๋ฐ ๋น๋ฐ์ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋จ์ฉํ์ญ์์ค.
Google์์ ์์ฒญ๋ ์ฒญ๊ตฌ์๋ฅผ ๋ฐ๊ฒ ๋ฉ๋๋ค($500? $1000? ๋?)
Vue.js + Webpack์ Electron.js์ ํจ๊ป ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
๋ชจ๋ ์ฝ๋๊ฐ ์ถ์๋๋ฏ๋ก ๋ ์ด์ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
@1c7
๊ธ์, ์๋ง๋ ์ด๊ฒ์ ๋ฌ์ฑํ๊ธฐ ์ํด ์ธ๋ถ ๋ณดํธ๋ฅผ ์ฌ์ฉํด์ผ ํ ๊ฒ์ ๋๋ค. C++ ์ํํธ์จ์ด์์๋ API ํค๋ฅผ ์ฝ๊ฒ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ๋ฌธ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ด๊ฒ์ ์ค์ ๋ก ์ ์ ๊ด๋ จ ๋ฌธ์ ๊ฐ ์๋๋๋ค.
@lvkins ์
ํ ๊ฐ์ฌํฉ๋๋ค!
๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง๋ ์ ์์ต๋๋ค. ํญ์ ํฐ ๊ฑฑ์ ๊ฑฐ๋ฆฌ์์ต๋๋ค. ๋ชจ๋ ๋ณดํธ๊ฐ ๋ณดํธ๊ฐ ์๋ ๊ฒ๋ณด๋ค ๋ซ๋ค๋ ๊ฒ์ ์ฌ์ค์ด์ง๋ง ์ฌ์ ํ ๊ทธ๋ ์ต๋๋ค. ์ด๋ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ๋ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ฌ์ผ ํฉ๋๋ค. ๊ทํ์ ๊ฒฝ์ฐ C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ด๋ํ์ฌ ์ถ๊ฐ ์๊ธ์ ๋ฃ๊ณ node.js์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ๋ฉ๋๋ค.
@lvkins ๋ต์ฅ
์ ์ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. ๋๋ ์ด๊ฒ์ ๋ํด ์กฐ์ฌํ ๊ฒ์ด๋ค.
์ด ๋ฒ์ญ ์ํํธ์จ์ด๋ฅผ Mac๊ณผ Windows์์ ๋ชจ๋ ์คํํ ์ ์๊ธฐ๋ฅผ ์ํ๊ธฐ ๋๋ฌธ์ Electron.js๋ฅผ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค.
Electron.js + ์ผ๋ถ C++๊ฐ ๋ด API ํค ๋ฐ ๋น๋ฐ์ ๋ณดํธํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@lvkins๋ ๊ฐ์ฌ
@1c7 ๊ณผ์ฐ ๐
์ฌ๊ธฐ์์ ์์ํ์ญ์์ค: https://nodejs.org/api/addons.html
์ ์์ ๋ณด์ ๋ถ์กฑ์ด ์ฐ๋ ค๋๋ค๋ฉด NW.js๋ฅผ ์ฌ์ฉํด ๋ณผ ์๋ ์์ต๋๋ค.
ํ์ด์ ๋น๋๋ค!
@1c7 ๊ณผ Linux๊ฐ ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น?! ๋๋ ๊ทธ๊ฒ์ด ๋ชจ๋ ํ๋ซํผ์ ๋์ผํ ์ฝ๋ ๊ธฐ๋ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค ??!
@annymosse ๋ฐฉ๊ธ Linux์ ๋ํด ์ธ๊ธํ๋ ๊ฒ์ ์์์ต๋๋ค. Linux์ ๋ํ ๊ฒ์ ์์ต๋๋ค.
์ฐธ๊ณ ๋ก:
https://github.com/1c7/Translate-Subtitle-File์ ๋๋ฆฌ๋ ๊ฒ์ ๋ํด ์๊ฐํ๊ณ ์์์ต๋๋ค.
์ด ํ๋ก์ ํธ๋ฅผ ์ง์งํ ํ๋ก์ ํธ๋ก ์ ํํฉ๋๋ค(๋์ ์ฒญ๊ตฌํ๊ณ ํ์ง์ ๋์ด์ญ์์ค(์๊ฐ์ ๋ ๋ง์ด ํฌ์)).
๊ทธ๋์ ๋๋ ์ง๊ธ ์ฐ๊ตฌ๋ฅผ ํ๊ณ ์๋ค
์ด ๋๊ตฌ๋ ํ์ฌ ์ฃผ๋ก ์ค๊ตญ ์์ฅ์ ๋์์ผ๋ก ํฉ๋๋ค. (๋ชจ๋ ๋ฒํผ๊ณผ ํ
์คํธ๋ ์ค๊ตญ์ด๋ก ๋์ด ์์ต๋๋ค)
i18n์ ์ง๋์ ์์ง๋ง ๊ณง ์์ ๊ฒ์
๋๋ค.
i18n ๋ฐ Yandex ๋ณํ๊ธฐ API๋ฅผ ๋ง๋ค ๊ณํ์ด ์์์ง๋ง ๋์ผํ ๋ฌธ์ ๋ก ์ธํด ํ๋ก์ ํธ๋ฅผ ์ทจ์ํ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Linux์์ ๋๋ถ๋ถ์ ์ ๊ท ์ฌ์ฉ์๋ Linux์ ์กด์ฌํ์ง ์๊ฑฐ๋ ๋์์ด ์๋ค๊ณ ์๊ฐํ๋ ํ๋ก๊ทธ๋จ์ ๋ํ ํ์ ์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ํด๋น ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ฌ์ฉ์ ๋์์ด ๋ฏธ๋์ด๋ง ๋ฒ์ญํ๋ ๊ฒฝ์ฐ ๋ชจ๋ Linux ๋ฐฐํฌํ์ด๋ ๋ด๊ฐ ์ ํธํ๋ ๋ฐฐํฌํ(์ค๊ตญ์ด Linux ๋ฐฐํฌํ)์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋น์ ๊ณผ ๋ชจ๋ Linux ์ฌ์ฉ์์๊ฒ ์ต์ ์ ๋คํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
API ํค ๋ฐ ๋น๋ฐ์ ๊ฒ์๋ ์ฑ์ ์์ผ๋ฉด ์ ๋ฉ๋๋ค. ๋์ ๊ฐ์ง๊ณ
๋น์ ์ API/๋ฐฑ์๋์์ ๊ทธ๊ฒ๋ค์, abd ์ด๋ค ์ ํ์ผ๋ก ๊ทธ๋ค์ ๋ณดํธํ์ญ์์ค.
์ธ์ฆ/์กฐ์ . ๊ทธ๋ฐ ๋ค์ ์ฑ์์ API๋ฅผ ์ฌ์ฉํ๋๋ก ํฉ๋๋ค.
Em dom, 2019๋
10์ 20์ผ 10:22, Cheng Zheng [email protected]
์์คํฌ๋ก:
@annymosse https://github.com/annymosse ๋ฐฉ๊ธ Linux์ ๋ํด ์ธ๊ธํ๋ ๊ฒ์ ์์์ต๋๋ค.
๋ฆฌ๋ ์ค์ ๋ํด ์๋ฌด๊ฒ๋โ
์ด ์ค๋ ๋์ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ์ด ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์์ต๋๋ค.
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ณ GitHub์์ ํ์ธํ์ธ์.
https://github.com/electron/electron/issues/2570?email_source=notifications&email_token=ADCOXMFCSHRX3PZTE7GHKDTQPRLQRA5CNFSM4BODX2F2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXH
๋๋ ๊ตฌ๋ ์ทจ์
https://github.com/notifications/unsubscribe-auth/ADCOXMCKPUOMQPM3JKZP5J3QPRLQRANCNFSM4BODX2FQ
.
์๋ฌด๋ ์ฝ์ ์ ์๋๋ก Javascript ํ์ผ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ก ๋ณํํ ์ ์๋ bytenode๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค.
๋จผ์ ์๋ฒ์ ํด๋์ bytenode๋ฅผ ์ค์นํ์ญ์์ค.
>npm i -g bytenode
>npm i bytenode
๋ค์ ์ฝ๋๊ฐ ํฌํจ๋ ์ผ๋ฐ nodeJS ํ์ผ์ ๋ง๋ญ๋๋ค. ๋ค์ ์ฝ๋์ ์ด๋ฆ์ ok.js๋ก ์ง์ ํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.
>console.log('bytenode works!);
๊ทธ๋ฐ ๋ค์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ปดํ์ผํฉ๋๋ค. ์ด ๋ช
๋ น์ ํ์ผ๊ณผ ์ด๋ฆ์ด ๊ฐ์ .JSC ํ์ผ์ ์์ฑํฉ๋๋ค.
user<strong i="15">@machine</strong>:~$ bytenode -c ok.js
๊ทธ๋ฐ ๋ค์ ๊ธฐ๋ณธ ์ ์ JS ํ์ผ์์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ํธ์ถํฉ๋๋ค. test.js๋ผ๊ณ ํฉ์๋ค.
const bytenode = require('bytenode');
const myFile=require('./ok.jsc');
myFile;
์ ์ฅํด.
๊ทธ๋ฐ ๋ค์ test.js: node test.js๋ฅผ ํธ์ถํ์ฌ ํ
์คํธํฉ๋๋ค. "cat ok.jsc"๋ฅผ ์คํํ์ฌ ๊ทธ๊ฒ์ด ์ค์ ๋ก ๋ฐ์ด๋๋ฆฌ์ด๊ณ ์๋ฌด๋ ๋น์ ์ ์ฝ๋๋ฅผ ๋ณผ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ์ญ์์ค. ์๋ณธ ์ผ๋ฐ ํ
์คํธ js ํ์ผ์ ๋ค๋ฅธ ์์น๋ก ์ด๋ํ ์ ์์ต๋๋ค.
๋๋ ์ ์์์ ๊ทธ๊ฒ์ ํ
์คํธํ์ง ์์์ง๋ง ๊ทธ๊ฒ์ด ์๋ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ ์ง ์์ต๋๊น?
@dotbloup
์๋ฌด๋ ์ฝ์ ์ ์๋๋ก Javascript ํ์ผ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ก ๋ณํํ ์ ์๋ bytenode๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ
์๋ฌด๋ ์๋ณธ ์์ค๋ฅผ ์ฝ์ ์ ์์ต๋๋ค. ์ฌ์ค์ ๋๋ค(๋๋ ํ ๋๋ ์ถ์์ ๋ง์ฐฌ๊ฐ์ง๋ก). ๊ทธ๋ฌ๋ ์ฌ์ ํ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง๋ ์ ์๊ณ /์๊ธฐ ๋๋ฌธ์ ์ฑ ๋น๋ฐ์ด๋ ๊ธฐํ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋์ ์ ์ฅํ ์ ์์ต๋๋ค. ๋๋ ๋๊ฐ์ด ์ถ์ถํ๋ ๊ฒ์ ์๊ฐ ๋ฌธ์ ์ผ ๋ฟ์ ๋๋ค.
์ฌ๋๋ค์ด ์์ค ์ฝ๋์ ์ผ๋ถ๋ฅผ ๊ฒ์ฌํ๊ฑฐ๋ "ํ์น๋" ๊ฒ์ ๋ง๊ณ ์ถ๋ค๋ฉด ์ด ๋๊ตฌ๋ ์์ค ์ฝ๋๋ฅผ _๋ ํ๋ค๊ณ _ ๋ง์ ๊ฒฝ์ฐ ์์ฒญ๋๊ฒ ์ด๋ ต๊ฒ ๋ง๋๋ ํ๋ฅญํ ๋๊ตฌ์ ๋๋ค. ๊ทธ๋ฌ๋ C++ ์ปดํ์ผ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํด๊ฒฐํ ์ ์์ผ๋ฏ๋ก ์ค์ ๋ณด์์๋ ์ฌ์ฉํ์ง ๋ง์ญ์์ค.
@JohnWeisz
๋๊ตฐ๊ฐ๊ฐ V8 ๋ฐ์ดํธ์ฝ๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์ฝ๋๋ฅผ ๊นจ๋จ๋ ธ๋ค๋ ์ฆ๊ฑฐ๋ฅผ ๋ณด๊ณ ์ถ์ต๋๋ค. nwjs๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ์ผ๋ฉฐ bytenode์ ์ ํํ ๋์ผํ nwjc๋ฅผ ์ฌ์ฉํ์ฌ bin ํ์ผ์ ์์ง์ ๋ณํํ์ต๋๋ค. ์ด ์์ฉ ํ๋ก๊ทธ๋จ์ Sitecozy ๋์ด์ง ๋งํฌ ๊ฒ์ฌ๊ธฐ์ด๋ฉฐ Microsoft Store์์ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋์ ์ ์ ์ํฉ๋๋ค.
๋๊ตฐ๊ฐ ๋ด ์ฑ์ bin ํ์ผ ์ฝ๋๋ฅผ ๊นจ๊ณ ๋ด bin ํ์ผ์ ๊ธฐ๋ฅ๊ณผ ๋ฉ์๋๋ฅผ ๋ณด๋ด๋ฉด 150์ ๋ก๋ฅผ ์ฃผ๊ฒ ์ต๋๋ค. ๋์ผํ ํจ๊ณผ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ ํ์๊ฐ ์์ต๋๋ค. ๋ด ๋ณ์๋ JSON ๋ฉ์์ง๋ฅผ ํ์ํ ํ์๊ฐ ์์ต๋๋ค. ์ ๋ ๋ฐ๋ณด๊ฐ ์๋๋๋ค.
๋น์ ์ hotmail DOT com์์ stepsa์ ๋์๊ฒ ํธ์ง๋ฅผ ์ธ ์ ์์ต๋๋ค
@dotbloup
๋ด ๋ง์ ์ฌ๋๋ค์ ๋ณดํต ๋ช ์ฃผ ๋ง์ C++์์ ์ปดํ์ผ๋ ๊ธฐ๊ณ์ด ์ฝ๋์ ๋ณต์ฌ ๋ฐฉ์ง ์์คํ ์ ๊นจ๊ณ ์์ญ ๋ ๋์ ํด์ ํ ๊ฒ์์ ์๊ฐํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์์ ์ ๊ธฐ๊ณ์ ๋ํ ์ ๋ณด๊ฐ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๊ฐ ์ด๋ฅผ ์ด ์๋ ์๋ค๋ ๊ฒ์ ๋๋ค.
์ฑ ๋น๋ฐ์ ์์ ํ๊ฒ ์ ์ฅํ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ๋ฐฑ์๋ ์๋น์ค์ ๊ฐ์ ๋ด์ธ๋ ์์คํ ์ ๋๋ค.
์ฌ๊ธฐ์ ์์ ์ ๊ท์คํ ์ ๋ณด๋ฅผ ์ถ์ถํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ธฐ๋ฅ ๋ฐ ๋ฐฉ๋ฒ์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ๊ธฐ์ ํฌํจ๋์ง ์์ต๋๋ค.
๋ฌธ์
์์ค ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ป์ ์ ์๋ ๊ฒฝ์ฐ. ๋ถ๋ช ํ ๊ณต๊ฒฉ์๊ฐ ๋ด API ํค ๋ฐ ๋น๋ฐ์ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋จ์ฉํ์ญ์์ค. Google์์ ์์ฒญ๋ ์ฒญ๊ตฌ์๋ฅผ ๋ฐ์ ๊ฒ์ ๋๋ค. ($500? $1000? $10000? ๋๊ฐ ์๋๊น?)
์ฑ์ ์๋ฒ์ ํ ์คํธ๋ฅผ ๋ณด๋ด์ผ ํ๋ฉฐ, ์๋ฒ๋ ์ด๋ฅผ Google์ ์ ๋ฌํ๊ณ ๋ฒ์ญ์ ์์ ํ์ฌ ๋ค์ ์ฑ์ผ๋ก ๋ณด๋ ๋๋ค.
๊ณ ๊ฐ๊ณผ Google ๋ฒ์ญ ์๋น์ค ์ฌ์ด์์ ์ค๊ฐ์ ์ญํ ์ ํ๋ ์์ฒด ์๋ฒ๊ฐ ์์ด์ผ ํ๋ฉฐ ์๋ฒ์๋ง API ํค๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ด์จ๋ API ํค๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ Google์ ์ฌ์ฉ ์ฝ๊ด์ ์๋ฐฐ๋ฉ๋๋ค.
๋ฌธ์
์์ค ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ป์ ์ ์๋ ๊ฒฝ์ฐ. ๋ถ๋ช ํ ๊ณต๊ฒฉ์๊ฐ ๋ด API ํค ๋ฐ ๋น๋ฐ์ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ๋จ์ฉํ์ญ์์ค. Google์์ ์์ฒญ๋ ์ฒญ๊ตฌ์๋ฅผ ๋ฐ์ ๊ฒ์ ๋๋ค. ($500? $1000? $10000? ๋๊ฐ ์๋๊น?)
์ฑ์ ์๋ฒ์ ํ ์คํธ๋ฅผ ๋ณด๋ด์ผ ํ๋ฉฐ, ์๋ฒ๋ ์ด๋ฅผ Google์ ์ ๋ฌํ๊ณ ๋ฒ์ญ์ ์์ ํ์ฌ ๋ค์ ์ฑ์ผ๋ก ๋ณด๋ ๋๋ค.
๊ณ ๊ฐ๊ณผ Google ๋ฒ์ญ ์๋น์ค ์ฌ์ด์์ ์ค๊ฐ์ ์ญํ ์ ํ๋ ์์ฒด ์๋ฒ๊ฐ ์์ด์ผ ํ๋ฉฐ ์๋ฒ์๋ง API ํค๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ด์จ๋ API ํค๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ Google์ ์ฌ์ฉ ์ฝ๊ด์ ์๋ฐฐ๋ฉ๋๋ค.
์๋น์ค ๋น์ฉ๊ณผ ํ ์ ์ง ๊ด๋ฆฌ๋ฅผ ์ํ ์์ ์๊ธ์ ์ ๊ณตํ๋ ์์ฉ ํ๋ก์ ํธ์๋ ๊ด์ฐฎ์ง๋ง, ์ต์ํ ๋๋ฒ๊ทธํ๊ณ ์ผ๋ถ ๋ธ๋ ํต์ ๋ง๋ค๊ธฐ ์ด๋ ต๊ฒ ์ ์งํ๋ ค๋ฉด ์ด๋ฌํ ๋๊ตฌ์ ๊ฐ์ ์คํ ์์ค ํ๋ก์ ํธ์ ๋ํ ์์ค ๋ณดํธ๊ฐ ํ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๊ฐ ๋ช ๋ ์ ์ ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด์ Electron์ ์ ์ ํฌ๊ธฐํ์ต๋๋ค. ์ฌ์ ํ ํด๊ฒฐ์ฑ ์ด ์์ต๋๊น? ๋งค์ฐ ์ค๋ง์ค๋ฌ์ด. ๋๋ ์ด๊ฒ์ ๋ํ ๋ด ์์ ์ ํด๊ฒฐ์ฑ ์ ์๊ฐํด ๋ผ ์ ์๋๋ก ํฌ์ํ ์๊ฐ์ ๊ฐ์ก์ผ๋ฉด ํฉ๋๋ค. ๐
์ด ๋ฌธ์ ๊ฐ ๋ช ๋ ์ ์ ํด๊ฒฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด์ Electron์ ์ ์ ํฌ๊ธฐํ์ต๋๋ค. ์ฌ์ ํ ํด๊ฒฐ์ฑ ์ด ์์ต๋๊น? ๋งค์ฐ ์ค๋ง์ค๋ฌ์ด. ๋๋ ์ด๊ฒ์ ๋ํ ๋ด ์์ ์ ํด๊ฒฐ์ฑ ์ ์๊ฐํด ๋ผ ์ ์๋๋ก ํฌ์ํ ์๊ฐ์ ๊ฐ์ก์ผ๋ฉด ํฉ๋๋ค. ๐
js ์ฝ๋๋ฅผ ์จ๊ธฐ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ชจ๋ ๊ธฐ๋ฅ์ ํ๋์ ํ์ผ๋ก ๋ถ๋ฆฌํ๊ณ ๋๋ ํํ๋๋ผ๋ ํ์ผ์ด ํด๋ผ์ด์ธํธ ์ปดํจํฐ์ ์๋ ํ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง๋ ์ ์์ต๋๋ค. ํ์ง๋ง ์๋ฒ๋ก ์ฑ์ ์ง์ํ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ์ ๋ง ๊ด์ฌ์ด ์์ด์ @craftpip ๊ธฐ์ฌ๋ ๋นจ๊ฐ์์ผ๋ก ํ์