Remix IDE는 웹 브라우저에서 직접 스마트 컨트랙트를 작성, 컴파일, 배포 및 테스트할 수 있는 이더리움 개발 도구입니다. 별도의 설치 없이 사용할 수 있어 초보자부터 전문가까지 널리 활용됩니다. 이 글에서는 Remix IDE를 이용해 간단한 스마트 계약을 작성하고 실행하는 과정을 단계별로 설명합니다.
1. Remix IDE 소개 및 접속 방법
Remix는 remix.ethereum.org 에서 접속할 수 있습니다. 웹 기반으로 동작하므로 별도 설치가 필요 없으며, Solidity를 지원합니다.
Remix는 크게 다음과 같은 탭으로 구성되어 있습니다:
- File Explorer: 계약 파일 관리
- Solidity Compiler: 코드 컴파일
- Deploy & Run Transactions: 스마트 계약 배포 및 실행
2. 첫 번째 스마트 계약 작성
다음은 간단한 예금 및 인출 기능을 가진 스마트 계약 예시입니다:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract SimpleBank {
address public owner;
mapping(address => uint) public balances;
constructor() {
owner = msg.sender;
}
function deposit() public payable {
balances[msg.sender] += msg.value;
}
function withdraw(uint amount) public {
require(balances[msg.sender] >= amount, "잔액 부족");
balances[msg.sender] -= amount;
payable(msg.sender).transfer(amount);
}
function getBalance() public view returns (uint) {
return balances[msg.sender];
}
}
3. 코드 입력 및 컴파일
Remix의 File Explorer에서 새 파일을 생성하고, 위 코드를 붙여넣습니다. 그런 다음 왼쪽 메뉴에서 Solidity Compiler 탭을 클릭하여 컴파일합니다. 컴파일러 버전은 pragma 선언과 맞는 0.8.0 이상을 선택해야 오류가 발생하지 않습니다.
4. 스마트 계약 배포
컴파일이 완료되면 Deploy & Run Transactions 탭으로 이동합니다. 환경(Environment)을 JavaScript VM으로 선택하면 가상의 브라우저 내 블록체인 환경에서 테스트할 수 있습니다.
이후 Deploy 버튼을 클릭하면 계약이 배포되며, 아래에 계약 인스턴스가 생성됩니다.
5. 함수 실행 및 테스트
배포된 계약 인스턴스 아래에 있는 버튼을 통해 다음과 같은 테스트를 할 수 있습니다:
- deposit: ETH를 입력 후 전송(Transact) 버튼 클릭
- withdraw: 숫자 입력 후 인출
- getBalance: 현재 나의 예치금 확인
함수 실행 결과는 콘솔(Log) 탭에서 확인할 수 있으며, 상태 변화는 가상 블록체인 상에 기록됩니다.
6. 외부 지갑(MetaMask) 연동 배포
환경을 Injected Provider - MetaMask로 변경하면 실제 이더리움 테스트넷(예: Sepolia, Goerli 등) 또는 메인넷에 배포할 수 있습니다. 이때 MetaMask 지갑이 설치되어 있어야 하며, 가스비 지불을 위한 ETH가 필요합니다.
결론
Remix IDE란?: 웹 기반 스마트 계약 통합 개발 환경으로 Solidity 코드 작성, 컴파일, 배포, 테스트를 쉽게 수행할 수 있습니다.
스마트 계약 작성: 간단한 예금/출금 기능을 가진 Solidity 예제를 통해 실습이 가능합니다.
컴파일 및 배포: Solidity Compiler와 Deploy & Run Transactions 탭을 이용해 로컬 또는 테스트넷에 계약을 배포합니다.
함수 실행: deposit, withdraw, getBalance 등 버튼을 클릭하여 직접 트랜잭션을 발생시켜 결과를 확인할 수 있습니다.
Remix IDE는 초보자에게도 진입장벽이 낮고, 실시간으로 스마트 계약 개발을 실습할 수 있는 강력한 도구입니다. 학습과 테스트에 매우 유용하므로 Solidity를 처음 배우는 사용자에게 적극 추천됩니다.