10 years of Electron ๐
electron/electron
์ ์ฅ์์ ์ฒซ ์ปค๋ฐ์ด ์ด๋ฃจ์ด์ง ๋ ์ 2013๋
3์ 13์ผ์ด์๋ค1.
10๋ ์ด ์ง๋๊ณ , 1192๋ช ์ ๊ธฐ์ฌ์๊ฐ 27,147๊ฐ์ ์ปค๋ฐ์ ์ถ๊ฐํ ํ, Electron์ ํ์ฌ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ํ๋ ์์ํฌ ์ค ํ๋๊ฐ ๋์๋ค. ์ด๋ฒ ๋ง์ผ์คํค์ ์ง๊ธ๊น์ง์ ์ฌ์ ์ ๋์๋ณด๊ณ , ๊ทธ๋์ ๋ฐฐ์ด ๊ฒ์ ๊ณต์ ํ๋ฉฐ ์ถํํ ์ ์๋ ์๋ฒฝํ ๊ธฐํ๋ค.
ํ๋ก์ ํธ์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ฌ ๊ธฐ์ฌํ ๋ชจ๋ ์ฌ๋๋ค์ด ์์๋ค๋ฉด ์ค๋์ Electron์ ์กด์ฌํ ์ ์์๋ค. ์์ค ์ฝ๋ ์ปค๋ฐ์ด ํญ์ ๊ฐ์ฅ ๋์ ๋๋ ๊ธฐ์ฌ์ด์ง๋ง, ๋ฒ๊ทธ๋ฅผ ๋ณด๊ณ ํ๊ณ , ์ฌ์ฉ์ ๋ชจ๋์ ์ ์ง๋ณด์ํ๋ฉฐ, ๋ฌธ์์ ๋ฒ์ญ์ ์ ๊ณตํ๊ณ , ์จ๋ผ์ธ ๊ณต๊ฐ์์ Electron ์ปค๋ฎค๋ํฐ์ ์ฐธ์ฌํ ์ฌ๋๋ค์ ๋ ธ๋ ฅ๋ ์ธ์ ํด์ผ ํ๋ค. ๋ชจ๋ ๊ธฐ์ฌ๋ ์ ์ง๋ณด์์๋ก์ ์ฐ๋ฆฌ์๊ฒ ๊ท์คํ๋ค.
์ด ๊ธ์ ๊ณ์ํ๊ธฐ ์ ์: ๊ฐ์ฌํฉ๋๋ค. โค๏ธ
์ฐ๋ฆฌ๊ฐ ์ฌ๊ธฐ๊น์ง ์จ ์ฌ์ โ
Atom Shell์ GitHub์ Atom ์๋ํฐ๋ฅผ ์ํ ํต์ฌ ๊ธฐ์ ๋ก ๊ฐ๋ฐ๋์๋ค. 2014๋ 4์ ๊ณต๊ฐ ๋ฒ ํ๋ก ์ถ์๋ Atom ์๋ํฐ๋ ๋น์ ์น ๊ธฐ๋ฐ ๋ฐ์คํฌํฑ ํ๋ ์์ํฌ(node-webkit๊ณผ Chromium Embedded Framework)์ ๋์์ผ๋ก ์ฒ์๋ถํฐ ์๋กญ๊ฒ ๊ตฌ์ถ๋์๋ค. Atom Shell์ ์ฃผ์ ํน์ง์ Node.js์ Chromium์ ๋ด์ฅํด ์น ๊ธฐ์ ์ ์ํ ๊ฐ๋ ฅํ ๋ฐ์คํฌํฑ ๋ฐํ์์ ์ ๊ณตํ๋ ๊ฒ์ด์๋ค.
์ถ์ ํ 1๋ ๋ ์ฑ ๋์ง ์์ Atom Shell์ ๊ธฐ๋ฅ๊ณผ ์ธ๊ธฐ ๋ฉด์์ ๊ธ๊ฒฉํ ์ฑ์ฅ์ ์ด๋ฃจ์๋ค. ๋๊ธฐ์ , ์คํํธ์ , ๊ฐ์ธ ๊ฐ๋ฐ์๋ค์ด ๋ชจ๋ ์ด ํ๋ซํผ์ ์ฌ์ฉํด ์ฑ์ ๊ฐ๋ฐํ๊ธฐ ์์ํ๊ณ , Slack, GitKraken, WebTorrent ๋ฑ์ด ์ด๊ธฐ ์ฌ์ฉ์๋ก ํฌํจ๋์๋ค. ์ด ํ๋ก์ ํธ๋ Electron์ด๋ผ๋ ์ด๋ฆ์ผ๋ก ์ฌํ์ํ๋ค.
๊ทธ ์ดํ๋ก Electron์ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๋ฉฐ ๋ฉ์ถ์ง ์์๋ค. npmtrends.com์ ๋ฐ์ดํฐ๋ฅผ ํตํด ์๊ฐ์ ๋ฐ๋ฅธ ์ฃผ๊ฐ ๋ค์ด๋ก๋ ์๋ฅผ ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค:
Electron v1์ 2016๋ ์ ์ถ์๋์์ผ๋ฉฐ, API ์์ ์ฑ ๊ฐํ์ ๋ ๋์ ๋ฌธ์ ๋ฐ ๋๊ตฌ ์ ๊ณต์ ์ฝ์ํ๋ค. Electron v2๋ 2018๋ ์ ์ถ์๋๋ฉฐ ์๋งจํฑ ๋ฒ์ ๋์ ๋์ ํด ๊ฐ๋ฐ์๋ค์ด ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ ๋ ์ฝ๊ฒ ์ถ์ ํ ์ ์๊ฒ ํ๋ค.
Electron v6๋ถํฐ๋ Chromium์ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ์ ๋ง์ถฐ 12์ฃผ ๋จ์์ ์ ๊ธฐ์ ์ธ ๋ฉ์ด์ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ก ์ ํํ๋ค. ์ด ๊ฒฐ์ ์ ํ๋ก์ ํธ์ ์ฌ๊ณ ๋ฐฉ์ ๋ณํ๋ฅผ ์๋ฏธํ์ผ๋ฉฐ, "์ต์ Chromium ๋ฒ์ ์ ์ง"๋ฅผ ์ ํ ์ฌํญ์์ ์ฐ์ ์์๋ก ๋์ด์ฌ๋ ธ๋ค. ์ด๋ฅผ ํตํด ์ ๊ทธ๋ ์ด๋ ๊ฐ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ค์ด๊ณ , Electron์ ์ต์ ์ํ๋ก ์ ์งํ๋ฉฐ ๋ณด์์ ๊ฐํํ๋ ๊ฒ์ด ๋ ์ฌ์์ก๋ค.
๊ทธ ์ดํ๋ก Electron์ ์ ์ ๋น๋ ๊ธฐ๊ณ์ฒ๋ผ ์๋ํ๋ฉฐ, Chromium ์์ ๋ฒ์ ์ด ์ถ์๋๋ ๋ ๋ง๋ค ์๋ก์ด Electron ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํ๋ค. 2021๋ Chromium์ด ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ 4์ฃผ๋ก ๋จ์ถํ์ ๋, Electron๋ ์ด๊นจ๋ฅผ ์ผ์ฑํ๋ฉฐ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ 8์ฃผ๋ก ์กฐ์ ํ ์ ์์๋ค.
ํ์ฌ Electron v23(๊ทธ ์ด์)๊น์ง ์ถ์๋์์ผ๋ฉฐ, ์ฌ์ ํ ํฌ๋ก์ค ํ๋ซํผ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ต๊ณ ์ ๋ฐํ์์ ๋ง๋ค๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์๋ค. ์ต๊ทผ ๋ช ๋ ๊ฐ JavaScript ๊ฐ๋ฐ์ ๋๊ตฌ๊ฐ ๊ธ๊ฒฉํ ์ฆ๊ฐํ์์๋ ๋ถ๊ตฌํ๊ณ , Electron์ ๋ฐ์คํฌํฑ ์ฑ ํ๋ ์์ํฌ ๋ถ์ผ์์ ์์ ์ ์ด๊ณ ๊ฒ์ฆ๋ ๊ฐ์๋ก ์๋ฆฌ ์ก์๋ค. ์ด์ Electron ์ฑ์ ์ด๋์๋ ์ฐพ์๋ณผ ์ ์๋ค: Visual Studio Code๋ก ํ๋ก๊ทธ๋๋ฐํ๊ณ , Figma๋ก ๋์์ธํ๊ณ , Slack์ผ๋ก ์ํตํ๊ณ , Notion์ผ๋ก ๋ฉ๋ชจ๋ฅผ ์์ฑํ๋ ๋ฑ ๋ค์ํ ์ฉ๋๋ก ํ์ฉ๋๋ค. ์ด ์ฑ๊ณผ๋ฅผ ์ด๋ฃจ๊ธฐ ์ํด ๋ ธ๋ ฅํ ๋ชจ๋ ์ด๋ค์๊ฒ ๊น์ ๊ฐ์ฌ๋ฅผ ํํ๋ค.
์ฌ์ ์์ ๋ฐฐ์ด ๊ฒ๋คโ
10๋ ์ด๋ผ๋ ์๊ฐ ๋์ ์ฐ๋ฆฌ๋ ๊ธธ๊ณ ๋ ๋ณต์กํ ์ฌ์ ์ ๊ฑธ์ด์๋ค. ์ด ๊ณผ์ ์์ ๋๊ท๋ชจ ์คํ์์ค ํ๋ก์ ํธ๋ฅผ ์ง์ ๊ฐ๋ฅํ๊ฒ ์ด์ํ๋ ๋ฐ ๋์์ด ๋ ๋ช ๊ฐ์ง ํต์ฌ ์์๋ฅผ ์ ๋ฆฌํด๋ณธ๋ค.
๊ฑฐ๋ฒ๋์ค ๋ชจ๋ธ๋ก ํ์ฅ๋ ๋ถ์ฐ ์์ฌ๊ฒฐ์ ๊ด๋ฆฌโ
Electron์ด ์ฒ์์ผ๋ก ์ธ๊ธฐ๋ฅผ ๋๊ธฐ ์์ํ์ ๋, ์ฐ๋ฆฌ๊ฐ ๊ทน๋ณตํด์ผ ํ๋ ๊ณผ์ ์ค ํ๋๋ ํ๋ก์ ํธ์ ์ฅ๊ธฐ์ ์ธ ๋ฐฉํฅ์ฑ์ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ์ง์๋ค. ์ฌ๋ฌ ํ์ฌ์ ๊ตญ๊ฐ, ์๊ฐ๋์ ๊ฑธ์ณ ๋ถ์ฐ๋ ์์ญ ๋ช ์ ์์ง๋์ด๋ก ๊ตฌ์ฑ๋ ํ์ ์ด๋ป๊ฒ ํจ์จ์ ์ผ๋ก ์ด์ํ ์ ์์๊น?
์ด๊ธฐ์๋ Electron์ ๋ฉ์ธํ ์ด๋ ๊ทธ๋ฃน์ด ๋น๊ณต์์ ์ธ ํ์ ๋ฐฉ์์ ์ฌ์ฉํ๋ค. ์ด ๋ฐฉ์์ ์์ ๊ท๋ชจ์ ํ๋ก์ ํธ์์๋ ๋น ๋ฅด๊ณ ๊ฐ๋ณ๊ฒ ๋์ํ์ง๋ง, ๋ ๋์ ํ์ ์ผ๋ก ํ์ฅํ๊ธฐ์๋ ํ๊ณ๊ฐ ์์๋ค. 2019๋ , ์ฐ๋ฆฌ๋ ๊ณต์์ ์ธ ์ฑ ์ ์์ญ์ ๊ฐ์ง ๋ค์ํ ์์ ๊ทธ๋ฃน(Working Group, WG)์ผ๋ก ๊ตฌ์ฑ๋ ๊ฑฐ๋ฒ๋์ค ๋ชจ๋ธ๋ก ์ ํํ๋ค. ์ด ๋ชจ๋ธ์ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ํ๋ก์ ํธ ์์ ๊ถ์ ์ผ๋ถ๋ฅผ ํน์ ๋ฉ์ธํ ์ด๋์๊ฒ ํ ๋นํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ค. ํ์ฌ ๊ฐ ์์ ๊ทธ๋ฃน์ ์ฑ ์์ ๋ค์๊ณผ ๊ฐ๋ค:
- Electron ๋ฆด๋ฆฌ์ฆ ๊ด๋ฆฌ (Releases WG)
- Chromium๊ณผ Node.js ์ ๊ทธ๋ ์ด๋ (Upgrades WG)
- ๊ณต๊ฐ API ์ค๊ณ ๊ฐ๋ (API WG)
- Electron ๋ณด์ ์ ์ง (Security WG)
- ์น์ฌ์ดํธ, ๋ฌธ์, ๋๊ตฌ ๊ด๋ฆฌ (Ecosystem WG)
- ์ปค๋ฎค๋ํฐ ๋ฐ ๊ธฐ์ ์ธ๋ถ ์ฐ๊ณ (Outreach WG)
- ์ปค๋ฎค๋ํฐ ๊ท์ (Community & Safety WG)
- ๋น๋ ์ธํ๋ผ, ๋ฉ์ธํ ์ด๋ ๋๊ตฌ, ํด๋ผ์ฐ๋ ์๋น์ค ์ ์ง (Infrastructure WG)
์ฐ๋ฆฌ๊ฐ ๊ฑฐ๋ฒ๋์ค ๋ชจ๋ธ๋ก ์ ํํ ์๊ธฐ์ ๊ฑฐ์ ๋์์, Electron์ ์์ ๊ถ๋ GitHub์์ OpenJS Foundation์ผ๋ก ์ด์ ํ๋ค. ์๋์ ์ฝ์ด ํ์ ์ฌ์ ํ Microsoft์์ ๊ทผ๋ฌดํ๊ณ ์์ง๋ง, ์ด์ ๋ Electron ๊ฑฐ๋ฒ๋์ค๋ฅผ ๊ตฌ์ฑํ๋ ๋ ํฐ ํ๋ ฅ์ ๊ทธ๋ฃน์ ์ผ๋ถ์ผ ๋ฟ์ด๋ค.2
์ด ๋ชจ๋ธ์ด ์๋ฒฝํ์ง๋ ์์ง๋ง, ์ ์ธ๊ณ์ ์ธ ํฌ๋ฐ๋ฏน๊ณผ ์ง์์ ์ธ ๊ฑฐ์๊ฒฝ์ ์ ์ด๋ ค์ ์์์๋ ์ฐ๋ฆฌ์๊ฒ ์ ๋ง์์๋ค. ์์ผ๋ก ์ฐ๋ฆฌ๋ Electron์ ๋ ๋ฒ์งธ 10๋ ์ ์ด๋์ด๊ฐ ์ ์๋๋ก ๊ฑฐ๋ฒ๋์ค ํ์ฅ์ ๊ฐ์ ํ ๊ณํ์ด๋ค.
๋ ์์ธํ ๋ด์ฉ์ ์๊ณ ์ถ๋ค๋ฉด electron/governance ์ ์ฅ์๋ฅผ ํ์ธํด ๋ณด์!
์ปค๋ฎค๋ํฐโ
์คํ์์ค์ ์ปค๋ฎค๋ํฐ ๋ถ๋ถ์ ์ฝ์ง ์๋ค. ํนํ ์์๋ฆฌ์น ํ์ด '์ปค๋ฎค๋ํฐ ๋งค๋์ '๋ผ๋ ์ด๋ฆ์ ํธ๋ ์น์ฝํธ๋ฅผ ์ ์ ์์์ ์์ง๋์ด๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ ๋๋ ๋์ฑ ๊ทธ๋ ๋ค. ํ์ง๋ง ๋๊ท๋ชจ ์คํ์์ค ํ๋ก์ ํธ๋ก์ ์ฐ๋ฆฌ๋ ๋ง์ ์ฌ์ฉ์๋ฅผ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ, ์ด๋ค์ ์๋์ง๋ฅผ ํ์ฉํด Electron์ ์ํ ์ฌ์ฉ์ ์ค์ฌ์ ์ํ๊ณ๋ฅผ ๊ตฌ์ถํ๋ ๊ฒ์ ํ๋ก์ ํธ์ ๊ฑด๊ฐ์ ์ ์งํ๋ ๋ฐ ์ค์ํ ๋ถ๋ถ์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ ์ปค๋ฎค๋ํฐ ์กด์ฌ๊ฐ์ ๊ฐํํ๊ธฐ ์ํด ์ด๋ค ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๊ณ ์์๊น?
๊ฐ์ ์ปค๋ฎค๋ํฐ ๊ตฌ์ถโ
- 2020๋ ์ ์ฐ๋ฆฌ๋ ์ปค๋ฎค๋ํฐ ๋์ค์ฝ๋ ์๋ฒ๋ฅผ ์ถ์ํ๋ค. ์ด์ ์๋ Atom ํฌ๋ผ์ ํ ์น์ ์ ์ฌ์ฉํ์ง๋ง, ๋ ๋น๊ณต์์ ์ธ ๋ฉ์์ง ํ๋ซํผ์ ํตํด ๊ด๋ฆฌ์์ Electron ๊ฐ๋ฐ์ ๊ฐ์ ํ ๋ก ๊ณต๊ฐ์ ๋ง๋ จํ๊ณ ์ผ๋ฐ์ ์ธ ๋๋ฒ๊น ๋์์ ์ ๊ณตํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
- 2021๋ ์๋ @BlackHole1์ ๋์์ผ๋ก Electron China ์ฌ์ฉ์ ๊ทธ๋ฃน์ ์ค๋ฆฝํ๋ค. ์ด ๊ทธ๋ฃน์ ์ค๊ตญ์ ๊ธ์ฑ์ฅํ๋ ๊ธฐ์ ํ๊ฒฝ์์ Electron ์ฌ์ฉ์ ์ฆ๊ฐ์ ์ค์ํ ์ญํ ์ ํ๋ค. ์ค๊ตญ ์ฌ์ฉ์๋ค์ด ์์ด๋์ด๋ฅผ ๊ณต์ ํ๊ณ ์์ด ๊ณต๊ฐ ์ธ์์ Electron์ ๋ํด ๋ ผ์ํ ์ ์๋ ๊ณต๊ฐ์ ์ ๊ณตํ๋ค. ๋ํ cnpm์ด ์ค๊ตญ npm ๋ฏธ๋ฌ์์ Electron์ ๋์ดํ๋ฆฌ ๋ฆด๋ฆฌ์ค๋ฅผ ์ง์ํ ๋ ธ๋ ฅ์ ๊ฐ์ฌ๋๋ฆฐ๋ค.
์ฃผ๋ชฉ๋ฐ๋ ์คํ์์ค ํ๋ก๊ทธ๋จ์ ์ฐธ์ฌํ๊ธฐโ
-
์ฐ๋ฆฌ๋ 2019๋ ๋ถํฐ ๋งค๋ Hacktoberfest๋ฅผ ๊ธฐ๋ ํด ์๋ค. Hacktoberfest๋ DigitalOcean์ด ์ฃผ๊ดํ๋ ์คํ์์ค ์ฐ๋ก ํ์ฌ๋ก, ๋งค๋ ์์ญ ๋ช ์ ์ด์ ์ ์ธ ๊ธฐ์ฌ์๋ค์ด ์คํ์์ค ์ํํธ์จ์ด์ ์์ ์ ํ์ ์ ๋จ๊ธฐ๊ธฐ ์ํด ์ฐธ์ฌํ๋ค.
-
2020๋ ์๋ Google Season of Docs์ ์ฒซ ๋ฒ์งธ ๋ฒ์ ์ ์ฐธ์ฌํ์ผ๋ฉฐ, @bandantonio์ ํจ๊ป Electron์ ์ ๊ท ์ฌ์ฉ์ ํํ ๋ฆฌ์ผ ํ๋ฆ์ ๊ฐ์ ํ๋ ์์ ์ ์งํํ๋ค.
-
2022๋ ์๋ ์ฒ์์ผ๋ก Google Summer of Code ํ์์ ๋ฉํ ๋งํ๋ค. @aryanshridhar๋ Electron Fiddle์ ํต์ฌ ๋ฒ์ ๋ก๋ฉ ๋ก์ง์ ๋ฆฌํฉํ ๋งํ๊ณ , ๋ฒ๋ค๋ฌ๋ฅผ webpack๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ํ๋ฅญํ ์์ ์ ์ํํ๋ค.
๋ชจ๋ ๊ฒ์ ์๋ํํ์!โ
ํ์ฌ Electron ํ๋ก์ ํธ์๋ ์ฝ 30๋ช ์ ํ๋ฐํ ๋ฉ์ธํ ์ด๋๊ฐ ์๋ค. ์ด ์ค ์ ๋ฐ ๋ฏธ๋ง์ด ํํ์ ๊ธฐ์ฌ์์ด๊ธฐ ๋๋ฌธ์, ์ฒ๋ฆฌํด์ผ ํ ์์ ์ด ์๋นํ ๋ง๋ค. ๋ชจ๋ ๊ฒ์ด ์ํํ๊ฒ ๋์๊ฐ๋๋ก ์ ์งํ๋ ๋น๊ฒฐ์ ๋ฌด์์ผ๊น? ์ฐ๋ฆฌ์ ๋ชจํ ๋ "์ปดํจํฐ๋ ์ ๋ ดํ์ง๋ง, ์ธ๊ฐ์ ์๊ฐ์ ๋น์ธ๋ค"์ด๋ค. ์ ํ์ ์ธ ์์ง๋์ด์ ๋ฐฉ์๋๋ก, ์ฐ๋ฆฌ๋ ์์ ์ ๋ ์ฝ๊ฒ ํ๊ธฐ ์ํด ๋ค์ํ ์๋ํ ์ง์ ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ๋ค.
Electron์ ํต์ฌ ์ฝ๋๋ฒ ์ด์ค๋ C++๋ก ์ด๋ฃจ์ด์ง ๊ฑฐ๋ํ ๊ท๋ชจ๋ฅผ ์๋ํ๋ฉฐ, ๋น๋ ์๊ฐ์ ๋ฒ๊ทธ ์์ ๊ณผ ์๋ก์ด ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ๋ ๋ฐ ํญ์ ๊ฑธ๋ฆผ๋์ด์๋ค. 2020๋ , ์ฐ๋ฆฌ๋ Google์ ๋ถ์ฐ ์ปดํ์ผ๋ฌ ์๋น์ค์ธ Goma์ ์ํ ์ปค์คํ ๋ฐฑ์๋์ธ Not Goma์ ๋ฐฐํฌํ๋ค. Not Goma๋ ์ธ์ฆ๋ ์ฌ์ฉ์์ ๋จธ์ ์์ ์ปดํ์ผ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , ์ด๋ฅผ ๋ฐฑ์๋์ ์๋ฐฑ ๊ฐ์ ์ฝ์ด์ ๋ถ์ฐ์ํจ๋ค. ๋ํ ์ปดํ์ผ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ์ฌ ๋์ผํ ํ์ผ์ ์ปดํ์ผํ๋ ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋ฏธ๋ฆฌ ์ปดํ์ผ๋ ๊ฒฐ๊ณผ๋ง ๋ค์ด๋ก๋ํ๋ฉด ๋๋๋ก ํ๋ค.
Not Goma๋ฅผ ๋์ ํ ์ดํ, ๋ฉ์ธํ ์ด๋๋ค์ ์ปดํ์ผ ์๊ฐ์ ๋ช ์๊ฐ์์ ๋ช ๋ถ์ผ๋ก ํฌ๊ฒ ๋จ์ถ๋์๋ค. ์ด์ ๋ ์์ ์ ์ธ ์ธํฐ๋ท ์ฐ๊ฒฐ๋ง ์์ผ๋ฉด ๋๊ตฌ๋ Electron์ ์ปดํ์ผํ ์ ์๊ฒ ๋์๋ค!
์คํ์์ค ๊ธฐ์ฌ์๋ผ๋ฉด Electron Build Tools๋ฅผ ํตํด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ Not Goma์ ์ฝ๊ธฐ ์ ์ฉ ์บ์๋ฅผ ์ฌ์ฉํด ๋ณผ ์ ์๋ค.
์ง์์ ์ธ์ฆ(Continuous Factor Authentication)โ
์ง์์ ์ธ์ฆ(CFA)์ npm์ 2๋จ๊ณ ์ธ์ฆ(2FA) ์์คํ
์ ์๋ํํ ๋ ์ด์ด๋ก, semantic-release์ ๊ฒฐํฉํ์ฌ ๋ค์ํ @electron/
npm ํจํค์ง์ ์์ ํ๊ณ ์๋ํ๋ ๋ฆด๋ฆฌ์ฆ๋ฅผ ๊ด๋ฆฌํ๋ค.
semantic-release๋ ์ด๋ฏธ npm ํจํค์ง ๋ฐฐํฌ ๊ณผ์ ์ ์๋ํํ์ง๋ง, 2๋จ๊ณ ์ธ์ฆ์ ๋นํ์ฑํํ๊ฑฐ๋ ์ด ์ ํ์ ์ฐํํ๋ ๋น๋ฐ ํ ํฐ์ ์ ๋ฌํด์ผ ํ๋ค.
CFA๋ npm 2FA๋ฅผ ์ํ ์๊ฐ ๊ธฐ๋ฐ ์ผํ์ฉ ๋น๋ฐ๋ฒํธ(TOTP)๋ฅผ ์์์ CI ์์ ์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์๋ค. ์ด๋ฅผ ํตํด semantic-release์ ์๋ํ ๊ธฐ๋ฅ์ ํ์ฉํ๋ฉด์๋ 2๋จ๊ณ ์ธ์ฆ์ ์ถ๊ฐ ๋ณด์์ ์ ์งํ ์ ์๋ค.
CFA๋ Slack ํตํฉ ํ๋ก ํธ์๋์ ํจ๊ป ์ฌ์ฉ๋๋ฉฐ, ์ ์ง ๊ด๋ฆฌ์๋ TOTP ์์ฑ๊ธฐ๊ฐ ์๋ ํ Slack์ด ์ค์น๋ ๋ชจ๋ ๊ธฐ๊ธฐ์์ ํจํค์ง ๋ฐฐํฌ๋ฅผ ๊ฒ์ฆํ ์ ์๋ค.
CFA๋ฅผ ์ง์ ํ๋ก์ ํธ์์ ์ฌ์ฉํด๋ณด๊ณ ์ถ๋ค๋ฉด, GitHub ์ ์ฅ์๋ ๋ฌธ์๋ฅผ ํ์ธํด๋ณด์. CircleCI๋ฅผ CI ํ๋ก๋ฐ์ด๋๋ก ์ฌ์ฉํ๋ค๋ฉด, CFA๋ฅผ ๋น ๋ฅด๊ฒ ์ค์ ํ ์ ์๋ ํธ๋ฆฌํ orb๋ ์ ๊ณตํ๋ค.
Sheriffโ
Sheriff๋ GitHub, Slack, Google Workspace์ ๊ถํ ๊ด๋ฆฌ๋ฅผ ์๋ํํ๊ธฐ ์ํด ๊ฐ๋ฐํ ์คํ์์ค ๋๊ตฌ๋ค.
Sheriff์ ํต์ฌ ๊ฐ์น๋ ๊ถํ ๊ด๋ฆฌ๋ฅผ ํฌ๋ช ํ ํ๋ก์ธ์ค๋ก ๋ง๋๋ ๋ฐ ์๋ค. ์ด ๋๊ตฌ๋ ๋จ์ผ YAML ์ค์ ํ์ผ์ ์ฌ์ฉํด ์์ ์ธ๊ธํ ๋ชจ๋ ์๋น์ค์ ๊ถํ์ ์ง์ ํ๋ค. Sheriff๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ์ ํ๋ ฅ์๋ก ์ถ๊ฐ๋๊ฑฐ๋ ์๋ก์ด ๋ฉ์ผ๋ง ๋ฆฌ์คํธ๋ฅผ ๋ง๋๋ ์์ ์ด PR์ ์น์ธํ๊ณ ๋ณํฉํ๋ ๊ฒ๋งํผ ๊ฐ๋จํด์ง๋ค.
๋ํ Sheriff๋ Slack์ ๊ฐ์ฌ ๋ก๊ทธ๋ฅผ ์ ์กํด Electron ์กฐ์ง ๋ด์์ ์์ฌ์ค๋ฌ์ด ํ๋์ด ๋ฐ์ํ ๋ ๊ด๋ฆฌ์์๊ฒ ๊ฒฝ๊ณ ๋ฅผ ๋ณด๋ธ๋ค.
GitHub๋ ํ๋ถํ API ํ์ฅ์ฑ์ ์ ๊ณตํ๋ฉฐ, ๊ณต์์ ์ธ ๋ด ์ ํ๋ฆฌ์ผ์ด์ ํ๋ ์์ํฌ์ธ Probot์ ์ง์ํ๋ค. ์ฐ๋ฆฌ๊ฐ ๋ ์ฐฝ์์ ์ธ ์ ๋ฌด์ ์ง์คํ ์ ์๋๋ก, ๋ค์ํ ์์ ๋ด๋ค์ ๊ฐ๋ฐํด ๋ฐ๋ณต์ ์ธ ์์ ์ ์๋ํํ๋ค. ๋ช ๊ฐ์ง ์๋ฅผ ์ดํด๋ณด์:
- Sudowoodo๋ Electron ๋ฆด๋ฆฌ์ค ํ๋ก์ธ์ค๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง ์๋ํํ๋ค. ๋น๋๋ฅผ ์์ํ๊ณ , ๋ฆด๋ฆฌ์ค ์์ฐ์ GitHub์ npm์ ์ ๋ก๋ํ๋ ์์ ์ ํฌํจํ๋ค.
- Trop์ Electron์ ๋ฐฑํฌํธ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๋ค. GitHub PR ๋ ์ด๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ด์ ๋ฆด๋ฆฌ์ค ๋ธ๋์น์ ํจ์น๋ฅผ ์ ์ฉํ๋ค.
- Roller๋ Electron์ Chromium๊ณผ Node.js ์์กด์ฑ์ ์๋์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ค.
- Cation์ electron/electron PR์ ์ํ๋ฅผ ํ์ธํ๋ ๋ด์ด๋ค.
์ด๋ฌํ ๋ด๋ค์ ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ํฌ๊ฒ ํฅ์์์ผฐ๋ค. ์์ ๋ด๋ค์ด ๋ชจ์ฌ ํฐ ํจ์จ์ ๋ง๋ค์ด๋ธ ์ ์ด๋ค.
์์ผ๋ก์ ๊ณํโ
Electron ํ๋ก์ ํธ๊ฐ ๋ ๋ฒ์งธ 10๋ ์ ๋ง์ดํ ์ง๊ธ, ์ฌ๋ฌ๋ถ์ Electron์ ๋ฏธ๋๊ฐ ์ด๋ป๊ฒ ํผ์ณ์ง์ง ๊ถ๊ธํ ๊ฒ์ด๋ค.
์ฐ๋ฆฌ๋ Chromium์ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ์ ๋ง์ถฐ Electron์ ์๋ก์ด ์ฃผ์ ๋ฒ์ ์ 8์ฃผ๋ง๋ค ์ถ์ํ ๊ณํ์ด๋ค. ์ด๋ฅผ ํตํด ์น ํ๋ซํผ๊ณผ Node.js์ ์ต์ ๊ธฐ์ ์ Electron ํ๋ ์์ํฌ์ ๋ฐ์ํ๋ฉด์๋, ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ์์ ์ฑ๊ณผ ๋ณด์์ ์ ์งํ ๊ฒ์ด๋ค.
๊ตฌ์ฒด์ ์ธ ๊ณํ์ด ํ์ ๋๋ฉด, ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๊ณต์์ ์ผ๋ก ๋ฐํํ ์์ ์ด๋ค. ์์ผ๋ก์ ๋ฆด๋ฆฌ์ค, ์๋ก์ด ๊ธฐ๋ฅ, ๊ทธ๋ฆฌ๊ณ ํ๋ก์ ํธ ์ ๋ฐ์ดํธ์ ๋ํ ์ต์ ์ ๋ณด๋ฅผ ๋ฐ์๋ณด๊ณ ์ถ๋ค๋ฉด Electron ๋ธ๋ก๊ทธ๋ฅผ ์ฝ๊ฑฐ๋, ์์ ๋ฏธ๋์ด ํ๋กํ(Twitter ๋ฐ Mastodon)์ ํ๋ก์ฐํ๋ฉด ๋๋ค.
Footnotesโ
-
์ด๋ ์ฌ์ค electron-archive/brightray ํ๋ก์ ํธ์ ์ฒซ ๋ฒ์งธ ์ปค๋ฐ์ด๋ค. ์ด ํ๋ก์ ํธ๋ 2017๋ Electron์ ํตํฉ๋์๊ณ , Git ๊ธฐ๋ก๋ ๋ณํฉ๋์๋ค. ํ์ง๋ง ๋๊ฐ ์ซ์๋ฅผ ์ธ๊ฒ ๋๊ฐ? ์ค๋์ ์ฐ๋ฆฌ์ ์์ผ์ด๋, ์ฐ๋ฆฌ๋ง์ ๊ท์น์ ๋ง๋ค๊ฒ ๋ค! โฉ
-
ํํ ์๋ ค์ง ๊ฒ๊ณผ ๋ฌ๋ฆฌ, Electron์ ๋ ์ด์ GitHub์ด๋ Microsoft ์์ ๊ฐ ์๋๋ฉฐ, ํ์ฌ๋ OpenJS Foundation์ ์ผ๋ถ์ด๋ค. โฉ