팀플용 기획 1

LoyalFlower·2026년 6월 30일

📌 프로젝트 개요: "FundChain" (Web3 크라우드 펀딩 플랫폼)

기존 텀블벅/와디즈의 중앙 집중식 자금 관리 시스템을 탈중앙화된 스마트 컨트랙트(에스크로) 구조로 대체하여, 먹튀와 정산 지연을 원천 차단하는 투명한 후원 플랫폼입니다.

💡 핵심 시나리오

  1. 크리에이터: 프로젝트(목표 금액, 마감일)를 등록합니다.
  2. 후원자: 지갑을 연결하고 가상 자산으로 후원합니다. 자금은 컨트랙트에 묶입니다(Lock-up).
  3. 마감일 도달 시:
  • 성공 (목표 금액 달성): 모인 후원금은 크리에이터에게 송금되며, 후원자들에게는 후원 인증 NFT(영수증 겸 디지털 티켓)가 자동으로 발급됩니다.
  • 실패 (목표 금액 미달): 컨트랙트가 후원금을 각 후원자의 지갑으로 자동 환불합니다.

🛠️ 기술 스택 (Tech Stack)

구분기술 스택비고 / 역할
FrontendReact, TypeScript, Tailwind CSSUI 컴포넌트 구현 및 상태 관리
Web3 LibrariesWagmi, Viem (또는 ethers.js)React와 메타마스크 지갑 및 컨트랙트 연동
BackendSpring Boot, Spring Data JPA비즈니스 로직, 데이터 가공 및 가스비 대납
DatabasePostgreSQL 또는 MySQL블록체인 데이터 미러링(캐싱) 및 회원/프로젝트 메타데이터
BlockchainSolidity, Hardhat (또는 Anvil)로컬 스마트 컨트랙트 개발, 컴파일, 배포 및 가상 테스트
Web3jWeb3j 라이브러리Spring Boot에서 블록체인 이벤트를 감지(Listening)하기 위함

🤝 2인 풀스택 업무 분담표 (50:50 구조)

두 분이 모두 프론트와 백을 경험할 수 있도록 [도메인 기능 standard]를 기준으로 분리했습니다. 각 개발자는 자신이 맡은 기능의 화면(React)부터 서버 API(Spring), 데이터베이스(DB), 그리고 관련 스마트 컨트랙트 연동까지 통으로 개발합니다.


🧑‍💻 개발자 1: 프로젝트 개설 및 후원 프로세스 (Core Core)

목표: 크리에이터가 프로젝트를 올리고, 후원자가 지갑을 연결해 실제로 가상 돈을 후원하는 핵심 파이프라인을 구축합니다.

🖥️ 프론트엔드 (React) 항목

  • 메타마스크 지갑 연동 UI: Wagmi를 이용한 지갑 연결/해제 버튼, 잔액 표시, 네트워크 전환 기능 구현.
  • 프로젝트 등록 에디터 폼: 크리에이터가 제목, 내용, 목표 금액, 마감일을 입력하는 멀티 스텝 폼 UI.
  • 프로젝트 상세 페이지 & 후원 버튼: 프로젝트 정보 시각화(달성률 바), 후원하기 팝업창 및 가상 토큰 전송 트랜잭션 트리거 구현.

⚙️ 백엔드 (Spring Boot) 항목

  • 프로젝트 메타데이터 API: 블록체인에 담기 무거운 프로젝트 상세 내용(텍스트, 이미지 경로 등)을 DB에 저장하고 조회하는 REST API.
  • 유저 지갑 주소 기반 인증: 지갑 주소를 고유 ID로 삼아 가입/로그인 처리하는 로직.
  • 컨트랙트 배포 팩토리 연동: 크리에이터가 프로젝트를 생성할 때, 백엔드에서 신규 펀딩용 스마트 컨트랙트를 자동으로 배포(Deploy)해 주는 Web3j 연동 로직.

🧑‍💻 개발자 2: 펀딩 정산/환불 시스템 및 NFT 발급 (상태 제어 및 예외 처리)

목표: 마감일이 지났을 때 성공/실패 여부를 판별하여 돈을 정산하거나 환불하고, 성공 시 후원자에게 보상을 지급하는 시스템을 구축합니다.

🖥️ 프론트엔드 (React) 항목

  • 마이페이지 & NFT 보관함 UI: 내가 후원한 프로젝트 목록 확인, 펀딩 성공 시 발급받은 후원 인증 NFT 배지들을 그리드 형태로 보여주는 화면.
  • 실시간 대시보드 현황판: 현재 진행 중인 펀딩들의 실시간 상태(진행중/성공/실패)를 필터링하여 보여주는 메인 페이지 UI.

⚙️ 백엔드 (Spring Boot) 항목

  • 배치(Batch) 스케줄러 시스템: Spring Boot가 주기적으로(예: 1분마다) 마감일이 지난 프로젝트가 있는지 DB를 체크하는 시스템.
  • 정산/환불 트리거 로직: 마감된 프로젝트가 성공했으면 컨트랙트의 withdraw()를, 실패했으면 refund()를 백엔드가 대신 스마트 컨트랙트에 명령(트랜잭션 발생)을 내리는 로직.
  • 블록체인 이벤트 리스너: 블록체인에서 정산이나 환불이 완료되었다는 이벤트가 발생하면, 이를 실시간으로 감지(Web3j)하여 Spring DB의 프로젝트 상태를 '성공' 또는 '실패'로 업데이트하는 로직.
  • NFT 메타데이터 서버 구성: 후원자가 받게 될 NFT의 이미지와 속성 정보(JSON)를 제공하는 REST API 구축.
profile
느낀 점을 적어나가며 성장하는 블로그

0개의 댓글