본문 바로가기

솔리디티8

[Solidity] 함수 제어자 view & pure 함수 제어자(State Modifier) view, pure 함수 제어자란 컨트렉트 내에 선언된 변수의 상태를 변경시키는지 그렇지 않는지 나타낸다. view 와 pure 두가지가 있으며, 두 함수 제어자 모두 컨트렉트를 변경시키지 않는 함수 선언에 함께 붙는다. 차이점은 반환하는 데이터가 함수 밖의 상태 변수(State Variable)인지 아닌지에 있다. 아래 예제들을 보며 살펴보자. string greeting = "Hello"; function sayHello() public view returns (string) { return greeting; } 위에서 살펴 본 함수 sayHello()는 솔리디티에서 상태를 변화시키지 않는다. 즉, 어떤 값에 대한 변경이나 수정이 없다. 이 경우에는 함수를 v.. 2022. 3. 11.
[Solidity] string memory와 bytes 이번 시간에서 솔리디티 문법 중, 문자열(string)과 바이트(bytes) 코드에 대해 알아보자. 솔리디티 코드에는 가스(Gas)라는 비용이 포함된다. 개발자가 솔리디티 코드를 작성하는 목적은 이더리움 스마트 컨트렉트 구현에 있는데, 스마트 컨트렉트는 곧 블록체인을 수정(Update)하는 것으로 이더리움 네트워크에서 가스(Gas)라는 비용을 청구받게 된다. 달리 표현하면, 솔리디티 코드로 스마트 컨트렉트를 구현할 때, 해당 컨트렉트가 얼마만큼 이더리움 블록체인에 개입하는지에 따라 요금을 내야하는 것이다. (= 트렌젝션(Transaction) 복잡성과 가스(Gas)는 비례한다.) 왜 가스가 발생하는지, 트렌젝션 복잡성은 무엇인지에 대한 설명이 궁금하다면, Ethereum 카테고리를 참고하면 된다. 이번에.. 2022. 3. 10.
[Solidity] Scope와 Visibility (Public, Private, External, Internal) 솔리디티로 스마트 컨트렉트 작성 시, 아래와 같은 함수를 볼 수 있다. 내부에 작성된 코드는 생략하고 함수가 선언된 형식에 집중해보자. 여타 프로그래밍 언어와 유사한 부분이 있는 듯 하지만 선언문의 순서라던지 용어에서 차이점을 느낄 수 있을 것이다. 오늘 포스팅에서 집중해서 볼 부분은 스코프(Scope 혹은 Visibility)다. 아래 함수 예제 코드에서 확인할 수 있는 public, priavate, external, internal 등이 이에 해당한다. // SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.0; contract Decalaration { int public numA = 100; int numB = 500; function private.. 2022. 3. 10.
[Solidity] 이더리움 프로그래밍 코드 에디터 Remix IDE 프로그래밍의 코드 에디터를 여는 시점에서 시작된다고 할 수 있다. 그리고 개발자라면 하나 이상의 코드 에디터를 사용한 경험이 있을거라 생각한다. JavaScript를 주로 사용하는 사람이라면 비쥬얼 스튜디오(VS Code)일 것이며, Java 개발자는 이클립스(Eclipse) 혹은 인텔리제이(InteliJ), Swift 개발자는 XCode와 같은 에디터를 사용할 것이다. 이처럼 각 프로그래밍 언어에는 그 언어에 적합한 코드 에디터가 있고, 개발 언어에 따라 최적의 프로그래밍 유틸리티 기능을 제공받을 수 있다. 이번 포스트에서는 이더리움 프로그래밍에서 가장 대표적인 리믹스(Remix) 코드 에티터를 소개하고자 한다. 풀 네임은 Remix IDE로 IDE란 통합 개발 환경(Integrated Developm.. 2022. 3. 8.