Web3.js와 Ethers.js

2024. 11. 15. 15:56BlockChain

반응형

Web3.js와 Ethers.js는 모두 장점이 있으며 어떤 것을 사용할지는 프로젝트의 특정 요구 사항에 따라 달라집니다.

Web3.js는 수년 동안 Ethereum 상호 작용을 위한 선택 옵션이었습니다. 많은 확립된 DApp과 프로젝트는 여전히 이를 사용하고 있으며, 특히 Ethereum의 수명 초기에 개발을 시작한 경우 더욱 그렇습니다. 그러나 Web3.js에는 더 큰 파일 크기와 때로는 덜 명확한 API 문제가 있어 Ethers.js가 강력한 대안이 되었습니다.

Ethers.js더 가볍고 모듈식이며 개발자 친화적인 것으로 알려져 있습니다. 보다 간단한 API 디자인으로 인해 신규 개발자에게 더 쉬운 것으로 간주되는 경우가 많습니다. Ethers.js는 지갑 관리 및 ENS(Ethereum Name Service)와의 상호 작용을 강력하게 지원합니다. 이제 새로운 Ethereum 프로젝트, 특히 프런트엔드 DApp에서 더 일반적입니다.

 


현재 많은 개발자가 Ethers.js를 선호하는 이유


ㅇ 모듈화: Ethers.js는 더 작은 모듈로 분할되어 필요한 부분만 가져올 수 있습니다.


ㅇ 더 명확한 API: Ethers.js의 API는 지갑 인스턴스 생성이나 스마트 계약 기능 호출과 같은 일반적인 블록체인 상호 작용에 더 직관적인 경우가 많습니다.


ㅇ 더 나은 문서화 및 지원: 개발자는 Ethers.js 문서가 더 쉽게 따라갈 수 있고 최신 프로젝트 설정에 적합하다고 생각하는 경우가 많습니다.

 


이더리움 개발을 위한 기타 유용한 도구


Web3.js 또는 Ethers.js를 보완하고 계약 개발, 테스트, 배포를 포함한 다양한 기능을 제공하는 추가 도구가 있습니다. 

Hardhat 

ㅇ 목적: Hardhat은 스마트 계약을 컴파일, 테스트 및 배포하는 데 도움이 되는 포괄적인 Ethereum 개발 환경입니다.


ㅇ 기능: Hardhat은 Ethers.js(선호)와 통합되지만 Web3.js에서도 작동합니다. 이를 통해 Ethereum 네트워크를 로컬로 시뮬레이션하고, 계약 상태를 검사하고, 계약 배포를 위한 스크립트를 관리할 수 있습니다.


ㅇ 사용 사례: 공용 네트워크에 배포하기 전에 Solidity 계약을 로컬로 구축, 테스트 및 배포하는 데 유용합니다.

 


Truffle

ㅇ 목적: Truffle은 Ethereum의 초기 개발 프레임워크 중 하나이며 계약 관리, 테스트 실행 및 블록체인 배포를 위한 도구 모음을 제공합니다.


ㅇ 기능: 계약 컴파일, 테스트, 배포를 지원하고 Mocha 및 Chai를 사용하는 테스트 환경이 내장되어 있습니다. Web3.js와 Ethers.js 모두에서 작동합니다.


ㅇ 사용 사례: 테스트, 계약 마이그레이션 및 상호 작용 관리를 위한 모든 기능을 갖춘 프레임워크가 필요한 대규모 프로젝트에 적합합니다.

 


Remix

ㅇ 목적: Remix는 Solidity 계약을 작성, 컴파일 및 배포하기 위한 브라우저 내 IDE입니다.


ㅇ 기능: 빠른 계약 개발 및 테스트에 이상적입니다. Remix에는 내장된 디버깅 도구와 간단한 배포 인터페이스가 함께 제공됩니다.


ㅇ 사용 사례: 소규모 Solidity 계약의 프로토타입을 제작 및 테스트하거나 전체 로컬 환경을 설정하지 않고 Ethereum 개발에 익숙해지는 데 자주 사용됩니다.

 


Ganache

ㅇ 목적: Ganache(Truffle 제품군의 일부)는 로컬 Ethereum 블록체인 에뮬레이터입니다.


ㅇ 기능: 거래, 계약 및 일반 개발 테스트를 위해 개인 Ethereum 블록체인을 실행할 수 있습니다. Ganache는 Web3.js 및 Ethers.js와 함께 사용할 수 있으므로 제어된 환경에서 트랜잭션을 시뮬레이션하고, 가스 사용량을 테스트하고, 계약을 배포할 수 있습니다.


ㅇ 사용 사례: Rinkeby 또는 Goerli와 같은 공개 테스트넷에 배포하기 전에 로컬에서 계약 동작을 테스트하는 데 적합합니다.

 


일반적인 개발 설정


일반적인 Ethereum 프로젝트는 프런트엔드에서 스마트 계약과 상호작용하기 위해 Ethers.js(또는 Web3.js)를 사용할 수 있으며 Hardhat 또는 Truffle과 같은 도구는 컴파일, 테스트와 같은 백엔드 작업을 처리합니다.

Solidity 계약 배포. 신속한 계약 테스트 또는 디버깅의 경우 Remix가 빠른 솔루션이며 Ganache를 사용하면 로컬 블록체인 네트워크에서 보다 통제된 테스트가 가능합니다.

최신 프로젝트는 더 나은 성능, 더 가벼운 라이브러리, 더 쉬운 API 디자인을 위해 Ethers.js를 선호하는 경우가 많습니다.


Web3.js는 여전히 관련성이 있으며, 특히 Web3.js로 시작한 프로젝트나 Web3.js에 더 익숙한 개발자에게는 더욱 그렇습니다.


Hardhat 및 Truffle은 계약 수명주기 관리를 위한 강력한 도구를 제공하여 이러한 라이브러리 중 하나를 보완합니다.

반응형