
Claude Code를 사령탑으로 하는 자동화 파이프라인 구축 방법
요약
Claude Code를 사령탑으로 활용하여 AI의 판단과 코드의 실행을 분리하는 자동화 파이프라인 구축 방법을 소개합니다. AI에게는 결정권을 부여하되, 파일 저장이나 Git push 같은 위험한 작업은 검증된 스크립트가 수행하도록 설계하여 안정성을 높이는 것이 핵심입니다.
핵심 포인트
- 판단은 AI가, 실행은 확정적인 코드가 담당하는 역할 분담 구조
- 불가역적인 조작(push, 삭제 등)을 AI의 직접 명령에서 격리
- 스크립트에 가드(Guard)를 설치하여 예외 상황 방지
- 초안 모드를 활용하여 자동화와 인간의 최종 검토 결합

계기: 「전부 AI에게 맡기기」는 실패한다
개인 개발에서 「콘텐츠 생성부터 공개까지 자동화하고 싶다」고 생각했을 때, 가장 먼저 떠올리는 안은 「LLM (대규모 언어 모델)에게 전부 시키는 것」입니다. 프롬프트를 하나 던지면 문장이 만들어지고, 알아서 공개된다——이상적으로 들립니다.
하지만 실제로 해보면 여기서 무너집니다. LLM은 문장 생성은 잘하지만, 「git에 push 하기」, 「파일을 올바른 경로에 저장하기」, 「로그를 한 줄 추가하기」와 같은 확정적 (정해진 절차대로 반드시 같은 결과가 나오는 것) 처리를 맡기면, 가끔 절차를 건너뛰거나 경로를 틀리기도 합니다. 불가역적인 조작 (공개·전송·삭제)에서 이런 일이 발생하면 되돌릴 수 없습니다.
그래서 역할을 나누었습니다. 판단은 AI, 실행은 일반적인 코드. 이 기사에서는 그 「사령탑 (Orchestrator)」 패턴을 실체험 기반으로 소개합니다.
역할 분담: AI는 「결정」하고, 코드는 「수행」한다
제가 구성한 구조는 심플합니다.
AI (사령탑): 무엇을 쓸지 결정 / 기존 기사와 겹치지 않는 관점을 선택 / 본문을 생성 / 어떤 슬러그 (기사 URL의 끝부분이 되는 문자열)로 저장할지 결정 -
스크립트 (실행역): 파일 저장·git commit·push·로그 추가와 같이 실패가 허용되지 않는 확정적 처리
포인트는, 불가역적인 조작을 AI의 손에서 떼어내는 것입니다. push와 같은 조작은 AI가 직접 명령어를 입력하는 것이 아니라, 전용 스크립트를 통해서만 실행할 수 있도록 합니다. 이렇게 하면 AI가 폭주하더라도 스크립트의 가드 (전제 조건 체크)가 이를 막아줍니다.
사령탑은 무엇이든 상관없습니다. 저는 로컬에서 실행할 수 있는 Claude Code를 사용하고 있지만, 생각의 핵심은 「AI에게 판단하게 하고, 위험한 실행은 코드에 가두는 것」이라는 한 점으로 귀결됩니다.
실례: 공개 스크립트에 「가드」를 심기
실제로 사용 중인 공개 스크립트의 핵심 부분입니다 (Zenn과 GitHub를 연동하면, 리포지토리에 push 하는 것만으로 기사를 공개할 수 있습니다). 대상 파일이 존재하고 변경 사항이 있을 때만 push 합니다.
// 지정된 슬러그의 기사만 커밋하여 push 한다
export function publish({ slug, message }) {
const cwd = process.env.ZENN_REPO; // 기사 리포지토리의 로컬 경로
...
3가지 가드가 작동하고 있어, 전제가 무너져 있으면 push 하기 전에 반드시 예외(Exception)로 멈춥니다. AI에게는 「이 스크립트를 호출해라」라고만 지시하면 될 뿐, git의 세세한 조작을 AI에게 맡길 필요가 없습니다.
「초안으로 내보내기」를 기본값으로 설정하기
공개 계열 자동화에서 가장 무서운 것은 「갑작스러운 실전 공개」입니다. Zenn의 GitHub 연동에서는 프런트매터 (Front Matter, 기사 상단 설정란)의 published를 false로 설정해 두면 초안 취급이 됩니다. GitHub에 푸시해도 공개되지 않으며, 직접 리뷰한 뒤에 true로 바꾸는 운용이 가능합니다.
title: "기사 제목"
emoji: "🪄"
...
자동화는 「마지막 한 걸음 (공개)만 인간이 누른다」는 설계로 만들면 안심하고 돌릴 수 있습니다. push 자체는 자동, 공개 판단만 수동이라는 선긋기입니다.
시도하며 알게 된 점
AI에게 불가역 조작을 직접 시키지 않는다. push·전송·삭제는 가드가 있는 스크립트를 통해서만 제한한다 -
실패하면 멈추고 로그를 남긴다. 「일단 계속 진행」보다는 「원인을 남기고 정지」하는 편이 나중에 수정하기 쉽다 -
published: false를 초기값으로. 자동이라 하더라도 공개의 최종 판단은 사람이 가진다 -
참고로, Zenn 측이 푸시를 감지하여 배포하기까지 소요되는 시간은 환경에 따라 다르므로, 여기서는 「수 분 정도」라고만 적어둡니다 (단정하지 않습니다).
요약
「AI에게 전부 시키는 것」이 아니라, 판단은 AI, 실행은 확정적인 코드로 나누는 것이 자동화 파이프라인을 안전하게 돌리는 비결이었습니다. AI를 사령탑으로 삼고, 위험한 조작은 가드가 있는 스크립트에 가둔다. 이 역할 분담을 하고 나서 자동화는 「무서운 것」이 아니라 「맡길 수 있는 것」이 되었습니다. 개인 개발에서 공개 계열 자동화를 시작할 때, 첫걸음으로서 참고가 된다면 기쁘겠습니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기