
이번 11월에는 그동안 했던 프로젝트 내용을 기록처럼 정리해 두고
앞으로 개발 방향이나 갖출 역량을 고민해볼 듯 하다.
올해 2월 ~ 6월까지 개발 진행하였으며 4개월간 웹상에서
체인을 통해 아바타를 등록하고 거래하는 기능까지 구현하였다.
이번 글에서는
왜 프로젝트를 진행하였는가?
를 다뤄볼 것이고,
차례로 어떻게 구현하였는지, 그리고 느낀 점까지 정리를 해 보려 한다.

마인크래프트는 초등학생때부터 해왔던 게임이었다.
개인적으로 여타 게임은 짧고 자극적인 컨텐츠를 즐기거나,
아니면 레벨이나 경험치만 부각된 컨텐츠로 구성되어 있어서 오래 붙잡고 있기
어려웠는데, 마인크래프트는 달랐던 것 같다.
직관적인 플레이방식과 높은 자유도, 그리고 다양한 플레이방식.
또한 감성적인 텍스쳐와 배경음악이 굉장히 매력적이었다.
다른 게임들보다 모드/플러그인이 있어 유저들이 게임을 자신이 만들고
싶은 대로 만들 수 있기도 하였다.

2021년 말까지 해야 할 일을 좀 쳐낸 후에, 겨울방학 때부터 여유가 좀 생겼다.
평소에 하고 싶었던 것은, 많은 사람들이( 1만명 이상 ) 사용할 수 있는 플랫폼을
직접 구현해 보고 싶다는 갈증이 있었다.
개발자를 지망하는 이상, 엔진을 만드는 것이나, 차체를 만드는 등
각 파트를 맡는 것도 물론 재미있지만, 그보다도 차 전체를 설계하는 것과 같이
가치있는 프로젝트를 설계하고 실행하는 것이 이상이자 특권과도 같은 것이었다.
AI / Blockchain 계열에서 정말 유효한 Application/Platform을 만들고 싶었다.
여기서 유효하다는 말은 세상에 남아있을, 그러니까 장기적으로 살아남을 수 있는 프로젝트를 말하는 것이었다. 놔두면 사람들이 찾아서 쓸 수 있으며, 최소한 적자는 내지 않으며 부가가치를 창출할 수 있어야 한다.
한마디로 수지타산이 맞아야 한다는 것인데, 사실 그것을 시작부터 알기는 매우매우 어렵고, 도전해 보는 것에 의의를 두기로 했다.

찾아보니 Opensea라는 플랫폼에서 마인크래프트 스킨들이 임의로 올라와 있는 것을 볼 수 있었다. 사실 2022년 초반부만 해도 암호화폐 가격이 방어선은 유지하고 있는 수준이었고(지금은 그렇지 않다) 우후죽순 NFT니 여러 암호화폐가 나오고 있는 시점이었다.
그곳에는 마인크래프트 스킨도 있었다.
나는 스킨 정보가 저렇게 앞부분만, 그리고 사용할 수 없는 형태인 것이 의문이었다.
왜 3D 형태로 스킨을 NFT화 하지 않았을까?
그리고 플랫폼과 연동하면 실제 사용가치가 부여될 것 같은데?
NFT란 디지털 자산을 의미하는 것이었다.
그간에는 그저 이미지 사진으로 예술품 소장 등의 목적으로 사용되었으나,
아바타나 혹은 가상세계에서 사용할 물품의 소유권을 증명하는 시스템으로 사용된다면 좋은 시도가 될 듯 하였다.
마인크래프트 스킨을 NFT화 하고, 플랫폼과 연동하여 가치를 증명해 보자.
이러한 마음으로 시작하게 되었다.

일단 팀원부터 모아야 했다.
같은 학과에 그래도 좀 코딩에 관심이 있는 동기 2명과,
전역 이후 복학까지 시간이 남고 코딩을 잘 해오던 동기를 섭외해서
4명으로 팀을 꾸렸다.
그러고 나서 우선 핵심 기능부터 생각해보아야 했다.
앞서 말한 유효성을 확립하려면, 이 플랫폼을 사용할 이유가 있어야 한다.
이 플랫폼이 제공하는 핵심 가치가 의미를 가져야 한다.
단순 데이터 박제라면 아무런 메리트도 없을 것이다.
그래서 3D형태로 시각화 형태를 제공하고, 마인크래프트와 연동하여
옷장 형태로 플러그인을 제공하는 형태를 구상해보았다.
이외에도 마인크래프트 스킨에 대한 추천기능이나 분류기능 등으로
현재 존재하는 스킨 사이트보다 더 편의성을 갖춘 기능을 고려해보았다.
다만 그것은 2순위로 미루고, 1순위는 NFT 발행/거래와 시각화였다.

그래서 프로젝트 핵심 기능은 블록체인 발행/거래, 시각화, 웹 프론트엔드로 나뉘어졌고 실제 역할도 그렇게 분배해서 진행하였다.
블록체인 발행과 거래에는 2명이 붙어서 각 기능을 찾아보기 시작하였고,
웹 프론트엔드는 Figma를 이용해서 디자인을 하고 적용하는 과정을 반복하였다.
그리고 시각화는 오픈소스를 활용해서 픽셀 정보를 3D로 띄우기로 하였다.
이 것을 하는데 거진 3개월 정도 걸린 듯 하다.
정말 단순하고 금방 할 것 같지만, 처음 개발하는 리눅스 환경에서의 개발과
그리고 웹 프로젝트는 처음이라 Node.js나 관련 스택들을 처음부터 살펴보아야 했고 충돌이라도 나면 다 같이 모여서 원인을 파악해야 했다.
그리고 구현을 하더라도 Metamask와 같은 연동에서 문제가 쉽지 않았고
이와 관련된 자료도 굉장히 빈약하였고 거의 영어로 되어 있었다.
자세한 내용은 2부에서 다뤄보려고 한다.
아무튼 쉽지 않은 시간이었다. 학기 중에 밤 시간을 할애하여 개발한다는 것은..
정말 열정 없이는 할 수 없는 것이였다.. -ㅅ-..

위는 사이트 초안이다.
이번 글에서는 프로젝트의 동기와 그 목차 정도만 다뤄본 듯 하다.
아마 이 글을 읽는 독자가 있다면 실제 NFT거래 플랫폼을 어떻게 개발하였는지
궁금한 사람이 대다수일 텐데, 의미있는 답변을 해줄 수 있을 지는 모르겠지만 그래도 시행착오 경험은 공유해보려고 한다.
다음 글에서 내부 아키텍처나 간단한 코드라도 적어보겠다.
결국 많은 사람들이 사용할 수 있으며, 기술적인 차별점이 존재하고, 또한 시장에서 유효한 플랫폼을 제작하고 싶었다.
아직도 이 목표는 변함이 없다. 그 이유는 많은 돈을 벌기 위해서도 있지만, 그만큼 가치 있는 일을 해 볼 수 있다는 것이고 그 과정에서 무엇이 중요한지 분별하는 안목을 가질 수 있을 것이다.
아무래도 살아가면서 그런 것들이 더 중요하지 않을까?