일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- mockito
- ReactiveProgramming
- 커스텀상태
- kotlin강좌
- 스레드
- 회고
- viewmodel
- 책
- theming
- Compose
- 안드로이드스튜디오
- g 단위테스트
- 알게되는
- 코루틴
- Kotlin
- 안드로이드강좌
- 병럴프로그래밍
- 안드로이드
- 글또
- Coroutine
- 자바
- 디자인패턴
- 알고리즘
- 코틀린
- Gradle
- 병렬프로그래밍
- Rxjava
- android
- 테스트
- k8s
- Today
- Total
선생님, 개발을 잘하고 싶어요.
이더리움 레슨 1 정리 본문
참고 강좌 : https://cryptozombies.io/ko/
좀비 데이터베이스
좀비를 생성하는 함수
각 좀비는 랜덤하고 독특한 외모 -> 좀비 DNA(16자리 정수)로 결정
컨트랙트
- 이더리움 어플리케이션의 기본적인 구성 요소
- 변수와 함수는 어느 한 컨트랙트에 포함
- 프로젝트의 시작 지점
- contract Name {}
version pragma
- 코드가 이용하는 솔리디티 버전을 선언
- 새로운 컴파일러 버전이 나와도 기존코드 운용 가능성
- pragma solidity <version>
상태 변수
- 컨트랙트 저장소에 영구적으로 저장
- 이더리움 블록체인에 기록
- 데이터베이스에 데이터를 쓰는 것과 동일
- uint는 uint256 과 동일
- string은 UTF-8 데이터
배열
- 정적 배열 (uint[3] -> 크기가 3인 고정 길이의 배열)
- 동적 배열 (uint[] -> 고정된 크기가 없이 계속 크기가 증가할 수 있는 배열)
- Public 배열 (uint[] public ints; -> 다른 컨트랙트에서 읽을수 있는 배열, 공개 데이터를 저장할 때 사용)
함수
- function Name(Parameter pName) {}
- 기본적으로 public 선언 -> 다른 컨트랙트에서도 호출 가능
- function _Name(Parameter pName) private {} -> private 함수 (_로 시작하는게 관례)
- view 함수는 데이터를 변경하지 않는다 (c++의 const 함수와 비슷한 의미인것 같다!)
- function Name() public view returns (~) {}
- pure 함수는 어떤 데이터도 접근하지 않는다 (매개변수에만 접근 하는것같아)
- function Name() public pure returns (~) {}
- 솔리디티 컴파일러는 어떤 제어자(view, pure)를 사용할지 경고 메시지를 띄워준다.
# 의사 난수 발생기?
이벤트
- 컨트랙틑가 블록체인의 사용자 단에서 액션이 발생했을 때 의사소통 하는 방법
- event EventName(Parameter pName);
- 사용자 단의 자바스크립트 코드! (Web3.js 라는 자바스크립트 라이브러리를 가지고 있다)