[ 一日30分 인생승리의 학습법] Truffle을 이용한 DApp 개발환경 구성

Truffle을 이용한 DApp 개발환경 구성

이 글에서는 초보자들을 위한 이더리움 DApp 만들기 내용을 기반으로 DApp개발에 사용되는 Truffle Framework에 대한 소개와 함께 실제 개발 환경 구성을 위한 과정을 설명합니다. 이더리움 DApp개발에 관한 전체 과정은 초보자들을 위한 이더리움 DApp 만들기를 참고하세요.

Truffle Framework란?

Truffle Famework는 솔리디티 코드(스마트 컨트랙트)를 로컬 환경에서 보다 쉽게 컴파일하고 배포할 수 있는 프레임워크입니다. 초보자들을 위한 이더리움 DApp 만들기 에서 소개한 바와 같이, DApp 개발은 큰 단위로 Front-end와 Back-end로 나눌 수 있으며 Truffle Framework는 Back-end 컨트랙트 작성에 사용할 수 있습니다.

Truffle에서는 compile, deploy, test 등의 명령어를 지원하여 솔리디티 컨트랙트 컴파일부터 블록체인 배포까지 쉽게 처리할 수 있으며 무엇보다도!! truffle init 명령어를 통해 손쉽게 기본 개발 환경을 구성할 수 있습니다.

Truffle을 사용할 때 만들어지는 기본 디렉토리 구조는 다음과 같습니다.

  • contracts/ : Solidity 컨트랙트 소스 디렉토리
  • migrations/ : 이더리움 네트워크에 배포(deploy)할 때 사용되는 JavaScript 파일 디렉토리
  • test/ : Application, Contract 테스트 파일 디렉토리
  • truffle.js : Truffle configration file

이외에도 다양한 예제 프로젝트를 통해 Contract 컴파일 및 deploy를 정말 쉽게 할 수 있습니다!

이번 포스팅에서는 Metacoin tutorial을 통해 Truffle Framework의 설치부터 컨트랙트 컴파일 및 배포 과정을 전체적으로 알아보겠습니다.

Dependency

Truffle Install

Truffle은 node.js플랫폼 설치 후 npm명령어를 통해 설치할 수 있습니다.
설치 링크 에서 OS환경에 맞는 node.js를 설치합니다.

node.js 설치 후 Truffle 메인에 있는 npm install -g truffle 명령어로 설치합니다.

Ganache Install

Local에서 블록체인 테스트를 위한 Ganache를 설치합니다. Ganache는 가상의 계좌를 제공하며 각 계좌별로 100 ETH를 제공합니다.

  • 명령어를 통한 설치: npm install -g ganache-cli

ATOM Install

개발 편의성을 위한 편집툴 ATOM을 설치합니다.

Package 설치

  • Windows: Packages > Setting View > Open > Install packages/Themes
  • Mac: Preference > Install
  • linter-solidity, autocomplete-solidity 설치

Atom package가 설치 완료되면 다음과 같이 Indent, Soft Wrap 등 Solidity 코드 편집기능이 활성화되어 개발이 용이합니다.

Metacoin tutorial

Command: truffle unbox metacoin (설치를 원하는 경로로 이동한 뒤 해당 명령어를 통해 설치)

아래 이미지는 truffle_practice 디렉토리에 metacoin 예제가 성공적으로 설치 완료된 모습입니다.

  • mkdir truffle_practice > cd truffle_practice > truffle unbox metacoin

Atom 편집툴에서 본 Metacoin 구성입니다. compile 전이기 때문에 build 디렉토리는 아직 생성되지 않은 모습입니다.

Metacoin 실행을 위해 network configration 을 설정해야 합니다. 설치 경로에 있는 truffle.js 파일의 내용을 수정해줍니다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

여기서는 Ganache 를 통한 local 환경에서 deploy를 할 것이기 때문에 localhost 주소와 8545 포트로 설정하였습니다. 설정에 관한 자세한 사항은 공식 페이지 에서 확인할 수 있습니다.

MetaCoin 예제 실행

compile 및 deploy를 하기 전 Ganache 를 실행합니다.

  • ganache-cli

총 10개의 Private Key를 볼 수 있습니다. 각 계정 주소는 테스트를 위해 100ETH를 가지고 있습니다.

