brunch

You can make anything
by writing

C.S.Lewis

by 서일환 Jul 23. 2022

NFT 발행에 대한 회고

WEB3에 녹여보는 임금노동자의 애환

지난 분기에 약 한 달 정도의 개인 시간을 들여서 NFT를 발행했다.

NFT를 발행하기 위해 '어떤 작업들을 진행했고, 무엇을 느꼈는지'에 대해 남기고 공유하고자 이 글을 쓰기로 했다. 이번에는 큰 틀에서만 이야기를 하고 혹시나 세부적으로 궁금한 분들이 있으면 더 남겨보기로 하겠다.


NFT를 발행한 이유는 순전히 호기심 때문이었다. 기술적인 내용은 이미 알고 있었지만 도대체 어떤 점이 개발자와 투자자의 흥미를 끄는 것인지 직접 느껴보고 싶었다. 지금 와서 돌아보면 흥미 요소를 이해하기 위해 시작했지만 결론적으로 기술적인 부분에서 더욱 큰 재미를 느꼈다.


주변에서 내가 NFT를 발행했다는 걸 알게 된 지인들 중 십중팔구는 "그래서 돈 많이 벌었어?"라는 질문을 던진다. 이 글을 읽는 분들도 궁금할 수 있을 것 같아서 미리 말해두지만 돈은 하나도 못 벌었다. 워낙 저렴하게 팔기도 했고 판매 비용으로 받은 암호화폐는 다시 또 생태계를 위해 사용했기 때문이다. 내가 얻은 무형의 자산(지식, 재미, 인사이트)을 제외하면 유형의 자산은 오히려 손해라고 볼 수 있다. 크지는 않지만 블록체인 네트워크나 거래소에 지불하기 위한 가스비를 써야 했고, 무엇보다 내 개인 시간을 하얗게 불태웠기 때문이다. 이 작업을 위해 한 달 정도는 매일 새벽 3~4시에 잠들었던 것 같다.


'NFT를 발행'했다고 표현을 하긴 했지만 조금 더 엄밀히 말하면 DApp(Decentralized Applications) 서비스를 구축했고 그 서비스 내에 NFT가 활용된다고 보는 게 정확할 것 같다.


서비스를 만들기 위해 내가 해야 했던 작업을 의미 있는 크기로 쪼개 보면 아래와 같다.

1. DApp 서비스 기획

2. NFT 아트 및 생성

3. 스마트 컨트랙트 개발 및 배포

4. 프론트엔드 웹 구축

5. 백엔드 API 서버 구축

6. 블록체인 이벤트 수신 및 처리기 구축

7. 마켓 등록 (OpenSea, Polygonscan 등)

8. 커뮤니티 및 홍보채널 개설 (Discord, Twitter)

9. Discord 봇 제작 (통계용, 인증용)


위 전체 작업 중에 개발자인 나에게 어려운 작업은 아무래도 아트와 마케팅이었다. 아트는 전체 서비스가 구동하기 위해 가장 중요한 필수 요소였기 때문에 대략적인 기획 작업이 끝난 뒤에 가장 먼저 시작한 작업이었다. 


전체 서비스의 기획 컨셉은 임금노동자의 애환을 투영해 보고 싶은 것이었다. 그래서 NFT의 이름은 Typical Wage Workers로 정했다. 한글로 해석하자면 '전형적인 임금 노동자'라고 할 수 있다. 앞으로 내가 발행한 NFT의 약어는 TWW로 칭하겠다. 


TWW를 구매한 사람은 가상 세계에서는 TWW들의 고용주이지만, 현실에서는 임금노동자이기도 한 자기 자신의 모습을 비추어 보기를 바랐다. 총 1만 개의 TWW를 만들었고 각각 고유한 외형과 특성을 부여했다. 여러 특성 중에 경제력(Economic Power)라는 속성도 부여했다. 이 경제력에 따라 개별 TWW들은 DApp 생태계 내에서 발행한 토큰을 획득할 수 있다. 


