modifier 제어자(Modifier): 함수의 동작을 변경하거나 확장하기 위해 사용된다. modifier는 함수가 호출되기 전이나 후에 실행될 추가적인 로직을 담고 있다. 주로 스마트 컨트랙트의 함수가 특정 조건을 충족해야 실행될 수 있게 하거나, 상태 변경 등의 추가적인 작업을 수행하는 데 사용된다. 코드 pragma solidity ^0.8.0; contract Ownable { address public owner; constructor() { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner, "You are not the owner"); _; } } contract MyContract is Ownable { ui..
mapping mapping은 Solidity에서 키(key)-값(value) 쌍을 저장하는 자료 구조이다. 이는 JavaScript의 객체(Object)/해시 테이블과 유사하며, 특정 키를 사용하여 값을 빠르게 검색할 수 있다. 기본 문법 mapping(keyType => valueType) public/external/internal/private mapName; keyType: 키의 데이터 유형을 지정한다. 이는 uint, int, address 등과 같은 Solidity의 기본 타입일 수 있습니다. mapping 및 dynamic arrays는 키로 사용될 수 없다. valueType: 저장할 값의 데이터 유형을 지정한다. 모든 데이터 타입이 가능하며, 다른 mapping 및 dynamic arr..
정의 솔리디티(Solidity)는 블록체인 플랫폼에서 스마트 컨트랙트를 작성하기 위한 "계약 지향 프로그래밍 언어"이다. Ethereum 블록체인 플랫폼에서 가장 많이 사용되며, 이더리움 기반의 다른 블록체인에서도 사용될 수 있다. 특징 스마트 컨트랙트 특화: 블록체인 환경에 특화된 언어이다. 커뮤니티 지원: Ethereum 생태계가 활발해서 다양한 라이브러리와 도구가 있다. 주의 사항 학습 곡선: 블록체인과 스마트 컨트랙트에 대한 이해가 필요하다. 가스 비용: 비효율적인 코드는 높은 가스 비용을 초래한다. 빠른 업데이트: 비교적 새로운 언어이다 보니 업데이트가 빠르게 이루어지면서 문법이나 기능에 변화가 있을 수 있다.