선생님, 개발을 잘하고 싶어요.

이더리움 레슨 3 정리 본문

개발/이더리움 솔리디티

이더리움 레슨 3 정리

알고싶은 승민 2018. 9. 25. 15:10

컨트랙트를 배포하고 나면 변하지 않는다. (수정과 업데이트가 불가능)

배포한 최초의 코드는 블록체인에 영구적으로 존재

따라서 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
Comments