피드로 돌아가기
The AI didn't break our backend. It just stopped lying for us.
Dev.toDev.to
Backend

Schema-honest AI 에이전트를 통한 백엔드 잠재 버그 및 상태 가드 부재 발견

The AI didn't break our backend. It just stopped lying for us.

Jesus moo2026년 4월 24일3intermediate

Context

사용자 자연어 입력을 MCP 기반으로 처리하여 작업을 생성하는 AI 에이전트 도입 과정에서 발생한 시스템 결함 분석. UI 기반 클라이언트는 관습적으로 특정 필드를 누락하여 백엔드의 상태 검증 누락 문제를 은폐해온 구조적 한계 존재.

Technical Solution

  • UI와 AI 에이전트 간 API Request Payload Diff 분석을 통한 원인 파악
  • Schema-honest하게 전달된 dispatch: { primary: true, secondary: true } 필드가 우선순위 큐의 즉시 실행 트리거로 작동함을 식별
  • Draft 상태의 작업이 실행되지 않아야 한다는 비즈니스 로직이 Client-side 컨벤션에만 의존하던 설계 결함 발견
  • Queue Handler 내에 if (status === 'draft') return; 조건문을 추가하여 서버 사이드 State Guard 구현
  • Client의 입력 값과 무관하게 Backend에서 상태 전이를 강제하는 서버 중심 검증 구조로 전환

1. Frontend가 보내지 않는 필드를 Backend가 기본값으로 처리하며 안전하다고 가정하고 있지는 않은지 검토

2. API Schema에 정의된 모든 필드가 유효하게 들어왔을 때 발생할 수 있는 Edge Case 테스트 수행

3. 비즈니스 핵심 상태 전이(State Transition) 로직이 Client-side 가이드가 아닌 Server-side Handler에 구현되어 있는지 확인

원문 읽기