solidity #1 솔리디티의 데이터 타입-1

Explanation

솔리디티는 이더리움 가상 머신(Ethereum Virtual Machine)에서 스마트 계약(smart contract)을 작성할 수 있는 정적 프로그래밍 언어입니다. 이 글은 그 첫번째 글로 솔리디티의 데이터 타입 중 간단한 몇가지를 정리해보려 합니다.
이글을 작성한 시점에서 솔리디티의 마지막 버전인 ‘0.4.24’ 버전을 기준으로 작성되었고 글에 포함되어 있는 테스트 코드들은 Remix(http://remix.ethereum.org/)를 통해 직접 테스트 해볼 수 있습니다.

보다 자세하고 정확한 정보는 솔리디티 도큐먼트를 확인하시면 좋을 것 같습니다.
링크 : http://solidity.readthedocs.io/en/v0.4.24/

0. Remix

직접 코드를 작성하고 테스트할 수 있도록 아주 간단하게 리믹스를 사용합니다.
링크 : http://remix.ethereum.org/

에디터란에 해당하는 코드를 작성합니다.

오른쪽에 ‘Start to compile’ 버튼을 선택하여 솔리디티를 컴파일합니다.

‘Environment’ 를 ‘Javascript VM’ 으로 설정한 후 ‘Deploy’ 선택, 아래쪽에 나타나는 함수의 (ex. get, set..) 들을 선택, 확인합니다.

1. 불리언(Boolean)

‘foo’ 와 ‘doo’ 는 Boolean 타입의 변수로 true 또는 false 의 값을 가질 수 있습니다.

2. 정수

부호가 있는 int, 부호가 없는 uint, 정수 타입으로 8비트 단위로 256비트까지 허용하는 타입입니다.
int8, int16, … int256, 비트 단위를 표기하지 않으면 256을 의미합니다.
int = int256

3. 고정 소수점 수

fixed, ufixed 여기에서의 앞의 u는 정수 타입과 같이 부호가 있고 없고를 나타내며, 자세한 표현식은 fixedMxN 으로
여기에서 M은 8비트 단위를 그리고 N은 소수점 자리수를 나타냅니다.
하지만 v0.4.24 기준으로 아직 완전히 지원하지 않습니다.

4. 주소

address는 이름처럼 이더리움의 주소 값의 크기인 20바이트의 크기를 가집니다. 주소는 balance, transfer, send, call, callcode, delegatecall 의 멤버(Members)를 가지고 있습니다.
위 멤버들은 해당 주소의 이더를 확인하거나 전송하는 등의 일을 합니다. 이 부분은 후의 쳅터에서 자세히 적어보려합니다.

5. 고정된 크기의 바이트 배열

bytes1, bytes2, … bytes32, byte 는 bytes1를 의미합니다.
[]로 index 접근이 가능하며, 읽기만 가능합니다.