티스토리 뷰

728x90
반응형

목차

     

    CI, CD, 배포 자동화는 쉽게 말하면 애플리케이션 빌드 및 배포의 자동화를 통해 

     

    고객에게 더 짧은 주기로 제품을 제공하는 방식을 아우르는 개념이다.

     

    하나씩 간결하게 보자.

     

    CI - Continuous Integration

     

     

     

    CI는 직역하면 지속적 통합이라는 의미가 된다.

     

    여기서 통합이란 일반적으로 기획부터 테스트까지를 아우르는

     

    개발자의 각 작업에 대한 통합이자 소스코드와 버전, 작업환경의 통합을 가리키며,

     

     지속적이라 함은 코드의 변경사항이 지속적으로 빌드 및 테스트된 뒤에 공유 레포지토리로 통합되는 것을 의미한다.

     

    CD - Continuous Delivery or Continuous Deployment

     

    CD는 약어에 따라 지속적 제공, 혹은 지속적 배포라는 의미를 갖는다.

     

    CI 이후의 추가단계, 즉 테스트 이후의 단계에 대한 자동화를 뜻하며, 그 자체로 자동화율에 대한 척도가 되기도 한다.

     

    또한 CI를 마친 변경사항을 최대한 빠르면서도 품질의 저하가 발생하지 않게 자동으로 사용자에게 전달하는 것을 그 목적으로 한다.

     

    Deployment Automation

     

    배포 자동화란 보편적으로는 소스 코드의 관리에서 배포까지의 영역을 말하지만, 상황과 필요에 따라 얼마든지 변할 수 있다.

     

    AWS에선 바로 이 배포 자동화를 위한 개발자 도구를 제공하며, 이를 이용해 구축한 파이프라인은 대략 아래와 같은 모양을 갖는다.

     

    • CodeCommit - Source Stage를 구성하는 버전 관리 도구. 유료이지만 보안에 강점을 가진다.
    • CodeBuild - Build Stage 구성. 유닛 테스트, 컴파일, 빌드와 같은 작업을 명령어로 실행 가능
    • CodeDeploy - Deploy Stage 구성. 실행 중인 서버 앱/정적 웹에 실시간으로 변경사항 전달 및 반영 가능
    • CodePipeline - 각 단계를 연결하는 파이프라인을 구축할 때 사용

     

    Summary

     

    • CI는 기획부터 코드 테스트까지의 지속적 통합. 작업 환경의 통합에 목적이 있다.
    • CD는 CI 이후부터 배포까지의 지속적 배포. 테스트가 끝난 코드의 신속하고 정확한 배포에 목적이 있다.
    • 배포 자동화 - 넓게 보면 CI/CD를 아우르는 개념. AWS에서 관련 툴을 제공한다.
    반응형
    댓글
    공지사항
    최근에 올라온 글
    최근에 달린 댓글
    Total
    Today
    Yesterday
    링크
    «   2025/02   »
    1
    2 3 4 5 6 7 8
    9 10 11 12 13 14 15
    16 17 18 19 20 21 22
    23 24 25 26 27 28
    글 보관함