Solidity - 참조 타입

Gmini.Y·2022년 10월 19일
0

솔리디티의 저장 영역

storage

영속적으로 읽고 쓰기가 가능한 저장 공간. key-value 매핑 구조를 가지고 있으며 key, value 는 각 32바이트 크기를 가짐. 다른 저장공간을 사용하는 것보다 가스비가 비쌈

memory

휘발적으로 읽고 쓰기가 가능한 저장공간. 함수 종료시 메모리에 저장된 데이터는 지워짐.

calldata

휘발적으로 읽기만 가능.

stack

EVM에서 휘발성을 가진 데이터를 유지 관리하는 공간. 최대 1024 Mb

참조 타입(bytes, string)은 반드시 저장공간을 명시해야한다.

데이터 저장공간에 따른 참조 타입의 저장 방식

memory와 memory

  • 저장 방식: 주소 복사
  • memory 에 저장된 변수를 다른 memory 변수에 대입 시 값을 가리키는 주소를 공유해서 서로에게 영향을 준다.

storage와 local storage

  • 저장 방식: 주소 복사
  • storage 에 저장된 변수를 local storage 변수에 넣으면 값을 가리키는 주소를 공유해서 서로에게 영향을 준다.

storage와 memory

  • 저장 방식: 값 복사
  • storage에 저장된 변수를 memory 에 넣으면 값을 복사하므로 서로에게 영향을 주지 않는다.

그 외의 storage가 포함된 관계

  • 저장 방식: 값 복사
  • 위 관계를 제외한 storage가 포함된 관계는 값을 복사하므로 서로에게 영향을 주지 않는다.

0개의 댓글