크립토 좀비로 공부하는 솔리디티 #01

이인수·2022년 3월 21일
0

TIL

목록 보기
25/26

크립토 좀비는 이더리움 스마트 컨트랙트 언어인 솔리디티(Solidity)를 게임으로 배울 수 있게 만든 잘 만들어진 튜토리얼이다.

좀비 공장 만들기

크립토 좀비의 Lesson 1은 "좀비 공장 만들기"로 계약지향 언어인 솔리디티를 사용해 좀비를 만드는 과정을 학습한다.

Chapter 1 : 레슨 개요

이번 챕터에서는 16자리 정수로 이루어진 DNA를 가진 좀비를 생성하는 코드를 만들기 전에 16자리 정수가 어떤 역할을 하는지 슬라이드를 통해 실험해보는 과정이었다.
(그냥 게임에서 캐릭터 만드는 느낌?)

예를 들어, 8356281049284737의 16자리 정수가 있다고 보면 두 자리씩 끊어 머리, 눈, 셔츠, 피부색, 눈 색깔, 옷 색깔과 조합하는 것이다.

처음 두 자리(83)는 머리, 다음 두 자리(56)는 눈....

이 챕터를 통해 느낀 점

왜 이런식(16자리 정수)으로 좀비를 생성하는지 생각해보니 NFT 조합이 떠올랐다.
크립토 펑크(NFT)를 보면 각각의 얼굴과 몸을 만들고, 거기에 눈, 코, 입, 모자, 악세사리, 옷 등을 몇개씩 만들어 조합하는 방식으로 경우의 수가 엄청나게 나오기 때문에 1000~100000개까지 컬렉션을 만들어 낼 수 있다.


Chapter 2 : Contract

우리의 좀비 군대 생성을 시작하기 위해 ZombieFactory라는 기본 컨트랙트를 생성해 보세!
1. 우측 박스에 우리 컨트랙트가 솔리디티 버전 0.4.19를 쓸 수 있도록 설정한다.
2. ZombieFactory라는 빈 컨트랙트를 생성한다.

처음 솔리디티 코드를 시작할 떄 제일 먼저해야 하는 것은 Version Pragma설정하는 것이다. 모든 솔리디 소스 코드가 이용해야 하는 솔리디티 버전을 선언하는 것이 바로 Version Pragma 설정이다.
이는 새로운 컴파일러 버전이 나와도 기존 코드가 깨지지 않도록 예방하기 위함으로 설정한다.

이더리움의 REMIX IDE를 사용 하다보면 가끔 요런 에러가 뜬다.

ParserError: Source file requires different compiler version (current compiler is 0.5.10+commit.5a6ea5b1.Emscripten.clang - note that nightly builds are considered to be strictly less than the released version

이는 컴파일러의 버전이 다르다는 에러이고, 위의 Version Pragma를 알맞게 설정해주면 에러는 사라진다.

이 챕터를 통해 느낀 점

이미 솔리디티에 대해 아주 조금은 알고 있었지만 단계적으로 기초 뼈대부터 알려주니 신선하게 다가왔다. 솔리디티는 주로 자바 or 타입스크립트와 비슷하다고들 하는데, 아직까지는 잘 모르겠다.

여기서 궁금한 점은 바로 캐럿(^)이라고 불리는 꺽쇠였다. 버젼 명시하는 것은 알겠는데, 여기저기 찾아보니 버전만 명시되어 있지 않고, 부호까지 같이 명시 되어있는 소스 코드들이 많았다.
결론부터 말하자면, 캐럿 or 부호들을 사용하지 않는게 보통 안정성을 위해 더욱 권장된다고 한다.

예를 들어, 위의 ^0.4.19; 에서 (^)가 있으면 메이저 버전이 4인 버전들 중 0.4.19 이상인 버전들은 가능하다는 말이다.
또한, pragma solidity >=0.7.0 <0.9.0;라고 부호로 명시되어있으면 0.7 ~ 0.9의 버전을 사용하라는 뜻이다.

0개의 댓글