이글은 인프런 "솔리디티 깨부수기" 강의 내용을 정리한 글이다.
[지금 무료] 솔리디티 깨부수기 | D_One - 인프런
D_One | 이 강의를 통해서, 스마트 컨트랙 제작을 위한 솔리디티 언어를 배울수 있습니다., 코딩이 처음인 분들도 OK! 처음 배우는 솔리디티, 쉽게 시작해보세요. 강의 주제 📖 [사진] 이 강의에서
www.inflearn.com
Solidity 란?
솔리디티는 *스마트 컨트랙트를 구현하기 위한 컨트랙트 기반의 고급 프로그래밍 언어이다.
스마트 컨트랙트(smart-contracts)
미리 정의된 조건이 충족되었다면 블록체인 안에 저장된 프로그램이 작동하는 것
예를 들어, 3의 배수 번째 사람에게 돈을 준다라고 조건에서 4명의 사람들이 각각 5천원씩 갖는다고 가정했을 때, 첫번째, 두번째 사람이 각각 오천원씩 넣었을 때, 스마트 컨트랙트에서는 3의 배수가 아니기 때문에, 스마트 컨트랙트가 돈을 가지게 된다.
세번재 사람이 5천원을 준다면 만 오천원이 되어서 3의 배수 조건이 충족되어서 세번째 사람에게 돈이 가게 된다. 조건이 충족이 됬을 때 이 스마트 컨트랙가 작동한다.
솔리디티 언어를 접하기 위해서 리믹스(remix)를 사용할 예정이다.
Remix - Ethereum IDE
remix.ethereum.org
코드 작성할 때, 라이센스를 윗줄에 명시 > 0이 나지 않는다.
이후에 컴파일 버전을 명시한다. 위의 이미지는 솔리디티 버번이 0.7에서 0.9 미만까지 사용하겠다고 명시한다.
이후에 컨트랙트를 "Hello" 라고 명시한 뒤에 "Hello Solidity" 출력하는 코드를 작성하였다. 코드 끝에 세미 콜론을 붙여야 에러가 나지 않는다.
코드 컴파일을 위해 컴파일 버전을 선택해야한다. 컴파일 버전 중 제일 높은 버전인 0.8.25 버전을 사용하도록 하겠다. 이후 컴파일을 진행한다.
Deploy를 누르면 hello라는 컨트랙트에 hi 변수에 "Hello solidity"가 출력되는 컨트랙트가 배포되는 것을 확인할 수 있다.
Data Type
솔리디티는 크게 3가지 데이터 타입, 레퍼런스 타입, 맵핑 타입으로 나뉜다. 이번 목차에서는 데이터 타입에 대해 다룰 예정이다. 데이터 타입에는 boolean, bytes, address, uint 4가지가 있다.
boolean
boolean은 true와 false 두 값을 가지며, 데이터 타입을 먼저 선언하고, 접근 제한자와 변수명을 작성한다. boolean의 경우 다른 언와 마찬가지로 논리 연산자를 사용한다.
위의 코드를 컴파일해서 deploy 하면 다음과 같은 결과가 나오게 된다, 이때 ctrl + s 단축키로 컴파일이 가능하다.
bytes
byte는 1바이트부터 32바이트까지 저장할 수 있다. 바이트의 크기를 byte4 이런 식으로 명시할 수 있으며, 명시하지 않고 문자열을 넣어도 자동으로 바이트 크기가 정해진다.
address
address는 고유 주소를 나타내며, 스마트 컨트랙트를 배포할 때마다 address를 얻게 된다. 주소의 크기는 20바이트로 총 길이는 40개이다. 배포할 때 마다 주소가 바뀌는 것을 확인할 수 있다.
uint
uint와 int의 차이점은 음수의 값을 쓰는지 안쓰는 지에 나뉘게 된다. uint의 경우 unsigned integer 로 기호가 없는 integer이다. uint와 int의 범위는 해당 강의의 기술 블로그에 자세하게 나와있다.
int : 기호있는 integer
int8 : -2^7 ~ 2^7-1
int16: -2^15~2^15-1
int32: -2^31~2^31-1
int64: -2^63~2^63-1
int128 : -2^127~2^127-1
int256 (=int): -2^255~2^255-1
uint: 기호없는 integer
uint8 : 0~2^8-1
uint16: -0~2^16-1
uint32: -0~2^32-1
uint64: -0~2^64-1
uint128 : -0~2^128-1
uint256 (=uint): 0~2^256-1
간단하게 숫자 연산자로 사용이 가능하며, 범위를 넘기지 않도록 주의해야한다.
'자기개발 > 블록체인' 카테고리의 다른 글
[솔리디티 깨부수기] funtion3 : view와 Pure (0) | 2024.05.06 |
---|---|
[솔리디티 깨부수기] funtion2 : 접근 제한자 (0) | 2024.05.06 |
[솔리디티 깨부수기] Ether/GWei 그리고 Gas & Function1 (0) | 2024.04.29 |
[블록체인]솔리디티 (0) | 2024.04.09 |
[블록체인] (0) | 2024.04.03 |