Solidity 기본 문법: 스마트 계약 개발을 위한 기초 가이드

2025. 4. 21. 14:08정치,경제,사회,문화

728x90
반응형

 

 

 

Solidity는 이더리움 스마트 계약을 개발하기 위한 대표적인 프로그래밍 언어입니다. 이 글에서는 Solidity의 기본 문법과 주요 개념을 간략히 소개하며, 초보 개발자도 쉽게 이해할 수 있도록 작성했습니다.


🔑 Solidity란?

Solidity는 이더리움 블록체인을 기반으로 스마트 계약을 작성하기 위해 설계된 고급 프로그래밍 언어입니다. JavaScript, Python, C++와 유사한 구문을 가지며, 이더리움 가상 머신(EVM)에서 실행됩니다.


🛠 Solidity 기본 문법

1. 스마트 계약 구조

Solidity 파일은 보통 .sol 확장자를 가지며, 하나 이상의 계약(contract)을 포함합니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract MyContract {
    // 스마트 계약 내용
}
  • pragma solidity: Solidity 컴파일러 버전을 지정합니다.
  • contract: 스마트 계약을 정의하는 키워드입니다.

2. 변수와 데이터 타입

Solidity는 다양한 데이터 타입을 제공합니다.

pragma solidity ^0.8.0;

contract Variables {
    // 상태 변수
    uint public myNumber = 10;       // 정수
    bool public isActive = true;    // 불리언
    string public myString = "Hello, Solidity"; // 문자열
    address public owner;           // 이더리움 주소
}
  • uint: 부호 없는 정수 (기본값은 256비트).
  • bool: 참/거짓 값을 저장.
  • string: 문자열 데이터.
  • address: 이더리움 지갑 주소를 저장.

3. 함수(Function)

Solidity에서는 함수가 스마트 계약의 주요 동작을 정의합니다.

pragma solidity ^0.8.0;

contract Functions {
    uint public myNumber = 0;

    // 상태를 변경하는 함수
    function setNumber(uint _number) public {
        myNumber = _number;
    }

    // 상태를 조회하는 함수
    function getNumber() public view returns (uint) {
        return myNumber;
    }
}
  • view: 상태를 변경하지 않는 함수.
  • returns: 함수의 반환 타입을 명시.

4. 제어문

Solidity는 조건문과 반복문을 지원합니다.

pragma solidity ^0.8.0;

contract ControlFlow {
    function isEven(uint _number) public pure returns (bool) {
        if (_number % 2 == 0) {
            return true;
        } else {
            return false;
        }
    }

    function sum(uint _n) public pure returns (uint) {
        uint total = 0;
        for (uint i = 0; i <= _n; i++) {
            total += i;
        }
        return total;
    }
}

5. 이벤트와 로그

이벤트는 블록체인 상에서 로그를 기록하는 데 사용됩니다.

pragma solidity ^0.8.0;

contract Events {
    event NumberSet(uint oldNumber, uint newNumber);

    uint public number;

    function setNumber(uint _number) public {
        emit NumberSet(number, _number); // 이벤트 호출
        number = _number;
    }
}

6. 모디파이어(Modifier)

함수 실행 조건을 설정할 수 있습니다.

pragma solidity ^0.8.0;

contract Modifiers {
    address public owner;

    constructor() {
        owner = msg.sender; // 계약 생성자를 소유자로 설정
    }

    modifier onlyOwner() {
        require(msg.sender == owner, "Not the contract owner");
        _;
    }

    function restrictedAction() public onlyOwner {
        // 소유자만 실행 가능
    }
}

📝 Solidity의 장점과 사용 사례

  1. 장점:
    • 이더리움 네트워크와 완벽히 통합.
    • 블록체인에서 실행되는 프로그램으로 높은 보안성 제공.
    • 다양한 라이브러리 및 도구 지원.
  2. 사용 사례:
    • 탈중앙화 금융(DeFi) 애플리케이션.
    • 대체 불가능 토큰(NFT) 제작.
    • DAO(탈중앙화 자율 조직).

결론

Solidity는 스마트 계약 개발의 핵심 언어로, 다양한 블록체인 프로젝트에서 사용됩니다. 이 글에서 소개한 기본 문법을 바탕으로 작은 예제를 작성해 보고, 실습을 통해 이해도를 높이는 것을 추천합니다.

 

 

1+1/2+2 무가당 말린 살구 신주 지쿠마시 말린 살구 큰 알맹이 & amp; 두꺼운 과육/궁극의 미각 균형/무첨가, 1봉지+1봉지

 

[설날 90% 할인] 3/6/9봉지 무가당 말린 살구 100g 무첨가 건강 간식 살이 두껍고 식감 부드러, 2봉지+

쿠팡에서 [설날 90% 할인] 3/6/9봉지 무가당 말린 살구 100g 무첨가 건강 간식 살이 두껍고 식감 부드러, 2봉지+2봉지, 1개 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 기타말린과일 제품

www.coupang.com

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

 

 

 

728x90
반응형