이더리움 솔리디티 2강 정리
주소(address)
- 이더리움 블록체인은 계정들로 이루어져 있다.
- 계정은 이더리움 블록체인상의 통화인 "이더"의 잔액을 가진다.
- 계정을 통해 다른 계정과 "이더"를 주고 받을 수 있다.
- 계정은 "주소(address)"를 가지고 있다. (ex 0x0cE446255506E92DF41614C46F1d6df9Cc969183)
- 주소는 특정 유저(혹은 스마트 컨트랙트)가 소유한다.
매핑(mapping)
- 솔리디티에서 구조화된 데이터를 저장하는 방법
- 키-값 저장소
- mapping (address => uint) Name -> key : address , value : uint
msg.sender
- 모든 함수에서 이용 가능한 특정 전역 변수중 하나
- 함수를 호출한 사람(혹은 스마트 컨트랙트)의 주소를 가리킨다.
- 본인의 주소와 연결된 데이터 저장/조회에 유용하다.
require
- 특정 조건이 참이 아닐 때 함수가 에러 메시지를 발생하고 실행을 멈춘다.
- 함수를 실행하기 전에 참이어야 하는 특징 조건을 확인하는데 유용
- require();
import
- 어떤 파일을 다른 파일로 불러오고 싶을 때 이용
변수를 저장하는 곳
- storage / memory 두 가지가 있다.
- storage 는 블록체인 상에 영구적으로 저장되는 변수 (상태 변수의 기본값)
- memory 는 임시적으로 저장되는 변수 (함수 내에 선언된 변수의 기본값)
- 하뭇 내의 구조체와 배열을 처리할 때에 명시적으로 키워드를 사용할 것
- storage를 사용하면 마치 포인터처럼 작동 가능
- memory를 사용하면 단순히 메모리에 데이터를 복사
함수 접근 제어자
- public, private, internal, external
- internal : 함수가 정의된 컨트랙트를 상속하는 컨트랙트에서도 접근 가능한 private (protected랑 비슷하다)
- external : 함수가 컨트랙트 바깥에서만 호출될 수 있는 public
인터페이스
- 다른 컨트랙트와 상호작용
- 컨트랙트의 뼈대처럼 보인다.