솔리디티 저장 방식
- storage
- 메모리
- 콜데이터
- 스택
storage
- 변수, 함수 저장
- a,a2는 storage에 저장되고 a2의 함수 안에 b는 stroage에 저장 불가.
- storage에 저장이 되면 영속적으로 저장됨.
- 영속적으로 저장됨에 따라 사용자들은 모든 노드를 다운받아야 함.
- 이에 따라 사용하는 가격이 비싸짐
- 가스 비용도 비싸짐
메모리
- storage와 정반대
- 함수 안의 값, 함수의 파라미터, 리턴 값, 레퍼런스 타입을 사용할 때 사용.
- b는 메모리에 저장. 만약에 파라미터도 존재한다면 파라미터도 메모리에 저장.
- 메모리는 이 함수가 작동할 때만 유효하기에 영속성은 없음.
- storage보다 가스 비용이 덜 나감.
콜데이터
- 주로 external function 파라미터에서 사용.
스택
- 이더리움 virtual machine, EVM에서 스택 데이터를 관리할 때 사용.
- 1024MB
String
- 일반적인 데이터 타입 아님. 배열에 의해서 연관되어 있기에 레퍼런스.
- 파라미터나 return 값 파라미터를 사용 시 memory라는 키워드를 붙여줘야 함.
- getString 함수 보면 memory 지정하는 것을 볼 수 있음.
- getUint 함수 보면 uint가 기본 데이터 타입이기에 메모리가 디폴트로 되어 있어 메모리를 지정할 필요가 없음.
'솔리디티 및 블록체인' 카테고리의 다른 글
솔리디티 10. instance2 - constructor (0) | 2024.05.22 |
---|---|
솔리디티 09. instance 1 (0) | 2024.05.15 |
솔리디티 07. View와 Pure (0) | 2024.05.08 |
솔리디티 06. function 2 (0) | 2024.05.08 |
솔리디티 05. Function 1 - 정의 (0) | 2024.05.01 |