SpecSync 구축: 맞춤형 MCP 도구를 사용해 Kiro를 확장한 방법

발행: (2025년 12월 6일 오전 02:00 GMT+9)
5 min read
원문: Dev.to

Source: Dev.to

문제: 코드, 테스트, 문서, 그리고 사양 간의 드리프트

상상을 해보세요: 새벽 2시. 프로덕션이 다운되었습니다. 프론트엔드가 GET /users/{id}/posts 를 호출하고 있습니다. 백엔드는 3주 전에 해당 엔드포인트를 제거했죠. 테스트는? 모두 초록색. 문서는? 아직도 엔드포인트가 존재한다고 표시하고 있습니다.

누군가가 코드를 업데이트했지만 테스트 업데이트를 잊었고, 문서 업데이트는 확실히 빼먹었습니다. 사양은? 몇 달째 아무도 보지 않았습니다. 이 드리프트—코드, 테스트, 문서, 사양이 서로 낯선 존재가 되어 가는 현상—은 개발 속도를 죽입니다.

SpecSync란?

SpecSync는 스테로이드가 달린 프리‑커밋 훅으로, 커밋이 발생하기 전에 모든 것이 동기화되어 있는지를 검증합니다. Git 커밋은 거짓말을 할 수 없습니다.

SpecSync 작동 방식

새로운 엔드포인트 추가

git add backend/handlers/user.py
git commit -m "Add user posts endpoint."

SpecSync가 커밋을 차단합니다:

❌ Hold up. You added an endpoint, but:
   - No spec for it
   - No tests for it
   - No docs for it

Fix these and try again.

누락된 사양, 테스트, 문서를 모두 추가하면 커밋이 성공합니다. Git 히스토리에 거짓이 없습니다.

마이크로서비스 문제

백엔드 팀이 파괴적인 변경을 배포하면 프론트엔드가 아직 오래된 엔드포인트를 호출할 수 있습니다. SpecSync Bridge가 이를 조기에 잡아냅니다.

Backend:

specsync-bridge extract   # Extracts API contract
git push                  # Shares it

Frontend (매시간 자동‑동기화):

specsync-bridge validate

프론트엔드가 최신이 아닐 때 출력:

❌ You're calling GET /users/{id}/posts
   Backend removed it last week.

프로덕션이 아니라 개발 단계에서 불일치를 발견하게 됩니다.

주요 기능

1. 한 번의 명령어 설정

specsync-bridge setup

명령어가 환경을 자동 감지하고 몇 가지 질문을 한 뒤 완료합니다—YAML 지옥 없이.

2. 자동 동기화

specsync-bridge auto-sync --enable

계약이 매시간 백그라운드에서 조용히 동기화됩니다. 문제가 발생했을 때만 알림을 받습니다.

3. Git 기반, 별도 인프라 필요 없음

specsync-bridge add-dependency backend \
  --git-url https://github.com/org/backend.git

Kafka, 서비스 메시, 데이터베이스는 필요 없습니다—Git만 있으면 됩니다.

실제 결과

다섯 개 서비스로 구성된 마이크로서비스 프로젝트에 SpecSync를 적용해 보았습니다:

  • Week 1: 존재하는지 몰랐던 드리프트 이슈 23건을 감지했습니다.
  • Week 2: 스테이징에 도달하기 전에 파괴적인 변경 3건을 차단했습니다.
  • Week 3: 새 개발자가 문서를 신뢰했는데, 실제로 정확했습니다.
  • Week 4: API 불일치로 인한 프로덕션 사고가 제로였습니다.

팀의 반응? “왜 이전에 이런 게 없었을까?”

빠른 시작 (2분 소요)

pip install specsync-bridge
specsync-bridge setup

몇 가지 질문에 답하면 바로 완료됩니다.

프로젝트는 오픈 소스입니다.

SpecSync의 모토

당신의 코드는 거짓말을 합니다. 당신의 문서는 거짓말을 합니다. 당신의 테스트는 거짓말을 합니다. 이들은 의도한 것이 아니라 시간이 지나면서 서로 멀어지기 때문입니다. SpecSync는 커밋 시점에 자동으로 진실을 말하도록 강제합니다—영원히. Git에 드리프트가 없으면 프로덕션에도 드리프트가 없습니다.

Back to Blog

관련 글

더 보기 »