
CI/CD 란 간단하게 말해서, 어플리케이션 개발 단계부터 배포까지 모든 단계를 자동화를 통해 좀 더 효율적이고 빠르게 사용자에게 빈번이 배포할 수 있도록 하는 것을 의미한다.
CI란, 코드 변경 사항을 공유 소스 코드 Repository에 자동으로 자주 통합하는 것을 말한다.
📌 CI의 주요 Point!
코드 변경사항을 주기적으로 빈번하게 머지해야 한다
통합을 위한 단계(Build, Test, Merge)의 자동화
👉 장점) 개발 생산성 향상, 버그 수정 용이, 문제점 빠르게 발견, 코드의 퀄리티 향상
CD란, 지속적인 제공 혹은 배포로 두 용어는 상호 교환하여 사용된다.
지속적인 제공이란, CI에서 빌드와 단위 및 통합 테스트를 자동화한 다음 검증된 코드를 Repository로 릴리스하는 것을 자동화한다. (수동 배포)
지속적인 배포란, 지속적 제공의 확장으로 개발자의 변경 사항을 Repository에서 Production으로 릴리스하는 것을 자동화해 고객이 사용할 수 있도록 하는 것을 말한다. 즉, '배포'한다는 것이다. (자동 배포)
build, release, deploy, distribute 용어
build : 개발자가 작성해놓은 소스파일들을 컴퓨터나 휴대폰에서 실행시킬 수 있는 형태로 변경해주는 것이다.
(윈도우의 경우 .exe 파일로 만드는 것이나, 테스트용 휴대폰에서 apk파일을 만드는 행위)release : 같은 제품을 새롭게 만드는 것을 의미한다. 예를 들어, ip address를 release 한다는 말은 새로운 아이피 번호를 부여받는 의미이고, 제품에선 새로운 버전을 release 한다고 할 때 사용한다.
deploy : 프로그램 등을 서버와 같은 기기에 설치하여 작동가능하도록 만드는 일이다.
distribute : 제품을 사용자들이 사용할 수 있도록 서비스 등을 제공하는 의미로 사용한다.
👉 서비스 버전 n.n가 새롭게 release 되었고, 이를 서버에 deploy하여 사용자들이 사용할 수 있도록 distribute 하였다.
CODE → BUILD → TEST → RELEASE → DEPLLOY