Solidity 기본 구조
Solidity는 이더리움 블록체인에 스마트 컨트랙트를 작성할 때 사용하는 프로그래밍 언어입니다. 스마트 계약은 금융 거래, 디지털 신원 확인 등 다양한 프로세스를 자동화하는 데 사용할 수 있는 자체 실행 프로그램입니다.
Solidity 코드는 contracts로 구성됩니다. 각 contract에는 해당 contract의 동작을 정의하는 함수와 변수가 포함되어 있습니다. contracts은 다른 프로그래밍 언어의 클래스와 유사하다고 생각할 수 있습니다.
Solidity의 기본적인 구조는 다음과 같습니다.
pragma solidity ^0.8.0;
contract MyContract {
// state variables and functions go here
}
맨 위의 pragma 문은 사용 중인 Solidity 버전을 지정합니다. contract 키워드는 새 계약을 정의하는 데 사용되며, contract 이름은 다음과 같습니다. 중괄호 안에서 상태 변수와 함수를 정의할 수 있습니다.
Value Variable types
Integer
Solidity는 uint8, uint16, uint32, uint64, uint128, uint256, int8, int16, int32, int64, int128 및 int256을 포함한 여러 정수 유형을 지원합니다. uint 유형은 부호 없는 정수이고 int 유형은 부호 있는 정수입니다.
pragma solidity ^0.8.0;
contract MyContract {
uint256 public myNumber = 42;
int32 public mySignedNumber = -10;
}
Boolean
Solidity는 참 또는 거짓을 포함할 수 있는 Boolean 유형을 지원합니다.
pragma solidity ^0.8.0;
contract MyContract {
bool public isTrue = true;
bool public isFalse = false;
}
String
pragma solidity ^0.8.0;
contract MyContract {
string public myString = "Hello, world!";
}
Address
pragma solidity ^0.8.0;
contract MyContract {
address public myAddress = 0x1234567890123456789012345678901234567890;
}
Arrays
Solidity는 모든 배열 타입을 지원합니다.
pragma solidity ^0.8.0;
contract MyContract {
uint256[] public myArray = [1,2,3,4,5];
}
Structs
Solidity는 서로 다른 유형의 여러 필드를 포함할 수 있는 사용자 정의 구조체를 지원합니다.
pragma solidity ^0.8.0;
contract MyContract {
struct Person {
string name;
uint256 age;
}
Person public myPerson = Person("Alice",25);
}
Reference Variables
pragma solidity ^0.8.0;
contract MyContract {
struct Person {
string name;
uint256 age;
}
Person[] public people;
function addPerson(string memory _name, uint256 _age) public {
Person memory newPerson = Person(_name, _age);
people.push(newPerson);
}
}
이 contract에서 이름과 나이라는 두 개의 필드가 있는 Person이라는 구조체가 정의 됩니다. Person 구조체의 배열은 people이라고 정의 됩니다. addPerson 함수는 이름과 나이라는 두 개의 인수를 사용하여 해당 값으로 newPerson 구조체를 생성합니다. newPerson는 push 함수를 통해서 Person 배열에 추가가 됩니다.
한 번에 끝내는 블록체인 개발 A to Z Online. | 패스트캠퍼스
블록체인 Dapp 개발부터 클론코딩 실습까지 하면서 마스터해보세요!
fastcampus.co.kr
*본 게시글은 패스트캠퍼스 후기 이벤트 참여를 위해 작성되었습니다.
'BlockChain' 카테고리의 다른 글
💪Contract Inheritance | 패스트캠퍼스 블록체인 강의 챌린지 10일차 (0) | 2023.03.10 |
---|---|
🔑Web3 프로젝트 세팅 - (1) | 패스트캠퍼스 블록체인 강의 챌린지 6일차 (0) | 2023.03.06 |
📃Smart Contract | 패스트캠퍼스 블록체인 강의 챌린지 5일차 (0) | 2023.03.05 |
📦Ethereum Structure | 패스트캠퍼스 블록체인 강의 챌린지 4일차 (2) | 2023.03.04 |
📦Block & Transaction Structure | 패스트캠퍼스 블록체인 강의 챌린지 3일차 (0) | 2023.03.03 |