성공적으로 Ganache를 실행하였다면 새로운 커맨드 창에서 metacoin 예제 compile을 진행합니다.

  • truffle compile

성공적으로 compile을 완료한 모습입니다.

build 디렉토리가 생성된 것을 확인할 수 있습니다.

Metacoin 프로젝트 폴더에서 truffle migrate 명령어를 실행하면 컨트랙트 컴파일 및 deploy 결과를 확인 할 수 있습니다.

  • truffle migrate

Truffle migrate 명령어를 통해 Ganache에서 트랜잭션 처리가 된 것을 확인할 수 있습니다!

지금까지 Truffle Framework 설치부터 Metacoin 예제를 통한 solidity 파일 컴파일, local deploy, 트랜잭션 발생 및 확인 과정을 진행해 보았습니다. 다음엔 Metacoin 예제가 아닌 Truffle init 을 통한 기본 디렉토리 구조에서 직접 작성한 solidity 코드를 컴파일, deploy 하는 과정을 알아보도록 하겠습니다!

[출처] https://medium.com/@weekly.teckle/truffle%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-dapp-%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%84%B1-14a98dc49db2

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1091 [빅데이터의 활용의 오해] 데이터가 당신을 스마트하게 만들고 있을까? 졸리운_곰 2022.09.01 10
1090  [ 一日30分 인생승리의 학습법 ] [Git] Git 명령어 정리 졸리운_곰 2022.08.16 19
1089 [ 一日30分 인생승리의 학습법 ] LLVM이란 file 졸리운_곰 2022.08.13 22
1088 [ 一日30分 인생승리의 학습법 ] Build Your Own Remote Desktop Application using Javascript, Python & WebRTC — Part 2 file 졸리운_곰 2022.08.05 25
1087 [ 一日30分 인생승리의 학습법 ] Build Your Own Remote Desktop Application using Javascript, Python & WebRTC — Part 1 file 졸리운_곰 2022.08.05 13
1086 [ 一日30分 인생승리의 학습법 ] REST API 규칙 졸리운_곰 2022.08.03 15
1085 [ 一日30分 인생승리의 학습법 ]REST API 설계 (네이밍) 졸리운_곰 2022.08.03 11
1084 [ 一日30分 인생승리의 학습법] [2탄!!] KrakenD Demo 면을 알아보죠! file 졸리운_곰 2022.08.01 13
1083 [ 一日30分 인생승리의 학습법] [1탄!!]KrakenD가 무엇인가? 과연 Api Gateway로 으뜸인가요? file 졸리운_곰 2022.08.01 12
1082 [ 一日30分 인생승리의 학습법] 오픈소스 라이선스 별 의무사항 졸리운_곰 2022.07.29 18
1081 [ 一日30分 인생승리의 학습법] The complete guide to (external) Domain Specific Languages file 졸리운_곰 2022.07.08 24
1080 [ 一日30分 인생승리의 학습법] [Elasticsearch] 기본 개념잡기 file 졸리운_곰 2022.06.02 23
1079 [ 一日30分 인생승리의 학습법]node - pm2로 node.js 프로세스 관리하기 - 기본 명령어, 실행하기 file 졸리운_곰 2022.05.28 17
1078 [ 一日30分 인생승리의 학습법][1탄!!]KrakenD가 무엇인가? 과연 Api Gateway로 으뜸인가요? file 졸리운_곰 2022.04.15 15
1077 [ 一日30分 인생승리의 학습법][API Gateway] Kong Gateway 설치 file 졸리운_곰 2022.04.15 31
1076 [ 一日30分 인생승리의 학습법] TeX_및_LaTeX_수식_문법 file 졸리운_곰 2022.03.19 53
1075 [ 一日30分 인생승리의 학습법] Visual Basic application on linux 졸리운_곰 2022.02.22 16
» [ 一日30分 인생승리의 학습법] Truffle을 이용한 DApp 개발환경 구성 file 졸리운_곰 2022.02.20 86
1073 [ 一日30分 인생승리의 학습법]LaTeX 활용해서 논문쓰장 file 졸리운_곰 2022.02.17 20
1072 [ 一日30分 인생승리의 학습법] LaTeX 초보자가 감을 잡는 것을 돕는 몇가지 팁 졸리운_곰 2022.02.17 279
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED