Skip to content

Cyunwook/week 04#59

Open
cyunwook wants to merge 3 commits intoBay-17th:mainfrom
cyunwook:cyunwook/week-04
Open

Cyunwook/week 04#59
cyunwook wants to merge 3 commits intoBay-17th:mainfrom
cyunwook:cyunwook/week-04

Conversation

@cyunwook
Copy link

@cyunwook cyunwook commented Mar 9, 2026

과제 제출 정보

주차: Week 04

과제 유형:

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

구현 내용

image image image

파운드리로 스마트 컨트랙트를 배포했고, abi를 받아와서 프론트엔드에 구현했다. 블록체인 데이터 읽기, 쓰기를 구현했다.

배운 점 (What I Learned)

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

1.Web3 dApp의 전체적인 아키텍처와 통합 흐름 이해
파운드리를 통해 배포된 컨트랙트는 0과 1로 이루어져 있기 때문에, 웹사이트가 이를 인식하고 통신하기 위해서는 컨트랙트의 '진짜 주소'와 '사용 설명서(ABI)'를 프론트엔드 프로젝트 내부에 직접 가져와서 설정해 주어야 한다는 웹3 통신의 필수적인 구조를 배웠다.
2.스마트 컨트랙트 실제 배포 메커니즘
배포 명령어를 칠 때 --broadcast 옵션의 유무에 따른 차이를 명확히 알게 되었다. 단순히 가상으로 실행해 보는 시뮬레이션(Dry run)을 넘어, 실제로 가스비를 지불하고 블록체인 네트워크에 트랜잭션을 쏘아 올려(Broadcast) 영구적인 컨트랙트 주소를 발급받는 과정을 직접 해봤다..
3.라이브러리(Wagmi)를 활용한 블록체인 상호작용 및 트랜잭션 에러 핸들링
호출하려는 목적지 주소와 그곳에 실제 존재하는 기능(ABI의 함수명)이 정확히 일치해야만 메타마스크에서 트랜잭션 에러가 나지 않는다는 것을 깨달았다

어려웠던 점과 해결 방법

어려웠던 점:

  1. 이미 파운드리가 만들어준 Counter.json이 있는데, constants.ts에 다시 적는 작업을 이해하지못했다.
  2. 또 여러 주소들이 헷갈렸다.. 계속 증가/감소 버튼 누르면 트랜잭션 실패했었는데, 주소 이슈였다..

해결 방법:

  1. 웹사이트가 컨트랙트의 '메뉴판(ABI)'을 읽으려면, 웹사이트 프로젝트 폴더 안으로 그 메뉴판을 직접 가져와서 쥐여주어야 한다는걸 배웠다.
  2. 목적지 주소(COUNTER_ADDRESS)에 실수로 '유니스왑 환전 로봇 주소'를 넣었어서 수정했다.

질문 사항


체크리스트

테스트

  • 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