TWW 제작에는 도트 아트를 활용했다. 여러 요소들로 신체 부위 및 캐릭터 특징들을 나누고 각각 부품처럼 만든 다음 그것들을 조합하는 코드를 C#으로 짜서 총 1만 개를 생성했다.

TWW는 이렇게 생겼다


TWW에는 7개의 등급 체계와 24개의 직업이 있고 15개의 속성이 부여되어 있다. 1만 개의 TWW는 모두 각자 서로 다른 고유한 이름과 생년월일을 가지고 있다. 1번 TWW를 예로 들면 레어 등급의 경찰 메건 메카도(Megan Mercado)이고 생일은 98년 8월 24일이다.


블록체인 메인넷은 폴리곤으로 정했다. 작업할 당시 이더리움의 가격 및 가스비가 비쌌던 이유가 가장 컸다. EVM 계열의 네트워크에서 작업했기 때문에 스마트 컨트랙트는 당연히 Solidity로 작성했다.


스마트 컨트랙트를 작성하고 배포하는 것은 떨리지만 흥분되는 일이었다. Solidity라는 언어를 처음 다뤄보는 점, 스마트 컨트랙트는 한 번 배포하고 나면 수정이 어려운 점 등이 나를 떨리게 하는 요소였다. 흥분되는 점은 재화나 거래를 다루기 위한 핵심 비즈니스 로직이 아주 깔끔하게 갈무리되는 것 같아서 즐거웠다. 또한, 로컬 환경에서부터 테스트넷 그리고 메인넷 까지 테스트 환경도 우려했던 것보다는 꽤 잘 구성되어 있었다. 참고로 스마트 컨트랙트 작업 및 배포를 위해서 Truffle을 활용했다.


이렇게 배포된 스마트 컨트랙트를 호출하고 사용할 때는 희열까지 느껴졌다. 희열이 느껴졌던 이유는 비즈니스를 위한 상태(State)와 그것들을 제어하기 위한 액션(Action)이 어떤 한 곳에 있지 않고 어디에나 있다는 점이었다. DB가 없어도 서버 앱이 없어도 언제 어디서든 중앙 관리되어야 할 정보들을 꺼내보고 변경할 수 있다니 정말 놀랍지 않을 수가 없었다. 대중성과 사업성과는 별개로 기술 쟁이인 나에게는 '아 이것이 web3구나, 신세계 구나'하고 감탄하게 만들었다. 이 희열에 관해서는 블록체인 기반 게임 데이터 관리라는 나의 다른 글에서도 약간의 힌트를 얻을 수 있다.


프론트엔드 웹 구축과 백엔드 서버 및 DB 구축들이야 늘 하던 작업이니 전반적으로는 큰 허들은 없었다. 하지만 조금 다른 부분이 있었는데 프론트엔드 웹에서는 스마트 컨트랙트를 호출하기 위한 여러 가지 작업들을 해야 했고, 백엔드에서는 블록체인 네트워크에서 발생한 컨트랙트 이벤트를 수신해서 별도의 처리를 해줘야 했던 것이었다. 

프론트엔드는 Gatsby + React로 구축했고, 서버는 Java+ Spring, Node+Typescript 등으로 구축


프론트엔드는 Gatsby 라고 하는 SSG(Static Site Generator)를 활용했는데 웹 기술의 발전에 또 감동을 받았다. 내가 늘 그리던 웹 서비스 기술과 가장 가까웠기 때문이다. 나는 늘 프론트는 서버에서 동적으로 생성하지 않고, 정적 리소스들을 미리 생성해서 javascript의 도움 없이도 렌더링 되는 웹사이트로 만드는 것을 선호했고, 필요한 데이터들만 백엔드에서 API로 받아오고 싶었기 때문이다. 내가 플랫폼 엔지니어링과 데이터 엔지니어링에 집중하고 있는 사이 웹 세상이 많이 변해 있어서 여러 번 감탄했던 것 같다.


