👩🏻🚀 moonshot 👩🏻🚀 사이트의 프론트엔드를 배포하면서
React 프로젝트를 배포하고, 커스텀 도메인을 붙이고, 개발(테스트)환경과 운영 환경을 분리하여 배포하기까지의 과정을 경험할 수 있었습니다.
위 시리즈들을 통해 프론트엔드 배포를 위한 A-Z의 전반적인 과정들을 기록하면서 제가 겪었던 경험들을 공유하고자 합니다.
현재 moonshot은 프론트엔드, 백엔드 모두 개발 환경과 운영 환경을 분리해서 서비스를 운영하고 있습니다.
개발 환경과 운영 환경을 분리하는 가장 이유는 서비스의 안정성을 위해서입니다.
➡️ 새로운 기능이나 QA 등으로 인한 수정 사항이 있을 때, 개발 및 수정 사항들의 반영과 병렬적으로 서비스를 운영할 수 있습니다.
➡️새로운 기능 및 수정 사항들을 개발 환경에서 테스트 및 확인하고, 최종적으로 운영 환경으로 반영하여 보다 안정적인 서비스 운영이 가능합니다.
➡️ ex. 운영 환경(실제 서비스)에서는 UT를 진행하면서, 개발 환경(테스트 사이트)에서는 QA 및 추가 기능 구현을 동시에 반영할 수 있습니다.
moonshot의 프론트엔드 팀은 Git Flow 전략(main -> develop -> feat/~
)을 사용해 개발하고 있는데, 이 중 main
브랜치에서 분기 되는 배포 사이트를 운영 사이트
로, develop
에서 분기 되는 배포 사이트를 개발(테스트) 사이트
로 사용하고 있습니다.
📌 정리하자면 !
(1)main
: 언제든 사용자에게 출시 될 수 있는, 실제 서비스가 운영되고 있는 브랜치
=== 운영 브랜치(환경) === production 브랜치
(2)develop
: 다음 release의 기능들 및 수정 사항들이 반영되고 있는, 개발 중인 사항들이 모이는 브랜치
=== 개발 브랜치(환경) === preview 브랜치
Vercel에서는 자체적으로 preview 배포, production 배포라는 서로 다른 환경의 배포 모드를 제공합니다. 따라서 이를 활용하여 간편하게 개발 환경과 운영 환경 분리를 할 수 있습니다.
⓵ production
: 배포 시 가장 기본적으로 만들어지는, main에 연결 되는 환경
⓶ preview
: preview 환경은 총 두가지로 활용할 수 있습니다.
📍 (1) main이 아닌 다른 분기 된 브랜치에서 push 되면 배포가 진행 되는, 임시 미리보기 환경
-> 즉, main(production)으로 머지하기 전 다른 브랜치에서 push나 pull-request와 같은 변동 사항의 action이 발생되면 임시로 매번 새로 생겨 production에 반영 전 미리 확인을 하기 위한 목적의 배포 환경
📍 (2) 다른 브랜치로 preview 배포를 설정 해, 일종의 개발 환경으로 사용할 수 있는 배포
-> 필자는 develop 브랜치와 연결 후, 서브 도메인을 부여 해 개발 환경으로 사용하고 있습니다. (설정 방식은 다음에서 보다 자세히 적어보겠습니다.)
Project > Settings > Domains
로 들어갑니다
배포를 진행한 직후, 초기에는 production 모드 하나만 생성되어 있습니다.
개발 사이트의 sub domain 만들기
: 위 도메인을 입력할 수 있는 input에 개발 환경으로 사용하고 싶은 도메인을 입력한 후 (ex. moonshotyou-dev.vercel.app) Add
버튼을 누릅니다.
vecel.app
으로 끝나야 설정이 가능합니다.⓵에서 생성한 sub domain을 가지는 배포본의 'Edit' 버튼을 눌러, production 환경이 아닌, preview 환경 즉, 개발 환경이 분기 될 새로운 브랜치 (ex. develop
과 연결 해 줍니다.)
production으로 연결 해 둔 브랜치 (ex. main
)이 아닌 브랜치를 선택하면, 자동으로 vercel에서 preview 환경으로 인식 하여 preview 태그가 붙게 됩니다.
🥳 위 과정을 통해 preview 환경을 생성했습니다! 그럼 이제.. preview 환경과 production 환경의 작동만 분리해주면 되겠죠?!
-> 이를 위해, 환경 변수(env)를 각 환경별로 다르게 설정 해줘야 합니다!
➡️ 🙋🏻♀️ 이 모든 설정은 환경 변수, 즉 env를 각 환경에 따라 다르게 기입함으로써 적용 가능합니다.
환경변수 재세팅을 위해 Projects > Settings > Environment Variables
로 들어가줍니다.
환경변수를 추가 할 수 있는 부분이 나오는데, 그 중 Environment 부분을 보면 Production / Preview / Development인지 체크할 수 있는 체크박스가 포함되어 있습니다.
따라서 이를 활용하여, 운영 환경에 필요한 env는 Production만을 체크 해 추가 해주고, 개발 환경에 필요한 env는 Preview (또는 Development도 포함) 만 체크 해 추가 해주면 간단하게 환경에 따라 분리 된 환경 변수 추가가 가능합니다
✨ 적용을 완료 해주면! 이와 같이 같은 환경 변수이지만, 다른 배포 환경에 따라 다르게 추가 된 모습을 볼 수 있습니다.
moonshotyou-dev.vercel.app
)와 운영 사이트(moonshotyou.com
)을 분리 했습니다!.
.
.
📌 이제 다음 이어지는 글에서, vercel에 커스텀 도메인을 붙이는 과정에 대한 내용을 정리하며, vercel로 React 프로젝트 배포하기에 대한 기록을 마무리 하겠습니다.