# Remix-IDE를 이용한 컨트랙트 배포

리믹스 (Remix Project)는 컨트랙트 개발의 전 과정에서 필요한 기술 및 기능을 개발자가 사용할 수 있도록 지원하는 개발 도구이며, 이더리움을 배우고 실험할 수 있는 교육 플랫폼으로도 사용됩니다.

{% hint style="info" %}
모든 블록체인에 컨트랙트를 배포할 때는 해당 체인의 네이티브 토큰을 사용하여 배포 가스 수수료를 지불해야 하며, 이는 디카르고도 마찬가지입니다. 디카르고 테스트넷 Warehouse에 배포하기 전에 [faucet](https://docs.dkargo.io/undefined-4/undefined)을 통해 $DKA 테스트넷 토큰을 획득할 수 있습니다.

Remix는 [메타마스크](https://docs.dkargo.io/undefined-1/undefined)에 등록된 지갑을 이용하여 블록체인과 상호작용을 합니다.&#x20;
{% endhint %}

## STEP 1 - 리믹스 시작

1. [리믹스 (Remix)](https://remix.ethereum.org/)에 접속합니다. **File Explorer**로 이동한 후 **≡** 를 선택합니다. 옵션 중에서 **\[ + Create Blank ]**&#xB97C; 선택하여 새로운  워크 스페이스 (Workspace)를 생성합니다.
2. 새 파일 <mark style="color:blue;">`counter.sol`</mark>을 생성하고 컨트랙트 코드를 입력하거나 아래 샘플 코드를 사용합니다.

```solidity
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
 
contract Counter {
    uint256 public number;
 
    function setNumber(uint256 newNumber) public {
        number = newNumber;
    }
 
    function increment() public {
        number++;
    }
}
```

3. **\[ Solidity Compile ]** 사이드바 옵션으로 이동하여 <mark style="color:blue;">`counter.sol`</mark> 컴파일을 선택합니다.

## STEP 2 - 컨트랙트 배포

1. 사이드바 옵션 **\[ Deploy & run transactions ]** 으로 이동합니다.
2. 드롭 다운 **ENVIRONMENT**을 **"Injected Provider - MetaMask"**&#xB85C; 변경합니다.
3. 메타마스크에서 **\[ Connect ]** 을 눌러 리믹스 액세스를 허용합니다.

<figure><img src="https://4000320385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcRxyI4TUcDlkSjOJywa%2Fuploads%2F0xixUvZfkv6POY41CqfK%2F%E1%84%85%E1%85%B5%E1%84%86%E1%85%B5%E1%86%A8%E1%84%89%E1%85%B31.png?alt=media&#x26;token=13a66f9c-e1a8-4a81-ae20-4998373eebc4" alt="" width="563"><figcaption></figcaption></figure>

4. 메타마스크 연결이 완료되면 **\[ Deploy ]** 버튼을 클릭하여 컨트랙트를 배포합니다.

<figure><img src="https://4000320385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcRxyI4TUcDlkSjOJywa%2Fuploads%2F9F6vF9Ce9uHVGh0pMlD1%2F%E1%84%85%E1%85%B5%E1%84%86%E1%85%B5%E1%86%A8%E1%84%89%E1%85%B32.png?alt=media&#x26;token=b05dae12-d73a-40e8-84bb-e6bfc8475f68" alt="" width="563"><figcaption></figcaption></figure>

5. 배포된 컨트랙트는[ 디스캐너 (dScanner)의 Verified Contracts](https://warehouse.dscanner.io/contracts-verified) 메뉴에서 확인할 수 있습니다.

## STEP 3 - 컨트랙트와 상호 작용

1. 컨트랙트를 배포한 후에는 왼쪽 아래 탭에서 컨트랙트와 상호 작용을 할 수 있습니다.

<figure><img src="https://4000320385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcRxyI4TUcDlkSjOJywa%2Fuploads%2F8m0gNu5mnb3drTRy1ta7%2F%E1%84%85%E1%85%B5%E1%84%86%E1%85%B5%E1%86%A8%E1%84%89%E1%85%B33.png?alt=media&#x26;token=b4c91721-8bf6-46b1-aba4-abda9de5f431" alt="" width="563"><figcaption></figcaption></figure>

2. **\[ Number ]** 를 선택하여 컨트랙트에 저장된 숫자를 조회합니다. 컨트랙트 배포 후, 숫자는 0으로 초기화된 상태입니다.

<figure><img src="https://4000320385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcRxyI4TUcDlkSjOJywa%2Fuploads%2FT0vDBcOrTJ7qqioU7WNj%2F%E1%84%85%E1%85%B5%E1%84%86%E1%85%B5%E1%86%A8%E1%84%89%E1%85%B34.png?alt=media&#x26;token=398bdb0f-e057-4c85-af32-43b029ae99cf" alt="" width="279"><figcaption></figcaption></figure>

3. **\[ increment ]**&#xB97C; 클릭하여 숫자에 +1을 동작하는 트랜잭션을 전송합니다. 메타마스크에서 트랜잭션을 확인(Confirm)하여 트랜잭션을 디카르고 체인에 전송합니다.

<figure><img src="https://4000320385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcRxyI4TUcDlkSjOJywa%2Fuploads%2FVqtw4qLOttli9uvTU3Mw%2F%E1%84%85%E1%85%B5%E1%84%86%E1%85%B5%E1%86%A8%E1%84%89%E1%85%B35.png?alt=media&#x26;token=64a3f8c6-ad84-49ff-bd28-cfa934609b92" alt="" width="563"><figcaption></figcaption></figure>

4. **\[ number ]** 를 선택하여 1이 증가한 숫자를 확인합니다.

<figure><img src="https://4000320385-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcRxyI4TUcDlkSjOJywa%2Fuploads%2FdqO8Wbr5fHo2nWB3zwJg%2F%E1%84%85%E1%85%B5%E1%84%86%E1%85%B5%E1%86%A8%E1%84%89%E1%85%B36.png?alt=media&#x26;token=13b6461c-c5a7-46bf-8919-e4c6e4b76ac0" alt="" width="280"><figcaption></figcaption></figure>
