<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>암호화폐 상장 공지 블로그 — CryptoListing.ws</title>
    <link>https://cryptolisting.ws/ko/blog/</link>
    <description>거래소 상장 공지 분석과 가이드. 바이낸스·업비트·빗썸·로빈후드의 신규 코인 상장을 실시간으로 확인하는 방법을 알아보세요.</description>
    <language>ko</language>
    <lastBuildDate>Mon, 28 Sep 2026 00:00:00 GMT</lastBuildDate>
    <atom:link href="https://cryptolisting.ws/ko/feed.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>바이낸스 모니터링 태그 알림: 지정과 해제를 실시간으로</title>
      <link>https://cryptolisting.ws/ko/blog/binance-monitoring-tag-alerts/</link>
      <guid isPermaLink="true">https://cryptolisting.ws/ko/blog/binance-monitoring-tag-alerts/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<nav class="crumb" aria-label="Breadcrumb" style="font-size:13px;color:var(--text-muted);margin-bottom:16px"><a href="https://cryptolisting.ws/ko/" style="color:var(--text-muted);text-decoration:none">홈</a> &nbsp;›&nbsp; <a href="https://cryptolisting.ws/ko/blog/" style="color:var(--text-muted);text-decoration:none">블로그</a> &nbsp;›&nbsp; <span>바이낸스 모니터링 태그</span></nav>
            <h1>바이낸스 <span class="gradient">모니터링 태그</span> 알림: 지정과 해제를 실시간으로</h1>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:8px;"><time datetime="2026-09-28">2026년 9월 28일</time></p>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:24px">최종 업데이트 <time datetime="2026-09-28">2026-09-28</time></p>

            <p class="lead">CryptoListing.ws의 바이낸스 피드는 모니터링 태그(Monitoring Tag) 변경을 실시간으로 감지합니다. 이벤트 유형은 두 가지입니다. 토큰이 바이낸스의 감시 목록에 오르면 <code>monitoring_tag_extend</code>, 경고가 풀리면 <code>monitoring_tag_remove</code>입니다. 두 이벤트는 일반 상장과 최종 상장폐지 사이의 빈틈, 즉 바이낸스가 최종 조치 전에 위험 신호를 보내는 순간을 채워 줍니다.</p>

            <div class="hint hint-info" style="border-left:3px solid var(--accent);padding:12px 16px;margin:24px 0;background:rgba(255,255,255,0.02)">
              <strong>한눈에 보기.</strong> ① 모니터링 태그는 바이낸스에서 이미 거래 중인 토큰에 붙는 위험 경고이며, 곧바로 상장폐지된다는 뜻은 아닙니다. ② 태그 지정은 <code>monitoring_tag_extend</code>, 해제는 <code>monitoring_tag_remove</code> 이벤트로 옵니다. ③ 두 이벤트 모두 무료 등급을 포함한 모든 요금제에 들어 있습니다.
            </div>

            <h2>바이낸스 모니터링 태그란?</h2>
            <p>모니터링 태그는 바이낸스가 이미 거래되고 있는 토큰에 붙이는 위험 표시입니다. 변동성이 크거나, 유동성이 줄어들거나, 펀더멘털이 약해지거나, 거버넌스에 문제가 생기는 등 위험 징후를 보이는 프로젝트에 바이낸스는 트레이더를 위한 부드러운 경고로 이 태그를 붙입니다. 태그가 곧 상장폐지를 뜻하지는 않습니다. 하지만 해당 자산이 더 엄격한 감시를 받고 있다는 신호이고, 과거를 보면 태그가 붙은 토큰 가운데 적지 않은 수가 결국 상장폐지되었습니다.</p>
            <p>태그는 몇 달, 때로는 1년 넘게 유지됩니다. 지표가 좋아져 경고가 해제되는 토큰도 있고, 플랫폼에서 완전히 퇴출될 때까지 태그가 남는 토큰도 있습니다. 업비트·빗썸의 유의 종목 지정에 익숙하다면 비슷한 "경고 단계"로 이해하면 됩니다. 다만 바이낸스의 모니터링 태그는 1년 넘게 이어지기도 합니다. 국내 거래소의 유의 종목 지정 해제는 <a href="https://cryptolisting.ws/ko/caution-released/" style="color:var(--accent)">유의 종목 지정 해제</a>에서 따로 다룹니다.</p>

            <h2>모니터링 태그가 중요한 이유</h2>
            <p>태그는 결과가 아니라 먼저 나오는 위험 신호입니다. 태그가 붙은 토큰의 상당수가 결국 퇴출되어 왔기 때문에, <code>monitoring_tag_extend</code> 이벤트는 보유 포지션을 점검하기에 자연스러운 계기가 됩니다. 손절 폭을 좁히거나, 비중을 줄이거나, 뒤따를 수 있는 상장폐지 공지를 지켜보는 식입니다. 바이낸스는 거래 화면에 태그를 눈에 띄게 표시하기 때문에 개인 투자자의 매매가 태그에 바로 반응하고, 모든 변경은 <a href="https://www.binance.com/en/support/announcement" style="color:var(--accent)" rel="noopener nofollow">바이낸스 공지 센터(영문)</a>에 게시됩니다. 태그가 오래 풀리지 않을 때 이어질 수 있는 상장폐지에 대해서는 Investopedia의 <a href="https://www.investopedia.com/terms/d/delisting.asp" style="color:var(--accent)" rel="noopener nofollow">상장폐지 해설(영문)</a>이 잘 정리되어 있습니다.</p>
            <p><code>monitoring_tag_remove</code>는 반대 신호입니다. 바이낸스가 프로젝트의 지표가 경고를 거둘 만큼 회복되었다고 판단했다는 뜻입니다. 위험을 이유로 한 매도 압력이 걷히는 경우가 많아, 대체로 토큰에 긍정적인 변화로 읽힙니다.</p>
            <p>어느 쪽도 예측은 아닙니다. 태그가 1년 넘게 붙어 있다가 깔끔하게 해제될 수도 있고, 몇 주 만에 퇴출로 이어질 수도 있습니다. 이벤트가 알려 주는 것은 바이낸스의 위험 판단이 바뀌었다는 사실과 그 정확한 시점뿐입니다. 대부분의 트레이딩 데스크는 이 신호를 확률적으로 다룹니다. 단독 매매 트리거가 아니라, 포지션 크기를 정할 때 참고하는 여러 입력 가운데 하나로 쓰는 것입니다. 모니터링 태그 공지 뒤 가격이 실제로 어떻게 움직였는지는 <a href="https://cryptolisting.ws/ko/listing-price-reaction/" style="color:var(--accent)">상장 공지 후 가격 반응 통계</a>에서 공지 종류별로 볼 수 있습니다. 그곳의 고점과 저점은 실제로 체결된 가격일 뿐, 누구나 얻을 수 있는 수익이 아닙니다.</p>

            <h2>모니터링 태그 vs 시드 태그</h2>
            <p>헷갈리기 쉬운 바이낸스 라벨이 두 개 있습니다. <strong>모니터링 태그</strong>는 경고 징후를 보이기 시작한, 이미 자리 잡은 토큰에 적용되는 위험 감시 목록입니다. 반면 <strong>시드 태그</strong>(Seed Tag)는 바이낸스에 새로 상장된, 혁신적이지만 변동성이 큰 프로젝트에 생애 <em>초기</em>에 붙는 라벨입니다. 초기 단계 자산에 대한 "취급 주의" 표시일 뿐, 부실 신호가 아닙니다. 두 라벨 모두 트레이더에게 신중함을 요구하지만, 위험 곡선의 정반대 끝에 있습니다.</p>
            <p>저희 피드는 <code>monitoring_tag_extend</code>와 <code>monitoring_tag_remove</code>만 전달합니다. 바이낸스 공지 하나에 모니터링 태그와 시드 태그 티커가 섞여 있으면, 시드 태그에만 해당하는 심볼은 <code>ticker</code> 필드에서 빠집니다. 시드 태그만 다루는 공지는 <code>not_listing</code>으로 분류됩니다. 이 구분은 <a href="https://cryptolisting.ws/docs/book/message-reference.html" style="color:var(--accent)">메시지 레퍼런스 (EN)</a>에 나와 있고, 두 라벨의 정의는 용어집의 <a href="https://cryptolisting.ws/ko/glossary/#monitoring-tag" style="color:var(--accent)">모니터링 태그</a>와 <a href="https://cryptolisting.ws/ko/glossary/#seed-tag" style="color:var(--accent)">시드 태그</a> 항목에 있습니다.</p>

            <h2>지정(extend)과 해제(remove)</h2>
            <p>WebSocket 메시지의 <code>listingType</code> 필드에는 바이낸스 전용 값이 두 개 있습니다.</p>
            <div class="code-block">
                <pre><span class="t-str">"monitoring_tag_extend"</span>   <span class="t-cm">// 토큰이 모니터링 태그 목록에 추가됨</span>
