공부 내용 정리

Solidity DataType 에 대해 알아보자

blockchoin 2025. 6. 26. 14:52

Solidity를 연습하면서 다양한 데이터 타입을 다루는 DataType 컨트랙트를 만들어 연습해 보겠습니다.

1. 정수형 값 관리

  • 변수형:
    • positiveNumber: 양수 값을 저장 
    • negativeNumber: 음수 값을 저장 
  • 설명:
    정수형을 나타 낼 수 있고, 그 정수형의 부호까지 정할 수 있습니다.
    함수로 만들때에는 잘못된 값을 막기 위해 require로 검증하는 기능을 추가해야 합니다.

2. 불리언 값 관리 

  • 기능:
    • isActive: true 또는 false 값을 가집니다.
  • 설명:
    스위치처럼 상태를 바꿔야 할때 사용됩니다. 로그인 상태, 장비 작동 상태 등에서 자주 사용됩니다.

3. 주소 관리 

  • 기능:
    • address: 주소를 넣는 16진수, 40자리(20바이트)의 변수형을 저장합니다.
  • 설명:
    보통 주소를 저장 하는데 사용됩니다.

4. 바이트 데이터 관리 

  • 기능:
    • bytes32 : 고정된 길이의 바이트 값을 저장합니다.
    • bytes: 길이가 가변적인 바이트 값을 저장합니다.
  • 설명:
    바이트 데이터는 주로 파일, 해시값, 짧은 문자열 저장에 사용.
    가변 데이터는 배열처럼 유연하게 사용할 수 있음.

5. 열거형

  • 기능:
    • enum State { Created, Active, Inactive } : 이런 식으로 여러 요소를 enum으로 사용할 수 있습니다.
  • 설명:
    enum은 상태를 숫자가 아닌 "이름"으로 관리할 수 있어 코드 가독성이 좋습니다. 다만, 인덱스를 사용할 수는 없습니다.

6. 컨트랙트 생성자 

  • 기능:
    • constructor(): 배포 시 이 함수를 실행합니다.
  • 설명:
  • constructor는 컨트랙트를 처음 배포할 때 1회만 실행되는 특별한 함수입니다.
  • 보통 컨트랙트를 초기화하는 역할을 합니다.
  • 이 생성자는 재호출 불가능하고, 컨트랙트가 블록체인에 올라가는 순간만 실행됩니다.

 

7. 정리

솔리디티에서 자주 사용하는 데이터 타입에 대해 적확히 알고 사용하는 게 중요합니다. 

  • 가스비 절약
  • 결정적 실행 보장
  • 보완성 강화

등의 이유로 변수타입 추론이 불가능하기에 꼭 데이터 타입을 명시해야 합니다!