본문 바로가기
코드스테이츠 42기/[TIL] Section 4

CI/CD와 클라이언트 배포에 대해 이해

by 랜덤다이스 2023. 2. 3.

클라이언트 배포란

 

배포 자동화

한번의 클릭 또는 명령어 입력해 전체 배포 과정을 자동으로 진행

 

왜 필요한가?

1.시간 절약

2.휴먼 에러방지

 

DevOps특징

개발에서 운영까지 하나의 통합된 프로세서로 묶음.

툴과 시스템을 표준화하여 의사소통 효율성 확보.

일련의 작업들을 자동화함.

즉 코드통합, 테스트, 배포 과정을 자동화시킴.

 

CI/CD 란

CI/CD 파이프라인

파이프라인 3단계

  1. Source 단계: Source 단계에서는 원격 저장소에 관리되고 있는 소스 코드에 변경 사항이 일어날 경우, 이를 감지하고 다음 단계로 전달하는 작업을 수행합니다.
  2. Build 단계: Build 단계에서는 Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공합니다. 또한 Build 단계를 거쳐 생성된 결과물을 다음 단계로 전달하는 작업을 수행합니다.
  3. Deploy 단계: Deploy 단계에서는 Build 단계로부터 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행합니다.

CI/CD 파이프라인 구성 요소 및 장점

  • 빌드 (소프트웨어 컴파일)
  • 테스트 (호환성 및 오류 검사)
  • 릴리스 (버전 제어 저장소의 애플리케이션 업데이트)
  • 배포 (개발에서 프로덕션 환경으로의 변환)
  • 규정 준수 및 유효성 검사

지속적 통합 및 배포를 말함.

잘 구축된 CI/CD는 애플리케이션 배포 시간을 크게 단축시킴.

지속적 통합(Continuous Integration, CI)

개발자를 위한 자동화 프로세스라고 볼 수 있으며, Code - Build - Test 단계에서 꾀할 수 있습니다.

  • Code : 개발자가 코드를 원격 코드 저장소 (Ex. github repository)에 push하는 단계입니다.
  • Build : 원격 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드하는 단계입니다.
  • Test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는 지 확인하는 과정입니다.

지속적 배포(Continuous Delivery/Deployment, CD)

지속적인 서비스 제공(Continuous Delivery) 및 지속적인 배포(Continuous Deployment)를 의미하며 이 두 용어는 상호 교환적으로 사용됩니다. 이 부분은 Release - Deploy - Operate 단계에서 꾀할 수 있습니다.

  • Release : 배포 가능한 소프트웨어 패키지를 작성합니다.
  • Deploy : 프로비저닝을 실행하고 서비스를 사용자에게 노출합니다. 실질적인 배포 부분입니다.
  • Operate : 서비스 현황을 파악하고 생길 수 있는 문제를 감지합니다.

지속적 배포 사례

Github Page

지정해둔 디렉터리에 정해진 방식에 따라 잘 커밋하기만 하면, Github Page가 알아서 해당 index.html 파일과 해당 디렉터리에 있는 파일을 잘 번들링해서 Github Page 서버에 업로드합니다. 이렇게 자동으로 인터넷에 배포가 되었고, 주변 가족이나 친구들에게 쉽게 만든 결과물을 공유할 수 있었습니다.

github action으로 클라이언트 CI/CD를 구축한 배포 링크

http://fe-64-holyyoon-s3.s3-website.ap-northeast-2.amazonaws.com/

 

React App

 

fe-64-holyyoon-s3.s3-website.ap-northeast-2.amazonaws.com