[몰라도해보는]크립토좀비 Lesson1. 좀비공장만들기 - 1

in kr •  6 years ago  (edited)


https://cryptozombies.io/ko/course
(무작정 링크를 누르고 한번 도전해보기를 바란다. 재미있다!)

loom network에서 제공하는 크립토좀비. 이더리움 Dapp을 만드는데 기본이 되는 언어인 Solidity를 가르쳐주는 콘텐츠이다. 프로그래밍 언어가 처음이라는 친구들에게는 권할 수가 없다. (Solidity를 위해 프로그래밍 공부를 시작한다면 javascirpt를 먼저 공부해보길 추천하고 싶다.) 현재 lesson6 까지 나왔으며, 추후 더 추가될 예정이라고 한다. 한국어 번역도 지원하기 때문에 공부하기에 좋은 콘텐츠인듯.

하지만, 이더리움 기반 게임을 만든다고는 하나, 어떤 방식의 게임이고, 어떤 시스템을 갖춰야하는지 대략적인 설명 없이 무작정 따라하면서 만드는 과정이기 때문에 각 챕터별 지시사항만 따라가다 보면 이걸 내가 왜하고 있는지, 이걸 왜 구현해야하는지 놓치기 쉬운 것 같다. 사실 나도 전체적으로 전부 이해한건 아니지만… 어차피 시도해보며 배우는 인생 아니겠는가.

한번 다시 cryptoZombie를 정주행하면서 포스팅도 하고, 내 공부도 좀 더 심화 시키겠다는 생각으로 덤벼든다. (잘모르는 멍청한 소리를 해도 너그럽게 지적해주길 바란다.)

Lesson1. 좀비 공장 만들기

대망의 시작이다. 자 봐라. 자바스크립트 같은 안다는 전제하에 진행한다고 한다. 그러니까 안해봤으면 공부하고 오면 좋다. 어쨌든 스타트.

챕터1: 레슨 개요

먼저 좀비에 대한 설명이다. 좀비는 16자리 정수로 된 DNA를 가진다. 이 DNA를 바탕으로 좀비의 모양이 바뀐다. 옆에 슬라이더를 움직이면 좀비의 모습을 바꿔볼 수 있다. 포인트는 두가지 인것 같다. 좀비의 DNA는 랜덤이다, DNA로 외모가 결정된다. 그래서 이제 이런 좀비를 만들 공장을 만드는 거다!

챕터 2: 컨트랙트

Solidity를 사용하기 위해서 어느 버전의 solidity를 활용해 프로그래밍을 할지 먼저 선언해야 한다. 크립토좀비에서는 pragma solidity ^0.4.19; 라는 코드를 사용하라고 한다. 지금은 0.4.26 정도가 최신 버전인듯..?
그리고 contract를 만든다. 여기서 contract는 이더리움 어플리케이션의 가장 기본적인 구성요소이다. 변수와 함수, 전부 컨트랙트 안에서 구현되야 한다. (자바로 치면 class와 유사한 개념)
어쨌든 친절하게 지시사항을 따라 작성하면 다음과 같이 코드가 완성된다.

pragma solidity ^0.4.19;          //여기가 솔리디티 버전

contract ZombieFactory {

}         //여기가 컨트랙트

(내용에는 언급되지 않았지만 contract 명명 규칙은 java의 클래스 명명 규칙을 따르는 듯 하다. 명사이고 대문자로 시작했다. 사소한 부분이지만 이런 규칙을 따라 프로그램을 작성하면 보기도 좋고 이해하기도 쉽다.)

챕터 3: 상태변수 & 정수

상태 변수라는 말이 나온다. 정수는 알겠는데 상태변수는 뭐야?
이럴때는 영어단어를 한번 봐본다. State Variables… 더 모르겠다. 도와줘요 구글.
알아본 바로는 solidity는 데이터를 스토리지와 메모리를 이용해 저장하는데 스토리지는 블록체인에 세겨지는 위치, 메모리는 잠깐 쓰고 날라가는 휘발성이 있는 부분이라고 한다.
상태변수는 contract 최상단에 정의되는 변수로 스토리지에 저장되는 부분이다. 즉, 블록체인에 세겨지는 중요한 데이터라는 의미.
이번 챕터에서는 상태변수로 uint라는 데이터타입을 선언하는데, uint는 마이너스 값이 없는 정수의 데이터 타입이다. 즉, 0과 양의 정수로만 넣을 수 있는 데이터 타입.
좀비 DNA의 자리수가 16자리이고, 이 부분 구현을 위해 우리는 스토리지에 변수를 세겨넣는다.

pragma solidity ^0.4.19;

contract ZombieFactory {

    uint dnaDigits = 16;      // 데이터타입 : uint, 변수명 : dnaDigits, 변수값 : 16

}

변수 선언은 위와 같이 한다. 데이터 타입을 정해주고, 변수명을 쓰고 안에 값을 넣어 줌.
Solidity의 데이터 타입에 대해 정리할 일은 있겠지만 일단 지금은 uint만 알아두자. 마이너스 없는 정수형 숫자를 위한 데이터타입이 있는 건 다 이유가 있다.


별거 안했는데 생각보다 시간이 오래걸린다. 별거 아니지만 아는게 없다보니 뭐하나 적으려니 공부해야될 내용도 많네. 함께 만들어가는 콘텐츠가 되었으면 하는 바람이다! 완주를 목표로 도전!
참고문헌 https://d2fault.github.io/2018/03/19/20180319-about-solidity-1/ 코어 이더리움 프로그래밍 – 박재현, 오재훈, 박혜영
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

크립토좀비 강좌가 올라왔네요~
재미있네요. 작성하느라 고생하셨어요.^^

어휴 강좌라니... 부끄럽습니다. 도전기라 생각하시고 재밌게 봐주시면 감사하겠습니다! ㅎㅎ