CI/CD 워크플로 구축
푸시 또는 풀 리퀘스트가 발생하면 코드를 자동으로 빌드하고 테스트하고 배포하는 실용적인 CI/CD 파이프라인을 만드세요.
CI/CD 워크플로 구축은(는) CoddyKit의 무료 DevOps Bootcamp 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 DevOps Bootcamp 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
CI/CD 시작하기
이 레슨에서는 GitHub Actions를 사용해 강력한 지속적 통합(CI) 및 지속적 배포(CD) 파이프라인을 만드는 방법을 배웁니다.
CI/CD는 코드 변경부터 배포까지 소프트웨어 개발 프로세스를 자동화하여 더 빠르고 안정적으로 만들어 줍니다.
CI/CD가 중요한 이유
현대적인 소프트웨어 개발에서 자동화가 중요한 이유는 무엇일까요?
- 더 빠른 피드백: 테스트를 자동으로 실행해 버그와 통합 문제를 조기에 발견할 수 있습니다.
- 일관된 빌드: 모든 빌드가 동일한 단계를 따르도록 하여 '내 컴퓨터에서는 되는데요'와 같은 문제를 줄입니다.
- 안정적인 릴리스: 수동 오류를 줄이면서 새로운 기능이나 수정 사항을 자신 있게 배포할 수 있습니다.
- 향상된 협업: 팀이 변경 사항을 자주 원활하게 통합하여 병합 충돌을 최소화합니다.
GitHub Actions: 핵심 개념
GitHub Actions는 YAML 파일에 정의된 워크플로를 사용합니다. 이 파일은 저장소의 특수 디렉터리인 .github/workflows/에 저장됩니다.
워크플로는 일련의 작업을 정의하고, 각 작업에는 명령을 실행하거나 미리 만들어진 액션을 사용하는 단계가 포함됩니다. 이것이 GitHub에 수행할 작업을 알려 주는 방법입니다!
첫 CI 워크플로 만들기
저장소에 push할 때마다 실행되는 기본 CI 워크플로를 만들어 보겠습니다. 이 워크플로는 Node.js를 설정하고 프로젝트 빌드 과정을 시뮬레이션합니다.
다음 내용을 저장소의 .github/workflows/ci.yml로 저장하세요.
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Build project
run: node build.js빌드 스크립트 시뮬레이션
워크플로의 node build.js 명령은 다음과 같은 스크립트를 실행합니다. 이 스크립트는 애플리케이션 코드를 컴파일하고 번들링하거나 준비하는 작업을 시뮬레이션합니다.
실행하여 출력을 확인해 보세요.
console.log("Starting project build...");
console.log(" - Compiling source files...");
console.log(" - Bundling assets for deployment...");
console.log("Build process finished successfully!");자동화된 테스트 추가
CI의 중요한 부분은 자동화된 테스트를 실행하는 것입니다. 종속 항목을 설치한 후 테스트 단계를 포함하도록 워크플로를 확장해 보겠습니다. 테스트가 실패하면 워크플로도 실패하므로 문제가 있는 코드가 다음 단계로 진행되지 않습니다!
다음과 같은 test 단계를 추가합니다.
name: Node.js CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Run tests
run: node test.js
- name: Build project
run: node build.js테스트 스크립트 시뮬레이션
다음은 워크플로에서 실행할 수 있는 간단한 test.js 스크립트입니다. 실제 프로젝트에서는 Jest나 Mocha와 같은 테스트 프레임워크를 사용하지만, 이 예제는 테스트 실행 원리를 보여 줍니다.
실행하여 시뮬레이션된 테스트 결과를 확인해 보세요.
console.log("Running automated tests...");
const allTestsPass = Math.random() > 0.1; // Simulate 90% chance of passing
if (allTestsPass) {
console.log("All 12 tests passed successfully!");
} else {
console.error("Tests failed! Please fix the errors.");
process.exit(1); // Exit with a non-zero code to indicate failure
}지속적 배포(CD) 소개
CI가 빌드와 테스트에 집중한다면, 지속적 배포(CD)는 한 단계 더 나아가 모든 CI 검사를 통과한 애플리케이션을 서버나 클라우드 서비스에 자동으로 배포합니다.
일반적인 CD 트리거는 다음과 같습니다.
- 새 Git 태그 만들기(예:
v1.0.0) - 특정 브랜치에 푸시하기(예:
main또는production) - GitHub 릴리스 만들기
간단한 CD 워크플로
다음은 새 Git 태그가 생성될 때 실행되며 모의 배포 단계를 포함하는 워크플로입니다. 실제 환경에서는 이 단계가 호스팅 제공업체(예: AWS, Azure, Heroku)와 상호 작용합니다.
다음 내용을 .github/workflows/cd.yml로 저장하세요.
name: Deploy to Production
on:
push:
tags:
- 'v*.*.*' # Triggers on tags like v1.0.0, v1.2.3
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Simulate deployment
run: |
echo "Deploying application to production server..."
echo "Version: ${{ github.ref_name }}"
echo "Deployment complete!"
# In a real scenario, you'd use a deployment action here
# e.g., aws-actions/configure-aws-credentials, appleboy/ssh-actionCI/CD 워크플로 확인
다음 중 CI/CD 파이프라인을 구현할 때 얻을 수 있는 주요 이점은 무엇인가요?
복습: CI/CD 만들기
GitHub Actions로 견고한 CI/CD 워크플로를 만드는 방법을 배웠습니다!
- CI/CD와 현대적인 개발에서의 이점을 정의했습니다.
- GitHub Actions 워크플로의 필수 YAML 구조를 살펴보았습니다.
- 프로젝트 빌드와 테스트를 자동화하는 CI 워크플로를 만들었습니다.
- 태그로 시작되는 자동 배포를 위한 CD 워크플로를 설계했습니다.
계속 자동화하여 더 빠르고 자신 있게 코드를 출시해 보세요!
자주 묻는 질문
“CI/CD 워크플로 구축” 강의는 무료인가요?
네 — “CI/CD 워크플로 구축” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 DevOps Bootcamp 강의 전체를 잠금 해제할 수 있습니다. DevOps Bootcamp 강의에는 총 4개의 강의가 포함되어 있습니다.
“CI/CD 워크플로 구축”에서 뭘 배우나요?
푸시 또는 풀 리퀘스트가 발생하면 코드를 자동으로 빌드하고 테스트하고 배포하는 실용적인 CI/CD 파이프라인을 만드세요. 브라우저에서 직접 실행하는 실습 코드로 DevOps Bootcamp을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
DevOps Bootcamp을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 DevOps Bootcamp은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“CI/CD 워크플로 구축” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 DevOps Bootcamp 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 DevOps Bootcamp 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.