ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Electron with next.js = Nextron.js
    카테고리 없음 2024. 10. 23. 08:55

    * 개요

    : 윈도우 응용프로그램을 개발할 때, 늘 그러하듯 C#을 벗어나기 어려웠다. 기술스택을 JAVASCRIPT 중심으로 커리어를 쌓고 있는 필자의 입장에서는 한가지에 집중하고 싶은 상황이다. 이런 상황에서 JAVASCRIPT 베이스로 윈도우 응용프로그램을 만들 수 있는 방법을 발견!! 그것은 바로 Electron이다.

     

    * 특이사항

    : 일렉트론 공식사이트 (https://www.electronjs.org/)를 통해 알아보고 튜토리얼을 따라 해보았다. 리액트 + 일렉트론 구성이었는데, 필자는 next.js + typecsript + tailwind에 익숙하여 이 기술 베이스로 해보려고 여럿 포스팅을 따라해 보았으나 쉽지 않았다. 수십번의 삽을 뜨면서 느낀점은... 아.. 누군가 보일러플레이트를 만들어 놓은게 없을까였다. 그런데!!! 진짜 있었다. npx 로 보일러플레이트를 만들어 놓은것을 발견하였고 사용 방법에 대해 기술하겠다.

     

    * Nextron.js

    : 앱 생성

    npx create-nextron-app electron_demo --example with-tailwindcss basic-lang-typescript

     

    https://github.com/saltyshiomix/nextron

     

    GitHub - saltyshiomix/nextron: ⚡ Next.js + Electron ⚡

    ⚡ Next.js + Electron ⚡. Contribute to saltyshiomix/nextron development by creating an account on GitHub.

    github.com

     

    * 폴더 구조

    보일러플레이트가 있기 때문에 어려울게 하나도 없다. 위 명령어 대로 실행하면 아래와 같이 이상적인 폴더 구조로 설치가 된다.

    이후 처리는 늘상하던 next.js 와 동일하다. 페이지에 화면 개발하고, 컴포넌트들 개발해주고, 단일서버면.. 뭐 앱라우팅, 페이지라우팅 이런거로 API 처리 해주고 그게 아니면 API 따로 분리해서 만들어 줘도 된다.

     

    * 디버깅은?

    : 응용프로그램이라고 하더라도 디버깅 완전 똑같이 된다. 어떻게? 아래와 같이

    위에 mainWindow.webContens.openDevTools() 주석 열어주면 아래와 같이 크롬 디버깅 가능하다.

     

    * 실행파일 빌드

    : 윈도우에서 실행 가능한 exe 확장자 형태의 파일로 만들기 위해 아래와 같이 빌드 옵션을 넣은 npm 명령어를 package.json에 정의해 준다.

    {
      "scripts": {
        "build": "nextron build",
        "build:mac": "nextron build --mac",
        "build:mac:universal": "nextron build --mac --universal",
        "build:linux": "nextron build --linux",
        "build:win32": "nextron build --win --ia32",
        "build:win64": "nextron build --win --x64"
      }
    }

    ** 여기서 주의해야 할점은 윈도우 VSCode의 터미널에서 빌드 시 여러가지 권한 오류가 발생되었다. 구글링 해본바 권한 관련 오류 였기에, 터미널을 관리자 권한으로 실행하여 터미널에서 빌드 해줬더니 정상적으로 잘 되었다. 

     

     

    * 후기

    : 크로스 플랫폼이라 윈도우에서 개발하다 맥에서도 개발하고 너무 좋다.

    : 웹개발할때 쓰던거? 그냥 다된다.

    : 내가 익숙한 기술로 개발하니.. 생산성 터진다.

    : (단점) 크로미움 엔진 위에서 돌기 때문에 느리다고들 하는데? 글쎄....?

    : (단점) 여러 디바이스들이 붙은 응용프로그램을 개발할때는 여럿 허들이 있을수도 있을것 같지만 그 또한 방법이 있지 않겠는가? 

     

    * 결론

    : 그냥 이거다!

Designed by Tistory.