728x90
반응형

 

1. CI/CD 개념

  - 애플리케이션 개발 단계를 자동화하여 보다 짧은 주기로 배포하는 전략 또는 방법

  - 코드통합, 테스트, 릴리즈, 배포(Deployment) 등의 애플리케이션 라이프사이클 전체 과정을 자동화하고 이 과정을 모니터링 가능토록 하는 것. (연속된 과정을 "CI/CD 파이프라인" 이라고도 한다.)

  - 개발자가 아닌 사람도 쉽게 빌드, 배포를 가능하도록 하는 것 -> 개발자는 개발에만 집중

 

2. 대상 시점

CI와 CD는 세부적으로 아래와 같이 나눠지며, 개발/배포 단계에 적용되는 전략이 달라진다.

 

 

3. CI (Continuous Integration)

  • Build & Packaging
  • 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 병합되는 것이다.
  • Build, Test를 실시하는 프로세스를 말하며 이러한 통합 프로세스를 상시로 실시하는 것이다.
  • 다수의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우, 서로 충돌할 수 있는 문제를 해결하기 위함이다.
  • 언제든 최신 Build를 고객에게 바로 제공 가능하게 한다.

4. CD (Continuous Delivery) & (Continuous Deployment)

  • Deployment
  • 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리에 자동으로 업로드되는 것이다.
  • 개발자의 변경 사항을 리포지토리에서 고객이 사용 가능한 프로덕션 환경까지 자동으로 릴리스하는 것이다.
  • 이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포된다.
  • 개발팀과 운영팀의 커뮤니테이션 부족 문제를 해결한다.

5. CI / CD 의 필요성

  • 모든 분기의 소스 코드를 병합하는 경우, 결과적으로 반복적인 수작업에 많은 시간이 소요된다.
  • 병합하는 수작업을 하지 않는다면, 개발자가 애플리케이션에 변경 사항을 적용할 때 다른 개발자가 동시에 적용하는 변경 사항과 충돌할 수 있다.
  • 자동화된 테스트에서 기존 코드와 신규 코드 간의 충돌이 발견되면 CI를 통해 이러한 버그를 더욱 빠르게 자주 수정할 수 있다.
  • 여러 사람이 작성한 코드가 병합되었을 때 생기는 문제를 미리 감지한다.
  • System과 Application을 최대한 최신 상태로 유지할 수 있다.

6. CI / CD 의 종류

DevOps 엔지니어가 사용하는 대표적인 CI/CD 툴로는, Jenkins / Travis CI / Bamboo 등이 있습니다.



출처: https://artist-developer.tistory.com/24 [개발자 김모씨의 성장 일기]

출처:https://hoi5088.medium.com/ci-cd-%EA%B0%9C%EB%85%90-4e6a45dbcfe2

 

CI/CD 개념

1. CI/CD 배경

hoi5088.medium.com

 

728x90
반응형

'IT Interview' 카테고리의 다른 글

008. PUT, PATCH 의 차이  (0) 2021.09.14
007. MVC , MSA  (0) 2021.09.13
005. 싱글톤 패턴  (0) 2021.09.12
004. 디자인패턴  (0) 2021.09.12
002. IoC, AOP , DI, POJO 의 개념  (0) 2021.09.11

+ Recent posts