랭킹
블록체인 개발 도구 10가지: 2023년 목록

개발 도구는 블록체인 애플리케이션을 만드는 데 드는 시간을 줄일 수 있습니다. 이 2023년 목록은 언어, 프로그램, 인프라 유형 등 열 가지 항목을 다룹니다. 유지보수 상태는 서로 다릅니다. 일부 프로젝트는 당시에도 이미 종료되었거나 종료 절차에 들어가 있었습니다.
1. Solidity
Solidity는 이더리움과 다른 EVM 호환 네트워크의 스마트 계약에 널리 쓰이는 언어입니다. 이더리움 생태계에서 개발되었지만 유일한 블록체인 프로그래밍 언어는 아닙니다.
다양한 라이브러리와 도구로 구성된 생태계가 인기에 기여했습니다. Solidity는 많은 이더리움 호환 애플리케이션에 적합하지만 스마트 계약이라는 개념 자체를 발명한 것은 아닙니다.

출처 – Soliditylang.org
Solidity에는 풍부한 문서, 예제, 라이브러리가 있습니다. 소스 코드는 이더리움 가상 머신(EVM)이 실행할 수 있는 코드로 컴파일됩니다. 링크된 0.8.21 버전 문서는 이 글이 처음 작성된 시기의 자료입니다.
2. MetaMask
개발자는 탈중앙화 애플리케이션과 상호작용하기 위해 흔히 지갑을 사용합니다. MetaMask는 계정 관리, 애플리케이션 연결, 거래 서명을 위한 브라우저 확장 프로그램과 모바일 앱 등을 제공합니다.
지원되는 네트워크와 테스트넷에 연결할 수 있습니다. 네트워크를 바꾼다고 자산이 다른 블록체인으로 자동 이전되지는 않으며, 이전에는 별도의 기능이나 서비스가 필요합니다. 지갑 자체는 블록체인 네트워크가 아니고 애플리케이션의 보안이나 유동성을 보장하지 않습니다.
3. Truffle
Truffle은 ERC-20 토큰뿐 아니라 이더리움 스마트 계약을 개발하는 데 쓰였던 잘 알려진 환경입니다. 컴파일, 계약 배포, 라이브러리 연결, Mocha와 Chai 등을 이용한 자동 테스트 기능을 제공했습니다.
Consensys는 2023년 9월 21일 Truffle과 Ganache 종료 계획을 발표하고 2023년 12월 20일부터 공개 코드 저장소를 보관 처리하기로 했습니다. 사용자에게는 Hardhat과 Foundry 등의 대안을 안내했습니다. 따라서 이 목록에서 Truffle은 역사적 도구이며, 신규 프로젝트에 필수적인 적극 유지보수 도구라는 뜻은 아닙니다.
4. 블록체인 테스트넷
테스트넷은 메인넷 배포 전에 계약과 애플리케이션을 시험하는 데 도움이 됩니다. 기능과 통합 문제를 발견할 수 있지만 보안, 안정성, 확장성을 자동으로 입증하지는 않습니다.
공개 테스트넷과 로컬 개발 네트워크는 서로 다른 환경입니다. Ganache는 Truffle 생태계의 로컬 개발 블록체인이었으며 이더리움의 공개 테스트넷이 아닙니다. 유지보수 종료는 위에서 설명했습니다.
로컬 환경에서는 환경을 통제하면서 빠르게 실험할 수 있습니다. 공개 테스트넷은 공유 환경에서 상호작용을 시험하는 데 유용하지만 부하와 경제적 조건이 메인넷과 다를 수 있습니다. 테스트 토큰은 실제 메인넷 자산 없이 실험하기 위한 것입니다. 테스트넷 사용 자체가 운영 중인 애플리케이션의 가스 수수료를 줄이지는 않습니다.
5. 서비스형 블록체인(BaaS)
BaaS에서는 공급자가 노드나 네트워크 등 블록체인 인프라의 일부를 관리합니다. 구축과 운영을 단순화할 수 있지만 비용과 기능은 서비스와 고객의 요구에 따라 달라집니다.
애플리케이션 로직, 접근 권한, 설정, 테스트 등은 여전히 고객의 책임입니다. 관리형 클라우드 서비스가 모든 유지보수 및 보안 업무를 자동으로 없애 주지는 않습니다.
기존 시스템과의 통합은 사용 가능한 인터페이스와 기술 요건에 달려 있습니다. Amazon (AMZN )은 AWS Managed Blockchain을 제공합니다. AWS Amplify는 다른 서비스와 통합할 수 있는 웹·모바일 애플리케이션 도구입니다. Microsoft (MSFT )의 Azure Blockchain Service는 2021년 9월 10일 종료되었습니다. 이는 모든 Azure 서비스가 종료되었다는 뜻이 아닙니다. 이 글의 역사적 사례를 평가할 때 이러한 이름을 구분해야 합니다.
6. Geth
Geth는 Go로 구현된 이더리움 실행 클라이언트입니다. 거래 처리, EVM 실행, 상태 관리, 프로그래밍 인터페이스 등의 기능을 담당합니다. 개발자는 이를 통해 계약을 배포하거나 네트워크 정보를 읽을 수 있습니다.
이더리움이 2022년 지분증명으로 전환한 뒤에는 전체 노드에 합의 클라이언트도 필요합니다. Geth가 ERC-20 네트워크 사이에 자동으로 브리지를 만드는 것은 아닙니다. ERC-20은 별도 네트워크가 아니라 토큰 표준입니다. 이더리움 메인넷에서는 더 이상 블록을 채굴하지 않으며 계약을 Go로 작성할 필요도 없습니다.
7. Mist
Mist는 지갑 기능과 이더리움 노드 연결 기능을 갖춘 탈중앙화 애플리케이션용 독립형 브라우저였습니다. 브라우저 확장 프로그램과 달랐으며 과거 Linux, macOS, Windows용으로 제공되었습니다. 전체 노드를 운영하려면 상당한 저장 공간이 필요했습니다.
개발팀은 2019년 3월 27일 Mist와 Ethereum Wallet 지원을 중단한다고 발표했습니다. 코드 저장소도 보관 처리되었습니다. 따라서 2023년에도 신규 사용을 권할 만한 현행 도구가 아니었으며, 과거 공식 도구였다는 사실이 안전성을 입증하지는 않습니다. 여기서는 생태계의 역사를 설명하기 위해 다룹니다.
8. Remix IDE
Remix IDE는 Solidity 등을 위한 개발 환경으로, 브라우저와 데스크톱 앱에서 사용할 수 있습니다. 스마트 계약 작성, 컴파일, 분석, 테스트, 배포를 지원합니다. 로컬 시뮬레이션을 먼저 사용한 뒤 호환되는 연결을 통해 테스트넷이나 메인넷으로 진행할 수 있습니다. 이 도구는 종합적인 보안 검토를 대체하지 않습니다.
9. Ethlint
이전 이름이 Solium인 Ethlint는 Solidity 코드의 스타일 규칙과 일부 보안 문제를 검사하고 일부 문제를 자동 수정합니다. 문서에 따르면 오래된 solium 패키지는 2019년 12월 이후 업데이트되지 않으며 사용자는 ethlint로 안내됩니다.
린터가 모든 오류를 찾는 것은 아니고 테스트나 감사를 대체하지도 않습니다. 스타일 규칙 위반이 반드시 애플리케이션 충돌을 일으키는 것은 아닙니다. 형식과 기능 오류는 별개이며 사용하는 Solidity 버전과의 호환성도 확인해야 합니다.
10. Solc
Solc는 Solidity 컴파일러입니다. 소스 코드에서 바이트코드와 ABI 설명 등을 생성합니다. 애플리케이션은 ABI를 이용해 계약과 통신합니다.
네이티브 컴파일러는 C++로 구현되어 있고 solc-js는 같은 컴파일러를 JavaScript에서 사용할 수 있게 합니다. 이것이 solc가 C++나 JavaScript로 작성한 계약을 컴파일한다는 뜻은 아닙니다. 입력 언어는 Solidity입니다. 컴파일러 설정은 계약과 대상 네트워크에 맞아야 합니다.
블록체인 개발 도구 선택하기
열 가지 항목은 개발의 서로 다른 단계를 다룹니다. 선택하기 전에 기능, 유지보수 상태, 호환성을 평가하세요. 도구는 작업을 쉽게 해 주지만 계약의 정확성을 확보하려면 조사, 테스트, 보안 검토도 필요합니다.












