차트를 3시간 뒤로 돌려 놓고 1분봉을 세어 보면 종목마다 개수가 다릅니다. 업비트 공개 캔들 창구는 체결이 한 건도 없던 분의 봉을 아예 만들지 않고 응답에도 넣지 않기 때문입니다.
그래서 업비트 원화마켓 288종을 전수로 받아 세었습니다. 2026년 9월 14일 오전 9시부터 11시 59분까지 180분 창에서 있을 수 있는 1분봉 자리는 288종 곱하기 180분으로 51,840개인데, 실제로 응답에 들어 있던 봉은 28,895개였습니다. 비율로는 55.7%이고, 180분 내내 한 분도 안 빠진 종목은 18종이었습니다.
같은 180분을 코인원 공개 차트 창구로 받으면 정반대입니다. 양쪽에 다 있는 199종이 전부 180행을 빠짐없이 돌려줬습니다. 다만 그 180행 가운데 실제 체결이 있던 분은 2,405분이고 비율로는 6.7%입니다. 나머지는 직전 행의 종가를 그대로 옮겨 적고 거래량 칸만 0으로 채운 행입니다.
먼저 이 글이 재는 자리를 못박아 두겠습니다. 인증 헤더도 API 키도 한 번도 붙이지 않고, 업비트와 코인원의 공개 창구를 2026년 9월 14일 낮 12시 6분부터 12시 20분 사이에 부르고 받은 값입니다. 시각은 전부 한국 기준입니다. 가격 전망도 김프 계산도 하지 않습니다. 매매 권유가 아닙니다.
![]()
이 글이 재지 않는 것부터 갈라 둡니다
같은 업비트 공개 창구를 다루는 글이 여럿이라 각을 먼저 갈라 두겠습니다.
이 글이 재는 것은 캔들 응답 안에 빈 분이 들어 있는지 하나뿐입니다. 거래소가 어떤 종목을 어떤 기준으로 분류하고 어떤 표시를 붙이는지에 대해서는 한 줄도 말하지 않습니다. 그 이야기는 이 글과 재는 대상 자체가 다르고, 응답에서 읽는 자리도 다릅니다.
8월 24일에 쓴 네 거래소의 등락률 기준 시각을 같은 순간에 맞대 본 글이 있습니다. 그 글은 마지막에 코인원에는 별도의 캔들 조회 창구가 있는데 이 글은 그것을 열지 않았다고 스스로 적어 두었습니다. 이 글이 그 창구를 열었습니다. 다만 그 글이 다루는 하루의 경계 시각 이야기는 여기서 한 문장도 하지 않습니다. 여기서 재는 것은 경계가 아니라 빈 자리입니다.
캔들이라는 화면 자체가 처음이시라면 코인 캔들 차트 보는 법을 먼저 보셔도 좋습니다. 그 글은 봉 하나를 읽는 법이고, 이 글은 그 봉이 있어야 할 자리에 없는 경우를 셉니다. 같은 업비트 공개 창구를 전수로 세어 본 다른 축으로는 업비트 호가창에 지금은 낼 수 없는 가격이 남아 있다는 글이 있습니다. 그쪽은 가격 눈금 이야기이고 이쪽은 봉의 유무입니다.
무엇을 언제 불렀는지부터 적습니다
숫자보다 재료를 먼저 밝혀 두겠습니다. 파이썬 표준 라이브러리로 인증 없이 받았고, 업비트 공식 문서가 안내한 호출 간격 아래로 눌러 불렀습니다. 288종 전수 2회와 199종 1회를 포함한 모든 호출에서 200이 아닌 응답은 0건이었습니다.
| 거래소 | 창구 | 받은 것 |
|---|---|---|
| 업비트 | v1/market/all?isDetails=true | 전체 853 마켓 중 원화마켓 288종 |
| 업비트 | v1/candles/minutes/1 (to 지정, count 180) | 288종 전수, 오전 창 |
| 업비트 | v1/candles/minutes/1 (to 지정, count 180) | 288종 전수, 새벽 창 |
| 업비트 | v1/candles/minutes/1?count=200 | 9종목, 200개가 덮는 시간 |
| 업비트 | v1/trades/ticks?count=200 | 4종목, 체결과 봉 대조 |
| 업비트 | v1/candles/minutes/60 · v1/candles/days | 봉 단위를 바꿔서 확인 |
| 코인원 | public/v2/markets/KRW | 원화마켓 364종 |
| 코인원 | public/v2/chart/KRW/심볼?interval=1m&size=200 | 364종 전수 |
| 코인원 | 같은 창구에 timestamp 지정, size 180 | 업비트와 겹치는 199종 |
업비트 원화마켓은 288종이고 코인원 원화마켓은 364종이며 심볼이 양쪽에 다 있는 것이 199종입니다. 이 글에서 199라는 숫자는 오로지 대조 표본의 크기일 뿐입니다. 어느 거래소에 무엇이 단독으로 상장돼 있는지는 이 글이 다루지 않습니다.
코인원 쪽 구간을 업비트와 똑같이 맞추기 위해 마지막 캔들의 타임스탬프를 1789354740000으로 지정했습니다. 이 값은 한국 시각으로 2026년 9월 14일 오전 11시 59분 0초입니다.
업비트 1분봉 데이터는 180개를 요청해도 180분이 아닙니다
여기서 처음 넘어졌으므로 먼저 적어 두겠습니다. 288종 전부가 180행을 정확히 돌려줬습니다. 요청한 개수와 받은 개수가 같으니 처음 세었을 때는 빠진 봉이 없다는 엉뚱한 결론이 나왔습니다.
틀린 곳은 개수 파라미터를 읽는 방식이었습니다. 그 값은 몇 분어치를 달라는 뜻이 아니라 존재하는 봉을 몇 개 달라는 뜻입니다. 180개를 요청하면 빈 분을 건너뛰면서 과거로 거슬러 올라가 봉 180개를 채워 옵니다. 그래서 응답의 행 수만 세면 결측이 보이지 않고, 응답에 실린 시각 목록을 1분 간격과 맞대야 비로소 보입니다.
시각으로 자른 뒤 숫자는 이렇게 나왔습니다.
| 항목 | 값 |
|---|---|
| 업비트 전체 마켓 | 853 |
| 원화마켓 | 288종 |
| 이 180분에 있을 수 있는 1분봉 자리 | 51,840 |
| 실제로 응답에 들어 있던 봉 | 28,895개 (55.7%) |
| 응답에 아예 없던 분 | 22,945 |
| 180분 내내 봉이 하나도 안 빠진 종목 | 18종 |
| 종목당 봉 개수 중앙값 | 95 |
| 종목당 봉 개수 최솟값 | 2 (유에스디이) |
288종 전부에서 응답에 들어온 가장 오래된 봉이 오전 9시 이전이었습니다. 그러니까 창 바깥까지 충분히 거슬러 올라간 응답이고, 위 표의 봉 개수는 표본이 아니라 288종 전수의 정확값입니다.
종목별로 어떻게 흩어져 있는지도 함께 보셔야 합니다. 평균 한 줄로는 모양이 안 보입니다.
| 180분 중 봉이 있던 분 | 종목 수 |
|---|---|
| 180 (하나도 안 빠짐) | 18 |
| 150 이상 179 이하 | 40 |
| 120 이상 149 이하 | 39 |
| 90 이상 119 이하 | 59 |
| 60 이상 89 이하 | 75 |
| 30 이상 59 이하 | 42 |
| 10 이상 29 이하 | 13 |
| 9 이하 | 2 |
전부 더하면 288입니다. 가장 두꺼운 구간이 180분 중 60분에서 89분 사이이고 여기에 75종이 몰려 있습니다. 중앙값이 95라는 말은 절반 이상의 종목에서 3시간 중 1시간 넘게 봉이 비어 있었다는 뜻입니다.
180분 내내 한 분도 안 빠진 18종은 이렇습니다. ARK(아크) · B3(비쓰리) · BTC(비트코인) · CVC(시빅) · ETH(이더리움) · FIL(파일코인) · FLOCK(플록) · LA(라그랑주) · LSK(리스크) · MTL(메탈) · POWR(파워렛저) · PUNDIX(펀디엑스) · SOL(솔라나) · STEEM(스팀) · STORJ(스토리지) · USDT(테더) · VTHO(비토르토큰) · XRP(엑스알피).
이 18종을 거래가 활발한 종목이라고 읽으시면 안 됩니다. 확인된 것은 이 180분 동안 1분마다 최소 한 건은 체결이 있었다는 데까지입니다. 체결 금액과 거래대금은 이 글이 재지 않았습니다.
반대쪽 끝은 이렇습니다.
| 마켓 | 한글명 | 180분 중 봉 있던 분 | 그 종목의 봉 180개가 덮은 시간 |
|---|---|---|---|
| KRW-USDE | 유에스디이 | 2 | 7,173분 |
| KRW-USDS | 유에스디에스 | 4 | 11,764분 |
| KRW-KMNO | 카미노파이낸스 | 12 | 3,310분 |
| KRW-USDG | 글로벌달러 | 13 | 8,643분 |
| KRW-RLUSD | 리플유에스디 | 13 | 4,457분 |
| KRW-GEOD | 지오드넷 | 14 | 1,536분 |
| KRW-WIF | 도그위프햇 | 20 | 2,806분 |
| KRW-SKY | 스카이프로토콜 | 20 | 1,327분 |
업비트가 문서에 스스로 적어 둔 규칙입니다
이 결측은 장애가 아닙니다. 업비트 개발자센터의 분 캔들 조회 문서에 규칙이 그대로 적혀 있습니다. 2026년 9월 14일 낮 12시 14분에 열어 확인한 문장입니다.
캔들은 해당 시간대에 체결이 발생한 경우에만 생성됩니다.
해당 캔들의 시작시각부터 종료시각까지 체결이 발생하지 않은 경우 캔들이 생성되지 않으며, 응답에도 포함되지 않습니다.
같은 문서에 한 번에 받을 수 있는 캔들이 최대 200개이고 기본값은 1개라고 적혀 있습니다.
문서에 적힌 대로 실제로 움직이는지도 대조했습니다. 체결 내역 창구에서 200건을 받아 그 체결이 걸쳐 있는 시간 범위를 잡고, 그 범위 안에서 체결이 있던 분의 집합과 봉이 있는 분의 집합을 맞댔습니다.
| 마켓 | 체결이 있던 분 | 그 범위의 봉 개수 | 두 집합 |
|---|---|---|---|
| KRW-SUN | 37 | 37 | 같음 |
| KRW-COMP | 26 | 26 | 같음 |
| KRW-GEOD | 17 | 17 | 같음 |
| KRW-WIF | 24 | 24 | 같음 |
네 종목 모두 한 분도 어긋나지 않았습니다. 다만 이것은 네 종목의 약 3시간 범위를 맞댄 결과입니다. 언제나 정확히 일치한다고 읽으시면 안 됩니다. 덧붙여 오전 창 응답에 들어온 28,895개 봉 가운데 거래량이 0인 봉은 0개였습니다. 업비트는 거래량 0짜리 봉을 만들지 않습니다.
지나간 구간의 답이 흔들리는지도 확인했습니다. 같은 요청을 8종목에 대해 6분 뒤에 다시 보내 분 단위 목록을 통째로 비교했더니 8종 전부 글자 단위로 동일했습니다. 조회할 때마다 달라지는 값이 아니라 굳어 있는 값입니다.
그래서 업비트 응답의 실제 모양은 이렇습니다. 썬(KRW-SUN)의 오전 창 끝부분에서 돌아온 봉의 시각만 순서대로 적으면 11시 58분 · 11시 56분 · 11시 55분 · 11시 51분 · 11시 49분입니다. 11시 57분과 11시 50분은 응답에 없습니다. 원문 두 줄을 그대로 옮기면 이렇습니다.
{"market": "KRW-SUN", "candle_date_time_kst": "2026-09-14T11:58:00", "opening_price": 23.0, "high_price": 23.0, "low_price": 23.0, "trade_price": 23.0, "candle_acc_trade_volume": 3958.03151263, "unit": 1}
{"market": "KRW-SUN", "candle_date_time_kst": "2026-09-14T11:56:00", "opening_price": 23.1, "high_price": 23.1, "low_price": 23.1, "trade_price": 23.1, "candle_acc_trade_volume": 21739.13043478, "unit": 1}
두 행 사이에 11시 57분 자리가 없습니다. 빈 값이 들어 있는 것이 아니라 행 자체가 없습니다. 이 차이가 중요합니다. 빈 값이면 읽는 쪽이 알아채지만, 행이 없으면 다음 행이 그 자리로 당겨져 올라온 것처럼 보입니다.

