Skip to content

feat(week-01): complete week-01 assignment#5

Closed
sweatbuckets wants to merge 2 commits intoBay-17th:mainfrom
sweatbuckets:sweatbuckets/week-01
Closed

feat(week-01): complete week-01 assignment#5
sweatbuckets wants to merge 2 commits intoBay-17th:mainfrom
sweatbuckets:sweatbuckets/week-01

Conversation

@sweatbuckets
Copy link

과제 제출 정보

주차: Week <01>

과제 유형:

  • [v] 이론 (Theory Quiz)
  • [v] 개발 (Dev Assignment)

구현 내용

public 상태 변수 count를 통해 자동 getter를 제공하고, 상태 변경 함수(increment, decrement, reset)를 구현했습니다.
또한 uint256 타입의 특성을 고려하여 decrement 호출 시 언더플로우 방지를 위한 require 검증을 추가했습니다.

배운 점 (What I Learned)

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

  1. require 문을 함수 초기에 배치하면 조건 불충족 시 실행을 즉시 중단하여 불필요한 연산과 스토리지 변경을 방지할 수 있어 보다 효율적인 코드 작성이 가능하다는 점을 이해했습니다.
  2. 상태를 변경하지 않는 함수는 view 키워드로 명시할 수 있으며 Web3 라이브러리는 ABI에 정의된 이 정보를 기반으로 트랜잭션 대신 RPC 노드의 eth_call로 함수 호출하는 것을 알게 됐습니다. view 키워드를 사용하면 가스 비용 없이 결과를 조회할 수 있어 보다 효율적인 호출이 가능하다는 점을 이해했습니다.

어려웠던 점과 해결 방법

어려웠던 점:
월드 스테이트는 풀노드가 각자 로컬에서 분산 저장하고 트랜잭션 전파와 같이 네트워크로 직접 공유하는 과정 없이도 어떻게 동기화할 수 있을까 이해하는데 의문이 생겼습니다.

해결 방법:
AI 검색을 통해 결정론적 실행에 대한 추가 정보를 탐색하며 해결했습니다. 이더리움은 결과(state)를 공유하는 시스템이 아니라
결과를 재현 가능한 입력(트랜잭션)을 공유하는 시스템으로 동기화 대상은 state가 아닌 트랜잭션이라는 점을 깨달았습니다.
공유된 컨트랙트에 동일한 입력과 동일한 실행 순서만을 동기화하더라도 수많은 노드에서의 실행 결과가 자연스럽게 수렴한다는 점을 이해했습니다.

질문 사항


체크리스트

테스트

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

제출 규칙

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

@ahwlsqja
Copy link
Member

리뷰

개발 과제

  • increment, decrement, reset 모두 정확합니다
  • 두 번째 커밋에서 주석을 정리한 것도 좋은 것 같습니다! ㅋㅋ

퀴즈

10문제 + 이론 5문제 모두 정확합니다.

제가 보기에 인상깊었던 부분

PR 설명에서 풀 노드가 World State를 어떻게 동기화하는지 의문을 갖고
결정적 실행(deterministic execution) 개념까지 스스로 찾아본 점이 되게 좋은거 같아요 ㅎ.
view 함수가 eth_call로 호출된다는 점까지 파악한 것도 깊이가 있네요.

@ahwlsqja ahwlsqja closed this Feb 10, 2026
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.

2 participants