Web3 인프라: RPCs, Nodes, Infura/Alchemy (보이지 않는 배관)
Source: Dev.to
블록체인은 노드 없이는 “눈이 멀다”
기억하세요 Day 6?
스마트 계약은 온‑체인에 존재하지만, 지갑 잔액, 대기 중인 트랜잭션, 현재 블록을 직접 “볼” 수 없으며 누군가에게 물어봐야 합니다.
그 “누군가”가 바로 RPC 노드 – 블록체인과 지속적으로 동기화된 컴퓨터로, 다음과 같은 질문에 답할 준비가 되어 있습니다:
- “내 ETH 잔액은 얼마인가요?”
- “내 트랜잭션이 확인됐나요?”
- “가장 최신 블록은 무엇인가요?”
노드가 없으면 MetaMask는 인터넷에 연결되지 않은 고급 계산기와 같습니다.
비유: 당신의 전화는 전체 인터넷을 저장하지 않습니다; 구글에 물어봅니다 (“야, 날씨 어때?”). RPC 노드는 Web3의 구글입니다.
Source: …
RPC 노드란? (간단 버전)
- RPC = Remote Procedure Call – 컴퓨터 A가 컴퓨터 B에게 함수를 실행하고 결과를 반환해 달라고 요청합니다.
- RPC 노드 = 블록체인의 전체 사본으로서:
- 모든 블록, 트랜잭션, 스마트‑컨트랙트 상태를 다운로드합니다.
- JSON‑RPC(블록체인 쿼리를 위한 표준 언어)를 사용합니다.
- 여러분의 dApp/지갑과 체인 사이의 중개자 역할을 합니다.
매번 여러분이:
- MetaMask에서 잔액을 확인할 때
- 트랜잭션을 보낼 때
- Uniswap 가격을 조회할 때
MetaMask는 어느 곳에 있는 노드에 RPC 요청을 보냅니다.
실제 예시: 첫 번째 컨트랙트를 Sepolia에 배포했을 때 (Day 9), Remix IDE가 RPC 엔드포인트를 호출했습니다: “이 트랜잭션을 대신 전송해 주세요.”
RPC URL – Web3의 “전화번호”
모든 블록체인 연결은 RPC URL로 시작합니다, 예:
https://eth-sepolia.g.alchemy.com/v2/YOUR_API_KEY
https://mainnet.infura.io/v3/YOUR_PROJECT_ID
구성 요소
| Part | Meaning |
|---|---|
eth-sepolia | 이더리움 Sepolia 테스트넷 |
alchemy.com / infura.io | 노드 제공자 |
YOUR_API_KEY / YOUR_PROJECT_ID | 귀하의 무료 개발자 자격 증명 |
MetaMask → Settings → Networks → Ethereum Mainnet → RPC URL 은 바로 이 문자열입니다.
프로 팁: Alchemy/Infura 대시보드에서 URL을 복사하여 MetaMask의 사용자 지정 네트워크에 붙여넣으면 즉시 모든 체인에 연결됩니다.
자체 노드 실행 vs. 제공자 사용
옵션 1 – 직접 실행 (하드코어)
geth --sepolia --http --http.api eth,net,web3
- 수백 GB를 다운로드합니다.
- 24시간 7일 내내 실행해야 합니다.
- 완전한 제어권을 제공하지만 전기 비용이 발생하고 노트북이 절전 모드에 들어가면 충돌합니다.
추천 대상: 프라이버시 중심 사용자, MEV 봇, 엔터프라이즈 dApp.
옵션 2 – 제공자 사용 (개발자 99 %)
Infura(ConsenSys)와 Alchemy가 Web3의 약 90 %를 지원합니다.
| 왜 그들이 승리하는가 |
|---|
| 99.99 % 가동 시간 (노드가 다운되면 dApp도 죽음) |
| 자동 스케일링 (Uniswap이 초당 1M+ 요청을 처리) |
| 무료 티어 (≈ 300k 요청/일) |
| 내장된 분석, 디버깅, 아카이빙 기능 |
당신이 Day 9 Sepolia 배포 를 따라했을 때, 이미 그들의 노드를 사용하고 있었음을 알지 못했을 것입니다.
Infura vs. Alchemy – 제공자 대결
| Feature | Infura | Alchemy | Winner |
|---|---|---|---|
| Free tier | 100 k req/day | 300 k req/day | Alchemy |
| Uptime | 99.9 % | 99.99 % | Alchemy |
| Analytics | Basic | God‑tier dashboard | Alchemy |
| L2 support | Good | Excellent | Alchemy |
| Ethereum Foundation ties | Strong | Growing | 무승부 |
My pick: Alchemy – 더 나은 무료 티어와 대시보드 덕분에 디버깅이 훨씬 쉬워집니다.
Switching test: 두 서비스 모두에서 무료 API 키를 받아 동일한 계약을 배포하면, 작은 프로젝트에서 비슷한 속도를 확인할 수 있습니다.
실제 사례: MetaMask와 RPC가 실제로 작동하는 방식
- Uniswap에서 “Swap ETH → USDC”를 클릭합니다.
- Uniswap이 RPC에 요청합니다: “내 ETH 잔액은? USDC 가격은?”
- MetaMask가 RPC에 요청합니다: “이 트랜잭션을 서명할 수 있나요? 가스 가격은?”
- 승인을 하면 → MetaMask가 RPC를 통해 트랜잭션을 broadcast합니다.
- RPC가 Ethereum 채굴자/검증자에게 broadcast합니다.
- 약 6 블록 후, RPC가 **“Tx success!”**를 확인합니다.
모든 단계가 RPC 호출입니다. RPC가 없으면 Web3도 없습니다.
Infura가 다운되면 어떻게 할까요? MetaMask 설정에서 RPC URL을 전환하면 약 30 seconds 정도 걸립니다.
빌더에게 중요한 이유 (DevRel 관점)
| 상황 | 확인할 내용 |
|---|---|
| 주니어 개발자가 “contract deploy failed”를 확인함 | 먼저 RPC 상태를 확인하세요. |
| 스케일링 dApp이 무료 티어를 초과함 | 유료 플랜으로 업그레이드 (≈ $49/월). |
| 프라이버시 중심 프로젝트 | 자신의 노드와 Tor를 실행하세요. |
| MEV 봇 | 아카이브 노드 사용 (전체 히스토리 데이터). |
Sepolia 배포 경험: 나는 “transaction underpriced” 오류를 디버깅하는 데 2 시간을 소비했으며, 그때 RPC가 속도 제한됐다는 것을 깨달았다. 다시는 안 한다.
Pro move: 2–3 RPC URLs을 준비해 두세요 – 기본, 백업, 그리고 (가능하면) 자체 호스팅.
Hands‑On: Set Up Your Own RPC Pipeline (≈ 5 min)
-
Sign up at a provider (free tier). → 프로바이더에 가입하세요 (무료 티어).
-
Create an app → copy the Sepolia RPC URL. → 앱을 생성하고 Sepolia RPC URL을 복사합니다.
-
MetaMask → Settings → Networks → Add Network
| Field | Value |
|---|---|
| Network Name | Sepolia (Alchemy) |
| RPC URL | https://eth-sepolia.g.alchemy.com/v2/YOUR_KEY |
| Chain ID | 11155111 |
| Currency Symbol | ETH |
| Block Explorer URL (optional) | https://sepolia.etherscan.io |
-
Test: Send 0.001 Sepolia ETH to your address. It should appear instantly. → 테스트: 주소로 0.001 Sepolia ETH를 전송합니다. 즉시 표시되어야 합니다.
-
Challenge: Deploy the contract from Day 9 using your Alchemy RPC vs. Infura. Compare speed. → 도전 과제: [Day 9](https://medium.com/dev-genius/your-first-ethereum-smart-contract-step-by-step-770bdbbe10ec)에서 계약을 배포할 때 Alchemy RPC와 Infura를 각각 사용해 보세요. 속도를 비교합니다.
반성 – “아하” 순간
RPC가 지루하게 느껴졌지만 깨달은 순간: MetaMask는 마법이 아니라 단지 고급 RPC 클라이언트일 뿐이라는 점.
노드를 이해하면 이유가 보인다:
- 트랜잭션이 “멈춘다” (RPC 속도 제한).
- dApp이 혼잡 시에 충돌한다 (프로바이더 과부하).
- “프라이빗” 지갑은 실제로는 프라이빗하지 않다 (공유 RPC가 모든 것을 볼 수 있음).
다음에 누군가 *“Web3는 HTTPS 위의 JSON일 뿐”*이라고 말하면, 고개를 끄덕이며 알아차리자.
핵심 요약
RPC 노드는 Web3의 구글과 같습니다 – 모든 지갑 클릭, 스왑, 그리고 컨트랙트 호출이 이를 통해 이루어집니다.
Infura와 Alchemy가 대부분의 트래픽을 처리하지만, 신뢰성 있고 확장 가능하며 프라이버시를 보장하는 블록체인 개발을 위해서는 노드를 선택하고, 구성하며, (필요하다면) 직접 운영하는 방법을 아는 것이 필수적입니다.
# 90% of traffic so you don't have to.
다음에 할 일
학습
- Alchemy 계정을 만들고 MetaMask에 커스텀 RPC를 추가하세요.
- Day 23 (온‑체인 아이덴티티) 를 읽으세요 – ENS 쿼리도 RPC를 호출한다는 점을 기억하세요 (계속 지켜보세요).
구축
- 세 가지 RPC 제공업체 Alchemy, Infura, QuickNode 를 즐겨찾기에 추가하세요.
- 프로덕션 환경에서는 절대 단일 RPC URL을 하드코딩하지 마세요.
함께 참여하세요
- 아래에 “RPC 공포 이야기”를 남겨 주세요 👇
Web3ForHumans – 텔레그램: 노드 설정을 공유하세요!
Follow me on:
## 추가 읽을거리
- **Alchemy – RPC 노드 가이드**
- **Cherry Servers – RPC 노드란?**
- **MetaMask – 커스텀 RPC 추가 방법**
- **Alchemy vs Infura 비교**