SlideShare a Scribd company logo
Electron Main Process
엿보기
Electron
Electron
자기소개
이대환
Email : redface0512@gmail.com
Twitter : JazzyRedface
Electron
Electron은 Main Process / Renderer
Process의 조합
• 이름만 유추해 보면 화면에서 Rendering 관련 역할을 하고 안하고에 따라서 달라
진다.
• 실제로도 그렇다.
• 식별자를 통해서, 그리고 간단한 테스트를 통해서 구별이 가능함 (뒤에 가서 다
루겠음)
Electron
Main Process만 한번 살펴보자
• Main Process란?
• Web Page Manager
• 웹페이지를 생성하고 관리하는 역할을 한다
• 웹페이지는 여러개 생성할 수 있다.
• 한개의 메인프로세스가 여러개의 웹페이지를 관리 가능
• 하지만 웹페이지에 관련한 직접적인 일은 하지 않음
Electron
Main Process만 한번 살펴보자
• Main Process란?
• Web Page Manager
• 하지만 웹페이지에 관련한 직접적인 일은 하지 않음
• Renderer Process가 대신 일함
• 한개의 Renderer Process가 한개의 웹페이지에서 직접 일함
• 메인프로세스가 명령을 하고, Renderer Process가 요청을 하면 일을 처리
해주고 결과를 내려준다.
Electron
Main Process는 어떻게 작동하나?
• 웹페이지를 생성해보자
• var app = require(‘app’); // 어플리케이션 생성주기 컨트롤 객체
• app.on(‘ready’, function () { // Init }); // 웹페이지 생성을 위한 준비가 다
되었을때의 상태, 준비가 되어야 웹페이지 생성이 가능하다.
• var mainWindow = new BrowserWindow({width: 넓이, height: 높이}); //
웹페이지를 띄우기 위한 인스턴스 생성
• mainWindow.loardURL(‘정적 html 파일 경로’); // 실제로 부르기 위한 정적페
이지 호출
• 위의 mainWindow는 app.on(‘ready’, function (){}); 안에서 실행되어야
한다, 그렇지 않으면 [Error: Cannot create BrowserWindow before
app is ready]라는 에러가 발생
Electron
Main Process는 어떻게 작동하나?
• process
• 어디서든지 접근 가능한 Global Object
• NodeJS의 process 다른점이 몇가지 존재한다
• process.type, process.versions, process.resourcePath, process.mas
등등
• 환경마다 process는 다르다
• process의 타입 식별자(process.type)에 따라서 구분이 가능
Electron
Main Process, Renderer Process 구분하기
• process.type이 어떤환경의 process인지 말해준다.
• console.log(process.type === ‘browser’ ? ‘Main Process’ :
‘Renderer’); // 이거를 Main 코드와 HTML 코드에 각각 심어보자
• 이제 호적등본 다 때서 관계가 확실해진다 :)
Electron
Renderer Process가 여러개라면?
• process.pid
• console.log(process.pid); // 웹 페이지를 여러개 생성하여 pid값을 비교
• 동일한 HTML일지라도, 웹 페이지가 다르면 식별자가 다르다.
• 웹페이지별 Renderer process가 다르다는걸 보여줌.
Electron
Main Process API들 몇몇 살펴보기
• Main/Renderer process들의 api가 다르다, 하지만 같이 쓸 수 있는 api 도 존재
한다.
• app
• Application의 생성주기를 관리하는 객체
• 생성주기 이벤트에 따라서 액션을 지정할 수 있다.
• app.on(‘ready’, function(){}); 도 액션 주기중의 하나
Electron
Main Process API들 몇몇 살펴보기
• Main/Renderer process들의 api가 다르다, 하지만 같이 쓸 수 있는 api 도 존재
한다.
• app
• Application의 생성주기를 관리하는 객체
• 생성주기 이벤트에 따라서 액션을 지정할 수 있다.
• app.on(‘ready’, function(){}); 도 액션 주기중의 하나
Electron
Main Process API들 몇몇 살펴보기
• app
• Application의 생성주기를 관리하는 객체
• 생성주기 이벤트에 따라서 액션을 지정할 수 있다.
• before-quit, will-finish-launching, ready, close…..
• app.on(‘ready’, function(){}); 도 액션 주기중의 하나
Electron
Main Process API들 몇몇 살펴보기
• BrowserWindow
• 웹페이지 생성자
• Native properties들을 다양하게 설정 할 수 있다.
• width, height, kiosk, icon, frame…..
• 생성주기 이벤트에 따라서 액션을 지정할 수 있다.
• close, page-title-updated, focus……
Electron
Main Process API들 몇몇 살펴보기
• BrowserWindow
• 웹페이지 생성자
• Native properties들을 다양하게 설정 할 수 있다.
• width, height, kiosk, icon, frame…..
• 생성주기 이벤트에 따라서 액션을 지정할 수 있다.
• close, page-title-updated, focus……
Electron
Main Process API들 몇몇 살펴보기
• ipcMain
• message handler
• Main/Renderer process간의 통신 역할을 한다.
• Renderer에서 필요시, Main Process에 요청을 통해 특정 기능들을 처
리 가능
• 동기 / 비동기 통신 가능
Electron
Main Process API들 몇몇 살펴보기
• ipcMain
• message handler
• Main/Renderer process간의 통신 역할을 한다.
• Renderer에서 필요시, Main Process에 요청을 통해 특정 기능들을 처
리 가능
• 동기 / 비동기 통신 가능
Electron
여기까지…

More Related Content

PPTX
[123] electron 김성훈
PPTX
일렉트론 삽질기
PDF
리멤버 데스크톱 앱 개발기
PDF
Electron
ODP
Electron 시작하기
PDF
Electron 개발하기
PPTX
Electron forge
PPTX
[114]angularvs react 김훈민손찬욱
[123] electron 김성훈
일렉트론 삽질기
리멤버 데스크톱 앱 개발기
Electron
Electron 시작하기
Electron 개발하기
Electron forge
[114]angularvs react 김훈민손찬욱

What's hot (20)

PDF
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
PDF
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
PDF
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
PDF
김찬웅_그룹웨어에 새 에너지를_NDC15
PDF
실시간으로 안드로이드 프론트엔드 작업하기
PDF
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
PDF
응답하라 반응형웹 - 4. angular
PDF
웹 Front-End 실무 이야기
PDF
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
PDF
[111] 네이버효과툰어떻게만들어졌나
PDF
Kgc2014 삼한제국기 포스트모템 김찬웅
PDF
Python server-101
PPTX
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
PDF
[C5]deview 2012 nodejs
PDF
Cooking jquery
PDF
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
PDF
[145]5년간의네이버웹엔진개발삽질기그리고 김효
PPTX
Nodejs 발표자료
PDF
Service Worker 를 이용한 
Offline Web Application 구현
PPTX
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
이승재, 박경재, NDC Replay 제작기: static website, static backoffice, NDC2017
이승재, 실버바인 서버엔진 2 설계 리뷰, NDC2018
윤석주, 인하우스 웹 프레임워크 Jul8 제작기, NDC2018
김찬웅_그룹웨어에 새 에너지를_NDC15
실시간으로 안드로이드 프론트엔드 작업하기
HTML5로 만드는 데스크탑 어플리케이션 (Node-Webkit)
응답하라 반응형웹 - 4. angular
웹 Front-End 실무 이야기
이승재, 강성훈, 내가 만든 언어의 개발환경을 Visual Studio Code로 빠르고 쉽게 구축하기 #1, NDC2017
[111] 네이버효과툰어떻게만들어졌나
Kgc2014 삼한제국기 포스트모템 김찬웅
Python server-101
NDC 2017 마이크로토크 - Spacemacs: 최고의 에디터는 Emacs도 Vim도 아니다. Emacs와 Vim이다!
[C5]deview 2012 nodejs
Cooking jquery
[D2 CAMPUS] tech meet up(Back-end) - 교내 웹서비스 개발 일지 (박은찬님)
[145]5년간의네이버웹엔진개발삽질기그리고 김효
Nodejs 발표자료
Service Worker 를 이용한 
Offline Web Application 구현
[JCO 컨퍼런스] 웹사이트 Front-End 성능 최적화
Ad

Similar to Electron mainprocess (20)

PDF
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
PDF
Node.js intro
PPTX
Node week1
PDF
Node.js 기본
PPTX
Node.js 살펴보기
PPTX
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
PDF
Node.js 현재와 미래
PDF
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
PDF
Clojurescript로 하는 함수형 UI 프로그래밍
PDF
Node.js 첫걸음
PPTX
Generator 발표자료
PDF
Nodejs발표자료 - 팀 세미나용
PPTX
Node.js
PDF
Facebook은 React를 왜 만들었을까?
PDF
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
PDF
Javascript everywhere - Node.js | Devon 2012
PPT
Open hab&webapp.net
PDF
예제를 통해 쉽게_살펴보는_뷰제이에스
PDF
진짜기초 Node.js
PDF
일렉트론을 가볍게 한번 사용해보자! (설치부터 일렉트론으로 제이쿼리 사용하기)
Ryan Dahl의 Node.js 소개 동영상 해설 by doortts
Node.js intro
Node week1
Node.js 기본
Node.js 살펴보기
리스펙토링 세미나 - 웹 브라우저 동작 개념, Node.js를 통한 서버 이해, REST API
Node.js 현재와 미래
[W3C HTML5 2017] Electron과 TypeScript로 만드는 Visual Studio Code, 그리고 ProtoPie
Clojurescript로 하는 함수형 UI 프로그래밍
Node.js 첫걸음
Generator 발표자료
Nodejs발표자료 - 팀 세미나용
Node.js
Facebook은 React를 왜 만들었을까?
[NDC17] Unreal.js - 자바스크립트로 쉽고 빠른 UE4 개발하기
Javascript everywhere - Node.js | Devon 2012
Open hab&webapp.net
예제를 통해 쉽게_살펴보는_뷰제이에스
진짜기초 Node.js
일렉트론을 가볍게 한번 사용해보자! (설치부터 일렉트론으로 제이쿼리 사용하기)
Ad

Electron mainprocess

  • 3. Electron Electron은 Main Process / Renderer Process의 조합 • 이름만 유추해 보면 화면에서 Rendering 관련 역할을 하고 안하고에 따라서 달라 진다. • 실제로도 그렇다. • 식별자를 통해서, 그리고 간단한 테스트를 통해서 구별이 가능함 (뒤에 가서 다 루겠음)
  • 4. Electron Main Process만 한번 살펴보자 • Main Process란? • Web Page Manager • 웹페이지를 생성하고 관리하는 역할을 한다 • 웹페이지는 여러개 생성할 수 있다. • 한개의 메인프로세스가 여러개의 웹페이지를 관리 가능 • 하지만 웹페이지에 관련한 직접적인 일은 하지 않음
  • 5. Electron Main Process만 한번 살펴보자 • Main Process란? • Web Page Manager • 하지만 웹페이지에 관련한 직접적인 일은 하지 않음 • Renderer Process가 대신 일함 • 한개의 Renderer Process가 한개의 웹페이지에서 직접 일함 • 메인프로세스가 명령을 하고, Renderer Process가 요청을 하면 일을 처리 해주고 결과를 내려준다.
  • 6. Electron Main Process는 어떻게 작동하나? • 웹페이지를 생성해보자 • var app = require(‘app’); // 어플리케이션 생성주기 컨트롤 객체 • app.on(‘ready’, function () { // Init }); // 웹페이지 생성을 위한 준비가 다 되었을때의 상태, 준비가 되어야 웹페이지 생성이 가능하다. • var mainWindow = new BrowserWindow({width: 넓이, height: 높이}); // 웹페이지를 띄우기 위한 인스턴스 생성 • mainWindow.loardURL(‘정적 html 파일 경로’); // 실제로 부르기 위한 정적페 이지 호출 • 위의 mainWindow는 app.on(‘ready’, function (){}); 안에서 실행되어야 한다, 그렇지 않으면 [Error: Cannot create BrowserWindow before app is ready]라는 에러가 발생
  • 7. Electron Main Process는 어떻게 작동하나? • process • 어디서든지 접근 가능한 Global Object • NodeJS의 process 다른점이 몇가지 존재한다 • process.type, process.versions, process.resourcePath, process.mas 등등 • 환경마다 process는 다르다 • process의 타입 식별자(process.type)에 따라서 구분이 가능
  • 8. Electron Main Process, Renderer Process 구분하기 • process.type이 어떤환경의 process인지 말해준다. • console.log(process.type === ‘browser’ ? ‘Main Process’ : ‘Renderer’); // 이거를 Main 코드와 HTML 코드에 각각 심어보자 • 이제 호적등본 다 때서 관계가 확실해진다 :)
  • 9. Electron Renderer Process가 여러개라면? • process.pid • console.log(process.pid); // 웹 페이지를 여러개 생성하여 pid값을 비교 • 동일한 HTML일지라도, 웹 페이지가 다르면 식별자가 다르다. • 웹페이지별 Renderer process가 다르다는걸 보여줌.
  • 10. Electron Main Process API들 몇몇 살펴보기 • Main/Renderer process들의 api가 다르다, 하지만 같이 쓸 수 있는 api 도 존재 한다. • app • Application의 생성주기를 관리하는 객체 • 생성주기 이벤트에 따라서 액션을 지정할 수 있다. • app.on(‘ready’, function(){}); 도 액션 주기중의 하나
  • 11. Electron Main Process API들 몇몇 살펴보기 • Main/Renderer process들의 api가 다르다, 하지만 같이 쓸 수 있는 api 도 존재 한다. • app • Application의 생성주기를 관리하는 객체 • 생성주기 이벤트에 따라서 액션을 지정할 수 있다. • app.on(‘ready’, function(){}); 도 액션 주기중의 하나
  • 12. Electron Main Process API들 몇몇 살펴보기 • app • Application의 생성주기를 관리하는 객체 • 생성주기 이벤트에 따라서 액션을 지정할 수 있다. • before-quit, will-finish-launching, ready, close….. • app.on(‘ready’, function(){}); 도 액션 주기중의 하나
  • 13. Electron Main Process API들 몇몇 살펴보기 • BrowserWindow • 웹페이지 생성자 • Native properties들을 다양하게 설정 할 수 있다. • width, height, kiosk, icon, frame….. • 생성주기 이벤트에 따라서 액션을 지정할 수 있다. • close, page-title-updated, focus……
  • 14. Electron Main Process API들 몇몇 살펴보기 • BrowserWindow • 웹페이지 생성자 • Native properties들을 다양하게 설정 할 수 있다. • width, height, kiosk, icon, frame….. • 생성주기 이벤트에 따라서 액션을 지정할 수 있다. • close, page-title-updated, focus……
  • 15. Electron Main Process API들 몇몇 살펴보기 • ipcMain • message handler • Main/Renderer process간의 통신 역할을 한다. • Renderer에서 필요시, Main Process에 요청을 통해 특정 기능들을 처 리 가능 • 동기 / 비동기 통신 가능
  • 16. Electron Main Process API들 몇몇 살펴보기 • ipcMain • message handler • Main/Renderer process간의 통신 역할을 한다. • Renderer에서 필요시, Main Process에 요청을 통해 특정 기능들을 처 리 가능 • 동기 / 비동기 통신 가능