면접에서 CI/CD에 대한 질문이 나왔는데, 제대로 대답하질 못해서 한번 정리해보았다.
코드에 변경사항이 있을 때마다 개발자가 일일이 빌드, 테스트, 배포를 하는 것은 오래걸리고 비효율적이다. 이때 누군가가 자동으로 코드에 변경사항을 체크하고 빌드, 테스트, 배포를 해준다면 더욱 시간을 효율적으로 사용할 수 있고, 편리할 것이다. 바로 CI/CD
가 그런 부분을 맡아준다.
CI/CD 중 CI는 빌드/테스트 자동화 과정이다. 또는 개발자를 위한 자동화 프로세스인 **지속적인 통합
**을 의미한다.
지속적인 통합은 소스/버전관리시스템에 대한 변경 사항을 정기적으로 커밋하여 모든 사람에게 동일 작업 기반을 제공하는 것에서 시작한다. 그 후 커밋할 때마다 빌드, 테스트같은 일련의 자동화가 이루어져 변경사항으로 인해 오류가 없다는걸 보장한다.
CI/CD중 CD는 배포 자동화 과정이다. 또는 지속적인 서비스 제공
, 지속적인 배포
두가지를 의미하고 두용어는 상호 교환적으로 사용된다.
다음과 같이 CI/CD에 대해 공부해 봤는데, CI/CD 환경을 구축하면 정말 좋은 이점들이 많이 생길 것 같다. 지금 현재 동아리에서 하는 프로젝트가 MFA를 진행해서 모듈이 많이 분리 됐는데 이를 CI/CD로 자동화 시키면 정말 편리해질 것 같다.