brunch

You can make anything
by writing

C.S.Lewis

by 배울장 Apr 27. 2019

데스크탑앱도 웹 개발로

웹 개발 전성시대 with 일렉트론

일렉트론은 전자를 의미하는 줄만 알았다. 간단한 데스크탑 앱을 개발할 일이 생겨 전통적인 방식으로 개발을 하려고 하던 찰나 요즘엔 어떻게 개발하는지 궁금해서 찾아보기 시작했다.


데스크톱앱을 마지막으로 만들어본 것이 바야흐로 4년전... 요즘에는 node js로 데스크톱앱을 만들고 있다고 한다. 쉽게 말하자면 웹 개발하는 언어로 컴퓨터에서 돌아가는 프로그램을 만든다는 것이다. 심지어 윈도우, 맥, 리눅스 모두 한번에 개발할 수 있다. 데스크탑앱도 크로스플랫폼 개발시대였던 것이다. 그렇게 electron이라는 프레임워크를 익히기 시작했다. 유툽에서 1시간 안에 일렉트론으로 데스크탑앱 만들기를 빠르게 시청하고 개발 계획을 세웠다.


만들것은 간단한 재고관리 프로그램인데, 품명으로 검색해서 현재 재고와 거래처 등 관련 정보가 나오는 것이고 만약 품명 검색결과가 없으면 새로 등록하는 폼을 띄워주는 간단한 프로그램이다.


간단할 줄만 알았던 개발. 데이터베이스를 이용해야하기에 sqlite3를 사용하여 로컬 데이터베이스를 이용했다. 하지만 일렉트론에서 다른 노드의 패키지를 이용하려면, 그러니까 원래 웹에서 실행되던 패키지를 데스크톱 앱에서 실행하게 만드려면 rebuild라는 과정을 거쳐야한다. 사전 지식없이 시작하려니 시행착오가 꽤나 길었고 결국 성공을하고 맥 프로그램을 만들었다. 데이터베이스도 동작도 잘 했고 무리가 없었다. 이제 문제는 패키징이다.


맥에서 .app 프로그램을 만드는 것은 아주 간단했다. 패키징을 도와주는 모듈들을 설치하고 실행하니 맥에서 실행파일로 잘 되었다. 하지만 내가 만든 프로그램이 돌아갈 곳은 윈도우 환경이다. 그렇게 다시 시행착오의 나락으로 빠졌다. 맥 환경에서 윈도우 프로그램을 만드려면 wine이라는 다른 모듈을 설치해야했다. 그렇게 설치를 하니 지금 나의 OS와 맞지 않다는 오류가 뜨고 해당 exe 파일은 윈도우에서 돌아가지 않았다. 윈도우에서 돌아가는 프로그램을 만드려면 역시 윈도우가 최고였다.


다시 윈도우 환경으로 접속해서 패키징을 하려니 아니나다를까 앞서 했던 rebuild는 윈도우에서는 다시 잘 안됐고 또 시행착오에 빠졌다. 역시 나보다 먼저 이런 문제에 빠진 사람들은 많았고 github의 도움을 받아 해결했다. 기초가 없이 시작하니 오류가 왜 나타나는지 몰랐고 어디서부터가 문제인지 파악하는데 오래걸려 시행착오가 매우 길었다. 결국 해결해서 만드니 시간이 많이 지났다.

결국 만든 프로그램

맥과 윈도우에서 같은 코드로 돌아가는 개발 편의성. 역시 크로스플랫폼이다.


대부분의 실행되는 환경에 맞게 프로그램을 만들 수 있다. 상단 메뉴부터 단축키 설정까지 모두 가능하다. 이제 바야흐로 웹 개발 전성시대라 하지 않을 수 없다.

작가의 이전글 머신러닝이 바꿔놓은 것
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari