CS 개념을 잊지 않기 위해 떠오르는 개념에 대해 짧게 이야기해보는 글입니다
본문에 잘못된 내용이 있다면 댓글로 둥글게 알려주세요 :)
CI/CD란 애플리케이션 개발부터 배포까지 과정을 자동화해서 더 빠르게, 더 빈번하게 고객에게 서비스를 제공하는 방식이다.
개발자가 pr을 올렸을 때 자동으로 테스트와 빌드를 실행하는 것, 테스트와 빌드를 성공했을 때 자동으로 메인 브랜치에 머지될 수 있도록 액티베이션, 메인 브랜치에 머지되었을 때 프로덕션 환경에 자동 배포되도록 하는 것.
CI = continuous integration = 지속적인 통합
개발자가 코드 업데이트 내역을 주기적으로 메인 브랜치에 머지할 수 있도록 그 과정을 자동화한 것을 말한다.
코드 변경사항이 있을 때마다 자동으로 빌드와 테스트를 수행해주기 때문에 다른 개발자의 작업과 충돌하거나 애플리케이션 전체에 일어날 문제를 머지하기 전에 미리 찾을 수 있다.
CD = continuous delivery = 지속적인 전달
= continuous deployment = 지속적인 배포
CI 단계 이후의 과정을 자동화한 것, 즉 애플리케이션 코드의 변경 사항들을 production 환경으로 배포하는 과정을 자동화한 것이다. CD가 continuous delivery라면 배포 가능한 상태로 준비하는 과정까지 자동화시키고 실제 배포는 사람의 확인 후 수동으로 진행하는 것을 의미하고, CD가 continuous deployment라면 production 환경에 배포하는 과정까지 전부 자동화하는 것을 의미한다.
CI/CD 파이프라인은 Github actions, jenkins, gitlab ci 등의 툴로 구축한다.
대부분의 회사는 CI/CD 환경에서 일하며
코드 변경사항을 주기적으로 빈번하게 머지해야하는 경우, 통합을 위한 단계(빌드, 테스트, 머지)의 자동화해야하는 경우에, 개발 생산성을 향상시키고 버그를 빠르게 발견하고 수정하여 코드 퀄리티를 높이기 위해 사용하는 것이 CI, CD
'[ Computer Science ] > CS study' 카테고리의 다른 글
| [CS/Linear Algebra] 딥러닝을 위한 선형대수학 개요 (0) | 2025.02.18 |
|---|---|
| [Server] WAS와 웹 서버의 차이점 간단하게 설명하기 (2) | 2025.01.05 |
| [JavaScript] 자바스크립트 호이스팅에 대해 간단하게 설명하기 (0) | 2024.12.31 |
| [Database] 데이터베이스 시스템에서 동시성을 제어하는 방법에 대해 간단하게 설명하기 (1) | 2024.12.31 |
| [Database] 트랜잭션 격리 수준에 대해 간단하게 설명하기 (1) | 2024.12.31 |
| [Data Structure] 스택에 대해 간단하게 설명하기 (3) | 2024.12.31 |