솔리디티(Solidity)는 EVM(Ethereum Virtual Machine)에서 스마트 컨트랙트 개발을 위해 사용하는 프로그래밍 언어입니다.
컨트랙트는 상태 변수(State Variables), 함수(Function), 함수 제어자(Function Modifiers), 에러(Errors), 상속(Inheritance), 열거형(Enum Types) 등으로 구성됩니다.
스마트 컨트랙트에 대한 신뢰를 높이고, 저작권과 같은 문제를 해소하기 위해 솔리디티 코드의 최상단에 SPDX 라이센스를 명시해야합니다.
SPDX 라이센스는 주석으로 표기합니다.
// SPDX-License-Identifier: MIT
솔리디티에서 사용되는 모든 변수와 함수는 Contract에 속해있습니다.
모든 프로젝트의 시작 지점이라고도 표현할 수 있습니다.
기본적인 구조는 이렇습니다.
contract HelloWorld {
}
마치 다른 프로그래밍 언어의 class 키워드 같아 보이기도 합니다.
모든 소스 코드 최상단에 사용하려는 솔리디티 컴파일러의 특정버전을 명시해야 합니다.
이를 통해 새로운 컴파일러 버전이 나와도 기존 코드가 깨지지 않도록 예방할 수 있습니다.
pragma 키워드는 다른 파일을 임포트하더라도, 자동으로 임포트되지 않기에 꼭 명시해줘야합니다.
pragma solidity 0.8.7; // 0.8.7 버전을 사용합니다.
contract HelloWorld{
...
}
특정 버전 이상의 pragma를 사용할 때는 ^를 붙입니다.
pragma solidity ^0.8.7;
contract HelloWorld{
...
}
다른 파일을 임포트하는 키워드입니다.
코드가 길어져 여러 파일로 분리하여 관리하거나, 다른 파일을 불러오고 싶을 때 사용합니다.
import "./파일 경로/파일 이름.sol";
임포트하려는 파일의 명이 길어서 매번 사용이 불편할 때 as 키워드를 사용하여 자신만의 파일명으로 변경하여 사용할 수 있습니다.
import "변경하려는 파일이름" as "./파일 경로/파일 이름.sol";