<span class="t-str">"monitoring_tag_remove"</span>   <span class="t-cm">// 토큰이 모니터링 태그 목록에서 빠짐</span></pre>
            </div>
            <p>지정 이벤트는 보통 묶음으로 옵니다. 바이낸스는 공지 하나에 여러 토큰을 한꺼번에 지정하는 경우가 많습니다. 실제 예로 <em>"Binance Will Extend the Monitoring Tag to Include NFP, NOM, POND, QUICK &amp; VIC on 2026-04-30"</em> 공지는 <code>ticker = "NFP,NOM,POND,QUICK,VIC"</code>인 이벤트 하나로 전달되었습니다. 2026년 9월 4일 공지에서는 <a href="https://cryptolisting.ws/listings/binance-monitoring-tag-extend-towns-2026-09-04/" style="color:var(--accent)">TOWNS</a>, <a href="https://cryptolisting.ws/listings/binance-monitoring-tag-extend-scr-2026-09-04/" style="color:var(--accent)">SCR</a>, <a href="https://cryptolisting.ws/listings/binance-monitoring-tag-extend-gns-2026-09-04/" style="color:var(--accent)">GNS</a>, <a href="https://cryptolisting.ws/listings/binance-monitoring-tag-extend-ava-2026-09-04/" style="color:var(--accent)">AVA</a> 네 토큰이 함께 지정되었습니다. 링크된 토큰별 페이지(영문)에서 공지 직후의 가격 흐름을 차트로 볼 수 있습니다.</p>
            <p>해제 이벤트는 범위가 좁은 편이라 한 번에 토큰 하나인 경우가 많습니다. 예를 들어 <em>"Binance Will Remove the Monitoring Tag for ZEC..."</em> 공지는 <code>ticker = "ZEC"</code>인 이벤트 하나입니다. 새로 붙는 경고, 풀리는 경고, 또는 둘 다 중 무엇이 필요한지에 따라 두 유형을 각각 따로 필터링할 수 있습니다.</p>
            <p>지정과 해제가 섞인 공지도 있습니다. 바이낸스가 일부 토큰에는 태그를 붙이고 다른 토큰에서는 태그를 떼는 내용을 공지 하나로 내는 경우입니다. 이런 공지는 서로 다른 결정적(deterministic) ID를 가진 이벤트 두 개로 나누어 보내므로, 직접 파싱 로직을 짜지 않아도 양쪽에 각각 대응할 수 있습니다.</p>

            <h2>감지와 API</h2>
            <p>두 이벤트는 상장, 상장폐지, 에어드랍과 같은 WebSocket 연결로 전달됩니다. <code>monitoring_tag_extend</code> 메시지는 보통 이런 형태입니다.</p>
            <div class="code-block">
                <pre>{
  <span class="t-str">"type"</span>: <span class="t-str">"announcement"</span>,
  <span class="t-str">"title"</span>: <span class="t-str">"Binance Will Extend the Monitoring Tag to Include NFP, NOM, POND, QUICK &amp; VIC on 2026-04-30"</span>,
  <span class="t-str">"ticker"</span>: <span class="t-str">"NFP,NOM,POND,QUICK,VIC"</span>,
  <span class="t-str">"publisher"</span>: <span class="t-str">"binance"</span>,
  <span class="t-str">"listingType"</span>: <span class="t-str">"monitoring_tag_extend"</span>,
  <span class="t-str">"detectedTimestampUs"</span>: <span class="t-num">1710345000005000</span>,
  <span class="t-str">"dispatchTimestampUs"</span>: <span class="t-num">1710345000006000</span>,
  <span class="t-str">"abnormalDetectionLatency"</span>: <span class="t-num">false</span>
}</pre>
            </div>
            <p><code>monitoring_tag_remove</code> 메시지는 이렇습니다.</p>
            <div class="code-block">
                <pre>{
  <span class="t-str">"type"</span>: <span class="t-str">"announcement"</span>,
  <span class="t-str">"title"</span>: <span class="t-str">"Binance Will Remove the Monitoring Tag for ZEC and the Seed Tag for ENA, PYTH, TAO &amp; W on 2025-07-09"</span>,
  <span class="t-str">"ticker"</span>: <span class="t-str">"ZEC"</span>,
  <span class="t-str">"publisher"</span>: <span class="t-str">"binance"</span>,
  <span class="t-str">"listingType"</span>: <span class="t-str">"monitoring_tag_remove"</span>,
  <span class="t-str">"detectedTimestampUs"</span>: <span class="t-num">1710431400005000</span>,
  <span class="t-str">"dispatchTimestampUs"</span>: <span class="t-num">1710431400006000</span>,
  <span class="t-str">"abnormalDetectionLatency"</span>: <span class="t-num">false</span>
}</pre>
            </div>
            <p>두 번째 예에서 시드 태그가 해제된 ENA, PYTH, TAO, W는 <code>ticker</code>에 들어가지 않습니다. 앞에서 설명한 시드 태그 규칙 그대로입니다. 바이낸스 공지 제목은 원문 그대로 영어로 옵니다. 타임스탬프 값은 형식을 보여 주기 위한 예시입니다.</p>
            <p>이벤트 ID는 (공지, 동작) 쌍마다 결정적이므로, 재연결한 구독자도 중복을 깔끔하게 걸러 낼 수 있습니다. 필터링은 몇 줄이면 됩니다.</p>
            <div class="code-block">
                <pre><span class="t-kw">def</span> <span class="t-fn">on_message</span>(ws, msg):
    data = json.loads(msg)
    lt = data[<span class="t-str">"listingType"</span>]

    <span class="t-kw">if</span> lt == <span class="t-str">"monitoring_tag_extend"</span>:
        flag_risk(data[<span class="t-str">"ticker"</span>])
    <span class="t-kw">elif</span> lt == <span class="t-str">"monitoring_tag_remove"</span>:
        clear_risk(data[<span class="t-str">"ticker"</span>])</pre>
            </div>
            <p>공지 빈도는 과거 기준으로 대략 한 달에 1~2건이며, 저희가 2026년 5월부터 9월까지 감지한 지정 공지도 이 범위 안에 있었습니다. 전체 스키마와 필드의 의미는 <a href="https://cryptolisting.ws/docs/book/message-reference.html" style="color:var(--accent)">메시지 레퍼런스 (EN)</a>를 참고하세요.</p>

            <h2>태그에서 상장폐지까지: 라이프사이클</h2>
            <p>태그가 붙은 토큰은 두 경로 가운데 하나를 따르고, 피드를 쓰면 직접 파싱하지 않고도 두 경로를 모두 추적할 수 있습니다. 긍정적인 경우, 토큰에 태그가 붙고(<code>monitoring_tag_extend</code>) 몇 주에서 몇 달 동안 감시 속에 거래되다가 경고가 해제됩니다(<code>monitoring_tag_remove</code>). 부정적인 경우, 태그는 끝내 풀리지 않고 자산은 결국 상장폐지 공지를 받습니다. 상장폐지는 <code>spot_delisting</code> 또는 <code>futures_delisting</code>이라는 별도 이벤트로 전달되며, <a href="https://cryptolisting.ws/ko/binance-delisting-alert/" style="color:var(--accent)">바이낸스 상장폐지 알림</a>에서 자세히 다룹니다.</p>
            <p>단계마다 결정적 ID를 가진 별도 이벤트이므로 티커별로 간단한 상태 머신을 만들 수 있습니다. extend가 오면 심볼을 "위험"으로 표시하고, remove가 오면 표시를 지우고, 상장폐지가 오면 포지션 정리로 격상하는 식입니다. 이 전환은 이미 받고 있는 <code>listingType</code> 값에 그대로 대응합니다. 그래서 바이낸스가 문구를 바꿀 때마다 손봐야 하는 전용 제목 파서 대신, 메시지 핸들러의 분기 몇 개로 전체 라이프사이클을 처리할 수 있습니다. 각 상태의 정의는 <a href="https://cryptolisting.ws/ko/glossary/#delisting" style="color:var(--accent)">용어집</a>에, 정확한 필드 값은 <a href="https://cryptolisting.ws/docs/book/message-reference.html" style="color:var(--accent)">메시지 레퍼런스 (EN)</a>에 있습니다.</p>
            <p>지금까지의 지정·해제 기록은 <a href="https://cryptolisting.ws/latest-listings/monitoring-tags/" style="color:var(--accent)">모니터링 태그 변경 기록 (EN)</a>에서, 다른 공지와 함께 보려면 <a href="https://cryptolisting.ws/ko/latest-listings/" style="color:var(--accent)">최근 상장 공지 목록</a>에서 확인할 수 있습니다. 둘 다 가입 없이 볼 수 있습니다.</p>

            <h2>시작하기</h2>
            <p>모니터링 태그 이벤트는 모든 요금제에 포함되어 있습니다. 무료 SpeedTrial 키와 FreeDelayed(전체 피드, +240 ms; 첫 달 무료, 이후 월 200 USDT)도 마찬가지입니다. 텔레그램 <a href="https://telegram.me/CLWfeed" style="color:var(--accent)">@CLWfeed</a>에서 API 키를 받은 다음, <a href="https://cryptolisting.ws/ko/pricing/" style="color:var(--accent)">요금제 페이지</a>와 <a href="https://cryptolisting.ws/docs/book/" style="color:var(--accent)">개발자 문서 (EN)</a>를 보고 연결하세요. 공지를 받아 처리하는 봇의 전체 코드는 <a href="https://cryptolisting.ws/ko/blog/upbit-bithumb-listing-bot-python/" style="color:var(--accent)">파이썬으로 업비트·빗썸 상장 봇 만들기</a>에 있습니다.</p>

            <h2>자주 묻는 질문</h2>
            <h3>바이낸스 모니터링 태그란 무엇인가요?</h3>
            <p>바이낸스에서 이미 거래 중인 토큰 가운데 변동성, 유동성, 펀더멘털, 거버넌스 등에서 위험 징후를 보이는 토큰에 바이낸스가 붙이는 경고 표시입니다. 곧바로 상장폐지된다는 뜻은 아니지만, 해당 토큰이 더 엄격한 감시를 받고 있다는 신호입니다.</p>
            <h3>모니터링 태그가 붙으면 상장폐지되나요?</h3>
            <p>반드시 그렇지는 않습니다. 태그는 몇 달, 때로는 1년 넘게 유지되다가 해제되기도 하고, 몇 주 만에 상장폐지로 이어지기도 합니다. 다만 과거를 보면 태그가 붙은 토큰 가운데 적지 않은 수가 결국 상장폐지되었습니다.</p>
            <h3>모니터링 태그와 시드 태그는 어떻게 다른가요?</h3>
            <p>모니터링 태그는 위험 징후를 보이기 시작한 기존 토큰에 붙는 경고이고, 시드 태그는 바이낸스에 새로 상장된 변동성 큰 초기 프로젝트에 붙는 "취급 주의" 표시입니다. CryptoListing.ws는 모니터링 태그의 지정과 해제만 이벤트로 전달합니다.</p>
            <h3>모니터링 태그 알림을 무료로 받을 수 있나요?</h3>
            <p>네. 모니터링 태그 이벤트는 모든 요금제에 포함되며, 무료 등급도 두 가지입니다. SpeedTrial은 모든 이벤트를 전달하되 티커와 제목을 가리고, FreeDelayed(첫 달 무료, 이후 월 200 USDT)는 전체 피드를 +240 ms 늦게 전달합니다. 키는 텔레그램 @CLWfeed에서 받을 수 있습니다.</p>

            <p style="font-size:12px;color:var(--text-muted);margin-top:32px;padding-top:16px;border-top:1px solid var(--border)"><em>본 글은 정보 제공 목적으로만 작성되었으며 투자 조언이 아닙니다. CryptoListing.ws는 기술 데이터 피드 서비스입니다 — <a href="https://cryptolisting.ws/legal/" style="color:var(--text-muted);text-decoration:underline">법적 고지 (EN)</a>를 참조하십시오.</em></p>

            <h2 style="margin-top:48px">관련 글</h2>
            <ul style="list-style:none;padding:0">
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/blog/how-to-detect-new-crypto-listings/" style="color:var(--accent)">신규 상장 코인 아는 법: 업비트·빗썸·바이낸스 상장 공지 확인하기</a> — 세 거래소의 공지를 어디서, 어떻게 읽는지.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/blog/binance-delisting-airdrop-alerts/" style="color:var(--accent)">바이낸스 상장폐지·HODLer 에어드랍 알림 (EN)</a> — 같은 피드로 오는 바이낸스 이벤트 두 가지.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/blog/why-binance-listings-move-markets/" style="color:var(--accent)">바이낸스 상장 공지가 시장을 움직이는 이유 (EN)</a> — 세계 최대 거래소의 공지 효과.</li>
            </ul>

            <div class="cta-card">
                <h3>모니터링 태그 이벤트 받아보기</h3>
                <p>지정, 해제, 그리고 바이낸스의 다른 모든 공지 유형을 같은 WebSocket 연결 하나로 받으세요. <a href="https://cryptolisting.ws/ko/pricing/" style="color:var(--accent);text-decoration:underline">요금제 및 등급</a>을 확인하세요 — 무료 SpeedTrial 키와 FreeDelayed(전체 피드, +240 ms; 첫 달 무료, 이후 월 200 USDT)를 이용할 수 있습니다.</p>
                <a href="https://telegram.me/CLWfeed" class="cta-tg">
                    <svg viewBox="0 0 24 24"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>
                    텔레그램에서 시작하기
                </a>
            </div>]]></description>
    </item>
    <item>
      <title>신규 상장 코인 아는 법: 공지를 가장 먼저 확인하는 방법</title>
      <link>https://cryptolisting.ws/ko/blog/how-to-detect-new-crypto-listings/</link>
      <guid isPermaLink="true">https://cryptolisting.ws/ko/blog/how-to-detect-new-crypto-listings/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<nav class="crumb" aria-label="Breadcrumb" style="font-size:13px;color:var(--text-muted);margin-bottom:16px"><a href="https://cryptolisting.ws/ko/" style="color:var(--text-muted);text-decoration:none">홈</a> &nbsp;›&nbsp; <a href="https://cryptolisting.ws/ko/blog/" style="color:var(--text-muted);text-decoration:none">블로그</a> &nbsp;›&nbsp; <span>신규 상장 코인 아는 법</span></nav>
            <h1><span class="gradient">신규 상장 코인</span> 아는 법: 업비트·빗썸·바이낸스 상장 공지를 가장 먼저 확인하는 방법</h1>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:8px;"><time datetime="2026-09-28">2026년 9월 28일</time></p>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:24px">최종 업데이트 <time datetime="2026-09-28">2026-09-28</time></p>

            <p class="lead">신규 상장 코인을 미리 알고 싶다면 먼저 알아 둘 사실이 하나 있습니다. 거래소가 공개하는 "상장 예정 코인 목록"은 없습니다. 가장 먼저 나오는 공식 정보는 거래소의 상장 공지 그 자체이고, 이 공지는 거래가 열리기 전에 게시됩니다. 이 글에서는 업비트·빗썸·바이낸스의 상장 공지를 어디서, 어떻게 읽는지, 그리고 세 거래소의 공지를 무료로 한곳에서 받아보는 방법을 정리합니다.</p>

            <div class="hint hint-info" style="border-left:3px solid var(--accent);padding:12px 16px;margin:24px 0;background:rgba(255,255,255,0.02)">
              <strong>한눈에 보기.</strong> ① 신규 상장 코인은 거래소의 공식 공지사항에서 가장 먼저 확인됩니다. ② 공지와 거래 개시 사이에는 시간 차이가 있어, 공지는 났지만 아직 거래가 열리지 않은 코인이 사실상의 "상장 예정 코인"입니다. ③ 무료 텔레그램 채널 <a href="https://telegram.me/CLWfeed" style="color:var(--accent)">@CLWfeed</a>와 <a href="https://cryptolisting.ws/ko/latest-listings/" style="color:var(--accent)">최근 상장 공지 목록</a>으로 세 거래소의 공지를 한곳에서 볼 수 있습니다.
            </div>

            <h2>상장 예정 코인 목록은 공식적으로 존재하지 않습니다</h2>
            <p>업비트, 빗썸, 바이낸스 모두 상장 심사를 내부에서 진행하고, 심사 중인 후보 코인을 미리 공개하지 않습니다. 시장이 처음으로 공식 정보를 접하는 순간은 거래소가 상장 공지를 게시하는 순간입니다. 공지에는 어떤 코인이 어느 마켓에 추가되는지, 입금과 거래가 언제 열리는지가 적혀 있고, 거래는 공지에 적힌 시각에 열립니다.</p>
            <p>그래서 "상장 예정 코인"이라는 말은 현실적으로 <strong>공지는 나왔지만 아직 거래가 열리지 않은 코인</strong>을 뜻합니다. 인터넷에서 볼 수 있는 "상장 예정 코인 목록"은 이미 공지된 코인을 모은 것이거나, 공지 전의 추측입니다. 바이낸스처럼 에어드랍 공지와 함께 상장 일정을 발표하는 경우도 있지만, 이 역시 공지가 나온 뒤에야 알 수 있습니다. 결국 신규 상장 코인을 아는 법은 <strong>공지를 가장 먼저 보는 법</strong>입니다.</p>

            <h2>업비트 "신규 거래지원 안내" 공지 읽는 법 (원화·BTC·USDT 마켓)</h2>
            <p>업비트의 상장 공지는 <a href="https://upbit.com/service_center/notice" rel="noopener nofollow" target="_blank" style="color:var(--accent)">업비트 고객센터 공지사항</a>에 올라옵니다. 신규 상장은 보통 이런 제목입니다.</p>
            <ul style="line-height:1.7">
              <li><code>메가이더(MEGA) 신규 거래지원 안내 (KRW 마켓)</code> — 원화 마켓 하나만 열리는 상장.</li>
              <li><code>그래비티토큰(GRVT) 신규 거래지원 안내 (KRW, BTC, USDT 마켓)</code> — 세 마켓이 함께 열리는 상장.</li>
              <li><code>BTC, USDT 마켓 신규 거래지원 안내 (CYS, ICNT, XAN, EDEN, AIOZ, ALLO)</code> — 여러 코인을 묶은 공지. 원화 마켓은 열리지 않습니다.</li>
            </ul>
            <p>핵심은 괄호 안의 마켓입니다. 국내 개인 투자자의 거래는 대부분 원화(KRW) 마켓에서 일어나기 때문에, 원화 마켓이 열리는 상장과 BTC·USDT 마켓만 추가되는 상장은 성격이 다른 이벤트입니다. 공지 본문에는 거래지원 개시 시점과 입출금 관련 안내가 함께 적힙니다. 원화 마켓이 무엇인지는 <a href="https://cryptolisting.ws/ko/glossary/#krw-market" style="color:var(--accent)">용어집</a>에, 업비트 상장이 가격에 미치는 영향은 <a href="https://cryptolisting.ws/ko/blog/upbit-listing-effect-kimchi-premium/" style="color:var(--accent)">업비트 상장 효과와 김치 프리미엄</a>에 정리되어 있습니다.</p>
            <p>같은 게시판에는 상장만 올라오지 않습니다. 이미 거래 중인 코인의 <code>유의 종목 지정</code>과 <code>유의 종목 지정 해제</code>, 그리고 <code>거래지원 종료</code>(상장폐지) 공지도 올라옵니다. 거래지원 종료와 유의 종목 해제는 각각 <a href="https://cryptolisting.ws/ko/upbit-delisting-alert/" style="color:var(--accent)">업비트 상장폐지 알림</a>과 <a href="https://cryptolisting.ws/ko/caution-released/" style="color:var(--accent)">유의 종목 지정 해제</a>를 참고하세요.</p>

            <h2>빗썸 신규 거래지원 공지</h2>
            <p>빗썸의 공지는 <a href="https://feed.bithumb.com/notice" rel="noopener nofollow" target="_blank" style="color:var(--accent)">빗썸 공지사항</a>에 올라옵니다. 신규 상장은 <code>셀로(CELO) 원화 마켓 추가</code>처럼 "마켓 추가"라는 제목으로 나오는 경우가 많습니다. 빗썸도 <code>투자유의종목 지정</code>·<code>지정 해제</code>와 <code>거래지원 종료</code> 공지를 같은 게시판에 올립니다.</p>
            <p>빗썸과 업비트는 서로 다른 코인을 상장하는 경우가 많고, 같은 코인을 다른 시점에 상장하기도 합니다. 한 거래소만 보면 절반을 놓칠 수 있습니다. 두 거래소의 상장 방식 차이는 <a href="https://cryptolisting.ws/ko/blog/bithumb-vs-upbit-listing-strategy/" style="color:var(--accent)">빗썸 vs 업비트: 한국 거래소 상장 공지 전략</a>에서 비교했습니다. 빗썸의 이벤트 종류는 <a href="https://cryptolisting.ws/ko/bithumb-listing-alert/" style="color:var(--accent)">빗썸 상장 알림</a>과 <a href="https://cryptolisting.ws/ko/bithumb-delisting-alert/" style="color:var(--accent)">빗썸 상장폐지 알림</a>에서 볼 수 있습니다.</p>

            <h2>바이낸스 "Will List" 공지와 선물 상장</h2>
            <p>바이낸스의 상장 공지는 <a href="https://www.binance.com/en/support/announcement/new-cryptocurrency-listing?c=48" rel="noopener nofollow" target="_blank" style="color:var(--accent)">바이낸스 공지 센터의 신규 암호화폐 상장(New Cryptocurrency Listing)</a> 분류에 영어로 올라옵니다. 알아 두면 좋은 제목 형식은 다음과 같습니다.</p>
            <ul style="line-height:1.7">
              <li><code>Binance Will List TOKEN (TOKEN)</code> — 현물 상장. <code>with Seed Tag Applied</code>가 붙으면 변동성이 큰 초기 프로젝트라는 표시입니다. 공지에 거래 개시 시각이 적혀 있습니다.</li>
              <li><code>Binance Futures Will Launch USDⓈ-Margined TOKENUSDT Perpetual Contract</code> — 선물(무기한 계약) 상장. 현물보다 먼저 나오기도 합니다.</li>
              <li>HODLer 에어드랍 공지 — 에어드랍과 함께 상장 일정이 발표됩니다. <a href="https://cryptolisting.ws/ko/binance-airdrop-alert/" style="color:var(--accent)">바이낸스 에어드랍 알림</a>을 참고하세요.</li>
              <li><code>Binance Will Delist …</code>, 모니터링 태그 공지 — 상장폐지와 경고 신호. <a href="https://cryptolisting.ws/ko/binance-delisting-alert/" style="color:var(--accent)">바이낸스 상장폐지 알림</a>을 참고하세요.</li>
            </ul>
            <p>바이낸스 상장은 전 세계 유동성이 모이는 사건이라 업비트·빗썸 상장과는 다른 방식으로 가격에 반영됩니다. 이벤트 종류 전체는 <a href="https://cryptolisting.ws/ko/binance-listing-alert/" style="color:var(--accent)">바이낸스 상장 알림</a>에 정리되어 있습니다.</p>

            <h2>텔레그램·X·앱 알림·WebSocket 비교</h2>
            <p>공지를 확인하는 방법은 여러 가지이고, 각각 쓰임새가 다릅니다.</p>
            <ul style="line-height:1.7">
              <li><strong>공지사항 직접 확인</strong> — 무료이고 가장 확실한 원문입니다. 다만 세 거래소를 계속 새로고침해야 하고, 놓치기 쉽습니다.</li>
              <li><strong>거래소 앱 푸시 알림</strong> — 무료이고 설정이 쉽습니다. 거래소마다 따로 설정해야 하고, 알림 설정과 기기 상태에 따라 도착이 달라집니다.</li>
              <li><strong>X(트위터)</strong> — 거래소 공식 계정과 공지를 옮겨 적는 계정이 있습니다. 계정마다 다루는 거래소와 공지 종류가 제각각입니다.</li>
              <li><strong>텔레그램 채널</strong> — 여러 거래소의 공지를 한 채널에서 받을 수 있어 사람이 보기에 가장 편합니다. CryptoListing.ws의 공개 채널 <a href="https://telegram.me/CLWfeed" style="color:var(--accent)">@CLWfeed</a>는 무료입니다.</li>
              <li><strong>WebSocket API</strong> — 트레이딩 봇용입니다. 공지가 티커(<code>ticker</code>)와 이벤트 종류(<code>listingType</code>)가 이미 추출된 JSON으로 오기 때문에, 한국어 제목을 사람이 읽을 필요 없이 프로그램이 바로 처리할 수 있습니다. 자세한 내용은 <a href="https://cryptolisting.ws/ko/crypto-listing-api/" style="color:var(--accent)">암호화폐 상장 API</a>를 참고하세요.</li>
            </ul>
            <p>사람이 직접 매매한다면 텔레그램 채널이, 봇이 매매한다면 WebSocket이 맞습니다. 어느 쪽이든 원문은 언제나 거래소의 공지사항입니다.</p>

            <h2>"상장 확정" 프리세일·리딩방 사기 주의</h2>
            <p>"업비트 상장 확정", "상장 전 프리세일", "상장 정보 선공개" 같은 문구로 투자를 권유하는 메시지는 의심해야 합니다. 거래소의 상장은 공지로만 발표되고, 공지 전에 상장을 보장할 수 있는 사람은 없습니다. 리딩방이나 메신저로 전달되는 공지 캡처 이미지는 위조되기 쉽고, 거래소를 흉내 낸 가짜 사이트도 있습니다.</p>
            <ul style="line-height:1.7">
              <li>상장 소식은 반드시 거래소 공지사항의 원문에서, 주소창의 도메인을 확인한 뒤 읽으세요.</li>
              <li>공지에 없는 코인을 "곧 상장된다"며 파는 곳에는 송금하지 마세요.</li>
              <li>공지 이후라도 가격은 오를 수도, 내릴 수도 있습니다. 상장 자체가 수익을 보장하지 않습니다.</li>
            </ul>

            <h2>최근 상장 목록</h2>
            <p>CryptoListing.ws의 <a href="https://cryptolisting.ws/ko/latest-listings/" style="color:var(--accent)">최근 상장 공지 목록</a>은 바이낸스·업비트·빗썸의 신규 상장, 상장폐지, 에어드랍, 모니터링 태그, 유의 종목 지정 해제 공지를 감지 시각과 함께 모아 보여 줍니다. 가입은 필요 없습니다. 목록 맨 위의 최근 공지 가운데, 공지에 적힌 거래 개시 시각이 아직 지나지 않은 코인이 바로 앞에서 말한 "상장 예정 코인"입니다. 각 공지에는 공지 직후 가격 흐름을 보여 주는 개별 페이지가 있습니다.</p>
            <p>개발자라면 같은 공지를 Atom 피드(<a href="https://cryptolisting.ws/feed-listings.xml" style="color:var(--accent)">feed-listings.xml</a>)로 구독하거나, 공개 JSON(<code>/data/recent-announcements.json</code>)으로 가져올 수 있습니다. 둘 다 API 키 없이 쓸 수 있습니다.</p>

            <h2>상장 후 가격 반응</h2>
            <p>상장 공지가 나온 뒤 가격이 어떻게 움직였는지는 <a href="https://cryptolisting.ws/ko/listing-price-reaction/" style="color:var(--accent)">상장 공지 후 가격 반응 통계</a>에서 거래소별, 공지 종류별로 볼 수 있습니다. 여기서 말하는 고점은 공지 후 실제로 체결된 가장 좋은 가격일 뿐, 누구나 얻을 수 있는 수익이 아닙니다. 상장 뒤 곧바로 하락하는 코인도 있고, 거래지원 종료 공지 뒤에는 대체로 가격이 떨어집니다. 과거의 반응은 미래의 결과를 보장하지 않습니다.</p>

            <h2>CryptoListing.ws로 상장 공지를 받는 방법</h2>
            <ul style="line-height:1.7">
              <li><strong>무료 텔레그램 채널</strong> — <a href="https://telegram.me/CLWfeed" style="color:var(--accent)">@CLWfeed</a>를 팔로우하면 바이낸스·업비트·빗썸·로빈후드의 상장 공지를 텔레그램으로 받습니다. 자세한 내용은 <a href="https://cryptolisting.ws/ko/telegram-crypto-listing-alerts/" style="color:var(--accent)">텔레그램 상장 알림</a>을 참고하세요.</li>
              <li><strong>최근 상장 공지 목록</strong> — <a href="https://cryptolisting.ws/ko/latest-listings/" style="color:var(--accent)">최근 상장 공지 목록</a>을 즐겨찾기에 넣어 두면 됩니다. 가입이 필요 없습니다.</li>
              <li><strong>트레이딩 봇용 WebSocket API</strong> — <a href="https://cryptolisting.ws/ko/new-coin-listing-alert/" style="color:var(--accent)">신규 코인 상장 알림</a>을 봇으로 받으려면 WebSocket API를 쓰세요. 무료 등급이 두 가지 있습니다. SpeedTrial은 모든 이벤트를 전달하되 티커를 가리고, FreeDelayed(첫 달 무료, 이후 월 200 USDT)는 티커 전체를 지연 전달합니다. <a href="https://cryptolisting.ws/ko/pricing/" style="color:var(--accent)">요금제 및 등급</a>과 <a href="https://cryptolisting.ws/ko/blog/upbit-bithumb-listing-bot-python/" style="color:var(--accent)">파이썬으로 업비트·빗썸 상장 봇 만들기</a>를 참고하세요.</li>
            </ul>

            <h2>자주 묻는 질문</h2>
            <h3>상장 예정 코인을 미리 알 수 있나요?</h3>
            <p>거래소가 공개하는 상장 예정 코인 목록은 없습니다. 가장 이른 공식 정보는 거래소의 상장 공지이며, 이 공지는 거래가 열리기 전에 게시됩니다. 공지가 나오기 전의 "상장 확정" 정보는 확인할 방법이 없습니다.</p>
            <h3>업비트 상장 공지는 어디서 보나요?</h3>
            <p>업비트 고객센터의 공지사항 게시판입니다. 신규 상장 공지는 "신규 거래지원 안내"라는 제목으로 올라오며, 괄호 안에 열리는 마켓(KRW, BTC, USDT)이 적혀 있습니다.</p>
            <h3>상장 공지가 나오면 바로 거래할 수 있나요?</h3>
            <p>보통은 아닙니다. 거래는 공지에 적힌 거래 개시 시각에 열립니다. 공지와 거래 개시 사이에 시간 차이가 있기 때문에, 공지가 나온 뒤 아직 거래가 열리지 않은 코인이 사실상의 "상장 예정 코인"입니다.</p>
            <h3>무료로 상장 알림을 받을 수 있나요?</h3>
            <p>네. 텔레그램 공개 채널 @CLWfeed는 무료이고, 최근 상장 공지 목록은 가입 없이 볼 수 있습니다. 트레이딩 봇에는 무료 등급(SpeedTrial: 15일 키; FreeDelayed: 첫 달 무료, 이후 월 200 USDT)이 있는 WebSocket API를 쓸 수 있습니다.</p>

            <p style="font-size:12px;color:var(--text-muted);margin-top:32px;padding-top:16px;border-top:1px solid var(--border)"><em>본 글은 정보 제공 목적으로만 작성되었으며 투자 조언이 아닙니다. CryptoListing.ws는 기술 데이터 피드 서비스입니다 — <a href="https://cryptolisting.ws/legal/" style="color:var(--text-muted);text-decoration:underline">법적 고지 (EN)</a>를 참조하십시오.</em></p>

            <h2 style="margin-top:48px">관련 글</h2>
            <ul style="list-style:none;padding:0">
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/blog/upbit-listing-effect-kimchi-premium/" style="color:var(--accent)">업비트 상장 효과와 김치 프리미엄 완벽 해설</a> — 업비트 상장 공지가 가격을 크게 움직이는 이유.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/blog/bithumb-vs-upbit-listing-strategy/" style="color:var(--accent)">빗썸 vs 업비트: 한국 거래소 상장 공지 전략</a> — 두 거래소의 상장 방식 비교.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/blog/upbit-bithumb-listing-bot-python/" style="color:var(--accent)">파이썬으로 업비트·빗썸 상장 봇 만들기</a> — 공지를 받아 처리하는 봇 튜토리얼.</li>
            </ul>

            <div class="cta-card">
                <h3>상장 공지를 무료로 받아보세요</h3>
                <p>바이낸스·업비트·빗썸·로빈후드의 상장 공지를 무료 텔레그램 채널 @CLWfeed로 받아보세요. 트레이딩 봇에는 구조화된 JSON을 전달하는 WebSocket API가 있습니다 — <a href="https://cryptolisting.ws/ko/pricing/" style="color:var(--accent);text-decoration:underline">요금제 및 등급</a>을 확인하세요.</p>
                <a href="https://telegram.me/CLWfeed" class="cta-tg">
                    <svg viewBox="0 0 24 24"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>
                    텔레그램에서 시작하기
                </a>
            </div>]]></description>
    </item>
    <item>
      <title>파이썬으로 업비트·빗썸 상장 봇 만들기</title>
      <link>https://cryptolisting.ws/ko/blog/upbit-bithumb-listing-bot-python/</link>
      <guid isPermaLink="true">https://cryptolisting.ws/ko/blog/upbit-bithumb-listing-bot-python/</guid>
      <pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<nav class="crumb" aria-label="Breadcrumb" style="font-size:13px;color:var(--text-muted);margin-bottom:16px"><a href="https://cryptolisting.ws/ko/" style="color:var(--text-muted);text-decoration:none">홈</a> &nbsp;›&nbsp; <a href="https://cryptolisting.ws/ko/blog/" style="color:var(--text-muted);text-decoration:none">블로그</a> &nbsp;›&nbsp; <span>업비트·빗썸 상장 봇 (파이썬)</span></nav>
            <h1>파이썬으로 <span class="gradient">업비트·빗썸 상장 봇</span> 만들기</h1>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:8px;"><time datetime="2026-09-28">2026년 9월 28일</time></p>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:24px">최종 업데이트 <time datetime="2026-09-28">2026-09-28</time></p>

            <p class="lead">업비트와 빗썸은 신규 상장, 거래지원 종료, 유의 종목 지정 해제를 각자의 공지사항에 한국어로 올리고, 상장 공지는 거래가 열리기 전에 먼저 나옵니다. 이 튜토리얼에서는 이런 공지를 WebSocket으로 구조화된 JSON 형태로 받아, 한국 거래소 특유의 요소 — 원화·BTC·USDT 마켓, 유의 종목 단계, 여러 티커를 묶은 공지 — 를 이해하고, 원하는 거래소에 크기가 정해지고 중복이 걸러진 주문을 넣는 작은 파이썬 봇을 만듭니다. 직접 해제하기 전까지는 드라이런(모의 실행)으로만 동작합니다. <a href="https://cryptolisting.ws/blog/binance-listing-sniper-bot-python/" style="color:var(--accent)">바이낸스 상장 스나이퍼 봇 튜토리얼 (EN)</a>의 한국 거래소 편입니다.</p>

            <div class="hint hint-info" style="border-left:3px solid var(--accent);padding:12px 16px;margin:24px 0;background:rgba(255,255,255,0.02)">
              <strong>범위.</strong> 이 글은 구독자 쪽 튜토리얼입니다. 봇은 공지 피드를 읽고 그에 따라 움직일 뿐, 거래소 웹사이트를 스크래핑하지 않습니다. 주문은 <a href="https://github.com/ccxt/ccxt" style="color:var(--accent)" rel="nofollow noopener">ccxt</a>로 넣기 때문에 주문 거래소는 코드 한 줄로 바꿀 수 있습니다.
            </div>

            <h2>봇이 하는 일</h2>
            <p>봇은 세 단계로 움직이고, 각 단계는 한국 거래소가 공지를 내는 방식에 맞춰져 있습니다.</p>
            <ol>
              <li><strong>수신</strong> — WebSocket 연결 하나로 업비트와 빗썸의 모든 공지를 받습니다. 티커는 한국어 제목에서 이미 추출되어 옵니다.</li>
              <li><strong>분류</strong> — <code>listingType</code>으로 분기합니다. <code>spot_listing</code>(신규 마켓 개설), <code>caution_released</code>(유의 종목 지정 해제), <code>spot_delisting</code>(거래지원 종료)입니다. 업비트 상장이면 어떤 마켓이 열리는지도 읽습니다.</li>
              <li><strong>실행</strong> — 주문 거래소에서 티커를 찾고, 위험 한도를 적용한 뒤 주문을 넣습니다. 드라이런 중에는 주문 내용을 출력만 합니다.</li>
            </ol>
            <p>한국 거래소용 봇을 따로 만드는 이유가 있습니다. 제목이 한국어이고, 공지 하나로 여러 토큰이 한꺼번에 열리며, 원화(KRW) 마켓 상장은 BTC나 USDT 마켓만 추가되는 상장과 성격이 다른 이벤트이고, 두 거래소 모두 이미 거래 중인 토큰에 유의 종목 제도를 운영합니다. 이 하나하나가 코드가 해야 할 일을 바꿉니다. 시장 배경은 <a href="https://cryptolisting.ws/ko/blog/upbit-listing-effect-kimchi-premium/" style="color:var(--accent)">업비트 상장 효과와 김치 프리미엄</a>, <a href="https://cryptolisting.ws/ko/blog/bithumb-vs-upbit-listing-strategy/" style="color:var(--accent)">빗썸 vs 업비트</a>를 참고하세요.</p>

            <h2>준비물</h2>
            <ul>
              <li><strong>API 키.</strong> 무료 등급이 두 가지 있습니다. <em>SpeedTrial</em>은 모든 이벤트를 +1&nbsp;ms 지연으로 전달하지만, 거래 가능한 이벤트에서는 티커와 제목을 가립니다. <em>FreeDelayed</em>는 티커와 제목 전체를 +240&nbsp;ms 지연으로 전달하며, 첫 달은 무료이고 이후에는 모든 거래소 포함 월 200 USDT입니다. 이 튜토리얼에는 FreeDelayed가 맞습니다. 봇이 실제 심볼을 보기 때문에 드라이런 기록이 현실적입니다. <a href="https://cryptolisting.ws/ko/pricing/" style="color:var(--accent)">요금제 및 등급</a>을 확인하세요. 키는 텔레그램으로 신청합니다.</li>
              <li><strong>Python 3.10 이상</strong>, <code>websockets</code> 라이브러리(버전 14 이상), <code>ccxt</code>.</li>
              <li><strong>주문 거래소의 API 키</strong> — 드라이런을 해제할 때만 필요합니다.</li>
            </ul>
            <div class="code-block">
                <pre>pip install "websockets>=14" ccxt</pre>
            </div>

            <h2>1단계 — 공지 WebSocket에 연결하기</h2>
            <p>업비트와 빗썸은 두 엔드포인트에서 전송됩니다. 서울의 <code>wss://kr.cryptolisting.ws</code>(업비트·빗썸)와 도쿄의 <code>wss://jp.cryptolisting.ws</code>(바이낸스·업비트·빗썸)입니다. 봇과 주문 거래소가 있는 곳에서 가까운 쪽을 고르세요. 바이낸스 공지도 매매한다면 세 거래소를 모두 전송하는 도쿄가 맞습니다. 같은 키가 두 곳 모두에서 작동하며, 요청 한도와 연결 수 제한은 엔드포인트별로 따로 계산됩니다. 인증은 핸드셰이크 때 <code>X-API-Key</code> 헤더 하나로 하고, URL 쿼리에 키를 넣으면 거부됩니다.</p>
            <div class="code-block">
                <pre><span class="t-cm"># websockets>=14</span>
