지극히 개인적인 공부

[블록체인] Remix IDE 기본 사용법 및 Contract 배포/호출하기

어우우 2025. 3. 13. 18:05
반응형
반응형

* Remix 란?

Remix는 Solidity 컴파일 및 배포 후 contract 호출까지 간단하게 브라우저로 쉽게 할 수 있는 온라인 IDE이다.

smart contract를 처음 개발 할 당시 나도 간단한 solidity 테스트 혹은 compile 오류 잡을 때 유용하게 사용했던 경험이 있고, 초보자들이 쓰기에도 직관적인 UI와 간편한 사용법이 큰 장점이라고 생각한다.

오늘은 간단한 solidity 컴파일 & 배포 및 call까지 해보며 나만의 꿀팁을 공유하려 한다!

 

 

* Remix

https://remix.ethereum.org

 

Remix - Ethereum IDE

 

remix.ethereum.org

 

 

  • 위 경로로 접속하면 별다른 세팅 없이도 default workspace 가 생성된다.

 

 

  • workspace 하위 contracts 폴더에는 샘플 solidity 파일들이 생성되어 있다.
    여기에 업로드 버튼을 이용하여 본인의 solidity를 추가할 수도 있고, 새로 파일을 만들 수도 있다.
  • 그리고 왼쪽 상단 Workspace actions 탭을 눌러서 workspace와 관련된 작업을 할 수 있다. 
    Download를 하면 Workspace 전체 sol 파일을 로컬로 다운로드도 가능하다.

 

 

  • Solidity 개발할 때 또 하나의 꿀팁!!!!! 바로바로 console.log를 찍을 수 있다!!!!
    물론 hardhat network 사용하면 개발할 때 log를 찍어 볼 수 있지만, 일단 나는 Besu network 기반의 프로젝트를 수행하다 보니 contract interaction 시에 log를 확인할 길이 없었다... 심지어 기이하게 로컬에서 hardhat network도 막혔었음.... 그래서 대체 어디서 뭐 때문에 오류가 나는지 파악이 어려운 경우에는 Remix에 solidity 업로드 후 log 넣어서 확인해보곤 했다!!! 

 

 

  • Solidity compile은 Ctrl+s 를 누르면 자동으로 compile이 수행된다.
  • compile이 정상적으로 수행되면 workspace에 자동으로 artifacts 폴더가 생기며 compile 산출물인 json 파일이 생성된다.
  • json 파일 안에는 abi와 bytecode가 생성된다.

 

 

  • 만약 solidity compile 버전을 별도로 세팅하고 싶다면 3번째 탭을 클릭해서 변경할 수 있다.
  • 여길 바꿔두면 다시 workspace에서 ctrl+s 했을 때 적용되어 컴파일된다.
  • 나는 로컬 세팅된 solc version 외에 다른 버전을 테스트해 볼 때 이 기능을 자주 사용했다!
  • 그리고 여기 또 하나의 꿀팁!!! abi와 bytecode를 편하게 copy 할 수 있음!!!!
    가끔 배포하기 위한 bytecode만 필요하거나, contract call 하기 위해 abi만 확인해야 하는 경우가 있는데 이때 유용하게 사용했음!!
  • (그 외의 기능은 사용해 본 경험이 없음...)

 

  • 그리고 또 자주 사용했던 기능이 바로 compile 오류 잡기...
    VS code에 solidity extension을 세팅해도 기본적인 문법 오류를 에러로 표시 안 해주는 경우가 많았음..ㅠㅠ
    그럴 때 습관적으로 우선 remix에 소스 업로드해서 오류 없는지부터 확인해서 잡은 에러가 꽤 많음!!
    (당연히 중요한 소스는 업로드하시면 안 됩니다!!!)

 

 

  • 컴파일까지 정상적으로 수행되면 배포 준비 끝!!! 4번째 Deploy & Run Transactions 탭에서 배포와 배포 후 상호작용까지 해볼 수 있다.
  • 배포 시 사용할 계정은 Account 탭에서 원하는 계정을 선택하면 되고, 계정은 추가가 가능하지만 커스텀은 안된다.(이거 너무 아쉽...)
  • 나는 프로젝트 요건이 죄다 free gas network라서 gas나 value는 그닥 크게 신경 쓰지 않고 사용도 잘 안 해봤지만, Estimated Gas를 선택하면 gas 탭이 막히고, Custom으로 선택하면 gas 수동 입력이 가능하다.
    value 역시 원하는 wei 단위로 입력해서 transfer 가능하다.
  • 위에서 compile 해뒀던 Storage contract를 contract 탭에서 확인 가능하다. 
  • solidity에 constructor가 있는 경우 Deploy 시에 입력 후 Deploy 버튼 클릭하면 된다.

 

 

  • Deploy 하고 나면 터미널에서 Transaction Receipt 확인이 가능하다.
  • 테스트를 위해 작성한 constructor 내에 console.log도 터미널 맨 하단에서 확인할 수 있음!!!
  • Deployed Contracts 탭을 열어서 상호작용이 가능하다.
  • 배포 시 세팅했던 initial 값인 100이 retrieve 되는 것을 확인할 수 있다.

 

 

  • store 함수를 호출해서 200으로 값을 변경했다. transaction을 발생시켰기 때문에 deploy와 동일하게 터미널에 transaction receipt가 찍히는데, 친절하게 input을 decode 해서 보여준다!!!(이것도 유용하게 잘 쓰던 기능임)
  • 그 후 다시 retrieve 함수를 call 했더니 200으로 변경된 걸 볼 수 있다.

 

 

* 마무리

Remix를 사용하면 굳이 블록체인 네트워크를 띄우지 않아도 편하게 compile부터 배포, 상호작용까지 쉽게 가능하기 때문에 여러모로 유용하다. 블록체인 및 Solidity 개발에 익숙하지 않다면 Remix를 통해 먼저 접해보는 것도 추천한다.

 

 

반응형