CI/CD

1c2·2024년 4월 2일
0

CS

목록 보기
5/19

CI/CD(연속 통합/배달 및 배포)

개발자가 코드를 작성한 후 해야 할 일은 코드를 계속해서 통합하고 배포하는 것이다. 이 과정을 CI/CD(연속 통합/배달 및 배포)라고 한다.

왜 필요한가?

여러 개발자가 함께 일하는 환경에서 코드를 통합하고 배포하는 일을 시스템 없이 수동으로 진행한다면 다음과 같은 문제가 발생할 수 있다.

  • "누가 dev 서버에 배포했어? 내 환경에서 갑자기 안 돼."
  • "이 함수 테스트 안 하고 배포했어? 해당 부분에서 에러 나는 것 같아."

이런 문제들을 수동으로 하나하나 해결하는 것은 비효율적이다. 따라서 CI/CD라는 개념이 도입되었고, 이를 쉽게 해주는 도구들이 등장했다.

파이프라인

코드 구축부터 시작해서 배포까지의 일련의 과정을 CI/CD 파이프라인이라고 한다. 이 파이프라인은 주로 세 가지 단계로 구성된다.

  1. 연속 통합: 코드를 빌드하고, 테스트하고, 합친다.
  2. 연속 배달: 해당 레포지토리에 릴리스한다.
  3. 연속 배포: 이를 프로덕션, 즉 실제 서비스에 배포한다.

파이프라인이 주는 장점은 코드 배포까지 좀 더 체계적으로 만들고 테스트가 강제된다는 점이다. 파이프라인 내부에 테스트가 있기 때문에, 테스트 없이는 코드 머지 자체가 안 되게 만들 수 있다.

CI/CD 파이프라인의 주요 단계

CI/CD(연속 통합/연속 배달 및 배포)는 코드의 통합부터 배포까지의 과정을 자동화하여 개발 과정을 효율화한다. 여기서 주요 단계들을 간략히 살펴보자.

빌드

  • Webpack: 모던 자바스크립트 애플리케이션을 위한 정적 모듈 번들러(Webpack 공식 사이트).
  • 예시: Vue.js는 Webpack을 사용하여 애플리케이션의 빌드 과정을 관리한다(Vue.js 공식 사이트).

테스트

  • 단위 테스트: 개별 함수나 메소드의 동작을 검증한다.
  • 통합 테스트: 여러 모듈이 함께 잘 작동하는지 확인한다.
  • 엔드투엔드 테스트: 사용자의 시나리오를 모방하여 애플리케이션의 흐름을 테스트한다.
  • Mocha: 자바스크립트를 위한 테스트 프레임워크로, 브라우저 및 Node.js에서 사용 가능하다(Mocha GitHub).

머지

  • Git: 코드의 통합(머지)를 위해 널리 사용되는 분산 버전 관리 시스템이다.
  • 충돌 해결: 충돌이 발생하면, 개발자들이 화면을 공유하며 충돌을 해결하는 것이 가장 좋다.

배포

  • 배포는 사용자를 위한 서비스 뿐만 아니라, QA 엔지니어, 관리자 페이지, 백엔드 개발자를 위한 내부 배포를 포함한다.
  • 도구: GitHub Actions, Jenkins, Circle CI가 유명하며, Heroku를 사용하면 CI/CD 설정 없이 배포가 가능하다.

이러한 CI/CD 파이프라인은 개발 과정을 자동화하여 더 빠르고, 더 신뢰할 수 있는 소프트웨어 배포를 가능하게 한다.

  • github action, genkins, circle ci가 유명하며 heroku를 통해 CI, CD 설정 없이 자동 가능
  • 참고로 heroku + github action 으로 설정도 가능

0개의 댓글