<span class="t-kw">import</span> asyncio, json, websockets

API_KEY = <span class="t-str">"YOUR_KEY"</span>
FEED_URL = <span class="t-str">"wss://kr.cryptolisting.ws?cex=upbit,bithumb"</span>

<span class="t-kw">async def</span> <span class="t-fn">listen</span>():
    attempt = 0
    <span class="t-kw">while</span> <span class="t-kw">True</span>:
        <span class="t-kw">try</span>:
            <span class="t-kw">async with</span> websockets.connect(
                FEED_URL, additional_headers={<span class="t-str">"X-API-Key"</span>: API_KEY}
            ) <span class="t-kw">as</span> ws:
                attempt = 0
                <span class="t-kw">while</span> <span class="t-kw">True</span>:
                    <span class="t-cm"># heartbeat가 30초마다 오므로 60초 동안 아무것도 없으면 끊긴 연결</span>
                    raw = <span class="t-kw">await</span> asyncio.wait_for(ws.recv(), timeout=60)
                    <span class="t-kw">await</span> handle(json.loads(raw))
        <span class="t-kw">except</span> websockets.ConnectionClosed <span class="t-kw">as</span> e:
            reason = e.rcvd.reason <span class="t-kw">if</span> e.rcvd <span class="t-kw">else</span> <span class="t-str">""</span>
            <span class="t-kw">if</span> reason <span class="t-kw">in</span> (<span class="t-str">"key_expired"</span>, <span class="t-str">"key_invalidated"</span>):
                <span class="t-fn">print</span>(<span class="t-str">f"키 거부: {reason}"</span>)
                <span class="t-kw">return</span>
        <span class="t-kw">except</span> websockets.InvalidStatus <span class="t-kw">as</span> e:
            status = e.response.status_code
            <span class="t-kw">if</span> status <span class="t-kw">in</span> (401, 403):
                <span class="t-fn">print</span>(<span class="t-str">f"키 거부: HTTP {status}"</span>)
                <span class="t-kw">return</span>
            <span class="t-fn">print</span>(<span class="t-str">f"핸드셰이크 거부: HTTP {status}"</span>)   <span class="t-cm"># 429: 간격을 두고 재시도</span>
        <span class="t-kw">except</span> (asyncio.TimeoutError, OSError) <span class="t-kw">as</span> e:
            <span class="t-fn">print</span>(<span class="t-str">f"연결 끊김: {e!r}"</span>)
        <span class="t-kw">await</span> asyncio.sleep(<span class="t-fn">min</span>(2 ** attempt, 300))
        attempt += 1</pre>
            </div>
            <p>서버가 보내는 PING 프레임에는 라이브러리가 알아서 응답합니다. 라이브러리가 알아채지 못하는 것은 연결을 닫지 않고 사라진 서버입니다. 그래서 이 루프는 60초 동안 아무 메시지도 없으면 연결이 죽은 것으로 보고 다시 연결합니다. 핸드셰이크에서 키가 거부되거나(HTTP 401, 403), 세션 도중 키가 만료·폐기되면(<code>key_expired</code>, <code>key_invalidated</code>) 봇은 재연결을 반복하지 않고 멈춥니다. 그 밖의 끊김은 최대 5분까지 늘어나는 지수 백오프로 다시 시도합니다.</p>

            <h2>2단계 — 공지 메시지 읽기</h2>
            <p>모든 프레임은 <code>type</code> 필드가 있는 UTF-8 JSON입니다. 시장 이벤트는 <code>announcement</code>뿐입니다. <code>welcome</code>, <code>heartbeat</code>, <code>changelog</code>, <code>renewal_notice</code>, <code>test_announcement</code>, <code>error</code>는 시장 이벤트가 아니며, 새로운 타입이 언제든 추가될 수 있으니 모르는 타입은 무시하세요. 업비트 상장은 이런 형태로 옵니다.</p>
            <div class="code-block">
                <pre>{
  <span class="t-str">"type"</span>: <span class="t-str">"announcement"</span>,
  <span class="t-str">"title"</span>: <span class="t-str">"플루언트(BLEND) 신규 거래지원 안내 (KRW, BTC, USDT 마켓)"</span>,
  <span class="t-str">"ticker"</span>: <span class="t-str">"BLEND"</span>,
  <span class="t-str">"publisher"</span>: <span class="t-str">"upbit"</span>,
  <span class="t-str">"listingType"</span>: <span class="t-str">"spot_listing"</span>,
  <span class="t-str">"detectedTimestampUs"</span>: 1710345000005000,
  <span class="t-str">"dispatchTimestampUs"</span>: 1710345000006000,
  <span class="t-str">"abnormalDetectionLatency"</span>: <span class="t-kw">false</span>,
  <span class="t-str">"markets"</span>: <span class="t-str">"KRW,BTC,USDT"</span>
}</pre>
            </div>
            <p>빗썸 이벤트도 구조는 같고 <code>markets</code>만 없습니다. 제목은 한국어 그대로입니다. 예를 들어 원화 마켓 신규 상장이면 <code>셀로(CELO) 원화 마켓 추가</code> 같은 제목입니다. 하지만 직접 읽을 필요는 없습니다. <code>ticker</code>, <code>publisher</code>, <code>listingType</code>이 이미 추출되어 오기 때문입니다. 처리 코드를 튼튼하게 만드는 규칙은 세 가지입니다.</p>
            <ul>
              <li><strong>티커를 나누세요.</strong> 업비트는 여러 토큰을 묶어서 공지합니다. <code>BTC, USDT 마켓 신규 거래지원 안내 (CYS, ICNT, XAN, EDEN, AIOZ, ALLO)</code> 같은 공지는 <code>ticker: "CYS,ICNT,XAN,EDEN,AIOZ,ALLO"</code>를 담은 <em>하나의</em> 이벤트로 오고, <code>markets</code> 값도 묶음 전체에 하나입니다. 항상 <code>split(",")</code>을 하세요. 그러지 않으면 문자열 전체가 심볼로 거래소에 전송됩니다.</li>
              <li><strong>모르는 필드는 무시하세요.</strong> 새 필드는 예고 없이 추가될 수 있습니다. 필드가 하나 더 있다고 메시지를 버리면 안 됩니다.</li>
              <li><strong>제목은 교차 확인용으로 남겨 두세요.</strong> <code>title</code>은 항상 거래소 원문입니다. 각 티커가 제목에 들어 있는지 확인하면 추출 오류 하나에 무너지지 않습니다.</li>
            </ul>

            <h2>3단계 — 업비트 <code>markets</code> 필드 읽기</h2>
            <p>업비트는 세 가지 마켓, 즉 원화(KRW), BTC, USDT 마켓 중 하나 이상에 자산을 상장합니다. 원화 마켓이 열리는 상장은 BTC나 USDT 마켓만 추가되는 상장과 다른 이벤트이고, <code>markets</code>가 그 차이를 알려 줍니다. 이 필드는 업비트 <code>spot_listing</code> 이벤트에만 있고, 항상 <code>KRW</code>, <code>BTC</code>, <code>USDT</code>의 고정된 순서(가능한 값 7가지)로 오며, SpeedTrial을 포함한 모든 등급에 전달됩니다.</p>
            <p>가장 중요한 규칙은 이것입니다. <strong><code>markets</code>가 없다는 것은 "알 수 없음"이지, "마켓 없음"이 아닙니다.</strong> 이 필드는 공지 제목에서 도출되기 때문에, 낯선 문구가 나오면 틀린 값 대신 필드 자체가 빠집니다. 이벤트를 처리할지 말지가 아니라 주문 크기를 정하는 데 쓰세요.</p>
            <div class="code-block">
                <pre>BASE_SIZE_USDT = 50     <span class="t-cm"># 토큰당 주문 금액</span>
