메인 콘텐츠로 건너뛰기

Copilot vs Hub

아키텍처는 두 가지 통합 규모를 지원합니다: Copilot은 호스트 시스템의 UI에 내장됩니다. 사용자는 익숙한 인터페이스를 떠나지 않고 AI와 상호작용합니다. 여러 커넥터(호스트 DB + 알림 서비스 등)를 사용할 수 있습니다. Hub는 모든 시스템을 연결하는 독립형 포털입니다. 단일 시스템에 내장되지 않으며, 시스템과 AI가 만나는 중앙 인텔리전스 계층입니다. 동일한 커넥터 아키텍처, 다른 전달 방식입니다. Copilot은 Hub와 동일한 ConnectorToolAdapter를 사용합니다.

핵심 원칙

클라이언트는 코드를 변경하지 않습니다. FIM One은 그들의 시스템에 능동적으로 연결되어 데이터베이스를 읽고, API를 호출하며, 메시지 버스에 푸시합니다. 클라이언트는 자격 증명과 네트워크 접근만 제공하면 됩니다.

3계층 아키텍처

각 계층은 서로 다른 책임을 가집니다:
계층담당변경 시점
플랫폼오케스트레이션, 멀티테넌트, UI새로운 플랫폼 기능 출시
커넥터 거버넌스 레이어엔터프라이즈 거버넌스 정책보안/규정 준수 요구사항 변경
MCP Protocol전송, 도구 인터페이스 표준없음 (개방형 표준)
레거시 시스템비즈니스 데이터 및 로직없음 (그것이 핵심)

MCP를 전송 계층으로 사용하는 이유

어댑터는 MCP 서버로 구현됩니다. 이는 의도적인 아키텍처 선택입니다:
  • 재사용성: FIM One은 이미 MCP 클라이언트(v0.3)를 포함하고 있습니다. 레거시 시스템 어댑터를 추가하는 것은 MCP 도구를 추가하는 것과 동일한 인프라를 재사용합니다.
  • 표준 프로토콜: MCP는 개방형 표준입니다. 발명하거나 유지할 독점 프로토콜이 없습니다.
  • 에코시스템: 타사 MCP 서버(데이터베이스, API, SaaS 도구)가 즉시 작동합니다.
  • 프로세스 격리: 각 MCP 서버는 별도의 프로세스로 실행됩니다. 오작동하는 어댑터가 플랫폼을 중단시킬 수 없습니다.

MCP 단독으로 제공하지 않는 기능

커넥터 거버넌스 레이어는 원본 MCP가 부족한 엔터프라이즈 거버넌스를 추가합니다:
관심사MCP커넥터 거버넌스 레이어
읽기 전용 강제아니오작업에 read_only 플래그; 기본적으로 쓰기 차단
감사 로깅아니오모든 도구 호출 기록 (타임스탬프, 사용자, 도구, 매개변수, 결과)
인증 통과아니오호스트 시스템 인증 프록시; 에이전트가 로그인한 사용자를 대신하여 작동
확인 게이트아니오쓰기 작업에 인간 승인 필요 (SSE confirmation_required)
서킷 브레이커아니오연결 실패 시 우아한 성능 저하 트리거
작업 분류아니오작업을 읽기/쓰기/관리로 태그 지정하고 수준별 정책 적용

왜 커스텀 프로토콜을 만들지 않는가

프로토콜은 상용화된 기술입니다. 기술적 가치는 어댑터 자체(도메인 지식, 스키마 매핑, 엣지 케이스 처리)와 거버넌스 계층(감사, 인증, 안전성)에 있습니다. 전송 프로토콜을 새로 만드는 것은 기능을 추가하지 않으면서 유지보수 비용만 증가시킵니다. Stripe는 HTTPS를 사용하고, Docker는 cgroups를 사용하며, FIM One은 MCP를 사용합니다.

배포 모델

모든 것이 단일 Docker Compose 배포에서 실행됩니다. 클라이언트는 아무것도 설치하지 않습니다.
모두 FIM One에서 제공합니다. 클라이언트는 다음만 제공합니다:
  • 데이터베이스 자격증명 (읽기 전용 계정 권장)
  • API 엔드포인트 및 키 (사용 가능한 경우)
  • 네트워크 화이트리스트 액세스
