C.W.K.
Stream
Lesson 04 of 05 · published

Protocol vs Library vs Convention

~20 min · protocol, library, convention, spec

Level 0호기심 많은 독자
0 XP0/48 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

이 영역에서 세 단어가 막 섞여서 던져지는데, 풀어두면 뒤 lesson 들이 다 또렷해져.

Library 는 프로세스에 import 하는 코드야. openai-python 이 library, anthropic 도 library. Library 는 틀릴 수 있고, 갈아끼울 수 있고, 다른 뭔가 위의 편의 layer 야. 같은 protocol 을 겨냥한 다른 저자의 library 두 개는 interop 가능. 서로를 겨냥한 다른 저자의 library 두 개는 자기들끼리만 통하는 사투리 만든 거야.

Convention 은 사람 산문으로 적힌 합의야. '필드는 camelCase 써' 가 convention. '항상 JSON 반환, plain text 말고' 가 convention. Style guide, README, 그룹 챗에 살아. 유용하지만 강제력 없어. 사람들이 일반적으로 뭘 하는지 묘사할 뿐.

Protocol 은 충분히 정밀하게 적힌 contract 라서 — 한 번도 대화한 적 없는 사람들이 독립적으로 짠 두 프로그램이 — 올바르게 상호작용할 수 있어. Protocol 은 wire format, 메시지 모양, 에러 코드, lifecycle, 양쪽이 무엇을 가정해도 되는지를 정의해. JSON-RPC 2.0, HTTP/1.1, Model Context Protocol 모두 protocol. 가리킬 수 있는 spec 이 있고, '네 구현은 4.2 절을 위반함' 이라고 말할 수 있어. 그 argue 가능성 이 protocol 을 유용하게 만들어.

함정은 만들려는 artifact 에 잘못된 명사를 고르는 거야. 두 팀이 조율 없이 interop 해야 한다면 — protocol 이 필요해. 네 library 가 자기 자신과만 대화하면 — convention 으로 충분해. Protocol 의 비용은 사전에 들이는 엄격함이고, skip 한 비용은 — 이 quest 후반에 명시적으로 공부할 — N×M 문제 야.

Code

Library 는 protocol 위의 편의·python
# 이 Python 호출:
client.responses.create(model="gpt-4.1", input=[...])
# ...은 OpenAI API 가 말하는 HTTP+JSON protocol 을 감싼 library 야.
# 다른 언어는 같은 API 와 protocol 만 따라서 대화 가능 —
# 이 library 한 번도 안 만지고도.
Protocol 은 *spec* 이지 SDK 가 아냐·json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {}
}
// JSON-RPC 2.0 은 *protocol*. 모든 MCP client 와 server 가, 모든 언어로,
// 정확히 이 모양의 메시지를 주고받아. SDK 는 그 위의 library.

External links

Exercise

MCP 의 현재 revision spec 과 OpenAPI spec 을 나란히 열어. 각각에서 에러나 status response 정의 section 하나씩 찾아. 정밀도를 봐: 타입, 코드, 필드, MUST/SHOULD/MAY 어휘. 그 정밀도가 protocol 과 convention 의 경계선이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.