솔리디티에서 가스를 절약하기 위해 어떤 것들을 할 수 있는 지 알아보록 하겠습니다.
uint를 사용하게 되면 uint8,uint16,uint32...와 같이 모든 uint는 같은 양의 가스를 소비하게 됩니다.
하지만 struct안에서 사용하게 되면 uint 타입에 따라 가스를 절약할 수 있습니다.
struct 안에서는 작은크기의 uint를 사용하고 같은 uint끼리 묵어서 작성하면 gas를 절약할수 있습니다.
struct example {
uint8 a;
uint8 b;
uint8 c;
uint16 d;
}
view를 외부에서(external) 사용하게 되면 gas를 소모하디 않습니다. 왜냐하면 블록체인 상에서의 정보를 변경하지 않고 읽어오기만 하기 때문입니다.
하지만, 내부에서(internal) 사용한다면 가스를 소모합니다. 이더리움에서는 function을 생성할때 모든 노드를 확인해야 하기 때문입니다.
pure도 view와 마찬가지로 외부에서 사용되면 gas를 소비하지 않고 내부에서 사용되었을때만 gas를 소비합니다.
view는 블록체인에 있는 데이터를 읽을수 있지만, pure는 블록체인에 기록된 어떠한 데이터도 읽어오지 않습니다.
둘다 블록체인에 데이터를 기록하거나 변경하지 않습니다.