상세 컨텐츠

본문 제목

솔리디티 강좌 2강 data type

솔리디티 깨부수기 - 기본

by D_One 2021. 8. 30. 22:49

본문

 

solidity에는 기본적으로 boolean, string, bytes,Integer ,address 라는 변수들이 대표적으로 있습니다. 

 

다른 언어들은 접해보신분들은, address 빼고는 친숙하실거라 생각이 듭니다.

 

1. boolean : true 와 false 가 있습니다.

 

밑에 연산자와 함께 쓰기도 하죠

  • ! (Not)  ex) !true => false
  • && (AND) ex) true && false => false
  • || (OR) ex) true && false => false
  • == (equality) ex) true == true => true
  • != (inequality) ex) true != true => false

2. string : string 형을 쓰실때는 " " 를 붙여서 쓰시면 됩니다.

그러나, 솔리디티에서는 string 쓰는 것을 지양합니다, 즉 이유는 가스를 더 소비하기 때문 입니다.

 

갑자기, 가스가 나와서 뜬끔 없으시다고 생각하실지 모르겠으나, 가스는 스마트컨트랙 개념에서, 보안적으로도 너무 중요한 개념입니다. 가스는 간단하게 말하면, 스마트컨트랙을 운영시키는 연료라고 생각하시면 됩니다. 

 

다시 돌아와서 가스를 더 소비 합니다, 즉 솔리디티 입장에서 string을 받아서 다시 byte화 시켜서 이해를 합니다. 

반대로 byte를 string화 하여 꺼냅니다. string과 byte를 왔다갔다 변경하여 가스를 소비하는것보단, 솔리디티입장에서 편하게 byte를 받는것을 더 좋아 하겠죠.

 

3. bytes : 솔리디티는 byte1 ~ byte32 까지 존재합니다. 

뒤에 숫자에따라 byte의 크기 가 정해집니다. 예를들어서 byte32 로 쓰신다면 길이가 32 개인거죠. 

byte의 크기를 아신다면 크기에 맞게 지정해주시는 편이 나아요.

 

4. Integer : Integer 는 두가지 타입으로 나뉘어요

  • int : 기호있는 integer
  • uint:  기호없는 integer 

순전히 기호 있고 없는 차이는 음수의 값을 쓰냐 안쓰냐에 따라서 인티져의 범위가 달라진답니다. 

  • 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

Integer는 밑에 연산자와 함께 놀기도 합니다.

  • + 더하기  2+2 => 4
  • - 빼기 2-2 => 0
  • * 곱하기 2*2 =>4
  • / 나누기 몫 2/2 => 1
  • % 나누기 나머지 2/2= 0
  • ** 지수 2**2(=2^2) =4

4. address : address는 20 bytes 의 길이 인데요. 

address 는 문자 그대로 주소를 나타내요,

예를들어 스마트컨트랙을 배포한다 할 때, 배포된 스마트 컨트랙은 주소를 얻어요.

이와 마찬가지로, 디지털 지갑의 계정마다 각자의 주소를 할당 받아요.

 

그러면 주소로 도대체 무엇을 할까요? 

 

저희는 이 주소를 통해서, 디지털 코인을 보내기도하고, 스마트 컨트랙을 불러오기도 한답니다.

그러면, 쉽게 생각하면, 주소란 이더 같은 디지털 코인을 주고 받는 은행 계좌번호정도 라고 일단 생각하시면 되요.

 

그런데, 저희가 이더리움을 보내기 위해서는 주소 payable 이라는 녀석을 붙여야합니다.

이 부분은 다른 강의에서 자세하게 다룰게요. 

지금은 주소 = 계좌번호 라고 생각하시면 된답니다. 

관련글 더보기