728x90

CI/CD란 지속적통합(Continuous Integration)과 지속적 배포(Continuous Deployment)를 의미한다. 

 

일반적으로 git을 개발 소스/버전 관리 시스템으로 많이 활용하므로, CI/CD를 현실에 빗대어 생각해보면, git에 코드를 커밋함과 동시에 수동으로 일일이 작업하지 않고 자동으로 빌드/테스트/배포되는 것이다.

 

CI - 빌드/테스트 자동화과정

작업한 소스 코드를 깃에 커밋하자 마자 자동으로 빌드/테스트되어 여러 개발자들의 코드가 충돌되는 것을 방지하는 과정이다. 가령 CI 작업을 하지 않는다면, 한 개발자가 커밋 한 후에 수동으로 빌드와 테스트를 해주어야 하고, 만약 이 과정을 잊고 실행하지 않은 상태에서 다음 개발자가 다른 소스 코드를 커밋하고 통합한 후 빌드/테스트 한다면 작업이 자칫 꼬이거나 오류가 발생할 수 있다. 

즉 지속적으로 코드를 통합하면서 동시에 실제 서비스에 문제가 없는지 테스트까지 진행되는 것이다. 

이 작업은 CI/CD를 구현하기 위한 첫 번째 단계이기도 하다.

지금 회사에서는 테스트 자동화 단계가 실질적으로 빠져있다. TDD의 중요성이 단순히 테스트로서가 아니라 CI/CD작업에서도 중요한 만큼 공부해서 반영하는 것이 중요한 것 같다.

 

CD - 배포 자동화

CI단계와 연결되어있는데, CI단계에서 코드가 오류없이 통과하게 되면 수동개입없이 자동으로 프로덕션에 배포/반영되게 된다. 이를 통해 최대한 빨리 사용자에게 새로운 기능을 제공할 수 있는 것이다.

 

참고블로그

728x90

+ Recent posts