Prototype Ghost
귀신일지
Prototype Ghost
전체 방문자
오늘
어제
  • 분류 전체보기 (29)
    • Hacking (1)
      • CTF (0)
      • Wargame (0)
      • Review (1)
    • C (12)
      • Crypto (12)
    • C++ (4)
    • Python (1)
    • Swift (1)
    • Blockchain (9)
      • Solidity (9)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 보안
  • Blockchain
  • 이더리움
  • C++
  • 리눅스
  • 복호화
  • 솔리디티
  • 암호화폐
  • ethereum
  • Bitcoin
  • 블록체인
  • c언어
  • 암호화
  • solidity
  • 접근제어
  • C
  • openssl
  • 비트코인
  • 프로그래밍
  • 정보보안

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Prototype Ghost

귀신일지

Blockchain/Solidity

Solidity에 대해 간단한 코드로 알아보기(GPL과 MIT)

2023. 5. 31. 22:34

시작하며


지난 글에서 솔리디티란 무엇이고 스마트컨트랙트가 무엇인지 간단하게 알아보았다.

그렇다면 오늘은 솔리디티로 코딩을 직접해보면서 어떤 특징이 있는지 간단하게 알아보자.

일단 코드부터


// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;

contract quiz1{
    mapping(address=>string) public name;

    function addName(address key, string memory value) public{
        name[key] = value;
    }

    function getName(address key) public view returns(string memory){
        return name[key];
    }

    function deleteName(address key) public{
        delete(name[key]);
    }
}

맨 위에 주석부터 알아보면, 라이센스에 대해 정의해 놓는다. 개념만 알고 자세히는 이번에 처음 알았는데,

GPL : 무료 사용 가능, 해당 소스를 사용했으면 배포시 전체 소스코드를 공개해야 한다.

MIT : 무료 사용 가능, 아무 제약 없음. 무료 소프트웨어 라이센스이다.

 

그 후 pragma 행은 컴파일러 버전에 대한 명이이고, 객체지향언어의 class처럼 컨트랙트를 contract키워드로 선언하고 내부에 코드를 작성한다.

 

여기서 mapping 자료형은 python의 딕셔너리와 같다고 보면 이해가 편할 거 같다.

컨트랙트 내부에 addName() 함수는 매핑 변수 name에 key와 value 쌍을 추가하는 코드이며

getName()은 name에서  key를 이용해 value를 가져오고, deleteName()은 해당 키 밸류 쌍을 삭제한다.

함수 선언은 function 키워드로 선언한다. 여기에 address자료형이나, 함수에 public같은 키워드가 붙는데, 이건 다음 글에서 알아보도록 하자.

 

나름 여러 언어를 접해본 사람들은 우선 위의 코드만 봐도 대충 어떤 스타일로 솔리디티를 해야하는지 알기 쉬울 것이다. 

이번 글에선 그냥 무작정 코드를 보는 것을 목표로 하였다. 다음 글부터 차근차근 자료형부터 함수는 어떻게 작성해야 하는지 알아가보도록 하겠다. 또 스마트컨트랙트를 어떻게 테스트 해야하는지도 천천히 알아가보도록 하자.

 

참고자료

https://www.yes24.com/Product/Goods/111099912

 

솔리디티 프로그래밍 완벽 가이드 - YES24

개발 경험이 없어도 쉽게 블록체인과 솔리디티를 이해할 수 있습니다!솔리디티는 스마트 컨트랙트를 구현하는 언어이며, 스마트 컨트랙트는 블록체인에서 작동하는 프로그램이다. 『솔리디티

www.yes24.com

 

728x90
반응형

'Blockchain > Solidity' 카테고리의 다른 글

Solidity : memory와 storage, 그리고 문자열 비교하기  (0) 2023.06.01
Solidity : 함수 및 Modifier  (0) 2023.06.01
Solidity : 가시성 지정자  (0) 2023.05.31
Solidity 자료형에 대해서 알아보자  (0) 2023.05.31
간단하게 알아보는 Solidity와 Smart Contract  (0) 2023.05.31
    'Blockchain/Solidity' 카테고리의 다른 글
    • Solidity : 함수 및 Modifier
    • Solidity : 가시성 지정자
    • Solidity 자료형에 대해서 알아보자
    • 간단하게 알아보는 Solidity와 Smart Contract
    Prototype Ghost
    Prototype Ghost

    티스토리툴바