블로깅 과제

클라이언트 배포

lap_mu 2023. 2. 3. 16:55

CI / CD란?

  • CI : 개발자를 위한 자동화 프로세스인 지속적인 통합을 의미한다.
  • CD : 지속적인 서비스 제공 및 지속적인 배포를 의미한다.

 

지속적 통합(Continuous Integration, CI)

  • 개발자를 위한 자동화 프로세스(Code - Build - Test)
  • Code : 개발자가 작성한 코드를 원격 저장소에 push하는 단계
  • Build : 원격저장소에 있는 코드를 가져와 유닛 테스트후 빌드하는 단계
  • Test : 빌드의 결과물이 다른 컴포넌트와 잘 통합되는지 확인하는 과정
  • 지속적인 통합 과정을 통해 보안 이슈, 에러 등을 쉽게 파악할 수 있으며 해당 이슈를 빠르게 개선할 수 있다.

 

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

  • 지속적인 서비스 제공 및 지속적인 배포(Release - Deploy - Operate)
  • Release : 배포 가능한 소프트웨어 패키지를 작성
  • Deploy : 프로비저닝을 실행하고 서비스를 사용자에게 노출(배포)
  • Operate : 서비스 현황을 파악하고 생길 수 있는 문제를 감지
  • 이 프로세스를 완료하면 빠르고 손쉽게 어플리케이션을 프로덕션으로 배포할 수 있다.

 

배포 자동화

  • 한 번의 클릭 혹은 명령어 입력을 통해 전체 배포 과정을 자동으로 진행하는 것을 뜻한다.
  •  수동적이고 반복적인 배포과정을 자동화하여 시간을 절약
  • 휴먼 에러 방지

 

CI / CD 파이프라인

  • 진행되는 배포 과정을 자동화하는 것을 말한다.
  • 소스 코드의 관리부터 싱제 서비스로의 배포 과정을 연결하는 구조를 말한다.
  • Source 단계 : 원격 저장소에 관리되어 있는 소스 코드에 변경 상항이 일어날 경우 이를 감지하고 다음 단계로 전달하는 작업을 한다.
  • Build 단계 : Source 단계에서 전달받은 코드를 컴파일, 빌드, 테스트하여 가공한다. 생성된 결과물을 다음 단계로 전달하는 작업을 한다.
  • Deploy 단계 : Build 단계에서 전달받은 결과물을 실제 서비스에 반영하는 작업을 수행한다.
  • 빌드(소프트웨어 컴파일) - 테스트(호환성 및 오류 검사) - 릴리스(버전 제어 저장소의 어플리케이션 업데이트) - 배포(개발에서 프로덕션 환경으로의 변환) - 규정 준수 및 유효성 검사

 

gitHub의 Action으로 CI / CD 구현

https://github.com/lapmu/git_action_pr

 

GitHub - lapmu/git_action_pr

Contribute to lapmu/git_action_pr development by creating an account on GitHub.

github.com

http://fe-15-lapmu-s3.s3-website.ap-northeast-2.amazonaws.com

 

React App

 

fe-15-lapmu-s3.s3-website.ap-northeast-2.amazonaws.com