Electron: ์ „์ž๊ฐ€ Chromium ์ž„๋ฒ ๋””๋“œ์™€ ๊ฐ™์€ ๋ฐ”์ดํŠธ ๋ฐฐ์—ด๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์Œ

์— ๋งŒ๋“  2016๋…„ 03์›” 20์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: electron/electron

์ด์ง„ ์‹œ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์ „์ž์—์„œ ๋‚ด ๊ฒŒ์ž„ ์—”์ง„ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํ˜„์žฌ Java ๋ฐ JMonkeyEngine 3๊ณผ ํ•จ๊ป˜ Chromium Embedded๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Chromium Embedded์˜ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋Š” JMonkeyEngine 3 ์ด๋ฏธ์ง€ ํ…์Šค์ฒ˜๋กœ ์ด๋™ํ•˜์—ฌ ํ™”๋ฉด์— ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด OpenCV๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ฑฐ๋‚˜ ํšŒ์ „ํ•˜๋Š” ํ๋ธŒ์— ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋งŽ์€ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Javascript์—์„œ Electron์„ ์ œ์–ดํ•˜๊ธฐ ์‰ฝ๊ณ  Electron๋„ ๋‚ด๋ถ€์—์„œ ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๋Š” ํ•ฉ๋ฆฌ์ ์ธ ํ”Œ๋žซํผ์ด๊ธฐ ๋•Œ๋ฌธ์— Electron์˜ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋กœ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๊นŒ? ํ•˜๊ธฐ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์–ด๋ ต์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์„ ๋‹ฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•˜๋‚˜ ์ด์ƒ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜ํ•œ ์ด ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— Atom.io๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋ˆ์„ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋น„์šฉ์„ ์ง€๋ถˆํ•  ์šฉ์˜๊ฐ€ ์žˆ์ง€๋งŒ ๊ธˆ์•ก์„ ์ œ๊ณตํ•˜๊ธฐ ์ „์— ๋Œ€๋žต ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•œ์ง€ ๋˜๋Š” ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋ˆ.

์ธ์šฉํ•˜๋‹ค
https://github.com/atom/electron/issues/228

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๋ชฉ์ ์œผ๋กœ webContents.beginFrameSubscription API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
http://electron.atom.io/docs/v0.37.2/api/web-contents/#webcontentsbeginframe๊ตฌ๋…์ฝœ๋ฐฑ

@brenca ๊ฐ€ ๊ธฐ์—ฌํ–ˆ์œผ๋ฉฐ

๋ชจ๋“  3 ๋Œ“๊ธ€

@PhilAndrew ์ €๋Š” ์ „์ž ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹ˆ๋ฉฐ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์™€ ๊ณต์‹์ ์œผ๋กœ ์ œํœดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹น์‹ ์ด ๋‚˜์—๊ฒŒ ์ง์ ‘ ์—ฐ๋ฝํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ๊ทธ ๋ฌธ์ œ์— ๊ด€์‹ฌ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด 2 ์„ผํŠธ๋ฅผ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค

์ด๊ฒƒ์€ ์•„๋งˆ๋„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ™•์‹คํ•œ ํ˜„์ƒ๊ธˆ์œผ๋กœ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํฐ ๋ฌธ์ œ๋Š” Electron ์•ฑ์ด ๊ตฌ์กฐํ™”/์ž…๋ ฅ๋˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ, ์ด๊ฒƒ์ด JS์˜ ํ•ต์‹ฌ ์ง„์ž…์ ์ž…๋‹ˆ๋‹ค.
Electron์€ ์ˆœ์ˆ˜ํ•œ ์›น ๋ Œ๋”๋Ÿฌ๋ผ๊ธฐ๋ณด๋‹ค๋Š” ๋ชจ๋“  ๋ฐ์Šคํฌํƒ‘ API๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” "์‰˜"์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.
๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ๋ชจ๋“œ/ํŒจ๋Ÿฌ๋‹ค์ž„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ์ ์„ ์œ„ํ•ด ๋” ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Coherent GT ๋ฐ Coherent UI ์ฐธ์กฐ - ๋‘˜ ๋‹ค ์ƒ์—…์šฉ์ด๋ฉฐ ์ €๋„ ๊ทธ๋“ค๊ณผ ์ง์ ‘์ ์ธ ๊ด€๋ จ์ด ์—†์ง€๋งŒ ์„ฑ๋Šฅ์ด ๋งค์šฐ ์šฐ์ˆ˜ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋‹จ์ ์€ ๋น„ํ˜ธํ™˜์„ฑ/WebKit์— ๋Œ€ํ•œ API ๋ถ€์กฑ, Electron๊ณผ ๊ฐ™์€ Node.js ํ†ตํ•ฉ ๋ถ€์กฑ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋“ค์€ _๊ฒŒ์ž„์šฉ์œผ๋กœ, ํŠนํžˆ ์„ฑ๋Šฅ์„ ์—ผ๋‘์— ๋‘๊ณ  ํŠน๋ณ„ํžˆ ํ…์Šค์ฒ˜๋กœ ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•ด ์ œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ชฉ์ ์œผ๋กœ webContents.beginFrameSubscription API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
http://electron.atom.io/docs/v0.37.2/api/web-contents/#webcontentsbeginframe๊ตฌ๋…์ฝœ๋ฐฑ

@brenca ๊ฐ€ ๊ธฐ์—ฌํ–ˆ์œผ๋ฉฐ

์˜ˆ, ๋งค์šฐ ์œ ์‚ฌํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์œ„ํ•ด ์ด๊ฒƒ์„ ๊ธฐ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. 3D ํ…์Šค์ฒ˜์— ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์€ ์•ž์œผ๋กœ ๋” ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ›จ์”ฌ ๋” ๋งŽ์€ ์ž‘์—…์ด ํ•„์š”ํ•˜๋ฉฐ ํ˜„์žฌ๋กœ์„œ๋Š” ๊ฝค ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. :)

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