solidity(4)
-
Solidity 기초 - 5 (가스비)
가스비 함수를 실행하는 데에 필요한 가스는 그 함수의 로직이 얼마나 복잡한지에 따라 달라집니다. 각각의 연산은 소모되는 가스 비용이 있고, 그 연산을 수행하는 데에 소모되는 컴퓨팅 자원의 양이 비용을 결정합니다. Solidity의 로직은 곧 비용와 직결되기 때문에 코드 최적화에 신경써야할 것입니다. view 함수를 사용해 가스 절약 view 함수는 사용자에 의해 외부에서 호출되었을 때 가스를 소모하지 않습니다. view 함수는 블록체인 상에서 실제로 어떤것도 수정하지 않고 데이터를 읽기만 하기 때문입니다. 이것은 실제로 로컬 노드에게 질의만 날릴 뿐, 블록체인에 트랜잭션을 생성하지 않습니다. view 함수가 아닌, 다른함수 내에서 view 함수를 호출할 경우에는 블록체인에 트랜잭션을 생성하므로 가스비가 ..
2022.01.23 -
Solidity 기초 - 1 (기본 변수, 함수 Keyword)
Version Pragma 모든 solidity 코드는 'version pragma'로 시작해야합니다. 이것은 해당 버전을 이용하여 컴파일러한다는 의미입니다. pragma solidity ^0.4.19; cntract HelloWorld { } ----------------------------- pragma solidity>=0.4.19
2022.01.11 -
Solidity Memory, Storage 차이
메모리 영역 Solidity는 변수를 저장할 수 있는 Storage와 Memory라는 공간이 존재합니다. Storage Storage는 블록체인 상에 영구적으로 저장됩니다. Storage로 저장하는 법은 상태 변수로 선언하거나 명시적으로 Storage를 선언하는 것입니다. - 상태 변수 상태 변수는 컨트랙트 저장소에 영구적으로 저장됩니다. 이것은 곧 블록체인에 저장된다는 의미입니다. 상태 변수는 contract 최상위단에 선언되어 있습니다. contract Example { string strExample = "EXAMPLE"; } - 명시적 선언 변수 선언 시, 명시적으로 storage를 붙여 선언할 수 있습니다. contract Example { string strExample = "EXAMPLE";..
2022.01.11 -
Solidity 개요 (dApp, EVM, Smart Contracts)
Solidity Solidity는 smart contracts를 구현하기 위한 고급언어입니다. 이더리움 가상 머신(EVM)을 대상으로 하도록 설계 되었으며, 정적타입의 언어입니다. 즉, Solidity는 EVM환경에서 동작하는 프로그램(dApp)의 smart contracts를 구현하는 프로그래밍 하는 언어라고 생각할 수 있습니다. 이더리움 가상 머신(EVM) Solidity로 프로그래밍한 코드는 Solidity 컴파일러에 의해 기계어로 번역됩니다. 이것을 Ethereum Bytecode라고 불리며, EVM에서 실행됩니다. EVM은 누구나 접근할 수 있고 수많은 블록체인 데이터를 담당합니다. 그러나 무료는 아니며, EVM에 접근하여 트랜잭션을 실행시키기 위한 비용을 Gas Fee라고 합니다. 즉, Sol..
2022.01.10