NON_KRW_FACTOR = 0.5    <span class="t-cm"># BTC/USDT 마켓만 열리는 상장에 대한 본인의 정책</span>

<span class="t-kw">def</span> <span class="t-fn">order_size</span>(msg):
    markets = msg.get(<span class="t-str">"markets"</span>)   <span class="t-cm"># 업비트 현물 상장에만 존재, 없으면 알 수 없음</span>
    <span class="t-kw">if</span> markets <span class="t-kw">is</span> <span class="t-kw">None</span> <span class="t-kw">or</span> <span class="t-str">"KRW"</span> <span class="t-kw">in</span> markets.split(<span class="t-str">","</span>):
        <span class="t-kw">return</span> BASE_SIZE_USDT
    <span class="t-kw">return</span> BASE_SIZE_USDT * NON_KRW_FACTOR</pre>
            </div>
            <p>이 계수는 본인의 기록을 보고 정할 설정값이지 권장값이 아닙니다. 빗썸 이벤트에는 <code>markets</code> 필드가 없습니다. 마켓은 제목에 적혀 있습니다(<code>원화 마켓</code>이 원화 마켓입니다).</p>

            <h2>4단계 — <code>caution_released</code>와 <code>spot_delisting</code> 처리하기</h2>
            <p>두 한국 거래소는 이미 거래 중인 토큰에 여러 단계의 유의 종목 제도를 운영합니다. 경고, 정식 지정(업비트 <code>유의 종목</code>, 빗썸 <code>투자유의종목</code>), 기간 연장을 거쳐, 지정 해제 또는 거래지원 종료(<code>거래지원 종료</code>)로 끝납니다. 피드는 매매 판단에 직결되는 두 단계를 전송합니다.</p>
            <ul>
              <li><code>caution_released</code> — 지정이 해제됨. 토큰에 긍정적인 신호로 읽히는 경우가 많습니다. <a href="https://cryptolisting.ws/ko/caution-released/" style="color:var(--accent)">유의 종목 지정 해제란</a>을 참고하세요.</li>
              <li><code>spot_delisting</code> — 거래지원 종료. 보유자는 정해진 기한 안에 매도하거나 출금해야 합니다.</li>
            </ul>
            <p>중간 단계는 전송하지 않습니다. 해제와 거래지원 종료를 함께 담은 공지는 <code>listingType</code>별로 나뉜 별도의 이벤트로 옵니다. 타입마다 처리 함수를 따로 두세요.</p>
            <div class="code-block">
                <pre><span class="t-kw">async def</span> <span class="t-fn">route</span>(msg):
    lt = msg[<span class="t-str">"listingType"</span>]
    tickers = [t <span class="t-kw">for</span> t <span class="t-kw">in</span> msg[<span class="t-str">"ticker"</span>].split(<span class="t-str">","</span>) <span class="t-kw">if</span> t]
    <span class="t-kw">if</span> <span class="t-kw">not</span> tickers:
        <span class="t-kw">return</span>                                   <span class="t-cm"># SpeedTrial: 티커 가림</span>
    <span class="t-kw">if</span> lt == <span class="t-str">"spot_listing"</span>:
        size = order_size(msg)
        <span class="t-kw">await</span> asyncio.gather(*(buy(t, size, msg) <span class="t-kw">for</span> t <span class="t-kw">in</span> tickers[:MAX_TOKENS_PER_EVENT]))
    <span class="t-kw">elif</span> lt == <span class="t-str">"caution_released"</span>:
        <span class="t-fn">print</span>(<span class="t-str">f"관심 목록: {msg['publisher']} 유의 종목 해제 {tickers}"</span>)
    <span class="t-kw">elif</span> lt == <span class="t-str">"spot_delisting"</span>:
        <span class="t-kw">await</span> asyncio.gather(*(reduce_exposure(t) <span class="t-kw">for</span> t <span class="t-kw">in</span> tickers))</pre>
            </div>
            <p>이 예제에서 유의 종목 해제는 관심 목록에만 올라갑니다. 매매하기 전에 본인의 기록으로 판단하세요. 거래지원 종료는 이미 보유한 현물만 줄이며, 봇이 그 토큰에 숏 포지션을 여는 일은 없습니다.</p>

            <h2>5단계 — 토큰이 이미 거래되는 곳 찾기</h2>
            <p>업비트나 빗썸이 상장하는 토큰은 그 전부터 다른 거래소에서 거래되던 경우가 많고, 그래서 한국 상장이 전 세계 가격을 움직일 수 있습니다. 봇은 이벤트가 오기 전에 주문 거래소에 해당 마켓이 있는지 알고 있어야 합니다. 시작할 때 거래소의 마켓 목록을 한 번 불러오고, 백그라운드에서 주기적으로 갱신하세요. 그러면 처리 함수 안에서 심볼을 찾는 일은 네트워크 호출이 아니라 딕셔너리 조회가 됩니다.</p>
            <div class="code-block">
                <pre><span class="t-kw">import</span> ccxt.async_support <span class="t-kw">as</span> ccxt

