shud.log
바이브코딩 기록

내가 지금 뭘 하고 있는 건지 모르겠어서 적어봤다

2026-09-03온체인서브그래프입문기록

이 글은 제가 이해한 만큼만 적은 개인 기록입니다. 저는 이 분야 전문가가 아니고, 틀린 설명이 섞여 있을 수 있습니다. 정확한 내용은 공식 문서를 보시는 편이 낫습니다.

여러 개의 작은 서랍이 달린 오래된 도서관 색인 캐비닛, 서랍 하나가 열려 있다

해커톤 준비를 하다가 중간에 멈췄다. 내가 지금 뭘 하고 있는 건지 모르겠어서다.

가입하라니까 가입하고, 키 받으라니까 받고 있는데, 이게 왜 필요한 건지가 머리에 안 들어왔다. 그래서 처음부터 다시 정리했다.

먼저 — 블록체인에서 데이터를 읽는 건 원래 어렵다

이게 출발점이다. 블록체인은 은행 장부 같은 게 아니라 영수증 더미에 가깝다.

우리가 기대하는 것 vs 실제로 있는 것이랬으면 좋겠다실제로 있는 것"이 지갑이 뭘 샀는지 보여줘"→ 목록이 나온다엑셀이나 검색창처럼1번 블록부터 순서대로 쌓인거래 영수증 수억 장"누가 뭘 샀나" 같은 목차는 없다그래서 "찾으려면" 직접 다 넘겨봐야 한다블록체인은 기록을 안전하게 쌓아두는 데는 훌륭하지만,그 안에서 뭔가를 찾아보라고 만들어진 물건이 아니다.

지갑 하나가 뭘 사고팔았는지 알고 싶으면, 그 지갑이 등장하는 영수증을 전부 찾아서 한 장씩 읽어야 한다. 목차가 없으니까.

내가 그동안 하던 방법

나는 그냥 무식하게 했다. 블록을 1,000개씩 잘라서 "이 구간에 이 지갑 나와?"를 계속 물어보는 방식이다.

이걸 몇 주 굴리면서 세 번 크게 막혔다.

1. BSC라는 체인에서는 거의 매번 "너무 자주 물어본다"고 거절당했다
2. 토큰 하나를 30,000블록 훑으려다 25분 만에 응답이 끊겼다
3. 어떤 거래소 방식이 바뀌어서, 금액이 전부 0으로 나왔다

1번과 2번은 같은 문제다. 공짜로 열어둔 창구에 가서 계속 물어보니까 창구가 지친 거다. 무료로 쓰는 거라 뭐라 할 수도 없다.

3번은 좀 다르다. 거래소가 내부 구조를 바꾸면서 돈이 오가는 방식 자체가 달라졌는데, 내 코드는 옛날 방식으로 세고 있었다. 그래서 "0원 거래"만 잔뜩 잡혔다.

내가 하던 방식블록 1~10001001~2000거절됨3001~4000거절됨…계속지갑 하나를 반나절 보려면 이걸 수백 번 반복한다.중간에 거절당하면 그 구간은 다음번에 다시 물어봐야 한다.그리고 매번 "해석"까지 내가 한다영수증에는 "샀다/팔았다"가 안 적혀 있다. 토큰이 어디서 어디로 옮겨갔는지만 적혀 있다.그걸 보고 "아 이건 매수구나"를 내가 판단해야 하고,거래소가 방식을 바꾸면 내 판단 기준도 같이 틀린다. (내가 겪은 3번 문제)

그래서 서브그래프라는 게 있다

한 줄로 말하면 "미리 정리해둔 목차"다.

누군가가 미리 블록체인을 전부 읽어서, "이 거래소에서 일어난 매매"만 뽑아 정리해둔다. 그리고 그걸 검색할 수 있는 형태로 열어둔다.

