본문 바로가기

블록체인

NFT 만들기 _ Ethereum (1)

NFT를 만드는 방법은 크게 3가지로 나뉜다.

1. Ethereum 네트워크를 활용하여

2. Polygon 네트워크를 활용하여

3. Klaytn 네트워크를 활용하여

 

각각의 장단점이 있는데 

시장 크기 : ETH > MATIC > KLAY

수수료(낮은 순) : MATIC > KLAY > ETH

정도로 요약할 수 있을 것 같다.

 

Solidity 공부도 할겸 각각의 네트워크도 사용해볼겸 NFT도 발행해볼겸 각각의 네트워크(메인넷과 테스트넷 모두)에서 NFT를 발행하는 과정을 기록해보고자 한다.

 

그 첫번째 순서는 'Ethereum Network를 활용한 NFT 만들기'이며 https://ethereum.org/en/developers/tutorials/how-to-write-and-deploy-an-nft/를 참고하였다.

 

0. 준비하기

 

만들기 위해서 

 - MetaMask

 - Solidity

 - Hardhat

 - Pinata

 - Alchemy

가 필요하다고 하는데 내가 판단한 나의 이해도는 다음과 같다

 

MetaMask ●●●●○

 - 코인 전송 가능

 - 멀티체인 활용 불가

Solidity ●○○○○

 - 이더리움 기반 언어

 - 문법 익숙함

 - 직접 작성해본 경험 없음

 - 코드 활용 가능할 것 같음

Hardhat ○○○○○

 - 이름만 들어봄

Pinata ●●●○○

 - NFT 만들 때 ipfs에 데이터 올리는 것으로 활용해봄

Alchemy ●○○○○

 - 바이낸스에서 매매 경험 다수 있음

 

이렇게 정리하고 보니 이야기가 길어질 것 같다! 순서를 나누어서 글을 작성하면 좋을 것 같아 이 게시글에는 내가 모르는 것을 정리해두는 것을 목표로 해야할 것 같다.

 

1. 각각에 대한 이해

 

1-1. Hardhat

우선 전혀 모르는 Hardhat을 알기 위해 ChatGPT한테 물어봤다!

약간 대충 설명을 요약하자면 이더리움 스마트 컨트랙트 개발 환경이라는 것 같다! 잘은 모르지만 비슷한 것으로 Remix가 있었던 것 같아서 같은 것인가 싶어 물어보았다.

 

아닌가보다...ㅎㅎ 개발 환경이라고 해서 IDE를 떠올렸는데 IDE와 DE는 NFT와 FT의 차이만큼이나 큰 차이를 가지는걸지도 모르겠다. 언젠가 이 부분에 대한 정리도 해봐야겠다.

 

그래서 요약하자면 Hardhat은

 - 이더리움 스마트 컨트랙트를 위한 개발 환경이고 

 - 개발 워크플로우에 중점을 두고 컴파일, 테스트 실행, 배포와 같은 작업을 처리하는 작업 실행자이다

 

이 설명만으로는 이해가 부족해서 직접 마주해보려고한다.

 

1-2. Hardhat 마주하기

 

우선 Hardhat 문서 링크를 들어간다.

https://hardhat.org/hardhat-runner/docs/guides/project-setup

 

Hardhat | Ethereum development environment for professionals by Nomic Foundation

Hardhat is an Ethereum development environment. Compile your contracts and run them on a development network. Get Solidity stack traces, console.log and more.

hardhat.org

첫 글이 WSL2를 쓰라는 것... 문제는 WSL가 뭔지 모른다는 것이기에 알아보려고 했는데 꽤 글이 긴 것 같다...

Windows Subsystem for Linux 2의 약자이며 윈도우의 가상화 기능을 활용해서 윈도우 위에서 리눅스를 사용할 수 있게 해주는 것이라고 한다.

그렇다면 내가 알아야하는 것은 'Windows와 Linux의 차이점'이 될 것 같다.

일단 나는 핑프이기에 일단 ChatGPT한테 시켰고 굉장히 긴 답변을 받았다.

요약은 다음과 같다.

 

  Windows Linux
Open Source? Proprietary Open Source
Cost? Pay Free
User Interface Consistent Various
Software Compatibility Relatively high Relatively low
Command Line Interface Relatively weak Relatively powerful
Security and Stability Relatively bad Relatively good 
Customizability and Flexibility Relatively low Relatively high

아무튼.... 대충 차이를 알았으니 시작해보자!

 

*미션 속 미션 : WSL 설치하기!

 

1. PowerShell이나 Windows Command Prompt를 관리자 모드로 연다.

2. $wsl --install을 입력한다.

3. 설치를 기다린다.(한 30분은 걸린듯 ㄷㄷ)

4. 설치가 완료되고 다시 껐다 킨다!

5. 다시 키면 이런게 생긴다! 유저 이름을 치라고 해서 Meganpark으로 쳤다(대소문자 주의!)

(

아 ctrl + CC 눌렀다가 꺼져버렸다.... ㅠ

설정하고 다시 껏다키면 되는줄 알았는데 그것도 안된다ㅜ

하...

이렇게 뜨는 모습을 보니 UNIX username 안쳤다고 나중에 억까할 것 같은데 일단 넘어가야겠다...

)

 

그렇게 설치를 확인해보았다.

설치가 된 것 같다!

 

이제 이것을 활용해야하는데 이 과정에서 내가 하나라도 실수하면 또 컴퓨터가 억까를 할 예정이기에 친철한 chatGPT한테 물어봐야한다.... 그렇게 받은 답변은 

라고 하는데 일단 해보도록 하겠다!

 

1. $sudo apt update

2. $sudo apt install nodejs npm

Y를 안누르면 안넘어갈테니... Y

3. 완료!

하지만? 내가 만든 디렉토리로 이동하는 곳에서 막혀버렸다..... 

 

대부분의 프로젝트가 이런 환경설정에서 막히는 것 같은데 일단은 하라는 것을 해봐야겠다.

안되면 이 곳으로 돌아오면 되니 너무 걱정하지 않고 출발해봐야겠다!