본문 바로가기

목록이 없습니다.

[Electron] BrowserWindow close vs destroy 차이점

Framework/Electron

     

    Electron

     

    Electron으로 application을 만들다보면 BrowserWindow를 하나 붙여서 사용하기 마련인데 여기서 close 함수와 destroy 함수의 차이점을 정리해보려고 합니다.

     

    ※ 사실 제일 좋은 것은 공식 홈페이지의 document를 살펴보는것입니다.

     

    www.electronjs.org/docs/api/browser-window

     

    BrowserWindow | Electron

    Create and control browser windows.

    www.electronjs.org


     

    Electron BrowserWindow close function

    BroswerWindow는 쉽게 생각하면 브라우저 창 하나라고 생각하시면 편합니다. Electron 자체가 Chromium 기반으로 만들어진 것이기 때문에 브라우저창이라고 보는게 맞습니다. 우선 BroswerWindow의 close function은 우리가 브라우저를 끄는 동작입니다. 우측 상단에 X 버튼을 눌러서 또는 Alt + F4 버튼을 통해서 등등 다양한 방법으로 close를 할 수 있습니다.

     

     

    Electron BrowserWindow destroy function

    destroy function은 close function과는 다르게 정상적으로 닫는 동작이 아니라 강제종료하는 것이라고 보시면 됩니다. 예를들어 브라우저를 통해서 웹서핑을 하다가 브라우저가 부하가 걸려서 얼어버려 아무것도 안되는 상황 가끔 겪으실 때가 있을겁니다. 이 때 작업관리자를 열어서 프로세스종료하는것처럼 destroy 동작은 바로 강제종료라고 보시면 됩니다.

     

     

    활용법

    이번 포스팅을 하게 된 계기가 BrowserWindow에 close 이벤트를 잡을 수가 있는데 close 하기 전에 사용자에게 다시 한번 confirm alert(dialog)를 통해서 물어보고 확인버튼을 한번 더 선택했을 때 close 동작을 진행하는것을 구현했습니다. 근데 사용자에게 물어보지 않고 바로 종료해야하는 상황이 추가된것입니다. 이 때 close 동작을 하기 전에 destroy를 먼저 시켜주면 close 이벤트를 타지 않기 때문에 confirm alert(dialog)가 발생하지 않고 바로 종료가 됩니다.

     

    (아마 destroy는 이벤트리스너로 잡을 수 없습니다. 현재 제공하지 않는것으로 보입니다.)