006. JSON-RPC — JSON으로 원격 함수를 호출하는 프로토콜
REST가 자원을 중심으로 API를 설계한다면, 어떤 API는 동작을 주고받는 편이 더 자연스럽다. JSON-RPC가 무엇인지, RPC라는 모델이 REST와 어떻게 다른지, 메시지 구조와 오류 규약은 어떻게 생겼는지, 전송 수단에 묶이지 않는다는 성격 덕분에 MCP·LSP·블록체인 노드에서 왜 쓰이는지를 설명한다.
REST가 자원을 중심으로 API를 설계한다면, 어떤 API는 동작을 주고받는 편이 더 자연스럽다. JSON-RPC가 무엇인지, RPC라는 모델이 REST와 어떻게 다른지, 메시지 구조와 오류 규약은 어떻게 생겼는지, 전송 수단에 묶이지 않는다는 성격 덕분에 MCP·LSP·블록체인 노드에서 왜 쓰이는지를 설명한다.
HTTP나 JSON-RPC 같은 프로토콜은 무슨 메시지를 주고받을지 정하지만, 그 메시지를 실제로 실어 나르는 일은 전송 계층이 맡는다. TCP가 어떻게 신뢰성을 보장하는지, UDP는 왜 그것을 포기하고 빨라졌는지, QUIC은 어떻게 UDP 위에서 TCP의 신뢰성을 되찾으면서 머리 막힘과 느린 연결 수립까지 해결했는지를 설명한다.
TCP는 데이터를 정확히 전달하지만 보호하지는 않는다. TLS가 어떻게 TCP와 HTTP 사이에 끼어 통신을 암호화하는지, 기밀성·무결성·인증이라는 세 가지 보장이 무엇인지, 대칭키와 비대칭키를 왜 함께 쓰는지, 인증서와 신뢰 사슬은 어떻게 사칭을 막는지, 그리고 HTTPS와 wss가 결국 같은 TLS인 이유를 설명한다.
데이터와 트래픽이 한 대의 서버가 감당할 수 있는 한계를 넘으면 어떻게 할까. 샤딩이 무엇인지, 복제와 어떻게 다른지, 샤드 키와 분할 방식(범위·해시·디렉토리)이 무엇인지, 핫스팟과 리샤딩과 교차 샤드 조인 같은 대가가 왜 따라오는지, 그리고 언제 샤딩을 선택해야 하는지를 설명한다.
마이크로서비스에서는 요청 하나가 여러 서비스를 거쳐 처리된다. 이 흐름을 끝에서 끝까지 추적하려면 서비스 경계를 넘어 추적 정보를 전달해야 한다. W3C Trace Context가 무엇인지, traceparent와 tracestate 헤더가 어떻게 생겼는지, 전파(propagation)가 어떻게 일어나는지, 그리고 이 표준이 왜 OpenTelemetry의 토대가 됐는지를 설명한다.