두 가지 방법직접 읽기 (지금까지)서브그래프에 물어보기블록을 1,000개씩 수백 번 조회영수증을 직접 해석거래소가 바뀌면 내 코드도 깨짐반나절치에 수십 분"이 지갑 매매 다 줘" 한 번이미 정리된 형태로 받음해석은 만든 사람이 유지보수보통 1초 안쪽도서관에 비유하면앞은 책장 사이를 직접 걸어다니며 책등을 하나씩 보는 것이고,뒤는 색인 카드 서랍을 열어 "ㅅ" 칸에서 찾는 것이다.

중요한 건 "빠르다"보다 "해석을 남이 해준다"는 쪽이다. 내가 3번에서 막혔던 문제 — 거래소가 구조를 바꿔서 금액이 0으로 나온 것 — 는 서브그래프를 쓰면 그걸 만든 사람이 이미 고쳐놨을 가능성이 높다. 나 혼자 며칠 헤맬 일을 안 해도 된다.

그럼 왜 API 키가 필요하냐면

이 서비스도 결국 누군가가 서버를 돌려서 제공하는 거다. 그래서 "누가 얼마나 쓰는지"를 세야 한다.

API 키 = 도서관 회원증

회원증 없이도 들어가지는 곳이 있는데(공짜 창구), 거기가 바로 내가 계속 거절당하던 데다. 회원증을 만들면 정해진 만큼은 확실히 보장받는다.

월 10만 번까지는 공짜다. 내 규모면 넘칠 일이 없다.

⚠️ 그리고 이 키는 비밀번호 같은 것이다. 코드에 그냥 적어놓고 공개 저장소에 올리면 남이 내 몫을 다 써버린다. 별도 파일에 넣고 업로드 목록에서 빼야 한다.

정리하면 내가 하려는 건 이거다

만들려는 것의 전체 흐름지갑 주소 등록지금 블록을못박는다이후 매매만모은다판정문③번 자리에 서브그래프가 들어간다. 지금은 내가 직접 블록을 훑는 부분이다.판정은 세 가지만 나온다🟢 통과 — 가스비 빼고도 남고, 제일 크게 번 한 건을 빼도 남는다🎲 한 방 의존 — 남긴 남는데, 큰 거 한 건 빼면 마이너스다🔴 탈락 — 가스비 빼면 남는 게 없다

"이 지갑을 따라 사면 진짜 돈이 되나"를 확인하는 도구다.

시중 도구들은 대개 과거 성적을 보여준다. 그런데 과거는 고를 수 있다. 잘한 지갑을 이미 알고 나서 보여주는 거라 별 의미가 없다. 그래서 등록한 순간의 블록을 못박고, 그 뒤에 벌어진 것만 센다.

그리고 검사를 하나 더 한다. 가장 크게 번 매매 하나를 빼고도 플러스인가. 이게 실제로 뭔가를 잡아냈는데, 추적하던 지갑 하나가 겉으로는 플러스인데 그 한 건을 빼니까 마이너스였다. 승률로도 총손익으로도 안 보이는 사실이다.

그래서 지금 하는 일이 뭐냐면

지금까지  블록을 직접 훑음 → 자주 실패하고 느림
이번에    같은 걸 서브그래프 위에 다시 지음

계산 로직은 그대로다. 데이터를 가져오는 방법만 바꾸는 거다.

그리고 이게 해커톤 주제와 맞아떨어진다. 스폰서 중에 그 서브그래프 서비스를 만드는 곳이 있고, "우리 걸 써서 뭔가 의미 있는 걸 만들어봐라"가 과제이기 때문이다. 억지로 갖다 붙인 게 아니라 내가 실제로 막혀 있던 지점을 푸는 게 곧 과제인 셈이다.

이 글을 쓴 이유

시키는 대로 따라가고 있다는 느낌이 들어서 멈췄다.

모르는 채로 진도만 나가면 나중에 고장났을 때 아무것도 못 한다. 봇을 몇 개 굴리면서 배운 게 그거다. 돌아갈 땐 이해 안 해도 되는데, 멈추는 순간 이해한 만큼만 고칠 수 있다.

그래서 진도를 하루 늦추더라도 적어두는 게 낫다고 생각했다. 어차피 시작은 내일이다.

이어서 읽기
← 목록으로