본문 바로가기
  • 개발 / 공부 / 일상
DevOps

(DevOps) CI/CD란 ?

by JJeongHyun 2023. 7. 22.
반응형

CI/CD

 

CI/CD란 무엇인가 (Feat. DevOps 엔지니어)

안녕하세요. 개발자의 용어를 쉽고 명확하게 설명해드리는 개발자 김모씨입니다. CI/CD ?! 개발자로 밥먹고 사시는 분들이시라면, 혹은 IT서비스 업계에 종사하시는 분들이라면, 한 번 쯤은 들어

artist-developer.tistory.com

  • 웹/앱 애플리케이션을 개발하는 단계에서 지속적으로 통합, 배포
  • 여러 개발자가 동시에 애플리케이션 개발 혹은 그에 따른 작업에 대한 코드들을 병합해 주고 이용하는 사용자들에게 배포까지 지속적으로(자동화) 해주는 것을 뜻
    • 일일이 작업하고 나서 수동으로 하는 통합 지옥에서 벗어날 수 있다
  • CI (Continuous Intergration ) : 지속적인 통합
    • 새로운 코드의 내용이나 수정된 코드 변경사항을 정기적으로 빌드 및 테스트 하여 공유 레포지토리 저장소에 통합되는 것을 뜻
    • 반복적인 코드 병합하는 번거로움을 해결
    • 버그 및 충돌을 위해 단위테스트 혹은 통합 테스트까지 실행해서 변경사항을 제대로 적용했는지 확인 가능
      • 추가하거나 변경한 코드가 기존 코드와 병합
      • 병합된 코드에 버그 및 충돌이 없는지 테스트 및 빌드 검증
      • 문제가 발생 시 수정하고 다시 병합 후 테스트, 검증 하고 문제없으면 배포 진행
  • CD (Continuous Deployment ) : 지속적인 배포
    • 개발자가 어플리케이션에 변경사항을 작성한 후 몇 분 이내에 클라우드 애플리케이션을 자동으로 실행할 수 있는 것을 의미
      • 버그 및 충돌없이  자동화된 테스트 무사통과
      • 즉, 사용자의 지속적인 피드백을 반영하여 통합이 가능
    • CI를 거친 코드에 대해서 신뢰할 수 있기에 바로 배포가 가능
    • 성공적으로 병합된 내역을 저장소에만 저장하는 것이 아니라 사용자가 사용할 수 있는 배포환경까지 릴리즈(Release) 하는 것을 의미
      • 사용자의 Production까지 Release

CI/CD

CI/CD 방법 및 Tool

  • 개발, 배포, 테스트를 자동화를 지원
  • 대표적인 오픈소스 Tool
    • Jenkins
    • Travis

 

여태 조그마한 프로젝트들을 진행함에 있어서

 

rebase와 PR을 통한 코드 형상관리하며 안정화된 코드들로

 

수동적으로 혹은 정해진 시간대에 배포했던 환경을 CI/CD를 적용함으로써

 

관리의 영역을 늘리고자 한다~!!!

 

이번에는 이론정도만 적어두고 Jenkins라는 것으로 CI/CD를 공부하고 적용하는 과정을 녹여내보려고 한다

 

 

출처 )

https://www.redhat.com/ko/topics/devops/what-is-ci-cd
https://tecoble.techcourse.co.kr/post/2021-08-14-ci-cd/
https://artist-developer.tistory.com/24
https://unity.com/kr/solutions/what-is-ci-cd