더북(TheBook)

6.3.3 프로토콜 정의

많은 사람이 서로 다른 언어를 사용해 같은 일을 처리한다면 어떻게 될까요? 아마 서로의 언어를 통역하느라 일 처리가 더디거나 엉뚱한 방향으로 진행될 것입니다.

분산 아키텍처의 성능을 보장하려면 프로토콜을 통일해야 합니다. 특히 마이크로서비스처럼 많은 노드 간에 통신이 필요할 때 프로토콜 통일은 필수입니다.

프로토콜을 정의하려면 포맷과 헤더 정보를 정의해야 합니다. 다양한 프로토콜 포맷이 있지만 Node.js에서 사용하는 자바스크립트 언어가 JSON 포맷에 최적화되어 있으므로 JSON을 사용하겠습니다. 단 TCP 통신의 특성상 여러 패킷을 붙여서 수신할 수 있으므로 끝에 ¶ 문자를 붙입니다.

프로토콜 헤더는 4.3절에서 다룬 REST API 형식을 사용합니다. 메서드와 URI로 구성하고 호출하는 노드와 응답하는 노드가 동일한 값을 가지는 키(key) 정보를 추가합니다. 이는 다음에 설명할 API 게이트웨이에서 매우 중요하게 활용됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.