Cloudflare가 AI를 활용해 엔지니어링 표준을 시행하는 방법 (새 탭에서 열림)
Cloudflare는 흩어져 있던 엔지니어링 지침을 통합·관리하는 표준 저장소인 Cloudflare Codex를 구축했다. Codex는 RFC 형식의 표준을 사람과 AI 에이전트가 작업 시점에 검색하고 적용할 수 있게 하며, 코드 리뷰·기술 설계 검토·사고 보고서 검토 등에 공통으로 활용된다. 도입 후 AI 코드 리뷰어는 약 23만 건의 위반을 발견했고, 그중 약 1만 6천 건의 병합을 차단했다.
Codex가 필요했던 이유
- Cloudflare의 기존 지침은 공식 문서, 저장소 파일, 채팅 기록, 개인의 경험 등 여러 위치에 분산돼 있었다.
- 개발자는 문제 해결보다 관련 지침을 찾는 데 많은 시간을 써야 했다.
- 지침을 찾더라도 최신 정보인지, 권위 있는 기준인지, 현재 상황에 적용 가능한지 판단하기 어려웠다.
- 조직이 커지면서 모든 표준을 읽고 모든 요구사항을 검토하는 것이 불가능해졌다.
- 팀 이동이나 인력 변화로 조직의 지식이 유실되기 쉬웠고, 지침이 일관되게 노출·강제되지 않아 프로젝트 간 품질 편차가 발생했다.
도메인과 RFC 기반 거버넌스
- Codex는 아키텍처, 프런트엔드, 컨트롤 플레인, 보안, 신뢰성, TypeScript, Rust 등 여러 도메인으로 나뉜다.
- 각 도메인에는 담당자가 있어 문서의 내용·일관성·품질을 관리한다.
- 표준은 RFC 2119의 의미에 따라
SHOULD와MUST키워드를 사용한다.SHOULD: 특별한 이유가 없다면 따라야 하는 권고MUST: 반드시 지켜야 하는 필수 요구사항
- RFC에는 도메인과 상태 같은 메타데이터를 담은 front matter가 포함된다.
- 도메인 역량과 관심이 있는 직원은 정해진 형식의 merge request로 RFC를 제안할 수 있다.
- 제안서는 점점 더 넓은 범위의 리뷰를 거치며, 도메인 담당자가 최종 승인하면 Codex에 편입되고 Astro 기반 내부 사이트에 게시된다.
승인과 강제를 분리한 표준 수명주기
- 승인된 RFC는 Codex 클라이언트와 에이전트가 즉시 읽고 코드·설정·문서의 위반을 탐지하는 데 사용할 수 있다.
- 다만 승인 직후부터 병합을 차단하지는 않는다.
- RFC가
approved에서enforced상태로 승격된 뒤에야 관련 요구사항이 차단 근거가 된다. - 이 단계 분리를 통해 팀이 새로운 요구사항을 받아들일 시간을 확보하고, 자동화나 예외 처리 등 강제에 필요한 준비도 마칠 수 있다.
- 승인된 RFC의 위반은 일반적으로 비차단 권고로 처리되며, 강제 상태 RFC의
MUST위반은 심각도에 따라 승인 보류 또는 병합 차단으로 이어진다.
LLM을 위한 구조화와 점진적 공개
- 60개가 넘는 RFC 전체를 매번 LLM에 제공하면 컨텍스트 윈도우 부담이 커지고 결과 품질이 떨어질 수 있다.
- 이를 해결하기 위해 별도의 에이전트가 RFC에서
SHOULD와MUST문장을 추출해 JSON 구조로 압축한다. - 각 표준 문장에는 다음 정보가 포함된다.
- RFC 번호와 제목
- RFC 상태와 도메인
- 적용 수준(
SHOULD또는MUST) - 문장이 속한 섹션
- 원문으로 연결되는 링크
- 안정적인
slug식별자
- 에이전트는 우선 관련 표준 문장만 검색하고, 추가 설명이 필요할 때만 RFC 전체 내용을 불러온다.
- 안정적인 slug는 RFC가 수정돼도 같은 요구사항을 추적할 수 있게 해 모니터링, 분석, 예외 처리에 활용된다.
- 초기에는 간결한 Markdown을 사용했지만, 더 정확한 필터링을 위해 구조화된 JSON으로 전환했다.
- 향후에는 설계·구현·런타임 등 소프트웨어 개발 생명주기 단계별 적용 범위도 메타데이터에 포함할 계획이다.
AI 코드 리뷰 적용
- AI 코드 리뷰어는 merge request를 여러 기준으로 검사하며 Codex 준수 여부도 평가한다.
- 리뷰마다 관련 RFC와 추출된 표준 문장을 검색하고, 필요한 경우에만 RFC 본문을 추가로 읽는다.
- 대부분의 위반은 압축된 표준 문장만으로도 문제와 근거를 설명할 수 있다.
- Codex 도입 이후 약 23만 건의 위반을 발견했다.
- 이 중 약 1만 6천 건은 강제 상태 RFC의
MUST요구사항 위반으로 승인 보류를 발생시켰다.
AI 리뷰를 보완하는 빠른 린터
- AI 리뷰는 코디네이터와 여러 하위 에이전트를 실행하므로 보통 수 분이 걸린다.
- 수정 후 다시 리뷰를 받아야 하는 추가 왕복과 대기 시간이 개발자 경험을 저하시킬 수 있다.
- Cloudflare는 기계적으로 검증 가능한 언어별 요구사항을 별도 린터 설정 패키지로 제공하는 방식을 마련했다.
- 이 린터는 Codex 표준과 정렬되며 문제를 밀리초 단위로 표시할 수 있다.
- TypeScript가 첫 번째 대상 언어였고, 동시에
oxlint를 표준화하는 방향으로 진행됐다.
여러 엔지니어링 단계로의 확장
- Codex는 코드 리뷰에만 한정되지 않는다.
- 기술 설계가 구현되기 전에 표준을 검토하는 spec reviewer가 이미 약 600개의 설계를 평가했다.
- incident report reviewer 등 사고 분석과 운영 프로세스에도 같은 기준을 적용할 수 있다.
- 하나의 관리된 표준 원천을 여러 에이전트가 공유함으로써 설계부터 구현, 운영까지 일관된 엔지니어링 기준을 적용할 수 있다.
새로운 표준은 먼저 approved 상태로 도입해 팀의 적응과 자동화 준비 시간을 확보한 뒤, 충분히 검증되면 enforced로 승격하는 방식이 실용적이다. 또한 LLM에는 전체 문서를 무작정 제공하기보다, 안정적인 식별자와 메타데이터를 갖춘 핵심 규칙을 먼저 검색하게 하고 필요할 때만 원문을 공개하는 구조가 효과적이다.