자바스크립트 JSON-RPC의 개념과 사용 방법

JSON-RPC는 JavaScript Object Notation Remote Procedure Call의 약자로, 네트워크를 통해 함수 호출을 가능하게 해주는 프로토콜입니다. 이 방법은 클라이언트와 서버 간의 통신에 이용될 수 있으며, 주로 웹 애플리케이션에서 서버와 데이터를 주고받는 데에 사용됩니다.

1. JSON-RPC의 기본 개념

JSON-RPC는 HTTP, TCP 등의 프로토콜을 통해 클라이언트와 서버가 JSON 형식의 데이터를 주고받는 방식입니다. 클라이언트는 JSON-RPC 요청을 보내고, 서버는 요청을 처리하여 결과를 반환합니다. 이는 클라이언트와 서버 간의 애플리케이션 로직을 분할하여 개발하고, 네트워크를 통해 연결되는 이점을 제공합니다.

JSON-RPC는 다음과 같은 요소로 구성됩니다:

2. JSON-RPC 사용 방법

JSON-RPC를 사용하려면 클라이언트에서 서버로 요청을 보내는 코드와, 서버에서 해당 요청을 처리하는 코드가 필요합니다. 아래는 간단한 예제 코드입니다.

클라이언트 측 코드

const request = {
  jsonrpc: "2.0",
  method: "multiply",
  params: { x: 5, y: 2 },
  id: 1
};

fetch("/jsonrpc", {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify(request)
})
  .then(response => response.json())
  .then(data => {
    console.log(data.result);
  });

서버 측 코드

const jsonRpcHandler = (request) => {
  switch (request.method) {
    case "multiply":
      const result = request.params.x * request.params.y;
      return {
        jsonrpc: "2.0",
        result: result,
        id: request.id
      };
    default:
      return {
        jsonrpc: "2.0",
        error: "Method not found",
        id: request.id
      };
  }
};

app.post("/jsonrpc", (req, res) => {
  const request = req.body;
  const response = jsonRpcHandler(request);
  res.json(response);
});

위의 예제 코드에서는 클라이언트는 /jsonrpc URL로 POST 요청을 보내며, 서버에서는 해당 요청을 처리하여 결과를 리턴합니다. 클라이언트는 클라이언트 측 코드에서 새로운 request를 만들고, fetch를 이용해 서버로 요청을 보냅니다. 서버는 서버 측 코드에서 app.post를 이용해 클라이언트로부터의 요청을 받고, 해당 요청을 처리한 후 응답을 보냅니다.

이 예제는 간단한 곱셈 함수를 호출하는 것이지만, JSON-RPC를 활용하면 복잡한 데이터 및 애플리케이션 로직을 클라이언트와 서버 간에 효율적으로 주고받을 수 있습니다.

JSON-RPC는 널리 알려져 있고 다양한 라이브러리와 프레임워크에서 지원되므로, 필요에 따라 선택적으로 사용할 수 있습니다.


JSON-RPC는 클라이언트와 서버 간의 통신을 단순하게 만들어주며, JavaScript를 사용하여 데이터를 주고받는 데에 적합한 프로토콜입니다. JSON-RPC를 사용하면 클라이언트와 서버 사이의 데이터 흐름을 효율적으로 관리할 수 있으며, 복잡한 애플리케이션 개발에 유용합니다.