본문 바로가기
블록체인

Project_5Minute(토큰 이코노미 만들기)ERC-20토큰으로 NFT 구매하기

by 진득한진드기 2023. 1. 13.

Project2 - Incentive Community

 

https://github.com/pdhyeong/Project-5Miniute

 

GitHub - pdhyeong/Project-5Miniute

Contribute to pdhyeong/Project-5Miniute development by creating an account on GitHub.

github.com

 

Incentive Community의 구상을 마치고 Project- 5Minute를 끝냈다.

 

이번 프로젝트는 토큰이코노미를 이용한 어플리케이션을 만들어보는 것이었는데

 

우리팀은 알고리즘에 대한 풀이법과 토론 등 다양한 의견을 나누면서 거기서 추천과 좋아요를 기준으로 

 

하루에 생성되는 제한된 토큰을 받고 거기서 받은 토큰으로 NFT를 구매할 수 있고 그 NFT가 이후에 그 사용자에게 더 많은 신뢰성을 부여하기 때문에 인지도가 높은 사람이 되어서 토큰 이코노미를 생성하는 그런 생태계를 만들고자 했다.

 

지금은 많이 부족하지만 시간이 된다면 랭킹 시스템도 도입하여 생태계를 활성화할 구상을 하였다.

 

3명이서 하는 프로젝트라 내가 전반적인 백엔드를 맡게되었다.

 

약간 버스 뒷자리에 앉아서 개발하다가 갑자기 버스 운전석으로 몰려서 전체적으로 총괄하게 되다보니까 파트 자체에서 부족한 점도 정말 많이 느꼈고, 그 만큼 더 시간을 투자하다보니 더욱 많이 성장하게 된 것 같다.

 

 


 

사용한 기술

 

협업 = Git, Discord

 

프론트 = React, css,html

 

컨트랙트 = Remix, etherscan api

 

백엔드 = Node.js (express,web3.js)

 

 


 

설계

전에했던 MarketPlace는 허겁지겁 빠르게 구현하는게 목적이 되어서 전체적인 의사소통이 되지 않아서 모두가 생각하는 그림이 달라서

 

 재작업도 많이 했고, 저 혼자 다른 작업을 하는 일명 삽질도 했다면

 

프로젝트2는 1주일 이라는 시간을 더 받았기 때문에 우리가 어떠한 방식으로 설계할 것인지 모두가 정확히 인지했는지

 

확인 할 수 있는 시간이 더 여유가 있어서 확실히 작업은 좀 더 수월했다.

 

 

Database

 

오히려 팀원이 적어서 의사소통은 수월했던 것 같다.

 

모두가 의논한대로 전체적인 데이터베이스 틀을 만들었고, 중간에 수정도 꽤 많이 거치면서 오류도 많이 만나고 고민도 많이하고 그런시간들이 지나고 나서 생각해보면 굉장히 재밌었던 것 같다.

 


NFT 이동 확인

 

ERC20 토큰 교환

 


Block Listener 를 사용한 ERC20 transaction 탐지

 

트랜잭션탐지


ERC20토큰으로 NFT 받은 상황

 

 

 


 

만났던 문제점들

 

1. mysql이 아닌 mongodb를 사용해서 mongodb에 대해 배워서 접목시켜야 하는 상황

2. transaction이 발생하는 것을 탐지하는 방법을 모르는 것

3. 새 지갑주소를 생성해주는 것에 대한 팀원간의 의견충돌

4. NFT를 ERC20 토큰으로 구매하여 소유하게 하는 로직

5. ERC721의 한계

6. ERC1155의 도입과 IPFS로의 동기화

 

당장 생각하면 이런 것들이 있지만 실제로는 더 많은 상황들이 있었고 또 그럴때마다 의사소통하면서 해결했다.

 

지금 보면 이런 모든 상황에서 더 힘들었다고 생각하는 이유가 마인드세팅이 문제였던 것 같다.

 

내가 한 파트를 전체적으로 맡아서 해야한다고 생각하는 부담감과 그로인해 나에게 다시 돌아오는 스트레스

 

근데 팀원들과 같이 함께해서 또 맡은 역할을 수행하고 잘 이겨냈다. 또 이겨내고 나니 나에게는 성취감으로 다가왔고 이로 인해서 

 

'나도 할 수 있구나 ' 라는 자신감 또한 얻게 되면서 많은 성장을 한 것 같다.

 

 


문제점들의 해결

1. mongodb 사용법 익히기 및 cloud mogodb활용

2. block listener 함수를 구현 (deamon 서버 생성)하여 Transaction이 일어나는 것에 대해 인지하고 처리하게 함.

3. 예비지갑을 만들어서 다중고유화를 시도했지만 만난 ERC721의 한계를 ERC1155로 극복

 

 


아쉬웠던 점

기간이 얼마 남지 않아서 전부터 미뤄왔던 코드의 가독성을 높이는 것이나 프론트와 같이 의논하여 api를 깔끔하게 만들고 싶었던 

것을 하지 못했던 것이다.

 

초반에는 잘 이루어졌으나 나중에는 시간에 쫓겨서 구현에 좀 더 비중을 두었던 것 같다.

 

다른 팀원들 한테도 정말 많이 배웠고 모두 친절하셔서 같이 이겨낼 수 있었던 것 같다 ^ㅁ^

'블록체인' 카테고리의 다른 글

다시 한번 알아보는 UTXO  (0) 2023.09.25
STO 튜토리얼 프로젝트  (0) 2023.05.02
Project_MarketPlace 진행하면서  (0) 2022.12.30
토큰 이코노미란  (0) 2022.12.24
Web3.js 사용해보기  (1) 2022.12.22