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 |