CI/CD

Junyoung Song·2022년 5월 3일
0
post-custom-banner

CI

Continuous Intergration의 약자로 프로젝트의 규모가 커질수록 커밋을 할때마다 빌드하고 테스트를 하는데에는 무리가 있습니다. 또한 여러사람이 같이 개발하기 때문에 커밋 충돌이 일어나는 경우도 생기게됩니다. 그렇기 때문에 이러한 빌드, 테스트 과정에서의 자동화가 필요성이 대두되었고 이러한 문제점을 해결하기위해 나온 방법이 CI입니다. 버그를 수정하거나, 새로운 기능을 만들때에 메인 레파지토리에 주기적으로 커밋을 하면 그것이 자동으로 빌드/테스트 되어 머지되는것을 말합니다. 그렇기 때문에 어떻게 더 작은 단위로 나누어서 개발하고 통합해 나가는것이 중요합니다 그렇게 하지 않는다면 충돌이나, 통합하는데에 엄청난 시간과 노력이 필요하게 됩니다. CI에서는 이렇게 머지된 코드가 자동으로 빌드, 테스트 되어서 문제가 없을경우 배포에 반영이 되게 됩니다. 문제가 생길경우 개발자에게 자동으로 알려줍니다. CI를 쓰게되면 이러한 과정을 통해 머지의 충돌을 최소화해서 개발생산성이 높아지게되고 코드의 변경사항이 적기 때문에 문제점을 빠르게 발견할 수 있습니다. 혹은 문제가 생기더라도 변경사항이 작아서 빠르게 수정이 가능합니다.

CD

CD는 두가지 의미로 쓰입니다. Continuous Deployment 또는 Continuous Delivery의 줄임말입니다. Deployment의 경우 최종배포단계 까지 모두 자동화된 경우를 Continuous Deployment라고 하며, Delivery의 경우는 이전단계까지는 자동화가 되어있지만 최종배포단계를 수동으로 진행하는 경우를 의미합니다.

CI/CD

종합해서 CI/CD의 경우는 앱 개발/배포 단계에서 자동화를 통해서 조금더 효율적이고 빠르게 사용자에게 배포하기위해 사용되고 있습니다. 대표적인 CI/CD 툴로는 젠킨스, 빌드카이트, 깃허브액션등이 있습니다.


참조: https://www.youtube.com/watch?v=0Emq5FypiMM
post-custom-banner

0개의 댓글