피드로 돌아가기
What We Actually Ship With MissionControl
Dev.toDev.to
Backend

What We Actually Ship With MissionControl

MissionControl이 Telegram 인터페이스와 60줄의 검증·폴백 로직으로 AI 에이전트 기반 코드 생성을 4개 완성된 PR 배포 및 $12.49 비용으로 실현

Beni2026년 3월 26일8intermediate

Context

AI 에이전트가 자동으로 코드를 작성하고 PR을 열도록 하려면 단순한 명령 실행을 넘어 예산 초과, 타임아웃, 고아 프로세스, 미커밋 작업, 스테일 세션 등 예상 불가능한 장애에 대비해야 한다. 초기 배포 후 Task #19에서 $5.84를 소비하고도 아무 결과물을 산출하지 못하는 사건이 발생했고, 이는 예산 검증만으로는 불충분함을 증명했다.

Technical Solution

  • Telegram 메시징 인터페이스 도입: 웹 대시보드 제거, 모든 상호작용을 채팅 기반으로 제한하여 휴대폰에서 작업 전송 가능
  • Ports and Adapters 패턴으로 아키텍처 분리: MessagingPort(Telegram), WorkerPort(Claude CLI), VCSPort(GitHub) 세 경계를 독립적으로 구성하여 레이어 교체 가능
  • 다층 안전 장치 구현: 전역 $50/일 + 작업당 $5(최대 $10) 예산 상한, 30분 소프트 타임아웃(SIGTERM) + 5분 유예 후 SIGKILL, 60초 별도 킬 타이머
  • 커밋 기반 검증: git rev-list --count main..HEAD 실행하여 0개면 작업 실패 판정, 에이전트 자체 평가는 무시
  • 언커밋 작업 자동 구조: git status --porcelain으로 더티 상태 감지 후 git add -A && git commit -m 'WIP: auto-rescue' 실행
  • 프로세스 격리: 매 CLI 스폰마다 --no-session-persistence 플래그 적용, 스테일 컨텍스트 차단
  • 강제 체크아웃 폴백: 일반 체크아웃 실패 시 강제 체크아웃으로 더티 워킹 트리가 다음 작업을 데드락하지 않도록 보호
  • 고아 프로세스 정리: PM2 재시작 시 running 상태 작업을 queued로 리셋하여 큐 전체 프리징 방지

Impact

48시간 동안 20개 작업 처리: 4개 완성(20% 초기 완성율 → 버그 수정 후 신규 작업 약 50%), 13개 실패, 2개 취소, 1개 실행 중. 총 지출 $12.49, 완성된 작업 평균 비용 $2.95. 가장 비용이 많이 든 작업은 $5.84(Task #19, 무산), 가장 저렴한 성공은 $1.49(Task #5, 티어 강제). 완성된 4개 작업 중 하나는 Next.js + PostgreSQL + 데이터 시각화 + 인증을 포함한 풀스택 피트니스 대시보드로 $2.00 비용.

Key Takeaway

"AI 에이전트 데모"와 "실제로 코드를 배포하는 AI 에이전트"의 차이는 예산 검증, 타임아웃 처리, 커밋 검증, 고아 정리, 세션 격리 등 60줄 검증 로직에 있다. 포트-어댑터 패턴으로 핵심 로직(TaskRunner, TaskService, BudgetService)을 외부 도구(Telegram, Claude, GitHub)와 분리하면 레이어 교체 시 시스템 다른 부분에 영향 없이 구현 변경 가능하다.


AI 에이전트를 자동화 작업에 활용하는 팀은 예산 상한(작업당 달러 단위)과 강제 타임아웃(소프트 + 유예 + 킬 타이머 3단계), 출력 기반 검증(에이전트 자평가 무시), 고아 프로세스 정리, 미커밋 작업 자동 저장 등 6가지 안전 장치를 필수로 구현해야 프로덕션에서 예측 불가능한 비용 초과와 큐 데드락을 방지할 수 있다.

원문 읽기