이더리움/솔리디티

[솔리디티] 2. 리믹스 IDE

라이튼 2023. 7. 6. 23:06

이전글

 

[솔리디티] 1. 솔리디티와 EVM

이전글 [솔리디티] 0. 들어가기 전에 앞으로 이어지는 솔리디티 글은 다음과 같은 내용이 미리 선행되어야 합니다. 1. 프로그래밍 기초: 기초적인 수준의 프로그래밍 개념인 변수, 함수, 클래스

kwjdnjs.tistory.com

 

리믹스 IDE

솔리디티로 코드를 작성하고 테스트하기 위해서는 다음과 같은 것들이 필요합니다.

  • 솔리디티 코드 작성을 위한 코드에디터
  • 솔리디티로 된 코드를 컴파일하기 위한 컴파일러
  • 컴파일된 코드를 테스트하기 위한 테스트 블록체인

 

위 3가지를 모두 제공하며 쉽게 웹으로 사용할 수 있는 IDE가 있습니다. 바로 리믹스입니다.

 

이번 글에서는 솔리디티 개발을 위한 개발 환경 중 하나인 리믹스에 대해 알아보겠습니다.

 

1. 리믹스 접속

 리믹스는 아래 링크로 접속할 수 있습니다.

 

Remix - Ethereum IDE

 

remix.ethereum.org

 

 처음 접속하게 되면 파일 탐색기와 함께 홈화면이 등장합니다. 여기에서 왼쪽 메뉴 중 파일 탐색기 부분을 보겠습니다.

 

 

 파일 탐색기에서 default_workspace를 누르면 워크 스페이스를 변경할 수 있습니다.

 

 

 해당 부분을 클릭하면 위와 같은 메뉴가 표시됩니다. 여기에서 create a new workspace를 눌러 새로운 워크 스페이스를 생성해 보겠습니다.

 

 

 빈 템플릿인 Blank를 선택하고 적절한 이름을 지어서 워크 스페이스를 생성합니다.

 

 

 새로운 워크 스페이스가 생성되었습니다.

 

2. 리믹스에서의 코드 작성

 이제 간단한 솔리디티 코드를 작성해서 컴파일을 한 뒤, 리믹스에서 제공하는 테스트용 가상 블록체인에 배포하는 것까지 해보겠습니다.

 

 먼저 솔리디티 코드 작성을 위해 솔리디티 파일을 생성해야 합니다.

 

 

 파일 모양의 버튼을 클릭하면 새로운 솔리디티 파일을 생성할 수 있습니다.

 

 hello라는 이름을 가진 솔리디티 파일을 생성해 보겠습니다.

 

 

 솔리디티 파일은 확장자 .sol로 끝납니다. 파일 생성과정에서 이름만 입력하더라도 .sol 확장자로 된 파일이 생성됩니다.

 

 파일 탐색기에서 오른쪽에 위치한 부분이 코드 에디터입니다. 여기에 하나씩 코드를 작성해 보겠습니다.

 

 일반적으로 가장 먼저 작성하는 코드는 솔리디티 코드의 라이선스에 관한 코드입니다. 아래 코드를 맨 첫 줄에 입력합니다.

// SPDX-License-Identifier: MIT

 

 그다음은 해당 코드가 사용할 컴파일러 버전입니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

 'pragma solidity 버전' 형태로 사용할 컴파일러 버전을 명시할 수 있습니다. 위에 사용된  ^ 은 0.8.0 보다는 높은 버전이면서 0.9.0 보다는 작은 즉, 0.8.x 버전을 이용한다는 의미입니다.

 

 마지막으로 다음과 같이 입력하여 컨트랙트를 작성하겠습니다.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract Hello {

}

 

 'contract 이름'과 {}을 사용하여 컨트랙트를 생성할 수 있습니다. 컨트랙트는 블록체인에 배포되는 하나의 단위입니다. 즉, 말 그대로 하나의 스마트 컨트랙트를 의미합니다.

 

 컨트랙트는 클래스와 유사합니다. 따라서 내부에 변수와 함수를 선언할 수 있고, 다른 컨트랙트에 상속할 수 있습니다. 보다 자세한 내용은 앞으로의 글에서 다루겠습니다.

 

