brunch

You can make anything
by writing

C.S.Lewis

by Kim Sjoon George May 20. 2019

pyinstaller..

파이썬 프로그램을 애플리케이션으로..

나는 맥OS 초기 세대라고 불리울 수 있을 것 같다.  

맥 OS 6.0.2 싱글 파인더 버전부터 사용하기 시작하였었으니까... 당시 대학 동기들은 전부 MS-DOS를 쓰고 있었는데 나만 어떻게 Mac Classic을 구입하여 쓰고 있었었다. 


좀 써보니 나는 나만의 '맥 애플리케이션' 을 만들고 싶다는 생각을 했었다.  당시에는 개발 환경이 정말 척박하였고 좋은 툴은 대학생인 나에게 너무나 고가였다. 그나마 프로그래밍 비스무리하게 가능한 부분이, 지금은 없어진  당시 맥 OS에서 기본으로 제공했던 '하이퍼카드' 였다. 


영국문화원에 갔는데 '하이퍼카드' 가 현재 HTML스크립트의 모태라고 선전했던 걸 본 일이 있다. 아마 영국에 있는 회사에서 이 하이퍼카드 스크립트 시스템을 만들었으리라 추측된다. 나름 이걸로 일기장 프로그램을 만든 기억이 있다. 


이 옛날 이야기를 구구절절 하는 이유는 내가 PC기반 애플리케이션 제작의 성애자라는 것을 말하고 싶어서 이다. 이후 윈도우즈 계열로 넘어오면서 MFC도 좀 만졌고, 가급적이면 웹 계열에서 좀 멀어지려 했었다. 


2000년도에 들어서 python을 하나만 알고 있어도 cross-platform으로 애플리케이션을 맥이던 윈도우즈던 다 만들수 있다는 것을 알았다.  메모리? 사이즈? 점점 그런 것들은 무시할 수 있을 정도로 리소스 걱정은 안하는 시대이지 않는가?


유명한 것은 py2exe였다. 이는 python어플을 윈도우즈실행파일로 바꾸어 주는 역할을 한다. 그럼 맥용 실행파일은... ?


이를 지원하는 게 pyinstaller였다. py2app이라는 것도 있지만(이는 MacOS에 디폴트로 설치되어 있다) 생각보다 많이 쓰이진 않았다. 그리고 py2exe보다 압축 효율도 더 좋았던 것 같다. 


이에 대한 기술적인 내용은 아래 링크를 참조하기 바란다. (역시 내가 적은 것이다)


https://logicalandemotional.tistory.com/2?category=560005


MC/DC생성기를 wxPython으로 간략하게 입력창을 만들고 '변환' 버튼을 누르면 결과 창이 뜨는 형태로 간단하게 만든 앱을 pyinstaller로 제작하였다. 


앱을 만들고 테스트용도로 배포를 했는데 문제는 업데이트의 대응이었다. 내부적으로 수정이 될 때마다, 배포처에 일일이 고지를 하고 다운로드를 안내해야 했는데 이것 역시 고역이었다. 애플리케이션을 기동할 때마다 업데이터 서버와 통신하게 하여 업데이트가 있다면 다운로드하게 하는 방법도 있었으나, 거기까지 하기에는 내가 너무 게을렀다. 


이후 MC/DC로직을 재구성 하면서 아예 Pyinstaller를 통한 앱 제작을 없애고 웹으로 프론트엔드 - 서버 로 다시 만들게 된다. 




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari