Protocol Theory — Lamport · Tanenbaum
Protocol은 합의된 약속이지 구현이 아니다. Layer 분리가 ecosystem의 진화를 가능하게 한다. 왜 tool ≠ protocol이 layer 분리의 직접적 적용인지, 그리고 layer 누설이라는 위험이 어디서 발생하는지의 원리.
1. 철학
Lamport와 Tanenbaum이 protocol에 대해 박은 두 thesis는 다르지만, 둘이 합쳐져야 왜 layer 분리가 결정적인가에 답이 된다.
Lamport — protocol은 시간 위에서 작동한다
"Time, Clocks, and the Ordering of Events in a Distributed System" (1978)이 핵심. 분산 시스템에는 절대 시간이 없다. 각 node는 자기 시계만 안다. 순서는 합의로만 정해진다. 그래서 protocol은 언제 무엇을 보냈는가에 대한 약속이다. 약속이 깨지면 — partial failure — 시스템 전체가 망가진다. 동기는 가정이 아니라 구축물이다.
Tanenbaum — protocol은 layer로 작동한다
"Computer Networks"의 OSI/TCP-IP 비교가 핵심. 각 layer는 자기 약속만 안다. 위/아래 layer는 black box. 이게 encapsulation. 한 layer를 바꿔도 다른 layer는 영향을 받지 않는다. 이 직교성이 ecosystem의 진화를 가능하게 한다. ethernet이 wireless로 바뀌어도 HTTP는 그대로다. layer 분리 덕분.
두 thesis 합치면:
Protocol = 시간과 layer 위에서 약속된 것. 약속의 경계가 어디인가가 ecosystem의 운명을 정한다.
이게 tool과 protocol을 분리해야 하는 원리적 이유다. function calling = LLM의 능력. tool = 실행 단위. MCP = transport. 셋은 다른 layer의 약속이다. 섞으면 한 layer의 변경이 다른 layer를 망가뜨린다.
2. 추상 작동 구조
전통적 protocol layer (Tanenbaum)
각 layer는 위 layer의 약속과 아래 layer의 약속만 안다. ethernet이 wireless로 바뀌어도 HTTP는 그대로다. layer 사이의 경계가 변경 영향을 가둔다.
Agent 영역에서의 layer (이 thesis의 적용)
이 5-layer 분리가 tool-vs-mcp-research의 핵심 통찰을 원리에 박는다. "function calling vs MCP"가 잘못된 대립인 이유 — 둘은 layer가 다르다. 각자의 layer에서 각자의 약속을 책임진다.
Layer 분리의 효과
각 layer 변경이 다른 layer를 건드리지 않는 게 직교성의 효과. 이게 ecosystem 진화의 mechanism. design-principles #4 Orthogonal Layers와 동일한 thesis.
3. 약점
이론은 깔끔하지만 실제는 거칠다.
Trap 1 — Layer 누설 (leaky abstraction) 한 layer의 detail이 위/아래 layer로 새는 경우. 고전적 사례 — TCP의 window size가 application layer의 throughput에 영향. layer 분리가 완벽하지 않다는 사실. agent 영역에서도: skill 설명 (Markdown)이 transport detail (MCP server URL, port 등)을 알고 있으면 layer 누설. 이게 design-principles #7 Anti-Corruption Layer의 호출 지점.
Trap 2 — Layer 너무 많으면 성능 비용 OSI 7-layer가 패배한 이유 중 하나. 각 layer 사이마다 변환·검증 비용. Worse is Better가 OSI 대신 TCP/IP (4-layer)를 살린 이유. agent 영역에서도 layer를 너무 많이 쪼개면 — 예: 5개 layer 모두에 별도 schema 강제 — 진입장벽이 폭증. 학내 segment에선 치명적.
Trap 3 — Layer boundary가 영구적이지 않음 새 use case가 layer 경계를 깨뜨릴 수 있다. agent 영역의 agent-as-MCP-server 패턴이 사례 — agent (orchestration layer)가 자기 자신을 tool (layer 2)로 노출. 이건 layer 위반인가, 새 boundary인가? ⚠️ AI 추정: 새 boundary로 봐야 함. layer 모델이 고정 정답이 아니다.
Trap 4 — Lamport의 partial failure — 동기 가정이 깨짐 agent loop에서 tool 호출이 영원히 안 끝날 수 있다. node가 죽었는지 느린 건지 모름. 이게 분산 시스템의 영원한 trap. 학내 marketplace에서도: 사용자가 외부 MCP server를 추가했는데 그 server가 죽으면 — agent 전체가 hang. timeout/retry는 application 결정이 아니라 protocol 결정이어야 한다.
Trap 5 — Encapsulation의 환상 "layer 분리만 잘하면 다 된다"는 환상. 실제로는 cross-cutting concern — 보안, observability, 권한 — 이 모든 layer를 가로지른다. agent 영역에서도 동일. tool 호출 권한, audit log, rate limit — 어느 한 layer에 박을 수 없다.
4. 대안 흐름
Layer 모델의 다른 선택지들과 그 운명:
| 모델 | 특징 | 결과 |
|---|---|---|
| OSI 7-layer | 정교, 학술적, de jure | 패배 |
| TCP/IP 4-layer | 단순, 실용, de facto | 압승 |
| 모놀리식 (no layer) | 빠름, 진화 불가능 | 항상 패배 |
| Adaptive layer | capability negotiation으로 동적 layer | ⚠️ 진행 중. ACP가 이 방향 |
agent 영역에 매핑:
| 모델 | 사례 | 평가 |
|---|---|---|
| 정교한 다층 | 복잡한 schema · type system · capability negotiation | 학내 segment에 부적합 |
| 단순 분리 | function calling + tool + MCP 3-layer | 현재 ecosystem 중심 |
| 모놀리식 | tool도 protocol도 없이 단일 prompt | 작은 demo에만 |
| Adaptive | ACP의 capability negotiation | ⚠️ 진행 중. 효과 검증 안 됨 |
⚠️ AI 추정: 학내 segment는 단순 분리가 정답. adaptive layer는 비개발자에게 너무 무거움. 모놀리식은 marketplace 형성 불가. 정교한 다층은 진입장벽으로 막힘.
5. 인사이트
5.1 tool ≠ protocol = layer 분리의 직접적 적용
tool-vs-mcp-research에서 잡은 layer가 다르다는 통찰이 Tanenbaum의 thesis 자체. 둘을 섞으면 한 layer 변경이 다른 layer를 망가뜨린다. tool 추가하려고 protocol 바꾸는 건 layer 누설. 학내 marketplace에서 skill 추가가 protocol 변경을 요구하면 원리적으로 잘못된 design.
5.2 MCP는 transport layer만 다룬다 — 위 layer는 자유
이 점이 결정적이다. MCP를 채택한다고 agent loop이 정해지는 게 아니다. orchestration layer는 자유. ReAct도, Plan-Execute도, AutoSkill도, rule engine도 — 모두 MCP 위에서 가능. 이게 paradigm-comparison의 5 옵션이 모두 MCP와 양립할 수 있는 이유.
5.3 Layer 누설을 의식하라
학내 marketplace 설계에서 가장 흔한 trap. skill 정의 (Markdown)이 transport detail (MCP server config, port, credential)을 알고 있으면 — layer 누설. skill 정의는 무엇을 하는가만 알아야 한다. 어떻게 호출되는가는 transport layer 책임. 이게 anti-corruption layer가 반드시 필요한 이유.
5.4 Lamport — timeout/retry는 protocol 결정이지 application 결정이 아니다
agent loop의 모든 tool 호출은 분산 호출이다. partial failure 가능. 이걸 application layer (사용자가 만드는 agent)에 떠넘기면 모든 agent가 재발명해야 한다. v1.0에서 transport layer에 timeout/retry/circuit breaker 박아두기. 학내 segment에서 외부 MCP server가 종종 죽을 거란 가정이 현실적.
5.5 Layer 모델은 고정 정답이 아니다 — 새 boundary가 등장한다
agent-as-MCP-server는 layer 모델을 깨뜨리는 듯하면서 새 boundary를 만든다. orchestration layer의 일부가 transport layer로 노출됨. v1.0에서 layer 분리를 박아두되 새 boundary가 등장할 수 있음을 기억. 이게 ③ frontier 영역에서 다시 마주칠 주제.
5.6 Cross-cutting concern은 별 layer로 분리하라
보안·observability·권한·rate limit — 어느 한 layer에 박을 수 없다. 별도 layer (sidecar, middleware, gateway)로 분리해야 한다. 학내 marketplace에서 tool gateway 패턴이 호출되는 자리. ③ frontier에서 깊이 볼 것.
5.7 segment 적용에서의 함의
비개발자 segment에서는 layer 누설을 막는 것이 가장 중요하다. 비개발자는 layer가 무엇인지 모른다. 그래서 layer 누설이 발생하면 — skill 정의가 transport detail을 요구하면 — 진입장벽이 수직 상승. layer 분리의 미덕은 비개발자에게서 가장 크다. 이건 Worse is Better와 결합되는 thesis: 단순한 표준 + 깨끗한 layer 분리 = 비개발자도 진입 가능.
다음 노트로의 연결
이 노트는 worse-is-better와 함께 ① fundamentals의 기본 두 축. 남은 ① sub-노트:
- standardization-political-economy — de facto (MCP) vs de jure (W3C/IETF). 학내 marketplace가 어느 모델인가.
- postels-law-and-robustness — "보낼 때 엄격, 받을 때 관대". layer 누설의 해독제.
이 두 축이 박히면 ②로 넘어갈 수 있다 — 왜 function calling에서 MCP까지 진화했는가가 원리적으로 해석된다.
참조
- Leslie Lamport, "Time, Clocks, and the Ordering of Events in a Distributed System" (1978)
- Andrew Tanenbaum, "Computer Networks" — OSI/TCP-IP layer 비교
- Joel Spolsky, "The Law of Leaky Abstractions" (2002) — encapsulation의 환상
- David Wheeler, "All problems in computer science can be solved by another level of indirection" — layer의 위력과 한계
연결:
-
- worse-is-better — layer 적게 진영의 사례
- tool-vs-mcp-research — layer 분리의 직접 사례
- design-principles #4 Orthogonal Layers — 같은 thesis
- design-principles #7 Anti-Corruption Layer — layer 누설의 해독제