이 영역에서 세 단어가 막 섞여서 던져지는데, 풀어두면 뒤 lesson 들이 다 또렷해져.
Library 는 프로세스에 import 하는 코드야. openai-python 이 library, anthropic 도 library. Library 는 틀릴 수 있고, 갈아끼울 수 있고, 다른 뭔가 위의 편의 layer 야. 같은 protocol 을 겨냥한 다른 저자의 library 두 개는 서로 통해. 서로를 겨냥한 다른 저자의 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 절을 위반함' 이라고 말할 수 있어. 그렇게 따질 수 있다는 것 이 protocol 을 유용하게 만들어.
함정은 만들려는 물건에 잘못된 이름을 고르는 거야. 두 팀이 조율 없이 서로 통해야 한다면 — protocol 이 필요해. 네 library 가 자기 자신하고만 대화하면 — convention 으로 충분하고. Protocol 은 미리 엄격함이라는 비용을 내는데, 그걸 건너뛰면 나중에 N×M 문제로 갚게 돼. 이 quest 후반에 따로 짚을 거야.