CS (6) - CI/CD

gyungkyuBae·2023년 7월 26일
0

CI/CD

CI/CD란 Continuous Integration/Delivery & Deployment의 약자로,
개발자가 코드를 다 짰다면 그 코드를 합치고 배포하는 것을 CI/CD라고 합니다.

CI/CD 역할

개인이 아닌 많은 개발자가 한 프로젝트에서 시스템이나 규율 없이 코드를 합치고 배포를 한다면
테스트 되지않는 코드를 배포해서 에러가 뜬다거나 서로의 코드에 영향을 끼친다거나
많은 문제가 발생되겠죠?

이를 방지하기 위해 CI/CD의 개념이 생기게 되었고 이를 쉽게 해주는 툴이 생기게 되었습니다.

CI/CD 파이프라인

코드구축부터 배포까지의 모든 과정을 CI/CD 파이프라인이라고 합니다.
총 3가지 단계로 구성되는데요

continuous integaration -> continuous delivery -> continuous deployment

continuous integration : 코드를 빌드하고 테스트를 마친 후 합칩니다.
continuous delivery : 해당 레퍼지토리에 릴리스합니다.
continuous deployment : 실제 서비스에 배포합니다.

파이프라인의 장점은 코드배포까지 체계적인 시스템을 갖춘다는 것과 테스트가 강제되는 점이라고 할 수 있습니다

빌드

소스 코드 파일을 컴퓨터에서 실행할 수 있는 독립적인 형태로 변환하는 과정과 그 결과를 말합니다.

예를 들어 Java프로젝트를 진행한다면 개발자가 작성한 A.java와 여러가지 정적 파일등에 해당하는 resource가 존재합니다.

빌드를 한다면 소스코드를 컴파일해서 .class로 변환하고 resource를 .class에서 참조할 수 있는 적절한 위치로 옮기고 META-INF와 MANIFEST.MF 들을 하나로 압축하는 과정을 의미합니다.

컴파일은 빌드의 부분집합이라고 생각하시면 됩니다.

또한, 빌드 과정을 도와주는 도구를 Build Tool이라고 합니다.

대표적인 예로 webpack이 있습니다.
https://webpack.js.org/

테스트

테스트는 함수같은 작은 단위들을 테스트 하는 단위테스트, 모듈을 통합할 때 하는 통합테스트, 사용자입장에서 서비스를 사용한다고 생각하고 하는 엔드투엔드테스트가 있습니다.

테스트를 위한 대표적인 프레임워크로는 mocha가 있습니다.

배포

배포는 사용자가 사용하기 위한 서비스 배포 뿐만 아니라 관리자페이지,백엔드 개발자를 위한 페이지등 모든 배포를 포함합니다.

profile
개발자

0개의 댓글