Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

히콩쓰 개발 일지

CI/CD란 무엇인가? / Github Actions, Jenkins 장단 본문

카테고리 없음

CI/CD란 무엇인가? / Github Actions, Jenkins 장단

용히콩 2024. 1. 8. 10:14

새로운 프로젝트를 진행하면서, CI/CD 작업을 진행하겠다고 했다.

CI/CD 라고 하지만, 정확히 어떤 의미인지 잘 모르고 썼던 것 같아 제대로 알아보았다.

CI (Continuous Integration) : 지속적 통합

- 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합하는 것

CD (Continuous Delivery & Continuous Deployment) : 지속적 배포

Delivery와 Deployment는 조금 다르다.

- Delivery는 공유 레포지토리로 자동으로 Release 하는 것

- Deployment는 Production 레벨까지 자동으로 배포 하는 것

CI/CD 사용 시 장점

- 소스 코드를 통합하는 과정에서 발생하는 반복적인 수작업을 없앨 수 있다.
- 다수의 개발자가 하나의 프로젝트에 참여하는 상황이라면, 코드 스타일 통일이나 환경 등 동시다발적으로 발생할 수 있는 충돌을 방지할 수 있다.
- 코드 개발, 배포 과정을 자동화 했으므로 신속하게 개발 및 배포를 진행할 수 있다.


CI/CD Tools

CI/CD의 대표적인 툴이자 가장 많이 거론되는 것은 Github Actions, Jenkins 이다.

github action
Jenkins

Github Actions vs Jenkins

Jenkins

장점 단점
• 다양한 플러그인의 활용이 가능하여 확장성이 높음 • 비동기 파이프라인이 없어 동기적으로 배포하기 때문에 배포에 많은 시간이 소요됨
• 캐싱 플러그인을 지원하여 별도 캐싱 메커니즘 작성이 필요하지 않음 • 별도 서버 설치 필요
  • 환경 호환성을 위해 도커 이미지에서 실행해야 함

Github Actions

장점 단점
• GitHub 저장소에 내장되어 있어, 손쉽게 CI/CD를 구성할 수 있음 • 캐싱 플러그인이 없어 별도 캐싱 메커니즘 작성 필요
• Github 내부 모든 이벤트와 연동 가능  
• 모든 환경과 호환됨  
• 비동기로 배포됨  
• 클라우드가 있어 서버 별도 설치 필요 없음