본문 바로가기
IT

개발용어 - CI란 무엇일까?

by 오늘도히어로 2025. 2. 5.
반응형

 

CI는 Continuous Integration(지속적 통합) 의 약자로, 개발자가 코드 변경 사항을 정기적으로 중앙 저장소(예: GitHub, GitLab)에 통합하고, 이를 자동으로 빌드 및 테스트하는 개발 프로세스를 의미합니다.

📌 CI의 핵심 개념

  1. 지속적인 코드 병합
    1. 여러 개발자가 하나의 프로젝트에서 작업할 때, 작업한 코드를 정기적으로 Git 저장소에 푸시(Push)하여 통합하는 과정입니다
    2. 작은 단위로 자주 병합하면 충돌 방지 및 빠른 오류 감지가 가능합니다.
  2. 자동 빌드 및 테스트
    1. 코드가 푸시될 때마다 자동으로 빌드(Build)와 테스트(Test)가 실행됩니다.
    2. 이를 통해 새로운 코드가 기존 코드에 문제를 일으키지 않는지 빠르게 확인할 수 있습니다.
  3. 빠른 피드백 제공
  4. 코드 변경 후 즉시 빌드 및 테스트 결과를 받을 수 있어 문제를 조기에 발견하고 수정할 수 있습니다.

🔍 CI 동작 과정 (일반적인 파이프라인)

  1. 개발자가 코드를 GitHub/GitLab/Bitbucket에 Push
  2. CI 서버(예: GitHub Actions, GitLab CI/CD, Jenkins)가 자동으로 코드 다운로드
  3. 자동 빌드(Build) 실행 (예: Vue, React, Next.js 프로젝트의 npm run build)
  4. 자동 테스트 실행 (예: Jest, Mocha, Cypress 등)
  5. 테스트 통과 시 배포(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)는 개발자가 코드를 지속적으로 병합하고, 자동으로 빌드 및 테스트하는 과정으로, 개발 속도를 높이고 코드 품질을 개선하는 핵심적인 개발 방식입니다.

반응형