180일차(2) - CI/CD

김민찬·2021년 11월 6일
0

취업으로의 여정

목록 보기
186/196

이번 블로그는 전적으로 아래 드림코딩 by 앨리의 영상을 요약 정리한 글임을 미리 밝힌다.

CI/CD란?

CI/CD란 간단하게 말해서 어플리케이션 개발 단계부터 배포때까지 모든 단계들을 자동화해서 효율적이고 빠르게 사용자에게 빈번히 배포할 수 있도록 만드는 것을 말한다.

  • CI는 Contunous Integration(지속적인 통합)의 약자이다.
  • CD는 Continuous Delivery(지속적인 제공)의 약자이다.
    ! Delivery대신에 Deployment(배포)로 사용하는 경우도 있다.

Continuous Integration(지속적인 통합)

  1. 코드 변경사항을 주기적으로 빈번하게 머지해야 한다.
    최대한 작은 단위로 나눠서 개발하고 통합해야 한다.
  2. 통합을 위한 단계(빌드, 테스트, 머지)의 자동화가 있어야 한다.

장점:

주기적으로 머지를 하기 때문에 머지의 충돌을 피할 수 있어서 개발 생산성을 향상시킬 수 있다.
머지되는 코드들은 자동으로 빌드되고 테스트되기 때문에 문제점을 빠르게 발견할 수 있다. 버그 수정을 빠르게 할 수 있다. 작은 단위로 수정을 해서 빠르게 발견하고 최종적으로 코드의 퀄리티 향상을 불러온다.

Continuous Delivery(지속적 제공) / Continuous Deployment(지속적인 배포)

CI를 통해서 주기적으로 머지된 코드 변경사항들이 자동으로 Build되고 Test되어 배포할 준비를 하게되고, 준비된 Release가 배포 되어도 괜찮으면 수동적으로 배포하는 단계를 Continuous Delivery라고 한다.

또는 Release가 준비 되자마자 자동으로 사용자에게 배포할 수 있게 만들 수도 있는데, 모든 과정을 자동으로 해놓는 것을 Continuous Deployment라고 한다.

최종단계가 자동화 되었는지에 따라서 달라진다

참고자료

드림코딩 by 앨리 - CI/CD 5분 개념 정리 (현업에서 쓰는 개발 프로세스)

profile
두려움 없이

0개의 댓글