CI/CD 컴포넌트는 GitLab CI/CD 템플릿의 차세대로, 파이프라인 생성과 유지 관리를 개선합니다. 이는 입력 매개변수를 사용하여 맞춤화할 수 있는, 재사용 가능한 파이프라인 구성을 제공하죠.
최근 GitLab은 CI/CD 컴포넌트와 CI/CD 파이프라인을 구성하는 새로운 접근 방식을 도입했고요. 기존 CI/CD 템플릿을 CI/CD 컴포넌트로 리팩토링하도록 권합니다. 물론 GitLab은 CI/CD 템플릿을 계속 지원하는데요. CI/CD 컴포넌트를 도입해 이 템플릿의 여러 단점을 해결했습니다.
이 글에서는 CI/CD 컴포넌트 개념과 장점을 소개하고요. CI/CD 템플릿을 CI/CD 컴포넌트로 변환하는 방법과 고품질 컴포넌트 프로젝트를 만드는 모범 관행을 살펴보겠습니다.
CI/CD 컴포넌트란?

CI/CD 컴포넌트는 재사용 가능한 단일 파이프라인 구성 단위입니다. 이 기능은 GitLab Free, Premium, Ultimate 사용자라면 누구나 이용할 수 있고요. SaaS, 자체 관리형, Dedicated를 비롯한 모든 GitLab 서비스에 제공합니다. CI/CD 컴포넌트는 현재 베타 단계에 있습니다(2024년 5월 7일 기준).
이 기능을 사용하면 더 큰 파이프라인의 작은 부분을 만들거나, 전체 파이프라인 구성(configuration)을 구성(compose)할 수 있습니다. 아울러 컴포넌트는 동적인 동작을 위해 입력 매개변수를 사용해 구성할 수 있고요.
CI/CD 컴포넌트의 장점은 다음과 같습니다.
- 컴포넌트를 CI/CD 카탈로그에 게시할 수 있습니다.
- 컴포넌트를 특정 버전으로 릴리즈하고, 사용할 수 있습니다.
- 여러 컴포넌트를 동일한 프로젝트에 정의하고, 함께 버전을 관리할 수 있습니다.
한편, 사용자는 ‘CI/CD 카탈로그’에서 자기에게 필요한 기능이 있는, 공개된 컴포넌트를 검색해 이용할 수도 있습니다.
CI/CD 워크플로를 확장하는 데 사용할 수 있는, 공개된 CI/CD 컴포넌트가 있는 프로젝트 목록입니다. 누구나 컴포넌트 프로젝트를 만들어 CI/CD 카탈로그에 추가할 수 있고요. 기존 프로젝트에 기여해 컴포넌트를 개선할 수도 있습니다.
이 기능은 GitLab Free, Premium, Ultimate 사용자 누구나 이용할 수 있고요. SaaS, 자체 관리형, Dedicated를 포함한 모든 GitLab 서비스에 제공합니다. 현재 CI/CD 카탈로그는 베타 단계에 있습니다(2024년 5월 7일 기준). CI/CD 카탈로그 데모를 체험하려면 이 링크를 클 릭하세요.
템플릿을 컴포넌트로 변환하기
CI/CD 템플릿을 CI/CD 컴포넌트로 변환하는 방법을 순서대로 살펴보겠습니다.
- 컴포넌트 프로젝트가 없으면 이를 만들어 주세요.
- 기존 템플릿을 컴포넌트 프로젝트의 '템플릿' 디렉터리에 복사합니다.
- 템플릿에 나열된 job을 검토하고, ‘여러 컴포넌트에 이를 배포할지 아니면 동일한 컴포넌트 안에 일부 또는 전부를 유지할지’ 평가합니다. 단일 컴포넌트에 여러 job을 포함할 수도 있지만 최소한의 작업을 수행하는 컴포넌트를 만드는 게 좋습니다. 이 접근 방식은 재사용의 용이성과 유연성을 향상합니다.
spec키워드를 사용하여 구성 상단에 입력 매개변수와 메타 데이터의 새로운 섹션을 만듭니다.- 맞춤형 CI/CD 변수와 기타 하드코딩된 값을 입력으로 대체하여 사용 유연성을 극대화하세요. 스테이지, 이미지, job 이름/job 접두사 등과 같은 요소를 매개변수화하는 걸 고려해 보세요.
- 컴포넌트의 모범 관행을 따르세요.
- 예를 들어, Merge Request 파이프라인을 활성화하거나 이를 더 효율적으로 만들면서 구성을 개선하세요.
다음은 기존 템플릿에 있는 job의 코드 예시입니다.

아래는 리팩토링 된 컴포넌트 코드입니다.

컴포넌트가 준비되면 CI/CD 카탈로그에 이를 게시할 수 있습니다. 그러면 다른 사람들이 이 컴포넌트를 찾아 이용할 수 있습니다.
템플릿을 컴포넌트로 변환하는 방법을 더 자세히 알고 싶다면 GitLab CI/CD 컴포넌트 공식 기술 문서를 참조하세요.