- Solidity는 Smart contract를 구현하기 위해 만들어진 이더리움 전용 언어
- Python, C++, Javascript 등 언어와 사용법이 유사하며, EVM(Ethereum Virtual Machine)에서 구동됨
Integrated Development Environment
- 솔리디티를 지원하는개발 환경은 Remix, IntelliJ, Visual Studio, Atom, Vim Solidity 등 존재
Solidity 통합 도구 에서 확인 가능 - 별도로 복잡한 환경을 세팅을 할 필요가 없고, 항상 최신 버젼의 환경에서 코딩, 컴파일, 배포 등 모든 개발 기능을 사용할 수 있기 때문에 일반적으로 웹 브라우저 기반 IDE : Remix online 버젼을 많이 사용
- 이 포스팅에서는 visual stuido code를 이용
(특별한 이유는 없고 전체적인 환경 세팅을 시도해보고자 선택하였습니다)
SublimeText, Atom, VScode 중 IDE를 고민하고 계신 분들은 한번쯤 읽어보시면 좋을 듯 합니다(https://www.clien.net/service/board/use/10427772)
기본 환경 구성
먼저 아래의 3가지를 기본적으로 설치하고 진행
Node.js를 통해 나머지 환경 세팅을 진행
Windows PowerShell에서 npm을 설치
(명령어 : npm install -g npm)
npm은 Node Packaged Manager의 약자로, Node.js로 만들어진 package(module)을 관리해주는 툴
(솔리디티를 이용해 구현할 때 필요한 package를 npm이라는 명령어를 통해 설치하게 되는데, 저는 간단히 리눅스에서 pip과 같은 것이라고 생각하며 진행하였습니다)
(혹시 이해가 안가시는 분은 만약 우리가 윈도우에서 필요한 소프트웨어를 홈페이지가서 다운로드한 후 그 설치 파일을 실행시켜 설치를 하는데 그 과정 없이 정해져 있는 명령어 한줄을 커맨드창에 타이핑하여 설치하신다고 생각하시면 될 듯 합니다)Windows PowerShell에서 truffle 설치
( 명령어 : npm install -g truffle)
truffle은 ethereum framework이며, 프로그래밍한 솔리디티 소스 코드를 compile, deploy 작업들을 쉽게 할 수 있게 도와주며, smart contract를 쉽게 테스트할 수 있는 방법도 제공
(truffle을 사용하지 않고 직접 compile과 deploy하는 과정을 프로그래밍하여 처리가 가능하지만 저는 아직 직접 해본경험은 없고 편하게 truffle을 사용해봤습니다)설치가 정상적으로 되었으면 다음과 같이 버젼 확인 가능
(명령어 : node -v)
(명령어 : npm -v)
(명렁어 : truffle version)
truffle version의 출력값 중에 Solidity 버젼은 솔리디티 프로그래밍 시 Solidity Compiler 버젼을 맞춰주어야 하는데 그때 필요한 정보
앞서 설치한 Visual Studio Code에 Solidity를 설치
VS code를 실행 후, Ctrl + Shift + X 를 누르면 Extension 창이 나오게 되는데 해당 창에 Solidity 타이핑 후 클릭하여 install 진행
윈도우에서 자신이 프로젝트를 진행할 폴더를 생성
(저는 바탕화면에SolidityTest
로 만들었습니다)VS code에서 Ctrl + Shift + E를 누르면 작업할 Explorer 이동 후,
Open Folder
를 클릭하여 자신이 생성한 폴더로 경로 설정
Ctrl + Shift + ` 을 누른 후 터미널 창을 실행 하여 손쉽게 기본 개발 환경 구성
(명령어 : truffle init)
Metacoin Tutorial
- truffle은 smart contract를 쉽게 테스트할 수 있는 방법도 제공
(여기서는 Metacoin을 활용하여 테스트를 해볼 것입니다)
(이 포스팅에서기본 환경 구성
후 이어서 하시는 분들은 새로운 폴더를 생성하여 그 공간에서 진행하거나 truffle init을 실행하여 생긴 데이터들을 다 삭제 후 진행하시면 됩니다)
(truffle init을 통해 기본 환경 구성 후 truffle unbox metacoin을 실행 하면 이미 존재하는 구성파일이 있어 error가 발생합니다)
(저는 Metacoin
이라는 새 폴더를 생성 후 그 공간에서 진행하였습니다)
- 터미널 창에서 Metacoin의 예제 파일를 설치 및 환경 구성
(명령어 : truffle unbox metacoin)
명령어 실행을 통해 생성된 파일에서 contracts 폴더에 ConvertLib.sol, MetaCoin.sol, Migrations.sol라는 3가지 솔리디티 파일들이 존재
(이중 하나를 클릭해 보면 우리가 테스트해볼 MetaCoin의 Smart contract가 프로그래밍 되어 있단 것을 확일 할 수 있습니다)터미널 창에 MetaCoin 예제를 complie 실행
(명령어 : truffle compile)
build라는 폴더가 새롭게 추가되었다는 것을 contracts 폴더 위에 확인
이제 contract들을 test network에 migrate 하기 위해 truffle development environment를 실행
(명령어 : truffle develop)
truffle development environment를 실행하면 자동으로 10개의 adrress와 key가 구성됨
test network 환경에 contracts를 배포
(명령어 : migrate)
성공적으로 contracts가 test network 환경에 배포되었으며, 'test' 폴더에 있는 파일들을 test 할수 있음
Testing the Contracts
(명령어 : test)
test가 정상적으로 동작하는 것을 확인
이번 포스팅에 작성한 내용을 공부하면서 참고하였던 자료입니다.
- https://medium.com/@wslyvh/get-started-with-ethereum-solidity-on-windows-1672e9953a1
- https://medium.com/edgefund/ethereum-development-on-windows-part-1-da260f6a6c06
이 글은 혼자 공부해보면서 정리한 글입니다.
의견들을 댓글로 작성해주시면 같이 공부하는데 큰 도움이 될 것 같습니다.
Thank you so much for sharing this amazing post with us!
Have you heard about Partiko? It’s a really convenient mobile app for Steem! With Partiko, you can easily see what’s going on in the Steem community, make posts and comments (no beneficiary cut forever!), and always stayed connected with your followers via push notification!
Partiko also rewards you with Partiko Points (3000 Partiko Point bonus when you first use it!), and Partiko Points can be converted into Steem tokens. You can earn Partiko Points easily by making posts and comments using Partiko.
We also noticed that your Steem Power is low. We will be very happy to delegate 15 Steem Power to you once you have made a post using Partiko! With more Steem Power, you can make more posts and comments, and earn more rewards!
If that all sounds interesting, you can:
Thank you so much for reading this message!
Congratulations @sbpark! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!