-
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
'블로깅 과제' 카테고리의 다른 글
Proxy (0) 2023.02.06 Light house 사용해보기 (5) 2023.02.01 Webpack (0) 2023.01.18 웹 표준 & 접근성 (0) 2023.01.03 Redux (0) 2022.12.28