3일 동안 Solidity 찍먹을 해봤는데... 폭풍 진도를 따라가기 어려워서 수업 정리를 하진 못했당... 근데 또 자바랑 비슷해서 천천히 보니까 알 것 같기도 하고~~ 그래서 나중에 내가 보려고 따로 정리해두는 솔리디티
계약 지향 프로그래밍 언어 → 이더리움 등의 블록체인 플랫폼의 스마트 계약 (Smart Contract) 작성 및 구현에 사용
➡️ EVM(이더리움 가상 머신)을 위한 코드를 컴파일 하도록 설계된 언어
EVM → Solidity로 작성된 스마트 컨트랙트를 컴파일 해서 얻은 Byte code를 실행한다.
Byte code: EVM이 정의하는 명령어, OP코드들의 집합
OP코드: EVM명령어를 16진수로 표현한 것
EVM은 스택이라는 저장공간과 3개의 데이터 저장공간(스토리지, 메모리, 콜데이터)으로 이루어져 있다
스토리지가 필요하지 않은 임시 데이터를 저장하는데 사용하는 영역
EVM → 명령어들을 순차적으로 실행하면서 파라미터와 연산의 결과값을 스택(메모리 공간)에 유지하면서 실행함
➡️ 스택은 EVM의 명령어들이 직접적으로 참조하는 영역(저장 공간)
✅ 일시적인 데이터를 저장하기 위해서 사용됨
각각의 계정에 존재하는 영역이며 영속적인 저장 공간이다
✅ 계약 상태(State)를 저장할 때 사용됨
계약 내부에 함수를 실행할 때 일시적으로 할당되거나 해제되는 일시적인 데이터 저장 영역
✅ 지역 변수와 함수 인자를 저장할 때 사용(생성 된 임시 값 사용할 때 사용)
함수를 호출할 때 입력 인수와 같은 실행 상태 데이터를 읽어오기 위한 영역
✅ 함수의 입력 값 등을 사용하는데 사용
참고링크
https://dayone.tistory.com/8?category=918008
https://dayone.tistory.com/8
https://velog.io/@thyoondev/%EC%86%94%EB%A6%AC%EB%94%94%ED%8B%B0-%EB%AC%B8%EB%B2%95-EVM%EA%B3%BC-%EC%A0%80%EC%9E%A5-%EC%9C%84%EC%B9%98
https://balmostory.tistory.com/364