*** 다시 한 번 봐야하거나, 약간 이해에 어려움이 있었던 부분만 작성함!***
솔리디티란 객체지향 프로그래밍 언어로써, 이더리움 블록체인 플랫폼에서 다양한 스마트 컨트랙트를 작성할 때 사용된다.
데이터 저장 위치
솔리디티는 변수를 메모리 뿐 아니라 하드 디스크 등과 같은 스토리지에 저장하기도 한다.
또한 calldata 라는 영역에 저장하기도 하는데, 여기에는 함수 인자가 저장된다.
calldata 역시 메모리처럼 동작하지만 수정 불가능하고 비영구적인 영역이다.
(메모리, 스토리지, calldata)
상태변수 접근 수준

지역변수 : 함수가 실행될 때까지만 존재하는 변수 (스토리지에 저장), 보통 함수 아래에 선언되는 변수
전역변수 : 글로벌한 블록체인 안에 있는 특수 변수. 블록체인 및 트랜잭션에 대한 속성을 가지고 올 수 있다.

자료형 ⇒ 열거형(enum)
열거형은 특정 값들로 집합을 지정하고, 집합에 있는 데이터만을 값으로 가진다.
각 집합의 데이터는 내부적으로는 순서에 다라 0부터 1씩 올라가는 정수를 값으로 가진다.

함수 접근 수준

view : 상태를 변경하지 않는 읽기 전용 함수. 함수 범위 외의 데이터를 읽을 수는 있지만 이에 대한 변경 불가
pure : 스토리지에서 변수를 읽거나 쓰지 않는 함수. 함수 범위 외의 데이터를 읽지 못하고, 변경할 수도 없음
함수 오버로딩
함수 오버라이딩