venue = ccxt.binance({<span class="t-str">"apiKey"</span>: <span class="t-str">"VENUE_KEY"</span>, <span class="t-str">"secret"</span>: <span class="t-str">"VENUE_SECRET"</span>})

<span class="t-kw">def</span> <span class="t-fn">resolve</span>(ticker):
    <span class="t-cm"># 현물 페어 먼저, 그다음 USDT 마진 무기한 선물</span>
    <span class="t-kw">for</span> symbol <span class="t-kw">in</span> (<span class="t-str">f"{ticker}/USDT"</span>, <span class="t-str">f"{ticker}/USDT:USDT"</span>):
        <span class="t-kw">if</span> symbol <span class="t-kw">in</span> venue.markets:
            <span class="t-kw">return</span> symbol
    <span class="t-kw">return</span> <span class="t-kw">None</span>

<span class="t-kw">async def</span> <span class="t-fn">refresh_markets</span>():
    <span class="t-kw">while</span> <span class="t-kw">True</span>:
        <span class="t-kw">await</span> asyncio.sleep(300)
        <span class="t-kw">await</span> venue.load_markets(reload=<span class="t-kw">True</span>)</pre>
            </div>
            <p>심볼이 거래소마다 항상 같지는 않습니다. 토큰 이름이 바뀌기도 하고, 어떤 무기한 선물은 <code>1000</code> 같은 접두어가 붙은 티커로 거래됩니다. <code>resolve</code>가 <code>None</code>을 돌려주면 그 토큰은 건너뛰세요. 심볼을 추측해서는 안 됩니다.</p>

            <h2>6단계 — 위험 한도와 FreeDelayed 드라이런</h2>
            <p>첫 실제 주문 전에 안전장치를 넣어 두세요.</p>
            <ul>
              <li><strong>기본값은 <code>DRY_RUN = True</code>.</strong> 봇은 보낼 주문을 출력만 합니다.</li>
              <li><strong>토큰당, 이벤트당 한도.</strong> 업비트의 묶음 공지 하나로 토큰 여섯 개가 한꺼번에 열리기도 합니다.</li>
              <li><strong>중복 제거</strong>는 <code>(publisher, listingType, ticker)</code> 기준으로 합니다. 재연결하거나 두 엔드포인트에 동시에 연결한 봇은 같은 이벤트를 두 번 볼 수 있습니다.</li>
              <li><strong><code>abnormalDetectionLatency: true</code>인 이벤트는 자동 매매에서 건너뛰세요.</strong> 메시지 자체는 유효하지만 평소의 타이밍 가정이 맞지 않습니다.</li>
              <li><strong><code>test_announcement</code>로는 절대 매매하지 마세요.</strong> <code>{"type":"test"}</code>를 보내면 가짜 <code>DUMMYTOKEN</code> 이벤트가 돌아오며, 연결 확인용일 뿐입니다.</li>
            </ul>
            <p>이 단계에는 FreeDelayed가 제격입니다. 유료 등급과 같은 형식으로 티커와 제목 전체를 +240&nbsp;ms 지연으로 전달합니다. 실제 업비트·빗썸 공지가 몇 주 쌓일 때까지 봇을 드라이런으로 돌린 뒤 기록을 읽어 보세요. 어떤 심볼을 얼마만큼 샀을지, 주문 거래소에 없어서 어떤 토큰을 건너뛰었는지가 남습니다. 그 기록을 믿을 수 있을 때 <code>DRY_RUN = False</code>로 바꾸고 유료 등급으로 옮기면 됩니다. Basic은 +20&nbsp;ms, Premium은 지연이 추가되지 않습니다.</p>

            <h2>전체 코드</h2>
            <p>150줄이 채 안 되는 봇 전체입니다. 키 두 개만 채우면 되고, 드라이런으로 시작합니다.</p>
            <div class="code-block">
                <pre><span class="t-cm"># 업비트·빗썸 상장 봇 — pip install "websockets>=14" ccxt</span>
<span class="t-kw">import</span> asyncio, json, websockets
<span class="t-kw">import</span> ccxt.async_support <span class="t-kw">as</span> ccxt

API_KEY = <span class="t-str">"YOUR_KEY"</span>
FEED_URL = <span class="t-str">"wss://kr.cryptolisting.ws?cex=upbit,bithumb"</span>
DRY_RUN = <span class="t-kw">True</span>
BASE_SIZE_USDT = 50
NON_KRW_FACTOR = 0.5
MAX_TOKENS_PER_EVENT = 3

venue = ccxt.binance({<span class="t-str">"apiKey"</span>: <span class="t-str">"VENUE_KEY"</span>, <span class="t-str">"secret"</span>: <span class="t-str">"VENUE_SECRET"</span>})
seen = <span class="t-fn">set</span>()

<span class="t-kw">def</span> <span class="t-fn">order_size</span>(msg):
    markets = msg.get(<span class="t-str">"markets"</span>)   <span class="t-cm"># 업비트 현물 상장에만 존재, 없으면 알 수 없음</span>
    <span class="t-kw">if</span> markets <span class="t-kw">is</span> <span class="t-kw">None</span> <span class="t-kw">or</span> <span class="t-str">"KRW"</span> <span class="t-kw">in</span> markets.split(<span class="t-str">","</span>):
        <span class="t-kw">return</span> BASE_SIZE_USDT
    <span class="t-kw">return</span> BASE_SIZE_USDT * NON_KRW_FACTOR

<span class="t-kw">def</span> <span class="t-fn">resolve</span>(ticker):
    <span class="t-kw">for</span> symbol <span class="t-kw">in</span> (<span class="t-str">f"{ticker}/USDT"</span>, <span class="t-str">f"{ticker}/USDT:USDT"</span>):
        <span class="t-kw">if</span> symbol <span class="t-kw">in</span> venue.markets:
            <span class="t-kw">return</span> symbol
    <span class="t-kw">return</span> <span class="t-kw">None</span>

<span class="t-kw">async def</span> <span class="t-fn">buy</span>(ticker, size_usdt, msg):
    symbol = resolve(ticker)
    <span class="t-kw">if</span> symbol <span class="t-kw">is</span> <span class="t-kw">None</span>:
        <span class="t-fn">print</span>(<span class="t-str">f"건너뜀 {ticker}: {venue.id}에 마켓 없음"</span>)
        <span class="t-kw">return</span>
    <span class="t-kw">try</span>:
        price = (<span class="t-kw">await</span> venue.fetch_ticker(symbol)).get(<span class="t-str">"last"</span>)
        <span class="t-kw">if</span> <span class="t-kw">not</span> price:
            <span class="t-fn">print</span>(<span class="t-str">f"건너뜀 {symbol}: 아직 체결가 없음"</span>)
            <span class="t-kw">return</span>
        amount = <span class="t-fn">float</span>(venue.amount_to_precision(symbol, size_usdt / price))
        <span class="t-kw">if</span> DRY_RUN:
            <span class="t-fn">print</span>(<span class="t-str">f"[드라이런] 매수 {amount} {symbol} (~{size_usdt} USDT), {msg['publisher']} 상장"</span>)
            <span class="t-kw">return</span>
        order = <span class="t-kw">await</span> venue.create_market_buy_order(symbol, amount)
        <span class="t-fn">print</span>(<span class="t-str">f"매수 완료 {symbol}: 주문 {order['id']}"</span>)
    <span class="t-kw">except</span> ccxt.BaseError <span class="t-kw">as</span> e:
        <span class="t-fn">print</span>(<span class="t-str">f"주문 실패 {symbol}: {e}"</span>)

<span class="t-kw">async def</span> <span class="t-fn">reduce_exposure</span>(ticker):
    symbol = <span class="t-str">f"{ticker}/USDT"</span>
    <span class="t-kw">if</span> symbol <span class="t-kw">not in</span> venue.markets:
        <span class="t-kw">return</span>
    <span class="t-kw">try</span>:
        held = (<span class="t-kw">await</span> venue.fetch_balance()).get(<span class="t-str">"free"</span>, {}).get(ticker) <span class="t-kw">or</span> 0
        <span class="t-kw">if</span> held <span class="t-kw">and</span> DRY_RUN:
            <span class="t-fn">print</span>(<span class="t-str">f"[드라이런] 매도 {held} {symbol}, 거래지원 종료 공지"</span>)
        <span class="t-kw">elif</span> held:
            <span class="t-kw">await</span> venue.create_market_sell_order(symbol, <span class="t-fn">float</span>(venue.amount_to_precision(symbol, held)))
    <span class="t-kw">except</span> ccxt.BaseError <span class="t-kw">as</span> e:
        <span class="t-fn">print</span>(<span class="t-str">f"축소 실패 {symbol}: {e}"</span>)

