시작하며
지난 글에서 솔리디티란 무엇이고 스마트컨트랙트가 무엇인지 간단하게 알아보았다.
그렇다면 오늘은 솔리디티로 코딩을 직접해보면서 어떤 특징이 있는지 간단하게 알아보자.
일단 코드부터
// 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
'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 |