Remix IDE 사용 가이드
접속
URL: https://remix.flutterdev.online
Private Blockchain 연결 방법
방법 1: External HTTP Provider (권장)
- Remix IDE 접속
- 왼쪽 메뉴에서 Deploy & Run Transactions 탭 클릭 (로켓 아이콘)
- Environment 드롭다운에서 Custom - External Http Provider 선택
- External HTTP Provider URL 입력:
https://rpc.flutterdev.online - OK 클릭
방법 2: MetaMask (Injected Provider) - 권장
External HTTP Provider 사용 시 계정(Private Key) 추가 버튼이 작동하지 않습니다. MetaMask를 사용하면 Private Key로 계정을 추가하고 트랜잭션에 서명할 수 있습니다.
Step 1: MetaMask 설치
- Chrome: Chrome Web Store
- Firefox: Firefox Add-ons
Step 2: FlutterDev 네트워크 추가
- MetaMask 열기
- 상단 네트워크 선택 드롭다운 클릭
- 네트워크 추가 → 네트워크를 수동으로 추가 클릭
- 다음 정보 입력:
| 항목 | 값 |
|---|---|
| 네트워크 이름 | FlutterDev Blockchain |
| 새 RPC URL | https://rpc.flutterdev.online |
| 체인 ID | 3151908 |
| 통화 기호 | ETH |
| 블록 탐색기 URL | https://scan.flutterdev.online |
- 저장 클릭
Step 3: Private Key로 계정 가져오기
- MetaMask 우상단 프로필 아이콘 클릭
- 계정 추가 또는 하드웨어 지갑 선택
- 계정 가져오기 클릭
- Admin Panel에서 복사한 Private Key 붙여넣기
- 가져오기 클릭
계정 Private Key 얻기
- https://flutterdev.online/admin 접속
- 지갑 목록에서 원하는 지갑의 Show 버튼 클릭
- Copy 버튼으로 Private Key 복사
Step 4: Remix IDE 연결
- Remix IDE 접속 (공식 사이트 권장)
- 왼쪽 메뉴에서 Deploy & Run Transactions 탭 클릭
- Environment 드롭다운에서 Injected Provider - MetaMask 선택
- MetaMask 팝업에서 연결 승인
- Account에 MetaMask 계정과 잔액이 표시됨
External HTTP Provider의 제한
External HTTP Provider는 RPC 노드에 직접 연결하지만, 노드가 계정 관리(personal API)를 지원하지 않으면 Private Key를 추가할 수 없습니다. 현재 FlutterDev 노드는 personal API가 비활성화되어 있어 MetaMask 사용을 권장합니다.
스마트 컨트랙트 배포 예제
1. 새 파일 생성
왼쪽 File Explorer에서 새 파일 생성: SimpleStorage.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
contract SimpleStorage {
uint256 private storedValue;
event ValueChanged(uint256 newValue);
function set(uint256 value) public {
storedValue = value;
emit ValueChanged(value);
}
function get() public view returns (uint256) {
return storedValue;
}
}2. 컴파일
- 왼쪽 메뉴에서 Solidity Compiler 탭 클릭
- 컴파일러 버전 선택 (0.8.19 이상)
- Compile SimpleStorage.sol 클릭
3. 배포
- Deploy & Run Transactions 탭으로 이동
- Environment: Custom - External Http Provider
- External HTTP Provider URL:
https://rpc.flutterdev.online - Account 드롭다운에서 계정 선택 또는 Private Key 입력
- Deploy 클릭
4. 상호작용
배포된 컨트랙트가 Deployed Contracts 섹션에 표시됨
set: 값 저장get: 값 조회
테스트 계정 사용
Admin Panel (https://flutterdev.online/admin)에서 프리펀드된 계정의 Private Key를 복사하여 사용
Private Key로 계정 추가 (MetaMask 필요)
External HTTP Provider에서는 + 버튼 작동 안함
External HTTP Provider 환경에서는 Account 옆 + 버튼이 비활성화되어 있습니다. 반드시 MetaMask를 통해 계정을 추가해야 합니다.
MetaMask로 계정 추가 방법:
- MetaMask에 FlutterDev 네트워크 추가 (위 가이드 참조)
- MetaMask에서 계정 가져오기 → Private Key 붙여넣기
- Remix에서 Injected Provider - MetaMask 선택
- 계정이 추가되고 잔액 표시됨
ERC20 토큰 배포 예제
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor(uint256 initialSupply) ERC20("MyToken", "MTK") {
_mint(msg.sender, initialSupply * 10 ** decimals());
}
}OpenZeppelin 컨트랙트 사용 시:
- File Explorer에서 @openzeppelin 폴더 자동 생성됨
- 또는 npm에서 직접 import
NFT (ERC721) 배포 예제
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
contract MyNFT is ERC721, Ownable {
uint256 private _tokenIdCounter;
constructor() ERC721("MyNFT", "MNFT") Ownable(msg.sender) {}
function mint(address to) public onlyOwner {
_tokenIdCounter++;
_safeMint(to, _tokenIdCounter);
}
}컨트랙트 검증
배포 후 Blockscout에서 컨트랙트 검증:
- https://scan.flutterdev.online 접속
- 배포된 컨트랙트 주소 검색
- Contract 탭 → Verify & Publish 클릭
- 소스 코드 및 컴파일러 정보 입력
- 검증 완료 후 Read/Write Contract 기능 사용 가능
팁
Gas 설정
Private chain이므로 Gas Price가 매우 낮음 (기본값 사용 가능)
디버깅
- Debugger 탭에서 트랜잭션 디버깅 가능
- 트랜잭션 해시 입력 후 Step-by-step 실행
플러그인
- SOLIDITY STATIC ANALYSIS: 코드 보안 분석
- SOLIDITY UNIT TESTING: 단위 테스트
- LEARNETH: Solidity 학습 튜토리얼
문제 해결
"Unable to connect to provider" 오류
- RPC URL 확인:
https://rpc.flutterdev.online - 네트워크 연결 상태 확인
"Insufficient funds" 오류
- Admin Panel에서 테스트 계정 Private Key 복사
- 해당 계정으로 전환
트랜잭션 pending 상태 지속
- 블록체인이 정상 작동 중인지 확인
- Block Explorer에서 최신 블록 확인