<span class="t-kw">async def</span> <span class="t-fn">route</span>(msg):
    lt = msg[<span class="t-str">"listingType"</span>]
    tickers = [t <span class="t-kw">for</span> t <span class="t-kw">in</span> msg[<span class="t-str">"ticker"</span>].split(<span class="t-str">","</span>) <span class="t-kw">if</span> t]
    tickers = [t <span class="t-kw">for</span> t <span class="t-kw">in</span> tickers <span class="t-kw">if</span> (msg[<span class="t-str">"publisher"</span>], lt, t) <span class="t-kw">not in</span> seen]
    seen.update((msg[<span class="t-str">"publisher"</span>], lt, t) <span class="t-kw">for</span> t <span class="t-kw">in</span> tickers)
    <span class="t-kw">if</span> <span class="t-kw">not</span> tickers:
        <span class="t-kw">return</span>                                   <span class="t-cm"># 중복이거나 SpeedTrial 가림</span>
    <span class="t-kw">if</span> lt == <span class="t-str">"spot_listing"</span>:
        size = order_size(msg)
        <span class="t-kw">await</span> asyncio.gather(*(buy(t, size, msg) <span class="t-kw">for</span> t <span class="t-kw">in</span> tickers[:MAX_TOKENS_PER_EVENT]))
    <span class="t-kw">elif</span> lt == <span class="t-str">"caution_released"</span>:
        <span class="t-fn">print</span>(<span class="t-str">f"관심 목록: {msg['publisher']} 유의 종목 해제 {tickers}"</span>)
    <span class="t-kw">elif</span> lt == <span class="t-str">"spot_delisting"</span>:
        <span class="t-kw">await</span> asyncio.gather(*(reduce_exposure(t) <span class="t-kw">for</span> t <span class="t-kw">in</span> tickers))

<span class="t-kw">async def</span> <span class="t-fn">handle</span>(msg):
    kind = msg.get(<span class="t-str">"type"</span>)
    <span class="t-kw">if</span> kind == <span class="t-str">"welcome"</span>:
        <span class="t-fn">print</span>(<span class="t-str">f"연결됨: tier={msg.get('tier')} cex={msg.get('allowedCex')}"</span>)
    <span class="t-kw">elif</span> kind == <span class="t-str">"renewal_notice"</span>:
        <span class="t-fn">print</span>(msg.get(<span class="t-str">"title"</span>))
    <span class="t-kw">elif</span> kind == <span class="t-str">"announcement"</span>:              <span class="t-cm"># test_announcement는 절대 매매하지 않음</span>
        <span class="t-kw">if</span> msg.get(<span class="t-str">"abnormalDetectionLatency"</span>):
            <span class="t-fn">print</span>(<span class="t-str">f"표시된 이벤트, 매매 안 함: {msg.get('title')}"</span>)
            <span class="t-kw">return</span>
        <span class="t-kw">await</span> route(msg)

<span class="t-kw">async def</span> <span class="t-fn">listen</span>():
    attempt = 0
    <span class="t-kw">while</span> <span class="t-kw">True</span>:
        <span class="t-kw">try</span>:
            <span class="t-kw">async with</span> websockets.connect(
                FEED_URL, additional_headers={<span class="t-str">"X-API-Key"</span>: API_KEY}
            ) <span class="t-kw">as</span> ws:
                attempt = 0
                <span class="t-kw">while</span> <span class="t-kw">True</span>:
                    raw = <span class="t-kw">await</span> asyncio.wait_for(ws.recv(), timeout=60)
                    <span class="t-kw">await</span> handle(json.loads(raw))
        <span class="t-kw">except</span> websockets.ConnectionClosed <span class="t-kw">as</span> e:
            reason = e.rcvd.reason <span class="t-kw">if</span> e.rcvd <span class="t-kw">else</span> <span class="t-str">""</span>
            <span class="t-kw">if</span> reason <span class="t-kw">in</span> (<span class="t-str">"key_expired"</span>, <span class="t-str">"key_invalidated"</span>):
                <span class="t-fn">print</span>(<span class="t-str">f"키 거부: {reason}"</span>)
                <span class="t-kw">return</span>
        <span class="t-kw">except</span> websockets.InvalidStatus <span class="t-kw">as</span> e:
            status = e.response.status_code
            <span class="t-kw">if</span> status <span class="t-kw">in</span> (401, 403):
                <span class="t-fn">print</span>(<span class="t-str">f"키 거부: HTTP {status}"</span>)
                <span class="t-kw">return</span>
            <span class="t-fn">print</span>(<span class="t-str">f"핸드셰이크 거부: HTTP {status}"</span>)   <span class="t-cm"># 429: 간격을 두고 재시도</span>
        <span class="t-kw">except</span> (asyncio.TimeoutError, OSError) <span class="t-kw">as</span> e:
            <span class="t-fn">print</span>(<span class="t-str">f"연결 끊김: {e!r}"</span>)
        <span class="t-kw">await</span> asyncio.sleep(<span class="t-fn">min</span>(2 ** attempt, 300))
        attempt += 1

<span class="t-kw">async def</span> <span class="t-fn">refresh_markets</span>():
    <span class="t-kw">while</span> <span class="t-kw">True</span>:
        <span class="t-kw">await</span> asyncio.sleep(300)
        <span class="t-kw">try</span>:
            <span class="t-kw">await</span> venue.load_markets(reload=<span class="t-kw">True</span>)
        <span class="t-kw">except</span> ccxt.BaseError <span class="t-kw">as</span> e:
            <span class="t-fn">print</span>(<span class="t-str">f"마켓 갱신 실패: {e}"</span>)

<span class="t-kw">async def</span> <span class="t-fn">main</span>():
    <span class="t-kw">await</span> venue.load_markets()
    refresher = asyncio.create_task(refresh_markets())
    <span class="t-kw">try</span>:
        <span class="t-kw">await</span> listen()
    <span class="t-kw">finally</span>:
        refresher.cancel()
        <span class="t-kw">await</span> venue.close()

