현 상황
현재 대략적인 프로세스 구조 상에서 부분마다 필요한 기능을 구현하였고, 이를 오케스트레이션 구조로 만들어 도구에 각 프로세스를 연결 시켜주어야하기에 이번 주말에 팀원분들과 동시 개발 및 회의를 진행하기로 하였다.
Orchestration
-
Orchestration : 여러 개의 자동화된 작업(태스크), 시스템, 서비스들을 하나의 통합된 워크플로우로 조율하고 관리하는 것
-
도입 시 장점 :
1. 각 AI들의 순서/우선순위를 정해주어 원활한 작업진행이 가능 2. 일시정지 & 재개 기능 : 나중에 재개 시 그 지점부터 정확히 가능 3. 고가용성으로 장애 발생 시 복구 및 재시작이 용이 4. 루프 상한을 지정해두어 버그로 인한 지출을 최소화 가능 -
주의할 점 :
1. 모니터링 기능을 추가하여 프로세스 진행 과정이 보여야 디버깅이 용이 2. 인프라 운영비 및 비용적 측면이 큼
현재 다른 팀원분이 구현중이였던 Orchestration 구조를 잠시 인수인계 받아 검토 후 각각 담당한 기능들을 테스트 해보기로 하였다.
MCP 서버의 정의
MCP(Model Context Protocol) 는 “AI가 외부 도구를 쓰는 방법”을 표준화한 개방형 규약으로 이 규약을 지키면 외부 도구에도 연동이 쉽게 된다는 의미이다.
-
현재 구현된 서버에서는 MCP SDK를 이용해서 구현한 것이 아님
-
직접 http 통신을 하는것으로 확인되어 이를 MCP 통신 포맷에 맞춰 수정
-
Python MCP SDK 사용!
// JSON-RPC 2.0 통신 포맷
// 클라이언트 → 서버 (요청)
{"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {"name": "git_commit", "arguments": {"branch": "main", "message": "..."}}}
// 서버 → 클라이언트 (응답)
{"jsonrpc": "2.0", "id": 1,
"result": {"content": [{"type": "text", "text": "abc123"}], "isError": false}}
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async with streamablehttp_client("http://localhost:9005/mcp") as (read, write, get_session_id):
async with ClientSession(read, write) as session:
init = await session.initialize() # 악수 + 기능 협상
tools = await session.list_tools() # 서버가 가진 도구를 런타임에 발견
result = await session.call_tool(
"git_commit", {"branch": "main", "message": "[AutoGen] ..."}
)
if result.isError:
...
이렇게 MCP 서버를 도입해 양방향 소통으로 역방향 소통 및 취소/진행률 확인이 가능하게 되었다.
진행 프로세스 확인
현재 준 바이브코딩으로 진행되는 프로젝트 특성상 모든 파일/폴더를 보면서 구현을 하기보다 최대한 요약하여 핵심기능들 위주로 개념을 익히려 한다. 그렇게 분석된 Orchestration의 현재 통신흐름은 아래와 같다!
API와 에이전트의 도입
각 AI들 (기획 / 개발 / 검증)에 API Key들을 각각 쥐어주는 현재 구조에서 비용부담이 상대적으로 덜한 Claude Code를(Pro 구독제 사용중) Orchestration으로 앉힌 후 각 프로세스별 Skill화 후 서브 에이전트가 실행하도록 구조를 변경해보기로 하였다.
-
역할 경계가 붕괴되지 않도록 세심히 진행하여야 함
-
비정형 판단(AI의 역할)이 필요한 곳만 Claude Agent SDK를 이용해 진행
-
기존의 정형화된 프로세스는 코드로 실행하도록 제한
한줄 평
- 대부분 AI에게 해석, 요약을 맡긴 후 글을 읽어가며 현재의 구조 개선점들을 찾으려 노력했는데.. 확실히 나의 이해가 병목인 걸 느낀 하루였다.