솔라나 네트워크와 직접 소통하려면 RPC 엔드포인트를 사용합니다. CLI와 지갑 앱도 내부적으로는 RPC 요청을 보냅니다. 이 글에서는 RPC 요청의 구조와 학습 단계에서 사용할 엔드포인트를 정리합니다.
RPC란
RPC는 원격 프로시저 호출을 뜻합니다. 솔라나에서는 JSON-RPC 형식으로, HTTP POST 요청에 JSON 본문을 담아 보내고 JSON 응답을 받습니다. 검증자 노드가 이 요청을 받아 처리합니다.
요청 구조
기본 요청은 다음 형태를 갖습니다.
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": ["9xQeWvG..."]
}
응답은 result와 error 중 하나를 포함합니다.
curl로 요청 보내기
가장 간단한 방법은 curl을 사용하는 것입니다.
$ curl -X POST https://api.devnet.solana.com \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}' {"jsonrpc":"2.0","result":"ok","id":1}
공개 엔드포인트
솔라나 재단이 무료로 제공하는 공개 엔드포인트가 있습니다. 학습과 가벼운 테스트에 적합합니다.
https://api.mainnet-beta.solana.com— 메인넷https://api.devnet.solana.com— Devnethttps://api.testnet.solana.com— Testnet
공개 엔드포인트는 요청 수에 제한이 있고, 트래픽이 몰리면 응답이 느려집니다. 실제 서비스를 운영할 때는 전용 RPC를 사용합니다.
전용 RPC
전용 RPC는 검증자 노드를 직접 운영하거나, RPC 제공자에게 비용을 지불해 사용하는 방식입니다. 요청 제한이 없고 안정적이지만, 학습 단계에서는 필요하지 않습니다.
학습 팁: 처음에는 공개 Devnet 엔드포인트로 충분합니다. CLI가 내부적으로 같은 엔드포인트를 사용하므로, CLI 명령어가 익숙해진 뒤 직접 JSON-RPC 요청을 만들어 보면 통신 구조가 명확해집니다.
자주 쓰는 메서드
getHealth— 노드 상태 확인getBalance— 주소 잔액getAccountInfo— 계정 정보getSlot— 현재 슬롯sendTransaction— 트랜잭션 전송getTransaction— 트랜잭션 조회
다음 단계
RPC로 노드와 대화할 수 있게 되면, 첫 학습 프로젝트 구성하기 글에서 프로젝트 폴더를 만들고 스크립트로 RPC 요청을 자동화해 보세요.