방법론

데이터가 들어와서 화면에 표시되기까지.

이 페이지는 CubeSphere 가 데이터를 다루는 방식을 정리한 문서입니다. "왜 이렇게 했나" 와 "어디까지 됐나" 를 솔직하게 적었습니다. 사용자가 보는 숫자가 어디서 왔는지 알 권리가 있다고 생각해요.

큰 그림

전체 흐름은 단순합니다. 외부에서 받아오고, 우리 형태로 바꾸고, 인덱스를 걸고, 화면에 띄웁니다. 단계마다 따로 굴러가도록 설계해서 한 곳이 막혀도 다른 데까지 영향이 가지 않게 했습니다. 처음에는 한 덩어리로 만들었다가 새벽 3 시에 데이터 갱신이 멈춰서 사이트 전체가 죽은 적이 있어서, 그 뒤로 분리했어요.

그래서 지금은 수집 워커가 죽어도 사이트는 이전 데이터를 보여주고, 화면 렌더가 느려져도 수집은 계속 돌아갑니다. 완벽하지는 않지만 처음보다는 훨씬 안정적입니다.

어디서 데이터를 가져오는가

시세·시총·거래량 같은 가격 정보는 거의 전부 CoinGecko 공개 API 에서 받습니다. 다른 곳도 검토했지만 무료 API 중에서는 이게 가장 일관되고 카테고리 정보까지 같이 주거든요. 약 1 시간 간격으로 받아옵니다. 가격이 실시간으로 더 빠르게 필요한 경우는 거의 없다고 판단했습니다.

트렌딩은 30 분 간격으로 받아옵니다. 너무 자주 받으면 결과가 노이즈에 가깝고, 너무 드물게 받으면 흐름을 놓치는 균형점이 그쯤이더라고요.

뉴스는 공개 RSS 와 사이트 인덱스를 돌면서 새로 올라온 글을 가져옵니다. 어느 사이트에서 가져오는지는 뉴스 표시할 때 출처를 그대로 노출하니까 거기서 확인할 수 있어요. 본문 전체를 우리 사이트에 옮겨 적지 않고 — 그건 출판사의 권리니까 — 메타 정보(언제, 어떤 코인 관련, 어떤 카테고리)만 정리합니다.

Universe — 왜 모든 코인을 보여주지 않나

CoinGecko 는 15,000 개 이상의 토큰을 추적합니다. 그걸 다 보여주면 정보가 아니라 잡음이 됩니다. 그래서 "Universe" 라는 큐레이션 집합을 따로 운영합니다. 지금은 270 개 안팎이고요.

들어가는 기준은 단순합니다. 시가총액 데이터가 일관되게 잡혀야 하고, 거래량이 일정 수준 이상이고, 주요 거래소에 상장되어 있어야 합니다. Wrapped 나 Staked 같은 파생 토큰은 underlying 자산이 따로 있다면 그쪽을 우선합니다. 명백한 스캠은 들어오지 못합니다.

이게 완벽한 기준은 아닙니다. 신생 토큰이 빠르게 자라면 Universe 에 들어오는 데 시간이 걸리고, 한때 큰 토큰이 시간이 흘러도 계속 남아있을 수 있어요. 정기적으로 검토하지만, 어떤 코인이 보고 싶은데 없다면 알려주세요. 검토 우선순위에 올립니다.

카테고리 분류

코인이 여러 카테고리에 동시에 속할 수 있다는 게 처음엔 헷갈렸습니다. Ethereum 만 봐도 Layer 1 이면서 Smart Contract Platform 이고 Proof of Stake 이거든요. 어디 하나로 분류해서 보여주면 나머지 정보가 사라집니다.

그래서 1-to-N 관계를 그대로 살렸습니다. 한 코인이 N 개 카테고리에 속해 있으면 N 개 모두에 표시됩니다. 카테고리별 시가총액 합산을 보면 같은 코인이 여러 번 합산되는데, 이건 의도된 것입니다. 중복 계상이 아니라 "이 카테고리에 속한 코인들의 총 영향력" 을 측정하는 표준 방식이에요.