asyncio.run(main())</pre>
            </div>
            <p>이 뼈대가 남겨 둔 부분은 직접 채워야 합니다. 거래소별 주문 규칙(최소 주문 금액, 수량 단위 — <code>amount_to_precision</code>은 반올림만 처리합니다), 여러 이벤트에 걸친 포지션 한도, 재시작 뒤에도 유지되는 <code>seen</code> 저장이 그것입니다. 프로토콜 전체는 <a href="https://cryptolisting.ws/docs/book/" style="color:var(--accent)">API 문서 (EN)</a>에 있습니다. <a href="https://cryptolisting.ws/docs/book/message-reference.html" style="color:var(--accent)">메시지 레퍼런스 (EN)</a>에는 모든 필드와 이벤트 타입이, <a href="https://cryptolisting.ws/docs/book/exchange-filtering.html" style="color:var(--accent)">거래소 필터링 (EN)</a>에는 <code>?cex=</code>와 키 권한의 관계가 정리되어 있습니다.</p>

            <h2>자주 묻는 질문</h2>
            <h3>업비트·빗썸 봇은 어느 엔드포인트에 연결해야 하나요?</h3>
            <p><code>wss://kr.cryptolisting.ws</code>(서울)는 업비트와 빗썸을, <code>wss://jp.cryptolisting.ws</code>(도쿄)는 바이낸스·업비트·빗썸을 전송합니다. 봇과 주문 거래소가 있는 곳에서 가까운 엔드포인트를 고르고, 바이낸스도 필요하면 도쿄를 쓰세요. 같은 API 키가 두 곳 모두에서 작동합니다.</p>
            <h3>한국어 공지 제목을 직접 파싱해야 하나요?</h3>
            <p>아니요. <code>ticker</code>, <code>publisher</code>, <code>listingType</code>이 이미 추출되어 오므로 봇은 이 필드로 분기하면 됩니다. 원문 한국어 제목은 <code>title</code>에 그대로 남아 있어 교차 확인에 쓸 수 있습니다.</p>
            <h3>유의 종목의 모든 단계가 피드로 오나요?</h3>
            <p>아니요. 매매 판단에 직결되는 두 단계, <code>caution_released</code>와 <code>spot_delisting</code>만 전송합니다. 중간 단계는 전송하지 않습니다.</p>
            <h3>빗썸 상장에도 <code>markets</code> 필드가 있나요?</h3>
            <p>아니요. <code>markets</code>는 업비트 현물 상장에만 있습니다. 필드가 없으면 "알 수 없음"이라는 뜻이며, 원화 마켓이 없다는 뜻이 결코 아닙니다.</p>
            <h3>이 봇을 무료로 만들고 돌려볼 수 있나요?</h3>
            <p>네. FreeDelayed(첫 달 무료, 이후 모든 거래소 포함 월 200 USDT)는 티커와 제목 전체를 +240&nbsp;ms 지연으로 전달하므로, 드라이런으로 봇 전체를 돌려보기에 충분합니다. SpeedTrial은 모든 이벤트를 전달하지만 거래 가능한 이벤트의 티커를 가립니다.</p>

            <p style="font-size:12px;color:var(--text-muted);margin-top:32px;padding-top:16px;border-top:1px solid var(--border)"><em>본 글은 정보 제공 목적의 기술 튜토리얼이며 투자 또는 매매 조언이 아닙니다. 자동 매매에는 상당한 위험이 따릅니다. CryptoListing.ws는 기술 데이터 피드 서비스입니다 — <a href="https://cryptolisting.ws/legal/" style="color:var(--text-muted);text-decoration:underline">법적 고지 (EN)</a>를 참조하십시오.</em></p>

            <h2 style="margin-top:48px">관련 글</h2>
            <ul style="list-style:none;padding:0">
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/blog/how-to-detect-new-crypto-listings/" style="color:var(--accent)">신규 상장 코인 아는 법</a> — 업비트·빗썸·바이낸스 상장 공지를 어디서, 어떻게 확인하는지.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/upbit-listing-alert/" style="color:var(--accent)">업비트 상장 알림</a>과 <a href="https://cryptolisting.ws/ko/bithumb-listing-alert/" style="color:var(--accent)">빗썸 상장 알림</a> — 거래소별로 피드가 전달하는 모든 이벤트.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/upbit-websocket/" style="color:var(--accent)">Upbit WebSocket (EN)</a>과 <a href="https://cryptolisting.ws/bithumb-websocket/" style="color:var(--accent)">Bithumb WebSocket (EN)</a> — 두 엔드포인트의 연결 정보.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/latest-listings/" style="color:var(--accent)">최근 상장 공지 목록</a> — 봇의 드라이런 기록과 대조해 볼 최근 업비트·빗썸 공지.</li>
            </ul>

            <div class="cta-card">
                <h3>무료 키로 한국 거래소 봇을 시작하세요</h3>
                <p>업비트·빗썸의 신규 상장, 유의 종목 지정 해제, 거래지원 종료 공지를 WebSocket으로, 구조화된 JSON으로 실시간 전달합니다. <a href="https://cryptolisting.ws/ko/pricing/" style="color:var(--accent);text-decoration:underline">요금제 및 등급</a>을 확인하세요 — FreeDelayed(첫 달 무료, 이후 월 200 USDT)는 현실적인 드라이런을 위해 티커 전체를 전달하고, 유료 등급은 지연을 줄입니다.</p>
                <a href="https://telegram.me/CLWfeed" class="cta-tg">
                    <svg viewBox="0 0 24 24"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>
                    텔레그램에서 시작하기
                </a>
            </div>]]></description>
    </item>
    <item>
      <title>업비트 상장 효과와 김치 프리미엄 완벽 해설</title>
      <link>https://cryptolisting.ws/ko/blog/upbit-listing-effect-kimchi-premium/</link>
      <guid isPermaLink="true">https://cryptolisting.ws/ko/blog/upbit-listing-effect-kimchi-premium/</guid>
      <pubDate>Sat, 18 Jul 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<nav class="crumb" aria-label="Breadcrumb" style="font-size:13px;color:var(--text-muted);margin-bottom:16px"><a href="https://cryptolisting.ws/ko/" style="color:var(--text-muted);text-decoration:none">홈</a> &nbsp;›&nbsp; <a href="https://cryptolisting.ws/ko/blog/" style="color:var(--text-muted);text-decoration:none">블로그</a> &nbsp;›&nbsp; <span>업비트 상장 효과와 김치 프리미엄</span></nav>
            <h1><span class="gradient">업비트</span> 상장 효과와 김치 프리미엄 완벽 해설</h1>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:8px;"><time datetime="2026-03-25">2026년 3월 25일</time></p>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:24px">최종 업데이트 <time datetime="2026-07-18">2026-07-18</time></p>

            <p class="lead">업비트 상장 공지는 암호화폐 전체에서 가장 폭발적인 가격 변동을 정기적으로 만들어냅니다. 김치 프리미엄과 한국 시장 특유의 역학을 이해하면 그 이유를 알 수 있습니다.</p>

            <h2>업비트 상장 효과란?</h2>
            <p>업비트는 한국을 지배하는 암호화폐 거래소로, 원화(KRW) 거래량의 대부분을 차지합니다. 업비트가 신규 코인 상장을 공지하면, 글로벌 가격에 미치는 영향은 이 거래소의 전 세계 시장 점유율에 비해 불균형적으로 큽니다. 업비트 상장 공지 이후 수 분 내에 토큰이 50~100% 이상 급등하는 사례가 알려져 있으며, 이는 다른 거래소 상장에 대한 일반적인 반응을 훨씬 뛰어넘습니다.</p>
            <p>그 이유는 한국 암호화폐 시장의 구조에 있습니다. 한국은 세계에서 가장 활발한 개인 투자자층을 보유한 나라 중 하나입니다. 한국 트레이더는 신규 상장 토큰에 집중적이고 확신에 찬 베팅을 하는 것으로 유명합니다. 업비트가 새로운 원화 거래쌍을 열면, 그 결과로 발생하는 수요 급증은 강렬하고, 집중적이며, 빠릅니다.</p>

            <h2>김치 프리미엄 해설</h2>
            <p>김치 프리미엄은 한국 거래소와 글로벌 거래소 간의 암호화폐 가격 차이를 말합니다. 한국 내외로 자금을 이동하는 데 대한 자본 통제와 규제 제약 때문에, 한국 시장과 국제 시장 간의 차익거래는 어렵습니다. 이로 인해 토큰이 한국 거래소에서 프리미엄이 붙어 거래되는 지속적인 가격 격차가 발생합니다.</p>
            <p>업비트가 신규 토큰을 상장하면, 해당 자산의 김치 프리미엄이 극적으로 치솟을 수 있습니다. 한국 트레이더가 업비트에서 가격을 끌어올리지만, 자본 통제로 인해 손쉬운 차익거래가 막혀 있어 프리미엄이 수 시간, 심지어 수 일간 유지될 수 있습니다. 한편 글로벌 가격도 상승하는데, 이는 시장이 균형을 찾아가는 과정에서 한국의 수요가 결국 모든 곳의 가격을 밀어 올릴 것을 국제 트레이더들이 알고 있기 때문입니다.</p>
            <p>이 메커니즘은 심리가 아니라 구조적인 것입니다. 한국 투자자들은 실명 은행 계좌 제도 하에서 <a href="https://cryptolisting.ws/ko/glossary/#krw-market" style="color:var(--accent)">원화 표시 거래쌍</a>을 통해 암호화폐를 거래하며, 국내외로 자본을 이동하는 것은 엄격히 규제됩니다. 일반적으로 가격 격차를 해소할 차익거래 — 해외에서 싸게 사서 한국에서 비싸게 팔고 그 차익을 본국으로 송금하는 것 — 가 이러한 통제에 부딪히기 때문에, <a href="https://cryptolisting.ws/ko/glossary/#kimchi-premium" style="color:var(--accent)">프리미엄</a>은 몇 초 만에 사라지지 않고 지속될 수 있습니다. 한국의 <a href="https://www.fsc.go.kr/eng/index" rel="noopener nofollow" target="_blank" style="color:var(--accent)">금융위원회</a>는 실명 계좌, 트래블 룰 보고, 더 엄격한 상장 심사 등 거래소 제도를 점진적으로 강화해 왔으며, 이는 역설적으로 그 효과를 심화시킵니다. 더 작고 벽으로 둘러싸인 집중된 개인 수요 풀이, 이를 흡수할 외부 공급이 적은 상태에서 신규 상장을 맞이하기 때문입니다.</p>

            <h2>업비트가 바이낸스보다 더 크게 펌프하는 이유</h2>
            <p><a href="https://cryptolisting.ws/blog/why-binance-listings-move-markets/" style="color:var(--accent)">바이낸스 상장 공지</a>도 시장을 크게 움직이지만, 업비트 상장은 종종 더 큰 비율의 상승을 만들어냅니다. 여기에는 몇 가지 요인이 작용합니다. 첫째, 업비트의 사용자층은 압도적으로 개인 투자자이며, 개인 트레이더는 신규 상장에서 더 공격적인 매수자가 되는 경향이 있습니다. 둘째, 원화 거래쌍 덕분에 한국 트레이더는 스테이블코인으로 먼저 환전할 필요 없이 법정화폐로 직접 매수할 수 있어 마찰이 줄어듭니다. 셋째, 자본 통제 장벽으로 인해 공급 측 반응(프리미엄에 매도하는 차익거래자)이 더 느리고 제한적입니다.</p>
            <p>집중된 개인 수요, 직접적인 법정화폐 접근, 그리고 제한된 차익거래의 조합은 독보적으로 강력한 상장 효과를 만들어냅니다. 여러 거래소를 모니터링하는 트레이더에게 업비트 상장 공지는 암호화폐 시장에서 가장 높은 알파를 지닌 이벤트 중 하나입니다.</p>

            <h2>업비트 상장을 활용하는 방법</h2>
            <p>이 전략은 개념적으로는 단순하지만 실행이 까다롭습니다. 업비트 상장 공지가 감지되면, 트레이더는 한국의 수요가 글로벌 가격에 완전히 전달되기 전에 (이미 상장되어 있는) 글로벌 거래소에서 해당 토큰을 매수합니다. 핵심 과제는 속도입니다. 공지와 가격 변동 대부분 사이의 창은 초 단위로 측정됩니다.</p>
            <p>업비트의 경우 수동 감지는 사실상 불가능한데, 공지가 한국어로 게시되기 때문입니다. 업비트 공지 페이지를 모니터링하고 있더라도, 한국어 공지를 읽어 티커 심볼을 추출하는 데 결정적인 몇 초가 추가됩니다. 자동 감지는 이 장벽을 완전히 제거합니다.</p>
            <p>저희 <a href="https://cryptolisting.ws/ko/upbit-listing-alert/" style="color:var(--accent)">업비트 상장 알림</a> 서비스는 업비트의 공지 채널을 모니터링하여, 파싱되고 구조화된 상장 공지를 실시간으로 전달합니다. 티커 심볼은 자동으로 추출·정규화되므로, 원본 공지의 언어와 관계없이 트레이딩 시스템이 즉시 대응할 수 있습니다.</p>

            <h2>2026년 한국 거래소 상장 알파</h2>
            <p>상장 효과는 지난 상승장의 유물이 아닙니다. 그 동인이 주기적이 아니라 구조적이기 때문에, 여전히 암호화폐에서 가장 오래 지속되는 구조적 엣지 중 하나로 남아 있습니다. 자본 통제, <a href="https://en.wikipedia.org/wiki/Upbit" rel="noopener nofollow" target="_blank" style="color:var(--accent)">업비트</a>와 <a href="https://en.wikipedia.org/wiki/Bithumb" rel="noopener nofollow" target="_blank" style="color:var(--accent)">빗썸</a>의 원화 거래쌍 집중, 그리고 유난히 활발한 개인 투자자 기반은 시장 상황에 따라 평균으로 회귀하지 않습니다. 2026년을 앞두고 달라진 것은 이 이벤트를 둘러싼 경쟁 환경입니다. 더 많은 자동화된 참여자가 한국 공지 게시판을 지켜보기 때문에, 개별 상장에서 첫 캔들의 절대적 크기는 더 불규칙해지고 반응 창은 2년 전보다 더 좁아졌습니다.</p>
            <p>그 압축은 두 가지를 보상합니다. 첫째, 커버리지입니다. 알파가 소수의 대형 펌프에 집중되기보다 더 많은 수의 작은 이벤트 — 현물 상장, <a href="https://cryptolisting.ws/blog/upbit-caution-delisting-alerts/" style="color:var(--accent)">유의 종목 지정 공지</a>, 그리고 거래소 간 후속 상장 — 에 분산되므로, 모든 공지 유형을 다루는 피드가 헤드라인 상장만 표시하는 피드를 능가합니다. 둘째, 지연 시간 관리입니다. 실행 가능한 창이 초 단위로 측정될 때, 한국어 공지를 손으로 읽는 것과 지속적인 연결을 통해 파싱·정규화된 이벤트를 받는 것의 차이는 움직임을 잡느냐 뒤쫓느냐의 차이입니다. 구조적 프리미엄은 여전히 수익을 내며, 2026년에 이를 포착하는 것은 어떤 토큰이 다음에 펌프할지 예측하는 문제가 아니라 폭과 속도의 문제입니다.</p>
            <p>이 움직임의 두 단계를 구분하는 것도 중요합니다. 업비트 쪽 급등 — 프리미엄 그 자체 — 은 바로 그것을 만들어내는 자본 통제 때문에 외국인 트레이더에게는 대부분 포착 불가능합니다. 업비트에서 매수해 그 수익을 본국으로 송금하는 것이 쉽지 않기 때문입니다. 포착 가능한 것은 토큰이 이미 거래되고 있고 한국의 수요가 완전히 도달하기 전에 상방 압력을 예고하는 글로벌 거래소에서의 <em>파급</em> 움직임입니다. 그래서 실행 가능한 전략은 결코 "김치 프리미엄을 직접 거래하는 것"이 아니라, "업비트 상장 공지를 글로벌 매수세의 가장 이르고 신뢰할 수 있는 신호로 읽고", 시장의 나머지가 공지 해석을 마치기 전에 대응하는 것입니다.</p>

            <h2>한국 거래소를 함께 모니터링하기</h2>
            <p>업비트와 <a href="https://cryptolisting.ws/ko/blog/bithumb-vs-upbit-listing-strategy/" style="color:var(--accent)">빗썸</a>은 때때로 비슷한 시기에 같은 토큰을 상장합니다. 두 한국 거래소를 모두 모니터링하면 한국 시장 수요에 대한 더 완전한 그림을 얻을 수 있습니다. 두 거래소가 같은 토큰의 상장을 공지하면 가격 영향이 배가됩니다. 저희 플랫폼에서는 단일 WebSocket 연결을 통해 <a href="https://cryptolisting.ws/ko/upbit-listing-alert/" style="color:var(--accent)">업비트</a>와 <a href="https://cryptolisting.ws/ko/bithumb-listing-alert/" style="color:var(--accent)">빗썸 상장 알림</a>을 모두 구독할 수 있습니다.</p>
            <p>한국에서 봇을 운영하는 트레이더를 위해, 저희는 <code>wss://kr.cryptolisting.ws</code>에서 전용 <strong>서울 리전 엔드포인트</strong>를 운영하며, 이는 AWS 서울에서 업비트와 빗썸 공지를 직접 전송합니다. 이는 한국 거래소 공지의 감지 측에서 발생하는 서울 → 도쿄 네트워크 홉을 제거하므로, 이 엔드포인트에 연결하는 한국 기반 봇은 업비트와 빗썸 상장 알림을 <strong>엔드투엔드로 초고속</strong>으로 수신합니다 — 김치 프리미엄 기회 전체가 첫 몇 초 안에 존재할 때 큰 의미가 있습니다. 바이낸스 상장은 저희 도쿄 엔드포인트 <code>wss://jp.cryptolisting.ws</code>에서 전송되며, 동일한 API 키가 두 엔드포인트 모두에서 인증됩니다.</p>

            <p style="font-size:12px;color:var(--text-muted);margin-top:32px;padding-top:16px;border-top:1px solid var(--border)"><em>본 글은 정보 제공 목적으로만 작성되었으며 투자 조언이 아닙니다. CryptoListing.ws는 기술 데이터 피드 서비스입니다 — <a href="https://cryptolisting.ws/legal/" style="color:var(--text-muted);text-decoration:underline">법적 고지</a>를 참조하십시오.</em></p>

            <h2 style="margin-top:48px">관련 글</h2>
            <ul style="list-style:none;padding:0">
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/blog/bithumb-vs-upbit-listing-strategy/" style="color:var(--accent)">빗썸 vs 업비트: 한국 거래소 상장 공지 전략</a> — 두 최대 한국 거래소를 비교하고 양쪽을 모니터링하는 방법.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/blog/seoul-endpoint-launch/" style="color:var(--accent)">신규: 업비트 공지를 위한 서울 엔드포인트</a> — 한국 기반 봇을 위한 전용 AWS 서울 엔드포인트.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/blog/why-binance-listings-move-markets/" style="color:var(--accent)">바이낸스 상장 공지가 시장을 움직이는 이유</a> — 세계 최대 거래소에서의 공지 효과.</li>
            </ul>

            <div class="cta-card">
                <h3>업비트 상장 알림을 즉시 받아보세요</h3>
                <p>파싱된 티커 심볼과 함께 실시간 업비트 상장 공지를 WebSocket API로 전달합니다. <a href="https://cryptolisting.ws/ko/pricing/" style="color:var(--accent);text-decoration:underline">요금제 및 등급</a>을 확인하세요 — 무료 SpeedTrial 키 제공, 그리고 FreeDelayed(전체 피드, +240ms; 첫 달 무료, 이후 월 200 USDT).</p>
                <a href="https://telegram.me/CLWfeed" class="cta-tg">
                    <svg viewBox="0 0 24 24"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>
                    텔레그램에서 시작하기
                </a>
            </div>]]></description>
    </item>
    <item>
      <title>빗썸 vs 업비트: 한국 거래소 상장 공지 전략</title>
      <link>https://cryptolisting.ws/ko/blog/bithumb-vs-upbit-listing-strategy/</link>
      <guid isPermaLink="true">https://cryptolisting.ws/ko/blog/bithumb-vs-upbit-listing-strategy/</guid>
      <pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[<nav class="crumb" aria-label="Breadcrumb" style="font-size:13px;color:var(--text-muted);margin-bottom:16px"><a href="https://cryptolisting.ws/ko/" style="color:var(--text-muted);text-decoration:none">홈</a> &nbsp;›&nbsp; <a href="https://cryptolisting.ws/ko/blog/" style="color:var(--text-muted);text-decoration:none">블로그</a> &nbsp;›&nbsp; <span>빗썸 vs 업비트 상장 전략</span></nav>
            <h1><span class="gradient">빗썸 vs 업비트</span>: 한국 거래소 상장 전략</h1>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:8px;"><time datetime="2026-04-05">2026년 4월 5일</time></p>
            <p style="font-size:13px;color:var(--text-muted);margin-bottom:24px">최종 업데이트 <time datetime="2026-07-18">2026-07-18</time></p>

            <p class="lead">한국의 두 최대 거래소는 모두 상당한 상장 알파를 만들어내지만, 운영 방식이 다릅니다. 빗썸과 업비트 상장 공지의 역학을 이해하는 것은 모든 한국 거래소 상장 전략에 필수적입니다.</p>

            <h2>한국 거래소 지형</h2>
            <p>한국은 유난히 집중된 암호화폐 거래소 시장을 가지고 있습니다. 업비트가 원화 거래량의 대부분을 차지하며 지배적이고, 빗썸이 강력한 2위를 유지합니다. 이 두 거래소를 합치면 한국 암호화폐 거래의 거의 전부를 차지합니다. 두 거래소 모두 원화에 대해 토큰을 상장하며, 신규 상장 공지에 공격적으로 반응하는 활발한 개인 사용자층을 보유하고 있습니다.</p>
            <p>글로벌 트레이더에게 한국 거래소 상장이 특히 가치 있는 이유는 <a href="https://cryptolisting.ws/ko/blog/upbit-listing-effect-kimchi-premium/" style="color:var(--accent)">김치 프리미엄 효과</a> 때문입니다. 자본 통제가 한국 시장과 국제 시장 간의 차익거래를 제한하므로, 한국의 상장 수요는 로컬에서 흡수되기보다 글로벌 가격을 밀어 올리는 경향이 있습니다.</p>

            <h2>어느 거래소가 먼저 상장하는가?</h2>
            <p>한 거래소가 항상 다른 거래소보다 먼저 토큰을 상장한다는 일관된 패턴은 없습니다. 때로는 업비트가 빗썸보다 며칠 또는 몇 주 앞서 신규 상장을 공지합니다. 다른 때에는 빗썸이 먼저 상장합니다. 가끔은 두 거래소가 몇 시간 이내에 같은 토큰을 공지하기도 합니다.</p>
            <p>이러한 예측 불가능성은 사실 두 거래소를 모두 모니터링하는 트레이더에게는 장점입니다. 빗썸이 업비트가 아직 상장하지 않은 토큰을 상장하면, 이는 업비트 상장이 뒤따를 수 있다는 신호가 될 수 있습니다. 그 반대도 마찬가지입니다. 이중 모니터링은 거래 가능한 이벤트의 수를 늘리고, 다른 거래소의 잠재적 미래 상장에 대한 조기 신호를 제공합니다.</p>

            <h2>거래량과 가격 영향의 차이</h2>
            <p>업비트 상장은 일반적으로 빗썸 상장보다 더 크고 더 지속적인 가격 변동을 만들어냅니다. 이는 업비트의 더 큰 사용자층과 더 높은 거래량의 직접적인 결과입니다. 업비트가 새로운 원화 거래쌍을 열면, 거래량 급증이 막대하고 글로벌 시장에 대한 가격 영향이 상당합니다.</p>
            <p>빗썸 상장은 더 작지만 여전히 상당한 반응을 만들어냅니다. 일반적인 빗썸 상장 공지는 글로벌 거래소에서 10~30%의 가격 상승을 이끌며, 이는 비슷한 업비트 상장의 30~80%와 비교됩니다. 그러나 빗썸 상장 공지는 또한 덜 널리 모니터링되므로, 자동화된 트레이더 간 경쟁이 잠재적으로 적을 수 있습니다. 더 작은 변동 폭은 덜 붐비는 경쟁 환경으로 부분적으로 상쇄됩니다.</p>
            <p>실행 측면의 미묘함은 이러한 거래량 차이에서 비롯됩니다. 업비트의 더 깊은 <a href="https://cryptolisting.ws/ko/glossary/#krw-market" style="color:var(--accent)">원화 호가창</a>은 프리미엄이 압축되기 전에 더 큰 규모의 글로벌 헤지를 흡수할 수 있는 반면, 빗썸의 더 얇은 호가창은 주어진 주문 규모에 대해 때때로 비율상 더 크게 갭이 벌어집니다 — 항상 깔끔하게 거래하기 쉽지만은 않은, 더 작은 헤드라인 변동입니다. 실용적인 교훈은 두 거래소가 대체재가 아니라 보완재라는 것입니다. 업비트는 크기와 깊이를, 빗썸은 덜 붐비는 경쟁 환경과 조기 교차 상장 신호를 제공합니다.</p>

            <h2>공지 형식의 차이</h2>
            <p>두 거래소 모두 한국어로 공지를 게시하며, 이는 한국어를 못하는 트레이더에게 자연스러운 장벽을 만듭니다. 공지 형식은 두 거래소 간에 다릅니다. 업비트는 비교적 일관된 형식의 구조화된 공지 게시판을 사용합니다. 빗썸의 공지 형식은 변형이 더 많아 자동 파싱을 더 어렵게 만듭니다.</p>
            <p>이것이 사전 파싱된 알림 피드가 중요한 이유 중 하나입니다. 저희 서비스는 두 거래소의 한국어 공지를 처리하여, 원본 공지 형식과 관계없이 정규화된 티커 심볼과 함께 깔끔하고 구조화된 JSON을 전달합니다. 상장이 <a href="https://cryptolisting.ws/ko/bithumb-listing-alert/" style="color:var(--accent)">빗썸</a>에서 왔든 <a href="https://cryptolisting.ws/ko/upbit-listing-alert/" style="color:var(--accent)">업비트</a>에서 왔든 출력은 동일합니다.</p>

            <h2>이중 거래소 모니터링 전략</h2>
            <p>한국 거래소 상장에 대한 최적의 접근법은 빗썸과 업비트를 동시에 모니터링하는 것입니다. 그 이유는 다음과 같습니다:</p>
            <ul style="color:var(--text-muted);margin:16px 0 16px 24px;font-size:15px;line-height:2">
                <li><strong>더 많은 이벤트</strong> — 각 거래소는 서로 다른 시점에 서로 다른 토큰을 상장하여 기회 집합을 두 배로 늘립니다</li>
                <li><strong>거래소 간 신호</strong> — 한 거래소의 상장은 종종 다른 거래소의 미래 상장을 예고합니다</li>
                <li><strong>복합 효과</strong> — 두 거래소가 같은 토큰을 비슷한 시기에 상장하면 결합된 수요가 가격 영향을 증폭시킵니다</li>
                <li><strong>리스크 분산</strong> — 단일 거래소의 상장에 의존하면 그 거래소의 상장 일정에 노출이 집중됩니다</li>
            </ul>
            <p>CryptoListing.ws를 사용하면 두 거래소를 모니터링하는 데 추가 인프라가 필요하지 않습니다. <code>?cex=bithumb,upbit</code>가 포함된 단일 WebSocket 연결이 두 거래소의 상장 공지를 실시간으로 전달합니다. 글로벌 커버리지를 위해 같은 연결에 <a href="https://cryptolisting.ws/blog/why-binance-listings-move-markets/" style="color:var(--accent)">바이낸스</a>를 추가할 수도 있습니다.</p>

            <h2>거래 타이밍</h2>
            <p>한국 거래소 상장은 한국 영업시간(KST/UTC+9)에 발생하는 경향이 있지만, 이것이 절대적인 규칙은 아닙니다. 빗썸은 표준 시간 외에 상장 공지를 게시한 것으로 알려져 있습니다. 자동화된 시스템을 갖추면 언제 이벤트가 발생하든, 새벽 3시에 깨어 화면을 지켜볼 필요 없이 이를 포착할 수 있습니다.</p>
            <p>실행 창은 다른 거래소와 유사합니다. 공지 후 첫 몇 초에 알파의 대부분이 담겨 있습니다. 감지 방법과 지연 시간에 대한 자세한 비교는 <a href="https://cryptolisting.ws/blog/how-to-detect-new-crypto-listings/" style="color:var(--accent)">실시간으로 신규 암호화폐 상장을 감지하는 방법</a>에 대한 가이드를 참조하십시오.</p>
            <p>한국 거래소 공지에 특유한 지연 시간 참고 사항이 하나 있습니다. 그 소스 서버가 서울에 있기 때문에, 도쿄의 디스패처는 감지 측에서 불가피한 서울 → 도쿄 네트워크 홉을 추가합니다. 그 홉을 없애기 위해, 저희는 AWS 서울에 <code>wss://kr.cryptolisting.ws</code>라는 두 번째 엔드포인트를 운영합니다 — 여기에 연결하는 한국 기반 봇은 업비트와 빗썸 알림을 모두 엔드투엔드로 초고속 수신합니다. 바이낸스 상장은 저희 도쿄 엔드포인트 <code>wss://jp.cryptolisting.ws</code>에서 전송되므로, 세 거래소를 모두 커버하는 단일 도쿄 기반 봇이 가장 간단한 구성입니다. 반면 두 한국 거래소 중 어느 쪽을 거래하든 한국 기반 봇은 서울 엔드포인트에서 최대 엣지를 얻습니다.</p>

            <h2>2026년 한국 거래소 상장 알파</h2>
            <p>업비트와 빗썸을 두 개의 개별 피드가 아니라 하나의 기회 표면으로 다루십시오. 한국 상장 뒤에 있는 구조적 엣지 — <a href="https://cryptolisting.ws/ko/glossary/#krw-market" style="color:var(--accent)">원화 거래쌍</a> 집중, 차익거래를 늦추는 자본 통제, 그리고 밀집된 개인 투자자 기반 — 는 두 거래소 모두 위에 얹혀 있으며, 두 거래소는 상호작용합니다. <a href="https://en.wikipedia.org/wiki/Upbit" rel="noopener nofollow" target="_blank" style="color:var(--accent)">업비트</a>가 아직 대응하지 않은 <a href="https://en.wikipedia.org/wiki/Bithumb" rel="noopener nofollow" target="_blank" style="color:var(--accent)">빗썸</a> 상장은 그 자체로 신호입니다. 한 거래소에서 유의 종목으로 지정된 토큰은 종종 다른 거래소의 주목을 끕니다. 이 쌍을 함께 읽는 것 — 두 거래소에 걸친 상장, 유의 종목 지정, 그리고 상장 폐지 — 이 소수의 헤드라인 펌프를 거래 가능한 이벤트의 연속적인 흐름으로 바꾸는 것입니다.</p>
            <p>2026년에 달라진 것은 메커니즘이 아니라 경쟁입니다. 더 많은 자동화된 참여자가 두 공지 게시판을 모두 지켜보므로, 개별 상장에서의 첫 움직임은 2년 전보다 더 좁고 노이즈가 많습니다. 그 대응은 예측이 아니라 폭과 속도입니다. 대부분의 감시자가 무시하는 <a href="https://cryptolisting.ws/blog/upbit-caution-delisting-alerts/" style="color:var(--accent)">유의 종목 및 상장 폐지 라이프사이클</a>을 포함하여 두 거래소의 모든 공지 유형을 커버하고, 한국어 공지를 손으로 번역하는 동안이 아니라 게시되는 즉시 파싱·정규화된 이벤트에 대응하십시오. 한국 <a href="https://www.fsc.go.kr/eng/index" rel="noopener nofollow" target="_blank" style="color:var(--accent)">금융위원회</a>가 설정한 규제 배경은 벽으로 둘러싸인 시장의 프리미엄을 그대로 유지합니다. 실용적인 질문은 단지 당신의 시스템이 두 거래소를 동시에 보고 충분히 빠르게 반응하는가입니다.</p>
            <p>2026년에 이를 중심으로 시스템을 구축하는 데스크에게 운영상의 함의는 구체적입니다. 두 거래소를 하나의 이벤트 스트림으로 정규화하고, 라우팅이 단순하게 유지되도록 모든 메시지에 <code>publisher</code> 태그를 지정하며, 유의 종목 및 상장 폐지 공지를 걸러낼 노이즈가 아니라 일급 신호로 취급하십시오. 대부분의 참여자가 충분히 다루지 않는 거래소 — 빗썸 상장과 한국의 전체 리스크 라이프사이클 — 이야말로 경쟁이 가장 얇고 한계 엣지가 가장 큰 곳입니다.</p>

            <p style="font-size:12px;color:var(--text-muted);margin-top:32px;padding-top:16px;border-top:1px solid var(--border)"><em>본 글은 정보 제공 목적으로만 작성되었으며 투자 조언이 아닙니다. CryptoListing.ws는 기술 데이터 피드 서비스입니다 — <a href="https://cryptolisting.ws/legal/" style="color:var(--text-muted);text-decoration:underline">법적 고지</a>를 참조하십시오.</em></p>

            <h2 style="margin-top:48px">관련 글</h2>
            <ul style="list-style:none;padding:0">
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/ko/blog/upbit-listing-effect-kimchi-premium/" style="color:var(--accent)">업비트 상장 효과와 김치 프리미엄 완벽 해설</a> — 업비트 상장이 암호화폐에서 가장 큰 펌프를 만들어내는 이유.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/blog/seoul-endpoint-launch/" style="color:var(--accent)">신규: 업비트 공지를 위한 서울 엔드포인트</a> — 한국 기반 봇을 위한 전용 AWS 서울 엔드포인트.</li>
              <li style="margin-bottom:8px"><a href="https://cryptolisting.ws/blog/how-to-detect-new-crypto-listings/" style="color:var(--accent)">실시간으로 신규 암호화폐 상장 공지를 감지하는 방법</a> — 수동부터 WebSocket까지 감지 방법 비교.</li>
            </ul>

            <div class="cta-card">
                <h3>빗썸과 업비트 상장 모니터링</h3>
                <p>단일 WebSocket 연결을 통해 두 한국 거래소의 실시간 상장 공지를 받아보세요. <a href="https://cryptolisting.ws/ko/pricing/" style="color:var(--accent);text-decoration:underline">요금제 및 등급</a>을 확인하세요 — 무료 SpeedTrial 키 제공, 그리고 FreeDelayed(전체 피드, +240ms; 첫 달 무료, 이후 월 200 USDT).</p>
                <a href="https://telegram.me/CLWfeed" class="cta-tg">
                    <svg viewBox="0 0 24 24"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>
                    텔레그램에서 시작하기
                </a>
            </div>]]></description>
    </item>
  </channel>
</rss>
