---
title: "Polygon 노드란 무엇인가: 알아야 할 모든 것"
description: "Polygon 노드의 주요 유형과 Polygon 노드 제공업체로 빌드를 시작하는 방법 알아보기"
---

# Polygon 노드란 무엇인가: 알아야 할 모든 것

[Ethereum 메인넷](https://www.alchemy.com/rpc/ethereum)과 유사하게, [Layer-2 솔루션인 Polygon](https://www.alchemy.com/layer2/polygon)도 노드를 사용하여 네트워크에 참여하는 모든 컴퓨터가 올바르게 동작하는지 확인합니다. 다만 Polygon 노드는 다른 아키텍처를 가지고 있는데, 처리 작업의 하위 부분을 분류하여 서로 다른 노드 레이어에 위임하는 방식입니다.

이 글에서는 Polygon 노드의 여러 유형, Polygon 노드를 생성하고 실행하는 방법, 그리고 노드 제공업체가 이 전체 과정을 어떻게 더 쉽게 만들어주는지 살펴보겠습니다.

## Polygon이란?

Polygon은 사이드체인으로, [**Ethereum 스케일링 솔루션**](https://www.alchemy.com/overviews/sidechains-vs-layer2s)이며, [Ethereum Virtual Machine](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm)(EVM)과의 호환성을 유지하면서 리소스 집약적인 작업을 메인 Ethereum 블록체인 밖에서 수행하여 가스 비용을 줄이고 확장성을 개선합니다.

이전에는 MATIC으로 알려졌던 Polygon은 2017년에 리브랜딩했지만 MATIC을 티커 심볼로 유지했습니다. 따라서 Polygon과 MATIC은 동일한 것입니다. Polygon의 주요 테스트 네트워크는 Mumbai라고 불립니다. Mumbai는 개발자가 [테스트용 MATIC 토큰을 사용해 Polygon 애플리케이션을 테스트](https://www.alchemy.com/overviews/mumbai-testnet)할 수 있는, 비용이 들지 않는 테스트넷입니다.

## Polygon 노드란?

**Polygon 노드는 Polygon 블록체인의 사본을 다운로드하여 Polygon 네트워크에 참여하는 컴퓨터입니다. 다만 Polygon에는 Bor 노드, Heimdall 노드, 풀 노드, Sentry 노드, 검증자(validator) 노드 등 여러 노드 유형이 있으며, 각 노드는 서로 다른 목적을 수행합니다.**

Polygon 네트워크는 크게 세 개의 레이어로 나뉩니다:

1. **Ethereum 메인넷** - 컨트랙트 지분증명(Proof-of-Stake), 체크포인팅, 보상에 사용됨
1. **Heimdall 노드 레이어** - 검증에 사용됨
1. **Bor 노드 레이어** - 블록 생성에 사용됨

아래에서는 Heimdall 노드와 Bor 노드에 대해 더 자세히 다루고, 이 둘이 더 복잡한 기능을 위해 어떻게 함께 사용될 수 있는지 살펴보겠습니다.

### bor 노드란?

**Bor 노드는 가장 기본적인 형태의 Polygon 노드로, 트랜잭션을 블록으로 집계하는 역할을 담당하며, 이렇게 집계된 블록은 이후 Heimdall 노드가 파싱하고 활용할 수 있습니다.** 이런 방식으로 Bor 노드는 데이터를 더 효율적으로 처리 가능한 형태로 집계하는 롤업(roll-up) 방식의 절반을 담당합니다. 블록 생성자는 검증자 노드 집합에서 무작위로 선택됩니다.

### heimdall 노드란?

**Heimdall 노드는 이전 체크포인트 이후의 모든 Bor 블록을 검증한 다음, Bor 노드가 생성한 모든 블록을 Merkle 트리로 집계합니다.** Heimdall 노드는 또한 Merkle 루트의 해시값을 주기적으로 메인 블록체인에 전송합니다. 체크포인트는 Polygon 시스템에서 매우 중요한데, 특정 스팬 또는 블록 집합에 대한 블록 생성자의 무작위성과 검증자 집합 선택을 관리하기 때문입니다.

### 풀 노드란?

풀 노드는 트랜잭션과 블록을 완전히 검증하는 노드로, 1\) pruned 풀 노드와 2\) archival 풀 노드(archive 노드라고도 함) 두 가지 유형이 있습니다.

pruned 풀 노드는 실패한 트랜잭션 상태를 모두 폐기하고, 더 가볍게 유지하기 위해 정해진 개수의 블록까지만 거슬러 올라갑니다. **Archive 노드**는 체인의 모든 과거 상태도 저장하는 풀 노드입니다. 즉, Archive 노드는 체인의 시작부터 가장 최근의 트랜잭션까지 정확한 상태를 모두 담고 있습니다.

Polygon archive 노드가 겪을 수 있는 문제 중 하나는 [archive 노드 한계](https://www.alchemy.com/blog/polygon-archive-node-limit)로, 전체 체인의 상태 데이터가 16TB에 근접하면서 발생합니다. 이 때문에 노드 저장 용량을 늘리거나, 낭비된 데이터를 정리하기 위해 노드를 삭제 후 재동기화하거나, Polygon 노드 제공업체를 이용하는 것이 권장됩니다.

### sentry 노드란?

sentry 노드는 Heimdall 노드와 Bor 노드를 모두 실행하여 다른 노드로부터 데이터를 다운로드하고, 이를 선택된 검증자 노드에 전달하는 풀 노드이며, 동시에 전체 Polygon 네트워크에 접근할 수 있습니다. sentry 노드는 또한 검증자를 외부와 격리시켜, 트랜잭션 처리량을 늦추거나 중단시킬 수 있는 분산 서비스 거부(DDOS) 공격과 같은 공격 벡터로부터 검증자 노드를 보호할 수 있습니다.

### Polygon 검증자란?

**Polygon 검증자는 한 대의 머신에 검증자 노드를, 다른 머신에 sentry 노드를 운영하며 MATIC 토큰을 스테이킹한 사람입니다.** Polygon 검증자는 Heimdall 레이어에서 트랜잭션을 검증하도록 무작위로 선택됩니다. 검증자 노드는 sentry 노드와 유사한 아키텍처를 가지지만, sentry 노드와 데이터를 주고받는 방식이라는 점에서 차이가 있습니다.

## Polygon 노드 제공업체란?

[**Polygon 노드 제공업체**](https://www.alchemy.com/overviews/blockchain-node-providers)는 개발자에게 Polygon 노드 API 엔드포인트를 제공하는 회사로, 이를 통해 [앱](https://www.alchemy.com/dapps/top/defi-dapps)이 자체 Polygon 노드를 운영하지 않고도 Polygon 블록체인에 요청을 보내고 응답을 받을 수 있습니다.

자체 Polygon 풀 노드를 운영하면 소프트웨어 클라이언트 커스터마이징과 같은 이점이 있지만, 노드 제공업체는 안정성, 속도, 데이터 정확성 측면에서 [개별 Polygon 노드 대비 상당한 이점](https://www.alchemy.com/overviews/running-your-own-node)을 제공합니다. 노드 유지보수에 대한 걱정은 귀중한 엔지니어링 시간을 소모하게 만드는데, 노드 제공업체는 이 흔한 문제를 해결해줍니다.

앱 입장에서는 확장성과 이용자 수요를 고려해 구축할 때 [최적의 Polygon 노드 제공업체를 선택](https://www.alchemy.com/overviews/how-to-choose-a-blockchain-node-provider)하는 것이 중요한 결정입니다. 인프라 관점에서 가장 중요한 요소는 확장성, 데이터 정확성, 노드 유형(예: 풀, archive 등), 그리고 지원하는 블록체인(멀티체인을 구축할 계획이라면)입니다.

고객 관점에서는 노드 제공업체가 합리적인 가격, 도움이 되는 개발자 관계 팀, 신속하게 대응하는 지원 인력, 그리고 web3 개발자의 요구에 효과적으로 맞는 최적화된 API와 SDK 같은 더 나은 개발자 도구를 갖추는 것도 중요합니다.

## Alchemy에서 Polygon 노드에 연결하는 방법

Polygon 공식 문서에서 [Alchemy를 사용해 Polygon 풀 노드에 연결하는 방법](https://wiki.polygon.technology/docs/develop/alchemy/)에 대한 전체 안내를 확인할 수 있지만, 여기서는 빠르게 시작할 수 있도록 간단히 설명하겠습니다.

### 1. Alchemy 가입하기

Alchemy는 서비스에 대해 무료 등급을 제공하며, [Alchemy 개발자 플랫폼에서 무료 Polygon 계정을 생성](https://www.alchemy.com/layer2/polygon?a=c2ee97cb63)하여 빠르게 Alchemy Polygon API와 상호작용할 수 있습니다.

<ImageBlock
  src="https://media.alchemy.com/1704120746-alchemy-sign-in-dashboard.jpeg"
  alt="로그인 시 Alchemy 대시보드"
  width={1119}
  height={532}
  caption="로그인 시 Alchemy 대시보드"
/>

### ‍

2. Polygon 애플리케이션을 생성하고 API 키 발급받기

Alchemy 계정을 성공적으로 생성한 후에는 앱을 생성하여 API 키를 발급받아야 합니다. 이 키는 Polygon 메인넷 또는 Mumbai 테스트넷에 보내는 요청을 인증하는 데 사용됩니다.

새 API 키를 생성하려면 Alchemy 대시보드 내비게이션 바에서 "Apps" 탭으로 이동한 다음 "Create App" 하위 탭을 선택하세요.

필드를 입력하고 테스트넷을 선택한 후 "Create app"을 클릭하세요.

새로 만든 앱이 아래 표에 나타납니다.

<ImageBlock
  src="https://media.alchemy.com/1704120772-alchemy-apps-table.jpeg"
  alt="새로 생성된 Polygon 앱을 보여주는 Alchemy 대시보드 Apps 테이블"
  width={1123}
  height={533}
  caption="새 앱이 “Apps” 테이블에 표시됨"
/>

Alchemy에서 커스텀 Polygon RPC URL을 얻으려면 Alchemy 대시보드에서 해당 앱으로 이동한 다음 오른쪽 상단의 "View Key"를 클릭하세요.

그런 다음 Alchemy HTTPS API 키를 복사해서 애플리케이션에 붙여넣으세요.

**참고:** 여러 인프라 제공업체의 [공개 Polygon RCP URL](https://www.alchemy.com/chain-connect/chain/polygon-pos)을 확인하려면 Alchemy Chain Connect를 사용하세요.

<ImageBlock
  src="https://media.alchemy.com/1704120810-alchemy-view-key.jpeg"
  alt="노드용 Polygon RPC URL을 설정하는 “View Key” 옵션"
  width={1113}
  height={269}
  caption="노드용 Polygon RPC URL을 설정하는 “View Key” 옵션"
/>

‍

### Step 3. Polygon API 설정하고 개발 시작하기

JavaScript와 Node.js를 사용하는 경우, Alchemy SDK를 설치하고 Alchemy 객체를 생성하기만 하면 몇 줄의 코드만으로 Polygon 노드 요청을 보낼 준비가 됩니다.

1. npm init -y 명령으로 프로젝트를 설정하세요
1. 터미널에서 다음 명령을 실행하여 SDK를 설치하세요: npm install alchemy-sdk
1. SDK를 설치한 후, 아래와 같이 Polygon과 함께 프로젝트에서 import하여 사용할 수 있습니다

Alchemy SDK 설정에 대한 자세한 내용은 [SDK Quickstart Guide](https://www.alchemy.com/docs/alchemy-quickstart-guide)를 참고하세요.

<ImageBlock
  src="https://media.alchemy.com/1704120924-import-sdk-polygon-node.jpeg"
  alt="Polygon 노드 프로젝트에서 Alchemy SDK를 임포트하는 코드 스니펫"
  width={924}
  height={320}
  caption="Polygon 노드 프로젝트에서 SDK 임포트"
/>

Polygon 노드 제공업체를 이용하는 것은 간단하고 확장 가능하여, 모든 수준의 개발자가 web3 개발을 시작할 수 있게 해줍니다.
‍

## Polygon 노드 요구사항

Polygon 풀 노드를 실행하려면 몇 가지 [기술 사양](https://docs.polygon.technology/docs/category/nodes/)과 소프트웨어 사전 요구사항을 충족해야 합니다. 현재 최소 요구사항은 16-32GB RAM, 4-8코어 CPU이며, 최소 1.2TB의 확장 가능한 저장 드라이브가 필요합니다. 체인 히스토리가 늘어남에 따라 노드가 저장해야 하는 데이터도 계속 늘어나므로, 최소 사양 역시 그에 따라 증가할 것입니다.

또한 Polygon은 어떤 운영체제든 문제없이 작동한다고 언급하고 있지만, 보안성과 안정성 측면에서는 MacOS나 Windows보다 CentOS와 같은 Linux 서버 배포판을 선호한다고 강조하고 있습니다.

## Polygon 풀 노드 설정 방법

Polygon 노드 제공업체를 이용하지 않고 직접 Polygon 노드를 구성하고 유지관리하려면, 아래 단계를 따르면 됩니다.

### 1. 노드를 실행할 머신 구축하기

Linux가 권장되므로, 노드를 호스팅할 수 있는 Linux 서버를 실행하는 머신을 사용하는 것이 좋습니다. 명령줄에서 Secure Shell(SSH)을 사용해 Linux 서버에 원격으로 접속할 수도 있습니다. 하드웨어 요구사항을 확인한 후, 머신이 충분히 큰 최소 저장 용량과 컴퓨팅 성능을 갖추고 있는지 확인하세요.

### 2. 사전 요구사항 다운로드하기

소프트웨어 요구사항 측면에서는 Python 3.x가 설치된 머신에 Ansible을 다운로드해야 하며, 다음 명령으로 다운로드할 수 있습니다: pip3 install ansible

또한 Go나 이전에 설정된 Heimdall 및 Bor가 설치되어 있지 않은지 확인하세요. 이들이 있으면 완전히 새로운 설치 과정과 충돌할 수 있습니다.

### 3. 노드 설정 및 실행하기

모든 안내는 [풀 노드 설정 및 실행에 대한 공식 Polygon 문서](https://docs.polygon.technology/docs/develop/network-details/full-node-deployment/)를 기반으로 합니다. 아래는 그 단계를 요약한 것입니다:

1. 원격/가상 머신에 접속할 수 있는지 확인하고, 지정된 리포지토리를 클론한 다음, IP를 설정하여 기능을 확인하세요
1. 풀 노드를 설정하고, 원격/가상 머신에 접속한 다음 Heimdall 노드와 Bor 노드를 구성하세요
1. 풀 노드를 실행하고 로그를 확인하여 노드가 올바르게 동기화되었는지 확인하세요

## Alchemy로 Polygon에서 개발 시작하기

Polygon은 빠르게 성장하고 있는 Ethereum 사이드체인으로, EVM 호환 애플리케이션을 구축하려는 개발자에게 빠르고 저렴하며 확장 가능한 블록체인을 제공합니다. Polygon은 확장성, 저렴한 비용, 낮은 탄소 배출량 덕분에 Starbucks의 새로운 로열티 리워드 프로그램과 같은 일부 대형 web2 기업들의 선택을 받고 있습니다.

Polygon에서 개발을 시작하려면 지금 Alchemy에서 [무료 Polygon 개발자 계정](https://www.alchemy.com/layer2/polygon?a=c2ee97cb63)을 만들어보세요!
