블록체인 학습
0 XP

Solidity 기본 구조

드디어 코드입니다. 가장 단순한 스마트 컨트랙트를 함께 읽어봅시다. 오른쪽 에디터의 코드를 Run 해보세요.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
 
contract Hello {
    string public message = "Hello, Solidity!";
}

SPDX, pragma, contract

모든 Solidity 파일은 보통 이 세 가지 머리말로 시작합니다.

  1. // SPDX-License-Identifier: MIT: 코드의 라이선스를 밝히는 한 줄입니다. SPDX는 라이선스를 표준 방식으로 표기하는 규칙이며, 생략하면 컴파일러가 경고를 냅니다.
  2. pragma solidity ^0.8.20;: "이 코드는 0.8.20 이상(0.9 미만) 버전용"이라고 컴파일러에 알려줍니다. ^는 '이 버전대 안에서 호환'을 뜻합니다.
  3. 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 를 붙여야 합니다. 그냥 "안녕하세요" 라고 적으면 컴파일 오류가 납니다.

이 세 줄의 머리말은 앞으로 거의 모든 컨트랙트에서 반복됩니다. 눈에 익혀 두면 다음 실습이 훨씬 수월해집니다.

Code Editor
에디터를 불러오는 중...
실행 결과

Run 버튼을 눌러 코드를 실행하세요.