---
title: "dApp에 적합한 블록체인을 선택하는 방법"
description: "개발자들이 구축할 블록체인을 선택하는 방법 알아보기"
---

# dApp에 적합한 블록체인을 선택하는 방법

가장 기본적으로 [blockchains](https://www.alchemy.com/docs/what-is-a-blockchain)는 개발자가 데이터 저장 요구 사항을 탈중앙화할 수 있게 해주는 훌륭한 인프라 도구입니다. 하나의 시스템으로서 블록체인은 개발자에게 신뢰할 수 있는 중앙 중개자 없이도 애플리케이션을 안전하게 배포할 수 있는 능력을 제공합니다.

블록체인은 다양한 애플리케이션에 사용될 수 있으며, 그 결과 다양한 애플리케이션에 최적화된 여러 유형의 체인이 존재합니다. 각 유형의 체인은 조금씩 다릅니다. 따라서 개발자는 자신의 필요에 맞는 블록체인을 선택할 수 있도록 이러한 차이점을 이해하는 것이 중요합니다.

이 글에서는 주요 블록체인 간의 핵심적인 차이점과, 개발자가 하나의 체인 유형을 다른 것보다 선택하는 이유에 대해 다룹니다.

## **빌드할 블록체인을 선택할 때 물어야 할 7가지 질문**

프로젝트에 사용할 블록체인 플랫폼을 결정하는 과정에서, 개발자로서 고려해야 할 요소는 최소 7가지가 있습니다:

### **1. dapp에 얼마나 많은 처리량이 필요한가?**

개발 중인 프로젝트의 유형에 따라 필요한 트랜잭션 처리량의 범위는 크게 달라질 수 있습니다.

예를 들어 사용자가 하루에 수천 건의 마이크로 트랜잭션을 수행해야 하는 DeFi 게임을 만드는 경우, 처리량이 높고 가스 비용이 낮은 블록체인이 필요합니다.

하지만 가끔씩만 트랜잭션을 발생시키는 DAO를 운영한다면, 협업의 용이성이 더 중요한 요소일 수 있습니다.

고려해야 할 중요한 점은 블록체인 프로토콜이 여러분의 dapp과 함께 어떻게 확장될 것인가입니다. 처음 시작할 때는 낮은 트랜잭션 처리량으로도 충분할 수 있지만, 규모가 커지면 이는 수익을 갉아먹거나 고객을 불만족스럽게 만들 수 있습니다.

따라서 결정을 내리기 전에, 특정 체인에서 빌드하는 것의 장기적인 비용과 속도를 고려하는 것이 중요합니다. 개발자는 메인넷의 확장성과 Layer 2 네트워크의 가용성을 모두 고려해야 합니다.

예를 들어 Ethereum 네트워크는 트랜잭션 처리량이 낮지만, [그 위에 구축되고 있는 여러 Layer 2 네트워크](https://www.alchemy.com/dapps?sub-category=Layer+2+Blockchains&category=Blockchains)는 훨씬 더 높은 처리량을 제공합니다. 2계층은 [앱](https://www.alchemy.com/dapps/top/defi-dapps)에 견고한 블록체인 생태계의 보안성과 더 빠른 합의 메커니즘의 확장성을 동시에 제공하도록 설계되어 있습니다.

### **2. 어떤 블록체인이 필요한 수준의 개발자 리소스를 제공하는가?**

블록체인은 비교적 새로운 기술이기 때문에 개발자에게 제공되는 리소스가 큰 차이를 만들 수 있습니다. 많은 블록체인 프로토콜은 개발자에게 외부 튜토리얼과 가이드를 제공하거나, 개발자들이 서로 배울 수 있도록 그룹 채팅과 포럼을 만듭니다.

하지만 이러한 리소스의 품질은 다를 수 있습니다. 특정 체인에서 개발을 시작하기 전에, 해당 프로토콜이 보유한 리소스를 파악하는 데 시간을 투자하세요.

예를 들어 일부 시스템은 쉬운 조합성(composability)을 위해 설계된 반면, 그렇지 않은 시스템도 있습니다. 조합성이란 주어진 애플리케이션의 더 작은 구성 요소들이 다른 애플리케이션을 만드는 데 복사되어 사용될 수 있는 정도를 말합니다.

예를 들어 [**Ethereum Virtual Machine**](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm)\(EVM\)과 호환되는 앱은 다른 EVM 호환 블록체인으로 자신의 dapp을 쉽게 재배포할 수 있습니다.

처음부터 시작하는 것과 기존 도구 및 인프라 생태계 위에서 빌드하는 것의 차이는 엄청날 수 있습니다.

dApp을 빌드하는 과정에서 어떤 문제가 발생할지는 알 수 없습니다. 따라서 이러한 문제가 발생했을 때 충분한 지원을 받을 수 있다는 것을 아는 것이 도움이 됩니다.

### **3. 어떤 블록체인 생태계가 dapp의 시장 진출 전략에 적합한 조건을 갖추고 있는가?**

일부 블록체인은 이미 매우 활발한 생태계를 갖추고 있는 반면, 다른 블록체인은 여전히 시간을 두고 발전하는 중입니다.

예를 들어 개발자가 다른 앱에 의존하는 dApp을 빌드할 계획이라면, 생태계가 큰 블록체인에서 개발하는 것이 합리적입니다.

예를 들어 [Decentralized Exchanges](https://www.alchemy.com/dapps/best/decentralized-exchanges-dexs)\(DEX\) 간의 유동성을 통합하는 dApp을 만드는 경우, 선택한 블록체인에 유동성을 통합할 수 있는 여러 DEX가 존재하는 것이 필수적입니다.

반대로 일부 블록체인에는 존재하지 않는 제품을 만들려는 경우, 해당 애플리케이션에 경쟁자가 없는 블록체인을 선택하는 것이 유리할 수 있습니다.

물론 개발자가 하나의 블록체인 생태계에만 정착할 필요는 없으며, 실제로 여러 프로토콜이 여러 생태계에 걸쳐 성공적으로 성장해 왔습니다.

### **4. 블록체인은 어떤 프로그래밍 언어를 사용하는가?**

특정 플랫폼에서 개발하는 것의 복잡성은 크게 다를 수 있습니다. 일부 블록체인은 개발자가 완전히 새로운 프로그래밍 언어를 배워야 하는 반면, 다른 블록체인은 그 과정을 표준화합니다.

예를 들어 경험 많은 Rust 개발자는 Solana 블록체인을 접근하기 쉽다고 느낄 수 있는데, 이는 주요 언어가 [Rust](https://www.alchemy.com/dapps/rust)이기 때문입니다. 반면 Ethereum과 EVM 생태계는 [Solidity](https://www.alchemy.com/overviews/solidity)를 중심으로 합니다. EVM 위에서 빌드하고 싶은 개발자는 [Solidity를 배우는데](https://www.alchemy.com/overviews/solidity-smart-contract), JavaScript와 크게 다르지 않기 때문입니다.

물론 이것이 항상 가능한 선택지는 아닙니다. 어떤 개발팀이든 다양한 숙련도를 가진 인원으로 구성되기 때문에, 초보 개발자가 얼마나 쉽게 시작할 수 있는지가 중요한 문제가 될 수 있습니다.

팀의 구성과 보유한 리소스를 고려하는 것은 어떤 블록체인을 사용할지 결정하는 데 도움이 될 수 있습니다.

### **5. 블록체인에서 빌드하는 데는 어떤 인센티브가 존재하는가?**

일부 블록체인 프로젝트는 충성도를 보상하고 네트워크에 기여한 개발자에게 보상을 지급하는 프로그램으로 개발자에게 인센티브를 제공합니다. 예를 들어 일부 블록체인은 버그 발견과 포럼 답변에 대해 인센티브를 제공합니다.

다른 블록체인은 스테이킹 기회를 통해, 그리고 플랫폼에 고객을 유치함으로써 프로젝트가 수익을 낼 수 있도록 함으로써 개발자에게 보상을 제공합니다.

경우에 따라서는 고성장 잠재력을 가진 더 작은 체인과 함께 빌드해서, 팀이 상호 성장의 보상을 공유하는 것이 현명할 수 있습니다. 다른 경우에는 단순히 신뢰할 수 있는 생태계를 선택하는 것이 더 나을 수 있습니다.

### **6. 블록체인이 기존 개발자 도구 및 통합과 호환되는가?**

수년간의 개발을 거쳐 일부 블록체인 도구는 업계 표준이 되었습니다. 예를 들어 [Hardhat](https://www.alchemy.com/dapps/hardhat)과 [Foundry](https://www.alchemy.com/dapps/foundry) 같은 web3 툴킷은 매우 인기가 있으며, [MetaMask](https://www.alchemy.com/dapps/metamask) 같은 특정 [crypto wallets](https://www.alchemy.com/dapps/top/wallets)도 마찬가지입니다.

하지만 이러한 도구가 모두 여러 블록체인에서 작동하는 것은 아닙니다. 예를 들어 Hardhat과 Foundry는 EVM 호환 블록체인에서만 작동합니다. 즉, 개발자는 이 도구들로 Solana dapp을 개발할 수 없으며, 대신 [Anchor](https://www.alchemy.com/overviews/solana-anchor)와 같은 도구를 사용해야 합니다.

마찬가지로 특정 블록체인과 기존 도구를 통합하는 데 필요한 난이도도 크게 다를 수 있습니다.

많은 [EVM](https://www.alchemy.com/overviews/what-is-the-ethereum-virtual-machine-evm) 호환 블록체인이 동일한 통합 구조를 따르는 반면, 그렇지 않은 블록체인들 사이에서는 다를 수 있습니다.

더 새로운 블록체인이거나 문서화가 부실한 블록체인의 경우, 통합을 설정하는 데 시간이 걸릴 수 있습니다.

그렇다 하더라도, 개발자가 장기적으로 해당 블록체인의 성공을 믿는다면 더 어려운 통합 작업의 대가는 그만한 가치가 있을 수 있습니다.

### **7. 블록체인이 dapp에 충분히 안전한가?**

블록체인의 맥락에서 보안은 몇 가지 다른 것을 의미할 수 있습니다. 네트워크 노드의 탈중앙화와 트랜잭션의 최종성(finality) 모두를 가리킬 수 있습니다.

탈중앙화가 중요한 이유는 조직이나 정부가 dapp을 폐쇄하는 것이 얼마나 어려운지를 나타낼 수 있기 때문입니다. 일부 개발자에게는 이것이 최우선 순위입니다. 하지만 다른 개발자에게는 트랜잭션의 최종성이 가장 중요한 보안 문제입니다. 선택한 블록체인이 포크되거나 [재구성](https://www.alchemy.com/overviews/what-is-a-reorg)되어 사용자의 트랜잭션이 더 이상 블록체인에 포함되지 않게 될 가능성은 얼마나 될까요?

블록을 생성하는 절차는 크게 다를 수 있으며, 일부는 다른 것보다 더 견고합니다. 따라서 선택한 블록체인이 강력한 보안 프로토콜을 갖추고 있는지 확인하는 것이 dApp의 생사를 좌우할 수 있습니다.

고려할 만한 다른 보안 문제도 있습니다. 예를 들어 블록체인이 계속 가동될 수 있는 능력, 서비스 거부(DoS) 공격에 대한 취약성, 또는 합의 메커니즘의 근본적인 문제 등입니다. 단지 초기 경고 신호로만 간주될 수 있지만, **블록체인이 과거에 중단된 적이 있는지**, 포크되었는지, 또는 광범위한 재구성 작업의 대상이 된 적이 있는지 고려하는 것은 앞으로 일어날 일에 대한 지표가 될 수 있습니다.

어떤 경우든, 해당 블록체인의 역사를 조사하고 다른 앱들이 그 위에서 과거에 어떻게 성과를 냈는지 고려하는 데 시간을 투자하세요.

## **올바른 블록체인 플랫폼 선택하기**

주어진 dApp에 적합한 블록체인 프로토콜을 선택하는 과정에서, 개발자는 주요 블록체인들의 장단점을 파악해야 합니다:

### **1. Ethereum**

[**Ethereum**](https://www.alchemy.com/ethereum/?a=choose-ethereum)은 스마트 컨트랙트 개념을 개척한 것으로 알려진 Layer-1 블록체인 플랫폼입니다.

Ethereum은 2015년 Vitalik Buterin에 의해 출시되었습니다. Vitalik은 Bitcoin의 탈중앙화 원칙을 가상 머신에 적용했습니다.

이러한 통찰력 덕분에 Ethereum 블록체인은 혁신의 발전소가 되었으며, 금융 서비스, 거버넌스, 재무 관리, 결제, 거래소, 예술 등을 위해 수천 개의 앱이 개발되었습니다.

Ethereum은 그 탈중앙화된 보안성 덕분에 [스마트 컨트랙트 블록체인 중 가장 큰 가치](https://www.alchemy.com/overviews/choose-ethereum)를 끌어모았습니다.

Ethereum 블록은 15초 동안 지속되며, 이는 그 시간 이내에 결제(settlement)가 이루어짐을 의미합니다. Ethereum의 블록 크기는 최대한의 탈중앙화를 달성하기 위해 제한되어 있으며, 이는 다른 일부 블록체인에 비해 트랜잭션 비용을 높게 만듭니다.

Ethereum은 현재 [확장성을 개선하기 위한](https://www.alchemy.com/overviews/ethereum-scaling-solutions) 노력을 지원하고 있습니다. 이 과정의 상당 부분은 Layer-2 블록체인의 개발을 지원하는 것을 포함했습니다.

### **2. Arbitrum**

[Arbitrum](https://www.alchemy.com/arbitrum/?a=how-to-choose-a-blockchain)은 Ethereum을 위한 가장 인기 있는 Layer-2 확장 솔루션 중 하나입니다. Offchain Labs가 구축하고 유지 관리하며, "optimistic rollups"라는 배치 프로토콜을 사용합니다. 이 프로토콜은 Ethereum에 게시되기 전까지 모든 트랜잭션을 기본적으로 유효한 것으로 낙관적으로 취급합니다.

이 기법을 통해 Arbitrum은 Ethereum의 보안성과 탈중앙화를 활용하면서도 [더 빠르고 저렴한 결제](https://www.alchemy.com/overviews/choose-arbitrum)를 제공할 수 있습니다.

완전한 탈중앙화가 Arbitrum의 로드맵에 포함되어 있지만, 현재 기술 스택 중 일부는 Arbitrum 팀이 중앙에서 통제하고 있습니다. 팀이 기술을 반복적으로 개선하고 그 실행 가능성에 대해 확신을 갖게 되면, 전체 스택은 탈중앙화된 거버넌스 하에 놓이게 될 것입니다.

### **3. Optimism**

[Optimism](https://www.alchemy.com/optimism)은 Ethereum에 데이터를 게시하는 또 다른 optimistic rollup입니다.

Optimism 역시 Ethereum의 보안성과 탈중앙화의 혜택을 누리면서 더 저렴하고 빠른 트랜잭션을 제공합니다.

트랜잭션을 배치 처리함으로써, [Optimism은 Ethereum 메인넷보다 한두 자릿수 더 높은 트랜잭션 처리 속도](https://www.alchemy.com/overviews/choose-optimism)로 확장할 수 있습니다.

Optimism은 Arbitrum과 마찬가지로 탈중앙화보다 확장성과 보안을 우선시합니다. EVM과 호환되는 Optimism Virtual Machine\(OVM\)이라는 시스템을 사용합니다.

Optimism의 로드맵에는 현재보다 더 탈중앙화되기 위한 계획도 포함되어 있습니다.

### **4. Polygon**

이전에는 Matic Network로 알려졌던 [Polygon](https://www.alchemy.com/polygon)은 2019년에 출시된 Layer 2 확장 솔루션으로, Ethereum 블록체인에서의 트랜잭션을 더 빠르고, 간단하고, 저렴하게 만드는 데 도움을 줍니다.

[zkSync](https://www.alchemy.com/overviews/what-is-zksync-era) 및 StarkNet과 같은 다른 Layer 2 솔루션과 달리, [Polygon은 "맥가이버 칼"과 같은 솔루션으로 작동](https://www.alchemy.com/overviews/choose-polygon)하며, 확장성 문제를 해결하기 위해 여러 도구를 결합합니다. 즉, 여러 체인을 운영하는데, 하나는 트랜잭션 처리량을 우선시하고 다른 하나는 보안을 우선시합니다. Optimism과 마찬가지로 Polygon도 100% EVM 호환성을 제공합니다.

Polygon은 모든 Ethereum Layer 2 솔루션 중 가장 활발한 생태계 중 하나를 갖고 있으며, 2021년에는 TVL이 90억 달러까지 치솟았습니다.

Polygon Labs는 또한 개발자 리소스 도구인 Polygon University의 베타 버전을 출시했으며, 개발자를 위한 포괄적인 문서, 커뮤니티 리소스, 가이드를 제공하는 위키를 운영하고 있습니다.

### **5. Solana**

[Solana](https://www.alchemy.com/solana)는 가장 인기 있는 대안 Layer-1 블록체인 중 하나입니다. 2017년에 설립된 오픈소스 프로젝트로, 현재 제네바에 본부를 둔 Solana Foundation이 운영하고 있습니다.

Solana는 2017년 창립자 Anatoly Yakovenko가 개발한 proof-of-history\(PoH\) 개념을 개척한 것으로 알려져 있습니다. PoH는 이벤트 사이의 순서와 시간 경과를 검증하기 위한 증명이며, 신뢰가 필요 없는 시간의 경과를 원장에 인코딩하는 데 사용됩니다.

Solana 스마트 컨트랙트는 Rust로 작성되며, 이는 [Solidity](https://www.alchemy.com/overviews/solidity-smart-contract)와 같은 EVM 호환 프로그래밍 언어를 배우고 싶지 않은 개발자에게 매력적입니다.

현재 Solana는 초당 3,886건의 트랜잭션을 처리하며, 이는 dApp에 [빈번한 상태 업데이트가 필요한](https://www.alchemy.com/overviews/choose-solana) 개발자에게 매력적입니다.

세계에서 가장 큰 블록체인 네트워크 중 하나로서, Solana는 개발자가 Rust, C, C\+\+ 같은 익숙한 언어를 사용할 수 있는 유연한 프로그래밍 환경을 제공합니다. 이는 고성능 탈중앙화 애플리케이션을 개발하려는 사람들에게 매력적인 플랫폼이 됩니다.

### **6. StarkNet**

StarkNet은 StarkWare Industries가 Ethereum 메인넷 위에 구축한 무허가형(permissionless) Zero-Knowledge Rollup\(ZK-Rollup\) Layer-2 확장 솔루션입니다.

StarkNet은 STARK 기술을 사용하여 확장성과 프라이버시를 개선하기 위해 Eli Ben-Sasson과 Uri Kolodny가 설립했습니다.

[StarkNet](https://www.alchemy.com/dapps/starknet)의 ZK 롤업은 여러 트랜잭션을 하나의 블록으로 "롤업"함으로써 Ethereum 메인넷의 확장성을 높이며, 이를 통해 가스 비용을 줄이고 트랜잭션 속도를 높입니다.

Starknet의 스마트 컨트랙트는 [Cairo](https://www.alchemy.com/dapps/cairo)라는 프로그래밍 언어로 작성됩니다. 즉, [Starknet 생태계](https://www.alchemy.com/dapps/ecosystem/starknet)를 사용하고자 하는 개발자는 다른 개발자 도구를 배워야 하지만, 그 대가로 Ethereum의 보안성, 탈중앙화, 그리고 확장성을 얻게 됩니다.

하지만 StarkNet 위에서 빌드하는 것의 한 가지 장점은 모든 지갑이 기본적으로 계정 추상화(account abstraction)를 사용한다는 것입니다.

## **결론**

개발자가 자신의 dapp을 위한 블록체인을 선택하기 전에, 블록체인들이 서로 어떻게 다를 수 있는지를 이해하는 것이 중요합니다.

앱은 여러 블록체인에 걸쳐 배포될 수 있으며 단일 블록체인에만 국한될 필요가 없다는 점을 기억하세요. 그렇다 하더라도, 프로젝트에 맞는 올바른 체인을 찾는 것은 많은 시간, 노력, 비용을 절약해 줄 수 있으며, 성공과 실패를 가르는 차이가 될 수 있습니다.
