코드 그라데이션
[사전 지식] CI / CD 본문
# CI / CD는 도구가 아니라 방법이다.
* CI / CD가 필요한 상황
만약 서비스를 배포하고 운용하던 중에 코드를 변경할 일이 생기면 어떤 작업을 할 것인가?
우선은 코드 수정을 하고, 로컬 환경에서 테스트를 진행한다. 그리고 빌드도 잘되는지 확인할 것이다.
그런 다음에는 jar 파일을 생성해 복사하고,
AWS에 접속해서 복사한 jar 파일을 업로드해 새 배포 버전을 제공해야 한다.
지금 이 과정을 기계적으로 계속하는건 현실적으로 어렵다.
프로젝트 규모가 커진다면 더 말할 필요도 없고.
=> 이럴 때 도입하는 것이 CI/CD
이 방법을 도입하면 빌드부터 배포까지의 과정을 자동화할 수 있고, 또 잘 되는지 모니터링 할 수 있다.
사실 이는 지속적 통합, CD는 지속적 제공이라는 의미가 있다.
CI (Continuous Integration)
- 한글로 해석하면 지속적 통합이고, 풀면 개발자를 위해 빌드와 테스트를 자동화하는 과정.
- CI는 변경 사항을 자동으로 테스트해 애플리케이션에 문제가 없다는 것을 보장한다.
- 그리고 코드를 정기적으로 빌드하고 테스트하므로 여러 명이 동시에 작업을 하는 경우 층돌을 방지하고 모니터링할 수 있다.
- 보통 코드 변경 사항이 코드 저장소에 업로드되면 CI를 시작하고, CI 도중 문제가 생기면 실패하므로 코드의 오류도 쉽게 파악할 수 있게 된다.
CD(지속적 제공과 지속적 배포)
- CD는 CI 작업을 끝낸 다음 실행하는 작업.
- 배포 준비가 된 코드를 자동으로 서버에 배포하는 작업을 자동화하는 것이다.
- CI가 통과되면 개발자가 수작업으로 코드를 배포하지 않아도 자동으로 배포하니 매우 편리하다.
- 때문에 CD는 지속적 제공(continuous delivery)이라는 의미와
지속적 배포(continuous deployment) 라는 의미를 모두 가진다.
지속적 제공에서의 CD 의미
- 애플리케이션에 적용한 코드의 빌드와 테스트를 성공적으로 진행했을 때
깃허브와 같은 코드 저장소에 자동으로 업로드하는 과정을 의미한다.
최소의 노력으로 코드 배포를 쉽게 하는 것을 목표로 한다.
지속적 배포에서의 CD 의미
- 지속적 제공을 통해 성공적으로 병합한 코드 내역을 AWS와 같은 배포 환경으로 보내는 것을 의미한다.
- 이를 실무에서는 릴리스라고 한다.
- 지속적인 배포는 지속적 제공의 다음 단계까지 자동화한다.
즉, 개발자가 애플리케이션에 변경 사항을 커밋한 후 몇 분 이내에 애플리케이션을 자동으로 배포하여 적용된다.
'SpringBoot [예제] 블로그 만들기 > CI, CD' 카테고리의 다른 글
CI / CD 적용하기 (0) | 2023.10.26 |
---|