JSON-RPC는 웹 애플리케이션에서 클라이언트와 서버 간의 통신을 위한 경량 프로토콜입니다. 이 프로토콜을 사용하면 클라이언트가 원격 서버에 요청을 보내고, 서버가 응답을 반환하는 방식으로 작동합니다. 이번 글에서는 자바스크립트를 사용하여 JSON-RPC 서버를 구축하는 방법에 대해 알아보겠습니다.
1. JSON-RPC 패키지 설치하기
먼저, JSON-RPC 서버를 구축하기 위해 json-rpc-2.0 패키지를 설치해야 합니다. 이 패키지는 자바스크립트에서 JSON-RPC 프로토콜을 구현할 수 있는 도구를 제공합니다.
npm install json-rpc-2.0
2. JSON-RPC 서버 생성하기
다음으로, JSON-RPC 서버를 생성하는 코드를 작성해보겠습니다. 아래는 서버를 생성하고 요청에 따라 간단한 계산을 수행하는 예제입니다.
const rpc = require('json-rpc-2.0');
// JSON-RPC 메서드 정의
const methods = {
add: (params) => {
const result = params.reduce((acc, val) => acc + val, 0);
return result;
},
multiply: (params) => {
const result = params.reduce((acc, val) => acc * val, 1);
return result;
}
};
// JSON-RPC 서버 생성
const server = new rpc.Server();
// 메서드 등록
server.addMethods(methods);
// HTTP 서버 생성
const httpServer = http.createServer((req, res) => {
// 요청 처리
server.receive(req, res);
});
// 서버 시작
httpServer.listen(3000, () => {
console.log('JSON-RPC server is running on port 3000');
});
위의 코드에서 add
메서드는 인자로 받은 숫자들을 더한 값을 반환하고, multiply
메서드는 인자로 받은 숫자들을 곱한 값을 반환합니다.
3. 클라이언트 요청 처리하기
다음으로, 클라이언트 요청을 처리하는 방법을 알아보겠습니다. 클라이언트는 JSON-RPC 요청을 보내고, 서버는 해당 요청에 대한 응답을 반환합니다.
const rpc = require('json-rpc-2.0');
// 요청을 보낼 클라이언트
const client = new rpc.Client('http://localhost:3000');
// add 메서드 호출
client.call('add', [1, 2, 3], (err, result) => {
if (err) {
console.error(err);
} else {
console.log(result); // 6
}
});
// multiply 메서드 호출
client.call('multiply', [2, 3, 4], (err, result) => {
if (err) {
console.error(err);
} else {
console.log(result); // 24
}
});
위의 코드는 서버에 add
와 multiply
메서드를 호출하는 예제입니다. client.call
메서드를 사용하여 요청을 보내고, 콜백 함수에서 반환된 결과를 처리할 수 있습니다.
이제 자바스크립트를 사용하여 간단한 JSON-RPC 서버를 구축하는 방법에 대해 알아보았습니다. 이를 응용하여 실제 웹 애플리케이션에서 데이터를 주고받을 수 있습니다. JSON-RPC는 간단하면서도 효율적인 통신 프로토콜이기 때문에 웹 개발에 유용하게 사용될 수 있습니다.