프론트 쪽에 지갑과 연동하는 작업을 하며 typescript로 쓰인 wallet-module (https://github.com/fungibless/wallet-module)을 하나 만들어서 공개했다. web3 웹 사이트를 개발하다 보니 지갑의 연동 상태에 따른 여러 가지 이벤트 처리를 해줘야 하는데 그게 깔끔하게 정리된 모듈을 못 찾아서 직접 만들어 두었다. 


커뮤니티 관리나 마케팅은 현재까지는 뚜렷한 성과가 없다. 그럼에도 불구하고 현재까지 총 300개의 TWW를 판매했다. 총 18개의 라운드로 판매하는 것으로 기획했으며 현재 3라운드까지는 완판 되었다. 

TWW 민팅 라운드 #3 종료


현재까지의 속도로 볼 때 라운드는 한 달에 한 번씩 열리고, 한 번 열리면 3~4일 정도면 모든 수량이 소진되는 것 같다. 라운드가 한 달에 한 번씩 열리는 것은 순전한 나의 게으름 때문이다.


전체 DApp 서비스의 이름은 Fungibless다. Fungibless에 여러 가지 기능들을 추가하겠다고 로드맵도 작성이 되어 있는 상태이다. 현재 로드맵 상에서 달성이 완료되어 추가된 기능은 3가지이다.


첫 번째는 TWW를 예치하면(노동을 시키면) FUNGI라고 불리는 Fungibless Token을 분배하는 것이다. 해당 토큰은 예치한 TWW의 경제력의 총합에 따라 시간과 몇 가지 공식의 조합으로 초단위로 증가한다. 예치 기능은 라운드 2부터 도입이 되었다.


두 번째는 위 FUNGI 토큰으로 TWW를 민팅할 수 있는 기능이다. 이 기능은 라운드 3부터 도입이 되었고 실제로 라운드 3에서는 절반 이상의 TWW들이 FUNGI로 민팅 되었다.


세 번째는 FUNGI 토큰에 대한 IDO다. FUNGI 토큰은 QuickSwap과 SushiSwap에 MATIC/FUNGI 페어로 풀에 예치되어 있다. FUNGI 토큰을 MATIC으로 교환할 수 있고 반대로 MATIC을 FUNGI 토큰으로 교환할 수도 있다.


서비스를 운영해보면서 느낀 점은 여타 서비스와 마찬가지로 결국 인지도 관리를 제대로 하지 않으면 힘들다는 것이었다. 이쪽 필드는 인지도 관리를 위해 메신저 애플리케이션을 많이 활용한다. 회원들에게 자주 흥밋거리를 던져주고, 참여를 촉발시키는 행위들을 해줘야 한다. 꾸준하고 생산적인 활동들이 지속되어야만 서비스에 대한 인지도를 예쁘게 관리할 수 있는 것이다. 돈을 좀 써서 마케팅을 해보고 싶어도 채널들이 신뢰성이 좀 떨어져서 조심성 많은 나 같은 사람에게는 맞지 않다고 생각했다.


web3와 블록체인은 혁신적이라고 생각한다. 무엇보다도 재미가 있다고 느꼈다. 하지만 아직은 대중화되는 것이 먼 것만 같다. web3를 모르는 사람이 NFT 하나를 민팅하기까지 들여야 하는 노력은 여전히 엄청나다. 어지간한 열정 주의자가 아니고서는 쉽사리 발을 들이기는 힘들 것 같다. 처음에는 대중들은 블록체인인 것을 모르고 써야 대중화가 가능할 거라고 생각했다. 하지만, 지금은 조금 생각이 바뀌었다. 블록체인인 것을 모르고 쓰면 web3에서 느낄 수 있는 재미요소가 사라지기 때문이다. 시간이 얼마나 걸릴지는 모르지만 블록체인과 web3가 어느 정도 상식이 되었을 때 대중적인 서비스로서 진정한 빛을 볼 수 있지 않을까 조심스럽게 예측해본다.


마지막으로, NFT 아트를 하면서 딸과 아내를 형상화 한 도트도 찍어보았다.

아내



매거진의 이전글 개발 징크스
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari