Blockchain/Solidity

    Solidity : 생성자, 인스턴스화, 상속, overriding

    Solidity : 생성자, 인스턴스화, 상속, overriding

    시작하며 오늘은 솔리디티에서 클래스를 다루는 것처럼 contract를 다루는 기능들에 대해 설명하겠다. 사실상 이해를 쉽게하면 contract는 다른 객체지향언어에서 클래스라고 부르는 것과 거의 똑같다고 봐도 무방하다. 때문에 생성자나 상속과 같은 기능을 제공하며 오늘은 예시를 통해 이러한 요소들에 대해 알아보겠다. 1. 생성자 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 =0.7.0 =0.7.0 =0.7.0

    Solidity : Event

    Solidity : Event

    시작하며 오늘은 솔리디티에서 이벤트에 대해 다뤄보겠다. 솔리디티에서 이벤트는 스마트 컨트랙트 또는 유정의 특정한 상태를 출력하며 그 상태를 블록체인에 저장한다. 스토리지에 저장한 것은 변경 가능하나 이벤트로 기록된 것은 수정이 불가하다. 또 이벤트는 검색이 가능하다. 즉 이벤트는 기록을 원하는 로그를 블록체인에 기록하는 것이라고 보면 된다. 코드로 살펴보자. Event 예시 코드 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0

    Solidity : 배열 다루기

    Solidity : 배열 다루기

    시작하며 오늘은 간단하게 배열을 다루는 법에 대해 다루겠다. 사실 다른 언어와 비슷하게 작동하나 조금 헷갈리는 것들이 있어서 이 글에서 정리해보려고 한다. 코드를 확인해보자. 1. 배열 선언 // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0 =0.7.0 솔리디티 강좌 18강 Array 배열 안녕하세요 지난 시간에 이어, array를 다뤄 보려고 합니다. 배열은 타입 [] 접근제한자 변수명 이런식 으로 정의 됩니다 // SPDX-License-Identifier:GPL-30 pragma solidity >= 0.7.0 < 0.9.0; contract lec18{ uint256[] publ dayone.tistory.com

    Solidity : memory와 storage, 그리고 문자열 비교하기

    Solidity : memory와 storage, 그리고 문자열 비교하기

    1. Memory와 Storage 이번 글은 약간 아 그렇구나 하고 넘어가는 정도의 글이다. 솔리디티에서 데이터 저장공간은 memory와 storage로 나뉜다. Storage는 블록체인에 영구적으로 저장되고 memory는 일시적으로, 외부에서 함수 호출이 일어날때마다 초기화된다. 아래 글에 알기 쉽게 잘 설명되어있어 링크를 가져왔다. https://merrily-code.tistory.com/102 솔리디티 - 05. Storage와 Memory 솔리디티에는 변수를 저장할 수 있는 Storage와 Memory 라는 공간이 존재합니다. Storage는 블록체인 상에 영구적으로 저장되며, Memory는 임시적으로 저장되는 변수로 함수의 외부 호출이 일어날 때마 merrily-code.tistory.com ..

    Solidity : 함수 및 Modifier

    시작하며 지난 글에서 가시성 지정자에 대해 다루며 변수에 대해 가시성 지정자를 지정하였을 때 어떤 차이가 있는지 간단하게 알아보았다. 함수에도 가시성 지정자가 붙는데, 이를 포함해 전체적으로 컨트랙트 안에서 함수는 어떻게 정의하고, modifier가 무엇인지 알아보자. 여기서 modifier는 function modifier에 대한 개념이다. 함수 작성법 및 function modifier // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.7.0

    Solidity : 가시성 지정자

    Solidity : 가시성 지정자

    시작하며 지난 글에서 간단하게 솔리디티에서 제공하는 자료형에 대해서 알아보았다. 이번에는 가시성 지정자에 대해서 알아보자. 가시성 지정자 public : 내부, 외부에서 접근 가능 external : 외부 접근만 가능(함수에 사용, 변수에 적용불가, 예외적으로 this를 사용해 접근 가능) private : 내부 접근 가능 internal : 내부 접근만 가능하나, 상속을 받은 경우는 가능(private의 확장형, 아무 지정자도 정하지 않은 경우 기본 internal) 위 remix상에서 해당 컨트랙트를 deploy 했을 때, 왼쪽 하단을 보면 외부에서 public으로 선언한 a에만 접근 가능한 것을 확인할 수 있다. 함수도 마찬가지이며, 변수는 public으로 저장했을 때, 자동으로 getter함수가 ..