피드로 돌아가기
Dev.toDevOps
원문 읽기
YAML 설정 기반 CI를 제거하고 Typed Code 기반의 Workflow 플랫폼으로 전환
What if your CI was just code? Workflows, a typed platform, and a model one function away
AI 요약
Context
기존 CI 시스템은 YAML 기반 설정 파일에 의존하여 제어 흐름 구현 시 문자열 보간법과 같은 제한적 방식만 가능했던 구조. push 후 실행 결과가 나와야 오타를 확인하는 느린 피드백 루프와 코드 재사용 불가로 인한 중복 설정 문제가 고질적인 병목 지점으로 작용.
Technical Solution
- TypeScript, Python, Go 등 실제 프로그래밍 언어를 통한 Workflow 정의로 Type-checking 및 IDE의 자동 완성 기능을 활용한 정적 분석 환경 구축
- YAML의 Matrix 구문을 일반적인 for loop로, Conditional step을 표준 if 문으로 대체하여 기존 소프트웨어 개발 패러다임과 일치시킨 설계
- Promise.all과 같은 언어 기본 비동기 제어 흐름을 적용하여 복잡한 병렬 빌드 및 테스트 샤딩 로직을 효율적으로 구현
- 플랫폼 기능을 표준 라이브러리화한 Context Object(
ctx)를 제공하여 외부 Marketplace Action이나 REST API 호출 없이 Typed Method로 플랫폼 리소스 제어 - 로컬 런타임(
plain ci run)을 통해 서버 push 없이 작업 트리에서 즉시 실행 및 디버깅이 가능한 Local-first 피드백 루프 구축
실천 포인트
1. CI/CD 파이프라인 내 반복되는 로직이 3회 이상 발생 시 함수 단위로 추출 가능한 구조인지 검토
2. 런타임 에러가 아닌 컴파일 타임/정적 분석 단계에서 파이프라인 오류를 잡을 수 있는 Type-safe 환경 고려
3. 외부 플러그인 의존성을 줄이고 플랫폼 API를 직접 호출하는 SDK 형태의 통합 방식 검토
4. 서버 배포 전 로컬 환경에서 파이프라인의 동작을 100% 재현할 수 있는 로컬 실행 도구 확보