카테고리 없음

[개념] Electron App이란?

security21 2025. 5. 21. 15:48

Electron App이란?

Electron은 웹 기술로 데스크톱 애플리케이션을 만들 수 있게 해주는 오픈소스 프레임 워크이다.

한마디로, 웹 앱을 데스크톱 앱처럼 포장할 수 있게 도와주는 도구이다.

 

1. 탄생 배경과 개요

Electron은 GitHub에서 개발되었으며, 최초에는 Atom 에디터를 만들기 위해 사용되었다.

현재는 Slack, Visual Studio Code, Discord, Notion, JANDI 등 인기 앱들이 Electron 기반으로 만들어진다.

 

** 정의

HTML, CSS, JavaScript로 만든 웹 애플리케이션을 데스크탑 앱처럼 실행할 수 있도록 해주는 프레임워크

 

2. 동작 구조

Electron은 크게 두 개의 프로세스로 구성되는데,

1. Main Process

  • Node.js 기반
  • 앱의 실행 흐름, 창 관리, OS와의 상호작용 등을 담당
  • 백엔드 역할 수행

2. Renderer Process 

  • Chromium 엔진 기반
  • 웹 페이지처럼 UI를 렌더링 (HTML, CSS, JS 사용)
  • 사용자와 직접 상호작용

-> 이 둘은 IPC (Inter-Process Communication)을 통해 통신한다.

 

3. Electron App의 장점

장점 설명
크로스 플랫폼 지원 Windows, macOS, Linux 모두 한 번의 개발로 지원 가능
빠른 개발 웹 기술만 알면 Desktop 앱 제작 가능
강력한 생태계 Node.js 모듈과 Chromium 기능을 함께 사용 가능
웹 앱 -> Desktop 전환 쉬움 기존 웹 서비스도 포딩 가능 (ex. Slack, Notion)

 

 

4. 단점 및 한계

단점 설명
메모리 사용량 많음 Chromium이 내장되기 때문에 리소스 소비가 큼
성능 최적화 어려움 고성능 UI나 게임에는 부적합
보안 취약 가능성  웹기반 취약점 (Node.js 모듈 악용, XSS, IPC 탈취 등) 가능

 

 

5. 대표적인 Electron App 

  • Visual Studio Code : 마이크로소프트의 코드 에디터
  • Slack : 협업/채팅 툴
  • Notion : 문서 및 협업 공간
  • Discord : 커뮤니케이션 앱
  • JANDI : 국내 협업툴 - 채팅, 일정, 파일 공유 등 제공
  • Troello : 프로젝트 관리 앱

 

6. Electron 앱의 파일 구조 예시

📁 my-electron-app
├── main.js          # 메인 프로세스 (Electron 시작점)
├── index.html       # 렌더링할 UI 화면
├── preload.js       # 보안용 브리지
├── package.json     # 의존성 및 설정
└── node_modules/    # Node.js 모듈

 

 

7. 디지털 포렌식 관점에서의 중요성

Electron 앱은 로컬 시스템에 다음과 같은 아티팩트를 남김

경로 내용
%AppData%\AppName 실행 로그, 환경 설정 (JSON), 사용자 정보
%AppData%\AppName\Cache 이미지 캐시, 대화 내
메모리 access_token, authId, teamId 등 평문 인증 정보

 

** 특히 메모리 포렌식 시 Electron 기반 앱은:

  • 실행 중 access_token이 메모리에 남음
  • JWT, 이메일, 채팅 메시지 등이 추출 가능

그래서 Electron 보안 이슈가 발생

-> Node.js 접근 가능성, IPC 탈취