11/23 일 구름유니브에서 진행한 단풍톤 활동에서, 배포를 진행할 때 생겼던 이슈에 대해 정리를 해보겠습니다.
상황 설명
프론트 작업이 어느정도 완료 되었을때, Vercel에 배포를 진행하기로 했습니다.
Organizations에 팀 레포를 배포를 하기 위해, 개인 레포에 가져와서 배포를 진행했습니다.
레포에는 main, develop, feature/ ... 이렇게 브렌치가 구성이 되어있었는데, develop 브랜치에 모든 작업물들이 반영되어 최신상태여서 main까지는 올리지 않은 상태라 develop 브랜치를 Vercel에 올리기로 하였습니다.
그래서,
포크떠온 개인 레포에 setting > General > default branch를 develop 으로 변경을 하였습니다.
** github의 setting에 default branch를 develop으로 변경을 하면 vercel이 알아서 develop 브랜치에 변경사항을 바로 반영 되는줄 알았습니다.....ㅠㅠㅠ
Vercel 배포를 진행을 하였고, 성공적으로 배포는 되었습니다.
그러나, 베포를 성공한 후, 새로운 작업을 진행하고나서 팀 레포에 develop 브랜치에다가 git push를 진행 하였습니다.
그러고 나서 CICD를 구축하지 않아서,
개인 레포에 Sync를 맞추는 작업을 하였습니다.
Sync fork가 완료 되면, 배포된 개인 레포에서 pending이 뜨고 , 성공적으로 배포 성공이 되었다는 표시가 떴습니다.
테스트로 default url '/' 가 로그인 페이지가 보이는데 거기서 버튼에 색깔을 변경을 진행해봤는데
직접 Vercel에 들어가서 확인해 본 결과 변경사항은 반영되지 않았습니다.
Vercel에서 확인해보면 commit이 올라온게 보였지만
url도 기존 url에
https://2024-danpoong-team-2-fe.vercel.app/
였는데, -phi 가 새롭게 붙으면서 url 주소가 바뀌는 문제도 발생하였습니다.
https://2024-danpoong-team-2-fe-phi.vercel.app/
기존 url 주소는 변경사항이 반영되지 않고, 새로운 url 주소는 404 오류가 나서 결국 배포했던 프로젝트를 다시 삭제하고 다시 배포하는 작업을 해보니까 변경사항은 잘 반영되었고 url 주소도 다시 정상으로 돌아왔었습니다.
해결한 방법
단풍톤이 끝나고, 무엇을 잘못 한 것인지 찾아본 결과 Vecel에 Branch 설정을 빠트렸던 것이 문제였습니다.
Vercel 대시보드의 프로젝트 > ... 눌러서 > setting 으로 들어가면
> Git > Production Branch가 있습니다.
Branch Name 이 기본적으로 main 으로 되어있습니다. ( 사진은 현재 제가 develop으로 변경한 상태 )
프로덕션 브랜치는 새로운 커밋을 수신하면 라이브 프로덕션 환경에 대한 배포를 트리거하는 지정된 Git 브랜치입니다. 기본적으로 Vercel은 이를 main 분기로 설정합니다. 그러나 개발 워크플로우에 맞게 이 설정을 사용자 정의가 가능합니다.
Production Branch는 트리거 역할을 하기 때문에 배포시 변경사항을 바로 반영하기 원하는 브랜치를 설정하는 것이라고 생각하면 될 것 같습니다.
그렇기 때문에, 저희는 계속 develop 브랜치에 변경사항을 바로 반영하기를 원했지만, 기본적으로 Vercel은 main브랜치에 변경사항이 발생하지 않아 수정한 부분이 바뀌지 않았습니다.
github에 배포한 레포에 setting 값의 default branch는
- Pull Request 생성 시 기본 대상 브랜치로 설정.
- 새 커밋 작업의 기준 브랜치로 사용.
- 협업 워크플로우를 효율적으로 관리하기 위해 설정.
코드 작업과 협업 환경에 영향을 미치지만, 배포 단계에서 사용되는 브랜치와는 별개 라는 것입니다.
url에 -phi는 왜 붙었던 것인가??
Vercel이 새로운 프로젝트로 인식
- 리포지토리 이름 또는 브랜치 이름이 기존 설정과 달라지면 Vercel은 이를 새로운 프로젝트로 간주하고 새로운 URL을 생성하게 됩니다.
- 예를 들어:
- 기존 리포지토리: 2024-danpoong-team-2-fe
- 새로 인식된 리포지토리 또는 브랜치: 2024-danpoong-team-2-fe-phi
이부분을 해결하고 싶다면 배포시에는 main으로 하는 것이 좋다..
모두가 좋아하는 3줄요약.........은 아니지만
- default 브랜치를 develop으로 변경하면 Vercel 배포가 해당 브랜치의 변경 사항을 실시간으로 반영할 것이라 생각했다.
- Vercel은 GitHub 기본 브랜치와는 무관하게 Vercel 설정에서 지정된 배포 브랜치를 기준으로 작동한다는 점을 놓쳤다.
- Vercel은 GitHub Default Branch 설정을 참고하지 않고, Vercel 대시보드에서 지정된 Production Branch를 기준으로 배포를 진행한다.
- Default Branch 변경은 Pull Request와 커밋 작업에만 영향을 미침.
- Vercel은 기본적으로 프로젝트 이름(리포지토리 이름)과 브랜치를 조합하여 고유한 URL을 생성하기 때문에 브랜치가 변경되거나 새로운 레포지토리를 연결하면 새로운 URL이 생성된다.
이상으로, 다음에는 팀 레포를 개인레포에 가져와서 배포를 진행하게 되어서, 직접 수동으로 synk를 맞춰야 했었는데, CICD 구축을 하여 자동으로 반영 될 수 있게 하도록 연습 해 볼 예정입니다.
'트러블 슈팅' 카테고리의 다른 글
Vite 환경에서 .env 변경 사항 반영 문제 (0) | 2025.01.31 |
---|