[Git] CI/ CD

2025. 3. 4. 10:02·개발 도구/Git

CI/CD 란.

 

어플리케이션 개발 단계부터 배포 때까지 이 모든 단계를 자동화해서 사용자에게 배포할 수 있도록 만드는 것.

 

  • CI(Continuous Integration) 지속적인 통합
  • CD(Continuous Delivery) 지속적인 제공 or 지속적인 배포

 

`CI`란.

버그 수정이나 새로 만드는 기능들이 메인 레포에 주기적으로 `build` 되고 `test` 가 되어서 `merge` 되는 것

한 마디로. 빌드/테스트 자동화 과정.

 

`CI` 의 중요한 포인트.

1. 코드 변경사항을 주기적으로 빈번하게 머지해야 한다.

  • 한 기능을 구현할 때 한번에 머지하지 말고 조각을 잘 나눠 최대한 작은 단위로 개발하고 머지하며 통합.

2. 통합을 위한 단계 ( 빌드, 테스트, 머지)의 자동화

 

`CI` 의 장점은 뭘까요?

 

1. 개발 생산성 향상

  • 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있음

2. 문제점을 빠르게 발견할 수 있음 -> 신속한 버그 수정

3. 코드 퀄리티 향상

  • `CI` 잘 운영하려면 내 코드 유닛테스트 꼭 포함해야 하기 때문에 퀄리티가 올라감.

 

`CD`란.

지속적인 제공  or 지속적인 배포 둘 중 하나로 쓰임.

한 마디로 배포 자동화 과정

 

  • Continuous Delivery (지속적인 제공)
    • Release 브랜치로 자동 배포해 주는 것.
    • 즉, 유저에게 배포하는 것은 수동으로 해줘야 함.
  • Continuous Deploy (지속적인 배포)
    • 바로 유저에게 배포하는 것을 자동화

 

`CI/CD` 파이프라인 정리

개발자가 작은 단위로 나눠서 주기적으로 메인 레포에 merge를 하면 자동으로 빌드를 하고, 테스트 과정을 거쳐

릴리즈 준비를 하고, 여기서 수동적으로 혹은 자동적으로 최종 배포를 거치게 됨.

 

 

회사마다 CI/CD를 위해 사용하는 툴이 다름

  • Jenkins - 고도로 자동화된 빌드,테스트,배포 파이프라인 구축 가능하여 큰 규모의 프로젝트에 사용하면 좋음, but 구성 자체가 어려움 (섬세함)
  • github actions - 설정들이 어느 정도 정형화되어 있어 쉽게 사용 가능
  • buildkite, circleci….

 

 

 

GitHub Action

GitHub Action은 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 CI/CD(연속 통합 및 지속적인 업데이트) 플랫폼.

 

GitHub Action 에서 가장 중요한 5가지 개념

 

1. workflows (워크플로우) : 특정 이벤트 발생했을 때 내가 어떤 일을 수행하고 싶냐 를 명시할 수 있는 것

 

2. events (이벤트) : 어떤 일이 발생했는지를 지정할 수 있음.

  • 예 ) main branch push 했을 때, 누군가 이슈를 열었을 때 (이슈를 만들다)

 

3. jobs (작업) : 워크플로의 단계 집합

 

4. Action (액션) : 재사용할 수 있는 공개된 액션, 흔하게 사용할 수 있는 명령들이 액션으로 정리되어있음.

 

5. runners (실행기) : job하나당 하나의 runner를 가지고 있음. 워크플로우를 실행하는 서버.

 

 

'개발 도구 > Git' 카테고리의 다른 글

[Git] PR 커밋 중복 및 브랜치 히스토리 꼬임 정리  (0) 2025.04.30
[Git] Git pull 시 conflict가 반복될 때 점검할 3가지  (0) 2025.04.14
[Git] Git이란?  (0) 2025.02.26
'개발 도구/Git' 카테고리의 다른 글
  • [Git] PR 커밋 중복 및 브랜치 히스토리 꼬임 정리
  • [Git] Git pull 시 conflict가 반복될 때 점검할 3가지
  • [Git] Git이란?
“하루하루가 새로운 인생이다.”
“하루하루가 새로운 인생이다.”
제가 배운 지식을 정리하고 오래 기억하고 싶어서 만든 블로그입니다.
  • “하루하루가 새로운 인생이다.”
    땅콩
    “하루하루가 새로운 인생이다.”
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • 일상 (2)
      • 에러처리 (0)
      • 프로그래밍 언어 (34)
        • TypeScript (21)
        • JavaScript (6)
        • 퍼블리싱 ( HTML, CSS ) (7)
        • 코테 (0)
      • 프레임워크 및 라이브러리 (10)
        • React (10)
        • Next.js (0)
        • Vue.js (0)
        • Spring Boot (0)
      • 데이터베이스 (0)
        • Oracle (0)
      • 디자인 (0)
        • Figma (0)
      • 개발 도구 (5)
        • Git (4)
        • Docker (0)
        • IDE (1)
      • 프로젝트 (0)
        • 개인 프로젝트 (0)
        • 팀 프로젝트 (0)
        • 프로젝트 회고 (0)
      • 정보처리기사 (12)
        • 1과목 (4)
        • 2과목 (2)
        • 3과목 (2)
        • 4과목 (2)
        • 5과목 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    타입 별칭
    타입 스크립트
    HTML
    정보처리기사
    인터페이스
    React
    한 입 크기로 잘라먹는 타입스크립트
    자바스크립트
    TypeScript
    웹
    리액트
    타입스크립트
    Hook
    벼락치기
    정처기
    GIT
    이정환
    css
    js
    javascript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
“하루하루가 새로운 인생이다.”
[Git] CI/ CD
상단으로

티스토리툴바