Skip to main content

애플리케이션 디버깅

Electron 애플리케이션이 예상대로 동작하지 않을 때, 다양한 디버깅 도구를 활용해 코딩 오류, 성능 병목 현상, 최적화 기회를 찾을 수 있다.

렌더러 프로세스

개별 렌더러 프로세스를 디버깅하기 위한 가장 포괄적인 도구는 Chromium 개발자 도구 세트이다. 이 도구는 BrowserWindow, BrowserView, WebView 인스턴스를 포함한 모든 렌더러 프로세스에서 사용할 수 있다. 인스턴스의 webContents에서 openDevTools() API를 호출해 프로그래밍 방식으로 열 수 있다.

const { BrowserWindow } = require('electron')

const win = new BrowserWindow()
win.webContents.openDevTools()

Google은 개발자 도구에 대한 훌륭한 문서를 제공한다. 이 도구는 일반적으로 Electron 개발자에게 가장 강력한 유틸리티 중 하나이므로, 반드시 익숙해지는 것을 권장한다.

메인 프로세스 디버깅

메인 프로세스 디버깅은 개발자 도구를 열 수 없기 때문에 조금 더 까다롭다. Google/Chrome과 Node.js의 긴밀한 협력 덕분에 Chromium 개발자 도구를 사용해 Electron의 메인 프로세스를 디버깅할 수 있지만, 콘솔에서 require가 제대로 동작하지 않는 등의 문제가 발생할 수 있다.

더 자세한 내용은 메인 프로세스 디버깅 문서를 참고한다.

V8 크래시 발생 시

V8 컨텍스트가 크래시되면, DevTools는 다음과 같은 메시지를 표시한다.

DevTools가 페이지와 연결이 끊겼습니다. 페이지를 다시 로드하면 DevTools가 자동으로 재연결됩니다.

Chromium 로그는 ELECTRON_ENABLE_LOGGING 환경 변수를 통해 활성화할 수 있다. 자세한 내용은 환경 변수 문서를 참고한다.

또는 커맨드라인 인자로 --enable-logging을 전달할 수도 있다. 더 많은 정보는 커맨드라인 스위치 문서에서 확인할 수 있다.