AI 코딩이 부른 CI 병목 현상, Linear의 파이프라인 전면 개편 분석

ARCH-B

ARCH-B

Linear 기반 · 2026년 10월 7일 · 6분 분량

0

한눈에 보는 핵심요약

AI 코딩 에이전트 도입으로 코드 생성 속도가 급증하면서 CI 파이프라인이 개발의 새 병목으로 떠올랐습니다. 협업 도구 개발사 Linear는 인프라 현대화, 게이트 최소화, 반복 셋업 단축, 테스트 격리 완화 등을 통해 테스트 스위트가 4배 증가한 환경에서도 대기 시간을 줄이고 테스트당 러너 소요 시간을 절반으로 감축했습니다.

  • AI 에이전트 도입으로 테스트 스위트가 4배 급증하자, Linear는 CI 파이프라인을 전면 개편해 PR 대기 시간을 5분 초반으로 단축하고 러너 시간을 절반으로 줄였습니다.
  • Go 기반 컴파일러 tsgo 도입으로 타입 검사 시간을 73% 단축하고, AST 기반 린트 전환으로 대용량 타입 그래프 생성을 배제했습니다.
  • 샤드당 셋업 비용을 40초 수준으로 줄이고, Vitest의 선택적 모듈 격리 해제와 파일 분할을 통해 테스트 실행 효율을 대폭 끌어올렸습니다.
  • 이번 결과는 Linear 내부 모노레포 기반의 자체 측정 수치이며, 모듈 격리 해제는 테스트 신뢰성 저하 위험이 있어 엄격한 관리가 필요합니다.
AI 코딩이 부른 CI 병목 현상, Linear의 파이프라인 전면 개편 분석
이미지 제공: Linear · 원출처 기사

AI 코딩 에이전트의 확산과 CI 인프라의 위기

소프트웨어 도구 개발사 Linear는 2026년 9월 엔지니어링 블로그를 통해 AI 코딩 에이전트 확산으로 인해 발생한 지속적 통합(CI) 병목 현상을 해결한 파이프라인 개편 사례를 공개했습니다. Linear의 CTO 투오마스(Tuomas)는 CI 비용 급증과 대기 시간 문제를 핵심 개선 과제로 지정했습니다. AI 에이전트 도입으로 신규 기능 개발 및 코드 배포 속도는 지수적으로 빨라졌지만, 매 풀 리퀘스트(PR)를 검증해야 하는 CI 환경은 이를 따라잡지 못해 개발자와 AI 에이전트가 테스트 결과를 기다리는 시간이 길어졌기 때문입니다.

Linear 발표에 따르면 2026년 1월 대비 전체 테스트 스위트 규모는 약 4배(quadrupled)로 확대되었으며, 매주 약 2,000개의 신규 테스트가 추가되는 상황이었습니다. 파이프라인 개선 조치가 없었을 경우 PR당 CI 대기 시간은 약 11분까지 치솟을 것으로 추산되었으나, 네 가지 영역에 걸친 최적화를 통해 PR 대기 시간을 6분 이상에서 5분 초반으로 단축하고 테스트당 러너 소요 시간을 약 절반으로 줄였다고 팀은 밝혔습니다.

툴체인 현대화: 네이티브 컴파일러와 AST 기반 린트 전환

Linear는 코드베이스 최적화에 앞서 하드웨어와 도구 체계를 우선 교체했습니다. 기존 GitHub Actions 기본 러너에서 더 빠른 CPU, 고성능 스토리지, 캐시 인프라를 지원하는 외부 서드파티 러너로 워크로드를 전환했습니다. 파이프라인 구성을 바꾸지 않고 러너를 교체한 것만으로도 작업 실행 시간이 평균 34% 단축되었으며, TypeScript 컴파일러(tsc) 작업은 52% 줄어들었습니다.

또한 언어 도구 체인을 적극적으로 현대화했습니다. Go 언어로 재작성된 마이크로소프트의 네이티브 TypeScript 컴파일러 프리뷰인 'tsgo'(@typescript/native-preview)를 적용한 결과, 주간 중앙값 기준 타입 체크 소요 시간이 73% 감소했습니다. 린트 단계에서는 TypeScript 타입 정보에 의존하던 커스텀 규칙들을 추상 구문 트리(AST) 정적 분석 방식으로 전면 재작성했습니다. 이를 통해 무거운 타입 그래프 생성을 배제하여 API 린트 시간을 68%, 전체 저장소 린트 시간을 55% 줄였으며, 이후 Rust 기반 고속 린터인 Oxlint 도입 기반도 마련했습니다.

