챕터 1 ; 좀비공장 만들기 개요
- 공장 내 모든 좀비의 데이터베이스 유지
- 좀비를 생성하는 함수 작성
- 좀비는 각각 랜덤하게 독특한 외모를 가짐
좀비 DNA 활용법
총 16자리 정수로 이루어져 있음 (ex. 8356281049284737 )
실제 DNA처럼 숫자의 각 부분은 좀비의 특성과 연결됨. (ex. 처음 2자리 83은 좀비의 머리와 연결 등)
챕터 2 ; 컨트랙트
- 이더리움 애플리케이션의 기본 구성 요소
- 솔리디티라는 언어로 작성
- 모든 프로젝트의 시작 지점
- 모든 변수와 함수는 어느 한 컨트랙트에 속함
- 형태
- 모든 솔리디티 코드는 "version pragma"로 시작해야 함 : 솔리디티 버전 선언 / 이후 새 컴파일러 버전이 나와도 기존 코드가 깨지는 것을 방지
챕터 3 ; 상태변수 & 정수
- 상태변수
- 컨트랙트 저장소에 영구 저장 = 이더리움 블록체인에 기록 ≒ 데이터베이스에 데이터 기록
- 부호 없는 정수 : uint
- uint = uint256
- 종류 : uint8, uint16, uint32 등 ( 더 적은 비트 선언 )
- 부호가 있는 정수는 int 자료형 사용.
- 형태
챕터 4 ; 수학 연산
솔리디티 연산 종류
- 덧셈: x + y
- 뺄셈: x - y,
- 곱셈: x * y
- 나눗셈: x / y
- 모듈로 / 나머지: x % y (이를테면, 13 % 5는 3이다. 왜냐면 13을 5로 나누면 나머지가 3이기 때문이다)
- 지수 연산도 지원하지 (즉, "x의 y승", x^y이지): uint x = 5 ** 2;
챕터 5 ; 구조체
- 원하는, 복잡한 자료형을 만들 수 있다.
- 형태
챕터 6 ; 배열
- 종류 : 정적배열 / 동적배열
- 정적배열 : 원하는 개수를 담을 수 있는 고정 길이의 배열 ex) uint[2] fixedArray; string[5] stringArray;
- 동적배열 : 고정된 크기가 아닌 크기가 계속 커질 수 있는 배열 ex) uint[] dynamicArray;
- 특이사항
- 구조체의 배열도 생성 가능 : 구조체를 동적 배열로 생성하면 마치 데이터베이스처럼 컨트랙트의 구조화된 데이터를 저장하는데 유리. (상태 변수는 블록체인에 영구 저장되므로)
- Public 배열
- 솔리디티에서는 해당 배열에 대하여 getter 메소드를 자동 생성함.
- 다른 컨트랙트가 이 배열을 읽을 수 있다. (쓸 수는 없음)
- 컨트랙트에서 공개할 데이터를 저장할 때 유리
챕터 7 ; 함수 선언
- 형태
- 언더바( _ )로 시작하는 변수(인자) : 전역 변수와 구별하는 관례 (의무X)
- 선언
- 호출
'Language > Solidity' 카테고리의 다른 글
CryptoZombies ; Lesson 1-2 - 핵심내용정리 (0) | 2018.06.20 |
---|