일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Kotlin
- 안드로이드강좌
- Rxjava
- 병렬프로그래밍
- 코틀린
- Gradle
- 스레드
- 자바
- ReactiveProgramming
- Compose
- 병럴프로그래밍
- mockito
- 안드로이드스튜디오
- 커스텀상태
- kotlin강좌
- 코루틴
- Coroutine
- viewmodel
- 알게되는
- 회고
- theming
- 책
- 테스트
- android
- g 단위테스트
- 안드로이드
- 디자인패턴
- k8s
- 글또
- 알고리즘
- Today
- Total
선생님, 개발을 잘하고 싶어요.
이더리움 레슨 3 정리 본문
컨트랙트를 배포하고 나면 변하지 않는다. (수정과 업데이트가 불가능)
배포한 최초의 코드는 블록체인에 영구적으로 존재
따라서 DApp의 일부를 수정할 수 있도록 함수를 만드는 것이 합리적
컨트랙트를 소유 가능하게 만드는 것
생성자 : function Ownable()
함수 제어자 : modifier onlyOnwer()
- 다른 함수들에 대한 접근을 제어자
- 함수 실행 전의 요구사항 충족 여부를 확인
- 오직 컨트랙트의 소유자만 해당 함수를 실행할 수 있도록 제한 가능
- 제어 하는 함수를 실항하기전에 함수 제어자 실행
- _; 부분에 제어 하는 함수 실행
- require 체크?
가스
- DApp의 함수를 실행할 때마다 "가스"라고 불리는 화폐를 지불
- 이더를 이용해 가스를 구매
- 각각의 연산에 소모되는 가스 비용(gas cost)가 있다.
# 사이드 체인과 이더리움 메인넷?
- 구조체 안에서는 가능한 작은 크기의 정수 타입을 쓰는 것이 좋다 (압축)
- 동일한 데이터 타입은 하나로 묶어놓는 것이 좋다.
시간 단위
- now 라는 키워드 제공
- days, seconds 등 다양한 편의 요소 제공
보안
- public과 external 함수를 검사
view 함수는 가스를 소모하지 않는다. -> 블록체인 상 아무 것도 수정하지 않기 때문
storage는 비싸다 -> 블록체인에 영구적으로 기록되기 때문
메모리에 배열선언 (storage의 배열을 직접 업데이트하는 것보다 저렴)
function getArray() external pure returns(uint[]) {
uint[] memory values = new uint[](3); // 반드시 길이 인수와 함꼐 생성
values.push(1); values.push(2); values.push(3);
return values;
}
'개발 > 이더리움 솔리디티' 카테고리의 다른 글
이더리움 레슨 5 정리 (0) | 2018.09.26 |
---|---|
이더리움 솔리디티 2강 정리 (0) | 2018.09.17 |