기다리던(?) Electron 1.0 이 2016년 5월 11일 릴리즈 되어   

간단히 소개하려고 보니..  벌써 1.2.7 버전이 릴리즈 되어 있네요 ^^;; 

버전에 더 올라가기 전에 Electron에 대하 소개합니다.

 What is Electron?

Electron은 HTML, CSS, Javascript를 이용한 cross-platform의 데스트탑 어플리케이션 개발 프레임워크(플랫폼) 정도로 정의할 수 있을것 같고

GitHub사에서 개발하고 있습니다.  




[ Electron 사이트 (http://electron.atom.io/) ]


 Electron은 다음과 같은 특징을 가지고 있습니다.
 

  • Electron은 원래 OSS로 개발하고 있던 텍스트 에디터(Atom)의 구축을 위해 개발된 OSS 프레임워크로 Node.js와 Chromium을 기발으로 실행환경과 API를 가짐

  • HTML5 기술을 사용하여 개발할 수 있고, Node.js 와 Chrominum에서 동작하기 때문에 Windwons나 Mac(OS X), Linux 등의 데스탑 어플리케이션을 쉽게 개발할 수 있음

  • 현재 Atom, Slack, Visual Studio Code, WordPress, Boost, Kiematic, Yeoman 등의 데스크탑 어플리케이션에서 사용되고 있으며, Google Play Music의 데스크탑 플레이어에서도 활용되고 있음.

  • Electron 릴리즈 버전은 '1.2.7', Electron로 개발된 어플리케이션에 대한 검증 및 디버그를 지원 하는 'Devtron'은 1.2.1, 테스트 프레임워크인 Spectron은 '3.2.6' 버전이 릴리즈 되어 있음 (2016년 7월 19일 기준)
     

- youtube 소개 동영상 : the hard parts made easy  (https://www.youtube.com/watch?v=8YP_nOCO-4Q&feature=youtu.be)

 

 Electron API Demo Application 

버전 1.0 릴리즈에 맞춰 Electorn API 데모 어플리케이션도 새로 제공되었고,  Electron API를 보기 편하고 학습하게 쉽게 바뀌었네요,


Electron API Demo Application ]

- Electon API Demos : https://github.com/electron/electron-api-demos

 

 Devtron

Chrome Developer Tools의 OSS 확장 기능으로 Electron 어플리케이션에 대한 검증 디버그, 트러블슈팅 등의 역할을 위해 개발되었습니다. 

  • Require graph, IPC monitor, Event inspector, App Linter 등으 기능 제공
    (자세한 설명은 아래 링크 참조 )

  • Devron 기능 : http://electron.atom.io/devtron/


[ Devtron ]

 Spectron

Electron 어플리케이션의 OSS 테스트 프레임워크
 

  • 다양한 시나리오와 환경에서 어플리케이션의 기능에 대한 동작확인 및 테스트를 빠르게 할 수 있도록 Electron API 전체를 지원하고 있음

  • 'ChromeDriver',. 'WebdriverIO' 를 기반으로 개발되었으며, 페이지 네비게이션, 탐색, 사용자 입력, JavaScript실행에 대한 API를 제공하고 있음
     


[ Spectron ]

 

 Electron 메카니즘

Electron은 Node.js와 Chromium으로 구성되어 있으며, 브라우저의 렌더링프로세스는 Chromium 이 담당하고, 내부에서 렌더링프로세스를 생성하거나 파일 입출력, 메인 프로세스는 Node.js가 담당한다.
 

  • 설정파일(package.json)에 메인이 되는 JavaScript 파일과 라이브러리 의존관계에 대한 정보 관리

  • 메인이 되는 JavaScript를 Main Process르고 부르며, 어플리케이션의 라이프사이클을 관리함

  • 메일 프로세스로부터 기동되는 프로세스는 Chromium을 이용한 웹피이지가 표시되며, 복수의 독립된 프로세스로 구동이 되며 Rederer Process 라고함

  • 프로세스간은 ipc모듈를 사용하여 프로세스 통신(IPC)을 함

[ Electron 메카니즘 ]

 

 Electron 을 사용하면, HTML+Javascript 기반으로 쉽게(?) Slack과 같은 어플리케이션을 만들수 있습니다.  

 오늘은 여기까지, 다음에는 Hello World & 간단한 어플리케이션을 개발하는 방법을 정리해볼꼐요. ; )