flask 기반의 프로젝트를 빌드하고 환경별로 패키징을 하는 과정을 이야기해 보도록 하겠습니다~ c 가 포함된 경우에는 어떻게 진행을 해야할지 별도로 안내를 드리려고 합니다.
소스코드 컴파일
우선 node 별로 필요한 파일을 모으는 것이 기본이 되겠지요. 인증서가 필요한 노드, 아닌 노드 등 많이 있겠지요? 이미 디렉토리가 노드별로 쪼개져있는 경우에는 이 과정을 크게 상관을 안써도 될거 같습니다. 그 다음은 frontend 필요한 파일을 컴파일을 하는 과정이 필요하겠네요. 제 경우에는 flask-jinja 를 사용하고 있어서 jinja 템플릿과 local 파일을 미리 compile 을 해두는 과정이 필요합니다. 이 과정에서는 py_compile dictionary 를 사용합니다.
window 빌드 및 패키징
그 다음은 실행 환경에 맞게 build 를 해주고 release 를 해주는 과정이 필요합니다. window 에 배포하는 경우 .exe 파일로 app 파일을 변환을 시켜주는 과정이 되겠지요. 이 과정에서 py_installer 를 사용합니다. 이 py_installer 는 똑똑하게도 프로젝트에서 필요한 파이썬 라이브러리를 알아서 긁어모아서 compile 을 해주는 과정이 포함이 되어있지요! 그래서 .exe 를 편하게 실행을 할수 있답니다. 이 이후에 release 를 해줘야 하는데요, window 에서 배포하는 경우엔 msi 로 소스 코드를 패키징을 해주는 과정이 남아있습니다. 이 과정은 wix 라는 툴을 사용을 하는데요. 사실 귀여운 프로젝트의 경우에는 msi 로 안말고 그냥 zip 으로 말아서 로컬디스크에 그냥 붙여넣기를 해도 상관은 없지만 버전관리가 들어가거나 설치 마법사같이 멋지게 말고 싶으면은 wix 를쓰면 됩니다. 여기선 candle, light 라는 wix 안의 툴을 사용을 해서 msi 를 만들고, 업데이트를 하고 싶으면 .wxs 안에 version 정보, sequence 와 custom action 을 고쳐서 진행을 해주면 됩니다. 자세한건 window minor update 같은 공식 문서를 봐주면 좋습니다.
c 의 경우 compile 하는 방법
만약에 필요한 소스중에 c 나 c++ 이 들어있는 경우에는 cmake 를 사용을 해줘야 합니다. cmake 로 지도를 짜주고, codelite 같은 빌드 툴로 필요한 형태로 binary 를 말아주는 과정을 추가해주면 위에서 python library 를 compile 해서 binary 로 만것 처럼 c 코드나 c library 도 바이너리 형태로 떨어져서 그걸 내가 쓸수 있답니당.
'개발' 카테고리의 다른 글
[Flask] Frontend 템플릿 Jinja 구조 (0) | 2024.07.25 |
---|---|
[Flask] flask backend 템플릿 구조 (0) | 2024.07.24 |
[WIX] Major upgrade, Minor upgrade 조건과 차이 (2) | 2024.07.24 |
[Window] win32api, Microsoft installer (0) | 2023.10.12 |
[개발] Lock 과 동시성(python) (0) | 2023.09.18 |