반응형
💡 “코드 수정했는데, 매번 배포하기 너무 귀찮다…”
개발을 하다 보면 이런 상황 많죠?
✅ 로컬에서 테스트
✅ Git에 커밋 & 푸시
❌ 그런데… 서버에는 아직 반영 안 됨
❌ 수동으로 배포하고, 버전 맞추고, 실수 생기고…
이런 귀찮음과 실수를 줄여주는 게 바로 CI/CD 시스템이에요! 😊
🧩 CI/CD란?
용어 | 뜻 | 핵심 기능 |
CI | Continuous Integration | 자동 테스트 & 코드 병합 |
CD | Continuous Deployment | 자동 배포 (또는 Continuous Delivery) |
즉, “코드를 푸시하면 자동으로 테스트하고, 서버에 바로 반영까지 해주는 시스템”이에요!
🔁 CI/CD 전체 흐름
1. 개발자가 Git에 코드 푸시
2. 테스트 자동 실행 (CI)
3. 빌드/패키징
4. 서버에 자동 배포 (CD)
5. 웹사이트에 반영 완료!
이 과정을 자동화하면 개발 속도 향상 + 에러 감소 + 팀워크 강화 효과가 생겨요!
🛠️ CI/CD를 구현하는 주요 도구들
✅ 1. GitHub Actions
- 깃허브에서 직접 제공하는 CI/CD 툴
- .github/workflows 폴더에 yml 파일 작성
- 무료 + 쉬운 설정 → 개인 프로젝트에 강력 추천
✅ 2. Jenkins
- 오픈소스 CI/CD 툴
- 커스터마이징이 매우 강력하지만 설치와 설정이 복잡
- 기업에서 많이 사용
✅ 3. GitLab CI/CD
- GitLab에서 제공
- GitHub Actions와 유사
- 자체 호스팅 프로젝트에 적합
✅ 4. Vercel / Netlify
- 프론트엔드 프로젝트에 특화된 CI/CD 서비스
- Git에 푸시하면 자동 배포 완료! (Next.js, React 등)
📦 GitHub Actions 예시
name: Deploy App
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm run build
- run: npm run deploy
이 설정만 해두면,
main 브랜치에 푸시할 때마다 자동으로 빌드 & 배포!
✅ CI/CD 도입의 장점
장점 | 설명 |
🚀 배포 자동화 | 수동 배포의 실수 줄이기 |
🧪 테스트 자동화 | 코드 품질 유지 |
⏱️ 속도 향상 | 개발 → 배포 시간 단축 |
🧑💻 협업 강화 | 누가 언제 뭘 했는지 명확 |
🤔 실무에서 주의할 점
- 테스트가 깨진 상태로 배포되면 큰일! → CI에서 반드시 테스트 먼저!
- 배포 환경 변수, 보안 키는 별도로 관리 (.env, GitHub Secrets 등)
- 운영 서버에 바로 배포하는 경우, 롤백 시스템도 고려해야 함
🧠 정리 한마디!
- CI: 코드를 Git에 푸시하면 자동으로 테스트하고
- CD: 그 결과를 서버에 자동으로 반영
- 도구: GitHub Actions, Jenkins, Vercel 등 다양
- 개발 효율성과 협업 품질을 폭발적으로 끌어올리는 핵심 시스템!
📌 다음 예고: 17편 – “Reverse Proxy란? Nginx는 왜 꼭 필요할까?”
- 여러 서버를 하나의 도메인에 연결하려면?
- 리버스 프록시의 개념과 구조
- 실무에서 Nginx가 쓰이는 이유 완전 정리!
[서버 기초] 리버스 프록시란? Nginx는 왜 항상 등장할까?
💡 “도메인은 하나인데, 서버는 여러 개일 땐 어떻게 해?”요즘 웹 서비스는 백엔드 서버, 프론트 서버, 이미지 서버, DB 서버 등기능별로 서버가 나뉘어져 있는 경우가 많아요.그런데 질문! ❓
it-afternoon.tistory.com
반응형
'개발 공부 > 서버' 카테고리의 다른 글
[서버 기초] WebSocket이란? 실시간 채팅과 알림의 비밀 (3) | 2025.04.17 |
---|---|
[서버 기초] 리버스 프록시란? Nginx는 왜 항상 등장할까? (0) | 2025.04.16 |
[서버 기초] Docker란? 서버 환경을 통째로 옮기는 마법 같은 기술 (0) | 2025.04.14 |
[서버 기초] CORS란? 프론트에서 서버 요청이 막히는 진짜 이유 (0) | 2025.04.09 |
[서버 기초] 세션 vs 쿠키? 로그인 상태는 어떻게 유지될까? (0) | 2025.04.08 |