분류 자체는 CoinGecko 의 카테고리를 기본으로 쓰고, 그 위에 Layer 1·Stablecoin·RWA·AI·Gaming·Meme 같은 메가 카테고리를 자체적으로 묶어 두었습니다. 사용자가 흔히 떠올리는 분류와 맞추려는 거예요.

트렌딩은 두 가지를 봅니다

하나는 CoinGecko 가 자체 검색량 기준으로 발표하는 trending 입니다. 그걸 그대로 받아옵니다. 다른 하나는 우리가 직접 만든 스냅샷 기반 트렌딩 강도예요.

30 분마다 trending 목록을 받아서 시간선에 저장해 두면 "이 코인이 지난 24 시간 동안 몇 번 등장했는지" 를 셀 수 있습니다. 자주 등장한 코인일수록 강도가 높은 거죠. 단순하지만 의외로 직관적이에요. 외부 trending 이 한 번에 7-10 개만 보여주는 것에 비해, 시간을 늘려서 보면 더 많은 정보가 나옵니다.

이벤트 시간선이 핵심입니다

이게 사실 가장 신경 쓴 부분입니다. 시장에서 일어난 의미 있는 사건 — 뉴스, 트렌딩 진입과 이탈, 카테고리 모멘텀 변화, 트레저리 변동 — 을 모두 같은 형식으로 시간선에 기록합니다.

각 이벤트는 출처 유형(뉴스인지, 트렌딩인지 등), 어떤 코인·카테고리와 관련 있는지, 시장 영향도 점수, 발생 시각을 갖습니다. 영향도 점수는 0 부터 10 사이인데, 이건 LLM 이 1 차로 판단하고 우리가 후처리하는 형태라 가끔 어색합니다. 솔직히 말하면 이 점수가 완벽하다고 자신할 수는 없어요. 다만 큰 사건과 작은 사건을 구별하는 데는 도움이 됩니다.

이벤트가 관련 코인·카테고리와 연결되어 있어서, "Solana 페이지에서 본 뉴스 → 그 뉴스의 다른 관련 코인 → 그 코인의 카테고리" 같은 탐색이 가능합니다. 시장이 원래 이렇게 연결되어 있으니까요.

뉴스 분류에 LLM 을 씁니다

뉴스가 어떤 코인·카테고리와 관련 있는지 사람이 일일이 태깅할 수가 없어서, LLM 으로 보조 분류를 합니다. 본문에서 언급된 자산을 식별하고 카테고리를 추정해요.

완벽하지 않습니다. 가끔 엉뚱한 코인에 태깅되거나, 명백히 관련 있어 보이는데 빠진 경우도 있어요. 발견하면 알려주시면 모델 프롬프트를 조정합니다. LLM 출력을 100% 신뢰할 수는 없으니, 중요한 판단의 단독 근거로 사용하지 마시고 원문 링크를 함께 확인해주세요.

솔직한 한계

투명성을 위해 적어둡니다.

외부 API 의 지연·중단이 우리 표시에 그대로 영향을 줍니다. CoinGecko 가 한참 느려진 적이 몇 번 있었는데, 그때마다 사이트 데이터도 같이 지연됩니다. 우회 방법은 사실상 없습니다.

뉴스 LLM 분류는 위에서 적었듯 한계가 있습니다. 영어가 아닌 뉴스(특히 한국어·일본어·중국어)는 더 정확하지만 LLM 출력의 변동성이 있어요.

Universe 가 모든 의미 있는 코인을 포함하지 않을 수 있습니다. 신생 토큰의 평가는 시간이 걸려요.

시세·트렌딩 표시는 다시 말하지만 투자 조언이 아닙니다. 시장 상태를 정리한 결과일 뿐이에요. 자세한 면책은 이용약관 참조.

데이터 오류·개선 제안은 문의 페이지 로 보내주세요. 이 문서 자체에 부족한 설명도 알려주시면 보완합니다.