Bin's Blog

CI/CD란 무엇일까? 본문

프로그래밍 용어

CI/CD란 무엇일까?

hotIce 2023. 8. 24. 15:30
728x90

CI/CD란?

요즘 취업공고를 살펴보면 CI/CD라는 단어가 자주 보인다. 그래서 오늘은 CI/CD가 뭔지 살펴보자.

 

CI/CD는 애플리케이션 개발 단계부터 배포 단계까지의 모든 단계를 자동화를 통해서 더 효율적이고 빠르게 사용자에게 빈번히 배포할 수 있는 것을 말한다

 

CI/CD는 DevOps 엔지니어의 핵심 업무라고 불리기도 한다.

 

 

1️⃣ CI (Continuous Integration)

CI (Continuous Integration)는 "지속적인 통합"이라는 의미이다. 한마디로 "빌드와 테스트 자동화"

 

CI는 모든 개발이 끝난 후 코드 품질을 관리하는 고전적 방식의 단점을 해소하기 위해 나타난 개념으로, 지속적인 통합이라는 말 그대로 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 Repository에 통합(Merge)되는 과정을 통해 계속 품질을 유지하면서 개발을 진행하는 방법이다.

 

CI의 장점

  • 코드의 검증에 들어가는 시간이 줄어든다.
  • 개발 편의성이 증가한다.
  • 항상 테스트 코드를 통과한 코드만 Repository에 올라가기 때문에, 좋은 코드 퀄리티를 유지할 수 있다.

 

2️⃣ CD (Continuous Delivery)

CD (Continuous Delivery)는 지속적인 제공이라는 의미이다. CI의 연장선으로, 이 CI 프로세스를 통과한 코드 버전을 마지막에 "배포"하는 과정

 

코드 변경 사항이 파이프라인의 이전 단계(CI)를 모두 성공적으로 통과하면 수동개입 없이 Production에 자동으로 배포됨으로, 신속하고 능률적으로 사용자에게 새로운 기능을 제공할 수 있는 것이 장점이다.

 

CD의 장점

  • 개발자는 배포보다는 개발에 더욱 신경 쓸 수 있도록 도와준다.
  • 개발자가 원클릭으로 수작업 없이 빌드, 테스트, 배포까지의 자동화를 할 수 있다.

 

🤔 근데 왜 필요하지?

한마디로 "속도""효율"이다. "Quality at Speed"가 언제나 소프트웨어 개발의 이상이라면, 오늘날과 같이 다차원으로 끊임없이 진화되고 있는 개발 환경을 고려할 때, 조직들의 가장 큰 과제 중 하나는 시장 변화 및 고객 요구에 신속하고 유연하게 대응할 수 있는 개발안을 구축하는 것이다. 이러한 문제에 대한 중추적인 솔루션인 Agile 문화와 DevOps의 한 부분으로써 CI/CD 개념이 출현했다. 

728x90

'프로그래밍 용어' 카테고리의 다른 글

SDK란?  (0) 2023.09.05
네이티브 앱 vs 웹 앱 vs 하이브리드 앱 vs PWA  (0) 2023.08.21
클라이언트 사이드 렌더링 VS 서버 사이드 렌더링  (0) 2023.08.06
호스팅  (0) 2023.07.07
라우터와 라우팅  (0) 2023.06.09