Skip to content

Cyunwook/week 06#80

Open
cyunwook wants to merge 7 commits intoBay-17th:mainfrom
cyunwook:cyunwook/week-06
Open

Cyunwook/week 06#80
cyunwook wants to merge 7 commits intoBay-17th:mainfrom
cyunwook:cyunwook/week-06

Conversation

@cyunwook
Copy link
Copy Markdown

@cyunwook cyunwook commented Mar 26, 2026

과제 제출 정보

주차: Week

과제 유형:

  • 이론 (Theory Quiz)
  • 개발 (Dev Assignment)

구현 내용

🕊️ Memorial NFT Gallery (추모 NFT 갤러리)

소중한 존재와의 기억을 블록체인에 영구히 간직할 수 있도록 돕는 Web3 DApp입니다.
사랑하는 반려동물이나 잊지 못할 추억을 사진과 메시지로 남기고, 언제든 다시 꺼내볼 수 있습니다.

✨ 주요 기능

  • 🦊 간편한 지갑 연결: RainbowKit을 활용하여 직관적이고 깔끔한 메타마스크 지갑 연결 지원
  • ✍️ 추모 NFT 발행 (Minting): 이름, 마지막 인사, 사진을 입력하면 블록체인에 영구적인 NFT로 기록
  • 📖 기억 꺼내보기 (Gallery): 발행된 NFT 번호(Token ID)를 검색하여 언제든 스마트 컨트랙트에서 데이터를 불러와 열람

🛠️ 기술 스택 (Tech Stack)

  • Frontend: Next.js 14 (App Router), React, Tailwind CSS
  • Web3 & Blockchain: Wagmi, RainbowKit, Viem
  • Smart Contract: Solidity, Foundry
  • Image Storage: ImgBB API
image image image image

배운 점 (What I Learned)

이번 주에 배운 것 (2-3가지)

  1. RPC Provider가 프론트엔드와 체인을 연결해주는 게이트웨이 역할을 한다는 것을 알게되었다.
  2. 디앱 개발하면서 컨트랙트 개발, 배포, 프론트엔드와의 연결까지 해보면서 흐름을 잘 알게되었다.

어려웠던 점과 해결 방법

어려웠던 점:

해결 방법:

질문 사항


체크리스트

Technical Checklist (기술 요구사항)

Smart Contract

  • Solidity 0.8.26 이상 사용
  • 최소 1개 이상의 상태 변수
  • 최소 2개 이상의 public/external 함수
  • 모든 상태 변경 함수에 이벤트 발생
  • Foundry 테스트 작성 (최소 5개 테스트)
  • CEI 패턴 또는 ReentrancyGuard 적용 (해당 시)

Frontend

  • Next.js App Router 사용
  • wagmi + RainbowKit으로 지갑 연결
  • 컨트랙트 상태 읽기 (useReadContract)
  • 컨트랙트 상태 쓰기 (useWriteContract)
  • 트랜잭션 대기 상태 표시 (pending indicator)
  • 에러 처리 및 사용자 피드백

Deployment

  • Sepolia 테스트넷에 배포
  • 배포된 컨트랙트 주소 README에 기재
  • Etherscan에서 컨트랙트 검증 (선택)

Functional Checklist (기능 요구사항)

User Flow

  • 지갑 연결 기능
  • 메인 기능 1개 이상 (예: 토큰 전송, 투표, 기록 저장)
  • 사용자 잔액 또는 상태 표시
  • 트랜잭션 히스토리 또는 결과 표시

UX/UI

  • 반응형 레이아웃 (모바일/데스크톱)
  • 로딩 상태 표시
  • 에러 메시지 표시
  • 한국어 UI (선택)

Submission (제출)

1. 코드 구조

week-06/dev/
├── contracts/           # Solidity 컨트랙트
│   └── YourContract.sol
├── test/                # Foundry 테스트
│   └── YourContract.t.sol
├── frontend/            # Next.js 프론트엔드
│   ├── app/
│   ├── components/
│   └── config/
└── README.md            # 프로젝트 설명

2. README.md 필수 내용

다음 정보를 포함해야 합니다:

  • 프로젝트 소개 (무엇을 만들었나?)
  • 기술 스택
  • 설치 및 실행 방법
  • 배포된 컨트랙트 주소 (Sepolia)
  • 스크린샷 또는 데모 링크

3. PR 생성 시

  1. 이 체크리스트를 PR 본문에 복사
  2. 완료된 항목 체크 (- [x])
  3. 리뷰어에게 데모 영상 또는 스크린샷 첨부

테스트

  • forge build 성공
  • forge test 모든 테스트 통과

제출 규칙

  • 브랜치명이 {username}/week-{XX} 형식
  • .env 파일이 커밋에 포함되지 않음
  • 커밋 메시지가 규칙을 따름

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant