크립토좀비 솔리디티 #4 (구조체 편)

    본 포스팅은 크립토좀비의 레슨1 챕터5 (구조체 편)의 내용을 설명한 내용입니다. 크립토좀비는 룸 네트워크(Loom Network)라는 블록체인 업체가 만든 강의 및 게임입니다. 매우 재미있고 쉽게 솔리디티(Solidity)를 배울 수 있는 가이드를 제공합니다.


    이전포스팅



    구조체(Struct)는 무엇인가?


    이전 변수에 대한 강좌에서 우리는 변수라는 것은 데이터를 넣는 공간이라는 것을 알게 되었습니다. 숫자도 넣을 수 있고 문자도 넣을 수 있고, 그외에도 다양한 데이터를 변수에 담을 수 있습니다.


    그럼 한번 자동차를 변수로 표현해 보도록 해보겠습니다. 우선 바퀴도 있고, 본네트도 있고, 창문도 있고...너무나도 많은 것들이 이루어져서 자동차가 됩니다. 어찌저찌 수많은 변수들을 만들어서 자동차를 표현했다고 가정해 보겠습니다.


    그럼 그랜져, 소나타, 스포티지 같은 자동차를 여러대 표현하려면 어떻게 해야 할까요? 다시 변수를 여러개 쌍으로 만들어야 할까요? 이런 미련한 짓을 저지르지 않기 위해서, 프로그램 언어들은 다양한 방식으로 구조를 지원합니다. 


    솔리디티는 구조체(Struct)라는 것을 제공하여 이러한 문제를 해결 합니다. 예를 들어 "struct car{}" 라는 선언을 한 후, 그 안에 자동차에 관련된 변수들을 선언하고 이러한 구조체들을 여러개 만드는 것이죠.


    사용법

    struct 구조체명{

    변수1;

    변수2;

    ...

    변수N;

    }



    자동차 구조체 선언 예시

    struct car {

    uint wheel;

    string window;

    string bonnet;

    }


    위와같이 선언된 구조체를 여러번 호출하여, 소나타도 만들어보고, 스포티지도 만들어보고 그랜져도 만들어보고 할 수 있는 것입니다.



    문제 및 문제풀이


    문제


    문제 풀이

    pragma solidity ^0.4.19;

    contract ZombieFactory {

    uint dnaDigits = 16;
    uint dnaModulus = 10 ** dnaDigits;

    // 여기서 시작
    struct Zombie {
    string name;
    uint dna;
    }
    }


    Zombie라는 이름의 구조체를 선언했으며, 구조체에는 문자형 변수로 name과 양수형 변수로 dna 변수 2개 담겨져 있습니다. 



    강의에 관련된 크립토좀비 경로

    https://cryptozombies.io/ko/lesson/1/chapter/5



    댓글

    Designed by JB FACTORY