블록체인 프로그래밍 입문자라면 어떻게 시작해야 할지 막막할 수 있습니다.
2019년 한창 블록체인이 인기가 있을 무렵(물론 지금 다시 뜨거워졌습니다.) 이더리움 기반의 블록체인 스마트 컨트랙트를 만들게 되었습니다.
블록체인 관련은 처음이었기 때문에, 어디서 시작해야 할지 구글과 한달 넘게 씨름을 했었는데요.
기본적으로 solidity에 대해서 공부를 하게 되었고, 개발 환경으로는 Truffle, Geth 등등을 찾아서 이것 저것 해보았지만, 잘 알기가 어려웠습니다.
그러다가 전문적이지는 않아도 초보자도 블록체인 스마트 컨트랙트를 만들어서 배포 및 서비스를 할 수 있는 툴을 몇개 알게 되었고, 궁극적으로 목적을 달성했었습니다.
1. 블록체인 프로그래밍 언어 : solidity
솔리디티는 이더리움 기반의 스마트 컨트랙트를 만드는 언어입니다. 자바스크립트, C++을 계승한 듯한 사용법이라서 기존에 프로그래밍을 조금 공부하고 익힌 사람이라면 손쉽게 익힐 수 있습니다.
또한 솔리디티는 스마트 컨트랙트를 만들기 위한 언어에 걸맞게 다양한 샘플을 제공합니다.
실질적으로 샘플 코드를 가지고 공부를 하다가, 본인들이 필요로 하는 스마트 컨트랙트에 맞게 조금씩 변형해서 사용하면 초보자도 쉽게 할 수 있습니다.
2019년만 하더라도 번역이 다 되어 있지 않아서 번역까지 하느라 어려웠는데요.
지금은 한국어로 번역도 잘되어 있습니다.
대표적인 스마트 컨트랙트인 투표, 경매, 안전거래 등에 대한 샘플이 있으며, 솔리디티가 버전업이 될때마다 거기에 맞게 내용을 업데이트 하고 있습니다.
솔리디티가 계속 버전업을 하는 가장 큰 이유는 바로 보안 취약점에 대한 보완 때문입니다.
취약점을 이용해 지속적으로 코인을 강탈하려는 사람들이 있기 때문에 이에 대해서 근본적으로 방어할 수 있는 업데이트가 계속 되고 있습니다.
2. 리믹스
솔리디티를 프로그래밍하고 테스트 하는 환경은 여러개가 있습니다.
그 중에서 초보에게 적당한 것이 바로 Remix라는 툴입니다.
리믹스는 웹 브라우저에서 구동하기 때문에 설치가 필요 없고, 사용이 간단합니다.
내부 가장 머신에서 작성한 코드를 테스트 할 수 있으며, 이더리움 테스트 넷 또는 이더리움 메인넷으로 배포도 손쉽게 할 수 있습니다.
웹상에서 기존에 작업하던 솔리디티 파일들이 계속 저장되고 있어 편리하지만, 웹 기록 삭제를 하는 경우 다 날라가버리니 로컬에 백업해 놓는 것을 잊으면 안됩니다.
다양한 플러그인 들도 있고, 사용법도 어렵지 않으니 초보 블록체인 프로그래밍 입문자라면 사용하시기 편리합니다.
3. 메타마스크
이더리움 기반의 지갑 기능을 제공하는 툴로서, 크롬, 파이어폭스, 오페라, 브레이브 브라우저 등의 웹 브라우저를 지원합니다.
로그인이나 지갑 기능을 만든다는 것은 초보자에게 매우 어려운 일입니다.
하지만, 이미 무료로 지갑 기능을 서비스하는 곳이 있다면, 비용과 시간 절약을 위해서 사용하는 것이 현명한 판단이라고 생각합니다.
메타마스크와 연결은 간단합니다. 아래 설명드릴 web3.js라는 자바스크립트 프레임워크에서 연동하면 자동으로 찾아서 진행이 되기 때문입니다.
4. web3.js
스마트 컨트랙트와 블록체인이 서버와 같은 역할을 한다고 했을때, 프론트를 보여주는 곳은 대부분 웹 페이지입니다.
그러면 웹 페이지와 스마트 컨트랙트를 어떻게 연동할 수 있을까요?
자바스크립트를 사용할 줄 안다면 web3에서 제공하는 api들만 알고 있으면 블록체인 스마트 컨트랙트와 웹페이지 연동을 손쉽게 할 수 있습니다.
web3.js는 가장 대표적인 이더리움 자바스크립트 api로서 http, ipc, websocket으로 그저 웹 페이지에서 link를 하거나 npm 또는 yarn으로 로컬에 설치를 하면 이더리움 네트워크와 웹페이지를 연결합니다.
web3.js document 페이지에서 초보분들을 위한 시작하기 튜토리얼 및 함수 사용 샘플 예제등을 보여주는데요.
비록 영어로 표시된다는 허들이 있지만, 몇가지만 알아내면 어렵지 않게 할 수 있습니다.
2019년 코인 폭발적인 성장이후 지난 2년간 주춤했었는데, 코인들이 점점 더 세상으로 발을 내딛는 시기가 오게되지 않을까 싶습니다.
그렇다면 블록체인 관련 프로그래밍 기술을 가진 사람들에 대한 니즈가 커지지 않을까요?
'프로그래밍' 카테고리의 다른 글
Brackets 을 대체할 코드 편집기 추천 5가지 (0) | 2021.03.09 |
---|---|
serverless 프레임워크와 장단점 (0) | 2021.03.08 |
ini 파일 유니티에서 읽고 쓰는 방법 (0) | 2021.03.06 |
유니티 윈도우 빌드 메뉴 프레임 없애는 방법 (0) | 2021.03.05 |
자바 스크립트 대체 언어들과 효율성 (0) | 2021.03.04 |