Solana 2주차: 터미널 로그에서 실시간 브라우저 대시보드까지

발행: (2026년 5월 3일 AM 03:48 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

공개 데이터베이스

시작하기 전에 블록체인 데이터가 난해하고 접근하기 어렵다고 생각했습니다. 실제로 Solana는 전 세계에 분산된 공개 데이터베이스와 같습니다. 전통적인 앱에서는 데이터가 백엔드 서버가 관리하는 개인 SQL 또는 NoSQL 데이터베이스에 숨겨져 있습니다. Solana에서는 모든 것이 계정이며 계정은 기본적으로 공개됩니다; RPC 연결만 있으면 언제든지 계정 상태를 읽을 수 있습니다.

터미널 vs. 브라우저

제 한 주는 두 파트로 나뉘었습니다: 터미널에서 작업하고 브라우저에서 빌드하기.

터미널

  • solana balance와 같은 간단한 명령으로 주소 잔액을 확인했습니다.
  • 원시 트랜잭션 데이터를 로그에 남겨 SOL 흐름을 실시간으로 확인했습니다.

브라우저

  • @solana/web3.js 라이브러리를 사용해 JavaScript 프론트엔드에서 잔액 조회를 구현했습니다.
  • 클러스터에 Connection을 설정하고 getBalance를 사용해 프로그래밍 방식으로 데이터를 가져왔습니다.
import { Connection, clusterApiUrl, LAMPORTS_PER_SOL } from '@solana/web3.js';

const connection = new Connection(clusterApiUrl('devnet'));
const publicKey = /* your public key */;

async function getSolBalance() {
  const lamports = await connection.getBalance(publicKey);
  const sol = lamports / LAMPORTS_PER_SOL;
  console.log(`Balance: ${sol} SOL`);
}

잔액 조회

Solana는 잔액을 “1 SOL” 형태로 저장하지 않습니다. 가장 작은 단위인 Lamports(1 SOL = 10⁹ Lamports)를 사용합니다. 사용자의 실제 잔액을 표시하려면 LAMPORTS_PER_SOL 상수로 나누어야 합니다:

SOL = Lamports / 10^9

계정 히스토리

트랜잭션을 읽는 과정은 두 단계입니다:

  1. getSignaturesForAddress시그니처(트랜잭션 ID)를 가져옵니다.
  2. getParsedTransaction으로 트랜잭션 상세 정보를 가져옵니다.

요청당 최대 1,000개의 시그니처만 반환되므로 전체 히스토리를 보려면 before 파라미터를 사용해 페이지네이션이 필요합니다.

// Step 1: Get signatures
const signatures = await connection.getSignaturesForAddress(publicKey, { limit: 1000 });

// Step 2: Get transaction details
const transactions = await Promise.all(
  signatures.map(sig => connection.getParsedTransaction(sig.signature))
);

Devnet와 Mainnet‑beta 비교

기능DevnetMainnet‑beta
SOL 가치$0 (무료 에어드롭)실제 시장 가치
속도 제한테스트에 관대함공용 노드에서 매우 제한적
목적테스트 및 데모프로덕션 앱

핵심 요점: 공개 엔드포인트는 강하게 제한되어 있어 종종 429 Too Many Requests 오류가 반환됩니다.

배운 교훈

  • 커밋 수준 – “processed”(처리됨) 트랜잭션의 속도와 “finalized”(확정) 트랜잭션의 확실성을 균형 맞추는 것이 아직 학습 곡선에 있습니다.
  • 속도 제한 – 특히 공유 RPC 노드에서는 Mainnet‑beta에서 더 엄격한 제한이 적용됩니다.

다음 단계

다음 주에는 프로그램에 대해 파고들어 체인에 데이터를 다시 쓰는 방법을 탐구할 예정입니다.


같은 여정을 걷고 계시다면 언제든지 연결해 주세요!

0 조회
Back to Blog

관련 글

더 보기 »