Solidity 기본 구조
드디어 코드입니다. 가장 단순한 스마트 컨트랙트를 함께 읽어봅시다. 오른쪽 에디터의 코드를 Run 해보세요.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract Hello {
string public message = "Hello, Solidity!";
}SPDX, pragma, contract
모든 Solidity 파일은 보통 이 세 가지 머리말로 시작합니다.
// SPDX-License-Identifier: MIT: 코드의 라이선스를 밝히는 한 줄입니다.SPDX는 라이선스를 표준 방식으로 표기하는 규칙이며, 생략하면 컴파일러가 경고를 냅니다.pragma solidity ^0.8.20;: "이 코드는 0.8.20 이상(0.9 미만) 버전용"이라고 컴파일러에 알려줍니다.^는 '이 버전대 안에서 호환'을 뜻합니다.contract Hello { ... }:contract는 컨트랙트 한 덩어리를 정의하는 키워드이고,Hello는 그 이름입니다.
데이터를 담는 한 줄
string public message는 message라는 데이터를 컨트랙트 안에 저장한다는 뜻입니다.
string: 글자(문자열)를 담는 타입입니다.public: "바깥에서 읽을 수 있게 공개"한다는 의미입니다.public을 붙이면 값을 조회하는 통로가 자동으로 생깁니다.= "Hello, Solidity!": 초기값입니다.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
contract Greeter {
string public greeting = "Hello, Blockchain!"; // 따옴표 안을 바꿔 보세요
}지금은 외울 필요 없습니다. 에디터에서 따옴표 안 문구를 바꿔 Run 해보세요. 컨트랙트가 컴파일되어
값이 보이면 성공입니다. 한글이나 이모지를 넣고 싶다면 unicode"안녕하세요" 처럼 앞에 unicode 를
붙여야 합니다. 그냥 "안녕하세요" 라고 적으면 컴파일 오류가 납니다.
이 세 줄의 머리말은 앞으로 거의 모든 컨트랙트에서 반복됩니다. 눈에 익혀 두면 다음 실습이 훨씬 수월해집니다.