액세스 계층: FIM One은 클라이언트가 제공할 수 있는 모든 액세스에 맞게 조정됩니다:
클라이언트가 보유한 것FIM One 연결 방식
문서화된 APIHTTP API 어댑터 (최선의 경우)
문서화되지 않은 APIHTTP API 어댑터 + 수동 스키마 매핑
데이터베이스 액세스만데이터베이스 어댑터 (직접 SQL, 기본적으로 읽기 전용)
데이터베이스 + 메시지 버스데이터베이스 어댑터 + 메시지 푸시 어댑터

에이전트-커넥터 분리

에이전트는 커넥터를 일반적인 도구로 봅니다. 에이전트는 도구가 내장 도구인지, 제3자 MCP 서버인지, 또는 레거시 시스템 커넥터인지 알거나 신경 쓰지 않습니다. 이는 다음을 의미합니다:
  • 새로운 시스템 추가 = 커넥터 설정 추가. 에이전트 코드는 변경되지 않습니다.
  • 커넥터 제거 = 설정 제거. 코드 변경 없음.
  • 동일한 에이전트가 단일 작업에서 내장 도구와 커넥터를 함께 사용할 수 있습니다.

핫 플러그 진화

버전새로운 커넥터를 추가하는 방법재시작 필요?
v0.6Connector Governance Layer를 포함한 Python MCP Server 작성, docker-compose에 추가재배포
v0.8YAML/JSON 설정 작성, 플랫폼이 MCP Server 생성재시작
v1.0OpenAPI 스펙 업로드, AI가 설정 자동 생성재시작 불필요 (핫 플러그)
엔터프라이즈 배포는 “한 번 구현하면 몇 개월 동안 실행” — 핫 플러그는 v1.0의 편의 기능이지, v0.6의 필수 요구사항이 아닙니다.

데이터 흐름 예시

사용자: “재무 시스템에서 연체된 모든 계약을 확인하고 요약을 Lark에 푸시해줘.”
1. 사용자가 Portal / API를 통해 메시지 전송

2. FIM One (ReAct 모드):
   Think: 재무 DB에서 연체된 계약을 쿼리한 후 Lark에 푸시해야 한다.

3. Act: contract_query(status="overdue", days_past_due=">30")
   → Connector Governance: 감사 로그, 읽기 전용 확인 (통과)
   → MCP Server: SQL로 변환
   → Client DB: SELECT * FROM contracts WHERE status='overdue' AND ...
   ← 연체된 계약 7건 반환

4. Think: 연체된 계약 7건을 찾았다. 요약하여 푸시하겠다.

5. Act: lark_push(message="7 overdue contracts found: ...")
   → Connector Governance: 감사 로그, 쓰기 작업 → 확인 게이트
   → 사용자가 Portal을 통해 승인
   → MCP Server: Lark 웹훅에 POST
   ← 푸시 성공

6. Answer: "연체된 계약 7건을 찾았습니다. 요약이 Lark 그룹에 푸시되었습니다."

커넥터 표준화 레벨

레벨버전접근 방식구축자
레벨 1v0.6Python MCP Server with Connector GovernanceFIM One 개발자
레벨 2v0.8YAML/JSON config, platform auto-generates MCP Server구현 엔지니어 (Python 불필요)
레벨 3v1.0Upload OpenAPI/Swagger spec, AI generates configAI (인간 검토 포함)

기존 MCP 에코시스템과의 관계

FIM One의 MCP 클라이언트(v0.3에서 제공)는 이미 타사 MCP 서버를 지원합니다. 레거시 시스템 어댑터는 엔터프라이즈 거버넌스를 위해 커넥터 거버넌스 계층으로 구축된 도메인별 MCP 서버입니다. 커넥터 거버넌스 계층은 MCP를 대체하지 않으며, 엔터프라이즈 레거시 시스템 통합에 필요한 거버넌스 계층으로 MCP를 확장합니다.