반응형
CI는 Continuous Integration(지속적 통합) 의 약자로, 개발자가 코드 변경 사항을 정기적으로 중앙 저장소(예: GitHub, GitLab)에 통합하고, 이를 자동으로 빌드 및 테스트하는 개발 프로세스를 의미합니다.
📌 CI의 핵심 개념
- 지속적인 코드 병합
- 여러 개발자가 하나의 프로젝트에서 작업할 때, 작업한 코드를 정기적으로 Git 저장소에 푸시(Push)하여 통합하는 과정입니다
- 작은 단위로 자주 병합하면 충돌 방지 및 빠른 오류 감지가 가능합니다.
- 자동 빌드 및 테스트
- 코드가 푸시될 때마다 자동으로 빌드(Build)와 테스트(Test)가 실행됩니다.
- 이를 통해 새로운 코드가 기존 코드에 문제를 일으키지 않는지 빠르게 확인할 수 있습니다.
- 빠른 피드백 제공
- 코드 변경 후 즉시 빌드 및 테스트 결과를 받을 수 있어 문제를 조기에 발견하고 수정할 수 있습니다.
🔍 CI 동작 과정 (일반적인 파이프라인)
- 개발자가 코드를 GitHub/GitLab/Bitbucket에 Push
- CI 서버(예: GitHub Actions, GitLab CI/CD, Jenkins)가 자동으로 코드 다운로드
- 자동 빌드(Build) 실행 (예: Vue, React, Next.js 프로젝트의 npm run build)
- 자동 테스트 실행 (예: Jest, Mocha, Cypress 등)
- 테스트 통과 시 배포(Push to production) 또는 머지(Merge) 가능
📌 CI가 왜 중요한가?
- ✅ 버그 조기 발견 → 새로운 코드가 기존 코드와 충돌하는지 즉시 확인 가능
- ✅ 개발 속도 향상 → 수동 테스트 없이 자동화된 빌드 & 테스트 진행
- ✅ 팀 협업 강화 → 여러 개발자가 동시에 작업해도 안정적인 코드 유지
- ✅ 배포 안정성 증가 → 테스트를 통과한 코드만 배포 가능
💡 예제: GitHub Actions을 이용한 CI 설정
📌 Vue/Nuxt/React 프로젝트에서 CI 파이프라인을 GitHub Actions으로 설정하는 예제
📄 .github/workflows/ci.yml 파일 생성
name: CI Pipeline
on:
push:
branches:
- main # main 브랜치에 push될 때 실행
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: 코드 가져오기
uses: actions/checkout@v3
- name: Node.js 설정
uses: actions/setup-node@v3
with:
node-version: 18
- name: 의존성 설치
run: npm install
- name: 빌드 실행
run: npm run build
- name: 테스트 실행
run: npm test
📌 결론
CI(Continuous Integration)는 개발자가 코드를 지속적으로 병합하고, 자동으로 빌드 및 테스트하는 과정으로, 개발 속도를 높이고 코드 품질을 개선하는 핵심적인 개발 방식입니다.
반응형
'IT' 카테고리의 다른 글
디자인 시스템이란? 왜 필요하며, 어떻게 만들까? (1) | 2025.01.17 |
---|---|
"use client" 는 언제 써야 하는걸까?! (0) | 2025.01.16 |
npm 플러그인 트렌드 비교 사이트 소개 및 필요성 (0) | 2024.08.26 |
JS: lexical scope (0) | 2024.07.24 |
JS: Promise (0) | 2024.07.22 |