같은 200개인데 3시간이기도 하고 9.9일이기도 합니다
개수 파라미터의 최대치인 200으로 받아 각 종목의 200개가 몇 분을 덮는지 쟀습니다. 낮 12시 20분 조회입니다.
| 마켓 | 한글명 | 행 수 | 200개가 덮은 시간 |
|---|---|---|---|
| KRW-BTC | 비트코인 | 200 | 200분 (3.3시간) |
| KRW-ETH | 이더리움 | 200 | 200분 |
| KRW-XRP | 엑스알피 | 200 | 200분 |
| KRW-COMP | 컴파운드 | 200 | 1,415분 (23.6시간) |
| KRW-SUN | 썬 | 200 | 1,488분 (24.8시간) |
| KRW-WIF | 도그위프햇 | 200 | 2,961분 (2.06일) |
| KRW-USDE | 유에스디이 | 200 | 8,379분 (5.82일) |
| KRW-USDG | 글로벌달러 | 200 | 9,815분 (6.82일) |
| KRW-USDS | 유에스디에스 | 200 | 14,216분 (9.87일) |
같은 1분봉 200개인데 비트코인은 3시간 20분어치이고 유에스디에스는 9.87일어치입니다. 두 종목의 봉 200개를 나란히 놓고 같은 기간이라고 보시면 안 됩니다. 여기까지가 이 글이 말하는 범위이고, 그러니 어떤 보조지표를 몇 봉으로 쓰라는 이야기는 하지 않습니다.
시간대를 바꾸니 비율이 절반 아래로 떨어졌습니다
55.7%라는 숫자를 하나로 못박으면 틀립니다. 같은 방식으로 같은 날 새벽 3시부터 5시 59분까지 180분을 288종 전수로 다시 쟀습니다.
| 구간 (한국 시각) | 있을 수 있는 봉 | 실제 봉 | 비율 | 180분 내내 안 빠진 종목 | 봉이 0개인 종목 | 중앙값 |
|---|---|---|---|---|---|---|
| 오전 9시부터 11시 59분까지 | 51,840 | 28,895 | 55.7% | 18종 | 0종 | 95 |
| 새벽 3시부터 5시 59분까지 | 51,840 | 12,860 | 24.8% | 5종 | 2종 | 31 |
새벽 창에서 180분 내내 안 빠진 종목은 테더 · 이더리움 · 시빅 · 엑스알피 · 비트코인 다섯뿐이었습니다. 반대로 세 시간 동안 봉이 한 개도 없던 종목이 2종(유에스디이 · 유에스디에스) 나왔습니다. 그 세 시간 동안 체결이 한 건도 없었다는 뜻입니다.
그러니 인용하실 때는 반드시 구간을 붙여 주시기 바랍니다. 오전 창에서 55.7%였고 새벽 창에서 24.8%였습니다. 업비트 1분봉의 절반이 빈다는 식의 문장은 이 데이터가 뒷받침하지 않습니다.
코인원은 반대로 빈 분을 채워서 돌려줍니다
코인원 공개 차트 창구는 규칙이 정반대입니다. 원화마켓 364종 전부에 1분봉 200개를 요청했더니 이렇게 왔습니다.
| 항목 | 값 |
|---|---|
| 코인원 원화마켓 | 364종 |
| 응답이 안 온 종목 | 0종 |
| 행 수가 200이 아닌 종목 | 0종 |
| 이웃한 두 행의 시각 차이 | 364종 전부 60,000밀리초 한 가지 |
| 200행이 덮은 시간 | 364종 전부 200분 |
| 전체 행 | 72,800 |
| 그중 거래량이 0인 행 | 69,548 (95.5%) |
| 200행이 전부 거래량 0인 종목 | 190종 |
예외가 한 종목도 없습니다. 행 수가 요청값과 항상 같고 간격도 언제나 60초입니다. 그 대신 거래량이 0인 행이 95.5%를 차지합니다.
채워 넣은 행의 모양도 일정합니다. 거래량이 0인 행은 시가와 고가와 저가와 종가가 전부 같은 값이었고 예외가 0건이었습니다. 그 값은 직전 행의 종가입니다. 겹치는 199종에서 33,238건을 검사했는데 직전 행 종가와 다른 경우가 한 건도 없었습니다.
응답 원문으로 보면 이렇습니다. 썬을 오전 11시 59분 기준으로 요청했을 때 돌아온 두 행입니다.
{"timestamp": 1789354740000, "open": "22.42", "high": "22.42", "low": "22.42", "close": "22.42", "target_volume": "0.0", "quote_volume": "0.0"}
{"timestamp": 1789354680000, "open": "22.42", "high": "22.42", "low": "22.42", "close": "22.42", "target_volume": "0.0", "quote_volume": "0.0"}
두 행의 타임스탬프는 한국 시각으로 각각 오전 11시 59분 0초와 11시 58분 0초입니다. 네 가격이 모두 22.42로 같고 거래량이 0입니다. 라그랑주에서는 채운 행과 진짜 행이 나란히 섞여 있었습니다.
{"timestamp": 1789354560000, "open": "78.85", "high": "78.85", "low": "78.85", "close": "78.85", "target_volume": "136.82842201", "quote_volume": "10788.921"}
이 행은 한국 시각 오전 11시 56분 0초이고 거래량이 실려 있으니 실제 체결이 있던 분입니다. 가격 네 칸만 보면 앞의 채운 행과 구분이 되지 않고 거래량 칸에서만 갈립니다.
코인원 문서에는 이 규칙이 문장으로 적혀 있지 않았습니다
여기는 부정 실측이므로 범위를 좁혀서 적겠습니다. 코인원 API 레퍼런스의 캔들 차트 조회 페이지와 같은 페이지의 마크다운본을 2026년 9월 14일 낮 12시 15분에 열었습니다. 마크다운본은 8,301자였고 문서 머리의 갱신 표시는 2026년 9월 8일이었습니다.
이 문서가 적어 둔 것은 간격 파라미터의 허용값, 마지막 캔들의 타임스탬프, 개수 파라미터가 최소 1부터 최대 500까지이고 미입력시 기본 200이라는 것, 그리고 응답 필드 이름들입니다. 체결이 없던 구간을 어떻게 처리하는지에 대한 설명 문장은 이 8,301자 안에서 한 건도 걸리지 않았습니다.
다만 문서에 실린 예시 응답 안에는 이미 그 모양의 행이 들어 있습니다. 네 가격이 같고 거래량이 0인 행이 예시에 그대로 적혀 있습니다. 그러니 쓸 수 있는 문장은 여기까지입니다. 제가 연 이 페이지에는 설명 문장이 없었고 대신 예시에 그 행이 있었습니다. 공지나 고객센터나 다른 페이지에 적혀 있을 가능성은 배제하지 못합니다.
같은 3시간, 같은 코인 199종을 양쪽에서 맞대 봤습니다
이제 같은 구간으로 맞춰 나란히 놓습니다. 겹치는 199종 전부가 코인원 쪽에서 가장 오래된 행 오전 9시, 가장 새 행 오전 11시 59분, 행 수 180, 간격 60,000밀리초로 한 종목도 어긋나지 않았습니다.
| 항목 | 업비트 | 코인원 |
|---|---|---|
| 이 180분에 있을 수 있는 봉 자리 | 35,820 | 35,820 |
| 응답에 실제로 들어온 행 | 19,708 (55.0%) | 35,820 (100%) |
| 그중 체결이 있던 분 | 19,708 | 2,405 (6.7%) |
| 체결 없이 채워진 행 | 0 | 33,415 |
종목 단위로 보면 더 또렷합니다.
| 심볼 | 한글명 | 업비트 180분 중 봉 | 코인원 행 수 | 코인원 중 체결 있던 분 |
|---|---|---|---|---|
| BTC | 비트코인 | 180 | 180 | 180 |
| ETH | 이더리움 | 180 | 180 | 175 |
| SOL | 솔라나 | 180 | 180 | 63 |
| FIL | 파일코인 | 180 | 180 | 87 |
| USDT | 테더 | 180 | 180 | 14 |
| XRP | 엑스알피 | 180 | 180 | 4 |
| LA | 라그랑주 | 180 | 180 | 2 |
| COMP | 컴파운드 | 25 | 180 | 2 |
| WIF | 도그위프햇 | 20 | 180 | 0 |
| SUN | 썬 | 30 | 180 | 0 |
| USDS | 유에스디에스 | 4 | 180 | 0 |
| USDE | 유에스디이 | 2 | 180 | 0 |
가장 센 한 줄은 라그랑주입니다. 업비트에서는 180분 내내 한 분도 안 빠졌는데, 코인원에서는 180행이 빠짐없이 왔지만 그중 체결이 있던 분은 2분이었습니다. 두 창구가 돌려주는 행의 개수는 똑같이 180인데 그 180개가 뜻하는 것이 완전히 다릅니다.
여기가 이 글에서 가장 미끄러운 자리이므로 두 가지를 분명히 갈라 두겠습니다.
첫째는 형식의 차이입니다. 업비트는 빈 분을 응답에서 빼고 코인원은 채워서 보냅니다. 이것은 창구가 데이터를 내주는 방식의 차이입니다.
둘째는 체결 빈도의 차이입니다. 같은 코인이라도 두 거래소에서 거래가 있었던 분의 수가 다릅니다. 이것은 그 거래소의 그 시간대에 얼마나 거래가 있었느냐의 문제이고 데이터 형식과는 별개입니다.
두 가지를 섞어서 코인원이 데이터를 부풀린다거나 업비트가 데이터를 빠뜨린다고 읽으면 둘 다 사실이 아닙니다. 각자 다른 규칙으로 정직하게 내주고 있고, 받는 쪽이 규칙을 알아야 한다는 것이 이 글의 결론입니다.
1분봉만의 이야기가 아닙니다
봉 단위를 바꿔서도 확인했습니다. 낮 12시 14분 조회입니다.
| 창구 | 마켓 | 행 수 | 덮은 시간 | 빠진 시간 |
|---|---|---|---|---|
| 업비트 60분봉 | KRW-BTC | 48 | 48시간 | 0 |
| 업비트 60분봉 | KRW-WIF | 48 | 54시간 | 6 |
| 업비트 60분봉 | KRW-USDS | 48 | 108시간 | 60 |
유에스디에스는 60분봉 48개가 108시간에 흩어져 있었습니다. 결측은 1분봉만의 성질이 아닙니다.
업비트 일봉 쪽은 이번에 안 빠졌습니다. 유에스디에스 · 유에스디이 · 글로벌달러 · 도그위프햇 · 비트코인 다섯 종목 모두 30행이 30일을 덮었고 빠진 날이 0일이었습니다. 그렇다고 일봉은 안 빠진다고 읽으시면 안 됩니다. 이 다섯 종목이 30일 동안 하루도 빠짐없이 최소 한 건은 체결됐기 때문에 안 빠진 것이지 규칙이 다른 것이 아닙니다. 쓸 수 있는 문장은 이 다섯 종목의 최근 30일에서는 빠진 날이 없었다는 데까지입니다.
코인원은 어느 단위에서도 채웁니다. 도그위프햇을 단위별로 50개씩 받아 보니 이렇게 왔습니다.
| 단위 | 행 수 | 이웃 간격 | 거래량 0인 행 |
|---|---|---|---|
| 1분 | 50 | 60,000밀리초 한 가지 | 50 |
| 5분 | 50 | 300,000밀리초 한 가지 | 50 |
| 1시간 | 50 | 3,600,000밀리초 한 가지 | 50 |
| 1일 | 50 | 86,400,000밀리초 한 가지 | 23 |
도그위프햇은 코인원에서 최근 50일 가운데 23일은 체결이 한 건도 없었는데도 일봉 50개가 빠짐없이 왔습니다.
그래서 무엇을 하면 되는가
관측을 실무 문장으로 줄이면 다섯 줄입니다.
첫째, 업비트 캔들 응답의 행 수를 기간으로 읽지 마십시오. 개수 파라미터는 존재하는 봉의 개수이지 분 수가 아닙니다. 180개를 요청해 180행이 왔다고 해서 180분이 채워진 것이 아닙니다. 기간을 알고 싶으면 응답에 실린 시각 목록을 1분 간격과 맞대 보셔야 합니다.
둘째, 두 응답을 그대로 같은 표에 올리지 마십시오. 업비트 180행과 코인원 180행은 같은 180이 아닙니다. 코인원 쪽은 거래량이 0인 행을 먼저 갈라내야 두 응답이 같은 뜻이 됩니다.
셋째, 지표를 계산하기 전에 무엇이 빈 분인지 정하십시오. 업비트 응답을 그대로 이어 붙이면 빈 분이 사라지고 시간축이 당겨집니다. 코인원 응답을 그대로 쓰면 움직이지 않은 가격이 실제 데이터처럼 섞여 들어옵니다. 어느 쪽을 택하든 판단은 코드가 아니라 사람이 먼저 해야 합니다.
넷째, 봉 개수로 기간을 가정하지 마십시오. 같은 200개가 어떤 종목에서는 3시간이고 어떤 종목에서는 9.87일이었습니다. 여러 종목을 같은 개수로 돌리는 코드라면 종목마다 다른 기간을 다루고 있는 셈입니다.
다섯째, 비율을 상수로 박지 마십시오. 오전 창에서 55.7%였던 값이 같은 날 새벽 창에서 24.8%로 내려갔습니다. 시간대에 따라 크게 움직입니다.