3. 리믹스에서의 컴파일과 배포

 컨트랙트를 작성했으므로 컨트랙트를 컴파일할 수 있습니다. 먼저 가장 왼쪽 메뉴로 이동하겠습니다.

 

 

 왼쪽 메뉴에서 돋보기 버튼 아래에 위치한 솔리디티 아이콘이 바로 컴파일러입니다.

 

 

 솔리디티 버전을 선택하고 아래쪽의 컨트랙트를 선택한 후 Compile 버튼을 누르면 컴파일이 진행됩니다.

 

 이전 코드 작성 과정에서 버전을 ^0.8.0으로 작성했기 때문에, 0.8.0 이상 0.9.0 미만 버전을 선택한 후 컴파일을 진행합니다. 컨트랙트는 현재 작성한 Hello 컨트랙트를 선택합니다.

 

 

 컴파일 메뉴 맨 아래에 ABI와 Bytecode 버튼이 있습니다. 각각을 클릭하면 컴파일된 ABI와 Bytecode를 복사할 수 있습니다.

 

 Hello 컨트랙트의 ABI와 Bytecode는 다음과 같습니다.

 

ABI: []

Bytecode: 6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220d34092f76a305c88a380964c4342f22bb66576de74741c31110c40dfb2e3370864736f6c63430008120033

 

 컨트랙트 내부에 특정한 변수나 함수가 없기 때문에 ABI는 비어있습니다. Bytecode의 경우 최소한의 코드 정도만으로 이뤄져 있습니다.

 

 마지막으로 해당 컨트랙트를 배포해 보겠습니다. 리믹스 버튼 아래에 위치한 이더리움 모양의 버튼이 바로 배포 메뉴입니다.

 

 

 해당 메뉴를 선택하면 아래와 같은 메뉴가 등장합니다.

 

 

 가장 위에 위치한 environment는 컨트랙트가 배포되는 블록체인을 뜻합니다. 여기에서는 리믹스가 제공하는 가상 블록체인인 Remix VM을 사용하겠습니다. 뒤에 (Shanghai)는 가장 최신 하드포크인 상하이 하드포크를 의미합니다.

 

 그 아래 위치한 account는 컨트랙트 배포 트랜잭션을 생성할 EOA를 뜻합니다.

 

 Gas limit은 배포 트랜잭션에서 사용될 최대 가스 양입니다.

 

 Value는 생성될 컨트랙트 계정(CA)으로 보낼 이더입니다.

 

 Contract는 배포할 컨트랙트입니다.

 

 Deploy는 말 그대로 컨트랙트 배포버튼입니다. 해당 버튼을 눌러 컨트랙트를 배포해 보겠습니다.

 

 

 블록체인에 트랜잭션이 전송되고 컨트랙트가 배포되면, 아래와 같이 메뉴 하단의 Deployed Contracts와 터미널에서 트랜잭션 정보를 확인할 수 있습니다.

 

 

 터미널에서 해당 트랜잭션을 클릭하면 아래와 같이 트랜잭션에 관한 자세한 정보를 볼 수 있습니다.

 

 

 지금까지 리믹스 IDE를 살펴봤습니다. 감사합니다.

 

 

다음글

 

[솔리디티] 3. 자료형, 배열, 상수, 상태 변수

이전글 [솔리디티] 2. 리믹스 IDE 이전글 [솔리디티] 1. 솔리디티와 EVM 이전글 [솔리디티] 0. 들어가기 전에 앞으로 이어지는 솔리디티 글은 다음과 같은 내용이 미리 선행되어야 합니다. 1. 프로그

kwjdnjs.tistory.com