728x90
반응형
CI(Continuous Integration)/CD(Continuous Deploy)란?
- 쉽게 요약하면, 배포를 자동화하는 것이 가장 큰 목적.
CI(Continuous Integration)
- CI는 지속적인 통합을 의미한다.
- 즉, 개발자가 개발한 소스 코드들은 지속적으로 코드베이스에 통합되어야 하며, 이때 자동으로 빌드 및 테스트가 진행되어야 한다.
- 예를 들어, 개발자가 기능을 개발하면, 그 코드들은 기존 코드와 병합(merge)된다.
- 병합될 때 컴파일이나 배포 빌드 과정이 정상적으로 실행되는지 확인해야 한다.
- 개발된 코드가 기존 코드에 부작용(side effect)이 없는지 확인하기 위해서는 테스트 과정이 필요하다.
- 이런 배포 빌드 테스트 과정을 지속적이고 자동으로 계속할 수 있도록 구축된 시스템이 CI 이다.
- 대표적인 오픈 소스 CI 시스템으로는 젠킨스(Jenkins)가 있다.
- 기존 소스와 병합하기 위해서는 Git 이나 SVN 같은 버전 관리 시스템도 필요하다.
CD(Continuous Deploy)란?
- CD는 지속적인 배포르 의미한다.
- CI를 통해 자동으로 테스트 및 패키징되었다면 CD를 이용하여 자동으로 해당 시스템에 배포할 수 있다.
- CD가 없다면 개발자는 패키징된 파일을 각 서버에 분배한 후 직접 서버르 재기동 해야 한다.
- 이 과정은 시간이 많이 소요될 뿐만 아니라 배포 중인 시스템은 로드 밸러서에서 제외하는 등의 수작업 등이 존재했다.
- 이런 부분들을 모두 자동화하면 배포 시간이 단축될 뿐만 아니라 하루에 수십 번 배포할 수 있다.
728x90
반응형
'1.프로그래밍 > 개발' 카테고리의 다른 글
헤이즐 캐스트 (Hazelcast) 란? (0) | 2024.10.24 |
---|---|
[NHN Academy] NHN Academy 인증 과정 (9) | 2023.03.24 |
[NHN Academy] NHN Academy 인증 과정 프로젝트 발표 (0) | 2023.03.24 |
[JWT] JWT 토큰이란? 토큰 기반 인증 방식 (0) | 2023.01.16 |
[Architecture] 모놀리식 아키텍처와 마이크로서비스 아키텍처란? (0) | 2023.01.07 |