[Daily Contents] 블록체인 명세서 이해 향상
명세서 활용법
블록체인 프로젝트는 Sub1, Sub2, Sub3으로 진행할수록 뼈대에 기능이 점차 덧붙여지는 애자일 프로젝트
- 목차, 프로젝트 개요, 프로젝트 목표를 훑어 전체 구성 파악
- 과제 명세에 프로젝트 별 구현 범위 표시
- 명세서를 읽으며 공식 문서 참고(공식이 아닌 문서에는 틀린 정보, 과거에는 옳았어도 현재는 틀리게 된 정보 등이 혼재되어 있으므로 공식 문서 권장)
프로젝트 소개
P2P 거래(중개자 없는 전자 상거래 시스템)
플랫폼의 개입을 최소화한 오픈 마켓 서비스
FE - 이더리움 // BE - 이더리움 간 연동 기술
특징
- 누구나 전자 상거래의 판매자와 구매자가 될 수 있다.
- 서비스 토큰으로 거래를 진행
- 주요 기능은 스마트 컨트랙트를 통해 구현
- 판매 상품 등록
- 에스크로 기능
- 구매 이력 기능
전체 아키텍쳐
블록체인 - FE - BE
기술스택
Blockchain
- GO-Ethereum : 이더리움 클라이언트 SW
- Solidity : 스마트 컨트랙트 개발 언어
- solcjs : 솔리디티 컴파일러
- Remix IDE : 브라우저 스마트 컨트랙트 통합 개발 환경
FE
- Vue.js/Vue CLI : JS 프레임워크 및 툴
- web3.js : JS 이더리움 APIs
BE
- Java Spring : Java 프레임워크
- MySQL : 관계형 데이터베이스
- Docker : 컨테이너 솔루션
etc.
- VirtualBox : 가상화 솔루션
- Vagrant : 프로비저닝 툴
- MetaMask : 블록체인 지갑
PJT 주요 과제
Sub1. 블록체인 네트워크 구축 및 활용
Sub2. 지갑 기능, ERC-20 구현
Sub3. 상품 등록 기능 구현, 에스크로 기능 구현, 구매 이력 관리 구현
디지털 화폐
탈중앙형 NFT 거래 플랫폼
OpenSea와 유사한 NFT 거래 플랫폼 구축
특징
- 표준을 준수하는 Non-Fungible Token을 구현
- 플랫폼을 통해 디지털 Asset을 NFT화 하고 거래할 수 있다.
전체 아키텍쳐
블록체인 - FE - BE
기술스택
Blockchain
- Besu : 이더리움 클라이언트 SW
- Solidity : 스마트 컨트랙트 개발 언어
- Truffle : 스마트 컨트랙트 프레임워크
- MetaMask : 블록체인 지갑
- Remix IDE : 브라우저 스마트 컨트랙트 통합 개발 환경
Filesystem
- IPFS : Inter-Planetary File System 분산형 파일 시스템(Peer-to-Peer Filesystem)
FE
- React : JS 프레임워크
- web3.js : JS 이더리움 APIs
BE
- Node.js : JS Runtime
- MySQL : 관계형 데이터베이스
- Docker : 컨테이너 솔루션
PJT 주요 과제
Sub1. ERC-721 구현 및 테스트
Sub2. NFT Minting 및 조회
Sub3. NFT 거래 기능
프로젝트 주안점
- BE는 거들 뿐… Web 3.0 프로젝트
- 블록체인 관련 기술에 초점
- 지갑과 Cryptocurrency의 개념 이해
- 스마트 컨트랙트 구현 이해도 높이기
- 표준에 맞게 구현하기(ERC-20, ERC-721)
- 컨트랙트 상속, 호출
- 블록체인과 상호작용하기(Web3 API 사용하기)
- 끊임없이 질문 : 호출할 때마다의 비용 문제, 블록체인에 꼭 넣어야 할 데이터는 무엇?? 또한 오픈이 되어도 상관없는 데이터.
FAQ
Solidity 공부 팁 : 공식 문서, 스마트 컨트랙트 기술을 사용하는 회사의 Github 오픈소스, crypto zombie의 게임으로 학습
Q&A
Q. Dapp에서 이더리움에 배포된 스마트 컨트랙트와 데이터를 주고받기 위해서는 ABI가 필수인지?
A. 스마트 컨트랙트 주소는 고유값. 단 컨트랙트 안에 어떤 것을 호출해야 할지는 명시해야 함. 그것을 명시하기 위해 CA와 ABI가 필수.
댓글남기기