선행 게이트 단축과 반복 셋업 제거

Linear 엔지니어링 팀은 CI 병목의 상당 부분이 실제 테스트 코드 실행이 아닌 환경 체크아웃과 의존성 준비 작업에 있다는 점에 주목했습니다. 변경 감지(Change-detection) 게이트 작업에서 소스 트리 전체를 다운로드하지 않도록 fetch depth를 제한하고, 파일 트리가 불필요한 작업에서는 체크아웃을 완전히 제거했습니다. 이를 통해 가장 느렸던 게이트 단계 소요 시간을 94초에서 20초로 줄였으며, 커밋 푸시 및 머지 큐 이벤트에는 sparse·blobless 체크아웃을 적용해 추가 시간을 절감했습니다.

샤드마다 반복되던 셋업 오버헤드도 대폭 정리했습니다. CI 베이스 이미지에 Node, Postgres 클라이언트, 네이티브 빌드 헤더를 사전 탑재해 매번 패키지를 설치하던 7~8초의 지연을 없앴습니다. pnpm 워크스페이스에서는 전체 저장소 대신 필요한 패키지만 선별 설치(filtered install)하도록 구성했습니다. 반면 lockfile 변경 시 캐시 미스가 잦고 복원에만 28초가 걸리던 node_modules 복원 캐시는 역효과가 난다고 판단해 아예 제거했습니다. 이러한 조치로 샤드당 준비 시간은 110~140초에서 약 40초 수준으로 단축되었습니다.

테스트 실행 구조 개편: 샤딩과 선택적 모듈 격리 해제

샤드 셋업 비용이 40초대로 낮아지자, Linear는 API 테스트 샤드를 기존 4개에서 8개로 확대해 병렬 처리 효율을 높였습니다. Vitest가 테스트 실행 시간이 아닌 파일 단위로 샤드를 분배하는 특성을 고려하여, 병목의 원인이 되던 대형 테스트 파일들을 잘게 쪼개 워커 간 작업 불균형을 해소했습니다. 그 결과 최장 소요 샤드의 실행 시간은 5.25분에서 4.33분으로 단축되었습니다.

더 나아가 모듈 격리 해제(`isolate: false`)를 선별적으로 도입했습니다. 파일마다 엔티티와 GraphQL 스키마, 데코레이터를 새로 구축하는 대신, 단일 워커 내에서 모듈 레지스트리를 공유하도록 설정한 것입니다. 이 조치로 API 샤드 러너의 총 소요 시간은 회당 32.8분에서 22분으로 줄어들었으며, 단일 항목 기준 가장 큰 비용 절감(월 약 17%)을 기록했습니다. 상태 오염 위험을 방지하기 위해 안전성이 검증된 파일에만 주석 형태로 opt-in을 허용하고, AI 에이전트 생성 규칙에도 이를 반영했습니다.

ARCH.B 분석

실무 도입 시 고려해야 할 효과와 구조적 한계

Linear의 이번 개편은 AI 코딩 시대에 CI가 병목으로 작용할 때, 파이프라인 최적화의 초점을 '테스트 코드 자체'에서 '선행 게이트와 셋업 오버헤드'로 전환해야 함을 시사합니다. 특히 수 초 단위로 실행되는 자잘한 독립 검사들을 통합(Batching)하여 6월 한 달 동안 87,000 러너-분(전체 CI 사용량의 11.8%)을 절감한 방식은 다른 소프트웨어 조직에서도 즉시 검토할 만한 현실적인 접근법입니다.

다만 실무 적용 시 주의해야 할 구조적 제약과 한계도 분명합니다. 이번에 공개된 성과는 외부 제3자의 독립 검증이 아닌 Linear의 내부 TypeScript/pnpm 모노레포 환경에서 자체 측정한 결과입니다. 실제 클라우드 지출 비용의 절대 금액(달러 단위)은 공개되지 않았습니다. 또한 `tsgo` 컴파일러는 마이크로소프트의 프리뷰 빌드 특성에 의존하며, 테스트 모듈 격리 해제(`isolate: false`)는 전역 상태 오염이나 mock 누수로 인한 간헐적 테스트 실패(Flakiness) 위험을 수반하므로 철저한 코드 거버넌스 없이 무리하게 도입해서는 안 됩니다.

출처

Linear의 원출처와 본문에 표시한 참고자료를 바탕으로 한국어로 재구성했습니다. ‘ARCH.B 분석’은 자료를 읽고 덧붙인 편집 해석입니다.

AI coding has made CI a bottleneck, so we reworked ours to keep up (새 창)

Share

Related

함께 읽기 좋은 글