🔑Web3 프로젝트 세팅 - (1) | 패스트캠퍼스 블록체인 강의 챌린지 6일차
개발 환경 구축
블록체인 환경을 구성해줄 수 있는 프레임워크들을 사용하면 보다 편하게 개발을 시작할 수 있습니다. 우리가 사용할 프레임워크는 Truffle과 Ganache 입니다.
Truffle
Truffle은 스마트 계약을 구축하고 배포하기 위한 도구 모음을 제공하는 이더리움용 개발 프레임워크입니다. 테스트 프레임워크, 배포 파이프라인, 내장 콘솔 등 다양한 기능이 포함된 개발 환경을 제공하여 스마트 계약 작성, 테스트 및 배포 프로세스를 간소화합니다.
Truffle은 프로젝트를 구성하기 위한 표준화된 디렉토리 구조뿐만 아니라 계약을 컴파일, 테스트 및 배포하기 위한 명령줄 도구 모음을 제공합니다. 가나슈, 게스 등 인기 이더리움 클라이언트 소프트웨어와도 통합됩니다.
Truffle을 사용하면 Solidity 또는 기타 이더리움 호환 프로그래밍 언어로 계약을 작성하고, 내장된 테스트 프레임워크를 사용하여 계약을 테스트하고, 이더리움 메인넷, 테스트넷 및 프라이빗 네트워크를 포함한 다양한 네트워크에 계약을 배포할 수 있습니다.
설치는 다음과 같이 진행됩니다.
https://trufflesuite.com/docs/truffle/how-to/install/
Installation - Truffle Suite
Installation Requirements Install Node.js Note: to install the latest version of npm, run npm i -g npm Node Package Manager (NPM) recommends installing Node.js and npm with a Node version manager to avoid permission errors when installing globally. To do s
trufflesuite.com
위의 사이트에 나와있는 내용으로 진행을 하겠습니다. 먼저 Truffle은 nodejs기반이기 때문에 nodejs를 선행으로 설치해주셔야 합니다.
만일 javascript 환경이 익숙하지 않으신 분들은 python 기반 Brownie 프레임워크를 사용하시면 됩니다. https://eth-brownie.readthedocs.io/en/stable/
Brownie — Brownie 1.19.3 documentation
Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine. Note All code starting with $ is meant to be run on your terminal. Code starting with >>> is meant to run inside the Brownie console.
eth-brownie.readthedocs.io
저는 Nodejs환경을 이용해 Truffle 프레임워크를 MacOS 환경에서 진행하겠습니다.
- Install Truffle
npm install -g truffle
npm 을 이용해서 truffle을 글로벌 환경으로 설치를 해줍니다.
저 같은 경우에 다음과 같은 에러가 발생하였습니다.
문제의 원인을 찾아보니 node-gyp를 실행하기 위해서는 따로 command line tool을 설치를 해야한다고 되어있어 xcode-select를 설치를 진행하였습니다.
xcode-select --install
command line tool이 정상적으로 설치된 후에는 truffle이 정상적으로 설치가 되었습니다. 설치 후에는 다음과 같은 명령어를 통해 정상적으로 truffle이 설치되었는지 확인하였습니다.
truffle version
다음과 같이 버전 정보가 뜨면 정상적으로 설치가 완료된 것입니다.
Ganache
Ganache는 로컬 머신에서 이더리움 네트워크의 동작을 시뮬레이션할 수 있는 이더리움 개발용 개인 블록체인입니다. 테스트 및 개발 목적으로 가볍고 빠르며 사용자 정의가 가능한 블록체인 환경을 제공합니다.
Ganache는 실제 이더리움 네트워크 없이 샌드박스 환경에서 계약 및 애플리케이션을 테스트하는 데 사용할 수 있는 로컬 이더리움 네트워크를 만듭니다. Ganache를 사용하여 다양한 가스 가격, 트랜잭션 속도 및 채굴 난이도와 같은 다양한 네트워크 조건을 시뮬레이션할 수 있습니다.
Ganache는 또한 트랜잭션을 검사하고 디버깅하기 위한 내장 GUI와 고급 사용을 위한 CLI(명령줄 인터페이스)를 제공합니다. 트러플, 리믹스와 같은 다른 이더리움 개발 도구와 함께 사용할 수도 있습니다.
설치는 다음과 같이 진행됩니다.
- Install Ganache
https://trufflesuite.com/ganache/
Ganache - Truffle Suite
Features VISUAL MNEMONIC & ACCOUNT INFO Quickly see the current status of all accounts, including their addresses, private keys, transactions and balances.
trufflesuite.com
위 사이트에 들어가서 Ganache 응용 프로그램을 설치하면 다음과 같은 GUI를 확인할 수 있습니다.
1회용으로 사용하기 위해 빠르게 시작을 원한다면 QuickStart 버튼을 눌러주시면 되고, 계속해서 블록체인 네트워크를 관리하고 유지하고 싶으면 New Workspace 버튼을 눌러주시면 됩니다.
QuickStart 버튼을 누르면 다음과 같이 블록체인 지갑을 생성하게 됩니다.
먼저 상단의 Account, Blocks, Transactions, Contracts, Events, Logs 메뉴를 확인할 수 있습니다.
- Account : 임의로 생성된 지갑 리스트를 볼 수 있습니다.
- Blocks : 블록체인 블록을 확인할 수 있습니다. 처음 세팅 후에는 Genesis Block만 있는 것을 확인할 수 있습니다.
- Transactions : Transaction을 확인할 수 있습ㅇ니다.
- Events : Smart Contract에서 발생하는 Events 목록을 확인할 수 있습니다.
- Logs : 블록체인 개념의 Logs가 아닌 Ganache 프로그램이 돌아가는 로그 데이터를 확인할 수 있습니다.
결론
Truffle과 Ganache는 이더리움 네트워크에서 스마트 계약을 구축, 테스트 및 배포하는 데 필수적인 두 가지 도구입니다. Truffle은 프로젝트 관리 및 계약 배포를 위한 도구 모음을 제공하는 반면 Ganache는 테스트 및 개발 목적으로 사용자 정의 가능한 경량 이더리움 환경을 제공합니다.
이어서, 다음 시간에는 Truffle과 Ganache를 이용한 본격적인 Web3 프로젝트를 구축하겠습니다.
한 번에 끝내는 블록체인 개발 A to Z Online. | 패스트캠퍼스
블록체인 Dapp 개발부터 클론코딩 실습까지 하면서 마스터해보세요!
fastcampus.co.kr
*본 게시글은 패스트캠퍼스 후기 이벤트 참여를 위해 작성되었습니다.