확인하지 못한 것
정직하게 적어 두겠습니다.
- 관측 창이 좁습니다. 호출은 2026년 9월 14일 낮 12시 6분부터 12시 20분 사이에 끝났고, 데이터가 말하는 구간은 같은 날 오전 9시부터 11시 59분까지와 새벽 3시부터 5시 59분까지 두 개의 180분뿐입니다. 다른 날과 다른 시간대에 대해서는 아무 말도 하지 않습니다.
- 55.7%는 오전 한 구간의 값입니다. 새벽은 24.8%였습니다. 하나의 숫자로 못박지 마시고 구간을 붙여 주시기 바랍니다.
- 체결과 봉의 대조는 4종목의 약 3시간 범위입니다. 전수가 아닙니다.
- 코인원 쪽에서 체결이 있던 분이라는 것은 거래량 칸이 0이 아닌 행을 센 값입니다. 코인원의 실제 체결 내역 창구를 따로 열어 대조하지는 않았습니다.
- 왜 두 거래소가 다른 규칙을 쓰는지는 모릅니다. 업비트는 문서에 규칙을 적어 두었고 제가 연 코인원 문서 페이지에는 그 문장이 없었다는 데까지가 확인된 범위입니다. 어느 쪽이 옳은 설계인지 이 글은 판정하지 않습니다.
- 주문을 내 보지 않았고 로그인도 하지 않았습니다. 전부 인증 없는 공개 응답입니다.
- 체결 금액과 거래대금은 재지 않았습니다. 봉이 있다는 것은 그 분에 체결이 최소 한 건 있었다는 뜻일 뿐 규모를 말하지 않습니다.
- 원화마켓 종목 수는 조회 시점의 값입니다. 업비트 288종과 코인원 364종은 2026년 9월 14일 낮 12시 6분과 12시 10분 기준이고 상장과 폐지로 언제든 바뀝니다.
- 빗썸과 코빗과 고팍스는 한 번도 부르지 않았습니다. 국내 거래소가 두 갈래로 나뉜다는 식의 문장은 이 글이 쓸 수 없습니다. 확인한 것은 업비트와 코인원 두 곳입니다.
- 가격과 수익률과 김프는 다루지 않았습니다. 디지털자산은 원금 손실 위험이 있고 모든 판단은 본인 책임입니다.
정리
세 줄로 줄이면 이렇습니다.
첫째, 업비트 공개 1분봉은 체결이 없던 분의 봉을 아예 주지 않습니다. 원화마켓 288종 전수에서 2026년 9월 14일 오전 9시부터 11시 59분까지 180분 창의 51,840자리 가운데 28,895개만 왔고 비율로 55.7%입니다. 180분 내내 한 분도 안 빠진 종목은 18종이었습니다.
둘째, 코인원 공개 차트는 같은 구간을 180행으로 채워서 줍니다. 겹치는 199종 전부가 180행을 돌려줬고 그중 체결이 있던 분은 2,405분, 비율로 6.7%였습니다. 나머지 33,415행은 직전 종가를 그대로 옮겨 적고 거래량 칸만 0으로 채운 행이었습니다.
셋째, 그래서 행의 개수만 세면 두 창구를 비교할 수 없습니다. 라그랑주는 양쪽에서 똑같이 180행이 왔지만 업비트 쪽은 180분 모두 거래가 있었고 코인원 쪽은 2분만 거래가 있었습니다.
여기 적힌 값은 2026년 9월 14일 낮 12시 6분부터 12시 20분 사이에 받은 공개 응답을 세어 둔 기록일 뿐입니다. 거래소는 응답 방식을 예고 없이 바꿀 수 있고, 지금 다시 부르면 다른 값이 나올 수 있습니다. 인용하실 때는 조회 시각과 관측 구간을 함께 적어 주시기 바랍니다. 이 글은 어떤 종목의 매매도 권하지 않습니다.