학교 팀 프로젝트 주제가 iOS 어플리케이션으로 결정되면서 백엔드와 배포관련 작업을 맡게 되었다. 프론트 위주로만 공부하다보니 Docker, nginx 등에 대한 이해가 부족해서 CICD 파이프라인을 하나 만드는 데에도 이틀이 넘게 걸렸다.

주변 프론트엔드 엔지니어들도 나와 비슷한 어려움을 겪고 있는 것 같아서 프로젝트에 Github Action과 Docker, Docker hub를 활용한 자동배포 툴을 개발해 보려고 한다!

핵심 아이디어는, 내가 선택한 프레임워크, 설정에 따라서 github workflow를 만들어주고, Dockerfile혹은 Docker-compose.yml을 만들어 주는 도구이다.

구조 그려보기


우선 생각한 구조는 아래와 같다. 패키지를 실행하면, 사용자로부터 입력을 받을 수 있고, 해당 입력을 활용해서 workflow 파일을 만들어주는 간략한 구조이다.

Untitled

NPX 선택!


NPX is a package runner that allows you to run CLI tools or executables hosted on NPM without the need to install them with NPM first.

어떤 방식을 사용할지 많은 고민을 하다가 npm에 배포한 뒤, npx로 실행하면 될 것 같다고 생각했다. 우선 javascript로 개발하는 것이 가장 편하기도 했고(shellscript나 python을 활용한 실행프로그램 보단..) npx라는 좋은 도구가 있어서 설치 없이 실행만 하고 끝낼 수 있기 때문이다.

프로젝트 세팅