CI/CD

지윤·2023년 7월 4일

TIL

목록 보기
4/4

취업공고를 보면 vite와 더불어 항상 보였던 CI/CD.. 볼때마다 주변 개발자 친구한테 CI/CD가 뭐냐고 항상 물어 봤었다. (대답 듣고 이해 못함ㅎ) Github Actions를 사용해보며 아.. 이런거구나 하고 좀 이해를 하게 됐다. 머리로 아.. 하는 것과 블로그에 정리해서 남기는 건 다르니까..! 정리해놓기!

CI/CD

  • Continuous Integration(CI) + Continuous Delivery/Deployment(CD)
  • 개발 과정에서 필요한 빌드, 테스트, 배포등의 과정을 자동화한다.
  • CI/CD 자동화를 통해서 코드를 자동으로 테스트하고 배포할 수 있고 이를 통해 효율적인 작업과, 더 빠르고 더 자주 배포를 진행할 수 있게 된다.

CI(Continous Integration)

  • 코드를 지속적으로 통합해나가는 것
  • 코드를 통합할 때 가장 중요하고 걱정되는 부분은 “머지 후에 제대로 돌아갈까?” -> 이런 걱정과 의문을 매번 사람이 다 확인하는 것이 아니라(!!)
    CI 과정에서 테스트를 실행하고 코드가 유효한지 검사하고 만약 문제가 발생했을 경우 즉각적으로 피드백을 통해서 개발자가 문제를 확인하고 수정할 수 있게 만들어준다.

CD(Continuous Deployment)

  • CI 과정을 통해서 성공적으로 통합된 코드들을 실제 사용자가 사용하고 있는 Production 환경에 배포하는 것
  • CD는 Continous Deployment와 Delivery 두 의미로 모두 사용되는데 Continuous Delivery는 개발환경의 배포까지 자동화 된 것을 의미하고, Continous Deployment는 실제 사용자에게 제공되는 Production 환경까지의 배포를 자동화 한 것을 의미한다.

CI / CD 플랫폼의 종류

  • CI/CD 플랫폼의 종류를 구분하자면 크게 설치형과 클라우드형으로 나눌 수 있다.

  • 설치형
    - CI/CD 파이프라인 또한 하나의 프로그램이다.그래서 프로그램을 설계해두면 이를 실행할 컴퓨터가 필요하다. 설치형은 파이프라인을 구축하는 개발자가 직접 특정 컴퓨터에 CI/CD 플랫폼을 설치해서 활용하는 방법이다.
    - 대표적인 설치형 CI/CD 플랫폼으로는 Jenkins가 있다.

  • 클라우드형
    - 반대로 클라우드형같은 경우에는 CI/CD 플랫폼을 운영할 컴퓨터를 개발자가 직접 관리할 필요 없이 서비스 제공자가 클라우드에서 모두 운영해주는 형태이다.
    - 즉 클라우드형 CI/CD 플랫폼을 이용하면 별도의 컴퓨팅 자원에 대한 관리 없이 CI/CD 파이프라인의 구축에만 신경 쓸 수 있다.
    -컴퓨터에 직접 접근할 수 없고 플랫폼에서 제공해주는 수준까지만 할 수 있기에 세부적인 조정이 불가능하다는 단점이 있다.
    -대표적인 클라우드형 CI/CD 플랫폼의 예시로는 Travis CI, GitHub Actions 등이 있다.

profile
방금 태어난 개발자

0개의 댓글