한도윤 · 2025-02-14

이벤트 로그만으로 상태를 추적하는 연습법

이벤트 로그만으로 상태를 추적하는 연습법 삽화

솔리디티 · 이벤트 · 디버깅

교육 과정에서 가장 많이 나오는 질문은 "왜 트랜잭션은 성공했는데 화면 숫자가 안 바뀌나요?"입니다. 이 글에서는 인덱서 파이프라인을 새로 띄우지 않고, 이벤트 로그만으로 상태 변화를 따라가는 최소 절차를 적습니다.

첫째, 컨트랙트가 emit하는 이벤트 목록을 표로 만듭니다. 필드 이름은 팀 내에서 축약어를 통일하고, 동일한 의미의 필드가 다른 이벤트에 다른 이름을 갖지 않도록 합니다. 둘째, 로컬 노드나 공용 RPC에서 tx receipt를 받아 이벤트를 순서대로 읽습니다. 셋째, 스프레드시트나 간단한 노트북에 (block, logIndex, event, 주요 필드)를 한 줄씩 적습니다.

이 방법은 프로덕션 스케일에는 부족합니다. 그러나 과제 초반에 "어디에서 값이 어긋났는지"를 가르치기에는 비용이 낮습니다. Doesacy Digital Academy의 솔리디티 기초 모듈에서는 이 연습을 두 번 반복하도록 설계되어 있습니다.

마지막으로, 이벤트만으로 복구할 수 없는 상태가 분명히 존재합니다. storage 슬롯을 직접 읽어야 하는 경우, 별도의 읽기 전용 호출 절차를 문서에 남깁니다. 이 한계를 숨기지 않는 것이 교육에서 중요합니다.

← 목록