입사한 새로운 회사에서는 React 프로젝트를 Nginx와 Jenkins를 이용해서 배포하고 있었다. 처음엔 “그걸 왜 써?”라는 생각이 들었다.
나는 그동안 Netlify나 Vercel 같은 서버리스 플랫폼을 개인적으로 사용해왔고, 이전 회사들에서도 모두 자동화된 배포 환경이 구축되어 있었다. 첫 번째 회사는 DevOps 팀이 CI/CD를 구성해줬고, 두 번째 회사는 AWS Amplify를 사용해 Git push만으로 배포가 이뤄졌다.
그래서 지금처럼 Jenkins와 Nginx를 직접 다뤄야 하는 환경은 처음이라 낯설었고, 이번 기회에 배포 구조를 제대로 이해하고 정리할 필요를 느꼈다.
그래서:
를 직접 정리해보며 배포 인프라에 대한 이해를 넓히기 위해 이 글을 작성하게 되었다.
| 항목 | 첫 회사 (블록체인) | 두 번째 회사 (AWS Amplify) | 지금 회사 |
|---|---|---|---|
| 배포 방식 | DevOps 팀 자동화 | Amplify가 자동 배포 | Jenkins 수동 설정 |
| 정적 파일 서빙 | Kubernetes 클러스터 | S3 + CloudFront | Nginx |
| 자동화 도구 | GitLab CI, Jenkins | Amplify 내장 빌드 기능 | Jenkins |
| 배포 관여도 | 거의 없음 | Git push로 끝 | 직접 Jenkins에 설정 |
| 라우팅 처리 | DevOps가 설정함 | 자동 처리됨 | Nginx 수동 설정 필요 |
npm run build만 해도 파일은 생기는데 왜 굳이 Nginx가 필요한가?Netlify나 Vercel 같은 서버리스 플랫폼은: