Chromium, V12.0.0 ๋ฐ Node.js ๊ตฌ์ฑ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ค ํ๋ซํผ ์ฌ์ฉ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ์๊ธ์์กฑ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ Electron 8 ํ๋ซํผ์ ์ถ์๊ฐ ์ค๋น๋์์ต๋๋ค. ๋ฒ์ ๋ฒํธ๊ฐ ํฌ๊ฒ ๋ณ๊ฒฝ๋ ๊ฒ์ Chromium 89 ์ฝ๋๋ฒ ์ด์ค, Node.js 14.16 ํ๋ซํผ ๋ฐ V8 8.9 JavaScript ์์ง ์ ๋ฐ์ดํธ๋ก ์ธํ ๊ฒ์ ๋๋ค.
์ ๋ฆด๋ฆฌ์ค์์:
- Node.js 14 ํ๋ซํผ์ ์๋ก์ด LTS ๋ถ๊ธฐ๋ก์ ์ ํ์ด ์ํ๋์์ต๋๋ค(์ด์ ์๋ 12.x ๋ถ๊ธฐ๊ฐ ์ฌ์ฉ๋์์ต๋๋ค).
- ๊ธฐ๋ณธ ํ๋ก์ธ์ค์์ ๊ฐ๋ณ WebContents ์ธ์คํด์ค์์ ์คํ๋๋ RenderFrames์ ๋ํ ์ ๋ณด์ ์ก์ธ์คํ๊ธฐ ์ํ ์๋ก์ด webFrameMain API๋ฅผ ์ถ๊ฐํ์ต๋๋ค. webFrameMain API๋ webFrame API์ ๋์ผํ์ง๋ง ๊ธฐ๋ณธ ํ๋ก์ธ์ค ๋ด์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- BrowserWindow API์๋ BrowserWindow.isTabletMode() ๋ฐ win.setTopBrowserView() ๋ฉ์๋๋ ๋ฌผ๋ก webPreferences.preferredSizeMode ๋งค๊ฐ๋ณ์์ system-context-menu, ํฌ๊ธฐ ์กฐ์ (Windows/macOS) ๋ฐ ์ด๋(Windows) ์ด๋ฒคํธ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก contextIsolation ๋ฐ worldSafeExecuteJavaScript ์ค์ ์ด ํ์ฑํ๋์ด JavaScript ์คํ ์ ์ถ๊ฐ ๊ฒฉ๋ฆฌ ๋ฐ ๋ณดํธ ๋ฉ์ปค๋์ฆ์ ํ์ฑํํฉ๋๋ค.
- ๊ธฐ๋ณธ์ ์ผ๋ก crashReporter.start({์์ถ }) ์ค์ ์ด ํ์ฑํ๋์ด ์์ต๋๋ค. ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ crashReporter API๋ฅผ ์ญ์ ํ์ต๋๋ค.
- contextBridge์ ๋ ธ์ถInMainWorld ๋ฉ์๋๋ฅผ ํตํด ๋น๊ฐ์ฒด API์ ์ก์ธ์คํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- chrome.management API์ ๊ฐ๋ณ ์์๊ฐ ์ ๋์จ ๊ฐ๋ฐ API์ ์ถ๊ฐ๋์์ต๋๋ค.
- ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ "remote" ๋ชจ๋์ด "@electron/remote"๋ก ๋์ฒด๋์์ต๋๋ค.
Electron์ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๊ทธ๋ํฝ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ผ๋ฉฐ ๊ทธ ๋ ผ๋ฆฌ๋ JavaScript, HTML ๋ฐ CSS๋ก ์ ์๋๊ณ ๊ธฐ๋ฅ์ ์ถ๊ฐ ์์คํ ์ ํตํด ํ์ฅ๋ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ ๊ธฐ๋ณธ ๋ํ ์์ ์์ฑ, ์ ํ๋ฆฌ์ผ์ด์ ํตํฉ, ์ํฉ์ ๋ง๋ ๋ฉ๋ด ์์ฑ, ์๋ฆผ ์์คํ ํตํฉ, ์ฐฝ ์กฐ์, Chromium ํ์ ์์คํ ๊ณผ ์ํธ ์์ฉ์ ์ํ ํ์ฅ API๋ ๋ฌผ๋ก Node.js ๋ชจ๋์ ์ก์ธ์คํ ์ ์์ต๋๋ค.
์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฌ๋ฆฌ Electron ๊ธฐ๋ฐ ํ๋ก๊ทธ๋จ์ ๋ธ๋ผ์ฐ์ ์ ์ฐ๊ฒฐ๋์ง ์์ ์์ฒด ํฌํจ ์คํ ํ์ผ๋ก ์ ๊ณต๋ฉ๋๋ค. ๋์์ ๊ฐ๋ฐ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ํ๋ซํผ์ผ๋ก ํฌํ ํ๋ ๊ฒ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค. Electron์ Chromium์ด ์ง์ํ๋ ๋ชจ๋ ์์คํ ์ฉ์ผ๋ก ๋น๋ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Electron์ ์ ๋ฐ์ดํธ ์๋ ์ ๋ฌ ๋ฐ ์ค์น๋ฅผ ์ํ ๋๊ตฌ๋ ์ ๊ณตํฉ๋๋ค(์ ๋ฐ์ดํธ๋ ๋ณ๋์ ์๋ฒ์์ ๋๋ GitHub์์ ์ง์ ์ ๋ฌํ ์ ์์).
Electron ํ๋ซํผ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ํ๋ก๊ทธ๋จ์๋ Atom ํธ์ง๊ธฐ, Nylas ๋ฐ Mailspring ์ด๋ฉ์ผ ํด๋ผ์ด์ธํธ, Git ์์
์ ์ํ GitKraken ํดํท, WordPress ๋ฐ์คํฌํ ๋ธ๋ก๊น
์์คํ
, WebTorrent ๋ฐ์คํฌํ BitTorrent ํด๋ผ์ด์ธํธ๋ ๋ฌผ๋ก Skype, Signal, Slack, Basecamp์ ๊ฐ์ ์๋น์ค๋ฅผ ์ํ ๊ณต์ ํด๋ผ์ด์ธํธ๊ฐ ํฌํจ๋ฉ๋๋ค. , Twitch, Ghost, Wire, Wrike, Visual Studio Code ๋ฐ Discord๊ฐ ์์ต๋๋ค. ์ ์ฒด์ ์ผ๋ก Electron ํ๋ก๊ทธ๋จ ์นดํ๋ก๊ทธ์๋ 1016๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์ด ํฌํจ๋์ด ์์ต๋๋ค. ์๋ก์ด ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ๋จ์ํํ๊ธฐ ์ํด ๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฝ๋ ์์ ๋ฅผ ํฌํจํ์ฌ ํ์ค ๋ฐ๋ชจ ์ ํ๋ฆฌ์ผ์ด์
์ธํธ๊ฐ ์ค๋น๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru