Chromium ์—”์ง„ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์„ ์œ„ํ•œ ํ”Œ๋žซํผ์ธ Electron 12.0.0 ์ถœ์‹œ

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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€