
API Docs
| Category | Method | EndPoint | 기능 | 비고 |
|---|---|---|---|---|
| home | GET | / | 홈 (없음) | |
| USERs | POST | user/signup | 회원가입 | |
| POST | user/login | 로그인 | ||
| GET | user/:email | 회원정보 조회 | ||
| POSTs | POST | post | 게시글 작성 | |
| GET | post | 모든 게시글 | ||
| GET | post/:post_id | 특정 게시글 (post_id) | ||
| GET | post/search/email/:email | 특정게시글 (email) | ||
| POST | post/search/nickname | 특정게시글 (nickname) | ||
| PATCH | post/update | 게시글 수정 | ||
| CONTRACTs | POST | contract/faucet | 테스트 ETH 받기 | |
| (요청할 때마다 0.1 ETH 전송) | ||||
| GET | contract/faucet/:address | 테스트 ETH 조회 | ||
| POST | contract/token | ERC20 토큰 보상 | ||
| GET | contract/token/:address | ERC20 토큰 조회 | ||
| POST | contract/transfer | ERC20 토큰 전송 | ||
| NFTs | POST | nft/mint | NFT 발행 | |
| GET | nft | 모든 NFT data | ||
| GET | nft/:address | 특정 NFT 조회 (address) | ||
| GET | nft/search/:tokenId | 특정 NFT 조회 (tokenId) | ||
| POST | nft/price | 보유 NFT 판매가 변경 | ||
| GET | nft/price/:tokenId | 특정 NFT 판매가 조회 | ||
| POST | nft/buy | ERC20 토큰으로 NFT 구매 |
회원가입
로그인
회원정보조회
게시글 작성
모든 게시글 data
특정 게시글 (post_id)
특정 게시글 (email)
특정 게시글 (nickname)
특정 게시글 수정
테스트 ETH 받기 (요청할 때마다 0.1 ETH 전송)
테스트 ETH 조회
ERC20 토큰 보상
ERC20 토큰 조회
ERC20 토큰 전송
NFT 발행
모든 NFT data
특정 NFT 조회 (address)
특정 NFT 조회 (tokenId)
보유 NFT 판매가 변경
특정 NFT 판매가 조회
ERC20 토큰으로 NFT 구매
시나리오 테스트
시연영상
Git repo
Backend 기술스택
Review
학습과정 중에 가장 어렵게 느껴지던 back-end 쪽을 자원하여 진행
express framework 기반으로 sequelize 사용해서 MySQL에 연결하고 스마트 컨트랙트는 Hardhat을 사용해서 진행 (기본 익히는 데 중점)
최소한의 기능만 넣었지만 API 만드는데 허덕허덕
Smart contract 구현할 때 ERC20 토큰으로 NFT 구매 기능이 생각보다 까다로움
ganache 로 기능구현 완료하고 마지막날 testnet (sepolia)에 올림
(위 시나리오 테스트는 최종 버전은 아니지만 큰 틀에서는 비슷함)
testnet 환경이었는데도 배포 및 tx 에 따라 ETH 수수료가 부담 됨
일반 tx 와 smart contract 배포에 따른 ETH 수수료 차이를 느꼈음
블록체인 실시간 tracking 기능 역시 구현해보고 싶었는데 아쉬움
총평
Reference