오두막 코인시세

지표는 전부,
켜져 있습니다.

트레이딩뷰급 차트에 피보나치·VWAP·볼린저까지. 김치 프리미엄과 공포·탐욕 지수도 한 화면에. 로그인도, 구독도 없이 — 전부 무료로.

무료 · 로그인 없음 수집 0 · 광고 없음 코인 전 종목 지표 16종 · 5개 언어
비트코인 가격 차트 — 이동평균·VWAP·볼린저·거래량

우리가 안 하는 세 가지

0
로그인
계정도, 가입도 없습니다. 앱을 열면 곧바로 시세예요.
0
구독
자동 갱신도 지표도 위젯도 유료로 잠그지 않습니다. 처음부터 다 켜져 있어요.
0
수집
위치·연락처는 물론 기기 식별값 하나까지, 서버로는 한 줄도 나가지 않습니다. 포트폴리오도 이 폰에만 담깁니다.

흩어 보지 않아도

시세도 김프도 심리도,
한 화면에.

업비트·빗썸·바이낸스·코인베이스를 한 번에 봅니다. 한 거래소가 막혀도 값은 빈칸이 되지 않고 다음 거래소로 이어받아요. 상승 빨강·하락 파랑, 원화 천 단위까지 — 한국 투자자가 보던 그대로. 초록 상승(서양식)으로 바꾸는 것도 설정에서 한 번에 됩니다.

코인 전 종목 다거래소 폴백 김치 프리미엄 자동 계산식 · 환율 · 시각 공개 ₩/$ 원탭 토글 실시간 갱신
코인·환율 시세 목록 — 김치 프리미엄 배지와 스파크라인

폰 안에 들어온 트레이딩 데스크

차트가 진짜고,
지표는 다 켜져 있어요.

가로로 드래그하면 그 시점의 시가·고가·저가·종가와 변동률이 뜹니다(트레이딩뷰식 크로스헤어). 이동평균·볼린저·VWAP를 겹쳐 보고, 피보나치와 지지·저항으로 가격대를 잡고, 15분봉부터 주봉까지. 지표 16개를 종합해 '지금 흐름'을 한 줄로 읽어 줍니다 — 물론, 투자 권유가 아니라 참고용으로.

종합 판독 — 강한 강세부터 강한 약세까지, 게이지 한 줄로.
추세 · 모멘텀 · 수급 — 관련 지표를 묶어 흐름을 한눈에.
멀티 타임프레임 — 1시간·4시간·일봉의 정렬을 한 줄로.
다이버전스 — 가격은 새 고점인데 RSI·MACD가 못 따라온 구간을.
크로스헤어·OHLC 툴팁 피보나치 VWAP 볼린저 밴드 지지·저항 지표 16종
기술적 분석 — 현재 흐름 종합 게이지와 7개 지표 신호

숫자 너머의 분위기

시장의 체온을,
한눈에.

암호화폐 공포·탐욕 지수를 5단계 반원 게이지로, 어제보다 오른 건지까지 화살표로. VIX와 코스피, BTC 도미넌스·총 시가총액도 곁들여 — 값이 오르내리는 '이유'를 함께 읽습니다.

공포·탐욕 5단계 30일 추이 VIX KOSPI BTC 도미넌스 총 시가총액
공포·탐욕 지수 반원 게이지와 VIX·KOSPI 카드

감이 아니라 숫자로

물타기도 청산가도,
기기 안에서.

김프 %가 아니라 실제 원화 손익으로 계산합니다. 평단가 물타기, 격리 청산가, 손익분기 매도가, 양도소득세 간이 계산까지 — 보유 내역은 로그인 없이 이 폰에만 저장돼요.

김프 실수익 계산 물타기 평단가 청산가(격리) 손익분기 매도가 양도소득세 포트폴리오(로컬)
계산기 도구 — 청산가·손익분기·양도소득세

필요할 때만, 조용히

임계값에 닿으면,
딱 한 번.

목표가·김프·급등락, 그리고 강세/약세 전환까지. 상태가 바뀔 때 한 번만 울리고(스팸 없음), 조용시간엔 조용히. 규칙을 만들기 전에는 아무 알림도 보내지 않아 배터리도 안심입니다. 현재가·±5%·±10% 칩으로 목표가는 탭 한 번에 채워집니다.

가격 ↑↓ 김프 ↑↓ 급등·급락 기술적 신호 빠른 채우기 조용시간
가격·김프 알림 — 현재가·±% 빠른 채우기 칩

당신의 방식대로

5개 언어로,
홈 화면까지.

한국어·영어·일본어·중국어(간체·번체)를 앱 안에서 바로 고릅니다. 시스템·라이트·다크 테마에 10초~5분 갱신 주기. 홈 화면 위젯엔 시세·김프·공포지수가 광고 없이 자동으로 채워집니다.

한국어 · English · 日本語 中文 简体 · 繁體 라이트 · 다크 홈 위젯 스크린리더 지원
설정 — 5개 언어 선택과 테마·갱신 주기

값을 매기지 않는 이유

전부 무료,
그게 전부예요.

구독도, 결제창도, 숨은 유료도 없습니다. BS Planet 앱스토어에서 바로 받아 계정 없이 곧장 쓰면 됩니다. 시세도, 지표도, 위젯도 — 오두막 코인시세는 그냥, 무료입니다.

버전v3.31.0 · Android 8.0+ (SDK 26)
용량APK ≈ 3.7MB
데이터공개 API 직접 조회 · 키 불필요
권한INTERNET · 네트워크 상태 (필수) · 알림 · 배터리 · 설치 (선택)
배포BS Planet 앱스토어
릴리즈 히스토리

매 버전, 사용자 요구를 반영해 개선합니다.

모든 릴리즈 노트는 앱스토어 배포와 자동 동기화됩니다.

v3.31.0최신2026-08-23
하단 내비게이션이 생기고, 고른 정렬이 남습니다
  • 화면 아래에 내비게이션이 생겼습니다. 홈·뉴스·포트폴리오·알림·설정을 어디서든 한 번에 오갑니다. 지금까지는 화면을 바꿀 때마다 홈을 거쳐야 했습니다.
  • 위젯에 설정이 생겼습니다. 홈 화면의 위젯을 길게 눌러 설정에 들어가면 위젯마다 표시할 암호화폐를 고르고, 자동 갱신을 15분으로 당길 수 있습니다. 위젯을 두 개 놓고 서로 다른 목록을 보이게 할 수 있습니다.
  • 코인 상세에 「목차」가 생겼습니다. 차트·기술적 분석·뉴스·김프 근거처럼 긴 절을 눌러서 바로 갑니다. 화면에 실제로 있는 절만 목록에 나옵니다.
  • 포트폴리오를 CSV 파일로 내보내고 가져올 수 있습니다. 이 앱은 서버가 없어 기기를 잃으면 보유 내역도 함께 잃었습니다. 이제 파일로 사본을 둘 수 있습니다. 가져오기는 형식이 틀리면 통째로 거절하고, 바꾼 뒤에도 되돌리기가 있습니다.
  • 알림 채널이 종류별로 갈라졌습니다. 기기 설정에서 가격 도달·김치 프리미엄· 급등락·기술적 신호마다 소리와 중요도를 따로 정할 수 있습니다.
  • 정렬이 남습니다. 시세 카드에서 김프순·등락순을 골라도 앱을 다시 열면 기본 순서로 돌아갔습니다. 이제 고른 순서가 저장됩니다.
  • 연결이 없으면 그렇다고 말합니다. 지금까지는 카드마다 제각각 「못 받았습니다」만 적혀 원인이 안 보였습니다. 이제 인터넷이 끊기면 화면 위에 한 줄이 뜨고, 연결이 돌아오면 저절로 사라집니다.
  • 시작 화면 색이 맞습니다. 밝은 테마 기기에서 앱을 켤 때 어두운 화면이 한 번 번쩍였습니다. 이제 기기 테마와 같은 색으로 시작합니다.
  • 접고 펴는 자리가 부드럽게 움직이고, 지우기·고르기·켜고 끄기에 짧은 진동이 더해졌습니다. 기기의 「애니메이션 제거」 설정을 그대로 따릅니다.
  • 잠깐의 통신 장애는 그 자리에서 한 번 다시 시도합니다. 서버가 순간적으로 넘어졌을 때 그 갱신 주기를 통째로 잃지 않습니다.
  • 설정에 「네트워크 진단 기록」이 생겼습니다. 갱신이 실패했을 때 무엇이 왜 실패했는지를 기기 안에서만 볼 수 있습니다. 어디로도 전송되지 않습니다.
  • 내부 검증 2919건 · 화면 기준선 550장. versionCode 931.
이전 버전 전체 보기 (v1.0.0 ~ v3.30.50)
v3.30.502026-08-23
등락색 선택이 어디까지 닿는지 그림으로 확인했습니다
  • 코인 상세 본문 · 판정 카드 · 지표 그림 셋에 서양식 그림을 더했습니다.
  • 내부 검증 2877건 · 화면 기준선 547장. versionCode 930.
v3.30.492026-08-23
김프 근거 화면에 「upbit」라고 적혀 있었습니다
  • 코인 상세 시트의 본문을 처음으로 그려 확인하다가 찾았습니다.
  • 내부 검증 2877건 · 화면 기준선 544장. versionCode 929.
v3.30.482026-08-23
넓은 화면의 배치를 처음으로 그려 봤습니다
  • 화면과 동작은 그대로입니다. 코드의 자리만 옮겼습니다.
  • 앞으로 배치를 못 그리게 되면 검사가 잡습니다.
  • 내부 검증 2875건 · 화면 기준선 542장. versionCode 928.
v3.30.472026-08-23
좀처럼 안 보이는 화면 셋을 그려 뒀습니다
  • 내부 검증 2873건 · 화면 기준선 539장. versionCode 927.
v3.30.462026-08-23
화면을 못 보는 분께 김프를 잘못 읽어 드렸습니다
  • 화면에 보이는 것은 거의 그대로입니다. 읽어 드리는 말과 설명 두 줄을 고쳤습니다.
  • 모두 다섯 언어에 넣었습니다.
  • 내부 검증 2873건 · 화면 기준선 537장. versionCode 926.
v3.30.452026-08-23
점검 도구가 빌린 설정을 확실히 돌려주게 했습니다
  • 가로 화면 · 글씨 200% 로 앱 전체를 훑는 점검이 처음으로 끝까지 돌았습니다. 이름 없는 버튼도, 너무 작은 버튼도 없었습니다.
  • 내부 검증 2870건 · 화면 기준선 537장. versionCode 925.
v3.30.442026-08-23
목록에서 내 기기를 못 찾던 분들께
  • 앱은 그 기기가 어느 갈래인지 이미 알고 있었습니다. 말을 안 했을 뿐입니다.
  • 다섯 언어 모두에 넣었습니다.
  • 내부 검증 2868건 · 화면 기준선 537장. versionCode 924.
v3.30.432026-08-23
저희 점검 도구가 화면 하나를 못 찾고 있었습니다
  • 같은 방식으로 미는 도구가 여덟 개 있었습니다. 미는 속도를 한곳에서 정하게 모았습니다.
  • 일부러 빠르게 밀어야 하는 자리(스크롤이 얼마나 부드러운지 재는 곳)는 그렇게 적어 두고 구분합니다.
  • 내부 검증 2866건 · 화면 기준선 534장. versionCode 923.
v3.30.422026-08-23
가장 중요한 주의가 접혀 있었습니다
  • 이 카드의 그림(확인용 기준선)도 처음 만들었습니다. 얇은 자료·묵은 자료의 조합이 한 번도 그려진 적이 없어 이 문제가 오래 안 보였습니다.
  • 내부 검증 2864건 · 화면 기준선 534장. versionCode 922.
v3.30.412026-08-23
「지금 이 봉」 카드를 처음으로 그려 봤습니다
  • 빈틈을 세는 도구도 함께 고쳤습니다. 「한 번도 안 그렸다」와 「도구가 못 본다」를 갈라 말하게 했습니다 — 스물일곱 줄 가운데 열다섯이 뒤엣것이었습니다.
  • 스토어 설명글의 거래소 차례(업비트 → 빗썸 → …)를 열 개 언어 모두에서 앱과 대조합니다. 전에는 한국어만 봤습니다.
  • 내부 검증 2862건 · 화면 기준선 531장. versionCode 921.
v3.30.402026-08-23
오픈소스 목록에 라이브러리 하나가 빠져 있었습니다
  • 다음에 라이브러리가 늘 때 목록이 같이 안 늘면 검사가 잡습니다.
  • 내부 검증 2862건 · 화면 기준선 528장. versionCode 920.
v3.30.392026-08-23
새 버전을 확인하러 접속한다는 것을 적었습니다
  • 앱의 동작은 달라지지 않았습니다. 적혀 있지 않던 것을 적었을 뿐입니다.
  • 다섯 언어 모두에 넣었습니다.
  • 내부 검증 2861건 · 화면 기준선 528장. versionCode 919.
v3.30.382026-08-23
중국어에서 같은 지표를 두 낱말로 부르고 있었습니다
  • 상세 화면 쪽 낱말로 맞췄습니다. 그쪽이 이 지표를 정확히 가리킵니다.
  • 백분위를 알려 주는 한 문장이 영어·중국어에서 두 갈래로 옮겨져 있던 것도 맞췄습니다. 한국어·일본어는 원래 한 문장이었습니다.
  • 내부 검증 2861건 · 화면 기준선 528장. versionCode 918.
v3.30.372026-08-23
작업 도구가 저장소에 찌꺼기를 남기지 않게 했습니다
  • 화면을 세로로 돌려 확인하는 도구들이 빌린 설정을 돌려주지 않던 것도 고쳤습니다. 같은 코드가 세 곳에 복사돼 있어 한 곳으로 모았습니다.
  • 화면을 훑는 도구가 목록의 아래쪽을 못 보고 끝나던 것도 고쳤습니다. 이제 바닥까지 내려가며, 「못 찾았다」와 「덜 봤다」를 구분해 적습니다.
  • 내부 검증 2860건 · 화면 기준선 528장. versionCode 917.
v3.30.362026-08-23
가로로 눕힌 화면을 처음으로 끝까지 확인했습니다
  • 같은 일이 다시 생기지 않도록 검사를 더했습니다(방향을 고를 수 있는 도구가 한쪽 방향을 못 박지 못하게).
  • 앞 판에서 옮긴 차트 시간축의 자리도 검사로 지킵니다.
  • 내부 검증 2858건 · 화면 기준선 528장. versionCode 916.
v3.30.352026-08-22
앞 판에서 고친 것을 검사로 못 박았습니다
  • 축이 신호 목록·조작 줄보다 앞에 있는가.
  • 차트와 축 사이에 아무것도 없는가 — 짧아 보이는 것도 큰 글씨에서는 한 화면이 됩니다.
  • 내부 검증 2856건 · 화면 기준선 528장. versionCode 915.
v3.30.342026-08-22
차트의 시간축이 차트에서 멀리 떨어져 있었습니다
  • 값 자체는 맞았습니다. 15분·1시간·일봉의 축을 거래소 원자료와 대조해 확인했습니다. 맞는 값이 쓸 수 없는 자리에 있었던 것입니다.
  • 공개 브로슈어의 차트 사진에 축이 한 번도 안 찍혀 있었는데, 찍을 수가 없었습니다.
  • 내부 검증 2854건 · 화면 기준선 528장. versionCode 914.
v3.30.332026-08-22
글씨를 키우면 코인 이름이 세 글자만 남았습니다
  • 원화 마켓의 이름을 하나하나 재 보니, 200%에서 절반 남짓이 이 줄에 걸렸습니다. 드문 구석이 아니었습니다.
  • 짧은 이름(비트코인 등)의 화면은 달라지지 않습니다 — 들어갈 때는 그대로 한 줄입니다.
  • 내부 검증 2854건 · 화면 기준선 528장. versionCode 913.
v3.30.322026-08-22
「롱/숏」 칩이 일본어 큰 글씨에서 쪼개졌습니다
  • 같은 모양을 앞 판에서도 고쳤습니다(첫 실행 동의 화면). 그때 만든 검사가 단추만 세고 칩은 안 세고 있어서 이 자리를 놓쳤습니다. 이제 둘 다 셉니다.
  • 가장 긴 언어 × 200% 그림을 이 계산기에 붙였습니다. 여태 그 조합이 한 장도 없었습니다.
  • 내부 검증 2854건 · 화면 기준선 526장. versionCode 912.
v3.30.312026-08-22
처음 켠 화면에서 두 단추가 한 구절로 읽혔습니다
  • 실제 기기에서 앱을 처음 켜는 흐름(동의 → 소개 → 시세 목록)을 밟아 확인했습니다.
  • 같은 모양이 다른 화면에 생기지 않도록 검사를 하나 더했습니다.
  • 내부 검증 2854건 · 화면 기준선 523장. versionCode 911.
v3.30.302026-08-22
품질 계획을 마무리했습니다
  • 업데이트 안내를 닫으면 새 버전이 나와도 다시 뜨지 않는 것을 실제 기기에서 확인했습니다.
  • 그 확인 과정에서 안내 정책의 결함 하나를 찾아 앞 판에서 고쳤습니다.
  • 내부 검증 2853건 · 화면 기준선 523장. versionCode 910.
v3.30.292026-08-22
축의 시각을 큰 글씨에서도 확인했습니다
  • 내부 검증 2853건 · 화면 기준선 523장. versionCode 909.
v3.30.282026-08-22
시간봉 차트인데 축에 시각이 없었습니다
  • 캔들을 짚었을 때 뜨는 말풍선도 같은 규칙으로 맞췄습니다. 한쪽만 고치면 축과 말풍선이 서로 다른 시각을 말하게 됩니다.
  • 일봉·주봉은 그대로입니다. 한 봉이 하루를 통째로 담으니 적을 시각이 없습니다.
  • 내부 검증 2853건 · 화면 기준선 521장. versionCode 908.
v3.30.272026-08-22
품질 지표를 다듬었습니다
  • 업데이트 안내 빈도를 셀 때 조용한 판은 빼고 셉니다. 그러지 않으면 아무도 못 본 안내를 성가심으로 세게 됩니다.
  • 「이렇게 망가뜨리면 잡아야 한다」를 적어 둔 검사가 50개가 됐고, 그 수 아래로는 내려가지 못하게 했습니다.
  • 내부 검증 2847건 · 화면 기준선 521장. versionCode 907.
v3.30.262026-08-22
화면의 수를 거래소 원자료로 되짚습니다
  • 그 과정에서 도구의 결함 하나를 찾았습니다. 김치 프리미엄을 화면에서 읽어 내는 자리가 줄곧 빈 값을 읽고 있었습니다(쉼표 하나 때문에). 그래서 김프 대조는 그동안 손으로만 했습니다. 이제 자동으로 잽니다.
  • 세 기간(15분·1시간·일봉) 모두 원자료와 맞는 것을 실제 기기에서 확인했습니다.
  • 내부 검증 2847건 · 화면 기준선 521장. versionCode 906.
v3.30.252026-08-22
검사가 더 빨라졌습니다
  • 배포 전 검사가 422초에서 297초로 줄었습니다. 검사를 뺀 것이 아니라, 메모리가 모자라 막히던 것을 넓혔습니다.
  • 새 검사가 「이렇게 망가뜨리면 잡아야 한다」 없이는 들어오지 못하게 했습니다.
  • 아직 확인하지 못한 자리(위젯 얹기·첫 실행·폴드 커버)를 한 곳에 모으고, 무엇이 바뀌면 다시 볼 수 있는지를 함께 적었습니다.
  • 내부 검증 2847건 · 화면 기준선 521장. versionCode 905.
v3.30.242026-08-22
검사 마흔일곱이 정말 보고 있습니다
  • 「이렇게 망가뜨리면 잡아야 한다」를 적어 둔 검사가 18개에서 47개로 늘었습니다. 모두 실제로 망가뜨려 보고 전부 잡는 것을 확인했습니다.
  • 화면의 차트가 말하는 것을 거래소 원자료로 되짚는 도구를 뒀습니다 — 시간축·거래량 기준 창·봉 진행도 셋입니다. 최근 결함 셋이 나온 자리입니다.
  • 내부 검증 2844건 · 화면 기준선 521장. versionCode 904.
v3.30.232026-08-22
검사가 정말 보고 있는지 물었습니다
  • 검사 507개가 쓰는 정규식 1,582개를 훑어 맞을 수 없는 모양이 있는지 봤습니다(0개).
  • 검사 18개에 「이렇게 망가뜨리면 잡아야 한다」를 적어 두고 실제로 돌렸습니다. 18개 모두 잡았습니다.
  • 게이트가 걸린 시간을 스스로 기록합니다.
  • 내부 검증 2844건 · 화면 기준선 521장. versionCode 903.
v3.30.222026-08-22
작업 도구와 검사만 손봤습니다
  • 파일을 고치는 도구가 읽고 → 확인하고 → 씁니다. 되돌리는 한 줄이 파일을 통째로 지운 일이 있었습니다(복구했습니다). 같은 모양이 다시 나오지 못하게 막았습니다.
  • 기기에서 값을 읽을 때 화면이 실제로 바뀐 것을 확인한 뒤 읽습니다. 그러지 않아서 지난 판의 확인 기록이 틀리게 남았고, 오늘 바로잡았습니다.
  • 품질 지표를 수로 찍는 도구를 뒀습니다.
  • 내부 검증 2844건 · 화면 기준선 521장. versionCode 902.
v3.30.212026-08-22
업데이트 안내를 닫으면 이제 한동안 조용합니다
  • 한 번 닫으면 일주일 조용합니다. 그 사이 새 버전이 나와도 다시 뜨지 않습니다.
  • 말씀드릴 것이 없는 판은 아예 알리지 않습니다. 도구나 내부 검사만 손본 판이 그렇습니다. 그런 판도 다음에 안내드리는 판과 함께 올라갑니다.
  • 설정의 「업그레이드 알림」 스위치는 그대로입니다 — 아예 안 받으실 수도 있습니다.
  • 업데이트를 막는 것이 아닙니다. 권하는 횟수만 줄였습니다.
  • 내부 검증 2840건 · 화면 기준선 521장. versionCode 901.
v3.30.202026-08-21
봉의 시각이 그 봉이 시작한 때가 아니었습니다
  • 자료가 묵었거나 기기 시계가 어긋나 있으면 아무 말도 하지 않습니다(그건 다른 줄이 말합니다).
  • 계산 자체는 그대로입니다. 달라진 것은 언제 주의문을 붙이는가입니다.
  • 내부 검증 2832건 · 화면 기준선 521장. versionCode 900.
v3.30.192026-08-21
거래량 기준이 「하루」인데 한 칸씩 모자랐습니다
  • 다섯 언어 모두 같은 방식으로 적습니다.
  • 거래량 기준 창이 이제 정확히 하루(또는 그 배수)를 덮습니다.
  • 일봉·주봉은 원래 한 봉이 하루를 담으므로 달라지지 않습니다.
  • 내부 검증 2820건 · 화면 기준선 521장. versionCode 899.
v3.30.182026-08-21
김프 계산기의 기본 수수료가 실제보다 두세 배였습니다
  • 수수료는 직접 고쳐 넣으실 수 있습니다. 바뀐 것은 처음 열었을 때의 값입니다.
  • 계산식은 그대로입니다.
  • 내부 검증 2807건 · 화면 기준선 521장. versionCode 898.
v3.30.172026-08-21
일봉이 판독과 반대인데 아무 말도 하지 않았습니다
  • 판정 자체는 달라지지 않습니다. 앱이 이미 알고 있던 것을 말하게 됐을 뿐입니다.
  • 내부 검증 2801건 · 화면 기준선 518장. versionCode 897.
v3.30.162026-08-21
알림 제목의 가운뎃점 앞에 빈칸이 하나 더 있었습니다
  • 내부 검증 2796건 · 화면 기준선 517장. versionCode 896.
v3.30.152026-08-21
시장 개요가 옛 값을 새것처럼 보여 주고 있었습니다
  • 통신이 정상이면 아무것도 달라지지 않습니다.
  • 내부 검증 2795건 · 화면 기준선 517장. versionCode 895.
v3.30.142026-08-21
눌러도 아무 일도 안 일어나는 정렬 단추가 있었습니다
  • 고르신 정렬은 지우지 않습니다. 김프순을 보시던 중에 환율이 잠깐 끊기면 그 동안만 기본 순서로 그리고, 자료가 돌아오면 고르신 순서가 되살아납니다.
  • 내부 검증 2791건 · 화면 기준선 515장. versionCode 894.
v3.30.132026-08-21
화면을 영어로 두어도 환율 이름만 한국어였습니다
  • 기기 언어와 앱 언어가 같으면 달라지는 것이 없습니다.
  • 내부 검증 2786건 · 화면 기준선 515장. versionCode 893.
v3.30.122026-08-21
글씨를 크게 쓰면 「5분」 선택지가 아예 사라졌습니다
  • 자리가 넉넉하면 예전처럼 한 줄에 나옵니다.
  • 내부 검증 2785건 · 화면 기준선 515장. versionCode 892.
v3.30.112026-08-21
큰 글씨에서 「RSI 80」 단추가 두 동강 나 있었습니다
  • 자리가 넉넉하면 예전처럼 한 줄에 나옵니다. 좁을 때만 접힙니다.
  • 앞으로 고르는 단추를 여럿 늘어놓는 자리는 검사가 함께 봅니다.
  • 내부 검증 2785건 · 화면 기준선 505장. versionCode 891.
v3.30.102026-08-21
다이버전스 줄에서 두 문장이 한 문장으로 붙어 있었습니다
  • 다섯 언어 모두 고쳤습니다. 일본어·중국어는 「。」입니다.
  • 앞으로 어느 문구 뒤에 다른 문장을 붙이면, 그 앞 문구가 끝나 있는지 검사가 봅니다.
  • 내부 검증 2784건 · 화면 기준선 503장. versionCode 890.
v3.30.92026-08-21
「122.2% 되돌렸습니다」는 아무 뜻도 아니었습니다
  • 100% 아래의 보통 되돌림은 그대로 비율로 적습니다. 그 숫자는 여전히 읽히니까요.
  • 계산은 바꾸지 않았습니다. 바뀐 것은 문장뿐입니다.
  • 내부 검증 2781건 · 화면 기준선 501장. versionCode 889.
v3.30.82026-08-21
지표 그림을 읽어 주는 목소리가 단위를 섞어 말했습니다
  • MACD · 스퀴즈 모멘텀 · OBV 세 그림이 해당됩니다. RSI·스토캐스틱·ADX 는 늘 소수 한 자리라 처음부터 갈리지 않았습니다.
  • 눈으로 보는 화면은 달라지지 않습니다. 패널에 크게 적히는 「지금 값」도 그대로입니다.
  • 내부 검증 2777건 · 화면 기준선 501장. versionCode 888.
v3.30.72026-08-21
기기 시계가 뒤로 가면 차트가 굳어 있었습니다
  • 캔들 차트가 45초마다 갱신돼야 하는데 시계가 따라잡을 때까지 굳어 있었습니다.
  • 코인 정보(시총·최고가)도 같은 이유로 멈춰 있었습니다.
  • 반대로 업데이트 확인은 「아직 이를걸」이 계속 참이라 한 번도 돌지 않았습니다.
  • 잴 수 없는 나이는 이제 「모른다」입니다. 음수를 숫자인 척 내주지 않습니다.
  • 시계가 정상인 기기에서는 아무것도 달라지지 않습니다 — 45초 TTL 은 그대로입니다.
  • 내부 검증 2772건 · 화면 기준선 501장. versionCode 887.
v3.30.62026-08-21
알림이 언제 왔는지 확인할 곳이 없었습니다
  • 보낸 것만 남깁니다. 권한이 없어 못 보낸 것은 보낸 알림이 아닙니다.
  • 이 기기에만 남고 최근 50건까지 보관합니다. 어디로도 보내지 않습니다.
  • 「기록 지우기」로 언제든 비우실 수 있습니다.
  • 값 표기는 알림과 같은 규칙을 씁니다 — 김프는 부호가 뜻이고, 급등락 기준은 크기이며, RSI 는 값과 기준의 자릿수가 다릅니다. 두 곳에 따로 적으면 한쪽만 고쳐집니다.
  • 내부 검증 2769건 · 화면 기준선 501장. versionCode 886.
v3.30.52026-08-21
껐다 켜면 코인 행의 미니 차트만 비어 있었습니다
  • 내부 검증 2754건 · 화면 기준선 496장. versionCode 885.
v3.30.42026-08-20
공포지수와 시장 개요도 껐다 켜면 사라졌습니다
  • 내부 검증 2752건 · 화면 기준선 496장. versionCode 884.
v3.30.32026-08-20
앱을 껐다 켜면 마지막 시세가 사라졌습니다
  • 내부 검증 2745건 · 화면 기준선 496장. versionCode 883.
v3.30.22026-08-20
일본어에서 「시장 맥박」 카드 이름이 잘렸습니다
  • 내부 검증 2738건 · 화면 기준선 495장. versionCode 882.
v3.30.12026-08-20
일본어·중국어에서 MACD 배지가 다른 선을 가리켰습니다
  • 내부 검증 2735건 · 화면 기준선 493장. versionCode 881.
v3.30.02026-08-20
통신이 끊기면 카드마다 다른 말투로 알렸습니다
  • 내부 검증 2732건 · 화면 기준선 490장. versionCode 880.
v3.29.992026-08-20
지금이 조용시간인지 화면이 말하지 않았습니다
  • 내부 검증 2730건 · 화면 기준선 490장. versionCode 879.
v3.29.982026-08-20
차트를 작게 두고 길게 누르면 종가가 잘렸습니다
  • 내부 검증 2724건 · 화면 기준선 487장. versionCode 878.
v3.29.972026-08-20
큰 글씨에서 차트가 설정한 만큼 커지지 않았습니다
  • 내부 검증 2721건 · 화면 기준선 483장. versionCode 877.
v3.29.962026-08-20
큰 글씨에서 차트 눈금이 그래프 위로 삐져나왔습니다
  • 내부 검증 2721건 · 화면 기준선 482장. versionCode 876.
v3.29.952026-08-20
글씨를 키워도 차트 눈금만 그대로였습니다
  • 내부 검증 2716건 · 화면 기준선 481장. versionCode 875.
v3.29.942026-08-20
글씨를 키우면 매수 신호와 매도 신호를 구별할 수 없었습니다
  • 내부 검증 2711건 · 화면 기준선 476장. versionCode 874.
v3.29.932026-08-20
조용한 화면 넷에 확인용 그림을 붙였습니다
  • 이용약관 — 이 앱이 동의를 받는 글입니다(첫 실행 동의 화면이 이리로 들어옵니다). 보통 크기와 글씨 200% 두 장을 만들었습니다.
  • 오픈소스 라이선스 — 지켜야 하는 의무인데 그림이 없었습니다.
  • 방향을 말할 수 없는 흐름 — 「방향이 뚜렷하지 않습니다」가 두 줄 연달아 뜨던 옛 결함을 고쳐 놓고, 그 고침을 지키는 그림이 한 장도 없었습니다. 이제 있습니다.
  • 추세와 구조가 어긋나는 두 경우 가운데 없던 한쪽.
  • 내부 검증 2711건 · 화면 기준선 473장. versionCode 873.
v3.29.922026-08-20
정반대를 말하는 문구 두 쌍을 그림으로 못 박았습니다
  • 「그 봉은 위쪽에 마감했습니다 — 쏟아진 물량을 사는 쪽이 받아 냈습니다」 ↔ 「아래쪽에 마감했습니다 — 파는 쪽이 밀어냈습니다」
  • 저항에서 밀렸습니다」 ↔ 「지지가 한 번 더 받쳤습니다」
  • 내부 검증 2711건 · 화면 기준선 468장. versionCode 872.
v3.29.912026-08-20
「거래대금」 탭이 거래대금을 안 보여 주고 있었습니다
  • 내부 검증 2711건 · 화면 기준선 466장. versionCode 871.
v3.29.902026-08-20
변동성 응축(스퀴즈)까지 못 박았습니다
  • 내부 검증 2711건 · 화면 기준선 464장. versionCode 870.
v3.29.892026-08-20
지표 넷을 더 못 박고, 정의 하나를 찾아냈습니다
  • 내부 검증 2710건 · 화면 기준선 464장. versionCode 869.
v3.29.882026-08-20
지표 계산을 «다른 손»이 계산한 값으로 못 박았습니다
  • 자료는 실제 시장의 봉입니다(2026-03-24 ~ 08-19). 손으로 지어낸 톱니가 아니라 거래가 뜸한 날·급등락·폭이 좁은 날이 섞여 있습니다.
  • ADX만 자릿수를 한 단계 늦췄습니다. 값이 아니라 더하는 차례가 달라 소수점 다섯째 자리에서 갈리기 때문이고, 왜 늦췄는지를 그 자리에 적어 두었습니다.
  • 내부 검증 2706건 · 화면 기준선 464장. versionCode 868.
v3.29.872026-08-20
점검 도구가 «앱이 깨졌다»고 거짓말을 했습니다
  • 가로로 누운 기기에서는 세로로 두라고 말하고 멈춥니다. 잘못된 답을 내느니 낫습니다.
  • 「못 찾았다」와 「못 봤다」를 가릅니다 — 화면을 못 읽은 것이면 그렇다고 적습니다.
  • 내부 검증 2700건 · 화면 기준선 464장. versionCode 867.
v3.29.862026-08-20
위젯을 큰 글씨로 쓰실 때를 그림으로 못 박았습니다
  • 한국어 200%, 번체 중국어 200% 두 장을 더했습니다. 둘 다 접힌 배치로 온전히 그려집니다.
  • 기기 훑기 도구가 가로로 누운 기기에서 조용히 헛돌던 것도 고쳤습니다. 이제 세로로 두라고 말하고 멈춥니다 — 잘못된 답을 내느니 안 하는 편이 낫습니다.
  • 내부 검증 2698건 · 화면 기준선 464장. versionCode 866.
v3.29.852026-08-20
지표 설명 화면에서 값과 닫기 단추가 사라졌습니다
  • 내부 검증 2698건 · 화면 기준선 462장. versionCode 865.
v3.29.842026-08-20
글씨를 키우면 업데이트 배너를 닫을 수 없었습니다
  • 그 안내 한 줄은 여태 어떤 확인용 그림에도 없었습니다. 이제 있습니다.
  • 번체 중국어 × 큰 글씨 그림도 일곱 장 더했습니다 — 한 글자가 넓어 가장 먼저 터지는 언어인데, 그 칸이 비어 있었습니다.
  • 내부 검증 2698건 · 화면 기준선 461장. versionCode 864.
v3.29.832026-08-20
글씨를 키우면 차트 높이 단추가 화면 밖으로 밀려났습니다
  • 내부 검증 2698건 · 화면 기준선 452장. versionCode 863.
v3.29.822026-08-20
번체 중국어 기기에서 안내가 간체로 나왔습니다
  • 내부 검증 2698건 · 화면 기준선 447장. versionCode 862.
v3.29.812026-08-20
업데이트 안내가 일본어·중국어 화면에서는 비어 있었습니다
  • 다섯 언어를 한 자리에 함께 적도록 바꿨습니다. 나뉘어 있으면 하나만 낡습니다.
  • 중국어는 간체·번체를 가릅니다. 기기가 말해 주는 언어 코드는 「zh」 하나뿐이라 여태 가를 수 없었는데, 이제 지역까지 함께 보고 고릅니다.
  • 다섯 언어가 모두 준비됐는지, 각 문장이 문장으로 끝나는지 자동으로 확인합니다.
  • 내부 검증 2698건 · 화면 기준선 447장. versionCode 861.
v3.29.802026-08-20
기기 언어가 숫자 표기를 흔들지 못하게 못 박았습니다
  • 뉴스 시각을 읽는 부분이 같은 함정이라고 의심했지만, 실제로 시험해 보니 그쪽은 기기 언어를 따라가지 않았습니다. 고쳤다면 없는 문제에 이야기를 붙일 뻔했습니다.
  • 업데이트 파일 검증에 쓰는 16진수 표기도 재 봤습니다. 숫자 모양이 다른 언어를 기본으로 놓고 시험해도 그대로였습니다.
  • 내부 검증 2694건 · 화면 기준선 447장. versionCode 860.
v3.29.792026-08-20
업데이트 안내 문장이 중간에서 끊겨 있었습니다
  • 내부 검증 2692건 · 화면 기준선 447장. versionCode 859.
v3.29.782026-08-20
어두운 화면의 확인용 그림 39장이 앱 색을 지키지 않고 있었습니다
  • 그림 찍는 틀에 감싸개를 넣어 167장을 앱과 같은 색으로 다시 찍었습니다.
  • 앞으로 같은 일이 생기면 바로 걸리도록, 검정 글자를 픽셀로 세는 검사를 넣었습니다. 칠해 놓은 검은 바탕(위젯 그림)과 검정 «글자» 를 덩이 크기로 가릅니다.
  • 「밝은 화면인데 어두운 바탕에 얹은」 그림 한 장도 찾아 고쳤고, 그 어긋남 자체를 막는 검사도 함께 넣었습니다.
  • 내부 검증 2690건 · 화면 기준선 447장. versionCode 858.
v3.29.772026-08-20
글씨를 키우면 캔들 차트 버튼이 사라졌습니다
  • 내부 검증 2687건 · 화면 기준선 447장. versionCode 857.
v3.29.762026-08-19
「거래량」이라 부르던 정렬은 사실 「대금」이었습니다

> 이번 판: 목록 정렬 이름을 실제 기준에 맞게 바로잡았습니다(영어 화면).

목록을 정렬하는 기준 하나는 그날 거래된 돈입니다(업비트의 24시간 누적 거래대금).

거래된 수량이 아닙니다. 둘은 다른 값이고, 값이 싼 코인일수록 크게 갈립니다.

한국어·일본어·중국어 화면은 그것을 제대로 불렀습니다 — 「대금순」·「売買代金順」·

「成交额」. 영어 화면만 「Volume」이었습니다. 다섯 언어 가운데 하나만 다른 뜻을

말하고 있었으니, 고칠 쪽은 영어입니다 → 「Turnover」.

스토어 설명 열 언어가 모두 「거래량」이라고 적혀 있었습니다

앱 화면은 진작 고쳐졌는데 설치 전에 읽는 글은 그대로였습니다 —

「거래량순」·「volume」·「出来高」·「成交量」·「объём」. 열 언어를 모두 앱의 말에

맞췄습니다.

저희는 같은 자리에서 이미 한 번 데었습니다. 앱 안에서 「거래대금」이 번역마다 갈렸던

것을 검사가 잡아 고쳤는데, 그때 스토어까지 가지 않았습니다. 앱만 고치고 설명을

두면 약속과 실물이 갈립니다.

  • 내부 검증 2687건 · 화면 기준선 443장. versionCode 856.
v3.29.752026-08-19
알림 화면의 첫 문장이 오해를 부르고 있었습니다

> 이번 판: 알림 화면 첫 문장이 헷갈리게 적혀 있던 것을 바로잡았습니다.

알림 화면 맨 위에 이렇게 적혀 있었습니다 —

> 임계값 도달 시 한 번 알립니다. 기본은 꺼져 있으며, 규칙을 켤 때만 백그라운드로

> 확인합니다.

바로 그 아래가 「알림 추가」 폼입니다. 그런데 폼으로 만든 규칙은 만들자마자 켜집니다.

문장이 거짓말은 아니었습니다. 규칙이 하나도 없으면 앱은 아무 알림도 보내지 않으니

「기본은 꺼져 있다」가 맞습니다. 문제는 읽는 자리였습니다 — 추가 폼 바로 위에서

「켤 때만」이라고 하면 「내가 만든 규칙은 꺼진 채로 생기고 내가 따로 켜야 한다」로

읽힙니다. 「나중에 쓰려고」 만들어 둔 분은 그날 밤 알림을 받게 됩니다.

문장을 앱이 하는 대로 고쳤습니다. 약속은 그대로 남깁니다

> 임계값 도달 시 한 번 알립니다. 규칙을 만들기 전에는 아무 알림도 보내지 않습니다.

> 새 규칙은 만들면 바로 켜지고, 끄면 확인하지 않습니다.

다섯 언어 모두 고쳤습니다. 앞으로 한쪽만 바뀌면 검사가 잡습니다 — 폼이 규칙을 켠 채로

만드는 한, 어느 언어도 「기본은 꺼져 있다」고 말할 수 없습니다.

  • 내부 검증 2687건 · 화면 기준선 443장. versionCode 855.
v3.29.742026-08-19
계산기·변동성 칸의 나눗셈을 마저 막았습니다

앞 판에서 시세가 들어오는 자리의 나눗셈 넷을 막았습니다. 이번에는 **사용자가 직접

치는 수(계산기)와 종가 목록을 받는 계산**을 같은 방식으로 두들겼습니다.

  • 청산가·손익분기: 「거부」로 판정하고 있었습니다. `레버리지 < 1배면 거부`는 말이 되는데, 「숫자가 아닌 값」은 그 비교를 그냥 지나갑니다(숫자 아닌 값이 낀 비교는 전부 거짓입니다). 김치 프리미엄은 같은 이유로 진작 「수용」으로 판정하고 있었는데 이 파일만 아니었습니다.
  • 김프 실수익: 입력이 셋 다 멀쩡해도 곱이 넘칠 수 있었습니다.
  • 변동성 칸: 종가에 0이 섞이면 로그가 무한대가 되어 계산 전체가 무너졌습니다.
  • 변동성 순위: 설명이 「1~100」을 약속하는데 범위 밖 입력에 「상위 101%」가 나왔습니다. 입력칸이 길이를 묶고 있어 지금은 닿지 않는 자리입니다. 그래도 막았습니다 — 이 함수들은 입력칸 밖에서도 불리고, 형제 함수는 이미 그 덫을 알고 있었습니다.
알림을 실기기에서 한 바퀴 돌았습니다

규칙 만들기 → 게시 → 되풀이 안 함 → 지우기까지 확인했습니다. 게시 경로(채널·권한·

아이콘·문구)는 「테스트 알림 보내기」로 봤는데, 그 버튼은 실제 알림과 같은 코드

부릅니다. 확인이 끝난 뒤 규칙과 알림은 지웠습니다.

  • 내부 검증 2680건 · 화면 기준선 442장. versionCode 854.
v3.29.732026-08-19
나눗셈이 넘치는 자리 넷을 막았습니다

앞서 지표 계산을 얇고 평평한 봉으로 두들겼습니다. 그 위층 — 거래소·환율·글로벌

시세가 한 값씩 들어오는 자리 — 는 아직이었습니다. 여기도 나눗셈이 많습니다. 김치

프리미엄은 환율로 나누고, 채산성은 하루 발행량으로 나누고, 손익률은 매수금액으로

나눕니다. 그 분모는 바깥에서 옵니다.

말이 되지 않는 값(0·음수·아주 작은 값·아주 큰 값·빈 값)을 1만 번 넘게 넣어

보니 네 자리가 무한대나 「숫자 아닌 것」을 냈습니다 —

  • 김치 프리미엄
  • 미국 프리미엄
  • 내 자산 합계의 수익률
  • 보유 한 줄의 손익률 지금 오는 값으로는 닿지 않는 자리입니다. 그래도 막았습니다. 이유는 이렇습니다: 형제 함수가 이미 그 덫을 알고 있었습니다. 채산성 계산은 진작 「나온 값이 유한한지」 를 확인하고 있었는데, 같은 모양의 다른 계산 넷은 들어온 값만 보고 있었습니다. 한 파일이 아는 것을 옆 파일이 모르는 자리는, 언젠가 한쪽에서 사고가 납니다.
돈 자리는 원래대로 둡니다

합계가 넘치는 것은 산술의 사실입니다. 그리고 이 앱에서 **모르는 돈의 표기는 이미

정해져 있습니다 — 「-」입니다. 그래서 돈 자리는 손대지 않고, 판정에 쓰는 값**

(색과 문구를 가르는 비율)만 반드시 숫자가 되게 했습니다. 검사도 「합이 유한한가」가

아니라 「화면에 숫자 아닌 것이 찍히는가」를 묻습니다.

  • 내부 검증 2678건 · 화면 기준선 442장. versionCode 853.
v3.29.722026-08-19
같은 걸러내기를 「새 버전 안내」에도 겁니다

앞 판에서 기사 제목의 보이지 않는 글자를 걷어냈습니다. 그 걸러내기를 한 곳으로 옮기고,

화면에 그대로 나가는 다른 바깥 글에도 함께 걸었습니다 — 새 버전 안내 배너의

판 이름과 설명입니다.

여기 위험은 남이 아니라 저희 자신입니다. 릴리스 노트에 도구가 만든 제어 문자가

섞인 적이 실제로 있었습니다(그때 소스 파일을 지키는 검사가 생겼습니다). 배너의 글은

그 노트에서 옵니다.

「바깥에서 온 글」이 어디로 들어오는지 세어 보고, 걸러내기를 한 곳에만 두었습니다.

  • 내부 검증 2671건 · 화면 기준선 442장. versionCode 852.
v3.29.712026-08-19
남이 준 기사 제목에서 「보이지 않는 글자」를 걷어냅니다

기사 제목은 바깥 RSS 에서 그대로 옵니다. 앱이 만든 값이 아닙니다. 그리고 이 앱은

RSS 주소를 직접 넣으실 수 있어서(설정 → 뉴스 출처) 「기본 매체만 믿으면 된다」로

끝나지 않습니다.

XML 에는 글자를 숫자로 적는 방법이 있고, 앱은 그것을 진짜 글자로 되살립니다

(곡선따옴표·말줄임을 살리려고 그렇게 합니다). 그 문으로 눈에 보이지 않는 글자

들어올 수 있었습니다 —

  • 글자 순서를 뒤집는 글자(U+202E 계열) — 제목이 화면에서 다른 말로 읽히게 만들 수 있습니다.
  • 폭 없는 공백(U+200B·U+FEFF) — 눈에 안 보이면서 글자 수만 늘립니다. 같은 제목이 서로 다른 것처럼 보입니다.
  • 제어 문자(줄바꿈 등) — 한 줄짜리 칸이 깨집니다. 이제 제목·분류·주소가 화면에 닿기 전에 이런 글자를 잃습니다. 뜻이 있는 것은 살립니다 — 가족 이모지를 만드는 붙임 글자(U+200D)는 건드리지 않습니다.
규칙은 이미 있었는데 문에는 없었습니다

이 저장소는 소스 파일의 제어 문자를 진작 막고 있었습니다(정규식에 백스페이스가

섞여 검사가 아무것과도 안 맞은 적이 있어서 생긴 규칙입니다). 같은 규칙이 **자료가

실제로 들어오는 문**에는 없었습니다.

지우는 것과 공백으로 바꾸는 것을 갈랐습니다 — 서식 글자는 지우고(그 자리에 공백을

넣으면 낱말이 갈라집니다), 제어 문자는 공백으로 바꿉니다(지우면 두 낱말이 붙습니다).

  • 내부 검증 2670건 · 화면 기준선 442장. versionCode 851.
v3.29.702026-08-19
낭독기가 「삼십오 점 영로 하락」이라고 읽었습니다

지표 그림에는 소리로 읽어 주는 설명이 붙어 있습니다. 실기기에서 들어 보니 이렇게

들렸습니다 —

> ADX (14). 42.8에서 35.0로 하락. 최고 42.8, 최저 25.7.

우리말의 「로/으로」는 앞말이 홀소리로 끝나는지 닿소리로 끝나는지에 따라 갈립니다.

그런데 문구에는 「%s」라고 한쪽만 적혀 있어서, 값이 무엇이든 늘 「로」가

나갔습니다 —

| 값 | 읽는 소리 | 나가던 말 | 옳은 말 |

|---|---|---|---|

| 59.2 | …이 | 59.2로 | 59.2로 |

| 35.0 | …영 | 35.0로 | 35.0으로 |

| −867,213 | …삼 | −867,213로 | −867,213으로 |

눈으로 읽을 때는 잘 안 보이지만 소리로 들으면 바로 걸립니다.

값이 무엇일지 미리 알 수 없는 자리에서는 갈리지 않는 말을 쓰는 것이 유일하게

옳습니다. 「%s에서 %s까지 하락」으로 바꿨습니다.

같은 자리를 넷 찾아 함께 고쳤습니다 —

  • 지표 그림 설명(위)
  • 「지표는 5대 3 기울었지만」 → 「5대 3인데
  • 다이버전스 두 문장은 지표 이름을 앞으로 뺐습니다(「RSI (14): 가격은 새 고점인데 지표가 못 따라왔습니다」) 일본어·중국어에는 이 문제가 없습니다(「は」·「但」은 갈리지 않습니다). 앞으로 같은 자리가 생기면 검사가 잡습니다.
  • 내부 검증 2664건 · 화면 기준선 442장. versionCode 850.
v3.29.692026-08-19
화면은 그대로입니다 (같은 기간을 세 곳이 각자 적고 있었습니다)

코인 상세의 기간 여섯 개(15분·30분·1시간·4시간·일·주)는 「어느 거래소에서 몇 봉을

받는가」라는 규격을 갖습니다. 캔들 캐시는 그 규격의 엔드포인트와 개수로 열쇠를

만듭니다 — 그래서 같은 기간을 두 곳이 각자 적으면 **개수 하나만 달라도 열쇠가 갈리고,

같은 코인을 두 번 받아옵니다.**

예전에 실제로 그랬습니다(알림은 120봉, 화면은 150봉). 그때 일봉 규격을 한 곳으로

모으면서 그 자리에 이렇게 적어 두었습니다 —

> 일봉 지정은 여기 하나뿐이다.

그런데 그 규칙이 일봉에만 적용돼 있었습니다. 나머지 다섯 기간은 상세 화면과

기술적 분석 절이 각자 적고 있었고, 1시간·4시간은 같은 줄이 두 벌 있었습니다.

오늘은 값이 같아서 탈이 없지만, 한쪽만 고치는 날 화면과 다중기간 판정이 **다른

자료로** 말하게 됩니다.

여섯 기간에 모두 이름을 주고 목록도 한 곳에서 만듭니다. 손으로 적을 자리를 없앴고,

남아 있으면 검사가 잡습니다. 처음 보여 주는 기간도 「4번째」라는 수 대신 세어서

찾습니다 — 기간이 하나 끼어들면 그 수는 말없이 다른 기간을 가리킵니다.

빈 자리를 찾아 주던 도구가 엉뚱한 이름을 대고 있었습니다

열거형 값 가운데 그림에 한 번도 안 나오는 것을 세는 도구가 있습니다. 그 도구가

`ThemeMode → UPBIT, BITHUMB, …` 라고 찍고 있었습니다 — 이름과 값이 어긋난 목록을

보고 빈 자리를 찾고 있었던 셈입니다. 한 줄짜리 열거형의 본문이 뒤따르는 다른 열거형을

삼켰고, 객체 안에 든 열거형은 아예 안 보였습니다.

고치니 훑는 열거형이 열 몇 개에서 48개로 늘었습니다. 이제 몇 개를 훑었는지도 함께

찍습니다 — 도구가 조용히 아무것도 안 보는 것이 이 저장소가 여러 번 데인 모양입니다.

검사의 「이름」과 「단언」을 대조하는 훑기를 더했습니다

앞 판에서 검사 이름이 제 단언의 반대를 말하던 것을 하나 잡았습니다. 같은 자리가

또 있는지 2,560개를 훑었습니다 — 남은 것은 없었습니다.

  • 내부 검증 2662건 · 화면 기준선 442장. versionCode 849.
v3.29.682026-08-19
갓 상장한 코인의 지표 패널이 「NaN」이라고 말하던 것을 고쳤습니다

지표 패널(RSI·스토캐스틱·MACD·스퀴즈·ADX·OBV)은 세로로 쌓여 있습니다. 나란히 놓인

패널이 같은 시각을 가리키게 하려고, 봉이 모자란 앞쪽은 빈 자리로 남깁니다 —

지표마다 필요한 봉 수가 다르기 때문입니다(RSI 14봉·ADX 27봉·MACD 35봉).

그림은 그 빈 자리를 건너뜁니다. 말은 아니었습니다.

1. 화면에 「MACD NaN」이 떴습니다

빈 자리를 값으로 세면, 하나도 계산되지 않은 지표도 「값이 있다」로 읽힙니다.

봉이 30~34개인 코인 — 갓 상장했거나 주봉으로 보는 코인 — 은 MACD 가 35봉을

요구해 계산이 통째로 비는데, 그 자리에 빈 패널이 뜨고 값에는 `NaN` 이 찍혔습니다.

이제 그릴 값이 없으면 패널이 뜨지 않습니다. 「앞이 모자라다」와 「하나도 없다」는

다른 일입니다.

2. 낭독기가 없는 값을 읽었습니다

빈 자리가 섞이면 최고·최저가 `NaN` 이 되고, 첫값과의 뺄셈도 `NaN` 이라 방향이

「보합」으로 떨어집니다. 그래서 뚜렷이 오르는 지표가 「보합」으로 들렸습니다

> "ADX. NaN에서 34.9로 보합. 최고 NaN, 최저 NaN."

이제 낭독도 그림이 실제로 그린 값만 읽습니다. 눈으로 보는 것과 귀로 듣는 것이

같아졌습니다.

3. 값이 없는 것에는 색도 붙이지 않습니다

등락 방향을 정하는 자리가 무한대를 상승으로 봤습니다. 숫자 자리에는 「-」가

찍히는데 색만 붙는 셈이라, 없는 것을 가리키는 표시가 됩니다.

이건 검사가 잡아야 할 것을 승인하고 있었습니다. 검사 이름은

「비유한값은 보합」인데 그 안의 두 줄이 그 반대를 못 박아 두었습니다.

코드가 아니라 검사를 먼저 의심해야 했던 자리입니다.

나머지는 훑어서 확인했습니다

지표 계산 전체를 얇거나 평평한 자료로 두들겼습니다 — 봉 수 24가지(0~200개) ×

모양 9가지(폭이 0인 봉·거래량 0·전부 0·아주 작은 값·아주 큰 값…)로 만 이천 번

넘게 불러, 계산에서 새는 `NaN`·무한대가 없음을 확인했습니다. 새던 곳은 화면 쪽뿐이었고,

그 둘이 위의 1·2번입니다.

  • 내부 검증 2658건 · 화면 기준선 442장. versionCode 848.
v3.29.672026-08-19
화면은 그대로입니다 (조용히 죽는 자리를 검사로 막았습니다)

앱 안에 이런 주석이 있었습니다 —

> 이 앱에는 코드가 아니라 습관으로 지켜지는 규약이 둘 있다: 블로킹 네트워크는

> 호출부가 IO 로 옮겨서 부른다 … 둘 다 지금은 지켜지고 있지만(2026-07-27 감사),

> 한 줄만 어긋나도 조용히 무너진다.

무너지는 모양까지 적혀 있었습니다. 메인 스레드에서 네트워크를 부르면 통신 코드가

예외를 삼켜 그 기능이 조용히 죽습니다. 오류 화면도, 크래시도 없습니다.

DB 쪽은 검사가 지키고 있었는데 네트워크 쪽만 비어 있었습니다. 이제 화면에서

부르는 블로킹 통신이 IO 밖에 있으면 바로 걸립니다. 오늘 기준 어긴 자리는 없습니다.

검사를 만들다 두 번 헛돌았습니다

만든 검사가 처음엔 아무것도 안 보면서 통과했습니다. 두 번 다 위반을 일부러

넣어 보고서야 알았습니다 —

1. 함수 이름만으로 셌더니, 이름이 같고 성질이 다른 둘(하나는 안전, 하나는 아님)이

섞였습니다.

2. 고친 뒤에는 소유자 이름을 파일의 첫 선언에서 읽었는데, **오늘 그 파일 맨 위에

새 자료형이 생기면서** 그 파일의 함수가 통째로 엉뚱하게 묶였습니다.

「검사를 만들었다」와 「검사가 잡는다」는 다릅니다.

  • 내부 검증 2648건 · 화면 기준선 442장. versionCode 847.
v3.29.662026-08-19
화면은 그대로입니다 (주석에만 있던 규칙 셋을 검사로)

앞 판에서 배운 것이 있습니다. 코드에 「이렇게 하면 안 된다」고 **적어 두었는데 바로

다음 줄이 그것을 어기고** 있었습니다. 주석은 규칙이 아닙니다 — 규칙이 되려면 검사가

있어야 합니다.

그래서 그런 주석 106개를 훑어, 어겼을 때 조용히 나쁜 셋을 골라 검사로

만들었습니다. 셋 다 지금은 지켜지고 있습니다 — 지켜지는 것을 못 박는 것도 일입니다.

실시간 소켓은 전용 연결로 연다

보통 연결에는 「8초 안에 끝나야 한다」는 제한이 걸려 있습니다. 그런데 실시간 소켓은

끝나지 않는 것이 정상입니다. 거래가 뜸한 코인만 보고 있으면 8초 침묵이

자연스러운데, 그때 끊기면 재연결이 쌓여 실시간이 오히려 느려집니다. 증상이

「점점 느려진다」라 원인에 닿기 어려운 자리입니다.

사용자가 넣은 열쇠는 캐시 이름에 안 들어간다

캐시 이름은 기기 안 DB 에 글자 그대로 남습니다. ETF 순유입 키를 거기 섞으면

그 값이 DB 에 눕습니다.

「출처 모름」 표시는 화면에 안 나간다

캐시의 한 경로는 출처를 모른 채 자료만 돌려주므로 「?」를 넣어 둡니다. 그 값이 화면에

닿으면 사용자는 「?」라는 거래소를 보게 됩니다.

  • 내부 검증 2646건 · 화면 기준선 442장. versionCode 846.
v3.29.652026-08-19
「거래량이 실렸다」가 「오른다」로 읽히지 않게

거래량 확증 줄은 「최근 움직임에 거래량이 실렸습니다」라고 말합니다. **오른다는 뜻이

아닙니다** — 내린 움직임에 거래량이 실렸을 때도 같은 말을 합니다.

그런데 그 줄의 이름표가 상승색이었습니다. 값이 내렸는데 라벨은 오름을 가리키는

색이라, 「거래량이 실렸다」가 「오른다」로 읽힐 수 있었습니다.

이제 중립색으로 칠합니다. 확증인지 아닌지는 글이 말합니다 — 「거래량이

실렸습니다」와 「거래량 없이 움직였습니다」로 갈립니다.

코드에 이미 적혀 있던 말이었습니다

그 함수에는 이런 주석이 있었습니다 — 「확증은 방향이 아니라 근거의 강약이다. 오른

것을 확증했다고 초록, 내린 것을 확증했다고 빨강으로 칠하면 "거래량이 실렸다"가

"오른다"로 읽힌다.」

그렇게 적어 놓고 코드는 반대로 하고 있었습니다. 주석은 규칙이 아닙니다 — 규칙이

되려면 검사가 있어야 합니다. 이제 검사가 지킵니다.

  • 내부 검증 2643건 · 화면 기준선 442장. versionCode 845.
v3.29.642026-08-19
색이 통념 대신 측정을 따릅니다

기간 엇갈림 줄은 네 모양을 가릅니다. 그중 둘은 시장에서 이름이 붙어 있습니다 —

「눌림목」(긴 기간 상승·짧은 기간 하락)과 「거스르는 반등」(그 반대). 통념은

앞엣것을 좋은 자리로, 뒤엣것을 위험한 자리로 읽습니다.

이 앱은 그것을 재 봤고, 같은 줄에 이렇게 적어 두고 있었습니다 —

  • 눌림목: 「재 보니 이 모양 뒤 20봉의 방향은 기준선보다 낫지 않았습니다(−5.1과 −1.4 포인트)」
  • 반등: 「재 보니 이 모양 뒤 20봉의 방향은 기준선과 같았습니다(+0.0과 +0.4 포인트)」
  • 그리고: 「기간끼리 맞느냐 엇갈리느냐로는 판독의 수명도 방향도 갈리지 않았습니다그런데 색 하나만 통념을 따르고 있었습니다. 눌림목은 상승색, 반등은 하락색이었습니다. 이 앱에서 색은 「이 근거가 어느 쪽으로 기운다」는 뜻이니, 세 문장과 정면으로 어긋났습니다. 기울지 않는다고 잰 자리는 기울지 않게 칠합니다. 글은 그대로입니다 — 두 모양을 가르는 것 자체는 값이 있습니다(무엇이 일어났는지는 서로 다릅니다). 바뀐 것은 그것이 좋은 일이라는 암시뿐입니다.
어떻게 찾았나

「눌림목」 문장은 한 번도 그려진 적이 없었습니다. 확인용 그림의 기간 편향이 한

벌뿐이라 늘 「정렬」만 나왔기 때문입니다. 안 그려진 갈래를 세어서 찾는 도구를

만들어 돌렸더니 그 자리가 나왔고, 네 모양을 한 그림에 그리자 색과 글의 모순이

바로 보였습니다.

  • 내부 검증 2642건 · 화면 기준선 442장. versionCode 844.
v3.29.632026-08-19
기술적 신호 알림도 같은 안내를 받습니다

앞 판에서 「이미 알렸습니다. 조건이 풀리면 다시 알립니다.」를 넣었는데, **기술적 신호

규칙만 그 줄이 안 붙었습니다.**

알림 종류마다 조용해지는 방식이 다르기 때문입니다. 가격·김프·급등락·RSI 는 「이미

알린 규칙」 목록으로 기억하는데, 기술적 신호는 마지막 판정 단계로 기억합니다 —

「강한 매수」나 「강한 매도」로 바뀔 때만 울리기 때문입니다. 앞 판은 앞엣것만 화면에

실어서, 하필 이 앱이 가장 앞세우는 종류가 빠졌습니다.

이제 둘을 합쳐 봅니다. 화면은 그 차이를 몰라도 되고, 어떤 종류든 조용한 이유가 같은

문장으로 나옵니다.

  • 내부 검증 2639건 · 화면 기준선 440장. versionCode 843.
v3.29.622026-08-19
한 번 울린 알림이 왜 조용한지 말합니다

이 앱의 알림은 조건에 닿으면 한 번만 울리고, 조건이 풀릴 때까지 조용합니다.

같은 값에서 계속 울리면 알림이 아니라 소음이 되기 때문입니다.

그런데 그 사실이 화면에 없었습니다. 규칙은 켜져 있고 조건도 맞는데 알림이 안

오니, 기다리는 분은 「고장인가」 싶으셨을 겁니다. 이제 그 규칙에 이렇게 적습니다 —

「이미 알렸습니다. 조건이 풀리면 다시 알립니다.」

앱은 그 상태를 이미 알고 있었습니다. 같은 값에서 두 번 울리지 않게 하려고

기록해 두는 것이었는데, 화면에는 안 실려 있었을 뿐입니다.

꺼 둔 규칙에는 붙이지 않습니다. 꺼져 있으면 조용한 이유가 그것이 아니라서, 그때

이 줄을 붙이면 없는 것을 가리키는 표시가 됩니다.

  • 내부 검증 2638건 · 화면 기준선 440장. versionCode 842.
v3.29.612026-08-19
판독 줄의 빼기표까지 같은 글자로

앞 판에서 지표 값의 빼기표를 앱의 것(진짜 마이너스 −)으로 맞췄는데, **판독 줄만

하이픈으로 남아 있었습니다.** 같은 일을 하는 함수가 화면 쪽과 계산 쪽에 하나씩

있었고 화면 쪽만 고쳤기 때문입니다(기기에서 「스퀴즈 모멘텀 -725,421」로 확인).

「−DI」도 함께 맞췄습니다. 같은 줄에 서는 「+DI」와 짝인데 한쪽만 하이픈이라 높이와

폭이 어긋났습니다. 다섯 언어 전부 그랬습니다.

보이지 않는 글자 셋을 걷어냈습니다

확인하다가 눈에 안 보이는 제어 문자가 세 군데 들어 있는 것을 찾았습니다. 셋 다

도구가 만든 것입니다.

  • 새로 만든 검사의 정규식에 백스페이스가 섞여 있었습니다. 그 검사는 아무것과도 맞지 않는 상태로 초록불이었습니다 — 지키는 것이 하나도 없었는데 통과하고 있었던 것입니다.
  • 인수인계 문서의 안드로이드 도구 경로에서 역슬래시 a 가 경고음 문자가 됐습니다. 그 경로를 복사하면 실행되지 않습니다.
  • 같은 문서의 검색 명령에서 역슬래시 b 가 백스페이스가 됐습니다. 복사해 쓰면 아무것도 안 잡힙니다. 이제 소스와 문서에 그런 글자가 들어가면 바로 걸립니다.
계산은 다시 맞대 봤습니다

스퀴즈 모멘텀을 거래소 원자료로 직접 계산하니 −723,332, 앱은 −725,421 입니다

(진행 중인 봉만큼의 차이). 「변동성 응축」 판정도 같습니다. 채굴 원가도 손으로 검산해

$49,957 대 앱 $49,958 로 맞았습니다.

  • 내부 검증 2634건 · 화면 기준선 438장. versionCode 841.
v3.29.602026-08-19
「MACD」라고 적힌 수가 MACD 였습니다

한 화면이 같은 이름으로 두 가지를 말하고 있었습니다.

  • 신호 목록: 「MACD 0선 하향」 — MACD 이 0 아래로 내려갔다는 뜻입니다.
  • 지표판: 「MACD +141,738」 — 이건 선이 아니라 히스토그램(선 − 시그널)이었습니다. 같은 순간의 비트코인 일봉에서 선은 −869,447, 히스토그램은 +140,909 였습니다. 「0선 아래」라고 말하면서 그 옆에 양수를 적고 있었던 셈입니다. 화면 낭독기에도 히스토그램을 「MACD」로 읽어 줬습니다. 이제 이름 옆의 수와 낭독기가 MACD 선을 말합니다. 그림은 그대로입니다 — 막대(히스 토그램)·선·시그널 셋을 함께 그리는 것이 표준이고, 바뀐 것은 이름이 가리키는 수뿐입니다.
어떻게 찾았나

화면에 사실로 적히는 숫자들을 거래소 원자료로 직접 계산해 맞대 봤습니다.

RSI(14) 41.3, ADX(14) 34.9, 스토캐스틱 %K 59.0, OBV −7,316 은 모두 정확히

일치했고, MACD 만 어긋났습니다. 부호까지 달라 그 자리에서 드러났습니다.

곁들여 — 지표 값의 뺄셈 기호

같은 화면에 「사상 최고가 대비 49.4%」와 「MACD -868,968」이 나란히 있었습니다.

앞은 진짜 마이너스, 뒤는 하이픈이라 높이와 폭이 어긋납니다. 지표 값도 앱의 부호를

쓰도록 맞췄습니다. 화면 낭독기도 진짜 마이너스는 「마이너스」로 읽어 줍니다.

  • 내부 검증 2632건 · 화면 기준선 438장. versionCode 840.
v3.29.592026-08-19
눈에 보이는 변화는 없습니다 (안전망을 넓혔습니다)

이번 판은 화면이 달라지지 않습니다. 대신 다음에 무언가 망가졌을 때 그것을 잡아 줄

그물을 넓혔습니다.

지표 설명 다섯 화면이 그림에 없었습니다

지표를 누르면 나오는 설명 화면은 열다섯 가지인데, 확인용 그림은 열 가지뿐이었습니다.

스토캐스틱·스퀴즈·ADX·볼린저·VWAP 은 한 번도 그려진 적이 없습니다. 채워 놓고 보니

다섯 다 멀쩡했습니다 — 다만 멀쩡한 것과 못 보고 있는 것은 다릅니다. 예전에 이

자리에서 두 번 당했습니다(알림 추가 폼의 「기술적 신호」 가지, 김프 규칙 줄). 이제

종류가 늘면 그림 없이는 통과하지 않습니다.

문구 속 뺄셈 기호

앱은 숫자의 빼기표에 진짜 마이너스(−)를 씁니다. 그런데 화면 글의 절반은 사람이

손으로 적은 문장이고, 거기에 하이픈(-)이 섞이면 같은 문장의 `+` 와 높이·폭이

어긋납니다. 한 글자 차이라 검토로는 거의 못 잡습니다. 다섯 언어 전부 지금은 0건이고,

그 상태가 유지되도록 검사를 뒀습니다.

QA 목록 하나를 바로잡았습니다

「구버전에서 업그레이드 배너가 뜨는가」가 안 한 것으로 남아 있었는데, 실제로는

2026-08-15 에 실기기로 끝까지 확인한 항목이었습니다(내려받기 → 해시 검증 → 서명

고정 → 설치 → 재기동). 근거를 적어 넣었고, 다시 확인하려면 기기를 비워야 한다

사실도 함께 적었습니다 — 그러면 보유·관심목록·알림이 사라지므로 하지 않습니다.

  • 내부 검증 2629건 · 화면 기준선 438장. versionCode 839.
v3.29.582026-08-19
김프 알림이 부호를 함께 적습니다

이 앱은 김치 프리미엄을 어디서나 부호와 함께 씁니다 — 「김프 +0.05%」·

「김프 −0.57%」. 그런데 알림과 알림 목록에서만 부호가 빠져 있었습니다.

양수에 `+` 가 없어 「기준 3.00% 도달」이라고 나왔고, 음수의 빼기표는 앱의 다른

숫자와 다른 글자(하이픈)였습니다.

역프(음수 김프)로 규칙을 거는 분이 실제로 계십니다 — 그 화면이 음수를 허용합니다.

그때 「기준 -1.50%」와 「기준 −1.50%」는 같은 뜻이지만 다른 글자이고, 알림은 앱

밖에서 읽히므로 나중에 고칠 기회가 없습니다.

급등·급락 기준값은 그대로 둡니다. 그쪽은 크기이고 방향은 종류 이름에 있습니다 —

「급락 −3% 이상」이라고 적으면 뜻이 겹칩니다.

바로 옆자리는 이미 고쳐져 있었습니다

급등·급락 알림에는 「부호는 `Format` 에서 온다」는 메모와 함께 이미 고쳐진 자리가

있었습니다. 그 옆의 김프 갈래만 남아 있었습니다. 한 자리를 고칠 때 같은 모양의

이웃을 함께 세어야 한다는 것을 또 배웠습니다.

김프 규칙은 그림에 그려진 적이 없었습니다

알림 화면 기준선이 여러 장 있었지만 전부 가격·기술신호 규칙이었습니다. 그래서 이

표기가 갈린 채로 오래 살았습니다. 이제 양·음 김프와 급등 규칙을 한 장에 담아,

다음 사람이 그 대비를 바로 볼 수 있게 했습니다.

  • 내부 검증 2625건 · 화면 기준선 432장. versionCode 838.
v3.29.572026-08-19
코인 목록이 몇 종을 감췄는지 말합니다

설정의 「코인 추가」는 수백 종 가운데 30종만 보여 줍니다. 그 자체는 옳습니다 —

수백 줄을 늘어놓으면 오히려 못 찾습니다. 문제는 자른 사실을 말하지 않은 것이었습니다.

목록을 끝까지 밀어도 안 나오는 코인은 「이 앱에 없다」로 읽힙니다. 이제 목록 위에

%d종이 더 있습니다. 이름이나 심볼로 검색해 보세요.」라고 적습니다. 자를 것이

없으면 아무 말도 하지 않습니다.

세는 방식은 검색과 같은 걸러내기를 씁니다. 둘이 어긋나면 「더 있다」고 말해 놓고

검색하면 안 나오는 상태가 되기 때문입니다.

글씨를 키우면 심볼과 이름이 붙어 있었습니다

그림을 만들어 놓고 보니 200%에서 「LINKChainlink」로 붙어 있었습니다. 심볼 칸을

「최소 폭」으로만 잡아서, 심볼이 그 폭을 넘는 순간 간격이 0이 됐습니다. 최소 폭은

정렬을 맞추는 도구지 간격이 아닙니다. 여백을 따로 줬습니다.

이 절은 그림이 한 장도 없었습니다

미리보기가 목록 조회를 돌리지 않아, 이 자리는 회전하는 동그라미 한 장으로만

찍혀 있었습니다 — 검색칸도, 행도, 안내도 한 번도 그려진 적이 없습니다. 목록을

주입할 수 있게 고쳐 네 장을 만들었고, 위의 「붙어 있던 글자」가 그 첫 그림에서

바로 나왔습니다.

  • 내부 검증 2620건 · 화면 기준선 431장. versionCode 837.
v3.29.562026-08-19
글씨를 키워도 앱 이름이 남습니다

글꼴을 200%로 키우면 홈 맨 위가 「오두막 …」이었습니다. 아이콘 넷이 자리를 먹고

남은 폭에 두 배 글자가 안 들어가서입니다. 말줄임 자체는 정직하지만, **잘려 나간 것이

제품 이름**이라 남은 글자로는 무엇인지 알 수 없습니다.

이 앱이 이미 답을 갖고 있었습니다 — 「폭이 모자라면 줄여서라도 온전히」. 숫자에 쓰던

그 규칙을 제목에도 씁니다. 하한은 200%에서 지금의 크기와 같게 잡았으니, 큰 글씨를

쓰시는 분이 손해 보지 않습니다.

그림이 앱을 담고 있지 않았습니다

코인 상세 머리글(심볼·큰 가격)은 색을 직접 정하지 않고 화면이 주는 색을 따릅니다.

앱에서는 시트가 흰색을 주는데, **미리보기 그림 넉 장은 그 색 없이 찍혀 있어 가장 큰

숫자가 배경과 같은 검정**이었습니다. 그 그림들은 가격 글자색이 망가져도 못 잡습니다 —

이미 안 보이니까요. 같은 파일의 라이트 판에는 진작 고쳐져 있었습니다.

「상승 초록」을 고른 화면의 그림이 두 장뿐이었습니다

등락색을 서양식으로 고를 수 있는데, 그 결과가 나타나는 그림은 코인 목록과 판단근거

둘뿐이었습니다. 예전에 이 자리로 한 번 새어 나간 적이 있습니다(설정을 바꿔도

주 화면은 빨강 상승 그대로였고 위젯만 초록이었습니다). 상세 머리글·시장 개요·

포트폴리오 손익·탐색 목록을 더해, 방향색을 쓰는 화면이 그 축에서 비지 않게 했습니다.

  • 내부 검증 2615건 · 화면 기준선 425장. versionCode 836.
v3.29.552026-08-19
누를 것이 없으면 누르라고 하지 않습니다

탐색 화면이 통신에 실패하면 「거래소 통신에 실패했습니다 · 다시 시도」가 뜹니다.

그런데 그 위에 「탭하여 내 목록에 추가」가 그대로 남아 있었습니다. 누를 것이

한 줄도 없는데 누르라고 한 것입니다.

순위 유의사항도 마찬가지였습니다. 순위가 없는데 순위를 조심하라고 했습니다.

조심할 것이 없을 때 나오는 주의문은, 다음에 진짜 나왔을 때도 안 읽히게 만듭니다.

두 줄 다 목록이 돌아오면 함께 돌아옵니다. 딸린 말이 제 것 없이 서는 일만

없앴습니다. 부르는 중에는 그대로 둡니다 — 그때 거두면 자료가 도착할 때 화면이

뜁니다.

규칙은 있었는데 한 줄에만 걸려 있었습니다

이 화면은 같은 규칙을 조회 시각 라벨(「N초 전」)에는 이미 적용하고 있었습니다.

「목록이 실제로 있을 때만 신선도를 말한다」라고 적어 두기까지 했습니다. 그 규칙이

바로 아래 두 줄에는 안 걸려 있었습니다.

빈 상태의 미리보기 그림에도 그 두 줄이 내내 찍혀 있었습니다. **그림은 있었고,

아무도 그 규칙으로 읽지 않았습니다.**

  • 내부 검증 2613건 · 화면 기준선 421장. versionCode 835.
v3.29.542026-08-19
통신이 끊겼을 때, 사라지지 않고 말합니다

통신이 안 되는 곳에서 홈을 열면 시장 개요는 「불러오지 못했습니다」라고 말하고

공포지수도 제 문구를 냅니다. 그런데 시장 맥박과 성과 비교는 그냥 없어졌습니다.

사라진 것은 실패로 안 읽힙니다. 사용자는 그런 절이 원래 없는 줄 압니다.

고침이 그림에만 살아 있었습니다

시장 맥박 카드는 신호가 0일 때 「모으는 중」과 「못 받았음」을 가려 말하도록 이미

만들어져 있었습니다. 그런데 홈이 그 카드를 「신호가 있을 때만」 그리고 있어서, **그

분기에 닿을 길이 없었습니다.** 고쳐 놓은 문장이 미리보기 그림에서만 살아 있었던

것입니다. 이제 신호가 0이어도 카드를 그립니다.

성과 비교는 두 가지를 한 가지로 덮고 있었습니다

이 카드는 선이 둘 미만이면 사라졌는데, 그 조건은 **견줄 코인이 애초에 둘이 안 되는

(사라지는 게 맞습니다)과 자료를 못 받은 것**을 함께 덮었습니다. 이제 뒤엣것만

이름과 안내 한 줄을 남깁니다.

검사가 세 장만 보고 있었습니다

「홈 카드는 실패했을 때 말한다」를 지키는 검사가, 실은 손으로 적어 둔 세 파일

보고 있었습니다. 홈에는 여섯 장이 있고 새로 붙은 셋은 아무도 안 봤습니다. 이제

화면에서 세어서 전부 봅니다.

그리고 나서 보인 것 — 없는 것을 가리키는 「⚠ 지연」

맥박 카드를 그리게 하고 기기에서 보니, 그 카드에 「⚠ 지연」이 붙어 있었습니다.

지연됐다고 가리킬 신호가 한 줄도 없는데 붙는 표시입니다. 며칠 전 시세 위젯에서

같은 것을 고쳤는데, 이 자리가 남아 있었습니다. 이제 가리킬 것이 있을 때만 붙습니다.

  • 내부 검증 2612건 · 화면 기준선 421장. versionCode 834.
v3.29.532026-08-19
차트가 비었을 때, 왜 비었는지 말합니다

차트 자리가 비면 앱은 늘 같은 말을 했습니다 — 「데이터가 부족해 분석할 수

없습니다 · 다른 기간을 선택해 보세요」.

그런데 그 자리는 두 가지 이유로 빕니다. 갓 상장해 봉이 모자란 것일 수도

있고, 연결이 끊겨 못 받은 것일 수도 있습니다. 앞엣것이면 위 안내가 맞습니다.

뒤엣것이면 막다른 길입니다 — 지하철에서 차트를 열면 기간을 바꿔도, 또

바꿔도 같은 문장이 나옵니다. 사용자는 앱이 그 코인을 못 다룬다고 읽게 됩니다.

이제 못 받았을 때는 그렇게 말하고 「다시 시도」를 함께 둡니다. 자료가 정말

모자랄 때만 「다른 기간」을 권합니다. 차트·판독·코인 견줌 세 자리가 함께

고쳐졌습니다.

404 는 대답입니다

밑바닥에서 「그런 시장은 없다」(404)와 「서버까지 못 갔다」를 한 덩어리로 세고

있었습니다. 그 둘을 갈랐습니다 — 안 그러면 상장 안 된 코인을 골랐을 때 앱이

애먼 네트워크를 탓합니다.

한 번 끊기면 재기동 전까지 안 돌아오던 것

코인 견줌은 「저 거래소엔 없더라」를 기억해 헛된 요청을 줄입니다. 그 기억이

연결 실패까지 삼키고 있었습니다. 지하철에서 시트를 한 번 연 것만으로 그

코인의 견줌이 앱을 껐다 켤 때까지 꺼졌습니다. 이제 제공처가 실제로 그렇게

답했을 때만 기억합니다.

새 문구는 없습니다

앱이 이미 다섯 언어로 들고 있던 문장이 정확히 그 말이었습니다 — 「거래소 통신에

실패했습니다 · 네트워크를 확인하고 다시 시도해 주세요 · 다시 시도」.

  • 내부 검증 2611건 · 화면 기준선 416장. versionCode 833.
v3.29.522026-08-19
코인을 보다가 그 자리에서 알림을 걸 수 있습니다

지금까지 알림은 알림 화면에만 있었습니다. 비트코인을 보다가 알림을 걸려면

시트를 닫고 → 알림으로 가서 → 비트코인을 다시 골라야 했습니다. 마음먹은

자리와 실행하는 자리가 달랐습니다.

코인 상세 맨 위에 「알림 추가」를 뒀습니다. 누르면 알림 화면이 열리고 **그

코인이 이미 골라져** 있습니다. 임계값 칸의 「현재 …」도 그 코인 가격입니다.

문구를 새로 만들지 않았습니다

처음엔 「이 코인 알림 만들기」를 새로 넣었는데, 영어(`Create an alert for this

coin`)가 좁은 화면·큰 글씨에서 「Create an alert for …」로 잘렸습니다. 뜻이

사라지는 자리입니다.

답은 이미 있었습니다 — 도착하는 폼의 제목이 「알림 추가」입니다. 같은 글자를

쓰니 짧아지고, 누른 것과 도착한 곳의 이름이 같아졌습니다.

두 번째부터 안 되던 것을 기기에서 잡았습니다

한 번 고쳐 놓고 「됐다」고 여겼는데, 실기기에서 재 보니 첫 번째만 됐습니다.

솔라나에서 들어가면 솔라나였는데, 나갔다가 리플에서 들어가도 여전히 솔라나

였습니다. 화면 상태를 저장해 두는 방식이 옛 값을 먼저 되살리기 때문이었습니다.

코인마다 저장 자리를 따로 두어 고쳤고, 세 코인을 연달아 눌러 각각 맞는 것을

확인했습니다.

  • 내부 검증 2604건 · 화면 기준선 410장. versionCode 832.
v3.29.512026-08-19
보여 줄 값이 없는데 「지연」이라고 적고 있었습니다

망이 끊긴 채로 앱을 처음 열면 이렇게 보였습니다.

```

실시간 ⚠ 지연

거래소 통신에 실패했습니다. 네트워크를 확인하고 다시 시도해 주세요. [다시 시도]

시세를 받지 못한 코인 7종은 목록에 없습니다.

```

실패 안내도, 무엇이 빠졌는지도 정확했고 앱도 멀쩡했습니다. **그런데 「⚠ 지연」이

붙어 있었습니다.** 그 표시는 「지금 보이는 값이 오래됐다」는 뜻인데, 그때 보이는

값은 한 줄도 없었습니다.

안에서 「지연」은 「마지막 갱신이 실패했다」는 뜻이었습니다. 실패했지만 보여 줄

값이 하나도 없을 때도 붙었던 것입니다. 그 상황에서 할 말은 이미 실패 안내가 하고

있으므로, 가리킬 값이 있을 때만 붙도록 고쳤습니다.

이 앱은 「안 그리는 것(해당 없음)」과 「못 그린 것(실패)」을 가르는 규칙을 세워

두었는데, 여기에 하나가 더 있었습니다 — 가리킬 대상이 없는 표시.

망을 끊고 확인했습니다
  • 차가운 시작: 실패 안내와 「다시 시도」, 시장 개요·공포지수도 각각 제 문구. 이제 「지연」은 없습니다.
  • 쓰던 중 끊김: 코인 목록이 그대로 남고 나이 배지가 자랍니다(이쪽은 원래 올바르게 돌고 있었습니다).
  • 내부 검증 2601건 · 화면 기준선 406장. versionCode 831.
v3.29.502026-08-19
「재 봤습니다」를 여러분도 다시 세어 보실 수 있게 했습니다

공포지수 카드 아래에는 「공포일 때 사라」를 실제로 재 본 결과가 적혀 있습니다.

이 앱이 어떤 기법을 권하지 않는 근거이기도 합니다.

그런데 그 문장에는 어떻게 세었는지가 빠져 있었습니다. 「극심한 공포」가 지수

몇 미만인지, 「국면」을 어떻게 묶었는지가 없으니 읽는 분이 다시 세어 보실 수

없었습니다. 그러면 「재 봤습니다」는 사실이 아니라 그냥 주장입니다.

세는 법을 문장 안에 적었습니다
  • 지수 25 미만이던 날
  • 30일 넘게 끊기면 새 국면 그 정의로 다시 재서, 나온 값을 그대로 적었습니다.
그러자 결론이 더 분명해졌습니다

지수 25 미만이던 날은 679일이고, 그 뒤 20일에 비트코인이 오른 비율은 58%로

아무 날(53%)보다 5%p 높습니다. 그런데 그 679일은 국면 14개입니다.

국면 하나를 한 번으로 세면 — **국면 안에서 어느 날을 고르느냐에 따라 답이

뒤집힙니다.**

```

시작일 5/14 중앙일 8/14 마지막 날 13/14

```

열네 번짜리 표본에서는 국면 하나가 7%p입니다. 예전 문장은 「국면으로 세면

기준선에 못 미친다」고 한 방향만 말했는데, 실제로는 고르는 방식만으로 36%에서

93%까지 움직입니다. **「8년에 열네 번으로는 어느 쪽도 말할 수 없다」는 말이

이제 주장이 아니라 눈에 보입니다.**

다섯 언어 모두 같이 고쳤습니다.

  • 내부 검증 2600건 · 화면 기준선 406장. versionCode 830.
v3.29.492026-08-19
김프의 「글로벌 기준」이 어디였는지 이제 말합니다

코인 상세의 김치 프리미엄 카드는 계산 근거를 밝히는 자리입니다 — 계산식, 한국

거래소, 적용 환율, 산출 시각. 그런데 「글로벌 기준」 칸에는 늘 「Binance/Coinbase」

라고 둘 다 적혀 있었습니다.

거짓은 아니지만, 앱은 어느 쪽에서 받았는지 알면서 말하지 않고 있었습니다.

한국에서는 거의 언제나 Coinbase 입니다

Binance 는 한국 통신망에서 막히는 일이 잦아, 앱은 그때 Coinbase 로 넘어가도록

만들어져 있습니다. 그래서 실제로 쓰이는 것은 대개 Coinbase 쪽인데 화면은

「Binance/Coinbase」라고만 했습니다.

이제 받은 곳을 그대로 적습니다 — 「Coinbase (USD)」 또는 「Binance (USD)」.

둘 다 못 받았을 때만 예전 문구로 돌아갑니다(그때는 김프 자체가 나오지 않습니다).

바깥 값과 직접 대 봤습니다

고치기 전에 앱이 내는 수를 원천에서 다시 계산해 봤습니다.

  • 앱의 BTC 원화 시세 ₩90,840,000 = Upbit 공개 시세와 정확히 일치
  • 앱이 낸 김프를 적용 환율로 역산하니 글로벌가가 Coinbase 값과 맞았습니다 — 실제로 Coinbase 로 넘어가 있었다는 뜻이고, 화면은 그것을 안 밝히고 있었습니다
  • 24시간 거래대금도 원천에서 확인했습니다(480 BTC × ₩90.85M ≈ ₩436억) — 앞 판에서 「거래량」을 「거래대금」으로 고친 것이 맞았습니다
  • 내부 검증 2600건 · 화면 기준선 406장. versionCode 829.
v3.29.482026-08-19
지운 것을 되돌릴 수 있게 했습니다

포트폴리오의 보유를 지우는 것은 버튼 한 번 누름에 즉시였습니다. 확인도,

되돌리기도 없었습니다.

이 앱에서 가장 값나가는 자료가 그것입니다. 수량과 평균 매수가는 **직접 넣으신

이고, 로그인도 서버도 없다는 것이 이 앱의 약속이라 지우면 어디에서도 되찾을

수 없습니다.** 잘못 누르면 그것으로 끝이었습니다.

다섯 자리에 되돌릴 틈을 뒀습니다
  • 포트폴리오 보유 — 수량과 평균 매수가
  • 알림 규칙 — 목록의 휴지통 한 번이면 사라졌습니다
  • 관심 코인 — 목록의 × 한 번
  • 직접 넣은 RSS 주소 — 이것도 손으로 넣으신 것입니다
  • 스크랩 — 별을 잘못 누르면 그 자리에서 빠집니다 지우면 아래에 「…을 지웠습니다 실행 취소」가 잠깐 뜹니다. 누르면 그대로 돌아옵니다. 순서까지 그대로입니다 — 지우기 직전의 목록을 통째로 기억해 두었다가 되돌리기 때문입니다(하나만 도로 넣으면 자리가 맨 뒤로 갑니다).
왜 확인 창이 아닌가

확인 창은 지울 때마다 손이 하나 더 듭니다. 여러 개를 정리하는 흔한 일에서

특히 거슬립니다. 되돌리기는 틀렸을 때만 손이 듭니다.

연달아 지우면 앞의 안내를 먼저 닫습니다 — 그러지 않으면 뒤엣것을 되돌리려다

앞엣것을 되돌리게 됩니다.

실기기에서 확인했습니다

지우기 → 안내 표시 → 실행 취소 → 항목이 그대로 돌아오는 것까지 봤습니다.

  • 내부 검증 2600건 · 화면 기준선 406장. versionCode 828.
v3.29.472026-08-19
앱이 아는 값을 손으로 옮겨 적게 하고 있었습니다

김프 실수익 계산기는 「김치 프리미엄」 칸이 비면 결과가 늘 「-」입니다. 그런데 그

숫자는 홈 화면이 코인마다 이미 적어 두고 있는 값입니다. 지금까지는 홈으로

돌아가 읽고, 외워서, 다시 계산기로 와서 치셔야 했습니다.

알림 폼에는 진작 「현재 ₩91,077,000」을 누르면 임계값이 채워지는 칩이 있었습니다.

계산기에는 그 형제가 없었습니다.

눌러서 한 번에 넣습니다
  • 김프 실수익 계산기 — 「현재 BTC −0.41%」
  • 청산가 계산기 — 「현재 BTC ₩90,968,000」 누르면 칸이 채워지고 결과가 바로 나옵니다. 시세를 아직 못 받았거나 값이 없으면 칩 자체를 그리지 않습니다 — 없는 값을 아는 값처럼 그리지 않는다는 원칙 그대로입니다. 기준 코인은 BTC이고, 목록에 없으면 값이 있는 첫 코인을 씁니다.
실기기에서 끝까지 확인했습니다

눌러서 「−0.41」이 들어가고 총 프리미엄 −₩4,100 · 수수료(왕복) −₩3,980 ·

실수익 −₩8,080 이 나오는 것, 진입가 ₩90,968,000 에 10배 롱이면 예상 청산가가

₩81,871,200 으로 나오는 것까지 봤습니다.

  • 내부 검증 2599건 · 화면 기준선 406장. versionCode 827.
v3.29.462026-08-19
알림 종류 아홉 가지 중 셋만 보이고 있었습니다

기기에서 알림 화면을 열어 보니 종류 칩이 「가격 ↑ 이상 · 가격 ↓ 이하 · 김프 ↑ 이상」

셋만 온전히 보이고 넷째는 잘려 있었습니다. 나머지 다섯은 화면에 아예 없었습니다

급등·급락, 기술적 신호, RSI 과매수·과매도입니다. 옆으로 밀어야 나오는 자리에

있었습니다.

이 앱을 다른 시세 앱과 다르게 만드는 것이 바로 그 알림들인데, 쓰시는 분 눈에는

없는 기능이었습니다.

밀지 않고 접습니다

가로로 미는 것은 잘림이 아니라 없음으로 읽힙니다. 세로로 스크롤하는 화면

안에서 가로로도 밀어야 한다는 것은 알아채기 어렵고, 알아채도 손이 한 번 더 듭니다.

고르는 칩이 있던 자리를 모두 줄을 늘리는 방식으로 바꿨습니다. 자리가 있으면

예전 그대로 한 줄이고, 없을 때만 아랫줄에 나타납니다.

  • 알림 — 코인 칩(기본 목록 일곱 중 여섯째가 「AVA」로 잘려 있었습니다), 종류 칩, 빠른 입력 칩
  • 설정 — 시세 거래소, 표시할 환율(중국 위안화가 밀어야 나왔습니다)
  • 코인 상세 — 비교할 코인 칩, 차트 지표 토글(이동평균·VWAP·볼린저·추세선)
  • 홈·탐색 — 앞 판에서 이미 바꾼 정렬·순위 칩 이제 앱 어디에도 가로로 밀어야 하는 자리가 없습니다. 다시 생기지 않도록 검사도 함께 넣었습니다.
  • 내부 검증 2599건 · 화면 기준선 404장. versionCode 826.
v3.29.452026-08-19
홈 화면의 「거래량순」도 같은 자리였습니다

바로 앞 판에서 「거래량」을 「거래대금」으로 고쳤는데, **홈 화면의 정렬 칩을

빠뜨렸습니다.** 그 칩도 원화 금액으로 줄을 세우면서 「거래량순」이라고 적혀

있었습니다. 「대금순」으로 고쳤습니다.

왜 앞 판에서 못 잡았을까

앞 판은 화면에 찍히는 값을 열쇠로 훑었습니다 — 같은 방식으로 같은 항목을

그리는 자리를 모아 이름이 둘이면 세우는 방식입니다. 그런데 정렬 칩은 **값을

그리지 않습니다.** 줄만 세울 뿐입니다. 그래서 그 훑기의 그물에 걸리지 않았습니다.

찾은 것은 기기였습니다. 새 판을 실제로 설치해 화면을 읽다가 「거래량순」이

그대로 있는 것을 봤습니다.

탐색 화면 아래의 설명문에 있던 「거래량 상위」도 탭 이름에 맞춰 「거래대금 상위」로

바꿨습니다. 일본어·중국어도 함께입니다.

칩이 밀려나는 것을 「글씨가 크면」으로 갈랐던 것을 되돌렸습니다

앞 판에서 탐색 칩을 「글씨가 크면 아랫줄로」로 고쳤습니다. 그런데 이 앱에는

같은 문제를 이미 풀어 둔 자리가 있었고, 거기 「그렇게 하지 말라」고 적혀

있었습니다 — 글씨 크기로 가르면 가로 화면처럼 폭이 넉넉한 데서도 두 줄이 되어,

하필 높이가 아쉬운 자리에서 한 줄을 더 씁니다.

규칙은 「글씨가 크면」이 아니라 「자리가 없으면」이고, 그건 재서 압니다.

조건을 지우고 재서 접는 방식으로 바꿨습니다. 들어가면 한 줄 그대로이고,

안 들어갈 때만 접힙니다. 홈의 정렬 칩도 같은 방식으로 바꿨습니다 — 예전에는

가로로 밀어야 나머지가 보였는데, 이제 글씨를 키우면 아랫줄에 나타납니다.

기기에서 재고 정했습니다

「거래대금순」은 다섯 칩을 한 줄에 못 담았습니다(720×1640 실기기에서 「이름순」만

아랫줄에 혼자 남았습니다). 그래서 「대금순」으로 줄였고, 다시 재니 다섯이 한 줄에

들어갑니다 — 고치기 전보다도 여유가 있습니다.

  • 내부 검증 2598건 · 화면 기준선 404장. versionCode 825.
v3.29.442026-08-19
돈을 「거래량」이라고 부르고 있었습니다

「24h 거래량 1.2조」. 거래량은 코인 개수를 뜻하는 말이라, 이대로 읽으면 코인이

1조 2천억 개 오갔다는 말이 됩니다. 실제로 그 자리에 든 값은 원화 금액

「거래대금」입니다.

앱이 이걸 이미 알고 있었다는 점이 더 나쁩니다. 같은 값을 코인 상세 시트는

「24h 거래대금」이라고 바르게 적고 있었고, 코인 정보표만 「24h 거래량」이었습니다.

값은 맞고 이름만 틀린 자리는 눈에 안 띕니다

숫자가 틀렸다면 금방 알아챘을 것입니다. 값은 처음부터 옳았고 부르는 이름

틀렸기 때문에, 화면을 보고도 지나쳤습니다.

그래서 이번에는 이름 대신 을 열쇠로 훑었습니다 — 같은 함수로 같은 항목을

그리는 자리들을 모아 놓고, 거기 붙은 이름이 둘 이상이면 세웠습니다. 셋이 나왔습니다.

  • 코인 정보표의 「24h 거래량」 → 「24h 거래대금」
  • 시장 요약 카드의 「24h 거래량」 → 「24h 거래대금」 (전체 시장 거래대금입니다)
  • 탐색(스크리너)의 거래량 탭 → 「거래대금」. 이 탭은 처음부터 거래대금 순으로 줄을 세우고 있었습니다. 이름만 「거래량」이었습니다. 캔들 차트 아래의 막대는 정말로 코인 수량이라 「거래량」 그대로 둡니다. 이제 두 말이 각각 제 뜻으로만 쓰입니다.
한 글자가 늘어 큰 글씨에서 칩이 밀려났습니다

「거래량」이 「거래대금」이 되며 한 글자 길어졌습니다. 그런데 탐색 화면의 칩 줄은

글꼴 200%에서 딱 맞아 있었고, 그 한 글자 때문에 셋째 칩이 화면 밖으로 반쯤

나갔습니다. 가로로 밀면 닿기는 하지만, 큰 글씨를 켜 두신 분께 「밀어야 보인다」는

것은 사실상 안 보이는 것입니다.

큰 글씨일 때는 칩을 아랫줄로 접습니다. 이제 200%에서도 셋이 다 보입니다.

(영어도 마찬가지입니다 — 「Volume」이 밀려나 있었습니다.) 보통 크기와 1.5배에서는

예전 그대로 한 줄입니다.

일본어(出来高 → 売買代金)와 중국어(成交量 → 成交额/成交額)도 같이 맞췄습니다.

영어는 관례상 금액도 Volume 이라 그대로입니다.

기술 화면에 같은 제목이 두 번 있었습니다

영어로 보면 「Overall read」가 한 화면에 두 번 나왔습니다 — 종합 판독 칸과 현재

흐름 막대가 같은 이름이었습니다. 뒤엣것을 「Current flow」로 갈랐습니다.

일본어에서 구분이 사라진 세 자리

「전체 시가총액」과 코인 한 개의 시가총액이 둘 다 時価総額이었고, 지표 묶음 이름

「수급·거래량」이 그냥 出来高였으며, 「접기」가 「닫기」와 같은 말이었습니다.

각각 総時価総額·需給・出来高·折りたたむ로 갈랐습니다.

  • 내부 검증 2598건 · 화면 기준선 404장. versionCode 824.
v3.29.432026-08-18
같은 버튼이 영어에서만 두 이름이었습니다

「다시 시도」 버튼이 영어에서는 어떤 화면에서 Retry, 어떤 화면에서 Try again 이었습니다.

한국어·일본어·중국어에서는 넷 다 한 낱말이라 눈에 띄지 않았습니다.

번역본에게 물었습니다

같은 것을 두 이름으로 부르는 자리를 찾으려면 여태 「이 둘은 같은 말」이라는 표를 손으로

적어야 했습니다. 손으로 적은 표는 새 문구를 못 따라가서 곧 낡습니다.

그런데 이 앱에는 같은 문자열표가 다섯 벌 있습니다. 두 자리가 같은 뜻이면 옮긴 사람은

대개 다섯 벌 모두에 같은 말을 적습니다. 그래서 이렇게 물었습니다 — **네 언어가 같은 말로

옮겼는데 한 언어만 갈라 적었다면, 그 한 언어가 어긋난 것**입니다.

표가 필요 없었습니다. 「이 둘은 같은 뜻」이라는 판정을 번역본이 이미 내려 두었습니다.

물어보니 열한 자리가 나왔고, 넷이 결함이었습니다
  • 다시 시도 — 영어만 `Retry` / `Try again` 두 낱말. 자리를 하나로 합쳤습니다.
  • 시총 24h — 영어만 `Cap 24h` / `Mcap 24h` 두 약어. `Mcap 24h` 로 맞췄습니다.
  • 데이터 출처(일본어) — 누르는 글은 「データ出典」인데 열리는 화면의 제목은 「データソース」였습니다. 누르는 글과 도착하는 곳의 이름이 달랐습니다.
  • 손익(영어) — 요약은 `P/L`, 매도 시트는 `Realized P&L`. `P&L` 로 맞췄습니다. 나머지 일곱은 갈라 적은 쪽이 맞았습니다. 게이지의 「극공포」는 짧아야 하고(문장 자리에서는 「극단적 공포」입니다), 영어의 `trend`(문장에 끼는 조각)와 `Trend`(묶음 제목)는 영어만 가진 구분이라 다른 넷은 표현할 수 없습니다. 훑기가 「고쳐라」 하는 대로 따랐다면 맞는 것을 일곱 군데 망가뜨렸을 것입니다 — 그래서 하나씩 판정하고, 갈라야 하는 자리는 이유를 적어 남겼습니다.
크래시 기록 지우기

설정의 크래시 기록 대화상자에서 버튼이 하는 일은 「지우기」인데 영어·일본어·중국어에서는

「삭제」라고 적혀 있었습니다. 앱 공용 「지우기」로 합쳤습니다.

  • 내부 검증 2597건 · 화면 기준선 404장. versionCode 823.
v3.29.422026-08-18
영어에서 뉴스는 「5m ago」, 다른 화면은 「5 min ago」였습니다

같은 5분인데 뉴스 목록과 나머지 화면이 다르게 적고 있었습니다.

상대 시각을 몇 분까지 「분」으로 볼지 정하는 판정은 원래 한 곳에 있었습니다. 그런데

문구는 두 벌이었습니다 — 뉴스 전용 세 개가 앱 공용 세 개와 글자까지 같았습니다.

한국어·일본어·중국어에서는 똑같아서 눈에 띄지 않았고, 영어에서만 이미 갈려 있었습니다.

같은 뜻을 두 곳에 적으면 한쪽만 고쳐집니다. 뉴스 전용 셋을 지우고 한 벌로 합쳤습니다.

「방금」만은 그대로 갈라 두었습니다. 뉴스는 「just now」이고 시세의 자료 나이는

「12초 전」입니다 — 기사에서 초 단위는 뜻이 없고, 시세에서 초 단위는 신선도 그 자체입니다.

다른 것을 다르게 말하는 것은 중복이 아닙니다.

영어의 「N시간 전」이 저희끼리도 어긋났습니다

```

45 sec ago 5 min ago 3h ago 2d ago

```

앞 둘은 풀어 쓰고 뒤 둘은 줄여 쓰고 있었습니다. 좁은 자리를 위한 짧은 표기는 따로

있으므로, 긴 쪽은 「3 hr ago」·「2 days ago」로 맞췄습니다. 하루일 때는 「1 day ago」입니다.

  • 내부 검증 2596건 · 화면 기준선 404장. versionCode 822.
v3.29.412026-08-18
알림을 눌러도 그 코인으로 가지 않았습니다

알림은 「XRP 리플 · 목표가 도달」이라고 말하는데, 눌러 보면 홈 화면의 맨 위였습니다.

그 코인을 목록에서 다시 찾아야 했습니다 — 알림이 가리키는 곳과 여는 곳이 달랐습니다.

이제 알림을 누르면 그 코인의 상세가 바로 열립니다. 목표가·김프·급등락·기술적 신호

네 종류 모두입니다.

앱이 켜져 있을 때도 열립니다

알림을 누를 때 앱이 이미 떠 있으면 안드로이드는 화면을 새로 만들지 않고 **기존 화면에

알림의 내용을 전달합니다.** 그 자리를 받지 않으면 「앱을 꺼 둔 채 누른 알림」만 코인으로

가고, 가장 흔한 경우인 「앱이 켜져 있을 때」는 홈으로 갑니다. 두 길을 모두 받습니다.

> 이 부분은 기기에서 눌러 보고 한 번 고쳤습니다. 코드 검사는 통과했는데 실제로는

> 앱이 켜져 있을 때 홈에 머물렀습니다 — 안드로이드가 인텐트를 전달할지 정하는 조건이

> 하나 더 있었고, 그건 검사가 알 수 없는 것이었습니다.

다른 화면(설정·포트폴리오 등)에 있었다면 홈으로 돌아간 뒤 그 코인을 엽니다. 한 번 열고

나면 그 요청은 비웁니다 — 안 비우면 화면을 돌릴 때마다 상세가 저절로 다시 열립니다.

  • 내부 검증 2593건 · 화면 기준선 404장. versionCode 821.
v3.29.402026-08-18
홈 화면 위젯의 새로 고침 버튼에 이름이 없었습니다

위젯 오른쪽 위의 「⟳」 버튼입니다. 화면 낭독기로는 이름 없는 누를 것으로만 들렸습니다.

이제 「다시 받기」라고 말합니다.

왜 그동안 안 잡혔나

앱 안에서는 「누를 수 있는 것은 무엇이 일어나는지 말한다」를 두 겹으로 지킵니다 — 코드

검사와, 기기에서 접근성 정보를 훑는 점검입니다. 그 점검이 여덟 화면에서 **이름 없는

조작 요소 0개**를 확인해 줍니다.

그런데 위젯은 그 여덟 화면에 없습니다. 위젯은 런처가 그리는 것이라 앱의 화면 밖에

있고, 그 훑기가 닿지 못합니다. 「0개」라는 결과가 이 자리를 덮지 못한 것입니다.

이제 위젯에서 일을 하는 버튼에 이름이 없으면 검사에서 걸립니다. 위젯 전체를 눌러

앱을 여는 자리는 규칙 밖으로 두었습니다 — 거기에 이름을 붙이면 **그 아래 코인 목록이

낭독기에서 통째로 사라지기** 때문입니다. 그 자리의 이름은 내용이 집니다.

첫 화면을 영어 큰 글씨로 처음 그렸습니다

온보딩 화면 그림이 여섯 장 있었는데 한국어 넷·일본어 하나·중국어 하나였습니다. 이 앱의

문구는 영어에서 가장 많이 늘어나는데(한국어 대비 최대 2.67배) 그 언어가 빠져 있었습니다.

사용자가 앱에서 가장 먼저 보는 화면입니다. 그려 보니 잘림 없이 정확했습니다.

  • 내부 검증 2588건 · 화면 기준선 404장. versionCode 820.
v3.29.392026-08-18
중국어에서 같은 카드가 「30日」과 「30天」을 함께 썼습니다

성과 비교 카드입니다. 제목은 「30表现对比」인데 바로 아래 기간 칩은 「7天 · 30天 ·

90天」입니다. 둘 다 옳은 중국어지만 한 화면에 섞이면 같은 것을 두 이름으로 부르는 셈입니다.

앱의 다른 아홉 자리(최근 N일 추이 · N일 전 · 보관 기간 …)가 모두 `天`이라 그쪽으로

맞췄습니다. 간체·번체 둘 다입니다.

「하루」만 검사합니다

앞 판에서 영어 복수형을 훑으면서, 일본어·중국어에는 명사마다 다른 세는 말이 있다는

것을 다음 후보로 적어 두었습니다. 세어 보니 대부분은 다른 글자가 맞았습니다

주의는 条, 지표는 个, 거래소는 家, 기사는 篇입니다. 그걸 어긋남으로 세면 옳은 번역을

고치라고 시키는 검사가 됩니다.

「하루」는 다릅니다. 세는 것이 하나뿐이라 한 글자여야 합니다. 그 하나만 검사합니다.

영어도 규칙 밖입니다 — 「30-Day Performance」(형용사)와 「30 days」(명사)는 문법상 달라야

합니다.

  • 내부 검증 2586건 · 화면 기준선 403장. versionCode 819.
v3.29.382026-08-18
영어에서 「Only 1 indicators」처럼 수와 말이 어긋났습니다

한국어·일본어·중국어에는 복수형이 없습니다. 그래서 앱을 만드는 내내 아무도 못 봤는데,

영어에서는 이렇게 나오고 있었습니다.

```

Only 1 indicators had anything to say.

touched 1 bars ago

1 blocks left

Only 1 of 7 coins are oversold together today

```

수가 하나일 때와 여럿일 때 말이 달라지는 문구 열 개를, 안드로이드가 그 자리를 위해

마련해 둔 장치(`plurals`)로 옮겼습니다. 다섯 언어 모두에 넣었고, 복수형이 없는 세

언어는 지금 문구가 그대로 쓰입니다.

「1이 안 될 것」은 짐작하지 않고 코드에서 확인했습니다

수를 넣는 영어 문구 스물여섯을 모두 세어, 그 수가 1이 될 수 있는지를 하나씩 코드에서

확인했습니다. 열여섯은 될 수 없었습니다 — 상수이거나(「최근 730일」), 그리는 조건이

이미 하한을 세우고 있습니다(「점이 둘 이상일 때만 그린다」·「몰림은 셋부터」).

짐작이 세 번 틀렸습니다. 「연속 몇 봉」·「독립된 근거 몇 가지」는 1이 안 될 것 같았는데

확인해 보니 닿았습니다. 그래서 그 셋도 함께 옮겼습니다.

이제 1이 될 수 있는 자리에 복수형 문구를 쓰면 검사에서 걸립니다. 예외는 **코드에서 확인한

이유**와 함께 적어 두었습니다.

  • 내부 검증 2585건 · 화면 기준선 403장. versionCode 818.
v3.29.372026-08-18
실기기 확인을 다시 했습니다 (막혀 있다고 적어 둔 것이 열려 있었습니다)

2026-08-17에 「이 기기는 USB 설치가 꺼져 있어 실기기 확인을 할 수 없다」고 적어 두었고,

그 뒤로 여러 판을 그 기록만 믿고 넘겼습니다. 오늘 다시 두드려 보니 열려 있었습니다.

> 막혔다는 기록도 낡습니다. 「막혔다」고 적힌 것을 다시 확인하는 것이 새 판의 첫 일입니다.

기기에서 확인한 것 (난독화 릴리스, 샤오미폰)

글씨 200% — 최근 세 판에서 고친 것이 실제로 살아 있습니다.

```

BTC ₩90,324,000 ← 금액이 쪼개지지 않습니다

비트코인 −0.70%

김프 −0.35% ← 이름표가 「..」로 뭉개지지 않습니다

```

빼기 기호도 플러스와 같은 높이의 진짜 기호로 나옵니다.

화면 낭독기 — 여덟 화면을 훑어 말 없는 조작 요소 0개 · 작은 표적 0개입니다.

그래프 설명도 실제로 읽힙니다.

```

하락 가격 차트. 최근 150봉, 마지막 봉 값 ₩90,389,000, −11.40% …

OBV (누적 거래량). 941.74에서 -4,338로 하락. 최고 1,575, 최저 -5,431.

```

앞 판에서 넣은 지표 그래프 설명이 기기에서 산다는 뜻입니다.

확인하지 못한 것도 적습니다

제목 이동(v3.29.29)은 이 방식으로 확인할 수 없습니다. 화면 구조를 뜨는 도구가 「이

글자가 제목인가」를 싣지 않기 때문입니다. 그 판의 증거는 내부 검사뿐이라고 적어 두었습니다.

위젯은 제공자가 등록되어 있는 것까지만 확인됩니다 — 바탕화면에 얹는 것은 사람이 직접

해야 하고, 지금 이 기기에는 얹혀 있지 않습니다.

  • 내부 검증 2581건 · 화면 기준선 403장. versionCode 817.
v3.29.362026-08-18
제공처 점검 목록이 스물넷 중 열하나만 보고 있었습니다

앞 판에서 야후가 점검 목록에 없던 것을 찾았습니다. 「하나 있으면 더 있다」고 보고 **전부

세어 봤습니다.**

앱이 값을 받아 오는 곳은 24곳인데 점검 목록에 있는 것은 11곳이었습니다.

빠져 있던 것 중 가장 큰 것이 코인게코입니다 — 시장 개요 화면(BTC 도미넌스 · 총

시가총액 · 24시간 거래량 · 시총 변동)이 통째로 그 한 응답 위에 있고, 코인 로고와 시세

폴백도 거기서 옵니다. 환율이 잘 안 될 때 쓰는 예비 환율 제공처도 빠져 있었습니다 —

예비는 원래 조용해서, 죽어도 죽은 줄 모릅니다.

셋을 넣었고 모두 정상입니다.

목록이 다시 낡지 않도록

이 앱은 어디에 접속하는지를 화면에 밝히고, 그 고지가 실제 접속처와 맞는지 양방향으로

확인하는 검사를 이미 갖고 있습니다. 그런데 점검 목록에는 그 짝이 없었습니다.

이제 같은 방식으로 확인합니다 — 값을 받아 오는 곳이 목록에 없으면 걸립니다.

뉴스 RSS 열 곳은 예외로 두었습니다. XML이라 이 점검(JSON 모양 확인)의 틀에 안 맞고,

앱 안에 「출처 확인」이 따로 있기 때문입니다. 배포처는 판마다 배포 스크립트가 직접

확인합니다. 예외마다 이유를 적어 두었습니다 — 「나중에」로 비워 두면 그 자리가 다음

빈틈이 됩니다.

  • 내부 검증 2581건 · 화면 기준선 403장. versionCode 816.
v3.29.352026-08-18
제공처 점검에서 야후만 빠져 있었습니다

이 앱은 자체 서버 없이 각 제공처를 기기에서 직접 부릅니다. 그래서 제공처가 응답 모양을

바꾸면 오류도 멈춤도 없이 그 값만 조용히 빕니다. 그걸 미리 잡으려고 실제 응답을 받아

모양을 확인하는 점검을 두고 있습니다.

그 점검에 야후만 빠져 있었습니다. 이 앱이 부르는 제공처 중 **문서화된 공개 API가

아닌 유일한 곳**, 즉 언제 바뀌어도 이상하지 않은 곳인데 아무도 안 보고 있었습니다.

지수·VIX·코스피·달러환율이 그 위에 있습니다.

넣자마자 하나 드러났습니다. 앱은 전 거래일 종가를 세 단계로 찾는데(종가 목록 →

`chartPreviousClose` → `previousClose`), 셋째 단계의 값이 지수 응답에는 아예 없었습니다.

앞의 두 단계가 늘 답을 주므로 해는 없지만, 있다고 믿고 있던 것이 없었습니다.

점검이 「요청 과다」를 「모양이 달라졌다」로 말하고 있었습니다

제공처가 요청 과다(429)나 차단(403)을 보내면 그것은 확인을 못 한 것이지 응답 모양이

달라진 것이 아닙니다. 이 점검은 그 구분을 이미 문서에 적어 두고도 5xx만 「확인 못 함」으로

보내고 있었습니다. 늘 켜진 빨간불은 곧 무시됩니다 — 구분을 바로잡았습니다.

「야후를 걷어낼 수 있는가」의 답이 바뀌어 있었습니다

v3.19.0에서 바깥 의존을 세어 드리면서 「야후를 쓰는 자리는 이고, 죽어도 지수 줄만

사라집니다」라고 적었습니다. 그 뒤에 넷째가 붙었습니다 — 달러/원 장중 환율입니다.

같은 제공처를 다시 쓰는 것이라 새 접속처 검사에는 걸리지 않았고, 자리 수를 지키던 검사는

파일 수만 세고 있어서 늘어난 것을 못 봤습니다.

그래서 답이 이렇게 바뀝니다.

| 야후가 죽으면 | |

|---|---|

| 지수 줄 | 사라집니다 |

| VIX · 코스피 | 보조값이 빕니다 |

| 김치 프리미엄 | 하루 한 번 고시되는 ECB 값으로 돌아갑니다 |

마지막 줄이 새로 생긴 것입니다. 이 앱이 직접 재 둔 값으로는, 그 되돌림이 거래일의

26.9%에서 0.5%p 이상, 7.8%에서 1.0%p 이상 어긋나고 최대 2.54%p입니다 —

김프 부호가 갈릴 수 있는 폭입니다. 화면이 꺼지지는 않습니다.

걷어낼지 말지는 그대로 사용자 결정입니다. 다만 그 결정에 쓰실 값이 낡아 있었으므로

바로잡아 두었습니다.

  • 내부 검증 2578건 · 화면 기준선 403장. versionCode 815.
v3.29.342026-08-18
「값 → 얼굴」이 다섯인데 그려진 얼굴은 한둘이었습니다

앞선 판에서 공포지수 카드의 다섯 얼굴 중 넷이 안 그려져 있던 것을 찾았습니다. 같은

성질을 앱 전체에서 훑었습니다 — 값을 받아 단계를 정하고 그 단계로 색·라벨을 고르는

함수를 모두 모아, 단계 수와 실제로 그려진 값의 수를 대 봤습니다.

| 무엇 | 단계 | 그려져 있던 얼굴 |

|---|---|---|

| 공포·탐욕 | 5 | 1 |

| VIX 밴드 | 5 | 1 |

| 코스피 일일 변동 | 5 | 1 |

| 기술적 분석 편향 | 5 | 3 |

채운 것

폭락한 날의 공포지수 카드 — 공포·탐욕 8, VIX 42.3(극단적 공포), 코스피 −3.24%(급락).

셋이 함께 오는 실제 상태라 한 장으로 세 밴드의 못 그린 얼굴을 덮습니다. 양극 막대와

밴드 색 모두 정확했습니다.

강한 약세 판정 — 기술적 분석의 다섯 얼굴 중 가장 강한 말을 하는 자리인데 그려진

적이 없었습니다. 매수 얼굴도 함께 채워 이제 다섯이 모두 있습니다.

이제 판정 얼굴이 하나라도 비면 검사에서 걸립니다. 값을 받아 단계를 정하는 다른 밴드들은

값이 원시 수치라 기계가 셀 수 없어, 검사가 그 경계를 복제하지 않도록 일부러 뺐습니다 —

검사가 규칙을 복제하면 경계가 바뀌는 날 조용히 틀린 답을 냅니다.

  • 내부 검증 2578건 · 화면 기준선 403장. versionCode 814.
v3.29.332026-08-18
공포지수 카드가 다섯 얼굴 중 하나만 확인되고 있었습니다

이 카드는 단계(극공포·공포·중립·탐욕·극탐욕)마다 배경·테두리·숫자 색·게이지 색

통째로 바뀝니다. 그런데 화면 그림 열세 장이 전부 같은 값(75 = 극탐욕)을 쓰고 있었습니다.

나머지 네 얼굴은 한 번도 그려진 적이 없었습니다.

게이지를 값 0·8·30·50·65·92·100 일곱 자리에서 그려 봤습니다. 아크 길이·색·손잡이 자리

모두 정확했고, 양 끝(0과 100)에서도 튀어나오거나 잘리지 않았습니다.

극공포 카드에서 하나 나왔습니다

「어제 대비」 줄의 빼기 기호가 이 자리에서만 하이픈이었습니다.

```

▲ +7 어제 대비 ← 플러스

▼ -13 어제 대비 ← 마이너스가 더 짧고 낮다

```

지난 판에서 앱 전체의 빼기를 「+」와 높이가 맞는 진짜 기호로 통일했는데, 이 줄만

부호를 손으로 붙이고 있어서 그 통일을 지나갔습니다. 부호를 만드는 곳은 한 곳뿐이어야

합니다.

그 규칙을 지키는 검사도 함께 넓혔습니다. 예전 검사는 「`if (…)` 뒤에 오는 부호」만 봐서

이 줄을 두 번 빗나갔습니다(문법이 달랐고, 문자열이 세모로 시작했습니다). 이제 문법이

아니라 자리를 봅니다 — 문자열 안에서 부호 바로 뒤에 값이 끼워지는 꼴입니다.

  • 내부 검증 2576건 · 화면 기준선 400장. versionCode 813.
v3.29.322026-08-18
글씨를 키우면 김프 라벨이 「..」로 뭉개져 무엇의 %인지 알 수 없었습니다

시세 목록의 김프는 「김프 −0.58%」처럼 이름표와 숫자가 함께 놓입니다. 글씨를 200%로

키우면 그 이름표가 「..」로 줄어, 퍼센트만 덩그러니 남았습니다.

```

스테이터스… +4.18%

.. −0.58% ← 무엇의 −0.58%인지 알 수 없음

```

바로 위에 등락률이 있으므로, 이름표가 사라지면 두 퍼센트 중 어느 쪽이 무엇인지

알 수 없습니다.

영어와 일본어에서는 이미 그런 상태였습니다 — 「Ki… −0.65%」, 「キ… −0.65%」.

왜 이렇게 됐나

한 줄에서 자리가 모자라면 누가 양보하는지를 정해야 합니다. 이 자리는 두 번 정했고

두 번 다 틀렸습니다.

  • 처음엔 숫자가 양보해 「김프 -0…」로 잘렸습니다.
  • 그래서 이름표가 양보하도록 바꿨더니 「.. −0.58%」가 됐습니다. 두 방향이 틀린 이유는 같습니다 — 줄어들 수 없는 쪽에 양보를 시켰습니다. 숫자는 글자 크기를 줄여 맞출 수 있고, 「김프」 두 글자는 자르면 뜻이 통째로 사라집니다. 이제 숫자가 양보합니다. 이름 칸 계산도 함께 고쳤습니다. 큰 글씨에서 김프는 제 줄을 받는데, 그 줄이 필요한 폭이 계산에 빠져 있었습니다. 그래서 이름이 길면 이름 칸이 남는 자리를 다 가져가고 김프만 굶었습니다.
처음 그려 본 두 가지

1원 미만 코인 — 업비트 원화 마켓에 흔한 가격대인데(₩0.9123 · $0.0006200) 시세 줄에

그려진 적이 없었습니다. 그려 보니 정확했습니다.

아주 긴 코인 이름 — 기본 일곱 종의 최장 이름은 「비트코인」 넉 자지만, 사용자는

「스테이터스네트워크토큰」(11자) 같은 종목도 담을 수 있습니다. 그 그림에서 위의 김프

문제가 나왔습니다.

  • 내부 검증 2575건 · 화면 기준선 397장. versionCode 812.
v3.29.312026-08-18
영어에서 공포지수 카드가 같은 상태를 두 가지로 적었습니다

카드 한 장 안에서 이렇게 나왔습니다.

```

75

Extreme Greed ← 게이지 옆

Extreme greed ← 아래 요약 줄

```

같은 상태, 같은 두 낱말인데 대문자만 다릅니다. 중국어는 두 문구가 이미 글자까지 같았고,

한국어·일본어는 「극탐욕」과 「극단적 탐욕」처럼 짧은 라벨과 서술이라 다른 이유가

있습니다. 영어만 이유 없이 갈려 있었습니다. 요약 줄 쪽으로 맞췄습니다.

앱의 영어 문구 전체를 훑어 「소문자로 바꾸면 같아지는 짝」 여덟을 찾았고, 나머지 여섯은

홀로 선 라벨과 문장 속 낱말이라 그대로 두는 것이 맞습니다(「Volume」 칩과 「…the

volume family…」 문장). 이유를 적어 두었습니다.

어느 언어가 위험한지 세어 봤습니다

지금까지는 「여러 언어로 그려 봤다」로 넘어갔습니다. 이번에는 한국어 대비 **글자가

차지하는 폭**을 문구마다 재 봤습니다.

| 언어 | 가장 많이 늘어나는 문구 |

|---|---|

| 영어 | 2.67배 |

| 일본어 | 2.33배 |

| 중국어(간체·번체) | 1.67배 |

영어가 가장 위험한데, 하필 두 화면이 영어로 그려져 있지 않았습니다 — 공포지수

카드와 데이터 출처 화면입니다. 둘 다 가장 많이 늘어나는 문구를 품고 있는데, 일본어와

중국어로만 확인하고 있었습니다. 안전한 언어만 그리고 위험한 언어를 빠뜨린 셈입니다.

두 화면을 영어 큰 글씨로 그렸고, 그 자리에서 위의 대소문자 문제가 나왔습니다.

  • 내부 검증 2572건 · 화면 기준선 393장. versionCode 811.
v3.29.302026-08-18
지표 그래프 여덟 개가 화면 낭독기에 아무 말도 하지 않았습니다

공포·탐욕 카드와 시장 개요의 추이 그래프에는 설명이 붙어 있습니다 — 「어디서 어디로,

어느 쪽으로, 그 사이 최고·최저」. 그런데 기술적 분석 화면의 지표 그래프에는 없었습니다.

RSI · 스토캐스틱 · MACD · 스퀴즈 · ADX · OBV — 여섯 개 모두, 그리고 그것을 눌러 펼친

큰 그래프까지 합쳐 열두 자리가 조용했습니다. 낭독기를 쓰시는 분은 제목과 「지금 값」

하나만 듣고, 그동안 어떻게 움직였는지는 들을 수 없었습니다.

이제 각 그래프가 이렇게 말합니다.

```

RSI: 42.1에서 58.3으로 상승했습니다. 최고 61.0, 최저 39.8.

```

설명하는 선은 화면이 읽어 주는 그 숫자의 선으로 맞췄습니다. 스토캐스틱은 %K,

MACD는 히스토그램입니다 — 방금 들은 숫자와 다른 선을 설명하면 두 말이 어긋납니다.

펼친 그래프의 배선이 두 벌이었습니다

지표를 눌러 크게 여는 길과, 화면이 되살아날 때 그 상태를 복원하는 길이 **같은 것을

따로 적고** 있었습니다. 설명을 한쪽에만 붙였다면 「눌러서 열면 말하는데 화면을 돌리고

나면 조용해지는」 상태가 됐을 것입니다. 하나로 합쳤습니다.

보이는 모습은 하나도 달라지지 않습니다.

  • 내부 검증 2569건 · 화면 기준선 391장. versionCode 810.
v3.29.292026-08-18
화면 낭독기로 「기술적 분석」의 절 사이를 건너뛸 수 없었습니다

TalkBack 같은 화면 낭독기에는 제목으로 건너뛰기가 있습니다. 화면에 절이 여럿일 때

처음부터 끝까지 듣지 않고 제목만 훑어 원하는 곳으로 갈 수 있습니다.

그러려면 앱이 「이건 제목입니다」라고 알려 줘야 합니다. 예전에 공용 제목 조각 셋에는

그 표시를 넣었는데, 스스로 제목을 그리는 화면 열 곳에는 안 들어가 있었습니다.

그중 여섯이 기술적 분석 화면입니다 — 절이 여덟 개나 되는, 이 앱에서 가장 긴 화면입니다.

낭독기를 쓰시는 분은 그 화면을 처음부터 끝까지 듣는 수밖에 없었습니다.

이제 다음 제목들이 제목으로 읽힙니다.

  • 기술적 분석 — 종합 판독 · 지금 이 코인 · 다중 기간 · 기간별 비교 · 신호 · 근거
  • 코인 상세 — 읽는 법 · 더 알아보기 · 쉬운 말 판독
  • 데이터 출처 — 뉴스 출처 설정의 「조용시간」처럼 스위치 한 줄의 이름이나, 권한이 꺼졌을 때만 뜨는 경고 배너는 일부러 제외했습니다. 제목 이동은 화면을 훑는 지도인데, 거기에 조작 요소와 알림까지 올리면 지도가 아니라 목록이 됩니다. 보이는 모습은 하나도 달라지지 않습니다.
  • 내부 검증 2567건 · 화면 기준선 391장. versionCode 809.
v3.29.282026-08-18
손익 한 줄에 빼기 기호가 두 종류 섞여 있었습니다

포트폴리오 요약이 이렇게 나옵니다.

```

손익 -16.65% (−3,280,000원)

```

퍼센트 쪽 빼기는 짧고 낮은 하이픈, 금액 쪽은 진짜 빼기 기호입니다. 나란히 놓인 두

글자가 서로 다릅니다.

금액 쪽은 이미 그렇게 되어 있었고 코드에 이유까지 적혀 있었습니다 — **등폭 글꼴에서

자릿수가 맞고 「+」와 높이가 같기 때문**입니다. 그 판단이 퍼센트에는 적용되지 않았습니다.

그래서 등락률 칸에서는 「+1.82%」의 플러스와 「-0.57%」의 마이너스가 서로 다른 높이로

놓여 있었습니다.

부호를 만드는 곳이 한 군데이므로 거기서 맞췄습니다. 앱 전체와 홈 화면 위젯의 모든

퍼센트·부호 표기에 함께 적용됩니다.

전체가 손실인 포트폴리오도 처음 그려 봤습니다

포트폴리오 화면 그림 여덟 장이 모두 합계는 이익이었습니다. 행 단위로는 오른 것과

내린 것을 함께 담고 있었지만, 화면에서 가장 큰 숫자인 「손익」이 음수인 모습은 한 번도

그려진 적이 없었습니다. 그려 보니 부호·색·비율은 모두 정확했고, 위의 빼기 기호 문제가

그 그림에서 눈에 띄었습니다.

  • 내부 검증 2564건 · 화면 기준선 391장. versionCode 808.
v3.29.272026-08-18
글씨를 키우면 김프 계산기의 금액이 줄 사이로 쪼개졌습니다

글씨를 200%로 두고 김프 실수익 계산기를 보시면 이랬습니다.

```

+₩30

총 프리미엄

,000

수수료(왕복)

₩4,116

```

「+₩30」과 「,000」이 다른 줄로 갈라집니다. 위쪽만 보면 총 프리미엄이 「+₩30」입니다 —

실제 값의 천분의 일인데, 화면 어디에도 이상한 티가 없습니다. 수수료 줄에서는 마이너스

부호만 혼자 윗줄에 남았습니다.

잘린 금액은 「…」이라도 남기지만, 쪼개진 금액은 완결된 다른 금액으로 읽힙니다.

같은 카드의 옆 줄은 이미 고쳐져 있었습니다

바로 위 「예상 청산가」 줄은 이 문제로 한 번 고쳐진 적이 있습니다. 이름과 값을 미리 재

보고 한 줄에 안 들어가면 값을 아랫줄에 펴는 방식입니다. 그런데 바로 옆 형제 줄

그대로였습니다. 이번에는 두 줄이 같은 조각을 쓰도록 합쳤습니다 — 다시 갈릴 수 없습니다.

앱 안의 다른 금액도 함께 훑었습니다

금액을 그리는 자리 여덟 곳을 찾아, 접힐 수 있는 여섯 곳을 「모자라면 글자를 줄여 온전히

보여 주는」 방식으로 바꿨습니다(시가총액 추이의 최저·최고, 코인 상세의 달러 환산가와

저가·고가, 환율 줄). 지금 화면에서는 보이는 모습이 그대로입니다 — 앞으로 더 큰 숫자나

더 좁은 화면에서 갈라지지 않게 하는 조치입니다.

이제 금액이 접힐 수 있으면 검사에서 걸립니다.

역프리미엄일 때의 계산기도 처음 그려 봤습니다

김프가 음수면 계산기는 손실을 냅니다. 한국 시장에서 흔한 상황이고 앱의 시험용 시세조차

역프인데, 그 화면을 그려 본 적이 없었습니다. 그려 보니 부호·색·경고 문구는 모두

정확했습니다. 이제 그 모습도 그림으로 남아 있습니다.

  • 내부 검증 2564건 · 화면 기준선 390장. versionCode 807.
v3.29.262026-08-18
분석할 자료가 없는데 「이 화면은 결론 → 근거 순서로 놓았습니다」가 먼저 나왔습니다

갓 상장한 코인처럼 봉이 30개가 안 되면 기술적 분석은 판정을 내지 않습니다. 그때 화면이

이랬습니다.

```

기술적 분석 1d

[투자 권유가 아닙니다 …]

이 화면은 «결론 → 그렇게 본 근거 → 언제 그 말을 거둬야 하는지»

순서로 놓았습니다. 급하시면 맨 위 한 줄만, 배우려면 아래까지

읽으시면 됩니다.

데이터가 부족해 분석할 수 없습니다.

다른 기간을 선택해 보세요.

```

결론도 근거도 없는 화면이 그 배치를 세 줄에 걸쳐 설명하고, 정작 「자료가 없습니다」는

그 아래에 있었습니다. 지표를 아직 계산 중일 때도 같았습니다.

읽는 순서 안내는 판정이 실제로 났을 때만 나오도록 옮겼습니다. 이제 자료가 없으면

「데이터가 부족해 분석할 수 없습니다 / 다른 기간을 선택해 보세요」가 바로 보입니다.

왜 이제야 보였나

이 절의 화면 그림은 전부 안쪽 조각을 직접 그려 왔습니다. 그래서 「자료도 있고 판정도

났다」만 그려졌고, 그 앞의 두 갈래 — 계산 중 · 자료 부족 — 는 **한 번도 그려진 적이

없었습니다.** 세 갈래를 다 그려 놓았습니다.

  • 내부 검증 2563건 · 화면 기준선 388장. versionCode 806.
v3.29.252026-08-18
공포지수 카드의 경고 표시가 「⚠ 07:13」이라고만 되어 있었습니다

세모가 무엇을 경고하는지 화면 어디에도 없었습니다. 같은 앱의 다른 카드는 같은 자리에

「⚠ 지연」이라고 낱말로 적습니다 — 시세 카드, 시장 맥박, 뉴스 출처 셋 다 그렇습니다.

공포지수 카드만 기호 하나로 끝났습니다.

시각만으로는 어제 것인지 알 수 없었습니다

연결이 끊기면 마지막으로 받은 값을 계속 보여 드립니다. 그런데 그 값이 어제 것이어도

도장은 「07:13」이라, 오늘 아침 값으로 읽힙니다. 이제 지연일 때는 시각 대신 **얼마나

됐는지**를 적습니다.

```

공포지수 ⚠ 지연 · 8분 전

```

정상일 때는 예전 그대로 시각입니다.

글씨를 키우면 제목과 맞닿고 뒷부분이 잘렸습니다

320 폭에 글씨 200%로 두면 「⚠ 지연 · 8분 전」이 「⚠ 지연 ·」까지만 나오고 말없이

잘렸습니다. 하필 잘리는 자리가 시간이라 얼마나 오래된 값인지가 사라집니다. 이제 미리

재 보고, 자리가 모자라면 「⚠ 지연」까지만 남깁니다 — 자르지 않습니다. 제목과 붙지

않도록 최소 간격도 뒀습니다.

왜 이제야 보였나

이 카드의 그림 열세 장 중 경고 표시가 나온 것이 한 장도 없었습니다. 지연 상태를

그린 한 장은 자료가 아예 없는 경우라 도장 자체가 안 나오고, 자료가 있는 열두 장은 전부

정상 상태였습니다. 그 칸을 채우자마자 위 셋이 한꺼번에 나왔습니다.

이제 「⚠」 옆에 낱말이 없으면 검사에서 걸립니다.

곁가지 — 급등락 화면이 1분마다 통째로 다시 그려지고 있었습니다

「N초 전」 같은 표시는 시계가 흘러야 하므로 주기적으로 다시 그립니다. 그런데 급등락

화면은 그 시계를 화면 본문에서 읽고 있어서, 눈금이 올 때마다 필터 칩과 코인 목록까지

전부 다시 그렸습니다. 이제 시각을 그리는 작은 조각에서만 읽습니다. 보이는 것은

그대로이고, 가만히 두었을 때 하는 일이 줄어듭니다.

내부 검사도 함께 고쳤습니다. 그 검사는 「작은 조각에서만 읽어야 한다」고 적어 두고

실제로는 파일 이름만 대조하고 있어서, 규칙이 금지하는 바로 그 모양이 그대로 지나갔습니다.

이제 크기를 잽니다.

  • 내부 검증 2563건 · 화면 기준선 385장. versionCode 805.
v3.29.242026-08-18
「⚠ 지연」 바로 옆에서 같은 값을 「실시간」이라 부르고 있었습니다

이 앱이 첫 줄에서 내세우는 약속이 있습니다 — **갱신에 실패해도 화면을 비우지 않고,

마지막으로 받은 값을 그대로 두고 「⚠ 지연」을 붙입니다.** 그 상태의 머리글이 이랬습니다.

```

코인·환율 시세 ● 실시간 · 8분 ⚠ 지연

```

같은 줄에서 같은 값을 「실시간」이라 부르고 「지연」이라 부릅니다. 시세를 보는 앱이 할

수 있는 가장 위험한 말입니다.

왜 이렇게 됐나

신선도 판정은 있었습니다. 다만 그 판정이 왼쪽 점의 색깔에만 쓰였습니다. 낱말은

언제나 「실시간」으로 고정이었습니다. 색이 유일한 신호라, 색을 가리기 어려우신 분께는

참말이 하나도 남지 않았습니다.

이제 오래된 값에는 「실시간」을 떼고 나이만 적습니다. 자리가 생긴 만큼 「8분」이 아니라

「8분 전」이라고 적어, 무엇의 8분인지도 분명해졌습니다.

```

코인·환율 시세 ● 8분 전 ⚠ 지연

```

글씨를 200%로 키우면 나이가 아예 사라지고 있었습니다

머리글은 제목·배지·통화 버튼이 한 줄에 들어가는지 미리 재서, 모자라면 두 줄로 나눕니다.

그런데 배지 폭을 「실시간」 세 글자로만 재고 있었습니다. 실제 배지는 「실시간 · 12초」라

더 넓으므로, 한 줄에 들어간다고 잘못 판단하고 시간 부분을 통째로 떨어뜨렸습니다.

이제 가장 긴 표기까지 재고 판단합니다.

처음 그려 본 화면이었습니다

앱 화면 그림 383장을 상태별로 세어 보니, **「값은 남고 ⚠ 지연만 붙는」 상태가 한 장도

없었습니다.** 첫 줄에서 광고하는 상태인데 한 번도 그려 본 적이 없었던 것입니다.

그려 보자마자 위 두 가지가 나왔습니다. 이제 그 그림이 있습니다.

  • 내부 검증 2562건 · 화면 기준선 383장. versionCode 804.
v3.29.232026-08-18
자료가 오는 중인데 「BTC 시가총액 추이 (0일)」이라고 적혀 있었습니다

도미넌스 화면을 여시면 시가총액 추이 그림이 뜹니다. 그 그림이 아직 오지 않았을 때

제목이 이랬습니다.

```

BTC 시가총액 추이 (0일)

불러오는 중…

```

한 줄 위에서는 「0일치 보여 드립니다」라고 하고, 한 줄 아래에서는 「아직 오는

중입니다」라고 합니다. 자료를 받지 못했을 때도 같았습니다 — 「(0일)」 아래에 「불러오지

못했습니다」가 붙었습니다.

왜 이렇게 됐나

원래는 제목이 「(90일)」로 고정이었습니다. 제공처가 짧게 주면 열흘치를 그려 놓고

90일이라 부르는 셈이라, 지난 판에 실제로 그린 날 수를 넣도록 고쳤습니다.

그 고침이 0을 안 봤습니다. 아직 아무것도 없을 때 그 수가 0이 되고, 없는 것을

「0일치 봤다」고 말하게 됩니다. 그릴 만큼 있을 때만 날 수를 붙이고, 아닐 때는 이름만

두도록 했습니다.

같은 자리를 하나 더 찾았습니다

기술적 분석 카드에는 「판단에 쓴 지표가 N개뿐입니다」라는 안내가 있습니다. 지표가 모두

「중립」이면 이 수가 0이 되어 「지표가 0개뿐입니다」가 됩니다 — 수를 말하는 척하면서

아무 말도 안 하는 문장입니다. 그때는 「방향을 낸 지표가 하나도 없습니다」라고 적습니다.

다시 안 생기게

앱 안에서 센 수 하나로 「얼마나 있나」를 말하는 문구를 모두 찾아, 그 수가 0일 수

있는 자리가 있는지 보는 검사를 넣었습니다. 지금 일곱 자리가 있고, 모두 막혀 있습니다.

「지표는 5대 0으로 기울었지만」처럼 둘을 견주는 문구는 0이 정상이므로 뺐습니다.

  • 내부 검증 2558건 · 화면 기준선 382장. versionCode 803.
v3.29.222026-08-18
태블릿 3단 화면에서 지수 이름이 「KO…」로 뭉개졌습니다

화면 그림 378장을 축(화면 폭 · 글씨 배율 · 밝기 · 언어)으로 세어 빈칸을 찾았습니다.

넓은 화면 × 밝은 모드 × 큰 글씨는 한 장도 없었고, 3단 태블릿 배치는 기본 글씨

한 장뿐이었습니다. 그 두 칸을 채웠더니 바로 나왔습니다.

지수 이름이 잘렸습니다

3단 배치에서 글씨를 키우면 KOSPI가 「KO…」, S&P 500이 「SP…」가 되었습니다.

이름 칸이 56으로 고정되어 있었기 때문입니다. 칸은 고정인데 글자는 설정에 따라

커지므로, 자리가 넉넉해도 이름만 잘립니다. 이제 칸도 글씨 배율만큼 늘어납니다.

기본 글씨에서는 예전 그대로입니다.

값과 등락률이 붙어 있었습니다

`2,500.12+0.53%`처럼 맞닿아 있었습니다. 평소에는 값 칸에 남는 폭이 사이를 벌려 주는데,

큰 글씨에서는 값이 칸을 꽉 채우기 때문입니다. 사이를 띄웠습니다.

같은 규칙을 지키는 검사도 넓혔습니다

「글자 칸을 고정 폭으로 못 박지 않는다」는 검사가 입력칸만 보고 있었습니다. 보통

글자에도 적용되도록 넓혔습니다. 스스로 글씨를 줄여 맞추는 칸은 예외입니다 — 잘리는

대신 작아지므로 뜻이 사라지지 않습니다.

  • 내부 검증 2555건 · 화면 기준선 380장. versionCode 802.
v3.29.212026-08-18
글씨를 키우면 시세 목록에서 코인 이름이 값 사이로 내려앉았습니다

앱에서 가장 많이 보시는 화면입니다. 한 줄은 왼쪽에 심볼·한글 이름, 오른쪽에 가격·달러값·

김프가 놓입니다.

글씨를 키우면 오른쪽이 세 줄이 되는데 왼쪽은 두 줄 그대로라, 짧은 왼쪽이 가운데로

내려앉았습니다.

> ⠀⠀⠀⠀⠀₩96,985,000 +1.82%

> BTC⠀⠀⠀⠀⠀⠀⠀⠀$66,324

> 비트코인⠀⠀⠀⠀김프 −0.57%

이제 첫 줄끼리 맞습니다.

> BTC⠀₩96,985,000 +1.82%

> 비트코인⠀⠀⠀⠀⠀⠀$66,324

> ⠀⠀⠀⠀⠀⠀⠀⠀김프 −0.57%

로고는 예전대로 가운데입니다 — 줄을 가운데로 맞추던 것이 원래 로고 때문이었습니다.

어디서 찾았나

폴더블 2단 화면 × 글씨 200% 그림에서 찾았습니다. 넓은 화면만 보거나 큰 글씨만 보는

그림에는 나타나지 않던 자리입니다.

같은 무늬를 오늘 다섯 번째로 고쳤습니다(포트폴리오·스크리너·조용시간·알림 규칙·시세

목록). 남은 자리가 있는지 다시 훑었고, 나머지는 줄 수가 늘 같아 가운데 맞춤이 맞는

자리였습니다.

  • 내부 검증 2552건 · 화면 기준선 378장. versionCode 801.
v3.29.202026-08-18
「못 읽으면 건너뛴다」를 「못 읽으면 알린다」로 바꿨습니다

화면에 보이는 변화는 없습니다. 검사 쪽 이야기입니다.

앞 판에서 검사 서른네 곳이 문구 속성 하나에 눈을 감고 있던 것을 고쳤습니다. 같은 병이

다른 모양으로도 있는지 검사 전체를 훑었습니다.

결과부터 적습니다 — 한 곳이었습니다. 「체계적인 문제」가 아니라 한 자리였습니다.

화면 갱신이 건너뛰지 않도록 지키는 검사가, 목록에 적힌 모델을 **못 읽으면 조용히

넘어가고** 있었습니다. 파일을 옮기거나 선언 모양이 바뀌면 그 모델은 목록에 이름만 남은

채 검사 없이 지나갑니다. 이제 못 읽으면 그 자리에서 알립니다.

나머지 후보 열세 곳은 열어 보니 이미 보호되어 있었습니다(읽은 파일 수를 세거나, 못

읽으면 그 자리에서 실패하는 형태였습니다). 찾아본 것과 찾아낸 것을 함께 적습니다.

  • 내부 검증 2550건 · 화면 기준선 378장. versionCode 800.
v3.29.192026-08-18
검사 서른네 곳이 문자열 속성 하나에 눈을 감고 있었습니다

화면에 보이는 변화는 없습니다. 검사 쪽 이야기입니다.

오늘 오전에 문구 하나에 속성(`formatted="false"`)을 붙였더니 검사 여덟 개가 「문구가

없다」며 깨졌습니다. 문구는 그대로 있었고 여는 태그의 모양만 달라졌습니다. 그때는

그 여덟을 고치고 공용 함수로 모았습니다.

오후에 세어 보니 같은 자리가 서른네 곳 더 있었습니다.

깨지는 것보다 나쁜 경우

이름을 콕 집어 읽는 검사는 못 찾으면 깨집니다 — 시끄러우니 고쳐집니다.

그런데 이름을 훑어 모으는 검사는 속성이 붙은 문구를 목록에서 빼 버립니다.

위반이 있어도 없는 것으로 세고 초록불로 지나갑니다.

그런 문구가 지금 다섯 언어에 18개 있습니다. 문구 길이·마크다운 누출·번역 숫자 일치를

보는 검사 셋이 그만큼을 안 보고 있었습니다.

서른네 곳을 모두 고치고 전체를 돌렸습니다. 새로 드러난 위반은 없었습니다 — 구멍은

진짜였지만 아직 아무것도 빠지지 않았습니다. 그 사실도 함께 적어 둡니다.

앞으로 같은 모양이 새로 생기면 배포 전에 걸립니다.

  • 내부 검증 2550건 · 화면 기준선 378장. versionCode 799.
v3.29.182026-08-18
알림 화면에서 토글이 문장 가운데에 끼어 있었습니다

글씨를 키우면 설명이 두세 줄로 접힙니다. 그런데 토글이 그 글 뭉치의 가운데

맞춰져 있어서, 문장 사이에 끼어 이렇게 읽혔습니다.

> 조용시간

> 이 시간대에는 알림을[토글]

> 보내지 않습니다.

사이 간격도 없어 글자와 맞닿아 있었습니다.

이제 토글이 제목 옆에 서고, 설명은 그 아래로 끊기지 않고 흐릅니다. 알림 규칙 줄의

토글과 삭제 버튼도 같이 고쳤습니다 — 규칙 설명은 네 줄까지 접힙니다.

같은 무늬를 오늘 네 번째로 만났습니다

포트폴리오 보유 줄, 스크리너, 조용시간, 알림 규칙입니다. 규칙은 하나입니다 —

가운데 맞춤은 나란히 놓인 것들의 줄 수가 같을 때만 맞습니다. 기본 글씨에서는 대개

같아서 아무 일도 일어나지 않고, 글씨를 키우면 한쪽만 길어져 짧은 쪽이 가운데로

내려앉습니다.

  • 내부 검증 2547건 · 화면 기준선 378장. versionCode 798.
v3.29.172026-08-18
시장 맥박의 세모가 무슨 뜻인지 화면에 없었습니다

시장 맥박 카드는 지표마다 칩을 하나씩 답니다 — 「심리 30 ▼」처럼 이름·값·세모입니다.

그런데 세모는 그 숫자의 방향이 아닙니다. 그 지표가 「위험 선호」와 「위험 회피」 중

어느 쪽에 준 표입니다. VIX는 값이 낮을수록 ▲이고, 시총 24h는 경계가 ±1%라 −0.6%면

「―」가 됩니다. 그래서 이런 줄이 나옵니다.

> BTC/알트 +1.4%p

양수인데 아래 화살표라 어리둥절하게 됩니다.

이미 알고 있었지만, 절반만 고쳐져 있었습니다

코드에 이 사정을 적은 기록이 있었고 「그래서 말로 함께 말한다」로 끝났습니다. 그런데 그

말은 화면 낭독기에만 들어가 있었습니다. 눈으로 보시는 분에게는 여전히 세모뿐이었고,

그 기록이 근거로 든 사건 자체가 눈으로 보다 갸웃한 이야기였습니다.

이제 칩 줄 아래에 한 줄이 붙습니다.

> ▲ 위험 선호 · ― 중립 · ▼ 위험 회피

칩마다 낱말을 붙이면 「시총 24h −2.4% ▼ 위험 회피」가 되어 너무 넓어집니다. 한 줄이 네

칩을 한 번에 설명합니다.

카드가 이미 쓰는 낱말을 그대로 씁니다. 「선호/회피」처럼 줄여 쓰면 같은 상태가 두

이름으로 불리게 되므로, 그 일치도 함께 검사합니다.

  • 내부 검증 2545건 · 화면 기준선 378장. versionCode 797.
v3.29.162026-08-18
스크리너에서도 「추가」 표시가 코인 이름과 떨어져 있었습니다

앞 판에서 포트폴리오의 같은 문제를 고쳤습니다. **성질이 같은 자리를 저희 쪽에서 먼저

훑었더니** 스크리너에 하나가 더 있었습니다.

급등·급락 목록에서 글씨를 키우면 한 줄이 두 줄로 나뉩니다 — 위는 「무엇인가」(심볼·이름·

추가 표시), 아래는 「얼마인가」(가격·등락률)입니다. 그런데 위 줄의 **추가 표시(+)가

심볼과 이름 사이 빈 곳**에 떠 있었습니다.

> DOGE

> ⠀⠀⠀⠀⠀⠀⠀⠀+

> 도지코인

이제 심볼 옆에 붙습니다. 어느 코인에 대한 표시인지 바로 읽힙니다.

좁은 화면 갈래는 그대로 둡니다

한 줄에 다섯을 넣는 좁은 갈래에서는 「심볼·이름」 두 줄 덩어리가 그 줄의 이름표이고,

값들은 그 덩어리 전체에 맞춰 가운데 놓이는 것이 맞습니다(표의 한 줄처럼 읽힙니다).

같은 규칙을 기계적으로 밀면 일어나지 않는 문제를 고치게 됩니다.

  • 내부 검증 2540건 · 화면 기준선 378장. versionCode 796.
v3.29.152026-08-18
글씨를 키우면 포트폴리오에서 코인 이름이 제 값에서 떨어졌습니다

보유 목록의 한 줄은 세 칸입니다 — 왼쪽에 심볼·수량, 가운데에 평가액·비중, 오른쪽에 거래

버튼입니다.

글씨를 키우면 손익률이 가운데 칸으로 내려옵니다(오른쪽이 좁아지기 때문입니다). 그러면

가운데가 세 줄이 되는데 왼쪽은 두 줄 그대로라, 짧은 왼쪽이 가운데로 내려앉았습니다.

> ₩14,436,000

> BTC 비중 70.2%

> 0.15

> +9.36%

심볼이 자기 평가액이 아니라 비중과 나란히 있고, 수량은 그 아래 어중간한 자리에

떨어졌습니다.

이제 첫 줄끼리 맞춥니다.

> ETH ₩6,125,000

> 2.5 비중 29.8%

> −5.77%

거래 버튼은 예전대로 가운데입니다 — 줄을 가운데로 맞추던 것이 원래 그 버튼 때문이었습니다.

기본 글씨에서는 양쪽이 모두 두 줄이라 예전에도 멀쩡했습니다. **글씨를 200%로 키운 그림을

열어야 보이는 종류**입니다.

  • 내부 검증 2538건 · 화면 기준선 378장. versionCode 795.
v3.29.142026-08-18
작아서 누르기 어려운 자리가 열네 곳 있었습니다

손가락이 닿는 크기의 기준은 48dp입니다(안드로이드 접근성 검사기가 경고하는 값이기도

합니다). 이 앱은 그 기준을 검사하고 있었는데, 검사 대상이 여섯 곳뿐이었습니다.

전용 그림을 만들어 둔 것만 재고 있었던 셈입니다.

실제로 누를 수 있는 자리는 쉰 곳이 넘습니다.

어떻게 쟀나

크기를 눈으로 어림하지 않았습니다. 「48dp보다 작으면 키운다」는 보정은 **이미 큰 곳에는

아무 영향이 없으므로**, 보장이 없던 자리에 전부 걸고 화면 그림을 다시 찍었습니다.

바뀐 그림이 곧 원래 작았던 자리입니다 — 열네 장이었습니다.

가장 작았던 것은 통신 실패 화면의 「다시 시도」 버튼으로 33dp였습니다. 연결이 끊겨

당황한 상태에서 누르는 버튼인데 가장 누르기 어려웠습니다.

그 밖에 판독 화면의 「더 보기 / 접기」, 설정의 몇몇 항목, 비교 구간 선택이 함께

커졌습니다.

앞으로

이제 누를 수 있는 자리가 새로 생기면 48dp가 보장되기 전에는 배포가 막힙니다.

전용 그림을 만들어 두었는지와 무관하게, 코드에서 직접 셉니다.

  • 내부 검증 2534건 · 화면 기준선 378장. versionCode 794.
v3.29.132026-08-18
배분 도넛의 맞닿은 조각이 같은 색이었습니다

앞 두 판에서 비교 차트와 가격 차트를 고쳤습니다. 이번에는 **같은 성질의 자리를 한꺼번에

훑었습니다** — 하나씩 찾아 고치면 다음 판에 또 나오기 때문입니다.

앱에서 색을 여러 개 늘어놓은 목록은 여덟 개였습니다. 그중 새로 나온 것이 하나입니다.

자산 배분 도넛

보유 종목이 다섯 개를 넘으면 맞닿은 두 조각이 같은 색이었습니다(적록색약 기준).

조각 사이 틈이 1.2도뿐이라 색이 같으면 한 덩어리로 보입니다.

색은 하나도 바꾸지 않고 순서만 다시 잡았습니다. 8!(40,320가지)을 모두 따져 어느

조각 수에서도 맞닿은 조각이 충분히 갈리는 배치를 찾았습니다.

나머지는 괜찮았습니다
  • 지표 차트(스토캐스틱 %K/%D, MACD 선/시그널) — 금색과 파랑·회색이라 잘 갈립니다
  • 코인 둘 겹쳐 보기 — 보라와 주황, 잘 갈립니다
  • 공포·탐욕 게이지 5단계 — 색이 값을 거들 뿐이고 숫자와 이름표가 함께 나갑니다 마지막 항목은 면제의 근거까지 검사가 확인합니다. 숫자나 이름표가 사라지면 색만 남으므로, 그때는 면제도 함께 사라져야 하기 때문입니다.
앞으로

색을 여러 개 늘어놓은 목록이 새로 생기면, **식별용인지 눈금용인지 정하기 전에는 배포가

막힙니다.** 식별용이면 색각 이상에서 갈려야 하고, 못 갈리면 둘째 채널(선 모양·순서)이

있어야 합니다.

  • 내부 검증 2533건 · 화면 기준선 378장. versionCode 793.
v3.29.122026-08-18
가격 차트에서도 겹치는 선 셋이 한 색으로 보였습니다

앞 판에서 성과 비교 차트를 고쳤는데, 같은 문제가 가격 차트에도 있었습니다.

이동평균 20일선(보라)·볼린저 밴드(파랑)·VWAP(청록)을 함께 켜면, 적록색약으로 보실 때

셋이 같은 색입니다. 재 보니 보라와 파랑은 거리가 0이었습니다.

이제 20일선은 긴 파선, VWAP은 점선으로 그립니다. 5일선·10일선·볼린저는 실선 그대로

이고, 그 셋끼리는 색으로 충분히 갈립니다. 범례의 표시도 네모에서 선 조각으로 바꿨

습니다 — 차트에서 모양이 가르는데 범례가 네모면 이을 수가 없습니다.

왜 지금까지 안 보였나

이 색들이 화면 그림에 반영되지 않는 상태였습니다. 색 정의가 상세 화면 안에만 있어

그림 쪽에서 쓸 수 없었고, 그래서 그림은 같은 색을 숫자로 베껴 적어 두고 있었습니다.

색을 고쳐도 그림은 한 장도 안 바뀌는 상태였던 셈입니다.

색을 한 곳으로 모으고, 다섯 선을 모두 켠 그림을 새로 만들었습니다. 앞으로 색이나 모양을

바꾸면 그림에 바로 나타납니다.

  • 내부 검증 2530건 · 화면 기준선 378장. versionCode 792.
v3.29.112026-08-18
코인이 다섯 개를 넘으면 비교 차트의 선이 구분되지 않았습니다

7일 성과 비교 카드는 코인마다 선을 하나씩 그립니다. 그 선을 가르는 것은 색뿐이었습니다.

색각 이상(적록색약)을 모의해 재 보니, 다섯 번째 코인부터 두 선이 사실상 같은 색

됩니다. 파랑·남색·보라·자주가 한 덩어리로 뭉치기 때문입니다. 이 앱의 기본 목록은 일곱

개라 기본 상태에서 이미 그랬습니다. 남성 스무 명 중 한 명 남짓이 그렇게 보십니다.

선 모양을 더했습니다

12색을 모두 갈리게 만드는 것은 불가능합니다 — 그만한 색이 없습니다. 그래서 채널을 하나

더 썼습니다. 세 코인마다 선 모양이 바뀝니다(실선 → 긴 파선 → 점선 → 파선점).

그러면 색으로 갈려야 하는 것은 같은 모양인 셋뿐입니다.

범례의 표시도 점에서 선 조각으로 바꿨습니다. 차트에서 모양이 갈리는데 범례가 점만

보여 주면 이을 수가 없기 때문입니다.

코인이 셋 이하이면 모두 실선이라 예전과 똑같이 보이십니다.

선 색 둘이 흐렸습니다

밝은 모드의 주황·연두 선이 카드 아래쪽에서 기준(3:1)에 못 미쳤습니다(2.98 · 2.89).

색을 고를 때 흰 배경만 보고 정했기 때문입니다. 카드는 위에서 아래로 흐르고 아래쪽이

더 어둡습니다. 둘을 한 단계 더 진하게 잡았습니다.

같은 실수가 이 앱에서 세 번째입니다. 바닥을 하나 골라 재면 늘 한 단계씩 후하게 나옵니다.

  • 내부 검증 2526건 · 화면 기준선 377장. versionCode 791.
v3.29.102026-08-18
밝은 모드에서 색 대비가 기준에 못 미치는 자리가 있었습니다

밝은 모드의 등락색·경고색을 조금 진하게 바꿨습니다. 어두운 모드는 그대로입니다.

어떻게 찾았나

이 앱은 색 대비를 계산으로 검사하고 있었습니다. 그런데 그 검사가 카드 배경까지만

보고 있었습니다. 실제로 글자가 놓이는 바닥은 넷입니다.

> 흰 카드 → 카드 아래 → 화면 배경 → 칩·인셋

뒤로 갈수록 어둡고, 어두운 글자에게는 그만큼 불리합니다. 밝은 모드 화면 그림 42장을

픽셀 단위로 세어 보니 가장 어두운 칩 위에 등락색 글자가 실제로 있었습니다. 거기서

다시 재니 빨강 4.10 · 파랑 4.38 · 초록 4.25 · 앰버 4.26 으로 **넷 다 기준(4.5)

아래**였습니다.

무엇을 바꿨나

네 색을 기준을 넘도록 진하게 잡았습니다(칩 기준 4.9~5.7). 화면에서는 붉은색·푸른색이

아주 조금 짙어진 정도로 보이실 것입니다.

팔레트 옆에 적혀 있던 대비 수치도 실제로 잰 값으로 바꿨습니다. 「흰 배경 ~6.8:1」이라고

적혀 있던 자리가 실제로는 7.74:1이었습니다.

검사도 함께 고쳤습니다

이제 배경 하나를 골라 재지 않고 네 바닥을 모두 재서 가장 낮은 값을 씁니다. 어느

바닥이 최악인지 사람이 고르는 순간, 새 표면이 생기면 또 빠지기 때문입니다. 실패 문구도

「칩·인셋 위에서 4.10:1」처럼 어느 바닥에서 무너졌는지를 말합니다.

  • 내부 검증 2521건 · 화면 기준선 375장. versionCode 790.
v3.29.92026-08-18
코인을 다 지우면 첫 화면이 「시세 없음」 넉 자였습니다

설정에서 표시할 코인을 하나씩 지울 수 있고, 마지막 하나도 지워집니다. 그러면 첫

화면에는 이 넉 자만 남았습니다.

> 시세 없음

같은 앱의 다른 빈 화면은 전부 다음에 무엇을 하면 되는지 알려 드립니다. 포트폴리오는

「보유 코인을 추가해 손익을 확인하세요.」, 담아 둔 기사는 「기사 오른쪽의 ☆ 를 누르면

여기에 모입니다.」라고 합니다. 가장 먼저 보시는 화면만 그러지 않았습니다.

이제 이렇게 나옵니다.

> 표시할 코인이 없습니다.

> 설정에서 코인 추가

아래 줄을 누르면 설정으로 갑니다.

함께 가른 것

「목록이 비었다」와 「목록은 있는데 시세를 하나도 못 받았다」는 다른 일입니다. 뒤엣것에

「표시할 코인이 없습니다」라고 하면 통신 문제를 고객님 설정 탓으로 돌리는 셈이

됩니다. 그래서 이 문구는 목록이 실제로 빈 경우에만 나옵니다. 시세를 못 받은 경우에는

예전처럼 「시세를 받지 못한 코인 N종은 목록에 없습니다」가 그 사실을 말합니다.

  • 내부 검증 2521건 · 화면 기준선 375장. versionCode 789.
v3.29.82026-08-18
주 화면의 실패 알림이 개발자 말투였습니다

시세 카드에서 지수나 환율을 못 받으면 이렇게 나왔습니다.

> 지수 로드 실패

> 환율 로드 실패

같은 앱이 다른 자리에서는 「공포지수를 불러오지 못했습니다.」라고 말합니다. 앱의 첫

화면에만 로그 같은 문구가 남아 있었습니다. 게다가 「로드」와 「불러오기」가 같은 뜻으로

섞여 있었습니다.

다섯 언어 모두 앱의 말투로 맞췄습니다.

> 지수를 불러오지 못했습니다.

> 환율을 불러오지 못했습니다.

이름도 함께 고쳤습니다

환율 쪽 문구의 내부 이름이 「비었을 때」로 되어 있었는데, 실제로는 「받아 왔어야 하는데

못 받았을 때」에만 나옵니다. 표시 통화를 전부 꺼 두신 경우에는 나오지 않습니다 — 그건

실패가 아니라 고르신 결과이기 때문입니다.

화면에 보이는 것은 그대로지만, 이름이 조건을 잘못 말하면 나중에 그 문구가 **사용자가

고른 상태에도** 붙게 됩니다. 그때는 선택을 앱의 실패로 알리는 셈이 됩니다.

  • 내부 검증 2516건 · 화면 기준선 373장. versionCode 788.
v3.29.72026-08-18
「불러오지 못했습니다」에서 끝나지 않게, 다시 시도를 넣었습니다

코인 상세 화면 아래쪽 세 칸(채산성·미국 프리미엄·코인 정보)은 자료를 못 받으면

「이 항목을 불러오지 못했습니다」라고 알려 드렸습니다. 여기까지는 됐는데, **그다음이

없었습니다.**

그 칸들은 코인을 바꿀 때만 다시 불러옵니다. 한 번 실패하면 화면을 닫았다 다시 열기

전에는 영영 그 문장만 남습니다. 그런데 화면은 그 사실을 알려 주지 않으니, 기다리면

될 줄 알고 기다리게 됩니다.

이제 그 아래에 「다시 시도」가 붙습니다. 누르면 그 칸만 다시 불러오고, 불러오는

동안에는 「불러오는 중…」으로 바뀝니다.

마지막 줄이 사소해 보이지만 중요합니다. 눌렀는데 화면이 그대로면 안 눌린 줄 알고 다시

누르게 되고, 그동안 요청은 겹쳐서 나갑니다.

  • 내부 검증 2512건 · 화면 기준선 373장. versionCode 787.
v3.29.62026-08-18
같은 규칙이 세 곳 중 두 곳에만 적용돼 있었습니다

화면에 보이는 변화는 없습니다. 그런데도 적어 둡니다.

뉴스 한 줄에는 제목 아래에 「출처 · 분류 · 시간」과 번역 버튼이 함께 놓입니다. 자리가

모자라면 줄을 나누어야 하는데, 그러려면 남는 자리가 얼마인지를 알아야 합니다.

같은 줄을 그리는 곳이 세 군데입니다(홈 카드 · 뉴스 목록 · 코인 상세의 뉴스). 두 곳은

부모가 준 폭을 그대로 읽고, 뉴스 목록만 「화면 폭에서 여백을 뺀 값」으로 어림하고

있었습니다. 넓은 화면에서 이 목록은 읽기 좋은 폭(640)으로 묶이는데 어림값은 그걸 모르니,

1000짜리 화면에서 350 넘게 넓게 잡혔습니다.

고쳤지만, 보이는 증상은 없었습니다

넓은 화면에 긴 분류를 넣은 그림을 만들어 고치기 전후를 대조했습니다. **픽셀 하나 다르지

않았습니다.** 그 어림값이 정하는 것은 「줄을 나눌까」 하나뿐인데, 그 줄은 짧아서 어느

쪽으로 재도 늘 들어가기 때문입니다.

그래도 고쳤습니다. 틀린 수를 남겨 두면 그 줄을 다음에 손대는 사람이 그 수를 물려받습니다.

지금 안 보이는 것과 맞는 것은 다릅니다. 그리고 위의 대조 결과도 코드에 함께 적어

두었습니다 — 다음에 같은 의심을 하는 사람이 같은 곳을 다시 파지 않도록.

검사가 왜 못 잡았나

이 규칙을 지키는 검사는 자리 목록을 손으로 들고 있습니다(규칙이 문법으로 안 잡혀서

그렇습니다). 그 목록에 뉴스 목록 화면이 빠져 있었습니다. 이제는 **재는 함수를 부르는

화면 파일**을 기계가 찾아, 목록에 없으면 배포 전에 걸립니다.

  • 내부 검증 2508건 · 화면 기준선 371장. versionCode 786.
v3.29.52026-08-18
도미넌스의 두 줄과 첫 화면의 아이콘을 바로잡았습니다

큰 글씨 그림을 계속 열어 보다 두 가지를 찾았습니다.

문장인데 표처럼 그려지고 있었습니다

도미넌스 화면의 증거 줄이 이렇게 나갔습니다.

> +2.40%p 변동&#160;· 54.00% → 56.40%&#160;· 최근 47.0시간&#160;· 관측 48회

이 줄만 고정폭 글꼴이었습니다. 고정폭은 숫자를 세로로 맞추려고 쓰는 것인데, 이 줄은

흐르는 한 문장이라 맞출 상대가 없었습니다. 그러면서 한글이 늘어져 폭을 더 쓰고, 기본

글씨에서도 두 줄로 접혔습니다. 바로 위아래 문단은 처음부터 보통 글꼴이었으니, 같은

화면에서 같은 성격의 글이 두 모양으로 나가고 있었던 셈입니다.

보통 글꼴로 맞췄습니다. 이제 한 줄에 들어갑니다.

첫 화면 아이콘이 글 가운데로 내려가 있었습니다

첫 실행 화면의 기능 네 줄은 아이콘 타일과 설명이 나란히 놓입니다. 글씨를 키워 설명이

서너 줄로 접히면 타일이 가운데 줄 옆까지 내려갔습니다. 「무료 · 로그인 없음 · 수집

없음 · 광고 없음」이 네 줄이 되면 자물쇠 아이콘이 세 번째 줄 옆에 있는 식입니다.

그렇다고 위로만 붙이면 글이 한 줄일 때 타일이 아래로 늘어집니다. 그래서 **첫 줄의

높이를 재서** 그 줄에 맞췄습니다. 한 줄일 때는 예전과 똑같이 보이고, 접히면 타일이

첫 줄에 남습니다.

앞 판에 이어 같은 계열입니다. 큰 글씨에서 기호와 글의 세로 관계가 어긋나는 자리를

계속 훑고 있습니다.

  • 내부 검증 2507건 · 화면 기준선 370장. versionCode 785.
v3.29.42026-08-18
글이 조각으로 시작하고, 글머리 점이 줄에서 내려앉아 있었습니다

큰 글씨(200%) 기준 그림을 열어 보다 두 가지를 찾았습니다.

무엇을 쟀는지가 사라진 문장

「깨지는 선」 카드 아래 설명이 이렇게 시작했습니다.

> 재 봤습니다. 이 선이 무너진 뒤 20봉 안에 판정이 뒤집힌 비율은 56%…

무엇을 재 봤는지가 없습니다. 처음 봤을 때 저희도 「윗부분이 잘렸나」 싶었습니다.

잘린 것이 아니라 그렇게 쓰여 있었습니다.

원래는 「재 봤습니다 — 이 선이…」였는데, 지난 판에서 문장의 줄표를 정리하면서

마침표로 끊겼습니다. 문법으로는 완결된 문장이라 규칙에 걸리지 않았지만, 뜻으로는

뒤를 끌어오는 말이라 조각이 되었습니다. 「정말 그런지 재 봤습니다」로 되돌렸고

영어·일본어도 함께 고쳤습니다. 중국어는 처음부터 맞게 되어 있었습니다.

글머리 점이 글줄 바닥에 앉아 있었습니다

목록 앞의 「·」와 「✓」가 옆 글보다 아래에 찍히고 있었습니다. 글씨를 키울수록 더

벌어져서, 200%에서는 점이 글줄의 밑줄 근처까지 내려가 어느 줄에 붙은 기호인지

읽기 어려웠습니다.

기호와 글에 줄 높이를 따로 주고 있던 것이 원인이었습니다. 네 곳 모두 맞추자 점이

글줄 한가운데로 올라왔고, 화면 기준 그림 41장이 함께 바뀌었습니다.

한 곳에는 이미 「기호가 두 줄 사이에 떠 있다」는 기록이 남아 있었습니다. 그때는 위치를

옮겨 가렸고, 이번에 원인을 고쳤습니다.

  • 내부 검증 2503건 · 화면 기준선 370장. versionCode 784.
v3.29.32026-08-18
내려받기 설명이 옛 방식을 적고 있었습니다

화면에 보이는 변화는 없습니다.

새 버전을 받는 방식이 예전에 바뀌었습니다. 안드로이드에 맡기던 것을 앱이 직접 받는

쪽으로 옮기면서, 진행 표시가 시스템 알림에서 앱 화면 안으로 들어왔습니다. 지금은

받은 양(%)과 재시도 횟수까지 배너에 보여 드립니다.

그런데 그 사실이 세 곳에 반영되지 않았습니다.

  • 코드 설명이 아직 「안드로이드에 맡겨 앱 바깥에 받는다(진행은 시스템 알림)」였습니다
  • 이제 안 쓰는 부품을 여전히 불러오고 있었습니다
  • 검수 목록 세 항목이 「없는 알림」을 확인하라고 적혀 있었습니다 마지막이 가장 나쁩니다. 그 항목을 들고 기기 앞에 앉으면 없는 것을 찾다가 「기능이 빠졌다」고 적게 됩니다. 셋 다 실제와 맞췄고, 앞으로 어긋나면 배포 전에 걸립니다. 한 가지는 일부러 남겼습니다 — 왜 그렇게 바뀌었는지를 적은 기록입니다. 근거가 남아 있어야 다음에 되짚을 수 있습니다.
  • 내부 검증 2496건 · 화면 기준선 370장. versionCode 783.
v3.29.22026-08-18
「밖에서 열 수 있는 문」을 검증이 지키게 했습니다

화면에 보이는 변화는 없습니다.

앱에는 다른 앱이나 웹페이지가 두드릴 수 있는 「문」이 있습니다. 이 앱은 그 문이

런처 아이콘 하나뿐입니다 — 홈 화면에서 아이콘을 누르셨을 때만 열립니다.

훑어 보니 지금 상태는 깨끗했습니다.

  • 밖에 열린 것은 앱 화면 하나뿐이고, 그마저 아이콘 실행만 받습니다(딥링크 없음)
  • 업데이트 파일을 넘기는 통로는 닫혀 있고, 설치기에게만 그때그때 권한을 줍니다
  • 위젯 수신기도 닫혀 있습니다
  • 앱 안에 웹뷰가 없습니다 — 기사는 브라우저가 엽니다 깨끗하니 그대로 지켜지도록 검증을 세웠습니다. 이런 자리는 한 글자로 열립니다 — 설정 한 줄, 딥링크 한 줄, 웹뷰 하나. 그리고 열린 것은 화면에 보이지 않습니다.
  • 내부 검증 2492건 · 화면 기준선 370장. versionCode 782.
v3.29.12026-08-18
내려받은 설치 파일을 앱 안쪽으로 옮겼습니다

화면에 보이는 변화는 없습니다.

새 버전을 앱에서 직접 받으실 때, 받은 설치 파일은 검사를 두 번 거칩니다 — **내용이

그대로인지(해시)와 같은 곳에서 서명한 것인지**입니다. 둘 중 하나라도 어긋나면

설치하지 않습니다.

그런데 그 파일이 놓이던 자리가 앱 바깥의 공유 폴더였습니다. 안드로이드 10부터는

그 폴더도 사실상 앱 전용이지만, 이 앱은 안드로이드 8.0까지 지원하고 **8.0~9.0에서는

저장소 권한을 가진 다른 앱이 그 폴더를 읽고 쓸 수 있습니다.** 받아 둔 파일이 남에게

보이고, 검사와 설치 사이에 바꿔치기할 틈이 생깁니다.

바꿔치기하더라도 안드로이드가 서명이 다른 설치 파일을 거부하기 때문에 실제로 다른 앱이

깔리지는 않습니다. 그래도 틈을 남길 이유가 없어 앱 안쪽 저장소로 옮겼습니다. 임시

파일이라 저장공간이 모자라면 안드로이드가 알아서 비웁니다.

검사 자체는 그대로입니다. 자리를 옮긴다고 확인을 무르지 않았고, 검증이 그것까지 봅니다.

  • 내부 검증 2487건 · 화면 기준선 370장. versionCode 781.
v3.29.02026-08-18
위젯이 동의 전에 바깥으로 나가고 있었습니다

이 앱은 처음 실행하면 동의 화면을 먼저 보여 드립니다. 그 화면에 「시세·지수·환율·

공포지수·뉴스는 제3자의 공개 API를 앱이 기기에서 직접 불러옵니다」라고 밝혀 두었고,

동의하시기 전에는 아무 데도 연결하지 않습니다.

위젯만 그 밖에 있었습니다. 위젯은 홈 화면에서 길게 눌러 얹을 수 있어서, **앱을 한 번도

열지 않고도** 놓을 수 있습니다. 그런데 위젯의 갱신 경로는 동의를 확인하지 않고 시세와

공포지수를 받아 왔습니다 — 약관을 보시기도 전에 접속이 일어난 것입니다.

그 요청에 여러분을 식별하는 정보는 없습니다(이 앱은 로그인도 추적도 없습니다).

그래도 밝히기 전에 하지 않는다는 것이 이 앱이 내세우는 것이라 고쳤습니다.

이제 동의하시기 전의 위젯은 아무 데도 연결하지 않고 「앱을 열어 시작하세요」라고 적습니다.

예전에는 「로딩」이라고 적혀 있었는데, 받는 중이 아니라 받지 않기로 한 것이라 그 말은

사실이 아니었습니다.

  • 내부 검증 2482건 · 화면 기준선 370장. versionCode 780.
v3.28.992026-08-18
기기를 옮기면 ETF 키가 말없이 사라졌습니다

현물 ETF 순유입을 보시려면 열쇠를 직접 넣으셔야 합니다. 이 앱은 그 열쇠를 기기의 잠금

장치로 봉해서 보관합니다.

그런데 새 기기로 옮기시면 그 잠금은 함께 가지 않습니다. 설정은 따라가지만 잠금은

기기에 묶여 있기 때문입니다(그게 옳습니다 — 잠금까지 옮겨 다니면 봉하는 뜻이 없습니다).

그래서 봉투는 왔는데 열리지 않고, 앱은 「열쇠가 없다」고 판단합니다.

문제는 그 모습이 「열쇠를 넣은 적 없음」과 똑같다는 것이었습니다. ETF 화면이 조용히

사라지고 설정의 열쇠 칸은 비어 있어서, 넣어 두신 열쇠가 증발한 것처럼 보였습니다.

왜 그런지 알 방법이 없었습니다.

이제 그 경우에는 설정에서 이렇게 말합니다.

> 저장된 키를 열 수 없습니다. 기기를 옮기면 키를 지키는 잠금이 함께 오지 않습니다.

> 다시 넣어 주세요.

열쇠를 넣은 적이 없는 분께는 여전히 아무 말도 하지 않습니다 — 안 쓰시는 기능이

말을 걸어서는 안 되니까요. 안 보여 드리는 것과 못 보여 드리는 것은 다릅니다.

  • 내부 검증 2477건 · 화면 기준선 370장. versionCode 779.
v3.28.982026-08-18
배포 전 검사 하나가 설정만 되어 있고 돌지 않았습니다

화면에 보이는 변화는 없습니다.

이 앱은 배포 전에 세 가지를 검사하도록 되어 있습니다 — 내부 검증 · 화면 그림 대조 ·

코드 점검(lint). 빌드 설정에는 「셋을 다 돈다」고 적혀 있고 「문제가 있으면 멈춘다」로

켜져 있었습니다. 그런데 실제 배포 절차가 부르는 스크립트는 앞의 둘만 돌리고 있었습니다.

코드 점검은 한 번도 배포를 막은 적이 없었습니다.

돌려 보니 913건이 걸렸습니다. 위험한 것은 없었습니다 —

  • 910건은 한국어 폴더를 「번역이 빠졌다」고 오해한 것입니다. 이 앱은 기본 문구가 한국어라 그 폴더에 두 줄만 둡니다.
  • 3건은 영어 설명문의 「N% of」 같은 표현을 서식 기호로 읽은 것입니다. 두 가지를 정리하고 검사를 배포 절차에 넣었습니다. 앞으로는 코드 점검도 배포를 막습니다. 그리고 더 나쁜 것을 찾았습니다. 검사 여럿이 배포 절차 파일이나 문서를 읽는데, 빌드 도구가 그 파일들을 「검사의 재료」로 모르고 있었습니다. 그래서 그 파일만 고치면 검사가 아예 돌지 않은 채 통과했습니다. 이제 알려 줬고, 문서만 고쳐도 검사가 다시 돕니다.
  • 내부 검증 2472건 · 화면 기준선 369장. versionCode 778.
v3.28.972026-08-18
검증 그림 22장이 이름 없이 저장되고 있었습니다

화면에 보이는 변화는 없습니다.

이 앱은 화면이 바뀌지 않았는지를 그림 369장으로 대조해서 지킵니다. 그 그림들은 「무엇을

찍은 것인지」를 파일 이름에 담는데, **이름에 「/」나 「:」가 들어간 22장은 이름이 통째로

빠진 채** 저장되고 있었습니다.

Wide/Fold (2-column) → WideFoldPreview_d13730da_0.png

대조 자체는 제대로 되고 있었습니다. 문제는 사람이 찾을 수 없다는 것입니다. 실제로

오늘 「접는 화면 2열 그림이 없다」고 판단할 뻔했습니다 — 있었는데 이름이 없어 안 보였을

뿐이었습니다. 이 앱의 검수는 「그림을 열어 본다」에 크게 기대고 있어서, 열 것을 못 찾으면

그 방법이 통째로 막힙니다.

빌드 기록에는 그동안 매번 경고가 찍히고 있었습니다. 경고는 아무도 읽지 않습니다. 그래서

검증으로 만들었습니다.

이름을 고치고 369장을 다시 기록한 뒤, 그림 내용이 하나도 바뀌지 않았음을 확인했습니다

(내용 해시 대조: 사라진 것 0, 새로 생긴 것 0).

  • 내부 검증 2468건 · 화면 기준선 369장. versionCode 777.
v3.28.962026-08-18
매수·매도 시트가 한 번도 그려진 적이 없었습니다

화면에 보이는 변화는 없습니다.

이 앱은 화면이 바뀌지 않았는지를 그림으로 대조해서 지킵니다. 그림이 365장 있는데,

매수·매도 시트는 그중에 한 장도 없었습니다. 돈을 기록하는 화면이고 실현손익·새

평단가 같은 계산값이 나오는 자리인데도 그랬습니다.

바로 앞 판에서 그 시트의 줄을 고쳤는데, 그림 없이 고쳤습니다. 맞게 고쳤다는 것을

지금 그림으로 확인했고, 앞으로 어긋나면 배포 전에 걸립니다.

시트 자체는 아래에서 올라오는 형태라 검증 그림에 아무것도 그려지지 않습니다. 그래서

그 안에 들어가는 줄을 그대로 세웠습니다 — 큰 글씨(200%)에서 긴 금액이 이름과 부딪히는

자리가 정확히 거기입니다.

  • 내부 검증 2465건 · 화면 기준선 367장. versionCode 776.
v3.28.952026-08-18
괄호만 남고 안이 잘리던 두 줄을 나눴습니다

앞 판에 이어 글씨 200% 화면을 계속 열어 봤습니다. 두 곳이 더 나왔습니다.

코인 정보 · 사상 최고가

사상 최고가 ₩177,854,395 (… ← 여는 괄호만 남음

채산성 · 다음 난이도 조정

다음 난이도 조정 -4.9% (1276블록 …

둘 다 서로 다른 두 사실을 한 줄에 붙여 놓은 자리였습니다. 폭이 모자라면 뒤엣것이

통째로 사라지는데, 여는 괄호만 남아서 「무언가 더 있었는데 안 보인다」는 것만 알 수

있었습니다.

두 사실이니 두 줄로 나눴습니다. 「사상 최고가 대비」는 이름을 붙여 제 줄을 갖고,

「1276블록 남음」은 그 자체로 완결된 말이라 작은 설명 줄로 내렸습니다.

색도 함께 고쳤습니다. 사상 최고가 줄은 「최고가 대비 −44.8%」의 방향을 색으로

말하는데, 한 문자열에 붙어 있어서 최고가 자체가 하락색으로 물들어 있었습니다.

가격에는 방향이 없습니다. 나누니 각자 제 색을 갖습니다.

  • 내부 검증 2465건 · 화면 기준선 365장. versionCode 775.
v3.28.942026-08-18
글씨를 키우면 금액이 숫자 한가운데서 갈라졌습니다

글씨 크기를 200%로 쓰시는 분의 화면을 열어 봤습니다.

계산기 결과에서 금액이 이렇게 나오고 있었습니다.

```

총 프리미엄 ₩1,23

4,567

```

잘린 것이 아니라 쪼개진 것입니다. 위쪽만 보시면 「₩1,23」이 그럴듯한 다른 금액으로

읽힙니다. 잘림은 검증이 막고 있었지만, 이렇게 갈라지는 것은 아무도 보고 있지 않았습니다.

게다가 계산기 검증 그림은 입력이 비어 있어 **값이 들어간 모습이 한 번도 그려진 적이

없었습니다.**

김프 계산식 카드에서도 값이 잘리고 있었습니다.

```

글로벌 기준 Binance/Coi…

기준 시각 2025-11-14 … ← 시각이 통째로 사라짐

```

이 카드는 「계산식·기준 거래소·적용 환율·산출 시각을 그대로 공개합니다」가 존재 이유인데,

정작 그 값들이 안 보였습니다.

이제 이름과 값이 한 줄에 안 들어가면 값을 아랫줄에 온전히 폅니다. 금액은 어떤 경우에도

한 줄을 지킵니다. 매수·매도 시트와 코인 정보 줄도 같은 규칙으로 맞췄습니다.

값이 실제로 들어간 모습을 그리는 검증 그림을 새로 세웠습니다. 없는 그림은 아무것도

지켜 주지 않습니다.

  • 내부 검증 2465건 · 화면 기준선 365장. versionCode 774.
v3.28.932026-08-18
OBV 값 자리에 화살표만 있어서 무슨 뜻인지 알기 어려웠습니다

지표 목록의 각 줄은 오른쪽에 값을 적습니다 — `RSI 21.4`, `MACD 709,759`,

`ADX 57.4` 처럼요. 그런데 OBV 줄만 「▼」 한 글자였습니다.

OBV(누적 거래량)는 세기 시작한 지점이 임의라 숫자 자체에는 뜻이 없습니다. 그래서

방향만 적는 것은 맞습니다. 다만 화살표 하나는 글자가 아니라 그림입니다.

  • 화면 낭독기를 쓰시는 분께는 읽을 것이 없습니다. 다른 줄은 전부 수를 읽어 주는데 이 줄만 조용했습니다.
  • 눈으로 보시는 분께도 「▼」 하나는 「내렸다」인지 「눌러서 펼치기」인지 모호합니다. 바로 오른쪽에 펼침 표시 「›」가 있어서 더 그렇습니다. 이제 「▼ 하락」 처럼 이름을 함께 적습니다. 큰 글씨(200%)에서도 넘치지 않는 것을 확인했습니다. 그리고 그 자리에서 오름/내림을 따로 비교하고 있었는데, 화면의 등락색이 쓰는 같은 판정으로 바꿨습니다. 따로 두면 언젠가 색과 글이 다른 말을 하게 됩니다.
  • 내부 검증 2460건 · 화면 기준선 363장. versionCode 773.
v3.28.922026-08-18
「장세」와 「국면」이 같은 말처럼 쓰이고 있었습니다

이 앱에는 「지금이 어떤 시장인가」를 말하는 것이 있고, 서로 다른 자료로 서로 다른

것을 잽니다.

  • 장세 — ADX 로 가른 추세장/횡보장. 판독 카드의 근거 줄에 나옵니다.
  • 국면 — 지난 60봉의 변동성 구간(거친 · 보통 · 조용한). 과매도 알림 끝줄에 나옵니다. 그런데 장세를 설명하는 본문이 스스로를 「국면」이라 부르고 있었습니다. 「알림은 신뢰도와 국면을 함께 관문으로 씁니다」라고 적혀 있는데, 여기서 말하는 것은 장세입니다. 알림 끝줄의 「거친 국면입니다」와 같은 말로 읽히니, 둘을 하나로 보시게 됩니다. 영어가 가장 심했습니다 — 변동성 알림이 문자 그대로 "Rough regime" 인데 장세 설명도 "ADX both sets the regime" 이라고 썼습니다. 중국어는 또 다른 이름을 섞어 썼습니다(제목은 「行情性质」, 본문은 「行情阶段」 다섯 곳). 한국어 6곳 · 영어 5곳 · 일본어 10곳 · 중국어 각 5곳을 카드 제목의 이름으로 맞췄습니다. 정말로 변동성을 말하는 자리는 그대로 두었습니다 — 거기가 그 낱말의 제자리입니다. 그리고 급등·급락 알림에만 방향 표시(↑↓)가 없었습니다. 다른 네 언어에는 여섯 종류 전부에 있고, 한국어도 가격·김프·RSI 에는 있었습니다. 종류를 고르는 칩이 한 줄로 늘어서는 자리라 그 둘만 빈 것처럼 보였습니다.
  • 내부 검증 2456건 · 화면 기준선 363장. versionCode 772.
v3.28.912026-08-18
판정을 「매수·매도」라고 부르던 설명들을 고쳤습니다

기술적 판정의 이름은 강한 강세 · 강세 우위 · 중립 · 약세 우위 · 강한 약세 입니다.

화면과 알림은 그렇게 말합니다.

그런데 그 판정을 설명하는 문구 여덟 개가 예전 이름인 「매수·매도」를 그대로 쓰고

있었습니다. 알림을 켜실 때는 「판정이 강한 매수·매도로 바뀔 때 알립니다」라고 읽으시고,

정작 도착하는 알림에는 「강한 강세」라고 적혀 있었습니다. 켠 것과 온 것이 다른 이름이라

「내가 켠 게 이건가」 싶어지는 자리였습니다.

이 앱은 매매 신호를 주지 않습니다. 약관에도 그렇게 적혀 있고, 판정 이름이 강세·약세로

바뀐 것도 그 선을 지키기 위해서로 보입니다. 그런데 「강한 매수로 읽힙니다」 같은 문구가

남아 있으면 그 선을 넘습니다. 다섯 언어에서 35곳을 모두 맞췄습니다.

  • 알림 설정 설명, 쉬운 말 설명 다섯 단계, 문턱 안내, 신뢰도 해설, 기간 넘기기 경고
  • 「매수세가 우위」처럼 시장 참가자를 가리키는 곳은 뜻이 다르므로 그대로 두되, 판정 이름과 헷갈리지 않게 다듬었습니다 앞으로 판정 이름을 바꿀 때 설명이 따라오지 않으면 배포 전에 걸리도록 검증을 세웠습니다.
  • 내부 검증 2451건 · 화면 기준선 363장. versionCode 771.
v3.28.902026-08-18
간체 중국어의 인용부호를 그 언어 표준에 맞췄습니다

간체 중국어는 인용부호로 「」가 아니라 “ ”를 씁니다(국가표준 GB/T 15834). 앱의 간체

중국어 문구는 160곳 가운데 17곳만 그 부호를 쓰고 나머지 143곳은 한국어·일본어·번체

중국어에서 쓰는 「」를 쓰고 있었습니다.

앞 판에서는 이것을 「어느 쪽이 이 앱의 목소리인가」 하는 취향 문제로 보고 남겨 두었습니다.

그런데 무엇을 감싸고 있는지 세어 보니 취향이 아니었습니다. 두 부호가 하는 일이

똑같았습니다 — 양쪽 다 판정 라벨(“높음”·“낮음”)과 인용구를 감싸고 있었습니다. 역할이

갈린 것이 아니라 그냥 섞여 있었던 것입니다. 그리고 제대로 쓰인 17곳은 **쓴 사람이 그

언어의 관례를 알고 있었다는 증거**입니다.

143곳을 모두 “ ”로 맞췄습니다. 바꾼 뒤 간체 160쌍·번체 160쌍으로 정확히 맞으니 하나도

잃지 않았습니다. 번체 중국어는 「」가 맞으므로 그대로 둡니다.

한국어는 손대지 않았습니다. 한국어는 시스템 설정 이름·법률 용어·그 밖의 인용을 서로 다른

부호로 쓰고 있는데, 이건 어느 하나가 표준인 자리가 아니라 실제로 역할이 갈리는 자리입니다.

  • 내부 검증 2448건 · 화면 기준선 363장. versionCode 770.
v3.28.892026-08-18
일본어·중국어 화면의 문장부호를 맞췄습니다

일본어와 중국어에서는 쌍점을 「:」처럼 글자 한 칸을 다 쓰는 모양으로 적습니다. 앱의

일본어·중국어 문구는 대부분 그렇게 되어 있었는데, **일본어 열 곳과 중국어 각 네 곳이

영어식 반각 쌍점**으로 남아 있었습니다. 한 화면에 섞여 있으면 줄마다 글자 간격이 달라

보입니다.

같은 문구인데 언어마다 달라진 곳도 있었습니다 — 「기술적 신호: …」 알림은 중국어 두

언어에서는 「:」인데 일본어만 반각이었습니다.

중국어 세 곳에는 일본어 글자가 섞여 있었습니다. 가운뎃점에는 중국어에서 쓰는

「·」와 일본어에서 쓰는 「・」가 따로 있는데, 중국어 문구 68곳이 앞의 것을 쓰는 가운데

세 곳만 뒤의 것을 쓰고 있었습니다. 글꼴이 갈려 그 점만 크기와 위치가 튑니다.

읽는 데 지장이 있던 것은 아니지만, 그 언어를 쓰는 분에게는 눈에 걸리는 종류입니다.

앞으로 이런 것이 다시 섞이지 않도록 검증을 세웠습니다. 규칙은 진작 적혀 있었는데

그것을 보는 검증이 없었습니다.

  • 내부 검증 2448건 · 화면 기준선 363장. versionCode 769.
v3.28.882026-08-18
앞 판 설명에서 잘못 적은 것을 바로잡았습니다

화면에 보이는 변화는 없습니다.

바로 앞 판(v3.28.87) 설명에 「환율을 받아 오는 요청이 두 번에서 한 번으로 줄었다」고

적었습니다. 세어 보니 전에도 두 번, 지금도 두 번입니다. 같은 곳에 두 번 묻던 것이

서로 다른 두 곳에 한 번씩 묻는 것으로 바뀌었을 뿐입니다.

실제로 나아진 것은 요청 수가 아니라 **김프에 쓰는 환율과 화면에 적히는 환율이 서로

다를 수 있던 것**이 없어진 점입니다. 앞 판 설명도 그렇게 고쳐 두었습니다.

이런 일이 다시 없도록, 갱신 한 번에 어디로 몇 번 나가는지를 검증이 직접 세도록

했습니다. 이 앱은 배터리와 데이터를 아끼는 것을 내세우는데, 그 약속을 지키는 숫자를

정작 아무도 세지 않고 있었습니다. 앞으로 요청이 늘면 배포 전에 걸립니다.

  • 내부 검증 2442건 · 화면 기준선 359장. versionCode 768.
v3.28.872026-08-18
김프가 전날 환율로 계산되고 있었습니다

김치 프리미엄은 「한국 가격 ÷ 환율 − 글로벌 달러가」로 구합니다. 그래서 **환율이 틀리면

김프가 그만큼 그대로 틀립니다.**

앱은 유럽중앙은행(ECB) 고시 환율을 써 왔습니다. 정확한 값이지만 하루에 한 번, 한국

시간으로 밤 11시쯤 나옵니다. 그래서 낮에 앱을 보시면 늘 전날 환율로 계산된 김프를

보고 계셨습니다.

얼마나 차이가 나는지 2년치(거래일 516일)를 재 봤습니다.

  • 절반은 0.26%p 이내였지만,
  • 거래일의 26.9%가 0.5%p 이상, 7.8%가 1.0%p 이상 어긋났고,
  • 가장 큰 날은 2.54%p 였습니다(2025년 6월 24일, 앱 1,388.15원 vs 시장 1,353.78원). 김프는 보통 −2%~+5% 사이에서 움직입니다. 2.5%p면 실제로는 플러스인 김프가 마이너스로 보일 수 있는 폭입니다. 이제 USD/KRW는 장중에 움직이는 시세를 먼저 씁니다. 다만 그 값을 그냥 믿지는 않습니다 — ECB 값과 견주어 5% 넘게 벌어지면 쓰지 않고 예전처럼 ECB 값을 씁니다. 환율이 뒤집혀 오거나 단위가 어긋난 값이 김프로 곧장 들어가는 일을 막기 위해서입니다. 받아 오지 못하면 예전과 똑같이 동작합니다. 그러면서 김프에 쓰는 환율과 화면에 적히는 환율을 같은 값으로 맞췄습니다. 예전에는 두 곳에서 따로 받아 와서 서로 다른 순간의 값일 수 있었습니다 — 이제 화면의 환율로 김프를 손으로 검산하시면 맞습니다. (환율을 받느라 나가는 요청 수는 전과 같은 두 번입니다.) 데이터 출처 화면의 환율 항목도 함께 고쳤습니다.
  • 내부 검증 2439건 · 화면 기준선 359장. versionCode 767.
v3.28.862026-08-18
「초록 상승」을 골라도 코인 목록은 빨강 상승이었습니다

설정에는 등락색을 동양식(빨강 상승)서양식(초록 상승) 중에 고르는 자리가

있습니다. 그런데 서양식을 고르셔도 코인 목록·지수 줄·탐색기는 그대로 빨강 상승이었습니다.

바뀌는 곳도 있었습니다 — 판단근거 줄, 시장 요약, 포트폴리오, 그리고 홈 화면 위젯

제대로 초록으로 바뀌었습니다. 그래서 같은 기기에서 위젯은 초록인데 앱을 열면 빨강인,

설명하기 어려운 상태가 됐습니다.

앱 안에 등락색 표가 두 벌 있었던 것이 원인입니다. 하나는 설정을 반영한 표, 다른 하나는

동양식으로 굳은 표인데, 여섯 자리가 굳은 쪽을 보고 있었습니다. 굳은 표를 화면이 아예

집을 수 없게 치웠습니다.

이제 서양식을 고르시면 모든 등락 숫자가 함께 바뀝니다. 동양식을 쓰시던 분께는

달라지는 것이 없습니다.

  • 내부 검증 2429건 · 화면 기준선 359장. versionCode 766.
v3.28.852026-08-18
알림 권한을 나중에 켜면 「기술 신호」가 조용했습니다

기술 신호 알림은 종합 판단이 강한 매수강한 매도로 바뀌는 순간 한 번 울립니다.

「바뀌는 순간」이라, 앱은 직전에 어떤 판단이었는지를 기억해 둡니다.

그런데 알림 권한이 꺼져 있으면 알림은 안 나가는데 기억만 갱신됐습니다. 나중에 권한을

허용하셔도 앱은 이미 「그건 알려 드렸다」고 적어 둔 뒤라, 그 신호는 다시 울리지 않았습니다.

안드로이드 13부터 알림 권한은 나중에 켜는 것이라 흔한 순서인데, 그때 **가장 중요한 첫

신호를 놓치는** 자리였습니다.

판단이 그 칸을 떠났다가 돌아와야 다시 울리는데, 이 판단은 보통 열흘 넘게 유지됩니다.

그동안 알림 규칙은 켜져 있고 화면도 멀쩡하니, 조용한 이유를 알 방법이 없었습니다.

이제 실제로 알림이 나갔을 때만 기억을 갱신합니다. 권한을 켜시면 다음 확인 주기에

울립니다. 가격·급등락·RSI 세 종류는 원래 이렇게 동작하고 있었고, 기술 신호 하나만

빠져 있었습니다 — 네 가지를 같은 기준으로 보도록 검증도 함께 세웠습니다.

  • 내부 검증 2426건 · 화면 기준선 358장. versionCode 765.
v3.28.842026-08-18
번역 칩이 왜 안 뜨는지 설명이 낡아 있었습니다

화면에 보이는 변화는 없습니다.

뉴스 목록의 「번역해서 보기」 칩은 읽으시는 언어와 다른 매체의 기사에만 붙습니다.

그 동작을 그린 검증 그림에 「첫 줄은 국내 매체라서 칩이 없다」고 적혀 있었는데, 국내

매체는 이미 예전에 목록에서 빠졌습니다. 지금 그 자리에 칩이 없는 이유는 **등록되지 않은

이름이라 무슨 언어인지 모르기 때문**입니다 — 직접 넣으신 RSS 주소와 같은 경우입니다.

결과는 같지만 이유가 다르면 다음에 고칠 때 엉뚱한 곳을 봅니다. 설명을 바로잡고, 앞으로

새 매체를 더할 때 언어 칸이 비면 검증이 막도록 했습니다. 비어 있으면 그 매체 기사에만

번역 칩이 영영 안 뜨는데, 화면은 멀쩡해 보입니다.

  • 내부 검증 2419건 · 화면 기준선 358장. versionCode 764.
v3.28.832026-08-17
환율을 못 받았을 때 「환율 없음」이라고만 했습니다

시세 카드는 세 곳에서 자료를 받습니다 — 거래소·야후(지수)·ECB(환율). 셋은 각각 따로

실패할 수 있고, 하나가 안 와도 나머지는 정상입니다. 그때 앱은 이렇게 알려 드립니다.

> 지수 로드 실패

> 환율 없음

두 줄이 같은 상황을 말하는데 말투가 달랐습니다. 「환율 없음」은 **표시 통화를 전부 끄신

경우**처럼 읽혀서, 못 받은 것을 자기 설정 탓으로 오해하실 수 있었습니다.

이제 「환율 로드 실패」로 적습니다. 다섯 언어 모두 고쳤습니다.

표시 통화를 전부 끄신 경우에는 예전처럼 아무 안내도 뜨지 않습니다 — 그건 실패가

아니라 정하신 것이기 때문입니다.

  • 내부 검증 2415건 · 화면 기준선 358장. versionCode 763.
v3.28.822026-08-17
손으로 확인하던 항목 둘을 검증으로 옮겼습니다

화면에 보이는 변화는 없습니다.

품질 점검 목록에는 「사람이 기기에서 직접 해 봐야 하는」 항목이 마흔여덟 개 남아 있는데,

그중 둘은 이미 자동 검증이 지키고 있었습니다.

  • 표시 환율을 전부 끄면 「환율 없음」이 뜨지 않는다 — 화면 상태 하나라 그림으로 고정했습니다. 환율 표와 위쪽 「달러 환율」 줄이 함께 사라지고, 안내는 뜨지 않습니다.
  • 구글 계정 백업으로 보유내역이 복원되지 않는다 — 복원이 안 되는 것은 앱 동작이 아니라 백업 규칙 자체라, 그 규칙 파일을 읽는 검증이 곧 확인입니다. 세 번째(동의 화면에서 실제로 나가는 패킷이 0건인지)는 옮기지 않았습니다. 소스 쪽은 이미 지키고 있지만 「실제로 아무것도 안 나갔다」는 기기와 캡처 도구가 있어야 합니다. 무엇이 확인됐고 무엇이 남았는지를 목록에 적어 두었습니다.
  • 내부 검증 2415건 · 화면 기준선 357장. versionCode 762.
v3.28.812026-08-17
알림 권한이 꺼져 있으면 그렇다고 알려 드립니다

알림 규칙을 만들어 두어도, 기기에서 이 앱의 알림 권한이 꺼져 있으면 조건이 맞아도

알림이 가지 않습니다. 그런데 화면은 멀쩡해 보였습니다 — 규칙은 켜져 있고, 아무 표시도

없었습니다.

안드로이드는 알림 권한을 한 번 거부하면 다시 묻지 않습니다. 그래서 앱 안에서 다시

요청해 봐야 아무 일도 일어나지 않고, 사용자는 이유를 알 길이 없었습니다.

이제 알림 화면 위쪽에 이렇게 알려 드립니다.

> 알림 권한이 꺼져 있습니다

> 조건이 맞아도 알림이 오지 않습니다. 기기 설정에서 이 앱의 알림을 켜 주세요.

> 알림 설정 열기 ›

배경 확인이 멈췄을 때의 안내와 같은 자리·같은 모양입니다 — 둘 다 「지금 실제로 안 되고

있다」는 말이기 때문입니다.

  • 내부 검증 2415건 · 화면 기준선 356장. versionCode 761.
v3.28.802026-08-17
오늘 세운 규칙들을 작업 문서에 옮겼습니다

화면에 보이는 변화는 없습니다. 오늘 하루에 고친 것들이 왜 그렇게 되어야 하는지를,

다음에 만들 때 미리 읽는 자리에 옮겨 적었습니다.

지금까지는 그 규칙들이 검증 코드 안에만 있어서, 어긴 뒤에야 알려 주었습니다.

  • 내부 검증 2415건 · 화면 기준선 355장. versionCode 760.
v3.28.792026-08-17
못 받은 항목이 말없이 사라졌습니다

코인 상세의 세 항목 — 채산성 · 미국 프리미엄 · 코인 정보 — 은 자료를 못 받으면

아무것도 그리지 않았습니다. 화면이 그냥 짧아질 뿐이라, 어제 보던 칸이 오늘 없으면

「기능이 없어졌나」 싶어집니다.

이제 이름과 안내 한 줄을 남깁니다.

> 채산성

> 이 항목을 불러오지 못했습니다.

안 그리는 것이 옳은 경우와는 구분합니다. 열쇠를 안 넣으셨거나(현물 ETF), 그 코인에

해당이 없으면(비트코인이 아닌 코인의 채산성) 예전처럼 조용히 빠집니다 — 직접 정하셨거나

애초에 있을 자리가 아니기 때문입니다. 아직 받아오는 중일 때도 그대로입니다.

  • 내부 검증 2415건 · 화면 기준선 355장. versionCode 759.
v3.28.782026-08-17
공포지수를 못 받았는데 「중립」처럼 보였습니다

공포지수 카드는 세 자료(암호화폐 공포·탐욕 지수 · VIX · 코스피)를 씁니다. 셋이 전부

안 들어온 날에도 카드가 그대로 그려졌고, 반원 게이지가 절반 칠해진 채 중립 색으로

떴습니다. 가운데 숫자는 「--」였지만 먼저 눈에 들어오는 것은 반원과 색입니다.

게다가 실패했다는 표시가 화면에 하나도 없었습니다 — ⚠ 표시는 시각이 있을 때만

나오는데, 자료가 없으면 시각도 없기 때문입니다.

이제 셋 다 없으면 시장 개요 카드와 똑같이 이름과 안내 한 줄만 남깁니다. 그리고

암호화폐 지수만 빠진 경우에도 반원을 빈 채로 둡니다 — 모르는 값을 아는 값처럼

그리지 않습니다.

  • 내부 검증 2415건 · 화면 기준선 353장. versionCode 758.
v3.28.772026-08-17
피보나치 값이 자릿수 한가운데서 끊겼습니다

글꼴을 200%로 두고 피보나치 되돌림을 보면 값이 이렇게 나왔습니다.

> 0.236  ₩167,9

>      05,487

「₩167,905,487」입니다. 끊긴 숫자는 그 자체로 말이 되는 다른 숫자라, 끊긴 줄 모르고

읽게 됩니다. 「…」 같은 표시도 없습니다.

이제 이 앱이 다른 금액에 쓰는 방법을 그대로 씁니다 — 글자를 줄여서라도 한 줄로.

다섯 줄이 나란히 놓이는 표라, 하나만 두 줄이 되면 어느 값이 어느 비율인지 흐려집니다.

  • 내부 검증 2411건 · 화면 기준선 347장. versionCode 757.
v3.28.762026-08-17
「깨지는 선」 설명이 서너 글자씩 끊겨 읽을 수 없었습니다

글꼴을 200%로 두고 코인 상세를 내리면 근거 줄이 이렇게 됐습니다.

> 깨지는 선 ₩93,100,

>      000(3.3%

>      아래)가

>      무너지면

>      지금

이름이 왼쪽 자리를 차지하고 설명이 남은 좁은 칸에서 서너 글자씩 끊겨, 카드가 읽을 수

없는 세로 띠가 됐습니다.

이제 설명이 제 이름의 두 배도 안 되게 좁아지면 이름을 윗줄로 올리고 설명이 폭을 다

씁니다. 이름이 짧은 줄(「장세」 등)은 예전처럼 나란히 놓입니다.

  • 내부 검증 2411건 · 화면 기준선 347장. versionCode 756.
v3.28.752026-08-17
보유를 추가할 때 「평균 매…」라고만 보였습니다

글꼴을 200%로 두고 포트폴리오에서 보유를 추가하려 하면 두 번째 입력칸 이름이 이랬습니다.

> 수량  평균 매…

「평균 매수가 (₩)」입니다. 무엇을 넣어야 하는지가 지워집니다. 두 칸이 한 줄에서 폭을

나눠 갖고 있었기 때문입니다.

이제 두 이름이 나란히 들어가는지 재서, 안 들어가면 두 칸을 위아래로 놓습니다.

들어가면 예전 그대로입니다.

  • 내부 검증 2411건 · 화면 기준선 342장. versionCode 755.
v3.28.742026-08-17
도미넌스 시트의 곁줄이 한 글자씩 세로로 무너졌습니다

글꼴을 200%로 두고 BTC 도미넌스를 열면 큰 숫자 오른쪽이 이렇게 됐습니다.

> 총

> 시

> 총

> 2

> 4

> h

「총 시총 24h 변동 +1.13%」입니다. 큰 숫자가 폭을 다 가져가서 곁줄에 한 글자 폭밖에

남지 않았습니다. 이제 한 줄에 못 놓으면 곁줄이 큰 숫자 아래로 내려갑니다.

시장 맥박 카드도 같은 자리였습니다. 상태 배지 「위험 회피」가 「위험」/「회피」로 갈라지고

제목과 맞붙었는데, 마찬가지로 배지가 아랫줄로 내려갑니다.

  • 내부 검증 2411건 · 화면 기준선 335장. versionCode 754.
v3.28.732026-08-17
코인 상세 위쪽의 거래소 이름이 세 조각으로 부서졌습니다

글꼴을 200%로 두고 코인을 열면 오른쪽 위 거래소 이름이 이렇게 나왔습니다.

> UP

> BI

> T

「UPBIT」입니다. 이름이 부서지면 어느 거래소 값인지 알 수 없습니다. 이제 이름이 한 줄에

안 들어가면 배지가 아랫줄로 내려갑니다. 코인 이름(「비트코인」)도 함께 온전해졌습니다.

같은 배율에서 데이터 출처 시트의 제목(「실제 거래소 가격」)도 잘려 있었습니다. 위아래로

넘기는 화면이라 줄을 늘려도 잃는 것이 없어, 두 줄까지 쓰도록 했습니다.

그리고 마디를 잇는 가운뎃점이 혼자 아랫줄로 넘어가지 않게 다섯 언어 전부를 손봤습니다.

지난 판에서 네 문구만 고쳤는데, 시작 안내 화면에서 같은 일이 또 났습니다 — 「무료 ·

로그인 없음 / · 수집 없음」. 접히는 자리를 미리 다 알 수는 없으니 전부 묶었습니다.

  • 내부 검증 2407건 · 화면 기준선 328장. versionCode 753.
v3.28.722026-08-17
값이 잘릴 때 말없이 잘리던 자리를 막았습니다

글자가 칸에 안 들어가면 두 가지 중 하나가 됩니다. 「…」를 붙여 잘렸다고 알려 주거나,

아무 표시 없이 그냥 끊기거나입니다.

숫자에서는 이 차이가 큽니다. `-2,908,476` 이 표시 없이 `-2,908` 로 끊기면 **그 자체로

말이 되는 다른 숫자**라, 잘린 줄 모르고 읽게 됩니다.

앱 곳곳을 세어 보니 그렇게 말없이 끊길 수 있는 자리가 스물여섯 곳 있었습니다.

지표 값·신호 횟수·평가액·화면 배율·통화 버튼처럼 숫자를 담은 자리가 섞여 있었습니다.

모두 「…」를 붙이도록 했습니다.

지금 화면에서 보시던 모습은 달라지지 않습니다 — 넘치지 않는 값에는 「…」가 붙지 않습니다.

  • 내부 검증 2406건 · 화면 기준선 324장. versionCode 752.
v3.28.712026-08-17
글씨를 키우면 화면 이름이 잘렸습니다

글꼴을 200%로 두면 화면 맨 위의 이름이 이렇게 나왔습니다.

> ← 코인·환…  기본값

「코인·환율 설정」입니다. 일본어 알림 화면은 「価格・キムチ…」였습니다. 화면 이름이

잘리면 여기가 어디인지가 지워집니다.

지금까지는 글씨를 줄여서 한 줄에 담았는데, 200%에서는 아무리 줄여도 안 들어갑니다.

이제 안 들어가면 두 줄로 놓습니다. 한 줄에 들어가던 이름은 예전 그대로입니다.

  • 내부 검증 2404건 · 화면 기준선 324장. versionCode 751.
v3.28.702026-08-17
줄이 접힐 때 가운뎃점만 아랫줄로 넘어갔습니다

「지금 이 코인」 카드의 「언제까지」 줄은 두 마디를 가운뎃점으로 잇습니다. 칸이 좁으면

이렇게 접혔습니다.

> 신뢰도 낮음

> · 절반은 2봉 안에 이 방향이 아니게 됐습니다

점만 아랫줄로 넘어가서 뒷말이 새 항목처럼 보입니다. 중국어를 큰 글씨로 볼 때

가장 뚜렷했습니다.

이제 점이 앞말에 붙어 다닙니다. 끊긴다면 「신뢰도 낮음 ·」 뒤에서 끊깁니다.

  • 내부 검증 2399건 · 화면 기준선 320장. versionCode 750.
v3.28.692026-08-17
일본어·중국어에서 같은 자리가 또 깨져 있었습니다

지난 판에서 시세 카드 머리글을 고쳤는데, 한국어와 영어만 보고 올렸습니다. 나머지 세

언어를 큰 글씨로 열어 보니 같은 자리가 다르게 깨져 있었습니다.

  • 일본어: 통화 버튼이 「₩ K」로 잘렸습니다. 잘린 것이 글자가 아니라 누르는 버튼이라 더 나쁩니다.
  • 중국어(간체·번체): 「● 실시간 · 12초」 표시가 통째로 사라졌습니다. 값이 얼마나 최신인지 알려 주는 초록 점이자, 데이터 출처를 여는 유일한 입구입니다. 둘 다 원인은 같습니다. 한 줄에 들어가는지 잴 때 그 표시의 자리를 안 세고 있었습니다. 이제 세므로, 모자라면 제목이 첫 줄을 쓰고 나머지가 아랫줄로 내려갑니다. 이런 것이 여태 안 보인 까닭도 함께 고쳤습니다. 화면 그림 315장을 배율과 언어로 갈라 세어 보니 중국어는 큰 글씨 그림이 한 장도 없었고 일본어도 200%가 없었습니다. 그 칸들을 채웠습니다.
  • 내부 검증 2393건 · 화면 기준선 318장. versionCode 749.
v3.28.682026-08-17
글씨를 키우면 시세 카드의 제목과 코인 이름이 사라졌습니다

글꼴을 200%로 두고 홈을 열면 시세 카드가 이랬습니다.

> 〰   ● 실시간 · 12초  ₩ KRW

> BTC  ₩96,985,000

> 비…      +1.82%

카드 이름(「코인·환율 시세」)이 한 글자도 안 남았고, 「비트코인」은 「비…」 였습니다.

심볼(BTC)은 그대로라 얼핏 멀쩡해 보이지만, 무엇이 지워졌는지조차 알 수 없는 한 글자는

없느니만 못합니다.

제목·배지·통화 버튼이 한 줄에서 폭을 다투는데 양보하는 쪽이 언제나 제목이었습니다.

이제 한 줄에 다 들어가는지 재서, 모자라면 제목이 첫 줄을 온전히 쓰고 나머지가 아랫줄로

내려갑니다. 코인 이름 칸도 고정 폭이 아니라 이름 길이에 맞춰 잡습니다.

「실시간 · 12초」는 자리가 모자라면 시간을 접어 「실시간」만 남깁니다. 잘린 「실시간…」

대신입니다.

  • 내부 검증 2391건 · 화면 기준선 314장. versionCode 748.
v3.28.672026-08-17
가로로 눕히면 기간 버튼이 괜히 두 줄을 썼습니다

며칠 전 판에서, 글씨를 키우면 코인 상세의 기간 버튼(15m·30m·1h·4h·1D·1W)이 두 줄로

나뉘도록 고쳤습니다. 여섯 개를 한 줄에 두면 「15m」이 「15」와 「m」으로 갈라져서였습니다.

그런데 그 판정이 폭을 보지 않았습니다. 글씨가 크면 무조건 두 줄이라, 화면을 가로로

눕혀 자리가 넉넉할 때도 두 줄을 썼습니다. 하필 가로에서 세로 자리가 가장 아쉽습니다

차트가 그만큼 눌립니다.

이제 가장 긴 이름이 칸에 들어가는지 재서 정합니다. 좁으면 두 줄, 넓으면 한 줄입니다.

세로 화면에서 보이던 모습은 그대로입니다.

  • 내부 검증 2381건 · 화면 기준선 310장. versionCode 747.
v3.28.662026-08-17
글씨를 키우면 홈 뉴스의 출처가 뭉개졌습니다

홈 화면 뉴스 카드를 글꼴 200%로 보면 출처가 이렇게 나왔습니다.

> 번역해서 보기 U.To… · 44분 전

> 번역해서 보기 BeIn… · 47분 전

어느 매체 기사인지 알 수 없습니다. 출처는 기사의 신원이라, 그게 지워지면 그 줄이

있을 이유가 없어집니다.

이제 자리가 모자라면 줄을 나눠 출처를 온전히 보여 드리고 번역 버튼은 그 아래로

내립니다. 둘 다 삽니다.

뉴스 전체 화면은 이미 이렇게 하고 있었습니다. 홈 카드만 빠져 있었습니다.

  • 내부 검증 2375건 · 화면 기준선 309장. versionCode 746.
v3.28.652026-08-17
글씨를 키우면 조용시간 칸의 단위가 사라졌습니다

알림 화면의 조용시간 입력칸 이름이 글꼴 200%에서 이렇게 나왔습니다.

> 시작… 종료…

원래는 「시작(시)」·「종료(시)」입니다. 잘려 나간 「(시)」가 하필 단위입니다 —

몇 시를 넣어야 하는지 알려 주는 부분이라, 없으면 무엇을 넣어야 할지 알 수 없습니다.

칸 폭이 고정(110dp)인데 글씨만 커져서 생긴 일입니다. 이제 글씨가 크면 두 칸이 화면

폭을 나눠 가져서 이름이 온전히 들어갑니다. 보통 글씨일 때는 예전 그대로입니다.

계산기 화면은 이미 같은 문제를 풀어 두었습니다(글씨가 크면 두 칸을 위아래로 쌓습니다).

알림 화면만 그 처방이 빠져 있었습니다. 앞으로 어떤 입력칸이든 폭을 고정하면 배포 전에

걸립니다.

  • 내부 검증 2375건 · 화면 기준선 308장. versionCode 745.
v3.28.642026-08-17
글씨를 키우면 지표 이름이 잘렸습니다

코인 상세의 지표 줄을 글꼴 200%로 보면 이렇게 나왔습니다.

> 스퀴… [변동성 응축(돌파 대기)]

지표 이름이 옆의 상태 배지에 밀려 잘렸습니다. 배지는 온전한 채였습니다.

순서가 뒤집혀 있었습니다. 배지는 상태를 말하고 이름은 어느 지표인지를 말합니다.

이름이 사라지면 그 줄이 무엇에 대한 것인지, 바로 아래 값과 해설이 누구 것인지 알 수

없습니다. 상태는 못 읽어도 되짚을 수 있지만 이름은 그렇지 않습니다.

이제 글씨가 크면 줄을 하나 더 씁니다 — 이름 한 줄, 배지 한 줄, 값 한 줄. 셋 다

온전합니다. 보통 글씨일 때는 예전 그대로입니다.

앞 판(기간 선택 버튼)과 같은 자리에서 나왔습니다. 코인 상세는 숫자가 가장 빽빽한

화면인데 200% 화면 기준선이 한 장도 없었습니다. 이제 있습니다.

  • 내부 검증 2374건 · 화면 기준선 308장. versionCode 744.
v3.28.632026-08-17
글씨를 키우면 기간 선택 줄이 깨졌습니다

코인 상세의 기간 선택(15m·30m·1h·4h·1D·1W)을 글꼴 200%로 보면 이렇게 나왔습니다.

```

15 30

1h 4h [1D] 1W

m m

```

여섯 칸을 한 줄에 두는데 칸 폭은 고정이고 글씨만 커져서, 「15m」과 「30m」이 **두 줄로

갈라졌습니다.** 가운데 넷은 한 줄이라 줄이 어긋나 보이고, 어느 글자가 어느 칸인지도

흐려집니다. 기간을 고르는 자리라 그게 곧 잘못 누르는 일이 됩니다.

이제 글씨가 크면 한 줄에 셋씩 두 줄로 놓습니다. 모든 이름이 온전하고 칸도

나란합니다. 글씨 크기가 보통일 때는 예전 그대로 한 줄입니다.

글자를 줄이는 쪽을 먼저 해 봤고, 그건 더 나빴습니다. 좁은 화면에서는 가장 작게

줄여도 세 글자가 안 들어가 「15…」로 잘렸습니다 — 두 줄로 갈라진 것보다 나쁩니다.

재 보지 않았으면 「줄였으니 됐다」고 적을 뻔했습니다.

  • 내부 검증 2374건 · 화면 기준선 307장. versionCode 743.
v3.28.622026-08-17
밝은 테마에서 흐린 금색 글씨가 잘 안 보였습니다

시세 카드의 「⚠ 지연」 배지가 밝은 테마에서 배경과 3.46 대 1이었습니다. 접근성

기준(4.5 대 1)에 못 미칩니다. 금색을 흐리게(80%) 칠했는데, 밝은 테마에서는 금색이

이미 배경과 가까워서 흐리면 더 묻힙니다.

바로 앞 판에서 저희가 넣은 「시세를 받지 못한 코인 N종」 안내도 같은 방식이었습니다.

둘 다 흐리게 칠하지 않도록 고쳤습니다. 색이 뜻하는 바(주의)는 그대로이고 **읽기만

좋아집니다.**

어두운 테마에서는 원래 문제가 없었습니다.

이 자리를 지키던 검사가 있었는데, 다른 색 하나만 보고 있었습니다. 이제 금색도

함께 봅니다. 검사가 훑는 범위가 좁으면 「통과」가 「괜찮다」는 뜻이 아니게 됩니다.

  • 내부 검증 2374건 · 화면 기준선 306장. versionCode 742.
v3.28.612026-08-17
같은 규칙을 공포지수와 시장 개요에도 적용했습니다

앞 판에서 시세 목록에 넣은 규칙 — 늦게 도착한 옛 응답은 버린다 — 을 나머지 두

카드에도 넣었습니다.

  • 공포·탐욕 지수 — 시세와 같은 방식으로 응답 시각을 견줍니다.
  • 시장 개요(BTC 도미넌스·총 시가총액·거래대금) — 요청이 떠난 시각을 찍어 두고 견줍니다. 시장 개요만 방식이 다른 이유가 있습니다. 그 값에는 시각 항목이 없어서, 화면으로 나가는 자료에 항목을 하나 더하는 대신 보내는 쪽에서 도장을 찍었습니다. 나머지는 손대지 않았습니다. 뉴스와 도미넌스 이력은 기기 안의 저장소를 읽으므로 늦게 읽어도 값이 뒤로 가지 않고, 미니 차트와 코인 이미지는 덧씌우는 방식이라 순서를 타지 않습니다. 필요한 곳에만 넣었습니다.
  • 내부 검증 2374건 · 화면 기준선 306장. versionCode 741.
v3.28.602026-08-17
늦게 도착한 옛 응답이 새 값을 덮지 않습니다

시세 새로 고침을 부르는 곳이 넷입니다 — 주기 갱신, 관심 코인 변경, 시세 거래소 변경,

손수 다시 받기. 넷이 겹칠 수 있고, 겹치면 먼저 보낸 요청이 나중에 도착할 수

있습니다.

그때 그대로 갈아끼우면 화면이 한 주기만큼 뒤로 갑니다. 지수·환율처럼 실시간

연결이 없는 값이 잠깐 옛 값으로 돌아갔다가 다음 갱신에 제자리를 찾습니다.

이제 어느 쪽이 새 응답인지 가려서 받습니다. 옛 응답은 버리되 「지연」 표시는 켜지 않습니다

— 받아오기는 성공한 것이니까요.

앞 판이 고친 것과 같은 종류입니다. 그때는 끊은 연결이 한 마디 더 하는 것이었고,

이번엔 두 요청의 도착 순서입니다.

  • 내부 검증 2369건 · 화면 기준선 306장. versionCode 740.
v3.28.592026-08-17
시세 거래소를 바꾸는 순간 값이 잠깐 튈 수 있었습니다

설정에서 시세 거래소를 바꾸면 앱은 ①쓰던 실시간 연결을 끊고 ②그 거래소가 남긴 값을

비우고 ③새 거래소로 다시 연결합니다.

그런데 끊어도 이미 넘어와 있던 신호 하나는 도착합니다. 연결을 닫으라고 말하는 것과

그 순간 처리 중이던 것을 되돌리는 것은 다른 일입니다.

문제는 통화가 바뀐다는 점입니다. 업비트에서 바이낸스로 바꾸시면 앞은 원화, 뒤는

달러입니다. 비운 직후 도착한 원화 신호가 달러 자리에 앉으면 값이 잠깐 크게 튑니다.

이제 끊을 때 신호를 받는 통로까지 함께 뗍니다. 늦게 도착한 신호는 아무 일도 하지

않습니다.

눈에 잘 안 띄는 자리입니다. 값이 곧 다음 갱신으로 덮이기 때문입니다. 그래도 그 짧은

순간에 보신 수가 틀린 수인 것은 변하지 않습니다.

  • 내부 검증 2366건 · 화면 기준선 306장. versionCode 739.
v3.28.582026-08-17
시장 개요 카드가 통째로 사라지지 않습니다

앞 판에 이어 같은 규칙을 마지막 한 자리에 마저 적용했습니다.

「시장 개요」(BTC 도미넌스·총 시가총액·거래대금) 카드는 자료를 한 번도 받지 못하면

통째로 없었습니다. 첫 실행에서 그 제공처가 막혀 있거나 속도 제한에 걸리면, 그런

카드가 있다는 사실조차 아실 수 없었습니다.

한 번이라도 받으면 그 뒤로는 마지막 값을 들고 있어서 흔한 일은 아닙니다. 그래도

드문 것과 없는 것은 다릅니다.

이제 머리글과 함께 「시장 개요를 불러오지 못했습니다」라고 적습니다. 없는 값을 0이나

「-」로 채우지는 않습니다 — 그건 더 나쁜 거짓말입니다.

같은 카드 뭉치의 지수 줄은 처음부터 이렇게 하고 있었고(「지수 로드 실패」), 시세

목록은 앞 판에서 옮겼습니다. 여기가 마지막 한 자리였습니다.

  • 내부 검증 2362건 · 화면 기준선 306장. versionCode 738.
v3.28.572026-08-17
담아 두신 코인이 말없이 사라지지 않습니다

어느 거래소에서도 시세를 못 받은 코인은 목록에서 빠집니다. 상장폐지된 코인이

그렇습니다. 그런데 지금까지는 아무 말 없이 사라졌습니다 — 직접 담으신 코인인데 왜

없는지 아실 방법이 없었습니다.

이제 「시세를 받지 못한 코인 N종은 목록에 없습니다」라고 적습니다.

값을 지어내지는 않습니다. 없는 가격을 0원이나 「-」로 채우면 그것이 더 나쁜

거짓말입니다. 빠졌다는 사실만 알려 드립니다.

불러오는 중에는 적지 않습니다. 그때는 「아직 안 온 것」이지 「못 받은 것」이 아니라서,

앱을 여실 때마다 안내가 번쩍이면 안 됩니다.

같은 카드의 지수 줄은 처음부터 이 규칙을 지키고 있었습니다(「지수 로드 실패」).

포트폴리오도 마찬가지였습니다(「시세를 불러오지 못한 코인은 합산에서 제외됩니다」).

정작 가장 먼저 보시는 시세 목록만 예외였습니다.

  • 내부 검증 2361건 · 화면 기준선 305장. versionCode 737.
v3.28.562026-08-17
RSS 주소를 직접 넣으셨는데 「출처를 고르세요」가 떴습니다

뉴스 출처를 세는 자리가 받아 오는 자리와 다른 수를 보고 있었습니다.

기사를 받아 올 때는 기본 목록에서 고르신 것과 직접 넣으신 RSS 주소를 함께 셉니다.

그런데 「출처를 고르셨나요」를 묻는 자리 셋은 기본 목록만 봤습니다.

기본 목록을 다 끄고 자기 주소만 넣으신 분은 기사가 실제로 들어오는데도, 목록이

잠깐 비는 순간(불러오기 전이나 일시적 실패) 카드가 「출처를 고르세요」로 바뀌었습니다.

눌러도 이미 해 두신 일을 다시 하라는 화면으로 갔습니다.

설정의 「뉴스 출처」 옆 숫자도 틀렸습니다. 저장된 항목 수를 그대로 세는 바람에,

예전 버전에서 국내 매체를 고르셨던 기기에는 그 기록이 남아 실제 기기에서 13이라고

적혀 있었습니다. 고르실 수 있는 것은 뿐인데요. 세어 보실 수도, 지우실 수도 없는

숫자였습니다.

이제 세 자리 모두 같은 방식으로 셉니다. 목록에서 사라진 옛 항목은 빠지고, 직접 넣으신

주소는 들어갑니다.

  • 내부 검증 2356건 · 화면 기준선 304장. versionCode 736.
v3.28.552026-08-17
청산가 계산기가 무엇을 빼고 계산했는지 밝힙니다

설정 ▸ 계산기 도구의 청산가 계산은 간단한 식을 씁니다.

> 롱: 진입가 × (1 − 1 ÷ 레버리지)

이 식에는 유지증거금과 수수료가 빠져 있습니다. 거래소는 증거금이 유지증거금률

아래로 내려가면 청산하므로, 실제 청산은 화면에 나온 값에 닿기 전에 일어납니다.

10배 롱으로 ₩89,000,000 에 들어가시면 화면은 ₩80,100,000 을 보여 드리는데, 유지증거금

0.5% 인 거래소에서는 실제로 ₩80,5만 언저리에서 청산됩니다. 그 사이에 손절을 걸어 두시면

먼저 청산됩니다.

바로 위 김프 계산기는 빠진 것(출금 수수료·전송 중 시세 변동·환전 스프레드)을 이미

밝히고 있었습니다. 돈이 더 크게 걸린 이 계산기에만 그 안내가 없었습니다.

이제 결과 아래에 이렇게 적습니다.

> 유지증거금과 수수료는 빼고 계산한 값입니다. 실제 청산은 이 값보다 먼저 일어납니다.

> 유지증거금률은 거래소·종목마다 다르므로 정확한 값은 거래소에서 확인하십시오.

계산 자체는 그대로입니다. 다섯 언어 모두 넣었습니다.

  • 내부 검증 2350건 · 화면 기준선 304장. versionCode 735.
v3.28.542026-08-17
「이름순」이 이름 순이 아니었습니다

시세 목록의 정렬 칩 중 「이름순」을 누르면 이렇게 나왔습니다.

> AVAX · BTC · ETH · LINK · SOL · SUI · XRP

심볼 순서입니다. 화면에는 「비트코인」·「리플」·「아발란체」라고 적혀 있는데, 순서는

그 이름과 아무 상관이 없었습니다.

코인이 예닐곱일 때는 티가 안 납니다. 목록을 늘려 「하이퍼리퀴드」를 찾으시는 순간

이름순이 아무 도움이 안 됩니다.

이제 화면에 보이는 이름으로 정렬합니다.

> 리플 · 비트코인 · 솔라나 · 수이 · 아발란체 · 이더리움 · 체인링크

가나다순입니다. 글자를 그대로 비교하면 한글이 가나다순으로 서지 않아서, 언어별 정렬

규칙을 쓰도록 했습니다. 영어로 보시면 영어 이름 순(Avalanche · Bitcoin · Chainlink …),

일본어·중국어도 각각 그 언어 기준입니다. 인앱 언어를 바꾸시면 순서도 따라갑니다.

같은 이름이 둘이면 심볼로 가릅니다. 새로고침할 때마다 순서가 흔들리지 않습니다.

  • 내부 검증 2348건 · 화면 기준선 304장. versionCode 734.
v3.28.532026-08-17
권한이 조용히 느는 것을 막습니다 (겉모습 변화 없음)

이 판은 화면이 달라지지 않습니다.

앱 안의 「앱 권한」 화면은 이 앱이 무엇을 요구하는지 확인하실 수 있는 유일한 자리입니다.

그 화면이 실제 권한과 어긋나지 않도록 검사가 있었는데, 저희가 직접 적은 권한만

보고 있었습니다.

안드로이드는 앱이 쓰는 라이브러리의 권한을 빌드할 때 함께 넣습니다. 그래서 라이브러리를

올리거나 더하면 권한이 조용히 늘 수 있습니다. 그 경우는 사람이 기억해서 확인하기로

되어 있었는데, 기억에 맡긴 확인은 언젠가 빠집니다.

이제 최종적으로 기기에 들어가는 권한 목록을 통째로 읽어 대조합니다. 지금은 여덟 개이고

(직접 적은 다섯 + 알림 라이브러리 셋) 여덟 모두 권한 화면이 설명하고 있습니다.

  • 내부 검증 2345건 · 화면 기준선 304장. versionCode 733.
v3.28.522026-08-17
환산한 가격을 「거래소와 일치한다」고 말했습니다

앞 판에 이어 같은 화면을 한 줄 더 고쳤습니다.

「● 실시간」 화면이 이렇게 단언했습니다.

> 그래서 앱에 뜨는 가격이 실제 거래소와 일치합니다.

한쪽만 맞는 말입니다. 업비트를 고르시면 원화가 거래소에서 온 값이고 달러는 그것을

환율로 나눈 값입니다. 바이낸스·코인베이스·비트겟을 고르시면 반대입니다.

실제 기기에서 표시 통화를 달러로 바꿔 봤습니다(시세 거래소는 업비트).

> BTC 비트코인, $63,052

업비트는 비트코인을 그 값에 팔지 않습니다. ₩89,284,000 을 환율 1,411 로 나눈 값입니다.

목록에는 그것이 환산값이라는 표시가 없습니다.

목록의 모든 줄에 「≈」를 붙이면 첫 화면이 시끄러워집니다. 그 값이 환산이라는 사실은

문장 하나로 정확히 말할 수 있어서, 화면이 아니라 문구를 고쳤습니다.

이제 「그 거래소가 쓰는 통화로 보시면 값이 거래소와 그대로 일치하고, 다른 통화로

바꿔 보시면 그 값에 환율을 곱한 값이라 조금 다를 수 있습니다」라고 말합니다.

다섯 언어 모두 고쳤습니다.

  • 내부 검증 2344건 · 화면 기준선 304장. versionCode 732.
v3.28.512026-08-17
정직을 약속하는 화면이 옛말을 하고 있었습니다

「● 실시간」 배지를 누르면 나오는 화면에 이렇게 적혀 있었습니다.

> 업비트만 실시간 WebSocket 으로 잇고, 나머지는 필요할 때만 부릅니다.

한때는 맞는 말이었습니다. 지금은 아닙니다. 시세 거래소를 어느 곳으로 고르셔도 그 거래소에 실시간 연결이 열립니다. 예전에

업비트만 실시간이던 것을 고치면서, 고지 문구를 함께 고치지 않았습니다.

빗썸을 고르신 분은 「당신 시세는 실시간이 아니다」라는 사실이 아닌 말을 읽고 계셨습니다.

하필 저희가 무엇을 하는지 정직하게 말하겠다는 화면에서였습니다. 죄송합니다.

이제 「실시간 WebSocket 은 시세 거래소로 고르신 한 곳에만 잇는다」고 말합니다.

설정 ▸ 데이터 출처 화면은 처음부터 맞게 적혀 있었습니다(「고른 거래소의

WebSocket」). 같은 사실을 두 화면이 말하고 있었는데 한쪽만 낡은 것이라, 앞으로는 두

화면이 어긋나면 배포 전에 걸립니다.

다섯 언어 모두 고쳤습니다.

  • 내부 검증 2343건 · 화면 기준선 304장. versionCode 731.
v3.28.502026-08-17
이틀 전 고친 말이 또 정확하지 않았습니다

앞 판에서 차트를 읽어 주는 말의 「현재」를 「마지막 종가」로 고쳤습니다. **그것도

정확하지 않았습니다.**

이 차트는 아직 진행 중인 봉까지 그립니다. 그러니 그 값은 「종가」가 아닙니다 —

아직 마감하지 않았습니다.

실제 기기에서 70초 간격으로 두 번 확인했습니다.

  • 1회차 — 위쪽 실시간 ₩89,199,000 · 차트 ₩89,169,000
  • 2회차 — 위쪽 실시간 ₩89,169,000 · 차트 ₩89,169,000 (그대로) 차트 값은 움직이지 않았고 위쪽 가격이 내려와 만났습니다. 마감한 어제 종가였다면 이렇게 만날 수 없습니다. 이제 「마지막 봉 값」이라고 말합니다. 봉이 마감했든 아니든 참인 말입니다. 「현재」는 실제보다 신선하다고 과장했고, 「마지막 종가」는 마감했다고 과장했습니다. 한 낱말을 고치면서 다른 낱말로 같은 종류의 과장을 새로 만들지 않겠습니다.
  • 내부 검증 2340건 · 화면 기준선 304장. versionCode 730.
v3.28.492026-08-17
「20일 평균」이라고 적었지만 실은 「20봉 평균」이었습니다

코인 상세에서 기간을 15분·30분·1시간·4시간·일·주 중에 고르실 수 있습니다. 지표는

고르신 기간의 봉으로 계산합니다. 그런데 설명 문구가 그걸 「20 평균」이라고

불렀습니다.

15분 봉을 고르시면 그 평균은 20봉 = 5시간입니다. 「20일」과는 96배 차이입니다.

실제 기기에서 15분 봉으로 확인한 화면입니다.

  • 어디서 — 「값이 20일 평균보다 0.2% 아래에 있습니다」 (실제로는 5시간 평균)
  • 변동성 — 「평소 하루 폭 0.1%, 이번 봉 1.4배」 (0.1%가 하루 폭일 수는 없습니다)
  • 주의 — 「오늘 봉이 아직 절반도 자라지 않았습니다」 (15분 봉입니다) 값 자체는 맞았습니다. 이름만 틀렸습니다. 그래서 나란히 세어 보기 전에는 눈에 띄지 않았습니다. 이제 「20봉 평균」·「평소 봉 폭」·「이번 봉」이라고 말합니다. 한 가지 더 말씀드립니다. 영어·일본어·중국어 문구는 처음부터 맞게 적혀 있었습니다. 틀린 것은 한국어뿐이었습니다.
  • 내부 검증 2340건 · 화면 기준선 304장. versionCode 729.
v3.28.482026-08-17
화면을 읽어 주는 말이 다른 값을 말하고 있었습니다

TalkBack 같은 화면 읽기 기능을 쓰시는 분만 겪던 문제입니다.

코인 상세의 차트를 읽어 주는 말이 「현재 ₩89,197,000」이라고 했는데, 그 값은 현재

가격이 아니라 마지막 봉의 종가였습니다. 같은 화면 맨 위에는 실시간 가격이 따로 있고,

실제 기기에서 재 보니 ₩89,123,000 으로 서로 달랐습니다. 화면을 보시는 분은 위쪽 큰

가격을 읽으시지만, 읽어 주는 말을 들으시는 분은 다른 수를 들으셨습니다.

이제 「마지막 종가」라고 정확히 말합니다.

「최고·최저」가 언제부터 언제까지인지도 말하지 않았습니다. 1주 봉을 고르시면 몇

달치 최고가이고 15분 봉이면 몇 시간치인데, 말로는 구분이 안 됐습니다. 이제 「최근 N봉」

이라고 실제로 센 개수를 함께 말합니다.

제자리인 것을 「상승」이라고 말하던 곳도 고쳤습니다. 공포·탐욕 추이처럼 값이 그대로일

때 「상승」이라고 읽어 주고 있었습니다 — 「보합」이라는 답 자체가 없었습니다.

다섯 언어 모두 고쳤습니다.

  • 내부 검증 2336건 · 화면 기준선 304장. versionCode 728.
v3.28.472026-08-17
빠르기를 다시 재 봤습니다 (겉모습 변화 없음)

앱이 켜지는 속도 기준선은 v2.31.2 때 잡혔습니다. 그 뒤로 500판 가까이 나갔는데

아무도 다시 재 보지 않았습니다.

오늘 같은 기기에서 같은 방법으로 다시 쟀습니다.

  • 켜지는 시간: 424밀리초 (기준선 422밀리초 — 사실상 그대로)
  • 목록 화면 스크롤 끊김: 0.10% (기준선 0.44%)
  • 코인 상세 스크롤 끊김: 0.31% (기준선 1.45%) 느려지지 않았습니다. 기능을 그만큼 더하는 동안 켜지는 속도가 그대로였다는 뜻입니다. 끊김 수치가 좋게 나왔지만 기준선을 그 값으로 바꾸지는 않았습니다. 같은 기기·같은 화면에서도 몇 분 사이 값이 크게 흔들리는 측정이라, 오늘 잘 나온 값을 기준으로 삼으면 다음에 기기가 조금 바쁜 날 애먼 경고가 뜹니다. 함께: 앱 안쪽 기록에서 시험 기기 이름이 두 갈래로 적혀 있던 것을 바로잡고, 그런 어긋남이 다시 생기면 배포 전에 걸리도록 검사를 두었습니다. 이름이 어긋나면 그 이름에 딸린 화면 크기 판단도 함께 틀립니다.
  • 내부 검증 2331건 · 화면 기준선 304장. versionCode 727.
v3.28.462026-08-17
작업 지침이 낡아 있었습니다 (겉모습 변화 없음)

이 판도 화면이 달라지지 않습니다. 지난 판에 이어 앱 안쪽 문서를 손봤습니다.

이 앱에는 릴리스마다 먼저 읽는 작업 지침 문서가 있고, 그 안에 「알려진 빈틈」 목록이

있습니다. 그 목록은 스스로 「낡기 쉽다」고 적어 두고 있습니다 — 예전에 낡은 목록을

믿고 한 판을 헛돌았기 때문입니다.

그렇게 적어 두고도 다시 낡아 있었습니다. 접근성 훑기가 「일곱 화면」이라고 적혀 있었지만

실제로는 여덟을 돌고 있었고(뉴스 화면이 뒤에 늘었습니다), 보관된 파일 수는 세 배

가까이 흐른 채였습니다.

경고문은 낡음을 막지 못합니다. 그래서 이번엔 검사를 두었습니다. 화면 수가 어긋나면

배포 전에 걸립니다. 세어 볼 수 없는 수(저장소 밖에 쌓이는 파일 수)는 아예 적지 않도록

바꿨습니다 — 지킬 수 없는 숫자를 적어 두는 것이 낡음의 시작이라서입니다.

  • 내부 검증 2329건 · 화면 기준선 304장. versionCode 726.
v3.28.452026-08-17
안이 가리키는 이름이 아직 있는지 검사합니다 (겉모습 변화 없음)

이 판은 화면이 달라지지 않습니다. 앱 안쪽 주석을 손봤고, 그것이 다시 어긋나지 않게

검사 하나를 새로 두었습니다.

이 저장소는 설명을 두껍게 적어 두고, 그 안에서 다른 조각의 이름을 자주 가리킵니다.

그런데 이름을 바꾸면 설명은 따라오지 않습니다. 그러면 나중에 그 자리를 고치러 온

사람이 없는 것을 찾아 헤맵니다. 실제로 이 앱은 예전에 낡은 설명을 믿고 한 판을 헛돈 적이

있습니다.

훑어서 다섯 곳을 찾아 고쳤습니다. 셋은 이름이 뒤집히거나 대소문자만 달랐고, 나머지 둘은

더 나빴습니다 — 상수가 둘로 갈리면서 옆의 설명까지 함께 낡아, 「최근 N건만 읽는다」고

적혀 있었지만 실제 동작은 그것이 아니었습니다.

앞으로는 없는 이름을 가리키면 배포 전 검사에서 걸립니다.

  • 내부 검증 2327건 · 화면 기준선 304장. versionCode 725.
v3.28.442026-08-17
위젯이 관심 코인을 다 보여 줍니다 (5개 → 최대 8개)

위젯은 오래 코인 다섯 개까지만 보여 줬습니다. 그런데 기본 관심 목록은 일곱 종입니다.

그래서 위젯을 아무리 키우셔도 두 종은 영영 안 나왔고, 어디에도 「다섯 개까지」라고 적혀

있지 않으니 그 사실을 아실 방법이 없었습니다.

이제 위젯 크기가 허락하면 여덟까지 보여 줍니다. 지난 판에서 크기에 맞춰 줄 수를

정하도록 바꿨으니, 크게 늘리시면 그만큼 더 보입니다.

여덟에서 멈춘 것은 읽히는 크기 때문입니다. 여덟 줄이면 4×4 위젯이 거의 꽉 찹니다.

그보다 많으면 줄이 촘촘해져 홈 화면에서 훑어보는 물건이 아니게 됩니다.

(처음엔 「갱신 비용」이라고 적었는데, 세어 보니 그 말이 정확하지 않았습니다. 시세는 묶어서

한 번에 부르고 코인별 작업은 나란히 돌아서, 다섯에서 여덟으로 늘어도 걸리는 시간이 그만큼

늘지 않습니다. 앱 홈은 이미 관심 목록 전부를 같은 방식으로 부르고 있습니다.)

  • 내부 검증 2326건 · 화면 기준선 304장. versionCode 724.
v3.28.432026-08-17
위젯이 끌어서 늘린 만큼 보여 줍니다

홈 화면 위젯은 예전부터 크기를 조절할 수 있었는데, **내용은 크기와 무관하게 늘 코인

다섯 줄**이었습니다. 그래서 두 가지가 어긋나 있었습니다.

  • 작은 위젯에서는 넘쳤습니다. 기본 4×2 높이에 머리글·다섯 줄·공포지수를 다 넣으면 자리가 모자랍니다. 넘친 부분은 런처가 말없이 잘랐습니다 — 무엇이 잘렸는지 화면에 아무 표시가 없습니다.
  • 크게 늘려도 그대로였습니다. 4×4로 늘리셔도 남는 자리를 쓰지 못했습니다. 이제 지금 크기에 들어가는 만큼 보여 줍니다. 글자를 키우신 경우도 함께 봅니다 — 큰 글씨에서는 코인 한 줄이 두 줄로 갈라지니 같은 높이에 덜 들어갑니다. 위젯은 저희가 그려 볼 수 없는 화면입니다(홈에 얹는 것은 쓰시는 분 몫이라서요). 그래서 「몇 줄이 들어가는가」라는 판단만 따로 떼어, 검사가 값을 직접 재도록 했습니다.
  • 내부 검증 2324건 · 화면 기준선 304장. versionCode 723.
v3.28.422026-08-17
위젯도 글꼴 200%에서 확인했습니다

앱은 그대로입니다.

홈 화면 위젯은 실제 기기에서 자동으로 확인할 방법이 없습니다 — 런처에 얹는 것은 사람이

해야 하는 일이라서요. 그래서 저희는 같은 치수로 세운 「거울」 그림으로 확인해 왔는데,

그 거울이 1.5배에서 멈춰 있었습니다.

200%를 추가해 봤습니다. 위젯은 멀쩡했습니다. 글자가 커지면 코인 한 줄이 두 줄로

갈라지도록 이미 만들어 두었고, 그 덕에 가격도 등락률도 김프도 온전합니다. 영어에서도

같았습니다.

한 줄 배치 그림도 함께 남겼습니다. 그건 앱이 200%에서 쓰지 않는 상태인데, 두 줄로

갈아타는 규칙이 없으면 어떻게 되는지 보여 줍니다 — 「₩96,985」와 「,000」처럼 숫자가

한가운데서 접힙니다. 접힌 숫자는 잘린 숫자보다 나쁩니다. 잘렸다는 표시조차 없이 **두 개의

다른 수**가 되니까요.

  • 내부 검증 2317건 · 화면 기준선 304장. versionCode 722.
v3.28.412026-08-17
매수·매도 신호가 「그 순간」에만 서는지 확인했습니다

앱은 그대로입니다.

코인 상세의 「매수·매도 신호」가 파는 것은 판단이 아니라 사실입니다 — 「정배열로

바뀌었다」, 「RSI가 과매도에서 올라왔다」. 「바뀌었다」는 전환을 뜻하니, 조건이 참인

봉마다 점을 찍으면 화면이 거짓말을 합니다.

그런데 이 부분은 값을 맞춰 보는 시험이 한 건도 없었습니다. 「오르는 자료에서 매수

신호가 난다」 같은 말은 어느 쪽 구현에서도 참이라 어긋남이 안 보입니다.

두 가지를 못 박았습니다.

  • 전환에서만 난다 — RSI가 과매도에서 한 번 올라온 뒤 계속 위에 있는 자료를 넣으면 신호는 한 봉에서만 나야 합니다.
  • 미래를 훔쳐보지 않는다 — 신호가 난 봉까지만 넘겨도 그 봉에서 신호가 나야 합니다. 이게 어긋나면 그 순간 알 수 없던 것으로 점을 찍는 셈인데, 화면은 똑같이 그럴듯하고 성적만 부풀어 아무도 모릅니다. 성적을 셀 때 아직 결과가 없는 최근 신호는 안 세는지도 확인했습니다. 확인 삼아 둘을 일부러 어긋나게 해 봤고, 새 검사가 각각 잡았습니다. 만들다가 저희 규칙에 한 번 걸렸습니다. 시험에서 쓰려고 내부 함수를 열었더니 「화면이 안 부르는 함수는 두지 않는다」는 검사가 막았습니다. 그 검사가 옳습니다 — 결국 화면이 쓰는 바로 그 길로만 확인하도록 고쳤고, 그 편이 더 낫습니다.
  • 내부 검증 2317건 · 화면 기준선 301장. versionCode 721.
v3.28.402026-08-17
슈퍼트렌드도 값으로 확인했습니다

앱은 그대로입니다.

흐름 문단의 첫 줄(「N봉째 상승 흐름」)을 만드는 슈퍼트렌드는, 그 전부가 **밴드가 한쪽으로만

조여든다**는 규약입니다. 그런데 그 규약이 어긋나도 「위/아래」와 「N봉째」는 그럴듯하게

나옵니다. 그래서 값을 따로 계산해 맞춰 봤습니다. 맞았습니다.

시험용 자료를 만들다 하나 배웠습니다. 처음 만든 값들은 한 번도 방향이 안 뒤집혔습니다.

그러면 이 지표에서 가장 중요한 코드(전환 판정)를 한 줄도 안 지나는데, 결과는 「38봉째 상승」

으로 그럴듯하게 나옵니다. 반드시 한 번 뒤집히는 자료로 바꿨고, **뒤집히지 않으면 시험이

실패하도록** 함께 못 박았습니다.

확인 삼아 규약을 일부러 없애 봤습니다. 새 검사 셋이 모두 잡았고, 기존 검사 중에서도 하나가

잡았습니다 — 완전히 빈 자리는 아니었고, 이번에 직접·정확하게 보게 된 것입니다.

  • 내부 검증 2313건 · 화면 기준선 301장. versionCode 720.
v3.28.392026-08-17
나머지 지표도 값으로 확인했습니다

앱은 그대로입니다. 지난 판에서 RSI·MACD를 알려진 답에 맞춰 보고 나니, 같은 파일의

나머지가 그대로였습니다.

  • ATR과 자금흐름지수(MFI)는 시험이 아예 없었습니다. 둘 다 화면에 나오고, 특히 ATR은 「거친 국면」을 가르는 값이라 저희가 재서 적어 둔 결과 상당수가 그 위에 서 있습니다.
  • 볼린저는 순서만(위 ≥ 가운데 ≥ 아래), 스토캐스틱은 0~100 안, OBV는 방향만 보고 있었습니다. 순서·범위·방향은 계산을 바꿔도 대개 그대로입니다. 다섯 다 따로 계산해 값으로 맞춰 봤습니다. 전부 맞았습니다. 값만 박지 않고 규약도 함께 박았습니다. 볼린저의 표준편차를 어느 쪽으로 세는지, ATR이 진행 중인 마지막 봉을 세는지 같은 것들입니다. 이런 규약은 어느 날 조용히 통일되면서 값이 바뀌기 쉬운데, 화면은 아무 말도 하지 않습니다. 확인 삼아 두 규약을 일부러 바꿔 봤고, 둘 다 새 검사가 잡았습니다.
  • 내부 검증 2310건 · 화면 기준선 301장. versionCode 719.
v3.28.382026-08-17
지표가 «성질» 만 맞는지 «값» 도 맞는지 확인했습니다

앱은 그대로입니다. 확인한 것을 적습니다.

이 앱의 판독·알림·해설은 전부 RSI·MACD 같은 지표 위에 서 있습니다. 그래서 그 수가 맞는지가

가장 아래에 있는 물음인데, 저희 시험은 오래 성질만 보고 있었습니다 — 다 오르면 100,

다 내리면 0, 0~100 안, 상승장에서 MACD는 양수.

전부 참인 말이지만, 넷 다 계산 방식을 바꿔도 그대로 통과합니다. 다 오르는 값에서는

어떤 평활을 써도 100이니까요. 섞인 값에서 결과가 맞는지는 아무도 안 봤습니다.

그래서 알려진 답과 맞춰 봤습니다. 교과서에 널리 실린 예제 계열로 RSI를 계산하고, 저희

값과 견줬습니다. 맞았습니다. MACD와 이동평균의 계산 규약도 값 하나씩 못 박았습니다.

확인 삼아 계산식을 일부러 어긋나게 해 봤습니다. **기존 시험은 전부 통과했고 새 시험만

잡았습니다.** 빈틈이 실제로 있었다는 뜻입니다. 지표가 조금 틀리면 그 위의 모든 것이 조용히

조금씩 틀리는데, 어느 화면도 「이상하다」고 말해 주지 않습니다.

  • 내부 검증 2303건 · 화면 기준선 301장. versionCode 718.
v3.28.372026-08-17
가로 화면을 훑었고, 낭독기 표시를 검사가 지킵니다

앱은 그대로입니다. 오늘 확인한 것과 지켜 둔 것을 적습니다.

폰 가로 화면 — 화면 기준 그림 304장 가운데 폭이 높이보다 큰 것은 18장인데 대부분

태블릿 폭이고, 폰 가로는 셋뿐이었습니다. 가로는 높이가 줄고 글자는 커지니 볼 만한

자리였습니다. 실제 기기에서 가로로 고정하고 글자 1.5배와 2배 둘 다 여섯 화면을

훑었습니다. 무너진 곳이 없었습니다.

이유가 있습니다. 가로에서는 홈이 두 칸으로 갈리고, 글 화면은 줄 길이를 묶어 한 줄이

화면 끝까지 늘어나지 않습니다. 이미 그렇게 만들어 둔 것이 여기서 일했습니다.

뉴스의 날짜 머리글 — 화면 읽어주기에서 「다음 제목」으로 날짜를 건너뛸 수 있게

표시해 두었는데, 그 표시는 기기에서 확인할 방법이 없습니다. 사람이 직접 켜서

넘겨 봐야 합니다. 대신 그 표시가 조용히 빠지는 것은 검사가 막도록 했습니다.

  • 내부 검증 2299건 · 화면 기준선 301장. versionCode 717.
v3.28.362026-08-17
큰 글씨 × 영어에서 둘 더 나왔습니다

큰 글씨를 200%까지 훑고 나서, 이번엔 영어와 겹쳐 봤습니다. 이 둘은 같은 방향으로

밉니다 — 글자는 커지고 영어 라벨은 한국어보다 깁니다. 어느 한쪽만으로는 안 넘치던 칸이

함께 오면 넘칩니다.

탐색 화면의 「급등·급락·거래량」 줄 — 영어에서 셋이 폭을 넘자 마지막 칩이 밀려나는 게

아니라 폭 0으로 짓눌렸습니다. 그러면 그 안의 글자가 한 글자씩 줄바꿈해 세로로 길어지고,

줄 전체가 그만큼 높아집니다. 화면에 450픽셀짜리 빈 띠가 생겼습니다. 잘림보다 알아채기

어렵습니다 — 잘린 글자는 없고 그냥 「이상하게 넓은 여백」으로 보이니까요. 이제 홈 화면의

정렬 칩처럼 옆으로 밀어서 봅니다.

큰 금액의 단위가 한국어로 나오던 자리 — 「₩1.79조」의 「조」는 앱이 기기에 깔린 말

보고 골랐습니다. 앱에서는 화면 언어와 같아서 티가 안 났지만, 저희가 새로 만든 영어 화면

기준 그림에는 「조」가 찍혀 있었습니다. 그림이 거짓말을 하면 그 그림을 지키는 검사도

거짓말을 지킵니다. 이제 화면이 그리는 말이 단위를 고릅니다(영어면 T·B·M·K).

찾다 보니 코인 정보의 유통량 표기도 같은 자리였습니다. 함께 고쳤고, 앞으로 그런 자리가

생기면 검사가 막습니다.

  • 내부 검증 2297건 · 화면 기준선 301장. versionCode 716.
v3.28.352026-08-17
나머지 화면도 글꼴 200%에서 훑었습니다

앞선 두 판에서 자금 화면과 홈을 고쳤으니, 같은 잣대를 나머지에도 댔습니다. 셋이 더 나왔습니다.

탐색(급등락) 목록 — 한 줄에 다섯이 들어가지 않았습니다. 코인 이름이 「DO…」, 가격이

「₩131,500,…」, 등락률이 「+18.…」로 동시에 잘렸습니다. 칸을 넓히면 서로를 밀어낼 뿐이라

줄을 늘렸습니다. 위 줄은 「무엇인가」(로고·심볼·이름·추가), 아래 줄은 「얼마인가」(가격·등락률)

입니다.

공포지수 게이지 — 숫자 「75」가 반원 위로 올라타 겹쳐 보였습니다. 글자 크기 상한이

글꼴 배율을 따라 커지는데 반원은 그렇지 않아서요. 이제 상한을 반원 크기에서 뽑습니다.

배율이 아무리 올라도 숫자가 그림을 넘지 않습니다.

계산기 — 투자금 칸이 「100000」밖에 못 담아 직접 넣으신 수를 확인할 수 없었습니다.

계산기에서 입력값이 안 보이는 것은 결과를 못 믿는 것과 같습니다. 나란히 놓인 입력 칸 둘은

큰 글씨에서 위아래로 놓습니다.

채산성과 ETF 순유입은 200%에서도 온전했습니다.

  • 내부 검증 2295건 · 화면 기준선 300장. versionCode 715.
v3.28.342026-08-17
홈 시세 카드도 큰 글씨에서 온전해졌습니다

지난 판에서 자산 화면을 고치고 나니, 같은 잣대로 홈 화면도 봐야 했습니다. 글꼴 200%로

열어 보니 여기가 더 나빴습니다.

  • 김치 프리미엄이 「-0…」 이었습니다. 이 앱이 다른 앱과 갈리는 바로 그 수인데 한 자리만 남아 있었습니다.
  • KOSPI 지수가 두 줄로 쪼개졌습니다. 「2,500.12」가 「2,50」과 「0.12」로 나뉘어, 잘린 것도 아니고 다른 수 둘로 읽혔습니다. 말줄임은 「여기서 끊겼다」를 알려 주기라도 하는데 줄바꿈은 그것조차 없습니다.
  • 어제 올린 달러 환율 줄도 「$1 = ₩1,4…」로 잘렸습니다. 안 보인다고 해서 올린 줄이 잘린 채로 보이면 소용이 없습니다.
  • 일부 코인의 등락률이 「+2.7…」이었습니다. 넷 다 고쳤습니다. 김프는 이름표가 아니라 숫자가 먼저 자리를 잡도록 순서를 바로잡았고, 큰 글씨에서는 제 줄을 갖습니다. 지수 값은 줄을 바꾸는 대신 글자를 줄입니다. 환율 줄은 큰 글씨에서 이름과 값이 줄을 나눠 갖습니다. 등락률 쪽은 뿌리가 조금 달랐습니다. 저희는 「이 줄에 다 들어가는가」를 재서 판단하는데, 실제 배치는 비율로 나눕니다. 값이 짧아 「들어간다」로 판정된 코인은 그 비율 몫만 받아 모자랐습니다. 판정이 맞아도 나눠 주는 방식이 다르면 잘립니다. 이제 나누는 방식 그대로 판단합니다.
  • 내부 검증 2295건 · 화면 기준선 295장. versionCode 714.
v3.28.332026-08-17
아주 큰 금액이 잘리지 않고 「₩1.79조」로 바뀝니다

글꼴 크기를 200%로 키우고 조 단위 자산을 보면 평가액이 「₩1,786,600,000…」이었습니다.

말줄임이 있으니 잘렸다는 것은 아시겠지만, 얼마인지는 모릅니다. 남은 자릿수만으로는

17억인지 1.7조인지 178조인지 구별할 수 없습니다.

이제 그 자리에서 자릿수를 지우는 대신 눈금을 거칠게 합니다. 「₩1.79조」처럼요.

덜 정확한 다른 수가 아니라 같은 수를 더 짧게 적은 것입니다. 자리가 허락하는 한

지금처럼 전부 보여 드리고, 정 안 되면 그때만 바뀝니다.

포트폴리오의 평가액·손익·매수금액·실현손익, 그리고 보유 행의 금액에 모두 적용했습니다.

같은 배율에서 잘리던 곳을 넷 더 찾아 고쳤습니다. 보유 행의 수량(20000 → `200…`),

비중(100.0% → `비중 1…`), 손익률(−5.77% → `−5.7…`), 그리고 자산 배분 범례의

코인 이름(BTC → `…`)입니다. 마지막 것이 특히 나빴습니다. 어느 코인의 비중인지

알 수 없는 범례가 되니까요. 큰 글씨에서는 이제 이름과 비중이 줄을 나눠 갖습니다.

수량에는 「거친 눈금」을 주지 않았습니다. 금액과 달리 수량은 0.15개처럼 작을 수 있는데,

그걸 거칠게 적으면 「0」이 되어 없는 수를 만들기 때문입니다. 그런 자리는 글자를 더

줄이는 편이 낫습니다.

찾다가 하나 더 나왔습니다. 요약 카드의 매수금액 줄만 규칙에서 빠져 있었습니다. 같은

카드의 다른 금액들은 폭이 좁으면 글자를 줄여 지키고 있었는데 그 줄만 잘리고 있었어요.

저희 내부 검사가 그 줄을 한 번도 본 적이 없었기 때문입니다. 검사가 보는 함수 목록에

빠진 이름이 하나 있었습니다. 목록도 함께 고쳤고, 앞으로는 새 함수가 생기면 목록에

넣거나 「금액이 아니다」라고 이유를 적어야 통과합니다.

  • 내부 검증 2295건 · 화면 기준선 294장. versionCode 713.
v3.28.322026-08-17
달러 환율을 첫 화면에 올렸습니다

「환율도 표시해 달라, 1달러에 얼마인지」라는 말씀을 받았습니다. 확인해 보니 이미 있었습니다.

시세 카드 맨 아래에 「$1 USD 미국 달러 … ₩1,411」로 네 통화가 나옵니다.

그런데 그 자리는 코인 일곱 줄과 지수 네 줄을 지나야 나오고, 카드에서 글씨가 가장 작은

줄입니다. 첫 화면에는 안 보입니다. 없는 것과 못 찾는 것은 쓰는 분에게 같은 일입니다.

그래서 달러 환율만 카드 맨 위로 한 줄 올렸습니다. 제목 바로 아래에 「달러 환율 $1 = ₩1,411」이

늘 보입니다. 나머지 세 통화(엔·유로·위안)는 참고 표이므로 아래 그대로 두었습니다.

달러만 올린 데는 이유가 있습니다. 이 수는 취향이 아니라 이 화면의 숨은 분모입니다.

코인 줄마다 붙는 달러 값도, 김치 프리미엄도 전부 이 수로 나눈 것입니다. 그것이 안 보이는

채로 결과만 보이고 있었습니다.

  • 다섯 언어 모두 적용했습니다.
  • 설정에서 달러를 표시 통화에서 빼신 분에게는 뜨지 않습니다. 뺀 것은 뜻이 있는 선택입니다.
  • 글씨를 키우거나 화면이 좁으면 이름표가 먼저 줄고 숫자는 끝까지 온전합니다. 「₩1,4…」로 잘린 환율은 잘린 줄 모른 채 그대로 읽히기 때문입니다.
  • 내부 검증 2286건 · 화면 기준선 292장. versionCode 712.
v3.28.312026-08-17
RSI 설명이 열 화면짜리 벽이었습니다

지표 설명의 「어떻게 읽나요」 칸을 열면, RSI 만 글이 끝나지 않았습니다. 실제로 재

봤습니다. 바닥까지 21번을 끌어야 했고, 다른 지표는 전부 1번이었습니다.

한국어 13,776자 · 영어 29,033자가 한 덩이로 들어 있었습니다.

왜 그렇게 됐는지는 분명합니다. 이 앱은 무엇을 재면 그 결과를 화면에 적습니다. 그

원칙을 지키는 동안 판마다 한 문단씩 붙었고, 어느 순간 초보자가 「RSI 가 뭔가요」 하고

누른 자리에 조사 과정이 통째로 들어앉았습니다. 앞 문장을 거두는 말, 지난 판에 적었던

수를 고치는 말, 앱 내부를 고쳤다는 말까지 그대로 있었습니다.

지우지 않았습니다. 재 보고 말하는 것이 이 앱이 하는 일이라, 지우면 남는 것이 없습니다.

대신 자리를 옮겼습니다.

  • 늘 보이는 칸에는 결론만 둡니다. 70·30 이 무슨 뜻인지, 그리고 「RSI 30 아래면 되돌린다」에 어떤 조건이 붙는지(거친 국면에서만·5봉 근처에서만·여러 코인이 함께 뜬 날에만)를 한 문단으로 적었습니다.
  • 잰 수치는 「자세히 보기」 뒤로 접었습니다. 누르면 그대로 다 나옵니다. 한 줄도 버리지 않았습니다.
  • 한계와 「매매를 권하지 않습니다」는 접지 않았습니다. 펴 보지 않은 분이 읽어야 뜻이 있는 문장이라, 검사가 그 셋이 늘 보이는 칸에 있는지 지킵니다. 다섯 언어 모두 같이 옮겼습니다. 같은 일이 다시 생기지 않게 검사를 하나 더했습니다. 이 글이 커지는 것을 막는 검사는 전에도 둘 있었는데, 하나는 파일 형식의 한계를 보고 다른 하나는 문단 수를 봤습니다. 둘 다 통과하는 동안 사람이 겪는 것은 끌어야 하는 횟수였습니다. 새 검사는 그쪽을 봅니다 — 펴지 않아도 보이는 글은 두 화면을 넘지 않습니다. 넘어도 되는 자리는 어디서 어떻게 접히는지를 함께 적게 했고, 그 접는 장치가 사라지면 검사가 실패합니다.
  • 내부 검증 2286건 · 화면 기준선 292장. versionCode 711.
v3.28.302026-08-16
점검 기록을 오늘 확인한 것으로 채웠습니다

앱은 그대로입니다. 오늘 하루 동안 확인한 것들을 점검 문서에 근거와 함께 적었습니다 —

다섯 언어 전환에서 번역이 빠진 곳이 없다는 것, 여덟 화면의 누를 수 있는 요소 107개가

모두 손가락에 넉넉하다는 것, 화면 읽어주기가 침묵하는 조작 요소가 없다는 것,

공포지수 카드의 색과 문구가 이제 한 기준에서 나온다는 것 같은 것들입니다.

점검 목록의 확인된 항목이 오늘 아침 38개에서 91개가 됐습니다. 남은 것은 대부분

사람 손이 필요한 것(위젯을 홈에 얹기, 폰을 접었다 펴기)이거나 특정 상황을 만들어야

하는 것입니다.

  • 내부 검증 2283건 · 화면 기준선 292장. versionCode 710.
v3.28.292026-08-16
숫자 칸이 저마다 옳은 규칙을 쓰는지 검사가 지킵니다

앱에는 숫자를 넣는 칸이 여럿입니다. 칸마다 규칙이 다릅니다 — 김프 칸은 음수(역프)가

되어야 하고, 투자금 칸은 소수점이 들어가면 안 되고, 보유 수량 칸은 계산 결과가 그대로

들어와야 하니 다른 칸보다 길어야 합니다.

숫자를 다루는 규칙 자체는 예전부터 한 곳에 모여 있었고 검사도 있었습니다. 그런데

칸마다 그 규칙의 어떤 변형을 쓰는지는 아무도 보고 있지 않았습니다. 규칙이 멀쩡해도

칸에 잘못 붙이면 그 칸만 이상해집니다.

이제 칸별 배선을 검사가 지킵니다. 인자 하나만 빠져도 배포가 멈춥니다.

화면에서 달라지는 것은 없습니다.

  • 내부 검증 2283건 · 화면 기준선 292장. versionCode 709.
v3.28.282026-08-16
알림 기준가가 「지금 살아 있는 규칙」만 따라가는지 검사로 못 박았습니다

급등락 알림은 「지난 주기 가격 대비 몇 %」로 판정합니다. 그래서 규칙을 지우면 그 코인의

기준가도 함께 버려야 합니다 — 안 버리면 그 시점 가격이 얼어붙고, 한참 뒤 규칙을 다시

켰을 때 옛 가격과 비교해 가짜 급등이 뜹니다. 예전에 실제로 났던 문제입니다.

버리는 규칙 자체는 검사가 지키고 있었는데, **그 규칙에 「지금 살아 있는 규칙 목록」을

제대로 넘기는지**는 아무도 안 보고 있었습니다. 규칙이 멀쩡해도 넘기는 값이 틀리면 화면만

틀립니다.

그 한 고리를 검사로 채웠습니다. 조용시간 동안 기준가를 붙잡아 두는 것(그래야 조용시간이

끝난 뒤 그 사이 변동으로 알림이 옵니다)도 함께 봅니다.

화면에서 달라지는 것은 없습니다.

  • 내부 검증 2279건 · 화면 기준선 292장. versionCode 708.
v3.28.272026-08-16
채산성 가정을 바꿔도 순위가 흔들리지 않는 것을 검사로 못 박았습니다

비트코인 상세의 「채산성」 카드는 두 가지를 함께 적습니다. 지금 값이 전기비의 몇 배인가와,

그 값이 최근 창 안에서 어디쯤인가입니다. 설정에서 채굴기 효율이나 전기단가를 바꾸면

앞엣것은 바뀌어야 하고, 뒤엣것(순위)은 그대로여야 합니다 — 원가가 두 값에 정비례해서

모든 날이 같은 배율로 움직이기 때문입니다.

지금까지 이건 「사람이 설정을 바꿔 가며 확인할 것」으로 남아 있었습니다. 그런데 순위가

움직이는지 보려면 두 해치 자료가 필요해서 기기에서는 재현이 어렵습니다.

검사로 옮겼습니다. 효율과 전기단가를 스무 가지로 흔들어 순위가 한 칸도 움직이지 않는

것과, 비율 자체는 두 배 넘게 움직이는 것을 함께 확인합니다.

화면에서 달라지는 것은 없습니다.

  • 내부 검증 2277건 · 화면 기준선 292장. versionCode 707.
v3.28.262026-08-16
정렬을 골라 두고 다른 화면에 다녀오면 풀리던 문제를 고쳤습니다

시세 목록에서 「이름순」이나 「거래량순」을 고른 뒤 설정이나 탐색 화면에 다녀오면

정렬이 기본으로 돌아가 있었습니다. 화면을 바꿀 때 이전 화면이 하던 것을 앱이

붙잡아 두지 않았기 때문입니다.

화면을 회전할 때는 멀쩡했고, 코인을 눌러 상세를 봤다 닫을 때도 멀쩡했습니다.

화면을 통째로 갈아 끼우는 경로에서만 잃고 있었습니다.

이제 화면마다 하던 것을 기억합니다. 정렬뿐 아니라 ₩⇄$ 토글, 탐색 화면의 급등/급락

선택, 계산기에 넣어 둔 숫자도 다녀와서 그대로입니다.

한 가지는 일부러 남기지 않습니다. ETF 키를 볼 때 쓰는 「눈」 단추는 화면을 떠나면

다시 가려집니다 — 키를 드러내 놓고 다른 화면에 갔다 왔을 때 계속 보이면 안 되기

때문입니다.

  • 내부 검증 2275건 · 화면 기준선 292장. versionCode 706.
v3.28.252026-08-16
배포한 앱 안의 문구가 저희가 고친 그 문구인지 확인합니다

배포할 때마다 스토어에 올라간 파일을 다시 내려받아 확인해 왔습니다. 지금까지는

그 파일이 무엇인지(버전·해시)만 봤습니다. 그런데 버전이 맞아도 내용이 옛것일

수 있습니다 — 빌드 과정에서 문구만 예전 것이 섞이는 경우입니다.

이제 내려받은 앱 안에서 실제 문구를 찾아 소스와 맞춰 봅니다. 하나라도 어긋나면

배포가 실패로 끝납니다.

화면에서 달라지는 것은 없습니다. 여러분이 받는 앱이 저희가 고친 그 앱인지를

저희가 매번 확인한다는 뜻입니다.

  • 내부 검증 2273건 · 화면 기준선 292장. versionCode 705.
v3.28.242026-08-16
하루 종일 값이 안 움직인 코인에서도 범위 막대가 제대로 나오도록 잠갔습니다

코인 상세에는 「24시간 저–현–고」 막대가 있습니다. 하루 동안 고가와 저가가 같은

코인이 있습니다 — 거래가 거의 없었거나, 상장한 지 얼마 안 된 코인이 그렇습니다.

그때 위치 계산이 0으로 나누기가 되어, 막대가 통째로 사라지면 **값이 멀쩡한데도

「자료 없음」처럼** 보입니다.

막을 방법은 예전부터 코드에 들어 있었습니다. 다만 그것을 **지켜보는 검사가

없었습니다.** 그런 코인을 만나야 재현되는 상황이라, 점검 목록에는 「사람이 기기에서

확인할 것」으로 남아 있었고 언제 확인될지 알 수 없었습니다.

계산을 밖으로 꺼내 검사로 옮겼습니다. 고가=저가일 때 가운데, 자료가 뒤집혀 들어와도,

숫자가 깨져 들어와도 막대는 늘 그릴 수 있는 값이 됩니다. 현재가가 24시간 범위 밖으로

나가는 경우(범위는 거래소 집계, 현재가는 실시간이라 시점이 다릅니다)도 막대가 칸을

뚫고 나가지 않습니다.

화면에서 달라지는 것은 없습니다.

  • 내부 검증 2273건 · 화면 기준선 292장. versionCode 704.
v3.28.232026-08-16
「7일 성과 비교」가 사흘치일 때도 7일이라고 말했습니다

홈의 성과 비교 카드는 관심 코인들의 최근 흐름을 한 그림에 겹쳐 보여 줍니다.

겹쳐 그리려면 모든 코인이 가진 만큼으로 창을 맞춰야 하는데, 목록에 상장한 지

얼마 안 된 코인이 있으면 그 창이 사흘이 되기도 합니다. 그런데 제목은 늘

「7일 성과 비교」였습니다.

그림도 숫자도 맞았고, 이름만 틀렸습니다. 그래서 나란히 세어 보기 전에는

눈에 띄지 않았습니다.

이제 실제로 본 일수를 적습니다. 사흘치면 「3일 성과 비교」라고 말합니다.

화면 읽어주기 설명도 같은 수를 말합니다.

이 앱에는 「실제로 본 만큼만 말한다」는 규칙이 있고, 「최근 N일」처럼 쓰는

자리는 이미 검사가 지키고 있었습니다. 이번 자리는 「최근」이 없어 그 그물

밖이었습니다. 그물을 넓혀, 짧은 문구가 기간을 단정하면 왜 참인지를 적도록

했습니다.

  • 내부 검증 2269건 · 화면 기준선 292장. versionCode 703.
v3.28.222026-08-16
가장 많이 보이는 「장세」 줄이 저희가 기각한 통설을 말하고 있었습니다

코인 상세의 근거 목록에는 「장세」 줄이 있습니다. 거기서 이렇게 말하고 있었습니다.

  • 추세장일 때: 「추세추종 신호가 잘 맞습니다」
  • 횡보장일 때: 「과매수·과매도가 잘 맞습니다. 추세 신호는 속기 쉬워요」 그런데 저희는 그 통설을 이미 재서 확인되지 않았다고 결론지었고, 같은 화면의 지표 설명에는 그렇게 적어 두었습니다. 가장 눈에 띄는 줄만 옛말을 그대로 하고 있었던 것입니다. 이름이 비슷한 다른 문구를 고치면서 이쪽을 못 찾았습니다. 세 줄(추세장·횡보장·경계)을 잰 것에 맞게 고쳤습니다. 「근거가 겹칠 때만 움직이세요」 같은 조언도 뺐습니다 — 이 앱은 무엇을 하라고 말하지 않습니다. 배움글 두 곳도 같은 이유로 고쳤습니다. 「세 기간이 같은 방향이면 더 믿을 만하다」와 「거래량이 함께 터질 때 돌파를 믿을 만하다」는 둘 다 저희 측정과 반대였습니다. 무엇을 쟀고 무엇이 남았는지로 바꿨습니다. 같은 일이 되풀이되지 않도록 검사를 넓혔습니다. 말끝을 살피는 검사도 「쉬워요」를 놓치고 있어서, 어미를 하나씩 적어 두는 방식을 뒤집어 문장 끝을 전부 보게 했습니다.
  • 내부 검증 2268건 · 화면 기준선 291장. versionCode 702.
v3.28.212026-08-16
앱이 자기 측정과 반대말을 하던 설명 두 곳을 고쳤습니다

이 앱은 널리 쓰이는 통설을 그대로 옮기지 않고 직접 재서, 확인되면 확인됐다고

안 되면 안 됐다고 적습니다. 그런데 설명 두 곳이 **저희가 잰 결과와 반대되는

말**을 하고 있었습니다.

하나는 MACD 설명입니다. 추세장에서 열면 「추세장에서 교차가 잘 맞는다는 말은

재 보니 반대였고, 횡보장이 오히려 나았다」고 하는데, 횡보장에서 열면 「이런

구간에서는 교차가 특히 더 속으니 기다리는 편이 낫다」고 했습니다. 같은 화면이

자기와 다투고 있었던 셈입니다. 게다가 뒤엣말은 재지 않은 조언이었습니다.

다른 하나는 스토캐스틱 배움글입니다. 「방향이 뚜렷한 장에서는 헛신호가 늘어난다」고

단정했는데, 저희가 국면으로 갈라 재 보았을 때 그런 차이는 확인되지 않았습니다.

둘 다 실제로 잰 것으로 바꿨습니다. 교차 신호가 20봉 뒤 방향에서 기준선과

구분되지 않았다는 수치와, 그래서 이 앱이 스토캐스틱을 교차가 아니라 위치로

읽는다는 사실을 함께 적었습니다.

같은 모순이 되돌아오면 배포가 멈추도록 검사도 넓혔습니다.

  • 내부 검증 2268건 · 화면 기준선 291장. versionCode 701.
v3.28.202026-08-16
MACD 설명을 여는 순간 앱이 멈추던 문제를 고쳤습니다

코인 상세에서 MACD 지표의 ⓘ 를 눌러 설명을 여는데, 그때 시장이 추세장이면

그 화면이 그려지지 못하고 멈췄습니다. 다섯 언어 모두에서 그랬습니다.

원인은 문장 안의 퍼센트 기호 하나였습니다. 그 설명은 ADX 값을 문장에 끼워 넣는데,

안드로이드는 그런 문장을 만들 때 퍼센트를 특별한 기호로 읽습니다. 「1~10%p」의

퍼센트가 그렇게 읽혀 문장 만들기가 실패했고, 그 자리를 그리던 화면이 함께

내려갔습니다.

고쳤습니다. 이제 그 설명이 정상으로 뜹니다.

같은 종류를 다시는 놓치지 않도록 두 가지를 함께 넣었습니다. 값을 끼워 넣는

문장 전부를 실제로 만들어 보는 검사와, 문제가 났던 바로 그 화면(MACD × 추세장)의

그림 기준선입니다. 지금까지 그 조합을 그려 보는 그림이 하나도 없었습니다.

  • 내부 검증 2267건 · 화면 기준선 291장. versionCode 700.
v3.28.192026-08-16
화면이 대는 숫자가 계속 사실이도록 잠갔습니다

이 앱의 문구는 계산에 쓰는 숫자를 그대로 말합니다 — 「지난 110봉 중 상위 …」,

「지난 30봉 변동성을 지난 110봉과 견주기 때문입니다」, 「47봉이 안 되면 장세가

나오지 않습니다」, 「약 15분마다 확인합니다」, 「150봉 창으로 쟀습니다」처럼요.

그 숫자들은 지금 전부 맞습니다. 다만 맞는지 지켜보는 것이 없었습니다. 계산

쪽 값을 하나 옮기면 다섯 언어의 문장이 조용히 거짓이 됩니다. 값은 맞고 문장만

틀린 자리라, 나란히 세어 보기 전에는 눈에 띄지 않습니다.

이제 그 다섯 자리를 코드에서 직접 읽어 문구와 맞춰 봅니다. 어긋나면 배포가

멈춥니다.

화면에서 달라지는 것은 없습니다.

  • 내부 검증 2266건 · 화면 기준선 290장. versionCode 699.
v3.28.182026-08-16
「분위기」도 같은 기준을 쓰게 했고, 없는 검사를 가리키던 안내 넷을 고쳤습니다

앞 판에서 공포지수 카드의 색을 한 기준으로 모았는데, 카드 맨 위에 나오는

「분위기」(고요함·긴장·공포…)는 아직 제 기준을 따로 들고 있었습니다. 같은 카드에

「극심한 공포」와 「보통」이 함께 뜰 수 있는 자리라 함께 모았습니다. 옛 규칙과

뜻이 같은지 132가지 조합으로 하나씩 맞춰 봤고, 화면은 달라지지 않습니다.

그리고 저희 코드에는 「이 규칙은 ○○ 검사가 지킨다」고 적어 둔 안내가 곳곳에

있습니다. 그중 넷이 없는 이름을 가리키고 있었습니다. 규칙 자체는 지켜지고

있었지만 이름이 낡은 것이라, 오히려 더 위험합니다 — 찾아보고 없으면 「지키는

장치가 없구나」로 읽고 이미 있는 것을 다시 만들게 됩니다. 실제로 이번 판에서

그 착각으로 시작한 일이 있었습니다.

넷을 실제 이름으로 고치고, 앞으로 없는 이름을 적으면 배포가 멈추도록 검사를

넣었습니다.

화면에서 달라지는 것은 없습니다.

  • 내부 검증 2262건 · 화면 기준선 290장. versionCode 698.
v3.28.172026-08-16
공포지수 카드의 색이 한 기준을 쓰도록 모았습니다

공포지수 카드에는 VIX 숫자와 그 아래 막대, KOSPI 숫자와 그 아래 문구가 함께

있습니다. 색과 문구는 「안정 · 긴장 · 공포」 같은 단계로 갈리는데, 그 단계를

가르는 기준이 세 곳에 따로 적혀 있었습니다.

지금은 세 곳의 숫자가 우연히 같아서 화면에 보이는 것은 정확했습니다. 다만

기준을 한 번이라도 옮기면 **같은 칸 안에서 숫자와 막대와 문구가 서로 다른

단계를 가리키게** 됩니다. 사용자가 볼 수 있는 결함인데, 그때 가서야 드러납니다.

기준을 한 곳으로 모으고, 색은 그 결과만 받아 쓰도록 고쳤습니다. 화면에 보이는

색과 문구는 한 픽셀도 달라지지 않았습니다 — 화면 그림 290장이 모두 그대로인

것으로 확인했습니다.

앞으로 색을 고르는 자리가 기준을 다시 적으면 배포가 멈추도록 검사도 넣었습니다.

  • 내부 검증 2260건 · 화면 기준선 290장. versionCode 697.
v3.28.162026-08-16
앱은 그대로입니다. 저희 점검 기록이 어긋나 있어 바로잡았습니다

이 앱은 「무엇을 확인했는지」를 문서로 남깁니다. 그 문서가 같은 항목을 두 곳에

적는데, 위쪽 목록에는 「아직 확인 안 함」으로, 아래쪽 근거 표에는 기기와 관측값까지

적힌 「확인함」으로 남아 있는 항목이 열세 개 있었습니다.

한쪽만 손질된 탓입니다. 그대로 두면 다음 점검이 이미 끝난 일을 처음부터 다시

하게 됩니다. 실제로 오늘 뉴스 화면 항목들을 그렇게 다시 재기 시작했습니다.

열세 항목을 근거와 함께 정리했고, 그중 둘은 확인한 것으로 치지 않았습니다

근거 표의 「확인함」이 자세히 보니 다른 상황을 가리키고 있었기 때문입니다. 무엇이

남았는지 그 자리에 적어 두었습니다.

같은 어긋남이 다시 생기면 배포가 멈추도록 검사도 함께 넣었습니다.

화면에서 달라지는 것은 없습니다. 이번 판은 기록을 정직하게 만드는 일입니다.

  • 내부 검증 2258건 · 화면 기준선 290장. versionCode 696.
v3.28.152026-08-16
봉 모양 설명의 근거를 접어 두었습니다

코인 상세의 「봉 모양」 줄 아래에는 그 모양으로 앞날을 점칠 수 있는지 재 본

결과가 붙어 있습니다. 그 각주가 한 줄에 463자였습니다. 작은 글씨로 그만큼

이어지면 읽히지 않고, 읽히지 않는 근거는 없는 것과 같습니다.

주장과 수치를 갈랐습니다. 늘 보이는 자리에는 결론만 둡니다 — 적중률로는

패턴 없는 봉과 구분되지 않았고, 크기로 재면 남는 차이도 모양이 아니라

「최근에 떨어졌다」가 만든다는 것입니다. 그 판단을 만든 수치는 「자세히 보기」를

누르면 펼쳐집니다. 판정 카드가 이미 쓰던 방식과 같습니다.

지운 것은 없습니다. 수치는 한 글자도 빠지지 않았고, 나눈 뒤 합쳐서 원래

문장과 같은지 기계로 대조했습니다.

  • 내부 검증 2257건 · 화면 기준선 290장. versionCode 695.
v3.28.142026-08-16
문장을 다듬었습니다. 읽는 자리가 달라진 것은 없습니다

이 앱은 화면마다 「재 봤습니다」로 시작하는 설명을 답니다. 그 문장들이 오래

「단언 — 부연」 꼴로 붙어 있었습니다. 눈에 띄지 않지만 읽는 흐름을 끊고, 긴

문장에서는 어디까지가 한 이야기인지 흐려집니다.

다섯 언어를 한 자리씩 전부 읽고 1,282곳을 고쳤습니다. 완결된 문장 뒤면

문장으로 끊고, 「이름 — 설명」 꼴이면 쌍점(:)으로 잇고, 접근성 라벨은 쉼표로

바꿨습니다. 언어마다 문장부호가 다르므로 한국어·영어는 마침표와 쌍점, 일본어는

「。」와 「:」, 중국어는 「。」와 「:」로 각각 그 언어의 관례를 따랐습니다.

이용약관도 격식을 갖춘 문체로 다듬었습니다. 책임의 한계 조항에 「관련 법률이

허용하는 최대 범위 내에서」와 그 예외를 명시했고, 다섯 언어 모두 같은 뜻이

되도록 맞췄습니다.

한국어에서 「실패했어요」처럼 말끝이 다르던 열 곳도 「실패했습니다」로

통일했습니다.

뜻이 바뀐 문장은 없습니다. 숫자와 사실은 한 글자도 건드리지 않았고,

그것을 기계로 대조해 확인했습니다. 앞으로 같은 습관이 다시 들어오지 않도록

검사도 함께 넣었습니다.

  • 내부 검증 2257건 · 화면 기준선 288장. versionCode 694.
v3.28.132026-08-15
직접 넣으신 ETF 키를 이제 암호화해 보관합니다

이 앱의 ETF 순유입 화면은 여러분이 직접 발급받아 넣은 키로만 동작합니다.

그 키를 지금까지는 앱 전용 저장소에 평문으로 두었습니다 — 일반 기기에서는

운영체제가 지켜 주지만, 「키는 소중히 다룬다」는 이 앱의 태도에는 못 미치는

보관이었습니다.

이제 키는 기기의 하드웨어 금고(Android Keystore)에서 만들어진 — **꺼낼 수

없는** — 열쇠로 암호화해 저장합니다. 새 라이브러리 없이 안드로이드가 주는

것만 썼습니다.

기존에 넣어 두신 키는 그대로 동작하고, 다음에 저장하실 때부터 암호화됩니다.

드물게 금고가 고장난 기기에서는 지금까지와 같은 방식으로 동작합니다 — 키가

증발하는 일은 없습니다.

  • 내부 검증 2255건 · 화면 기준선 288장. versionCode 693.
v3.28.122026-08-15
앱이 꺼졌을 때, 무슨 일이 있었는지 알려드릴 수 있게 됐습니다

이 앱은 아무것도 수집하지 않습니다. 그 약속의 대가로, 여러분의 기기에서 앱이

갑자기 꺼져도 저희는 알 방법이 없었습니다 — 문의를 주셔도 「그냥 꺼져요」

이상의 단서가 없어 원인을 찾기 어려웠습니다.

이제 앱이 예기치 않게 꺼지면 **그 순간의 기술 기록(버전·기기 모델·오류 위치)을

이 기기 안에만** 남깁니다. 설정 ▸ 정보에 「마지막 오류 기록」 줄이 생기는데,

기록이 있을 때만 나타납니다. 열어서 복사해 문의에 붙여 주시면 원인을 찾는 데

큰 도움이 됩니다.

분명히 말씀드립니다 — 저절로 전송되는 것은 없습니다. 기록은 기기 안 파일

하나이고, 여러분이 직접 복사해 보내 주시기 전에는 한 바이트도 밖으로 나가지

않습니다. 무수집 약속의 문구는 하나도 바뀌지 않았고, 그 약속을 지키는 검사도

그대로입니다. 원치 않으시면 「지우기」로 없앨 수 있습니다.

  • 내부 검증 2251건 · 화면 기준선 288장. versionCode 692.
v3.28.112026-08-15
다크 테마의 보라색 카드 하나를 금색으로 되돌렸습니다

이 앱의 강조색은 금색 하나입니다. 지난 판에서 연보라로 그려지던 칩 열한 곳을

찾아 고쳤는데, 오늘 다크 테마를 점검하다 열두 번째를 찾았습니다 — 설정의

테마 선택 카드(시스템·라이트·다크)에서 선택된 칸이 보라색이었습니다.

원인은 같은 병의 다른 자리입니다. 색 체계에서 비워 둔 자리는 라이브러리

기본값(보라)이 나오는데, 이 카드가 쓰는 자리가 비어 있었습니다. 이번에 그

자리를 금색으로 채웠고, 같은 자리 네 곳이 두 테마 모두에서 다시는 비지

못하도록 지키는 검사를 심었습니다.

여러분의 화면에서 달라지는 것은 그 카드 하나입니다 — 이제 금색입니다.

  • 내부 검증 2247건 · 화면 기준선 288장. versionCode 691.
v3.28.102026-08-15
「오래된 자료」 안내가 안 뜨던 분들께 뜨게 했습니다

이 앱은 차트 자료를 새로 받지 못하면 보관해 둔 이전 자료라도 보여 주되,

「오래된 자료로 계산했다」는 안내를 함께 답니다 — 옛 자료로 확신 있는

판독을 내놓지 않겠다는 약속입니다.

그런데 그 안내가 일부 설정에서는 영영 뜨지 않았습니다. 자료의 나이를

물을 때 자료를 보관한 칸과 다른 칸을 보고 있었기 때문입니다. 시세

거래소를 빗썸이나 코인베이스로 쓰시는 분들은 처음부터 두 칸이 갈려, 안내가

한 번도 나오지 않는 상태였습니다. 바로 직전 판에서 잡은 결함(원화 차트의

달러 기호)과 같은 무늬라서 — 짝지어야 할 두 값을 서로 다른 곳에서 가져오는

자리를 마저 훑다가 찾았습니다.

이제 자료를 받은 바로 그 칸의 나이를 묻습니다. 같은 실수가 되돌아오지

못하게 지키는 검사도 함께 심었습니다.

  • 내부 검증 2246건 · 화면 기준선 288장. versionCode 690.
v3.28.92026-08-15
원화 차트에 $가 붙던 순간을 없앴습니다

일본어 화면을 점검하다 이더리움 차트에서 이상한 것을 봤습니다 — 값은 분명히

원화(₩3,568,000)인데 축과 고저 표시가 $3,568,000 이라고 적혀 있었습니다.

이더리움이 356만 달러일 리 없지요.

원인은 차트가 「자료」와 「이 자료가 어느 거래소에서 왔는가」를 **서로 다른 두

요청**에서 받아 짝을 맞추고 있었기 때문입니다. 자료는 잠깐 보관해 둔 것(업비트

원화)을 쓰면서, 출처는 그 순간 새로 물었는데 — 마침 업비트가 한 번 응답하지

못하면 예비 거래소(달러)가 답합니다. 그러면 원화 숫자에 달러 기호가 붙습니다.

이제 자료와 출처를 같은 순간에 한 번만 받아 함께 보관합니다. 어긋남이

구조적으로 불가능해졌고, 상세 화면을 열 때마다 나가던 요청 하나도 줄었습니다.

같은 사고가 되돌아오지 못하게 지키는 검사 둘을 함께 심었습니다.

  • 내부 검증 2245건 · 화면 기준선 288장. versionCode 689.
v3.28.82026-08-15
「상위 100%」라는 헛말을 잡았습니다

태블릿에 앱을 올려 보다가 변동성 칸에서 이런 문구를 봤습니다 —

「조용한 국면 · 지난 110봉 중 상위 100%」.

상위 100%는 아무 말도 아닙니다. 전부가 상위 100% 안에 있으니까요. 비트코인의

하루 변동성이 지난 110봉 가운데 가장 낮아지자, 백분위를 그대로 「상위」로 옮겨

적던 계산이 이 헛말을 만들었습니다. 반대 극단이면 「상위 0%」도 나올 수 있었습니다.

이제 자신을 포함한 순위로 말합니다 — 111개 가운데 1등이면 「상위 1%」, 꼴찌면

「하위 1%」. 그리고 조용한 국면은 「하위」로 말합니다. 조용하다면서 상위를

말하는 어색함도 함께 사라졌습니다. 반올림은 올림이라, 실제 자리보다 좁게 말하는

일은 없습니다.

양 끝(0%·100%)이 다시는 화면에 나오지 못하도록 111가지 경우 전부를 훑는 검사를

함께 심었습니다.

  • 내부 검증 2243건 · 화면 기준선 288장. versionCode 688.
v3.28.72026-08-15
「무광고·무추적」을 의존성 수준에서 잠갔습니다

이 앱이 내거는 약속 가운데 「광고 없음 · 수집 없음」이 있습니다. 지금도 사실입니다 —

쓰는 라이브러리 스물한 개가 전부 안드로이드 공식·코틀린 공식·통신 라이브러리이고,

분석·광고 SDK 는 하나도 없습니다.

그런데 이 사실은 코드 한 줄로 조용히 거짓이 될 수 있습니다. 크래시 리포터 하나

붙이는 순간 기기 정보가 제3자로 흐르기 시작하는데, 화면은 아무것도 변하지 않습니다.

이제 라이브러리 목록이 검사로 잠겼습니다. **나쁜 것을 나열하는 방식이 아니라, 지금

쓰는 그룹만 허용하는 방식**입니다 — 새 라이브러리는 무엇이든 검사를 깨뜨리고, 「이게

기기 밖으로 무엇을 보내는가」를 사람이 판단해 근거와 함께 목록에 넣어야 통과합니다.

권한 쪽은 이미 같은 방식으로 잠겨 있었습니다(선언된 권한과 안내 화면·README 의

양방향 대조). 이번에 라이브러리 쪽이 마저 잠기면서, 「화면에 보이지 않는 약속」

여섯이 전부 기계 계약이 됐습니다 — 데이터 안 지움 · 키 안 샘 · 배터리 안 씀 ·

지표값 안 흔들림 · 동의 전 침묵 · 추적 안 함.

여러분의 화면은 달라지지 않습니다.

  • 내부 검증 2237건 · 화면 기준선 288장. versionCode 687.
v3.28.62026-08-15
동의 전 네트워크 금지에서 샛길 하나를 막았습니다

이 앱은 첫 화면의 이용약관에 동의하시기 전에는 어떤 네트워크도 열지 않습니다

시세 폴링도, 실시간 연결도, 업데이트 확인도요. 그 약속을 점검하다 샛길 하나를

찾았습니다.

동의 화면을 띄운 채 홈 버튼으로 나갔다가 돌아오면, **업데이트 확인 요청 하나가 동의

전에** 저희 스토어 서버로 나갈 수 있었습니다. 화면으로 돌아올 때 소켓 재연결은 동의

여부를 확인하는데, 그 옆의 업데이트 확인만 확인을 빠뜨리고 있었습니다.

아주 좁은 길이고 나가는 곳도 저희 서버 하나지만, 약속은 약속입니다. 이제 업데이트

확인 함수가 스스로 동의 여부를 봅니다 — 부르는 자리마다 챙기는 방식은 한 자리가

빠지는 순간 무너진다는 것을 이번에 배웠으니까요.

동의 관문의 구조 세 가지(데이터 흐름은 동의 뒤에만 시작 · 업데이트 확인의 자체 관문 ·

소켓 재연결의 관문)를 검사로 못 박았습니다.

  • 내부 검증 2235건 · 화면 기준선 288장. versionCode 686.
v3.28.52026-08-15
「뒤로 가면 조용하다」는 약속을 검사로 묶었습니다

이 앱은 화면이 보일 때만 일합니다. 홈으로 나가는 순간 —

  • 60초 시세 폴링이 멈추고(대기 상태로),
  • 실시간 시세 연결이 끊기고,
  • 틱 반영 타이머도 돌지 않습니다. 여러분의 배터리와 데이터를 몰래 쓰지 않는다는, 화면에는 절대 보이지 않는 약속입니다. 확인해 보니 구현은 이미 완벽했습니다 — 첫 사용 동의 전에는 네트워크를 아예 열지 않는 것까지요. 문제는 이 약속을 지키는 장치가 없었다는 것입니다. 관문은 코드 한 줄이라, 손보다 빠뜨려도 컴파일되고 화면은 그대로고 어떤 검사도 달라지지 않습니다 — 여러분의 배터리 통계에서만 드러납니다. 이제 네 가지가 검사로 묶였습니다: 모든 반복 고리가 전면 관문을 지나는지, 뒤로 가는 즉시 연결을 끊는지, 그리고 그 신호를 화면 쪽이 실제로 보내는지(들어올 때·나갈 때). 관문 한 줄을 지워 보면 검사가 「배터리·데이터를 몰래 쓴다 — 화면엔 절대 안 보인다」는 문구와 함께 정확히 실패합니다. 여러분의 화면은 달라지지 않습니다 — 원래도 조용했고, 이제 계속 조용하게 묶였습니다.
  • 내부 검증 2232건 · 화면 기준선 288장. versionCode 685.
v3.28.42026-08-15
스퀴즈·OBV까지 — 지표 관례 감사를 끝냈습니다

이틀에 걸친 지표 계산 관례 감사의 마지막 판입니다.

스퀴즈 모멘텀은 LazyBear 원전 그대로임을 확인해 값으로 박았습니다 — 모멘텀

기준선(고저 중앙과 이동평균의 평균), 켈트너 채널(참범위의 단순평균 배수), 발동

조건(볼린저가 켈트너 안으로) 전부요. 검사 자료는 일부러 발동이 참인 상태로

만들었습니다 — 꺼진 상태만 지키면 발동 판정식이 통째로 바뀌어도 모르니까요.

OBV는 시작 0, 종가가 오르면 +거래량, 내리면 −거래량, 같으면 0 — 같음을

상승으로 세지 않는 것까지 계약입니다.

이로써 판정에 표를 주는 지표 전부(RSI·볼린저·이동평균·MACD·ADX·스토캐스틱·스퀴즈·

OBV)가 관례 황금값으로 묶였습니다. VWAP 하나는 일부러 다릅니다 — 증권사 VWAP 과

기준이 다르다는 것을 화면이 이미 밝히고 있고, 그 정직한 문구가 곧 계약입니다.

여러분의 화면은 달라지지 않습니다.

  • 내부 검증 2228건 · 화면 기준선 288장. versionCode 684.
v3.28.32026-08-15
ADX·스토캐스틱까지 값을 못 박았습니다

앞 판에서 RSI·볼린저·이동평균의 계산 관례를 값으로 못 박았습니다. 이번엔 남은 둘 —

ADX 와 스토캐스틱 — 을 같은 방식으로 묶었습니다.

ADX 는 지표 가운데 구현이 가장 자주 갈리는 자리입니다. 참범위·방향이동의 평활을

네 단계로 쌓는데, 단계마다 다른 방식을 쓰는 구현들이 흔합니다. 저희 구현은 와일더

원전 그대로이고 트레이딩뷰와 같은 결과를 냅니다 — 확인을 위해 같은 공식을 저희 앱과

무관하게 따로 구현해 40봉 고정 자료에서 소수점 다섯 자리까지 일치하는 것을 봤습니다.

스토캐스틱(14,3,3)도 %K·%D 둘 다 단순이동평균 평활 — 트레이딩뷰 기본과 같습니다.

앞 판과 결이 조금 다른 점은 정직하게 밝혀 둡니다. RSI 는 교과서에 공표된 값(70.53)에

앵커했지만, ADX 는 손에 있는 공표 예제가 없어 독립 구현 두 개의 일치를 앵커로

삼았습니다. 관례가 바뀌면 잡아내기에는 충분하고, 그 이상을 주장하지 않습니다.

자료가 모자랄 때 지어내지 않는 것도 함께 계약이 됐습니다 — ADX 는 29봉 미만이면

값을 내지 않습니다.

여러분의 화면은 달라지지 않습니다 — 원래도 맞았고, 이제 계속 맞게 묶였습니다.

  • 내부 검증 2226건 · 화면 기준선 288장. versionCode 683.
v3.28.22026-08-15
지표 숫자가 트레이딩뷰와 같도록 값 자체를 못 박았습니다

RSI·볼린저 밴드·이동평균(EMA)은 계산 관례가 여러 가지입니다. 어느 쪽도 틀린 건

아니지만, 여러분이 값을 견주는 곳 — 트레이딩뷰나 거래소 차트 — 과 다르면 **앱이

틀려 보입니다.**

확인해 보니 저희 구현은 셋 다 트레이딩뷰와 같은 관례였습니다.

  • RSI: 와일더 평활 (단순평균 방식 아님)
  • 볼린저 표준편차: 모집단(÷n) — 트레이딩뷰 `ta.stdev` 와 동일
  • EMA 시작값: 첫 값 (TA-lib 의 SMA 시작과 다름) 문제는 이 관례를 지키는 장치가 없었다는 것입니다. 기존 검사는 성질만 봐서(평탄한 구간이면 RSI 50, 같은), 누가 표준편차를 「수학적으로 더 옳다」며 ÷(n−1)로 바꿔도 모든 검사가 통과한 채 모든 사용자의 밴드가 조용히 이동합니다. 이제 값 자체를 박아 두었습니다. 기준값은 와일더 RSI 의 표준 교재 예제(공표된 첫 RSI = 70.53)를 저희와 무관한 참조 계산으로 재현해 확인한 뒤 뽑았습니다 — 저희 코드로 저희 코드를 검사하는 순환이 아닙니다. 실제로 표준편차를 ÷(n−1)로 바꿔 보면 검사가 예측값(47.68531)과 함께 정확히 실패합니다. 여러분의 화면은 달라지지 않습니다 — 원래도 맞았고, 이제 계속 맞게 묶였습니다.
  • 내부 검증 2224건 · 화면 기준선 288장. versionCode 682.
v3.28.12026-08-15
오래전에 설치하신 분들의 「담기」가 조용히 죽어 있었습니다

뉴스에는 별을 눌러 기사를 담아 두는 기능이 있습니다(작년 말 v2.96.0에 추가).

그 저장 공간을 만드는 코드가 새로 설치할 때와 판올림할 때만 도는 구조였는데,

추가 당시 판올림 신호를 켜지 않았습니다.

결과: v2.96.0 이전에 설치하신 분들은 그 공간이 영영 만들어지지 않았습니다.

오류 방어 덕에 죽지도 않아서 — 별을 눌러도 아무 일이 없고, 담은 목록은 늘 비어

있었습니다. 사람이 «나중에 다시 보려고» 직접 담은 것이 소리 없이 버려지는,

이 앱에서 가장 나쁜 종류의 실패입니다. 새로 설치하면 멀쩡하니 저희 시험은 전부

통과하고 있었고요.

앱을 열 때마다 스스로 고칩니다

이제 저장 공간 확인·생성을 앱을 열 때마다 합니다. 이미 있으면 아무 일도 하지

않아 비용이 없고, 없던 기기(위 사고의 피해 기기)는 **이번 업데이트를 여는 순간

고쳐집니다.** 담아 두셨던 것이 되살아나는 것은 아니지만 — 애초에 저장되지 못했으니

되살릴 것이 없습니다 — 오늘부터 담는 것은 온전히 남습니다.

판올림 신호로 고치는 방법도 있었지만 쓰지 않았습니다. 그러면 멀쩡한 시세 캐시까지

불필요하게 지워지고, 무엇보다 다음에 또 잊을 수 있습니다. 열 때마다 확인하는

구조는 잊는 것 자체가 불가능합니다.

같은 사고의 두 갈래를 검사로 막았습니다
  • 보존해야 하는 공간을 더하면서 «열 때 확인» 목록에 안 넣으면 → 실패
  • 캐시 공간을 더하면서 판올림 폐기 목록에 안 넣으면 → 실패(이건 다음 판올림에서 DB 가 통째로 못 열리는 사고가 됩니다) 두 실패 모두 새 설치에서는 절대 재현되지 않아서 그림·기기 시험이 못 잡습니다. 그래서 소스 규칙으로 못 박았습니다.
  • 내부 검증 2219건 · 화면 기준선 288장. versionCode 681.
v3.28.02026-08-15
넣으신 뉴스 주소가 진짜 피드인지 바로 알려드립니다

뉴스 출처에는 직접 주소를 넣는 칸이 있습니다. 형식이 틀리면 그 자리에서 빨갛게

알려드리는데, 한 가지가 빠져 있었습니다 — 형식은 맞지만 피드가 아닌 주소입니다.

흔한 실수가 정확히 이것입니다. 피드 주소(`…/rss`) 대신 사이트 홈 주소를 붙여

넣는 것이요. 지금까지는 그런 주소가 목록에 얌전히 앉아서 영원히 기사 0건이었고,

「원래 이 매체가 조용한가?」와 구분할 방법이 없었습니다. 얼마 전 ETF 키에서 고친

「저장했는데 아무 일도 안 일어남」과 같은 자리입니다.

이제 추가하시면 실제로 한 번 받아 보고 바로 말씀드립니다.

  • 기사 12건이 읽혔습니다. — 실제로 읽힌 수를 그대로 적습니다.
  • 주소는 열리지만 RSS로 읽히지 않습니다 — 피드 주소는 대개 끝에 /rss 나 /feed 가 붙습니다. 일단 넣어 두었습니다.
  • 받아 오지 못했습니다 — 주소가 잘못됐거나 연결 문제일 수 있습니다. 일단 넣어 두었습니다.
셋째 줄이 조심스러운 이유

저희 통신 계층은 「주소가 없다(404)」와 「연결이 안 된다」를 구분하지 못합니다.

모르는 것을 「주소가 틀렸습니다」라고 단정하면, 비행기 모드에서 넣으신 멀쩡한 주소를

지우게 만듭니다. ETF 키에서 호출 제한을 「키가 틀렸다」로 말하지 않기로 했던 것과

같은 원칙입니다 — 확실한 것만 확실하다고 말합니다.

그리고 이 확인은 문지기가 아닙니다. 어느 판정이든 주소는 이미 목록에 들어가

있습니다. 일시 장애로 멀쩡한 주소를 퇴짜 놓는 문지기가 최악이니까요.

  • 내부 검증 2215건 · 화면 기준선 288장. versionCode 680.
v3.27.52026-08-15
큰 글씨에서 「새로 고침」이 점 하나가 되던 것

탐색(급등락) 화면 오른쪽 위에는 「↻ 42초 전」 — 언제 받은 목록인지와, 누르면

다시 받는 단추가 있습니다.

글씨를 크게 쓰시는 분의 좁은 화면에서는 급등·급락·거래량 칩 셋이 그 줄의 폭을 먼저

다 가져갑니다. 남는 폭이 없어지자 그 라벨이 점 하나로 잘렸습니다. 누르는 영역

자체는 규칙대로 남아 있었지만, 무엇을 누르는지가 사라진 셈입니다 — 얼마 전

일본어에서 「자세히」 표시가 밀려났던 것과 같은 모양입니다.

이제 큰 글씨에서는 그 라벨이 칩 아래 줄로 내려옵니다. 온전히 읽히고, 온전히

눌립니다. 보통 글씨에서는 지금까지와 똑같습니다.

칩 줄 안에 두는 판과 아래 줄로 내리는 판이 같은 조각을 씁니다 — 두 벌로 적어

두면 한쪽만 고쳐지는 일을 저희가 여러 번 겪었거든요.

  • 내부 검증 2212건 · 화면 기준선 288장. versionCode 679.
v3.27.42026-08-15
저희 기록이 세상보다 뒤처져 있었습니다

앞 판에서 세금 문구가 낡아 있던 것을 고치면서, 같은 성질의 자리가 또 있나 하고

훑었습니다. 앱이 바깥 세상에 대해 단정하는 것들이요.

  • 비트코인 반감기·하루 발행량 → 프로토콜 규칙이라 낡지 않습니다(지금 450개).
  • 채굴기 효율·전기단가 → 가정이고, 화면에 밝히고 직접 바꾸실 수 있습니다.
  • 현물 ETF 가 있는 코인 목록 → 여기가 낡아 있었습니다. 저희는 이 목록을 「확인된 것」과 「아직 확인 못 한 것」으로 갈라 두고 있습니다. 다시 확인해 보니 도지코인과 헤데라가 이미 상장해 있었습니다 — 그레이스케일이 DOGE를 11월 24일에, 캐너리가 첫 HBAR 현물을 10월 28일에요. 기능은 원래도 정상이었습니다. 두 코인은 「아직 확인 못 한 것」 칸에 있었고, 저희는 그 칸도 함께 부르거든요(모르면 넣는 쪽이 맞습니다 — 없는 코인을 부르면 헛된 호출 한 번이지만, 있는 코인을 빼면 그 코인에서 기능이 통째로 사라지니까요). 낡았던 것은 저희 기록입니다. 그래도 고칩니다 — 다음에 이 목록을 손볼 사람이 믿을 수 있어야 하니까요.
앞으로 더 자주 바뀝니다

SEC가 보편 상장 기준과 신속 승인을 도입하면서 심사가 240일에서 20일까지 줄었습니다.

그래서 이 칸은 앞으로도 자주 움직입니다. 고칠 때는 날짜와 함께 적으라고 코드에

남겨 두었습니다 — 언제 확인했는지가 없으면 다음 사람이 다시 셀 수도, 믿을 수도

없으니까요.

  • 내부 검증 2212건 · 화면 기준선 288장. versionCode 678.
v3.27.32026-08-15
세금 계산기가 아는 것을 말하지 않고 있었습니다

계산기 도구에는 「한국 양도소득세 간이 계산」이 있습니다. 아래 문구가 이랬습니다.

> 한국 기준 · 기본공제 250만원 · 세율 22% 가정(추정치). **시행 시기와 세부 규정은

> 확인하세요.**

수치는 맞습니다. 다시 확인했습니다 — 기본공제 연 250만원, 초과분에 국세 20%,

지방소득세를 더해 22%.

문제는 마지막 문장입니다. **「시행 시기를 확인하세요」라고만 하고, 저희가 아는 것을

말하지 않았습니다. 이 세금은 2027년 1월 1일 시행 예정**입니다 — 2022년에서

2023년, 2025년으로 미뤄지다 2024년 12월 개정으로 2년 더 유예됐습니다.

그러니 지금(2026년) 손익에는 적용되지 않습니다. 계산기를 열어 올해 수익을 넣어

보신 분은 내지 않아도 될 세금을 계산하고 계셨던 셈입니다.

이제 이렇게 말합니다.

> 한국 기준 · 기본공제 250만원 · 국세 20%+지방세 = 22%. 2027년 1월 1일 시행 예정이라

> 그 전 손익에는 적용되지 않습니다(2024년 12월 개정으로 2년 유예). 국회에서 공제

> 한도·시기가 더 바뀔 수 있으니 신고 전에는 국세청 안내를 확인하세요.

이 자리는 저희가 모르는 사이에 틀려집니다

법이 바뀌면 앱은 알 방법이 없습니다. 그래서 언제 무엇을 보고 이렇게 적었는지

코드에 남겼고, 문구의 숫자가 계산의 숫자와 어긋나면 실패하는 검사를 두었습니다 —

다섯 언어 전부를 봅니다. 한 언어만 낡는 것이 가장 잘 일어나는 일이니까요.

  • 내부 검증 2212건 · 화면 기준선 288장. versionCode 677.
v3.27.22026-08-15
없는 손익을 말하고 있었습니다

포트폴리오를 처음 열면 이렇게 나왔습니다.

평가액 ₩0

손익 0.00% (₩0)

매수금액 ₩0

아직 아무것도 넣지 않으셨는데 「본전입니다」라고 말하는 셈입니다. 바로 아래에

「보유 코인을 추가해 손익을 확인하세요」라고 이미 안내하고 있는데도요.

보유가 하나도 없으면 손익·매수금액 줄을 그리지 않습니다.

고치다가 더 이상한 것을 찾았습니다

에어드랍처럼 산 적 없이 받은 코인을 원가 0으로 적어 두실 수 있습니다. 그때 화면이

이랬습니다.

손익 0.00% (+₩4,812,000)

481만 원을 벌었는데 비율은 0%라고 말합니다. 0으로 나눌 수 없으니 계산 쪽에서 0을

돌려주도록 해 둔 것인데, 그건 「나눌 수 없다」는 뜻이지 「본전」이라는 뜻이 아닙니다.

화면이 그 방어값을 그대로 그리면서 주장이 되어 버렸습니다.

손익 — (+₩4,812,000)

금액은 압니다. 비율은 모릅니다. 아는 것만 말합니다.

이 두 경우가 서로 다르다는 것을 화면 그림 두 장으로 못 박아 두었습니다 — 보유가

없을 때는 손익 줄이 아예 없고, 원가가 0일 때는 금액이 나옵니다(그건 실제로 기록된

사실이고, 여기서 숨기면 그분의 자산이 화면에서 사라집니다).

  • 내부 검증 2211건 · 화면 기준선 288장. versionCode 676.
v3.27.12026-08-15
키를 저장했는데 아무 일도 안 일어나던 것

현물 ETF 순유입은 키가 없거나 틀리면 그 화면이 조용히 안 나옵니다. 평소에는

그게 맞습니다 — 남의 서버 오류 코드를 보여 드릴 이유가 없으니까요.

그런데 방금 키를 저장한 분께는 최악입니다. 아무 일도 안 일어나니 무엇이 잘못됐는지

알 수 없고, 「키가 틀렸나」·「이 코인엔 ETF 가 없나」·「인터넷이 안 되나」도 구분되지

않습니다. 고칠 방법을 알 수 없습니다.

이제 저장하실 때 한 번만 확인하고 결과를 말씀드립니다.

  • 이 키로 받아집니다.
  • 이 키로는 받지 못했습니다 — 발급처에서 다시 확인해 주세요.
  • 지금은 확인하지 못했습니다 — 연결 문제일 수 있습니다. 키는 그대로 두었습니다.
셋째 줄이 이 변경의 핵심입니다

처음 만들 때는 「거절당한 응답」을 넓게 잡았습니다. 그런데 그 안에는 호출 제한

같은 «잠깐 기다리면 되는» 상태가 섞여 있습니다. 그걸 「이 키로는 안 됩니다」로

말하면 어떻게 될까요 — 멀쩡한 키를 지우고 다시 발급받으십니다. 되돌릴 수 없는

쪽으로 사람을 미는 셈입니다.

그래서 「키가 틀렸다」는 서버가 정확히 그렇게 말했을 때만 합니다. 나머지는 전부

「지금은 모르겠습니다」이고, 그때 여러분은 아무것도 안 하셔도 됩니다.

기기에서 돌려 보고 둘을 더 고쳤습니다

엉터리 키를 넣어 보고, 지우고, 다시 저장해 봤습니다.

  • 칸을 비우고 저장했더니 「이 키로는 받지 못했습니다」가 떴습니다. 비우는 것은 실패가 아니라 끄는 것입니다 — 바로 위 안내문도 「비워 두면 그 화면은 아예 나오지 않습니다」라고 말하고 있고요. 이제 아무 말도 하지 않고, 남의 서버에 묻지도 않습니다.
  • 키를 지웠는데 앞 결과 문구가 그대로 남아 있었습니다. 칸에 없는 키에 대한 말입니다. 글자를 고치면 지웁니다.
  • 내부 검증 2211건 · 화면 기준선 286장. versionCode 675.
v3.27.02026-08-15
넣으신 키를 가려서 받습니다

현물 ETF 순유입은 여러분이 직접 발급받은 키로만 돕니다. 앱은 키를 주지도, 갖고

있지도 않습니다. 그런데 정작 받는 자리를 다시 보니 손볼 곳이 있었습니다.

키 입력칸이 평범한 글자 칸이었습니다. 두 갈래로 샙니다.

1. 화면에 그대로 남습니다 — 어깨너머, 최근 앱 미리보기, 화면 캡처.

2. 키보드가 배웁니다. 일반 글자 칸에 붙여 넣으면 입력기가 그 문자열을 개인 사전이나

클립보드 이력에 담을 수 있습니다. 이건 앱이 지운다고 지워지지 않습니다.

이제 가려서 받고, 비밀번호 입력 방식으로 처리합니다(둘째를 막는 것은 이쪽입니다).

붙여 넣은 것이 맞는지 확인하실 수 있도록 눈 단추를 함께 두었습니다 — 확인할 수

없으면 지웠다 다시 붙이기를 반복하게 되니까요.

키가 새는 다른 길들도 다시 훑었습니다
  • 앱 전체에 로그를 남기는 호출이 하나도 없습니다. 키가 로그로 샐 길이 없습니다.
  • 키는 주소가 아니라 헤더로 보냅니다 — 주소는 곳곳에 기록되지만 헤더는 아닙니다.
  • 저장해 두는 응답의 이름에도 키가 섞이지 않습니다. 앞의 둘은 원래 그랬고, 셋째는 그렇게 하기로 한 이유까지 코드에 적혀 있었습니다. 이번에 고친 것은 받는 자리 하나입니다.
  • 내부 검증 2209건 · 화면 기준선 286장. versionCode 674.
v3.26.72026-08-15
「시총 24h −0.6% ―」를 보고 갸웃했습니다

시장 맥박 카드의 신호 칩입니다. 숫자는 내려갔는데 옆의 표시는 「―」(보합) 였습니다.

보합으로 치는 폭은 ±0.05%인데요.

찾아보니 틀린 게 아니었습니다. 그 세모는 그 숫자가 오르내린 방향이 아니라,

이 신호가 「위험 선호」와 「위험 회피」 중 어느 쪽에 표를 줬는지를 뜻합니다.

시총은 ±1%가 경계라 −0.6%는 어느 쪽도 아니고, VIX 는 값이 낮을수록 ▲ 입니다.

규칙은 일관됩니다. 다만 **숫자 옆에 붙은 세모를 그 숫자의 방향으로 읽는 것이

자연스럽습니다.** 저희도 기기에서 보고 한 번 갸웃했습니다.

세모가 말하지 못하던 것을 말로 적었습니다

화면은 그대로입니다. 대신 칩 하나를 통째로 읽어 주도록 했습니다.

  • 심리 29 위험 회피
  • 시총 24h −0.6% 중립
  • VIX 14.3 위험 선호 특히 VIX 는 값이 낮을수록 위험 선호라는 뒤집힌 관계가 세모만으로는 절대 드러나지 않았습니다. 이제 말로 나옵니다. 세모 자체는 장식으로 표시했습니다 — 그러지 않으면 화면 읽기 프로그램이 「위쪽을 가리키는 삼각형」 같은 소리를 냅니다.
  • 내부 검증 2209건 · 화면 기준선 286장. versionCode 673.
v3.26.62026-08-15
일본어에서 「자세히」 표시가 사라지고 있었습니다

저희 앱은 다섯 언어로 나갑니다. 그런데 화면 그림 284장의 언어 분포를 세어 보니 —

| 언어 | 그림 |

|---|---|

| 한국어 | 239장 |

| 영어 | 33장 |

| 일본어 | 7장 |

| 중국어(간체) | 3장 |

| 중국어(번체) | 2장 |

어느 언어가 위험한지 감이 아니라 수로 골랐습니다. 짧은 라벨들을 언어별 폭으로 재

보니(한자·가나는 글자당 두 배로 셈), 일본어가 가장 크게 부푸는 두 자리가 나왔습니다 —

「지금 이 차트는」이 2.14배, 「피보나치 되돌림」이 2.00배.

두 자리 모두 가장 좁은 폭(320)에서는 영어만 시험되고 있었습니다. 가장 넓어지는

언어를 가장 좁은 폭에서 보지 않고 있었던 셈입니다. 두 장을 세웠습니다.

세우자마자 하나 나왔습니다

지표 제목 옆에는 「자세히 보기」를 뜻하는 표시가 붙습니다. 일본어 320에서

제목이 두 줄을 가득 채우자, 그 ⓘ 가 밀려나 사라졌습니다.

줄 전체는 여전히 눌립니다. 그러니 동작은 남고 「누를 수 있다」는 신호만 사라진

것입니다 — 처음 보시는 분께 열어 보라고 만든 자리인데, 그 표시가 이 조각의 전부입니다.

제목이 폭을 다 가져가지 못하게 고쳤습니다. 며칠 전 이름과 값이 붙어 있던 줄에서

쓴 것과 같은 처방입니다.

  • 내부 검증 2209건 · 화면 기준선 286장. versionCode 672.
v3.26.52026-08-15
화면은 「0.00%」인데 음성만 「+0.00%」였습니다

저희에게는 오래된 규칙이 하나 있습니다 — 0에는 «+» 를 붙이지 않는다. 예전에 같은

0이 화면마다 「0.00%」와 「+0.00%」로 갈렸던 적이 있어서(일곱 곳이었습니다), 부호를

만드는 자리를 한 곳으로 모으고 검사까지 붙여 두었습니다.

그런데 그 검사는 철자 하나만 봅니다 — 「0보다 크면 + 를 붙인다」라고 손으로 적은

모양이요. 같은 일을 하는 다른 철자가 있었습니다. 숫자 서식에 `+` 한 글자를 넣으면

부호가 붙는데, 그 방식은 0에도 붙입니다.

네 곳이 그 상태였습니다.

  • 코인 비교가격 차트스크린리더 설명 — 화면은 「0.00%」로 그리는데 음성만 「+0.00%」로 읽고 있었습니다. 색을 못 보시는 분만 다른 값을 듣던 셈입니다.
  • MACD 값
  • 급등락 알림의 본문 — 앱 밖에서 읽히는 글이라 가장 나쁜 자리였습니다. 넷 다 그 한 곳을 쓰게 고쳤고, 검사가 이 철자도 잡게 넓혔습니다.
하나 더 — 0을 「상승」이라고 읽고 있었습니다

가격 차트 설명에서 방향을 「0 이상이면 상승」으로 고르고 있었습니다. 화면은 ±0.05%를

보합으로 치는데, 음성만 그 구간을 「상승」이라고 말했습니다. 저희 코드에는 방향을

말로 옮기는 자리가 이미 있고(보합 포함), 거기 주석에는 **「색은 상승인데 읽어 주는

말은 보합이면 색을 못 보는 사람만 틀린 정보를 받는다」**고 적혀 있었습니다. 정작

이 자리가 그 반대로 어긋나 있었습니다.

  • 내부 검증 2209건 · 화면 기준선 284장. versionCode 671.
v3.26.42026-08-15
눈에는 제목인데 스크린리더에는 없던 자리 셋

화면을 눈으로 보지 않는 분들은 제목으로 건너뛰며 훑습니다. 그러려면 글자가 굵고

큰 것만으로는 안 되고, 「이건 제목이다」라는 표시가 붙어 있어야 합니다.

저희 섹션 제목 열일곱 곳 가운데 셋이 그 표시 없이 있었습니다.

  • 홈의 뉴스 카드(두 가지 모양)
  • 코인 상세의 코인 비교 섹션 눈으로는 완벽히 제목처럼 보입니다. 그래서 화면 그림으로는 절대 안 잡히고, 저희 접근성 점검도 못 잡았습니다 — 그 점검은 누를 수 있는데 이름이 없는 것을 세거든요. 제목은 누르는 것이 아니라 대상이 아니었고, 그래서 네 화면에서 「말 없는 조작 요소 0개」를 계속 받아 왔습니다. 통과했다가 검사했다를 뜻하지 않는 자리였습니다. 셋 다 붙였고, 새 섹션이 그 표시 없이 들어오면 실패하는 검사를 두었습니다.
검사를 만들면서 저희가 자주 밟는 함정을 또 밟았습니다

처음 만든 검사가 멀쩡한 두 곳을 위반이라고 잡았습니다. 「문자열부터 15pt 크기까지」를

한 덩어리로 본 탓에, 작은 라벨에서 시작해 바로 옆 큰 숫자의 크기까지 넘어가 읽었기

때문입니다. 저희가 다른 검사에서 여섯 번 놓쳤던 것과 같은 사각지대입니다.

덩어리를 먼저 정확히 자르고 그 안에서만 보도록 고쳤습니다.

  • 내부 검증 2208건 · 화면 기준선 284장. versionCode 670.
v3.26.32026-08-15
같은 기사의 나이를 두 화면이 다르게 부르고 있었습니다

앞 판에서 「이 코인 뉴스」에 번역 칩을 붙이면서, 그 줄을 다시 읽다가 찾았습니다.

  • 뉴스 화면: 「17분 전」 · 「2시간 전」
  • 이 코인 뉴스: 「17분」 · 「2시간」 같은 기사의 같은 나이입니다. 게다가 「2시간」은 *지난* 시간이 아니라 기간으로도 읽힙니다. 뉴스 화면 쪽으로 맞췄습니다.
더 조용한 문제가 하나 딸려 있었습니다

앞 판에서 칩이 들어갈 폭을 잴 때, 뉴스 화면이 쓰던 재기 함수를 그대로 가져왔습니다.

그 함수는 「17분 전」의 폭을 잽니다. 그런데 화면은 「17분」을 그리고 있었습니다 —

재는 것과 그리는 것이 달랐습니다.

재는 쪽이 더 길어서 칩이 조금 일찍 아래로 내려가는 정도였고, 그래서 그림으로는

티가 나지 않았습니다. 두 화면이 같은 함수를 쓰게 되면서 이것도 함께 풀렸습니다.

앞으로 갈리지 않도록 검사를 붙였습니다.

  • 내부 검증 2209건 · 화면 기준선 284장. versionCode 669.
v3.26.22026-08-15
같은 기사인데 한쪽만 도와주고 있었습니다

코인을 누르면 나오는 「이 코인 뉴스」는 지금 싣는 매체가 전부 외국이라 제목이

영어입니다. 뉴스 화면에서는 그걸 알고 「번역해서 보기」 칩을 띄우는데, **이

목록에만 그게 없었습니다.** 같은 기사를 같은 분이 보는데 한쪽에서만 도와주고

있었던 셈입니다.

이제 두 곳이 같습니다. 칩은 앱 언어와 매체 언어가 다를 때만 나옵니다 — 한국어

매체를 다시 싣게 되면 그 줄에는 저절로 안 붙습니다.

좁은 화면에서는 출처 아래로 칩을 내립니다. 뉴스 화면이 쓰던 폭 재기를 그대로

쓰되, 이 목록에는 별표 버튼이 없어 남는 폭이 달라서 여기서 다시 잽니다.

  • 내부 검증 2208건 · 화면 기준선 284장. versionCode 668.
v3.26.12026-08-15
미국 프리미엄에 «어디서 와서 어디로» 를 더했습니다

미국 프리미엄은 지금까지 숫자 하나와 순위뿐이었습니다. 그것만으로는 「지금이

높다」까지만 말합니다. 정작 궁금한 것은 대개 **방금까지 오르던 중인가 내리던

중인가**인데요.

이제 최근 추이 선을 함께 그립니다.

새로 받아 오는 자료가 없습니다

순위를 내려면 몇 백 일치를 계산해야 합니다. 저희는 그걸 다 해 놓고 **마지막 하나만

쓰고 버리고 있었습니다. 그 끝자락을 함께 들고 오는 것뿐이라, 요청이 하나도 늘지

않습니다.**

날 수도 단정하지 않습니다 — 실제로 그린 점만큼 적습니다. 어제 붙인 검사가 지키는

바로 그 규칙입니다.

선 색을 한 번 잘못 골랐습니다

처음엔 등락색을 정하는 기존 함수를 그대로 썼습니다. 그런데 그 함수는 **±0.05%를

보합으로** 칩니다 — 가격 등락률에 맞춘 폭이니까요. 미국 프리미엄은 3년 2개월 전체

폭이 0.11%p 라, 어떤 움직임도 그 보합대 안에 들어갑니다. 오르막 선이 회색으로

그려졌습니다.

그림을 보고 알았고, 저희 앱이 시가총액 추이에서 이미 쓰던 방식(보합대 없이 시작

대비 끝)으로 바꿨습니다. 지금은 오르면 빨강, 내리면 파랑입니다.

  • 내부 검증 2208건 · 화면 기준선 284장. versionCode 667.
v3.26.02026-08-15
「본 만큼만 말한다」를 사람 대신 검사가 지킵니다

저희 작업 지침에는 규칙이 열 줄쯤 있고, 그 아래에 이렇게 적혀 있었습니다.

> 검사가 없는 규칙 하나 — 기계로 못 잡으니 사람이 지켜야 한다:

> 실제로 본 만큼만 말한다. 「최근 60봉 범위」·「최근 2년」처럼 단정하지 않는다.

사람이 지켜야 하는 규칙은 결국 안 지켜집니다. 오늘 두 자리를 찾았습니다.

「최근 30일」이라고 써 놓고 열몇 개를 그리고 있었습니다

공포·탐욕 카드의 그림 제목입니다. 저희는 제공처에 30일을 달라고 하지만, 그림을

그리는 조건은 「3개 이상」 입니다. 응답이 짧거나 몇 개가 빠지면 열몇 개를 그려

놓고 「최근 30일」이라고 부릅니다.

도미넌스 화면의 「BTC 시가총액 추이 (90일)」 도 같았습니다. 그리는 조건은

「2개 이상」 입니다.

둘 다 값은 맞고 이름만 틀린 자리입니다. 나란히 세어 보기 전에는 눈에 띄지

않습니다. 이제 둘 다 실제로 그린 개수를 적습니다.

고치고 나서 저희 화면 그림들을 다시 찍었더니, 공포지수 카드의 시험용 그림이

점 열 개를 그려 놓고 「최근 30일」이라고 적고 있었습니다. 그 그림은 회귀를

막으라고 있는 것인데, 처음부터 그렇게 찍혀 있어서 아무 말도 하지 않았습니다.

지금은 「최근 10일」이라고 나옵니다.

채굴 설정의 안내도 「최근 730일 중 몇 %」라고 단정하고 있었는데, 정작 순위 줄은

본 만큼을 적습니다. 안내에서 숫자를 뺐습니다.

그리고 그 규칙에 검사를 붙였습니다

규칙 전체를 기계로 잡을 수는 없습니다. 그런데 **그 규칙이 든 예시들은 어법이

하나**였습니다 — 「최근 N…」·「지난 N…」. 그 어법을 쓰는 문구는 셋 중 하나여야 합니다.

1. 실제로 센 수를 받는다 — 이게 기본입니다.

2. 코드 상수에서 온다 — 그러면 단정해도 참이지만, 상수를 바꾸면 문구만 남으므로

값이 같은지 대조합니다.

3. 이미 끝난 측정의 서술이다 — 「지난 20봉이 평균 +29%였습니다」처럼요.

어디에도 없는 새 문구가 생기면 검사가 실패하고, 무엇을 골라야 하는지 알려 줍니다.

정직하게 적자면 이 검사가 규칙을 대신하지는 못합니다. 「최근/지난」을 쓰지 않는

단정(「60봉 범위」)이나 수가 아닌 단정(「대개」)은 여전히 사람 몫입니다. 그렇게

작업 지침에 적어 두었습니다.

  • 내부 검증 2208건 · 화면 기준선 283장. versionCode 666.
v3.25.52026-08-15
「신뢰」 화면이 사실과 어긋난 목록을 적고 있었습니다

시세 카드의 초록 점을 누르면 나오는 신뢰·투명성 시트에 데이터 출처 목록이

있습니다. 그 목록이 —

  • 그 사이 들어온 채산성(mempool.space)과 현물 ETF(SoSoValue)를 빠뜨리고 있었고,
  • 「코인베이스(USDT)」라고 적고 있었습니다. 코인베이스는 달러(USD) 시장입니다. 바로 그 «코인베이스 USD 대 바이낸스 USDT» 차이로 미국 프리미엄을 계산하는데요. 「신뢰」라는 이름의 화면이 사실과 어긋난 목록을 다섯 언어로 적고 있었던 셈입니다.
목록을 손으로 적는 자리를 없앴습니다

저희에게는 이미 제대로 된 목록이 있습니다. 설정 ▸ 데이터 출처 페이지는 거래소를

코드에서 끌어오기 때문에 낡을 수가 없고, 검사도 붙어 있습니다. 문제는 신뢰 시트가

그것과 별개로 자기 사본을 손으로 들고 있었다는 것입니다.

사본을 지우고 그 목록을 그대로 쓰게 했습니다. 남은 문구는 셀 수 없는 것

말합니다 — 저희 서버가 없다는 것, 업비트만 지속 연결이라는 것.

문자열 리소스에 출처 목록이 다시 생기면 실패하는 검사도 붙였습니다. 다만 **하나

짚는 것은 잡지 않습니다** — 「업비트만 실시간 WebSocket 입니다」는 목록이 아니라

사실이고, 그것까지 막으면 문구가 오히려 흐려집니다(실제로 검사를 처음 붙였을 때

그 문장에 걸렸습니다).

  • 내부 검증 2203건 · 화면 기준선 283장. versionCode 665.
v3.25.42026-08-15
이번 판에 찾은 결함들이 다시는 안 나오게 했습니다

지난 이틀 동안 찾은 결함 셋이 전부 같은 성질이었습니다. 코드는 올바르고, 컴파일도

되고, 화면 그림도 «달라진 게 없어서» 통과합니다. 처음부터 그렇게 찍혀 있었으니까요.

세 자리를 막았습니다.

칩 글자가 칩 배경에서 읽히는지

앞 판에서 칩 색을 금색으로 바꾸면서, 그 조합을 열한 곳에 퍼뜨렸습니다. 재 보니

라이트 테마에서 4.58 대 1 이었습니다. 기준이 4.5 이니 여유가 0.08 뿐이고, 칩 글자는

작아서 큰 글씨 완화도 못 씁니다. 금색이나 앰버를 조금만 손대면 조용히 미달이 됩니다.

기존 대비 검사에는 이 짝이 없었습니다 — 그 검사는 「어떤 색을 자기 틴트 위에」 쓰는

경우를 보는데, 칩은 배경과 글자가 서로 다른 색이거든요(다크에서는 같지만 **라이트에서는

다릅니다**). 그 짝을 넣었고, 검사가 보는 값이 화면이 쓰는 값과 같은지도 함께 봅니다.

상세 화면의 «섹션»들이 큰 글씨 그림을 갖고 있는지

이번 판에서 큰 글씨·좁은 폭 결함을 둘 찾았습니다 — 미국 프리미엄의 `-0.0` / `744%`

(숫자가 두 줄로 쪼개짐)와 채산성의 `896.9` / `EH/s`(값과 단위가 갈림). **둘 다 그림을

만들었기 때문에** 보였습니다.

그런데 그 그림을 요구하는 검사를 열어 보니 **「화면」만 대상이고 「섹션」은 빠져

있었습니다.** 지금 일곱 섹션이 전부 덮여 있는 것은 만든 사람이 매번 기억했기 때문이지,

규칙이 지킨 것이 아니었습니다. 섹션도 대상에 넣었습니다.

칩이 다시 갈라지지 않게

앞 판에서 붙인 검사입니다 — 칩이 앱 색을 쓰는지, 선택 상태를 색만으로 말하지 않는지.

여러분의 화면은 달라지지 않습니다.

  • 내부 검증 2202건 · 화면 기준선 283장. versionCode 664.
v3.25.32026-08-15
보라색 자국을 두 군데 더 찾았습니다

앞 판에서 칩 색을 고치면서, 왜 그런 일이 생겼는지를 되짚었습니다. 저희 배색표가

`primary`(금색)·`surface` 같은 자리는 정해 놓고 몇 자리를 비워 두었기 때문입니다.

비워 두면 머티리얼 기본값이 나오는데, 그게 보라 계열입니다.

칩은 색을 직접 줘서 고쳤지만, 그건 그 부품만 고친 것입니다. 다음에 그 자리를 쓰는

무언가를 붙이면 같은 일이 또 납니다. 그래서 자리 자체를 채웠습니다.

채우자마자 두 군데가 더 드러났습니다.

  • 업데이트 진행 막대의 남은 부분이 보라빛 회색이었습니다. 금색 막대 옆에 보라 트랙이 붙어 있었습니다.
  • 설정의 코인 목록에도 같은 자국이 있었습니다. 둘 다 저희가 찾아서 고친 게 아니라, 자리를 채우니 그림이 달라져서 알았습니다.
칩이 다시 갈라지지 않게 검사를 붙였습니다

이런 결함은 오래 남습니다 — 아무것도 잘못되지 않기 때문입니다. 색을 안 준 호출도

완전히 올바른 코드이고, 컴파일도 되고, 눌리고, 접근성도 붙습니다. 화면 그림조차 못

잡습니다. 처음부터 보라로 찍혀 있었으니 «달라진 것»이 없거든요.

그래서 소스를 보는 검사를 두었습니다 — 칩이 앱 색을 쓰는지, 그리고 선택 상태를

색만으로 말하지 않는지(테두리도 함께 바뀌어야 색약이신 분께도 보입니다).

  • 내부 검증 2199건 · 화면 기준선 283장. versionCode 663.
v3.25.22026-08-15
같은 앱 안에 칩이 두 모양이었습니다

720px 화면에 큰 글씨로 앱을 띄워 놓고 훑다가 찾았습니다. 홈의 정렬 칩(기본·등락순·

거래량순…)은 금색인데, 알림·스크리너·설정·도구의 칩은 연보라였습니다.

이유는 단순했습니다. 홈 칩은 손으로 만들면서 색을 정했고, 나머지 열한 곳은 재료를

그냥 가져다 쓰면서 색을 안 정했습니다. 그러면 머티리얼 기본 배색이 나오는데,

저희가 그 자리를 손대지 않아 보라였습니다.

색만 한 곳에 모아 열한 곳이 함께 쓰게 했습니다. 홈 칩을 베끼지는 않았습니다 —

누르는 크기·모양·눌림 표시는 이미 옳게 되어 있었고 다른 것은 색뿐이었으니까요.

대비도 이미 재 둔 값을 그대로 가져왔습니다(옅은 금색이 흰 배경에서 안 보이던 문제를

겪고 나온 값입니다). 선택된 칩은 테두리도 함께 금색이 됩니다 — 색만으로 상태를

말하면 색약이신 분께는 두 상태가 같아 보일 수 있습니다.

줄 간격이 문단마다 달라 보이던 것도 고쳤습니다

알림 화면 맨 위, 바로 붙어 있는 두 문단의 줄 간격이 눈에 띄게 달랐습니다. 앞 문단은

글자 크기만 줄이고 줄 높이는 16pt 글자에 맞춘 값을 그대로 쓰고 있었습니다.

앱 전체를 한 번에 맞추는 방법(줄 높이를 «비례»로)도 해 봤는데 되돌렸습니다.

입력칸과 칩처럼 재료를 겹쳐 쓰는 자리가 조용히 안 그려졌습니다 — 조용시간 카드와

칩 줄이 통째로 사라졌습니다. 그림 225장을 나란히 놓고서야 보였습니다. 그래서 눈에

띈 자리만 고쳤고, 왜 전역으로 못 했는지를 코드에 적어 두었습니다.

여러분의 화면은 칩 색이 앱 나머지와 같아지는 것 말고는 달라지지 않습니다.

  • 내부 검증 2196건 · 화면 기준선 283장. versionCode 662.
v3.25.12026-08-15
실기기에서 확인하고, 남은 한계를 재서 적었습니다

앞 판에 넣은 미국 프리미엄을 난독화한 실제 앱으로 폴드5에 띄워 확인했습니다.

살아 있는 자료로 그려지고, 화면 밖에서 따로 계산한 값과 **순위(99퍼센타일)와 창

(300일)이 정확히 일치**했습니다. 값이 소수 넷째 자리에서 갈린 것은 15분 캐시 사이

마지막 봉이 움직인 것으로, 설계한 그대로입니다.

걸리는 것이 하나 있어서 재 봤습니다

지금 값은 오늘 봉이라 아무 시각의 값인데, 견주는 과거 값들은 전부 **하루 마감

시각**의 값입니다. 미국 장중에 프리미엄이 높다면, 오후에 열어 보신 분께는 순위가

늘 부풀어 보일 수 있습니다.

60일치 시간봉 1,450개를 UTC 시각별로 갈라 봤습니다.

| | 시각 | 전체 평균 대비 |

|---|---|---|

| 가장 높음 | 20시 UTC(미국 오후) | +0.0041%p |

| 가장 낮음 | 03시 UTC(아시아 오전) | −0.0043%p |

방향은 짐작대로였지만 크기가 작았습니다 — 폭 0.0083%p 는 일간 전체 폭(0.11%p)의

7.5%입니다. 순위를 몇 자리 움직일 수는 있어도 「가운데」를 「역대급」으로 만들지는

못합니다. 고칠 방법도 없습니다(같은 시각끼리 견주려면 300일치 시간봉이 필요한데

제공처가 12일치까지만 줍니다). **못 고치는 것을 고친 척하지 않고, 크기를 재서

적어 두었습니다.**

함께
  • 열쇠를 넣지 않으셔도 아무것도 없는 게 아니라는 것을 설정 화면에 적었습니다.
  • 재 보고 안 넣기로 한 후보들을 이유·수치와 함께 저장소에 남겼습니다. 바이낸스 펀딩비가 그 마지막인데, 흥미롭게도 통념과 방향이 반대로 나왔습니다 — 「펀딩 과열 = 꼭지」로들 말하지만 그 뒤 30일이 오히려 좋았습니다(+11.95% 대 기준 +3.98%, 승률 70%). 다만 20국면짜리 t = 1.96 이라 저희 기준(5.17)에 한참 못 미쳐 넣지 않았습니다. 새 접속처가 느는 것도 이유였습니다. 여러분의 화면은 달라지지 않습니다.
  • 내부 검증 2196건 · 화면 기준선 283장. versionCode 661.
v3.25.02026-08-15
미국이 지금 사는지, 열쇠 없이 보실 수 있습니다

앞서 붙인 현물 ETF 순유입에는 두 가지 제약이 있었습니다. 어제 자료이고,

직접 발급받은 키를 넣으신 분에게만 나옵니다.

같은 질문에 키 없이, 지금 이 순간으로 답하는 자리를 그 위에 두었습니다.

미국 프리미엄 — 미국 달러 시장(코인베이스)이 세계 시장(바이낸스)보다 얼마나 비싼가.

미국 쪽이 웃돈을 주고 사는 중이면 프리미엄이 오르고, 팔고 있으면 내려갑니다.

새로 접속하는 곳이 없습니다. 두 곳 다 이 앱이 이미 시세를 받아 오던 곳입니다.

흔히 쓰는 계산법에는 구멍이 있었습니다

보통은 「코인베이스 가격 − 바이낸스 가격」으로 잽니다. 그런데 **바이낸스 가격은

USDT 기준이고, USDT 는 정확히 1달러가 아닙니다.** USDT 가 0.998달러인 날에는

아무도 사거나 팔지 않아도 프리미엄이 +0.2%로 잡힙니다.

1,160일(3년 2개월)을 두 방식으로 나란히 재 봤습니다.

| | 보통 값의 폭 | USDT 이탈만의 폭 |

|---|---|---|

| 실측 | 0.41%p | 0.39%p |

스테이블코인의 흔들림만으로 신호 전체만큼의 폭이 나옵니다. 두 방식의 순위는 평균

29p, 최대 82p 어긋났습니다 — 같은 날을 두고 하나는 「가운데」, 다른 하나는

「역대급」이라고 말합니다. 그래서 저희는 USDT 가 1달러에서 벗어난 만큼을 빼고 잽니다.

방향은 말하지 않습니다

보정한 값으로 다시 재 봤습니다. 국면 단위로 1,160일, 상위 10%가 30국면·하위 10%가

58국면. 결과는 t = −0.99 ~ +0.17 이었습니다. 저희가 판정에 넣는 기준은 t = 5.17

입니다. 근처에도 못 갔습니다.

그래서 채산성과 같은 대접을 합니다 — **사실과 순위만 적고, 오른다 내린다는 말은

하지 않습니다.** 숫자 하나로는 크기를 가늠하기 어려우므로 「최근 …일 가운데 이보다

낮았던 날은 몇 %」를 함께 적었습니다.

좁은 화면에서 숫자가 쪼개지던 것을 고쳤습니다

이 값은 아주 작아서(대개 소수 넷째 자리) 큰 글씨 좁은 화면에서 `-0.0` / `744%` 로

두 줄로 갈라졌습니다. 잘린 숫자는 그대로 다른 숫자로 읽힙니다 — `-0.0` 은 그

자체로 말이 되니까요.

이름표 쪽을 접게 해 봤더니 이번엔 「다음 난이도 조정」이 한 글자씩 세로로 일곱 줄이

됐습니다. 둘 중 누가 이기느냐의 문제가 아니었습니다. 한 줄에 안 들어가면 이제

이름 아래에 값을 둡니다. 채산성·코인 정보의 「네트워크 해시레이트」,

「유통량 / 최대」, 「사상 최고가」도 같이 온전해졌습니다.

  • 내부 검증 2196건 · 화면 기준선 283장. versionCode 660.
v3.24.32026-08-15
없어진 기능이 남긴 마지막 발자국을 지웠습니다

뉴스 출처마다 「국내인가 해외인가」를 적어 두는 칸이 있었습니다. 설정 화면이 출처를

«국내 / 해외» 로 묶어 보여 주던 시절의 것입니다.

그 묶음은 오래전에 사라졌습니다. 협의 없이 남의 브랜드를 기능 안에 넣지 않기로 하고

국내 매체를 싣지 않게 되면서, 나눌 것이 없어졌기 때문입니다. 설정 화면 주석도

나누지 않는다」고 정확히 적고 있었습니다.

그런데 칸은 그대로 남아 있었습니다. 게다가 그 칸의 설명은 「설정 화면의 묶음

표시용」이라고, 이미 없는 용도를 가리킨 채였습니다. 같은 화면의 머리말은 아직

「국내 3 + 외국 10」이라고 적고 있었고요 — 국내 쪽은 한 곳도 없는데 말입니다.

「아무도 안 읽는 칸」을 세는 검사를 붙였습니다

이 저장소가 여러 번 만난 모양입니다 — 뺀 것이 끝까지 전파되지 않습니다. 문구는

이틀 전, 화면 조각은 어제 검사를 붙였고, 남은 것이 이 칸이었습니다.

예외를 만들지 않으려고 규칙을 일부러 약하게 잡았습니다. 「제품 코드가 읽는가」로 물으면

멀쩡한 값이 걸립니다 — 다이버전스의 「앞 지점」처럼, 시험만 읽지만 그 값의 뜻을

이루는 칸이 있으니까요. 그래서 «아무도 안 읽는가» 로 묻습니다. 더 약하지만 예외가

없고, 실제 사례는 이것으로 잡힙니다.

여러분의 화면은 달라지지 않습니다.

  • 내부 검증 2183건 · 화면 기준선 277장. versionCode 659.
v3.24.22026-08-15
어제 만든 검사가 어제 못 본 것을 오늘 찾았습니다

어제 「아무 데서도 안 그려지는 화면 조각」을 찾는 검사를 붙였습니다. 그 검사가 **자기

사각지대 때문에 하나를 놓치고 있었습니다.**

이름이 대문자로 시작하는 것만 세고 있었습니다. 화면을 그리는 조각은 대문자로 짓는 것이

관례라서인데, 값을 돌려주는 도우미는 소문자입니다. 그래서 공포지수 카드의 종합 문장을

만들던 함수가 통째로 빠졌습니다 — 아무도 부르지 않고 있었습니다.

찾아보니 그 문장을 뺀 것은 옳은 결정이었습니다. 카드가 F&G·VIX·코스피를 바로 위에서

더 크게 이미 말하고 있어서, 좁은 화면 큰 글씨에서 그 되풀이가 세 줄을 먹었습니다. 그래서

셋을 함께 읽은 판정인 「극단적 탐욕」 한 줄만 남겼습니다 — 그건 다른 어디에도 없으니까요.

다만 그 결정이 끝까지 전파되지 않아 껍데기가 죽은 채 남았고, 저희 README 는 계속

「종합 인사이트 한 줄」이라고 적고 있었습니다. 껍데기를 걷어내고, README 를 지금 화면대로

고치고, 조립 함수에는 「지금 이 문장은 화면에 나가지 않는다」와 그 이유를 적었습니다.

검사의 사각지대를 넷 다 막았습니다

호출 모양이 넷입니다 — `이름(` · `이름 {` · `이름<T>(` · `::이름`. 만들면서 셋을 차례로

빠뜨려 그때마다 멀쩡한 것이 죽은 것으로 잡혔습니다. 넷을 함께 보게 했고, 소문자 이름도

함께 봅니다. 지금 화면 조각 210개가 전부 그려지고 있습니다.

여러분의 화면은 달라지지 않습니다.

  • 내부 검증 2181건 · 화면 기준선 277장. versionCode 658.
v3.24.12026-08-14
같은 일이 다시 일어나지 않도록 발자국을 지키게 했습니다

앞 판에서 스토어가 아홉 언어로 약속한 기능이 앱에 없는 것을 찾아 되살렸습니다.

그 일이 반년 넘게 아무에게도 안 걸린 이유를 생각해 봤습니다.

기능을 넣을 때는 검사가 여럿 지킵니다. 그런데 뺄 때는 아무도 안 봅니다 —

화면에서 지우면 그걸로 끝난 것 같지만, 실제로는 문구·스토어 설명·QA 항목·화면 기준선이

그대로 남습니다. 그리고 그것들은 아무 소리도 내지 않습니다.

그래서 그 발자국 둘을 지키게 했습니다.

| 발자국 | 뜻 |

|---|---|

| 아무도 안 부르는 문구 | 그 문구가 가리키던 기능이 화면에서 사라졌다 |

| 아무 데서도 안 그려지는 화면 조각 | 같은 일 (번역 칩이 정확히 이 모양이었다) |

번역 칩이 죽어 있던 동안 `news_translate` 는 아무도 안 쓰는 문구였습니다. 이 검사가

있었으면 그날 바로 걸렸습니다. 지금은 문구 880개·화면 조각 174개가 전부 쓰이고 있습니다.

> 걸렸을 때 지우라는 뜻이 아닙니다. 그 기능이 지금 어디 있는지 물어보라는 뜻입니다.

> 정말 뺀 것이라면 스토어 설명과 QA 항목도 함께 정리됐는지 보고 지우고, 아니라면 되살립니다.

만들면서 제가 같은 실수를 또 했습니다. 조각을 세는 정규식이 `이름(` 만 찾아서,

`ChartCard { … }` 처럼 괄호 없이 부르는 멀쩡한 조각 둘이 죽은 것으로 잡혔습니다 —

바로 앞 판에서 접근성 검사가 똑같은 사각지대로 여섯 자리를 놓쳤던 그 실수입니다.

고쳤고, 그 사실을 검사 옆에 적어 두었습니다.

여러분의 화면은 달라지지 않습니다.

  • 내부 검증 2190건 · 화면 기준선 277장. versionCode 657.
v3.24.02026-08-14
스토어가 아홉 언어로 약속한 기능이 앱에 없었습니다

「해외 기사는 번역해서 볼 수 있어요」 — 스토어 설명 열 언어 중 아홉이 그렇게 적고

있습니다. 그런데 앱에는 그 버튼이 없었습니다.

한때는 있었습니다. 자리를 뺏는다는 이유로 뺐는데, 뺀 것이 전파되지 않았습니다.

남은 것들이 이렇습니다 —

| | |

|---|---|

| 스토어 설명 | 아홉 언어가 계속 약속 |

| 코드 | 칩 구현·`onTranslate` 배선·문구 2개×5언어가 죽은 채로 |

| QA 체크리스트 | 그 칩을 시험하라고 지시 |

| 화면 기준선 | 「News card (translate chip)」라는 이름의 그림에 칩이 없음 |

마지막 줄이 가장 아픕니다. 칩이 사라진 뒤 기준선을 다시 떠서, **회귀를 잡아야 할 검사가

오히려 회귀를 승인**했습니다. 이름만 남았습니다.

되살렸습니다

그동안 상황도 바뀌었습니다. 국내 매체가 전부 빠져 기본 출처 10곳이 모두 영문입니다 —

한국어·일본어·중국어로 보시는 분께는 이제 모든 기사가 외국어입니다. 뺄 때보다 더

필요해진 셈입니다.

  • 앱 언어와 다른 언어로 쓰인 기사에만 칩이 붙습니다. 영어로 두시면 사라집니다.
  • 직접 넣으신 RSS 주소는 무슨 언어인지 알 수 없어 칩을 띄우지 않습니다.
  • 번역은 브라우저가 합니다. 앱은 기사 주소를 제3자에게 보내지 않습니다.
자리 문제는 재서 풀었습니다

칩을 되살리자 좁은 화면(320dp·글씨 1.5배)에서 출처가 `Co…` 로 뭉개졌습니다. 이 앱은

「출처는 기사의 신원이라 그게 지워지면 그 줄이 있을 이유가 없다」고 적어 둔 곳입니다.

그래서 문턱값을 정하지 않고 쟀습니다 — 「출처 · 시각」이 남는 폭에 온전히 안 들어가면

그때만 줄을 나눕니다. 보통 폭에서는 한 줄 그대로고, 좁을 때만 메타 줄이 위로 올라가고

칩과 별이 아래로 갑니다.

  • 내부 검증 2185건 · 화면 기준선 277장. versionCode 656.
v3.23.102026-08-14
참이었던 문장은, 참이 아니게 된 뒤에도 오래 남습니다

스토어 설명에 새 기능을 넣다가 열 언어 전부가 없는 매체를 싣고 있는 것을 봤습니다

(「공식 RSS 13곳 — 국내 3 · 해외 10」. 국내 매체는 v3.5.43 에서 뺐습니다). 고치고,

다시 썩지 않게 검사를 붙였습니다.

같은 눈으로 저장소 앞면(README)을 열어 보니 셋이 더 있었습니다.

| 적혀 있던 것 | 실제 |

|---|---|

| 데이터 소스 「전부 공개 API · 키 불필요」 | 현물 ETF 순유입은 사용자 키로 돕니다 |

| 차트 기간 「1일/1주/1개월/3개월」 | 15분·30분·1시간·4시간·일·주 (v1.53.0~) |

| 새 기능 셋 | 하나도 없음 |

가운데 줄은 오래 참이었고, 그래서 자랑스럽게 적혀 있던 문장입니다. **참이었던 문장은

참이 아니게 된 뒤에도 오래 남습니다** — 아무도 다시 읽지 않으니까요.

셋 다 고치고, README 도 검사 대상에 넣었습니다. 이제 「전부 키 불필요」라고 다시 적으면

게이트가 멈춥니다.

> 앱이 키를 들고 다니지 않는다는 원칙은 그대로입니다. 다만 그 문장을 「**앱은 키를 들고

> 다니지 않습니다**」로 정확히 고쳐 적었습니다 — 원하시는 분이 직접 넣은 키로 도는 기능이

> 하나 생겼으니까요.

  • 내부 검증 2184건 · 화면 기준선 277장. versionCode 655.
v3.23.92026-08-14
기능 목록에 새 화면 셋이 통째로 빠져 있었습니다

QA 가 「무엇을 시험할 것인가」를 보는 기능 목록을 열어 봤습니다.

> · 새로 붙인 세 화면(채산성 · 이 코인 뉴스 · 현물 ETF 순유입)이 하나도 없었습니다.

> · 데이터 소스 줄은 이미 걷어낸 국내 매체를 아직 적고 있었습니다(v3.5.43 제거).

목록에 없는 기능은 아무도 시험하지 않습니다. 없는 제공처를 적어 두면 QA 가 있지도

않은 것을 찾습니다.

더 나빴던 것은, 빌드 설정에 「그 목록의 출처 개수를 검사가 대조한다」고 **적혀만

있었다는 점입니다. 그 검사는 그 목록을 읽지 않습니다 — 없는 가드를 있다고 말하는

주석**이었고, 그래서 아무도 이 목록을 보지 않았습니다.

목록을 고치고, 그 주석을 사실로 만드는 검사를 붙였습니다. 검사는 넷을 봅니다 —

출처 개수가 코드와 같은가 · 걷어낸 매체가 다시 적혀 있지 않은가 · 새 제공처가 목록에

있는가 · 새 화면이 목록에 있는가.

붙이자마자 또 잡았습니다. 제가 고친 줄 말고 다른 줄에 걷어낸 매체 이름이 두 개 더

남아 있었습니다.

여러분의 화면은 달라지지 않습니다.

  • 내부 검증 2182건 · 화면 기준선 277장. versionCode 654.
v3.23.82026-08-14
보이는 변화는 없습니다. 다음에 덜 틀리기 위한 판입니다

오늘 하루에 같은 종류의 결함을 네 번 냈습니다. 넷 다 이 앱에 이미 있던 규칙

새 화면에서만 안 지킨 것이었습니다 —

| 자리 | 안 지킨 것 |

|---|---|

| 뉴스 항목 | 누름 동작에 이름 붙이기 |

| 숫자 입력칸 | 입력 정규화 규칙 |

| 달러 표기 | 이미 있던 함수를 새로 만들어 가려 버림 |

| ETF 「7거래일」 | 「실제로 본 만큼만 말한다」 |

넷 중 셋은 검사가 잡아 줬습니다. 문제는 쓴 뒤에 잡아 준다는 것입니다 — 그때는 이미

다시 쓰는 일이 됩니다.

그래서 규칙을 쓰기 전에 볼 수 있는 표로 모았습니다(작업 지침 문서). 어떤 규칙을,

무엇으로 지키고, 어느 검사가 감시하는지 한 자리에 적었습니다. 검사가 없는 규칙

하나도 「없다」고 적어 두었습니다 — 기계가 못 잡으니 사람이 지켜야 하는 것을, 자동으로

지켜진다고 읽으면 안 되니까요.

그리고 그 표를 지키는 검사를 붙였습니다. 문서로 규칙을 모으는 순간 문서가 낡기

시작합니다 — 이 앱은 그것도 이미 겪었습니다(작업 지침의 「알려진 빈틈」 두 줄이 오래

낡은 채였고, 그걸 좇아 한 판을 헛돌았습니다). 이제 표가 없는 검사를 가리키면 게이트가

멈춥니다. 일부러 틀린 이름을 넣어 실제로 멈추는 것도 확인했습니다.

여러분의 화면은 하나도 달라지지 않습니다.

  • 내부 검증 2178건 · 화면 기준선 277장. versionCode 653.
v3.23.72026-08-14
사흘을 더해 놓고 「7거래일 합」이라고 적고 있었습니다

바로 앞 판에서 「최근 7일 합」을 「최근 7거래일 합」으로 고쳤습니다. 그런데 **자료가

사흘치뿐일 때도 그대로 「7거래일」**이라고 적고 있었습니다. 값은 맞고 이름이 틀린

자리라, 나란히 놓고 세어 보기 전에는 눈에 띄지 않습니다.

이 앱에는 이미 같은 규칙이 두 곳에 있습니다 —

> · 지표 판독: 「최근 60봉 범위」라고 단정하지 않고 실제로 본 봉 수를 적습니다.

> · 채산성: 「최근 2년」이라 하지 않고 「최근 730일」이라 적습니다.

ETF 화면만 그 규칙에서 빠져 있었습니다. 이제 실제로 더한 날 수를 적습니다 —

사흘치면 「최근 3거래일 합」입니다.

  • 내부 검증 2175건 · 화면 기준선 277장. versionCode 652.
v3.23.62026-08-14
「모르면 어느 쪽으로 기울 것인가」의 답이 자리마다 다릅니다

현물 ETF 순유입을 부를 코인 목록을 검색 요약만 보고 적어 두었습니다. 확인해 보니

실제로 승인·상장된 것은 BTC·ETH·SOL·XRP·LTC 였고, ADA 는 단독 현물이 아니라 지수

ETF 경유였습니다. 나머지는 확인하지 못했습니다.

그런데 목록을 좁히려다 비대칭을 반대로 보고 있었다는 것을 알았습니다.

| | 잘못 넣었을 때 | 잘못 뺐을 때 |

|---|---|---|

| 값 | 헛된 호출 한 번(1시간 캐시, 화면은 그냥 안 나옴) | 그 코인에서 기능이 통째로 없음 |

두 번째가 훨씬 비쌉니다. 게다가 이 화면은 안내를 띄우지 않으므로, 빠진 코인에서는

왜 안 나오는지 알 길조차 없습니다. 그래서 목록을 넓게 두고, 대신 무엇이 확인된

것이고 무엇이 아닌지 코드에 갈라 적었습니다.

「이 코인 뉴스」의 오탐 차단은 정반대였습니다 — 거기서는 틀리게 붙는 쪽이 훨씬 비싸서

좁게 잡았습니다. 같은 「모르면 어느 쪽으로?」라도 값이 다르면 답이 다릅니다. 그 판단이

조용히 뒤집히지 않도록 검사로 못 박았습니다.

그리고 「최근 7일 합」은 「최근 7거래일 합」입니다

제공처는 비거래일(주말·휴장)을 아예 빼고 줍니다. 그래서 7건은 달력으로 아흐레에서

열흘쯤입니다. 「7일」이라고 적으면 합계가 실제보다 짧은 기간의 것으로 읽힙니다 —

다섯 언어 모두 고쳤습니다.

  • 내부 검증 2175건 · 화면 기준선 276장. versionCode 651.
v3.23.52026-08-14
정작 필요한 코인에서 「이 코인 뉴스」가 비어 있었습니다

「이 코인 뉴스」는 쌓아 둔 기사 가운데 최근 500건만 훑고 끝냈습니다. 실제 피드를

재 보니 문제가 보였습니다 —

| | 제목 298건 중 |

|---|---|

| BTC | 84건 |

| XRP | 34건 |

| ETH | 20건 |

| ADA | 2건 |

흔한 코인은 첫 판에서 다 찾습니다. 그런데 드문 코인은 0건이 됩니다. 그리고 이 기능이

가장 쓸모 있는 쪽이 바로 그 드문 코인입니다 — 비트코인 기사는 어디에나 있지만, 작은

코인 기사는 찾기 어렵습니다.

그래서 채워질 때까지 더 깊이 훑도록 고쳤습니다.

  • 흔한 코인은 첫 판에서 그대로 끝납니다(더 읽지 않습니다).
  • 드문 코인만 다음 판으로 넘어갑니다.
  • 아무것도 없는 코인에서 30일치를 통째로 읽지 않도록 멈추는 자리를 정해 두었습니다. 이 셈법은 화면에서 떼어 내 검사가 볼 수 있게 했습니다 — 저장소를 직접 부르면 시험할 수가 없어서, 「한 판 읽기」를 함수로 받도록 바꿨습니다. 위 세 가지가 동시에 참인지 검사가 지킵니다. 뉴스 시각도 함께 확인했습니다. 열 곳의 실제 피드를 훑어 보니 전부 RFC-1123 형식이고 발행 시각이 100% 들어 있었습니다 — 파서가 첫 갈래에서 다 읽습니다. 빈틈이 없다는 것을 가정이 아니라 확인으로 적어 둡니다.
  • 내부 검증 2174건 · 화면 기준선 276장. versionCode 650.
v3.23.42026-08-14
「just」가 코인 이름이었습니다

「이 코인 뉴스」의 오탐 차단 목록을 저희가 손으로 골라 두었습니다. 그럴듯해 보였지만

확인한 적은 없었습니다. 그래서 앱이 실제로 받는 열 곳의 RSS 제목 298건에 같은 규칙을

그대로 돌려 봤습니다.

곧바로 구멍이 나왔습니다. 코인 `JST` 의 영문명이 「JUST」 입니다.

> · 'DeFi doesn't exist anymore,' just onchain finance

> · …risk of concentrating on just one token

> · …quiet debt fine print leaves just $2.1M in real cash

세 줄 다 그 코인의 뉴스로 붙고 있었습니다. 같은 구멍이 `Metal`(MTL)·`SOON` 에도 있었습니다.

업비트 원화 283종 가운데 영문명이 보통 낱말인 것이 열셋인데, 그중 넷을 놓치고

있었던 것입니다.

셋을 막고 다시 돌려 봤습니다.

| | |

|---|---|

| 제목 | 298건 |

| 꼬리표가 붙은 것 | 180건 |

| 분포 | BTC 84 · XRP 34 · ETH 20 · SHIB 17 · SOL 15 |

| 눈으로 찾은 오탐 | 1건 |

남은 한 건은 「MyEtherWallet (MEW)」입니다. `MEW` 는 그 지갑의 약자이면서 실제 티커

규칙으로는 갈리지 않습니다. 막으면 그 코인 뉴스를 통째로 잃게 되므로 그냥 두었습니다 —

「just」처럼 거의 항상 코인이 아닌 경우와 달리, 여기는 반반입니다.

이 목록은 새 종목이 들어오면 다시 낡습니다. 그래서 「고칠 때는 지어낸 예가 아니라

실제 피드에 돌려 보고 고칠 것」을 코드 옆에 적어 두었습니다.

  • 내부 검증 2168건 · 화면 기준선 276장. versionCode 649.
v3.23.32026-08-14
「리플렉션」이 리플 뉴스가 되고 있었습니다

지난 판에서 「이 코인 뉴스」를 만들며 영문 제목의 오탐은 꽤 신경 썼습니다 — 심볼은

대문자로 홀로 설 때만, 두 글자는 아예 안 세고, `ATH` 같은 약어는 손수 막고.

그런데 한글은 그냥 「들어 있으면」이었습니다.

한국어에는 띄어쓰기로 갈리지 않는 자리가 많습니다. 그래서 「리플렉션」도 「리플리

증후군」도 전부 리플(XRP) 뉴스가 됩니다. 이 앱은 여러분이 직접 넣으신 RSS

지원하므로 한글 제목이 실제로 들어옵니다 — 한쪽만 막고 있었던 셈입니다.

영어처럼 낱말 경계로 자를 수도 없습니다. 한국어는 이름 뒤에 조사가 그대로 달라붙기

때문입니다(`리플이`·`리플의`·`리플에서`). 그래서 규칙을 이렇게 두었습니다 —

| | |

|---|---|

| 앞 | 한글이 아니어야 합니다(또는 문장 처음) |

| 뒤 | 한글이 아니거나(공백·부호·끝), 한글이면 조사 첫 글자여야 합니다 |

「리플이 급등」·「리플의 ETF」·「리플, 급등」은 그대로 잡히고, 「리플렉션」은 걸러집니다.

완벽하지는 않습니다 — 조사로 시작하는 다른 낱말이 이어지면 통과합니다(「리플의」와

「리플의자」를 구별하지 못합니다). 그래도 틀리게 붙는 쪽을 크게 줄이면서 정상적인 문장은

다 잡습니다.

한글에도 흔한 낱말 차단을 더했습니다. 영문에는 있었는데 한글에는 없었습니다 —

업비트 한글명에는 「가스」·「홈」 같은 보통 낱말이 실제로 있습니다. 그 코인들은 심볼이

대문자로 나올 때 잡힙니다.

  • 내부 검증 2167건 · 화면 기준선 276장. versionCode 648.
v3.23.22026-08-14
하루에 한 번 바뀌는 값을 10분마다 받고 있었습니다

채산성의 「최근 730일 중 몇 %」를 내려면 2년치 해시레이트와 일봉 730개가 필요합니다.

그 계산이 해시레이트·난이도와 같은 캐시에 묶여 있었습니다 — 그 둘은 10분마다

새로 받는 것이 맞지만, 순위는 하루에 한 번 바뀌는 값입니다.

즉 비트코인 화면을 열어 두고 계시면, 10분마다 2년치를 다시 받고 있었습니다. 제공처에도

여러분의 데이터 요금에도 무례한 일이었습니다.

캐시를 갈랐습니다.

| | 주기 |

|---|---|

| 해시레이트·난이도 | 10분 (원래대로) |

| 창 안 순위 | 12시간 |

그 사이 블록 높이가 바뀌는 것은 문제가 되지 않습니다 — 순위는 730일 순서라 블록 몇

개 차이로 자리가 바뀌지 않습니다.

보이는 것은 하나도 달라지지 않습니다. 받아 오는 양만 줄었습니다.

  • 내부 검증 2164건 · 화면 기준선 276장. versionCode 647.
v3.23.12026-08-14
접근성 검사에 사각지대가 있었습니다

이 앱에는 「누를 수 있는 자리는 무엇이 일어나는지 말해야 한다」는 검사가 있습니다.

TalkBack 을 쓰시는 분께 「두 번 탭하여 활성화」라고만 들리면, 그건 불편이 아니라

틀린 안내이기 때문입니다.

그 검사가 여섯 자리를 못 보고 있었습니다.

코틀린은 인자가 람다 하나뿐이면 괄호를 생략할 수 있습니다 — `.clickable(…)` 대신

`.clickable { … }` 로 적을 수 있지요. 그런데 검사는 괄호가 있는 쪽만 찾고 있었습니다.

더 나쁜 것은, 같은 검사에 「누를 자리를 여덟 개 넘게 찾았는가」라는 자기 점검이 붙어

있었다는 점입니다. 헛도는 것을 막으려고 넣은 줄인데, **정작 못 보는 자리가 있다는 사실을

가려 주고** 있었습니다. 초록불이 안심시킨 셈입니다.

검사를 넓히자 여섯 자리가 드러났고, 각각에 맞는 처방을 주었습니다.

| 자리 | 처방 |

|---|---|

| 「더 보기」·「접기」(판독 화면 두 곳) | 글자가 곧 그 동작이라 「누를 수 있다」만 알립니다 |

| 절전 예외 줄 | 시스템 화면이 열리므로 「절전 예외 요청 화면 열기」 |

| 언어 고르기 줄 | 「언어 고르기」 |

| 코인 추가 줄 두 곳 | 「추가」 |

| 이 코인 뉴스 항목 | 「브라우저에서 기사 열기」 |

마지막 줄은 지난 판에서 저희가 새로 만든 자리입니다. 뉴스 화면은 이미 같은 이름을 쓰고

있었는데 이 목록만 규칙에서 빠져 있었습니다 — 넓힌 검사가 아니었으면 몰랐을 것입니다.

기기에서 접근성 트리도 다시 훑었습니다(홈·코인 상세·알림·설정 네 화면, 말 없는 조작

요소 0개).

  • 내부 검증 2164건 · 화면 기준선 276장. versionCode 646.
v3.23.02026-08-14
밝혀 놓고 못 바꾸게 두면, 밝힌 게 아니라 통보한 것입니다

채산성 화면은 「가정: 채굴기 20.0 J/TH · 전기 $0.050/kWh」라고 적어 왔습니다. 가정을

숨기지 않으려고 넣은 줄인데, 정작 바꾸실 수는 없었습니다. 사람마다 상정하는 장비도

전기요금도 다른데 말이지요.

설정 ▸ 채산성 가정에서 두 값을 직접 정하실 수 있게 했습니다. 바꾸시면 원가와 비율이

함께 움직이고, 화면이 밝히는 가정 줄도 같이 바뀝니다.

| | 기본값 | 예: 13.5 J/TH · $0.11/kWh |

|---|---|---|

| 전기비 기준 원가 | $47,832 | $71,031 |

| 지금 가격은 전기비의 | 2.4배 | 1.6배 |

| 최근 730일 중 순위 | 8% | 8% |

순위가 그대로인 것이 핵심입니다. 원가는 이 두 값에 정비례하므로 모든 날이 같은 비율로

움직이고, 그러면 순서는 하나도 바뀌지 않습니다. 그래서 설정을 만지셔도 2년치를 다시

받지 않고, 순위는 여전히 「가정과 무관한 사실」로 남습니다. 이 성질은 검사로 못 박아

두었습니다 — 누가 계산을 손대 이 관계가 깨지면 그 자리에서 걸립니다.

범위는 효율 5~100 J/TH, 전기 $0.005~0.60/kWh 로 둡니다. 못 믿어서가 아니라, **0 하나가

원가를 무한대나 0 으로 만들고 그 숫자가 그럴듯한 달러로 화면에 찍히기** 때문입니다.

이번 판은 실기기 확인도 함께 했습니다 — 난독화한 릴리스를 폴드5에 올려, 채산성 카드

(비율 1.3배 · 730일 중 7% · 원가 $48,175 · 해시레이트 903.3 EH/s · 난이도 −4.1%)와

「이 코인 뉴스」가 실제로 뜨는 것을 확인했습니다. 화면에 뜬 숫자는 오프라인에서 따로

계산한 값과 일치했습니다.

  • 내부 검증 2164건 · 화면 기준선 276장. versionCode 645.
v3.22.02026-08-14
현물 ETF 순유입 — 다만 열쇠는 드리지 않습니다

BTC·ETH·SOL·XRP 등 미국 현물 ETF 가 있는 코인의 일별 순유입을 상세 화면에서 볼 수

있게 했습니다. 어제 얼마가 들어왔고, 최근 이레 합은 얼마이고, 출시 이후 누적은 얼마인지.

다만 이 기능은 열쇠가 있어야 합니다. 그리고 앱은 열쇠를 드리지 않습니다.

왜 그렇게 했는지

무료로·열쇠 없이 이 자료를 받을 수 있는 곳이 있는지 하나씩 두드려 봤습니다(2026-08-14):

| 곳 | 결과 |

|---|---|

| Farside Investors | 403 — 프로그램 접근을 막습니다 |

| CoinGlass | 401 · 무료 티어 없음(월 $29부터) |

| SoSoValue | 열쇠 필요(무료 플랜 있음) |

| DefiLlama · ByKaranteli | 해당 엔드포인트 없음 |

없었습니다. 그러면 앱에 열쇠를 하나 박아 넣는 길이 남는데, 그러지 않았습니다.

난독화를 해도 설치 파일에서 결국 뽑혀 나가고, 그러면 모든 사용자가 한 도(限度)를 나눠

쓰다가 어느 날 다 같이 멈춥니다. 무엇보다 「무료·무로그인·수집 없음」으로 버텨 온 이 앱에

처음으로 바깥에 매인 것이 생깁니다.

그래서 원하시는 분이 직접 발급받아 넣으시는 방식으로 했습니다. 설정 ▸ 현물 ETF

순유입 키에 붙여 넣으시면 그때부터 보이고, 비워 두시면 그 화면은 아예 나오지 않습니다.

「열쇠를 넣으세요」 같은 안내도 띄우지 않습니다 — 안 쓰시는 분께는 없는 기능이어야 합니다.

접속처(`openapi.sosovalue.com`)는 데이터 출처 목록에 적어 두었습니다. **넣으시기 전에는

한 번도 부르지 않지만**, 「넣으면 여기로 간다」를 미리 아셔야 넣을지 말지 고르실 수 있으니까요.

여기서도 방향은 말하지 않습니다

「유입이 많으면 오른다」를 재 봤습니다. 같은 계열의 대리지표인 코인베이스 프리미엄

(미국 현물 수요)으로 2,093일치를 잰 결과, 반년 블록 단위 t 값이 −1.51 ~ +0.45

평평했습니다. 오분위 중앙값도 +1.0 / +2.1 / +0.8 / +0.2 / +0.9% 로 순서가 없었습니다.

그래서 사실만 적습니다. 이 앱이 채산성에서 그랬고, 그 전에 과거 적중률을 걷어냈던 것과

같은 이유입니다.

만드는 동안 검사가 또 한 번 멈춰 세웠습니다 — 「이 코인에 ETF 가 있나」를 묻는 것만으로도

저장소를 건드리는 모양이었습니다. 묻는 것이 다르면 있는 곳도 달라야 해서, 그 사실을

따로 떼어 놓았습니다. 그리고 화면 그림을 보다가 총 순자산에 「+」가 붙는 것

찾았습니다 — 잔액에 붙은 플러스는 「늘었다」로 읽히니까요. 뗐습니다.

  • 내부 검증 2163건 · 화면 기준선 275장. versionCode 644.
v3.21.02026-08-14
코인 상세에 「이 코인 뉴스」가 생겼습니다

코인을 눌러 상세를 열면, 그 코인 이야기인 기사만 모아 보여 줍니다. 눌러서 원문으로

갑니다.

새로 받아 오는 것은 없습니다. 앱은 이미 고르신 공식 RSS 에서 기사를 받아 30일치를

쌓아 두고 있었습니다. 없던 것은 「이 기사가 어느 코인 것인가」 하나뿐이라, 새 제공처도

새 접속처도 늘지 않았습니다.

어려운 건 찾는 게 아니라 «안 붙이는» 것이었습니다

업비트 원화 시장에만 283종이 있고, 그 심볼에는 이런 것들이 실제로 있습니다 —

> `TRUMP` · `ATH` · `NEAR` · `AI` · `ORDER` · `OPEN` · `GAS` · `MASK` · `SAND` · `META` ·

> `MOVE` · `HOME` · `SKY` · `SUN` · `TREE` · `TRUST` · `DATA` · `RED` · `SAFE` · `PUMP`

순진하게 심볼을 찾으면 「Trump signs crypto executive order」 한 줄이 **TRUMP 와 ORDER

두 코인의 뉴스**가 됩니다. 「BTC hits new ATH」는 ATH 코인 뉴스가 되고, 「AI tokens

rally」는 AI 코인 뉴스가 됩니다.

그렇게 붙은 꼬리표는 틀렸다는 것조차 눈에 안 띕니다 — 그 코인 화면에 그럴듯한 기사가

한 줄 더 있을 뿐이니까요. 놓친 기사는 목록에 안 보이는 것으로 끝나지만, 잘못 붙은 기사는

판단을 흔듭니다.

그래서 규칙을 「많이 찾기」가 아니라 「틀리게 붙이지 않기」로 세웠습니다.

| 규칙 | 왜 |

|---|---|

| 심볼은 대문자로 홀로 설 때만 | 영문 제목은 낱말머리만 대문자라(`Trump`·`near`) 티커 표기(`BTC`)와 자연히 갈립니다 |

| 두 글자 심볼은 아예 안 셉니다 | `AI`·`ME`·`ID`·`OP` 는 대문자 약어와 구별할 방법이 없습니다 |

| 이름은 통째로 나올 때만 | `NEAR Protocol`·`The Sandbox` 처럼 이름은 심볼보다 또렷합니다 |

| `ATH` 같은 약어는 손수 막습니다 | 신고가 약어는 대문자로 쓰이는 것이 정상이라 규칙 하나로는 안 갈립니다 |

몇 종은 놓칩니다. 알고 그렇게 두었습니다.

발행 시각을 모르는 기사(RSS 에 실제로 섞여 옵니다)는 출처만 적습니다 — 「56년 전」이

찍히면 목록 전체가 못 믿을 것이 되니까요.

만드는 동안 검사가 한 번 더 멈춰 세웠습니다 — 아카이브를 읽는 함수가 **메인 스레드에서도

불릴 수 있는 모양**이었습니다. 부르는 곳이 하나일 땐 맞다가 둘째가 생기면 틀리는 자리라,

함수가 스스로 IO 를 두르게 고쳤습니다.

  • 내부 검증 2157건 · 화면 기준선 270장. versionCode 643.
v3.20.12026-08-14
「전기비의 2.4배」가 높은 건지 낮은 건지 안 알려 줬습니다

앞 판에서 채산성을 붙이면서 「지금 가격은 전기비의 2.4배입니다」라고 적었습니다.

그 문장만으로는 아무것도 알 수 없다는 것을 재 보고 알았습니다.

실제 자료(2013년 이후 4,970일)에서 이 비율은 —

| | |

|---|---|

| 중앙값 | 10.0 |

| 최댓값 | 493,819 |

| 최솟값 | 1.01 |

초기에는 해시레이트가 미미해 비율이 발산했고, 네트워크가 자라며 계속 내려왔습니다.

시대마다 다른 자입니다. 그러니 「2.4배」를 보고 여러분은 그게 높은지 낮은지 알 길이

없고, 하필 낮은 쪽을 보통으로 읽게 됩니다.

그래서 창 안 순위를 함께 적습니다 — 「최근 730일 가운데 이보다 낮았던 날은 8%입니다」.

창 일수는 「최근 2년」이라 단정하지 않고 실제로 본 만큼을 적습니다.

> 지금 이 값은 실제로 낮은 쪽입니다. 채굴 전기비 대비 여유가 최근 2년 중 하위 8% 자리입니다.

재 봤고, 판독에는 넣지 않기로 했습니다

앞 판에서 「다음 판에서 재겠다」고 적었습니다. 쟀고, 표를 주지 않기로 했습니다.

비율이 낮으면 오르더라, 를 2016년 이후 3,875일로 쟀습니다(겹치는 창의 부풀림은 반년

블록으로 억제).

| 문턱 | 기간 | 「하위밴드 − 나머지」 | t |

|---|---|---|---|

| 하위 5% | 30일 | +6.1%p | 2.17 |

| 하위 5% | 90일 | +3.7%p | 0.38 |

이 앱이 자기 주장에 요구해 온 값은 t = 5.17(신뢰도 문턱)과 t = 8.25(판독 수명)

였습니다. 게다가 위 표는 문턱 6개 × 기간 2개를 훑은 뒤의 최댓값이라 **우연히 나올 만한

크기이고, 앞뒤 절반으로 가르면 위쪽 밴드는 부호가 아예 뒤집혔습니다**(2016~2021년에는

비율이 높을수록 오히려 더 올랐습니다).

채굴 쪽의 표준 신호로 알려진 해시 리본도 같이 쟀는데 더 나빴습니다 — 회복 교차 이후

30일 중앙 −2.3%(승률 37.1%)로, 아무 날이나 골랐을 때의 +2.7%(승률 56.3%)보다

못했습니다.

그래서 채산성은 사실만 말하고 방향은 말하지 않습니다. 이 앱이 과거 적중률을 걷어낸

것과 같은 이유입니다 — 근거가 없는데 있는 척하면, 가장 모르는 자리에서 가장 자신 있게

말하게 됩니다.

  • 내부 검증 2145건 · 화면 기준선 266장. versionCode 642.
v3.20.02026-08-14
여덟 지표가 전부 같은 곳에서 나오고 있었습니다

비트코인 상세에 「채산성」이 생겼습니다. 지금 가격이 채굴 전기비의 몇 배인지, 다음

난이도 조정이 언제 어느 쪽인지 보여 줍니다.

왜 이걸 넣었는가. 이 앱은 지표 여덟 개를 세어 판독을 냅니다. 그런데 그 여덟이

전부 캔들 하나에서 나옵니다. 앱 안에 이미 이렇게 적혀 있었습니다 —

> 「여섯이 같은 말을 한다」는 관측 두 개를 여섯 번 말한 것일 수 있다.

그래서 이 앱은 서로 닮은 지표를 계열로 묶어 신뢰도를 깎아 왔습니다. 하지만 그건

문제를 인정한 것이지 푼 것이 아닙니다. 같은 자료를 더 들여다봐도 아는 것은 안 늘어납니다.

채산성은 다릅니다. 네트워크 해시레이트와 블록보상에서 나오므로 가격이 아무리

움직여도 이 값은 안 움직입니다. 채굴자는 여러분과 달리 팔 수밖에 없는 사람입니다 —

전기요금은 매달 나가고 재고는 코인뿐입니다. 가격이 전기비 근처로 내려오면 장비가 꺼지고

해시레이트가 빠집니다. 캔들을 아무리 봐도 안 보이는 일입니다.

| | |

|---|---|

| 출처 | mempool.space (열쇠 없이 누구나 부르는 공개 API) |

| 부르는 때 | 비트코인 상세를 열 때. 10분 캐시 — 난이도는 2주에 한 번 바뀝니다 |

| 안 되면 | 섹션이 통째로 사라집니다. 빈 칸에 「-」를 늘어놓지 않습니다 |

숫자보다 이름을 조심했습니다. 이건 총생산원가가 아닙니다. 설비·인건비·풀

수수료가 빠져 있으니 실제 원가는 이보다 높습니다. 그래서 화면에 「원가가 아니라

하한입니다」라고 적고, 계산에 쓴 **가정(채굴기 20 J/TH · 전기 $0.05/kWh)도 함께

적습니다.** 가정을 숨기면 여러분은 측정값으로 읽게 됩니다.

판독에는 아직 넣지 않았습니다. 문턱을 손으로 정하지 않으려고 그렇습니다 — 이 앱은

「신뢰도 높음」 기준을 8년치 22,263건을 재서 정했고, 새 계열도 같은 대접을 받아야 합니다.

다음 판에서 잽니다.

만드는 동안 앱의 검사 셋이 저를 세 번 멈춰 세웠습니다 — 새 접속처가 **고지 목록에

없다, 빼기 부호를 직접 만들었다, 문서가 아직 없는 버전을 가리킨다**. 셋 다

고치고 올립니다.

  • 내부 검증 2139건 · 화면 기준선 264장. versionCode 641.
v3.19.12026-08-09
코인 로고를 받아 오는 곳이 고지에 빠져 있었습니다

앞 판이 야후의 값을 쟀습니다. 같은 방식으로 코인게코와 로고를 쟀습니다.

코인게코 하나가 을 댑니다 — 전역 시총·도미넌스 이력·코인 정보, 그리고 **코인 로고

주소**. 넷 다 실패해도 곱게 빠집니다(카드가 비고, 로고는 숨습니다). 시세·김프·차트·판독·

알림은 거래소에서 오므로 그대로입니다.

그런데 로고를 재다가 다른 것이 나왔습니다. 로고 주소는 코드에 없습니다 — 응답의

`image` 필드에서 옵니다. 실제 값은 coin-images.coingecko.com 이었고,

| | |

|---|---|

| 고지 목록(22곳)에 있었나 | 없었습니다 |

| 고지 검사가 잡았나 | 못 잡습니다 |

그 검사는 소스에서 주소를 훑기 때문에, 응답 본문에서 오는 주소는 구조적으로 볼 수

없습니다.

> 「소스에 없다」는 「안 두드린다」가 아닙니다. 여러분의 기기는 그 호스트를 실제로

> 두드립니다.

고쳤습니다 — 고지 목록과 화면 문구 다섯 말에 로고 출처를 적었고, 응답에서 오는

호스트를 따로 적어 지키는 검사를 더했습니다. 그 목록이 낡지 않게 **코드가 여전히 그 필드를

쓰는지**도 함께 봅니다.

미리 적어 둔 예측은 빗나갔습니다(24승 49패) — 핵심이 같이 죽을 줄 알았는데 넷 다 곱게

빠졌고, 대신 고지 구멍이 나왔습니다.

  • 내부 검증 2122건 · 화면 기준선 257장. versionCode 640.
v3.19.02026-08-04
바깥 의존을 셌습니다, 그리고 야후는 걷어낼 수 있습니다

분석은 자료의 벽에 닿았습니다. 남은 것은 앱 쪽의 살아 있는 위험이고, 그 첫째가 바깥

의존입니다.

| | |

|---|---|

| 앱이 두드리는 바깥 호스트 | 22곳 |

| 소스에 박힌 | 0개 |

22곳 중 성격이 다른 하나가 야후 지수 API입니다 — 문서화된 공개 API가 아닙니다.

쓰이는 자리는 딱 셋입니다.

| 어디 | 무엇 | 실패하면 |

|---|---|---|

| 지수 시세 | 코스피·코스닥 … | 그 줄만 빠집니다 |

| 공포·탐욕 | VIX | 보조값이 빕니다 |

| 공포·탐욕 | 코스피 | 보조값이 빕니다 |

셋 다 예외를 삼키는 통로를 지나므로, **야후가 죽어도 지수 줄만 사라지고 나머지는

그대로**입니다.

| 걷어내면 | |

|---|---|

| 사라지는 것 | 홈 지수 줄 · 공포탐욕 보조 |

| 남는 것 | 시세 · 김프 · 차트 · 판독 · 알림 · 위젯 · 뉴스 전부 |

| 드는 일 | 파일 |

> **의존을 끊을 수 있는지는 「지금 잘 도는가」가 아니라 「죽으면 무엇이 같이 죽는가」로

> 답해야 합니다.** 그 값을 재 두었으니 결정은 언제든 하실 수 있습니다.

출처는 이미 화면 세 곳에 밝히고 있고, 그것을 지키는 검사도 양방향으로 이미 있습니다.

미리 적어 둔 예측이 맞았습니다(24승 48패).

  • 내부 검증 2121건 · 화면 기준선 257장. versionCode 639.
v3.18.42026-08-04
후보 넷을 판정했고, 하나만 판정됐습니다

앞 판이 후보 넷을 판정 없이 남기며 「세지 않은 것을 구멍이라 적지 않는다」고 했습니다.

그 몫을 갚았습니다.

| 후보 | 결과 |

|---|---|

| 데이터베이스 접근 경계 | 아무도 안 움 — 구멍 |

| 외부 호스트 고지 | 거짓 후보 — 다른 짝으로 이미 양방향 |

| 지표 이름 완전성 | 판정 못 함 — 변이가 오염됐습니다 |

| 홈 화면 카드 배치 | 아직 안 봤습니다 |

미리 적어 둔 예측은 빗나갔습니다(23승 48패) — 둘 이상일 줄 알았는데 하나입니다.

정규식은 또 후보만 줬습니다. 외부 호스트 고지는 「고지 안 한 호스트」와 「안 쓰는데 남은

고지」를 서로 다른 두 짝으로 이미 덮고 있었는데, 짝 단위로 본 검사가 한 방향으로 셌습니다.

변이도 오염될 수 있습니다. 지표 이름 검사는 울었지만 다른 이유로 울었습니다 — 유령

이름이 기존 이름을 재사용해 「두 지표가 같은 제목」이 먼저 걸렸습니다. 그래서 이 후보는

「구멍 없음」이 아니라 「판정 못 함」으로 적었습니다.

> 변이가 울었다고 그 변이를 잡은 것이 아닙니다. 무엇이 울었는지 읽어야 합니다.

고쳤습니다 — 데이터베이스 검사 목록에 반대 방향을 더했습니다. 낡은 목록은 「이만큼

지킨다」는 거짓 인상을 줍니다. 유령 항목을 넣어 일부러 깨뜨려 확인했습니다.

  • 내부 검증 2116건 · 화면 기준선 257장. versionCode 638.
v3.18.32026-08-04
한 방향만 보는 검사를 훑었습니다

앞 판이 「검사는 자기가 보는 쪽만 지킨다」를 남겼습니다. 하나를 찾았으면 훑어서 규칙으로

바꿉니다.

두 모음을 견주는 자리 37개를 얻었지만 대부분이 잡음이었습니다 — 문자 범위를

차집합으로 읽은 것입니다. 훑기는 후보를 주지 판정을 주지 않습니다. 진짜로 키 집합을

견주는 자리로 좁혀 가장 날카로운 하나를 변이로 판정했습니다.

말별 키 완전성 검사는 「한국어에 있는데 번역에 없는 키」만 봅니다. 영어에만 있는 키를

하나 넣고 전체를 돌리니 — 우는 검사 0개.

고아 키는 크래시도 경고도 안 냅니다. 다만 지운 화면의 옛 문구가 번역 파일에만 남아

있으면, 다음 사람이 그것을 살아 있는 문구로 읽고 없는 화면을 고치려 듭니다.

고쳤습니다 — 반대 방향 검사를 더했고, 지금 저장소는 깨끗하며(고아 0), 일본어에 고아 키를

넣어 일부러 깨뜨려 확인했습니다.

남은 후보 넷은 아직 판정하지 않았습니다. 세지 않은 것을 「구멍」이라고 적지 않습니다 —

후보로만 적어 두고 판정은 변이가 합니다.

미리 적어 둔 예측이 맞았습니다(23승 47패).

  • 내부 검증 2116건 · 화면 기준선 257장. versionCode 637.
v3.18.22026-08-04
검사가 한 방향만 보고 있었습니다

앞 판이 문단을 되살리며 말마다 다른 문장을 덜어냈습니다. 그러면 다섯 말이 서로 다른 말을

할 수 있습니다. 그걸 지키라고 만든 검사가 이미 있었는데 — 한 방향만 보고 있었습니다.

한국어에 있는 수 → 번역에 있는가? (봄)

번역에만 있는 수 → 한국어에 있는가? (안 봄)

| 말 | 번역에만 있는 수 |

|---|---|

| 영어 | 2 |

| 중국어(간·번) | 1 · 1 |

| 합계 | 4 |

넷 중 셋이 같은 수(+2.50)였고, 원화가 왜 약한지를 설명하는 문장입니다 —

한국어에서만 지워져 있었습니다.

> 한국어를 쓰시는 분만 그 설명을 못 보고 계셨습니다.

고쳤습니다 — 문장을 되살리고 검사를 양방향으로 만들었습니다. 그러자 검사가 **곧바로

일본어의 같은 구멍**을 짚어 냈고, 그것도 채웠습니다.

> 검사는 자기가 보는 쪽만 지킵니다. 반대쪽은 반대로 물어봐야 드러납니다.

미리 적어 둔 예측은 빗나갔습니다(22승 47패) — 열 개 이상으로 봤는데 넷이었습니다. 다만

수는 작아도 구멍은 실재했습니다.

  • 내부 검증 2115건 · 화면 기준선 257장. versionCode 636.
v3.18.12026-08-04
크기는 고쳤는데 읽힘은 안 고쳤습니다

앞 판이 화면 글의 크기를 고치며 「다음엔 판별 기록을 덜어내고 결론만 남긴다」고

적었습니다. 그 몫을 시작했습니다.

먼저 물은 것 — 화면 글에 「거둔 주장」이 남아 있나? 거뒀다고 표시한 수치 7개를 화면

글과 맞추니 다섯 문장이 걸렸는데, 하나씩 읽어 보니 전부 오탐이었습니다(`4.9`가 `+4.93`·

`−14.97` 안에 들어 있었을 뿐). 거둔 주장은 화면에 없습니다.

진짜 문제는 모양이었습니다.

| | |

|---|---|

| 문장 수 | 199개 |

| 문단 수 | 0 |

한 덩어리였습니다. 판마다 이어 붙이며 문단 구분을 잃었고, 앞 판이 문장 19개를 기계적으로

덜어내며 흐름이 더 끊겼습니다.

문단을 되살렸습니다 — 판마다 쓴 개시어 앞에서만 열었고 **내용은 한 글자도 안

건드렸습니다. 한국어 24덩이**, 나머지 20~22덩이, 가장 큰 덩이 2,956~4,216바이트입니다.

두 번 헛디뎠고 검사가 두 번 잡았습니다 — 처음엔 진짜 개행을 써 넣어(자원 문자열에서는

공백으로 접힙니다) 화면에선 아무 일도 안 일어날 뻔했고, 문단을 열고도 6,160바이트짜리

덩이가 남아 있었습니다. 그리고 앞 판의 기계적 덜어내기가 번역에서만 수치 셋을 지운 것

드러나 되살렸습니다.

샤오미에서 확인했습니다 — 2409BRN2CA · Android 15 · 720px에서 난독화 릴리스가 정상

기동하고, 국면 줄이 「조용한 국면 · 상위 82% · 이 칸에서는 되돌림이 0이거나 음수」로 제대로

뜹니다. 크래시·예외 0건.

미리 적어 둔 예측은 빗나갔습니다(22승 46패).

  • 내부 검증 2115건 · 화면 기준선 257장. versionCode 635.
v3.18.02026-08-04
빌드가 초록불인 채로 화면이 깨져 있었습니다

시간 축을 보러 갔다가 그보다 큰 것을 밟았습니다.

먼저 — 한 카드에 시계가 둘

국면 줄은 보고 계신 기간으로, 몰림 줄은 언제나 일봉으로 냅니다.

| 기간 | 「거침」일 때 일봉도 거침 | 「조용」일 때 일봉이 거침 |

|---|---|---|

| 4시간봉 | 34.0% | 30.1% |

| 1시간봉 | 30.8% | 33.2% |

거의 같습니다 — 1시간봉은 오히려 뒤집힙니다. 두 줄은 서로 다른 것을 말합니다. 줄을

감추지 않고, 일봉이 아닌 기간에서는 「이 줄만 일봉 기준」이라고 적게 했습니다.

그런데 빌드 로그에 이런 줄이 있었습니다

`string too large to encode using UTF-8 written instead as 'STRING_TOO_LARGE'`

빌드는 성공했고 게이트도 통과했습니다. 그런데 문자열 자원의 한계는 32,767바이트이고,

판마다 한 문단씩 늘어난 지표 설명이 —

| 말 | 바이트 |

|---|---|

| 일본어 | 33,248 ← 넘었습니다 |

| 한국어 | 32,553 ← 한계까지 214바이트 |

일본어를 쓰시는 분은 설명 대신 「STRING_TOO_LARGE」 를 보고 계셨습니다.

고쳤습니다 — 검증이 요구하는 수치가 든 문장은 남기고 나머지를 덜어, 일본어 28,907 ·

한국어 28,960 · 영어 28,982로 줄였습니다. 그리고 여유선 30,000바이트를 검사로 걸었습니다.

> 검사 2,000개가 있었지만 아무도 화면 글의 크기를 안 봤습니다.

이건 이 작업이 만든 결함입니다. 판마다 한 문단씩 늘린 것이 저이고, 서른 판 동안 그 글이

읽을 수 있는 길이인지 담길 수 있는 크기인지 아무도 안 물었습니다. 다음은 분명합니다 —

화면 글에서 판별 기록을 덜어내고 결론만 남깁니다.

미리 적어 둔 예측은 맞았습니다(22승 45패).

  • 내부 검증 2111건 · 화면 기준선 257장. versionCode 634.
v3.17.82026-08-04
거래량도 아닙니다, 그리고 여기서 자료가 끝납니다

앞 판이 「거친 국면은 하락 크기의 대리물이 아니다」를 쟀고, 남은 몫이 무엇인지는 모른다

적었습니다. 후보 중 하나는 자료 안에 있습니다 — 거래량. 투매·청산의 가장 가까운

대리물입니다.

거래량은 정말 더 많습니다.

| 자료 | 거친 칸 | 조용한 칸 |

|---|---|---|

| 달러 20종 | 1.84배 | 1.44배 |

| 겹치지 않는 40종 | 1.43배 | 1.17배 |

| 원화 14종 | 1.46배 | 1.39배 |

그런데 설명하지 못합니다. 하락 크기를 맞춘 뒤 거래량으로 갈라 보면:

| 자료 | 거래량 많음 | 적음 |

|---|---|---|

| 달러 20종 | +5.54 | +1.48 |

| 겹치지 않는 40종 | +1.10 | +1.01 |

| 원화 14종 | +0.69 | +1.49 |

하나는 예측대로, 하나는 차이 없고, 하나는 반대입니다. **부호가 자료마다 갈리면 안 선

것** — 이 앱이 지표 여덟을 두고 세운 기준을 자기에게 그대로 적용합니다.

여기서 자료가 끝납니다. 남은 후보(호가 깊이·청산·자금조달률)는 전부 주문장 자료를

요구하는데, 이 앱이 쓰는 공개 시세로는 받을 수 없습니다.

> 「모른다」에 도달하는 데도 측정이 필요합니다. 크기도 아니고 거래량도 아니라는 것을

> 알기까지 두 판이 들었습니다. 안 재고 「아마 청산 때문일 것」이라고 적었다면, 그건 이 앱이

> 하지 않으려 애쓴 바로 그 일입니다.

앱은 안 바뀝니다 — 국면 표시는 그대로 두고, 왜 통하는지는 모른다를 함께 적었습니다.

미리 적어 둔 예측은 빗나갔습니다(21승 45패).

  • 내부 검증 2107건 · 화면 기준선 257장. versionCode 633.
v3.17.72026-08-04
거친 국면은 「많이 떨어졌다」의 대리물이 아닙니다

앞 판이 거친 국면이 일한다고 쟀는데, 그런지는 한 번도 안 물었습니다. 가장

그럴듯한 설명은 이것입니다 — 거친 국면에서는 하락 자체가 더 크고 되돌림이 하락 크기에

비례한다. 그렇다면 국면은 크기의 대리물이고, 크기를 맞추면 사라져야 합니다.

하락이 더 큰 것은 맞습니다.

| 자료 | 거친 칸 | 조용한 칸 |

|---|---|---|

| 달러 20종 | −14.97%(183건) | −9.94%(347건) |

| 겹치지 않는 40종 | −11.76%(359건) | −9.87%(738건) |

| 원화 14종 | −11.16%(193건) | −8.82%(325건) |

그런데 크기를 맞춰도 안 사라집니다.

| 자료 | 그대로 | 크기를 맞추면 | 줄어든 몫 |

|---|---|---|---|

| 달러 20종 | +3.59 | +2.79 | 22% |

| 겹치지 않는 40종 | +2.07 | +0.96 | 53% |

| 원화 14종 | +3.26 | +2.64 | 19% |

> 같은 크기로 떨어져도, 요즘 거칠었느냐에 따라 다르게 돌아옵니다.

두 자료에서 하락 크기가 설명하는 것은 오분의 일뿐입니다.

남은 몫이 무엇인지는 모릅니다. 강제 청산이 섞였을 수도, 호가가 얇아졌을 수도 있지만 —

재지 않은 것은 적지 않습니다. 여기서는 「크기가 아니다」까지가 잰 것입니다.

그래서 국면 표시를 크기 표시로 바꾸지 않았습니다. 「−15% 빠졌습니다」는 국면이 하는

말의 오분의 일만 합니다.

미리 적어 둔 예측은 빗나갔습니다(21승 44패) — 「세 자료 모두 절반 이하」가 하나에서만

맞았습니다.

  • 내부 검증 2103건 · 화면 기준선 257장. versionCode 632.
v3.17.62026-08-04
물음이 틀렸습니다: 「이 파일이 지키는가」가 아니라

앞 판은 후보 다섯 중 둘만 판정하고 셋을 남겼습니다. 남은 셋을 끝내려고 변이를 더 돌렸더니

남은 셋이 아니라 물음 자체가 틀렸다는 것이 나왔습니다.

| 비튼 자리 | 우는 검사 |

|---|---|

| 문턱 계산이 설정값을 안 쓴다 | 4개 |

| 화면 문구의 수가 설정과 어긋난다 | 3개 |

앞 판에서 「안 운다」고 적었던 파일이 여기서는 웁니다. 같은 파일이 **한 축에서는 짊어지고

다른 축에서는 눈멀었습니다.**

> 커버리지는 파일 단위가 아니라 「축」 단위입니다.

그러니 「이 파일이 지키는가」는 물을 수 없는 물음이고, 물어야 하는 것은 언제나 **「이 변이를

무엇이 잡는가」**입니다. 같은 이유로 문구 가드가 도메인 함수를 안 부르는 것은 결함이

아닙니다 — 그 가드의 축은 문구가 설정과 어긋나는 것이고, 거기서 정확히 웁니다.

앞 판의 후보 다섯을 다시 읽으면 — 진짜 구멍은 하나(한 축)였고, 셋은 거짓 경보였습니다.

서른여섯을 다섯으로 좁힌 훑기의 정밀도가 그렇습니다.

> 가드를 세지 말고 변이를 세십시오. 「검사 2,000개」는 아무것도 말하지 않습니다.

> 「이 변이를 넷이 잡는다」가 말합니다.

미리 적어 둔 예측은 빗나갔습니다(21승 43패).

  • 내부 검증 2099건 · 화면 기준선 257장. versionCode 631.
v3.17.52026-08-04
같은 병이 하나 더, 하필 이름이 가장 그럴듯한 자리에

앞 판이 「얹은 코드를 안 부르는 검사는 얹은 코드를 안 지킨다」를 찾았습니다. 하나를 찾았으면

훑어서 규칙으로 바꿉니다.

시험 파일 347개를 훑어 후보 36개를 얻었습니다. 그런데 36개는 판정이 아닙니다

대부분은 이름을 언급할 뿐 지킨다고 주장한 적이 없습니다. 진짜 표식(**얹은 논리를 자기 안에

다시 구현)으로 좁히니 5개**가 남았습니다.

> 훑기는 후보를 주지 판정을 주지 않습니다. 36을 그대로 적었으면 거짓 경보 서른한 개를

> 남겼을 것입니다.

다섯 중 둘이 문턱을 지킨다고 이름 붙은 검사입니다. 얹은 코드에서 문턱을 아예 안 쓰게

만들고 전체 검사를 돌렸습니다.

| | |

|---|---|

| 우는 검사 | 1개 |

| 「문턱이 짊어진다」 | 안 움 |

| 「문턱이 바구니를 따라간다」 | 안 움 |

하필 이름이 가장 그럴듯한 두 자리가 안 울었습니다 — 둘 다 몰림을 자기 코드로 세고

있었습니다.

> 이름이 그럴듯할수록 안 볼 위험이 큽니다. 「이건 이미 지켜지고 있다」고 읽히니까요.

고쳤습니다 — 얹은 함수만 부르는 시험을 더했고, 문턱을 안 쓰게 해 보니 그제야 울었습니다.

미리 적어 둔 예측이 맞았습니다(21승 42패).

  • 내부 검증 2096건 · 화면 기준선 257장. versionCode 630.
v3.17.42026-08-04
인과를 지키라고 만든 검사가 얹은 코드를 안 보고 있었습니다

앞 판은 상수만 비틀었습니다. 진짜 결함이 사는 곳은 논리입니다 — 인과, 최소 봉 검사.

같은 방식으로 논리를 하나씩 비틀었습니다(기준선 344개 · 실패 0).

| 비튼 자리 | 우는 검사 | |

|---|---|---|

| 되돌아보는 창 → 전체 이력(인과 깨기) | 3 | 전부 행동 |

| 최소 봉 검사 무력화 | 0 | 등가 변이 |

| 창 길이 검사 무력화 | 0 | 등가 변이 |

| 최소 관측 검사 무력화 | 3 | 전부 행동 |

두 개의 「0개」는 구멍이 아닙니다. 두 검사가 서로를 가려서, 하나씩 비틀면 행동이 안

바뀝니다 — 변이가 안 잡혔다고 다 구멍은 아닙니다.

진짜 결함은 인과 쪽이었습니다. 인과를 깨면 셋이 우는데, 그 셋 가운데 **인과를 지키라고

만든 검사가 없습니다. 그 검사는 인과를 자체 구현으로 다시 짜서** 견주고 있었습니다 —

얹은 함수를 한 번도 안 부릅니다.

> 얹은 코드를 안 부르는 검사는 얹은 코드를 안 지킵니다.

고쳤습니다 — 얹은 함수만 부르는 시험을 더했고, 인과를 깨 보니 그제야 울었습니다.

미리 적어 둔 예측은 빗나갔습니다(20승 42패).

  • 내부 검증 2095건 · 화면 기준선 257장. versionCode 629.
v3.17.32026-08-04
얹은 상수를 하나씩 바꿔 보니, 검사는 대부분 값을 되뇝니다

앞 판이 「깨지는 것을 못 봤으면 그 가드는 아직 가드가 아니다」를 남겼습니다. 새로 쓴 검사는

매번 한 번씩 깨뜨려 봤지만, 옛 검사 수백 개는 그런 적이 없습니다. 얹은 상수를 하나씩

바꿔 전체 검사(344개 · 기준선 실패 0)를 돌렸습니다.

| 바꾼 상수 | 우는 검사 | 그중 행동을 보는 것 |

|---|---|---|

| 변동성 창 30→25 | 2 | 2 |

| 되돌아보는 길이 110→90 | 2 | 2 |

| 거침 기준 ⅔→0.75 | 4 | 4 |

| 몰림 문턱 3→4 | 6 | 2 |

| 최소 관측 5→3 | 7 | 3 |

아무도 안 우는 상수는 없었습니다. 그런데 문턱을 지키는 여섯 중 **넷은 값을 되뇔

뿐**입니다 — 그 값을 바꾸는 사람은 그 검사도 함께 고치므로 아무것도 안 지킵니다.

> 가드가 상수를 지키기 쉽고 행동을 지키기 어렵습니다.

계측기가 두 번 고장 났고, 그게 가장 값진 대목이었습니다. 처음 돌린 시험은 일곱 상수

전부에서 「우는 검사 0개」를 냈는데 — 검사가 한 번도 안 돌고 옛 결과를 읽고 있었습니다.

그대로 믿었다면 거짓을 적었을 것입니다.

그리고 이번 검사도 같은 병을 앓았습니다 — 이름을 부분 문자열로 찾게 써서, 이름을 바꿔도

통과했습니다. 선언 자리를 정확히 보게 고치니 그제야 울었습니다.

미리 적어 둔 예측은 빗나갔습니다(20승 41패).

  • 내부 검증 2094건 · 화면 기준선 257장. versionCode 628.
v3.17.22026-08-04
세 겹을 벗겨 보니, 일하는 것은 「거친 국면」이었습니다

마흔 절 끝에 남은 것은 세 겹입니다 — 거친 칸 · RSI 30 · 몰림. 한 번도 안 물은 것이

있었습니다: 그 세 겹이 필요한가. 더 단순한 한 줄이 같은 일을 한다면 얹은 기계는 없어도

되는 것입니다.

| 규칙 | 달러 20종 | 40종 | 원화 14종 |

|---|---|---|---|

| 거침 + RSI30 | +5.36(67) | +3.79(247) | +3.29(75) |

| 폭락일 + RSI30 | +2.96(88) | +1.40(206) | +1.90(54) |

| 시장 폭락일(한 줄) | +0.41(620) | −0.27(1197) | −0.35(427) |

| 아무 날이나 | −0.17 | −0.15 | −0.04 |

「시장이 크게 빠진 날」이라는 한 줄은 아무 날이나와 다르지 않습니다. 그리고 같은 RSI 30을

두 조건 위에 올려 견주면 거친 국면 쪽이 1.7~2.7배입니다.

> 크게 빠진 날과 거친 국면은 다릅니다. 일하는 것은 **「오늘 많이 빠졌다」가 아니라

> 「요즘 계속 거칠다」**입니다.

못 잰 자리도 밝힙니다 — 몰림이 들어간 줄은 이 표에 못 싣습니다. 자료를 섞으면 몰림이

사라져 비교할 무작위를 뽑을 수 없기 때문입니다. 몰림은 날 이름표만 섞어 따로 쟀고, 그 결과가

표본 밖 0/200입니다.

두 겹이 이미 대부분을 합니다. 몰림이 더하는 것은 크기보다 아래꼬리입니다 — 지는

판을 47.1%에서 5.4%로 줄이는 쪽입니다. 앱이 셋을 따로 보여 주는 배치가 옳았습니다.

미리 적어 둔 예측은 빗나갔습니다(20승 40패) — 한 줄이 같은 일을 할 줄 알았는데 0

이었습니다.

  • 내부 검증 2090건 · 화면 기준선 257장. versionCode 627.
v3.17.12026-08-04
지표 여덟을 하나씩 재니, 하나도 안 섭니다

앞 판이 종합 판독 방향의 값어치가 0임을 쟀습니다. 그 판독은 지표 여덟을 합친

것입니다. 합친 값이 0이라고 조각이 다 0인 것은 아니니 — 하나씩 쟀습니다.

| 지표 | 달러 20종 | 40종 | 원화 14종 | 건수 |

|---|---|---|---|---|

| squeeze | +0.00 | +0.53 | +0.32 | 42,913 |

| stoch | −0.12 | +0.25 | +0.32 | 68,440 |

| macd | −0.11 | +0.14 | −0.20 | 78,435 |

| obv | −0.28 | −0.34 | +0.25 | 78,435 |

| ma | −0.19 | +0.33 | −0.36 | 33,210 |

| mfi | −0.35 | −0.41 | −0.12 | 73,748 |

| rsi | −0.65 | +0.59 | −0.18 | 48,357 |

| adx | −0.26 | −0.82 | +0.33 | 39,090 |

여덟 중 일곱이 자료마다 부호가 갈립니다. 셋 다 양수인 하나마저 달러에서 +0.00입니다.

> 하나도 안 섭니다.

지표가 틀렸다는 뜻이 아닙니다. 지표는 지금 상태를 정확히 요약합니다 — RSI 30은

「많이 떨어졌다」를 정확히 말합니다. 그게 앞으로를 말하지 않을 뿐입니다.

마흔 절의 결산

| | 잰 결과 |

|---|---|

| 지표 여덟 각각 | 하나도 안 선다 |

| 그것을 합친 종합 판독 | 0 |

| RSI 30 + 거친 칸 | +2.83~+4.38 |

| 거기에 몰림까지 | +6.37~+6.73, 음수 비율 5.4% |

> 조각은 아무것도 아니고, 겹쳐야 무언가가 됩니다.

미리 적어 둔 예측은 빗나갔습니다(20승 39패) — 「하나도 없다」고 적었는데 스퀴즈가 셋 다

양수였습니다(다만 한 자료가 +0.00).

  • 내부 검증 2086건 · 화면 기준선 257장. versionCode 626.
v3.17.02026-08-04
마흔 절 동안 곁가지를 검증했고, 머리기사는 안 쟀습니다

이 앱은 RSI 문턱 · 국면 칸 · 몰림을 오래 검증해 왔습니다. 전부 곁가지입니다. 화면에서

가장 크게 적히는 판정 — 종합 판독 방향 — 은 한 번도 안 쟀습니다.

앱이 쓰는 창(150봉)과 앱의 코드 그대로, 세 자료를 같은 마지막 1,400봉으로 맞추고 무작위를

빼서 「매수」쪽 판독일과 「매도」쪽 판독일을 견줬습니다.

| 자료 | 매수쪽 | 매도쪽 | 판정의 값어치 |

|---|---|---|---|

| 달러 20종 | 9,905건 | 12,231건 | −0.45 |

| 겹치지 않는 40종 | 14,022건 | 16,680건 | +0.08 |

| 업비트 원화 14종 | 7,072건 | 8,604건 | +0.08 |

3만 건 규모에서 0입니다. 절반으로 가르면 부호조차 안 맞고(앞 −0.54 / 뒤 −1.18 등),

지평을 1·10·20봉으로 넓혀도 자료마다 −0.35에서 +2.26까지 갈립니다. 그대로 본 차이는 거의

모든 칸에서 음수였습니다.

> 어느 지평에서도, 「매수」 판정이 「매도」 판정보다 낫다는 증거가 없습니다.

떼지 않습니다. 「지금 어느 쪽인가」는 물으시는 질문이고, 그 자리를 비우는 것은 답을

아는 척하는 것만큼이나 정직하지 않습니다.

대신 적었습니다. 이 앱은 이미 신뢰도에 대해 같은 일을 해 두었습니다 — 「맞을 확률이

아닙니다」. 방향 자체에 대해서만 그 문장이 없었습니다. 이제 있습니다.

> 이 판정은 지금을 요약합니다. 앞을 맞히지는 못합니다 — 재 봤습니다.

미리 적어 둔 예측이 맞았습니다(20승 38패).

  • 내부 검증 2082건 · 화면 기준선 257장. versionCode 625.
v3.16.42026-08-04
가장 크게 적히는 판정이 가장 빨리 낡습니다

앞 판이 「판정마다 유효기간이 다르다」를 세웠는데, 그건 판정 둘로 세운 것이었습니다.

이 화면의 판정을 앱의 코드 그대로 전부 쟀습니다 — 어제 값이 오늘도 같을 확률입니다.

| 판정 | 원화 14종 | 달러 20종 | 화면에서 |

|---|---|---|---|

| RSI 70 위 | 97.1% | 97.3% | 작게 |

| RSI 30 아래 | 96.5% | 97.6% | 작게 |

| 거친 국면인가 | 95.8% | 96.3% | 중간 |

| 국면 칸 | 90.9% | 91.9% | 중간 |

| 매수/매도 우세 | 90.8% | 90.2% | 중간 |

| 종합 판독 방향 | 70.7% | 68.8% | 가장 크게 |

> 가장 크게 적히는 판정이 가장 빨리 낡습니다 — 종합 판독 방향은 사흘에 한 번꼴로

> 어제와 다른 말을 합니다.

우연이 아니라 구조입니다. 종합 판독은 지표 여럿을 합친 값이라 어느 하나만 뒤집혀도

방향이 바뀝니다. 합치면 안정될 것 같지만, 다수결이면 경계에서 오히려 잘 흔들립니다.

배치는 바꾸지 않았습니다. 「지금 어느 쪽인가」가 물으시는 질문이고, 그 자리를 다른 것에

내주면 안 물으신 것에 답하는 일이 됩니다. 대신 이 사실을 적었습니다.

> 「이 자료는 3분 전 것입니다」와 「이 판정은 사흘에 한 번 뒤집힙니다」는 다른 말입니다.

미리 적어 둔 예측은 빗나갔습니다(19승 38패) — 폭을 50%p로 봤는데 여섯 판정 안에서는

26~29%p였습니다(몰림까지 넣으면 83.3%p).

  • 내부 검증 2078건 · 화면 기준선 257장. versionCode 624.
v3.16.32026-08-04
판정에는 유효기간이 있습니다

앱을 안 열어도 보이는 자리가 하나 더 있습니다 — 위젯입니다. 읽어 보니 가격·등락·공포탐욕만

그리고, 이 앱이 잰 조건은 하나도 안 실려 있었습니다.

얹을지 말지를 취향으로 정하지 않고 쟀습니다.

| | 원화 14종 | 달러 20종 |

|---|---|---|

| 어제 국면이 오늘도 맞다 | 91.5% (17,612쌍) | 92.1% (25,160쌍) |

| 어제 「몰림 없음」 → 오늘도 없음 | 99.5% | 99.5% |

| 어제 「몰림 있음」 → 오늘도 있음 | 14.3% | 14.3% (7일 중 1일) |

> 국면은 하루를 가고, 몰림은 못 갑니다.

7일 중 1일이라 얇지만, 앞 판이 다른 방법으로 같은 것을 이미 쟀습니다 — 몰린 날의

71~86%가 첫날이었습니다. 두 측정이 같은 말을 합니다.

그래서 위젯에는 안 얹었습니다.

| 말하려는 것 | 하루 늦은 값이 맞을 확률 | |

|---|---|---|

| 「몰림 없음」 | 99.5% | 쓸 수 있지만 아무 말도 아님 |

| 「몰림 있음」 | 14.3% | 못 씀 |

| 「거친 국면」 | 91.5~92.1% | 쓸 수 있지만 반쪽 |

값어치가 있는 유일한 표시가 하필 하루를 못 갑니다. 아껴서가 아니라 **그 판정이 거기서

살아 있을 수 없어서** 안 얹었습니다.

> 알림은 사건이 일어난 그 순간 나갑니다 — 하루살이 판정도 실을 수 있습니다.

> 위젯은 언제 그려졌는지 모르는 채 계속 떠 있습니다 — 오래가는 판정만 실을 수 있습니다.

미리 적어 둔 예측이 맞았습니다(19승 37패).

  • 내부 검증 2074건 · 화면 기준선 257장. versionCode 623.
v3.16.22026-08-04
검사를 전수 감사했고, 바구니가 여무는 데 140일이 걸립니다

앞 판이 「검사는 옳은 것을 지킬 때만 검사」를 남겼습니다. 하나가 그랬다면 **다른 검사도

거둔 주장을 지키고 있을 수** 있습니다. 훑었습니다.

(가) 감사 — 없었습니다. 거둔 수치를 붙들고 있는 검사 0개. 금지형 단언 346개

비용·효율을 말하는 것이 42개인데, 읽어 보니 나머지는 전부 정확성을 지킵니다(폴백

금지, 공유 계층 강제 등). 앞 판의 그 하나가 유일했습니다.

(나) 그런데 다른 것이 보였습니다. 국면을 말하려면 141봉이 필요한데 받는 것은

150봉입니다 — 여유가 아홉 봉뿐입니다.

| | |

|---|---|

| 날짜 | 3,272일 |

| 141봉을 채운 종목이 다섯 미만인 날 | 424일(13.0%) |

종목마다 상장 뒤 약 140일이 지나야 말할 수 있게 됩니다(BTC 2017-08-17 → 2018-01-04,

ALGO 2019-06-22 → 2019-11-09).

> 「오늘은 몰림이 없다」와 「셀 수가 없었다」가 둘 다 침묵으로 보입니다.

오늘의 바구니는 전부 오래 상장돼 있어 지금은 안 터집니다. 문구를 더 얹는 대신 **여유를

못 박았습니다** — 받는 봉이 줄거나 창이 늘거나 바구니가 깎이면 검사가 먼저 웁니다. 그리고

설명 한 줄을 화면에 남겼습니다.

미리 적어 둔 예측은 빗나갔습니다(18승 37패) — (가)를 「최소 하나 더 있다」로 봤는데

0개였고, (나)만 맞았습니다.

  • 내부 검증 2069건 · 화면 기준선 257장. versionCode 622.
v3.16.12026-08-04
어제 아끼려던 요청이 수를 틀리게 했습니다

어제 알림에 몰림 줄을 얹었습니다. 오늘 그것을 감사했습니다.

얹은 코드는 사용자 자신의 규칙 심볼로 몰림을 셌습니다. 공개 무료 API 를 열몇 번 더

두드리지 않으려던 것인데 — 그건 이 앱이 0/200으로 세운 고정 바구니가 아닙니다.

무작위로 「사용자 목록」을 만들어 60판씩 돌려 봤습니다.

| 목록 크기 | 몰린 날(중앙) | 한 번도 안 뜬 판 | 바구니와 자카드 |

|---|---|---|---|

| 5종 | 2일 | 8/60 | 0.13 |

| 6종 | 3일 | 6/60 | 0.11 |

| 8종 | 5일 | 1/60 | 0.10 |

| 10종 | 8일 | 0/60 | 0.09 |

열 종목을 담아도 바구니와 9%밖에 안 겹칩니다. 거의 다른 날을 가리키고 있었습니다.

> 아끼려던 요청이 수를 틀리게 했습니다.

고쳤습니다 — 몰림은 고정 바구니로 세되, 과매도 알림이 실제로 나갈 때만 받아

옵니다. 대부분의 실행은 아무것도 안 울리므로 요청이 늘지 않고, 울릴 때 받은 것도 캐시를

타서 상세 화면과 함께 씁니다.

어제 쓴 검사가 틀린 것을 지키고 있었습니다. 「새 요청을 안 한다」를 규칙으로 박아 둬서,

바구니로 세려는 시도는 오히려 그 검사에 막혔을 것입니다. 규칙을 뒤집었습니다.

> 검사는 옳은 것을 지킬 때만 검사입니다.

미리 적어 둔 예측이 맞았습니다(18승 36패).

  • 내부 검증 2064건 · 화면 기준선 257장. versionCode 621.
v3.16.02026-08-04
알림에 「그 날이 무엇인지」가 실립니다

이 앱이 스무 절에 걸쳐 잰 것은 하나입니다 — 거친 국면에서 여럿이 함께 과매도된 날.

그런데 알림은 RSI 하나만 보고 나가고 있었습니다. 국면도 몰림도 안 봤습니다.

알림이 실제로 나가는 순간만 세어 봤습니다.

| 자료 | 알림 | 몰린 날 | 거친 칸 |

|---|---|---|---|

| 달러 20종 | 141회 | 15회(10.6%) | 30회(21.3%) |

| 겹치지 않는 40종 | 366회 | 42회(11.5%) | 83회(22.7%) |

| 업비트 원화 14종 | 108회 | 8회(7.4%) | 25회(23.1%) |

그 둘이 어떻게 다른지가 더 아픕니다.

| 무리 | 중앙 | 음수 비율 | 최악 |

|---|---|---|---|

| 몰린 날 알림 | +5.48 ~ +9.00 | 6.7~12.5% | −1.83 |

| 혼자 뜬 알림 | +1.10 ~ +1.98 | 38.1~47.2% | −32.25 |

> 알림 열 개 중 아홉이 「없는 것과 같다」고 잰 신호였고, 그중 넷은 닷새 뒤 마이너스였습니다.

막지 않습니다. 사용자가 스스로 건 규칙이고, 앱이 대신 「이건 볼 값어치가 없다」고 정하는

것은 이 앱의 방식이 아닙니다. 대신 무엇인지 함께 적습니다 — 과매도 알림에 **그 코인의

국면오늘 함께 과매도인 종목 수**가 한 줄 붙습니다.

두 가지를 지켰습니다.

  • 새 요청을 안 합니다. 이미 받아 온 캔들로만 만들고, 그날 본 종목이 다섯이 안 되면 조용히 아무 말도 안 합니다.
  • 과매수에는 안 붙입니다. 잰 것은 과매도 자리입니다 — 재지 않은 곳에 재 놓은 말을 붙이면 근거 없는 확신입니다. > 어디에 적었는지가 무엇을 적었는지만큼 중요합니다. 그 스무 절은 시트를 열어야 보이는 > 자리에만 있었고, 알림은 앱을 안 열어도 도착하는 유일한 통로였습니다. 미리 적어 둔 예측이 맞았습니다(17승 36패).
  • 내부 검증 2064건 · 화면 기준선 257장. versionCode 620.
v3.15.62026-08-04
그 결함은 한 자리에만 생기지 않습니다

앞 판에서 두 자리를 고쳤습니다. 그런데 거래소를 안 넘겨도 컴파일이 됩니다 — 컴파일러가

안 잡아 주는 실수는 반드시 여러 곳에 있습니다. 앱의 캔들 요청을 전부 훑었습니다.

| | 자리 |

|---|---|

| 거래소를 넘긴다 | 13 |

| 안 넘긴다 | 1 — 비교 차트 |

알림과 홈 화면은 넘기고 있었습니다. 남은 하나가 비교 차트였고, **그 자리가 더

나빴습니다 — 기준 코인은 보시는 통화인데 비교 코인만 원화**로 받아, 다른 통화의 두 선을

한 그림에 100으로 맞춰 그리고 있었습니다.

이 화면이 하는 일이 「누가 더 올랐나」인데 그 답이 바뀝니다.

| 잰 것(아홉 종목 · 150봉 창) | |

|---|---|

| 같은 코인, 두 통화의 창 끝 차이 | 1,125쌍 · 중앙 3.92%p |

| | 75분위 7.64 · 90분위 11.33 · 최대 62.51 |

| 두 코인 견주기 | 4,500쌍 중 승자가 뒤집힌 쌍 219(4.9%) |

스무 번에 한 번은 틀린 승자를 보여 주고 있었습니다.

고쳤습니다. 그리고 규칙으로 바꿨습니다 — 앞으로 어디에 새 호출이 생겨도 거래소를 안

넘기면 검사에서 걸립니다.

미리 적어 둔 예측은 빗나갔습니다(16승 36패) — 창 끝 차이는 맞혔지만 승자 뒤집힘을

10% 이상으로 봤는데 4.9%였습니다. 두 코인의 상승률 차이가 대개 환율 몫보다 크기 때문입니다.

  • 내부 검증 2058건 · 화면 기준선 257장. versionCode 619.
v3.15.52026-08-04
스무 절을 쌓아 올린 자리가 화면의 시장이 아니었습니다

앞 판이 「원화가 가장 약하다」를 냈습니다. 그러면 다음 물음은 하나입니다 — **얹은 코드는

몰림을 어느 시장 자료로 세는가. 스무 절을 쌓는 동안 한 번도 안 봤습니다.**

봤더니 몰림과 다중 기간 편향 두 자리가 거래소를 안 넘기고 있었습니다. 그러면 기본값

(업비트)입니다 — 바이낸스를 고르셔서 가격도 판독도 달러로 보고 계셔도, **그 두 자리만

원화 자료**였습니다.

이 앱이 이미 한 번 잡은 결함입니다. 상세 화면 주석에 「바이낸스를 고른 사용자는 가격은

달러, 분석은 원화 캔들로 봤다 … RSI 최대 7.7 포인트」라고 적혀 있습니다. **본 캔들은

고쳤는데 이 두 자리가 남아 있었습니다.**

얼마나 갈리는지 쟀습니다(두 자료에 함께 있는 아홉 종목 · 같은 기간).

| | 몰린 날 |

|---|---|

| 원화로 세면 | 11일 |

| 달러로 세면 | 8일 |

| 둘 다 | 4일 |

| 자카드 | 0.27 |

RSI 자체의 차이는 작습니다 — 중앙 1.47포인트, 30 경계가 갈린 쌍은 1.6%. 그런데

몰림은 그 작은 차이를 세 종목에서 동시에 요구하므로 집합이 통째로 바뀝니다.

고쳤습니다 — 캔들이 실제로 온 거래소를 넘기고, 거래소를 바꾸면 다시 셉니다.

> 덕분에 앞 판의 「원화가 가장 약하다」가 원화 사용자에게만 해당하게 됐고, 달러

> 사용자는 표본 밖에서 0/200으로 섰던 그 자료에 가까운 것을 보게 됩니다. **결함을 고치는

> 일이 근거를 강하게 만든 드문 판입니다.**

미리 적어 둔 예측이 맞았습니다(16승 35패).

  • 내부 검증 2054건 · 화면 기준선 257장. versionCode 618.
v3.15.42026-08-04
날을 단위로 정직하게 다시 걸었습니다

앞 판이 「몰린 날은 일곱 · 아홉 · 일곱 날뿐」이라고 세었으니, 그 위에서 다시 재야

했습니다. 날마다 사건을 하나로 접고, 어느 날이 몰린 날이었는지만 200판 뒤섞었습니다.

| 자료 | 사건 있는 날 | 몰린 날 | 날 격차 | 무작위가 넘어선 판 |

|---|---|---|---|---|

| 달러 20종 | 51일 | 7 | +5.32 | 7/200 |

| 겹치지 않는 40종 | 121일 | 9 | +9.95 | 0/200 |

| 업비트 원화 14종 | 43일 | 5 | +4.89 | 11/200 |

표본 밖 40종은 0/200으로 섰습니다. 몰린 날 중앙 +9.22(음수 1/9)인데 안 몰린 날은

−0.72(음수 60/112)입니다.

그런데 원화가 못 섭니다 — 11/200으로 위쪽 5% 안입니다. 몰린 날이 다섯뿐인 데다, 원화는

몰림이 없어도 사건 자체가 이미 꽤 좋아(중앙 +2.50) 몰림이 더할 몫이 작습니다.

> 이 앱이 서는 시장이 하필 가장 약한 자리입니다. 방향은 세 자료 모두 같고 표본 밖에서

> 가장 강하지만, 원화에서는 「보인다」고 말할 수 없습니다.

해석도 한 번 틀렸다가 고쳤습니다. 처음엔 「날로 접으니 오히려 또렷해졌다」고 썼는데,

두 수는 서로 다르게 만든 검정이라 견줄 수 없는 것이었습니다. 인공 자료로 재니 **접으면

또렷함은 줄어듭니다 — 줄어드는 쪽이 정직한 값이고, 날로 접는 것은 세지려는 일이 아니라

부풀린 것을 걷어 내는 일**입니다. 그러고도 40종이 0/200으로 남았습니다.

미리 적어 둔 예측은 빗나갔습니다(15승 35패).

  • 내부 검증 2049건 · 화면 기준선 257장. versionCode 617.
v3.15.32026-08-04
열 번 넘게 경고해 놓고 한 번도 세지 않았습니다

이 페이지는 「몰린 날은 뭉쳐 오니 독립된 사건은 건수보다 적다」고 열 번 넘게 적었습니다.

그런데 정작 날 수를 세 본 적이 없습니다. 이번에 셌습니다.

| 자료 | 몰린 날 | 그중 첫날 | 몰림 건수 |

|---|---|---|---|

| 달러 20종 | 7일 | 6일(86%) | 16건 |

| 겹치지 않는 40종 | 9일 | 7일(78%) | 56건 |

| 업비트 원화 14종 | 7일 | 5일(71%) | 15건 |

> 몰린 날은 일곱 · 아홉 · 일곱 날입니다.

앞서 적은 16건·56건·15건은 같은 날 여러 종목을 센 것이라 독립된 관측이 아닙니다.

스무 절에 걸친 몰림 이야기 전체가 스무 남짓한 날 위에 서 있습니다.

숫자를 거두지는 않습니다 — 방향은 표본 밖 두 자료와 여러 창에서 거듭 섰습니다. 다만

몇 날에서 나온 수인지를 화면에 함께 적었습니다.

경고의 방향도 틀렸습니다. 이 구간에서는 몰린 날의 71~86%가 첫날이었습니다 — 뭉침은

생각보다 약했습니다. 조심할 것은 겹침이 아니라 절대 수였습니다.

미리 적어 둔 예측(뭉침의 첫날이 더 낫다)은 빗나갔습니다(15승 34패) — 가를 수 있는 자료

하나에서 결과가 반대였고(+5.34 대 +6.94), 그마저 두 날에서 나온 것이라 가르지 못했다

정직한 답입니다.

  • 내부 검증 2044건 · 화면 기준선 257장. versionCode 616.
v3.15.22026-08-04
알림을 보고 더 오래 쥐면 어떻게 되나

앞 판은 h=5에서 지는 판이 드물다고 했고, 그 앞 판은 h=20이면 중앙값이 죽는다

했습니다. 둘을 겹쳐 본 적이 없었습니다. 사용자는 보통 다섯 봉만 쥐고 있지 않습니다.

몰린 날의 음수 비율

| h | 달러 20종(16건) | 40종(56건) | 원화(15건) |

|---|---|---|---|

| 1 | 0.0% | 14.3% | 26.7% |

| 5 | 0.0% | 5.4% | 6.7% |

| 10 | 0.0% | 19.6% | 33.3% |

| 20 | 25.0% | 42.9% | 33.3% |

단조롭게 오르지 않습니다. 한 봉에서 이미 높고, 다섯 봉에서 바닥을 치고, 다시

오릅니다. 하위 10분위도 h=5에서 +0.73인데 h=20에서는 −12.59입니다.

> 한 봉으로는 아직 안 돌아섰고, 스무 봉이면 이미 지나갔습니다. 바닥은 다섯 봉입니다.

이 앱이 5봉으로 말하는 두 번째 이유입니다. 중앙값으로 고른 5봉과 지는 비율로 고른

5봉은 서로 다른 잣대인데 같은 자리를 가리킵니다 — 다섯 봉은 고른 값이 아니라

기제의 길이입니다.

길게 쥐면 몰림의 값어치가 줄어듭니다 — 40종에서 몰림과 혼자의 격차가 h=5의 41.4%p에서

h=20에는 14.5%p로 줄어듭니다. 다만 사라지지는 않습니다: h=20에서도 몰린 날 42.9%는

아무 날이나 59.6%보다 낫습니다. 줄어드는 것과 사라지는 것은 다릅니다.

미리 적어 둔 예측은 빗나갔습니다(15승 33패) — 방향은 세 자료 모두 맞았지만 「30% 이상」이

달러에서 25.0%로 못 미쳤습니다.

  • 내부 검증 2039건 · 화면 기준선 257장. versionCode 615.
v3.15.12026-08-04
여기까지 전부 중앙값이었습니다

서른아홉 절 내내 중앙값만 봤습니다. 그런데 사용자가 실제로 지는 자리는 중앙값이 아니라

아래꼬리입니다. 몰림은 시장 전체가 흔들린 날이니 아래가 더 나쁠 수도 있습니다 —

그렇다면 이 알림은 해로운 것이 됩니다. 처음으로 분포를 통째로 봤습니다.

| 자료 | 무리 | 건수 | 최악 | 10분위 | 중앙 | 75분위 | 음수 비율 |

|---|---|---|---|---|---|---|---|

| 달러 20종 | 몰린 날 | 16 | +3.19 | +3.57 | +7.75 | +15.26 | 0.0% |

| | 혼자 뜬 날 | 51 | −13.35 | −3.58 | +5.58 | +9.62 | 15.7% |

| 40종 | 몰린 날 | 56 | −4.48 | +0.73 | +7.55 | +11.98 | 5.4% |

| | 혼자 뜬 날 | 191 | −17.18 | −8.20 | +1.01 | +5.32 | 47.1% |

| 원화 14종 | 몰린 날 | 15 | −4.73 | +0.09 | +7.39 | +10.12 | 6.7% |

| | 혼자 뜬 날 | 60 | −27.15 | −10.96 | +1.89 | +5.13 | 43.3% |

| | 아무 날이나 | 79,002 | −80.07 | −11.7 | −0.6 | +4.2 | 53.2% |

차이는 위가 아니라 아래에 있습니다. 40종에서 위쪽 차이는 +6.66(75분위)인데 아래쪽

차이가 +8.93(10분위)입니다.

> 몰림이 하는 일은 더 크게 오르는 것이 아니라 지는 판을 없애는 것입니다.

혼자 뜬 날의 음수 43~47%는 아무 날이나(53.2%)와 크게 다르지 않습니다 — 혼자 뜬 신호는

사실상 시장 그 자체입니다.

반드시 함께 읽어 주십시오 — 「음수 0.0%」는 성질이 아니라 열여섯 번의 관측이고,

몰린 날은 5일 안에 이웃을 가지므로 몇 번의 국면일 뿐입니다. 「몰린 날에 지지 않는다」가

아니라 「이 창에서는 지는 판이 드물었다」로 읽어야 합니다. 그래서 화면에도 비율과

건수를 함께 적었습니다.

미리 적어 둔 예측이 맞았습니다(15승 32패).

  • 내부 검증 2034건 · 화면 기준선 257장. versionCode 614.
v3.15.02026-08-04
서른아홉 절이 한 문장으로 줄어듭니다

네 판 동안 잣대를 고쳤습니다 — 기간 맞추기 · 사건 쪽 무작위 빼기 · 이름표 섞기. 각각은

확인했지만 한꺼번에 걸어 본 적이 없었습니다. 통제는 따로 걸면 통과하고 겹쳐 걸면

무너지는 일이 흔합니다.

세 자료를 모두 같은 마지막 1,400봉으로 자르고, 사건 쪽 무작위를 빼고, 다시 반으로

갈랐습니다. 여섯 칸이 모두 양수로 섰습니다.

| 자료 | 전체 | 앞 절반 | 뒤 절반 |

|---|---|---|---|

| 달러 20종 | +2.80 | +5.63 | +1.91 |

| 겹치지 않는 40종 | +3.03 | +2.97 | +4.89 |

| 업비트 원화 14종 | +2.56 | +4.05 | +0.79 |

몰림으로 가르면 여기서 갈립니다.

| 자료 | 몰린 날 | 혼자 뜬 날 |

|---|---|---|

| 겹치지 않는 40종 | +6.73 | +0.19 |

| 업비트 원화 14종 | +6.37 | +0.88 |

> 표본 밖 두 자료에서 혼자 뜬 신호는 없는 것과 같습니다.

서른아홉 절 동안 좇은 것이 한 문장으로 줄어듭니다.

> 거친 국면에서 여럿이 함께 과매도된 날 — 그것 하나입니다.

>

> 거칠지 않으면 없고, 혼자면 없고, 길게 보면 사라지고, 기간을 안 맞추면 시장 차이로

> 착각합니다. 앱이 띄우는 것도 정확히 그 조건입니다.

함께 적습니다 — 몰린 날은 뭉쳐 옵니다. 독립된 사건은 건수보다 훨씬 적으니 이 수치는

방향을 말하지 크기를 말하지 않습니다.

미리 적어 둔 예측이 맞았습니다(14승 32패) — 통제를 겹쳐 건 뒤에도 맞은 것은 처음입니다.

  • 내부 검증 2028건 · 화면 기준선 257장. versionCode 613.
v3.14.92026-08-04
어제 배운 뺄셈을 화면 값에 실제로 대 봤습니다

어제 「사건 쪽에도 무작위가 있다」를 배웠는데, 화면에는 안 썼습니다. 여기 적힌 값은

전부 옛 잣대(기준선만 뺀 「초과」)입니다. 얹은 설정 그대로 다시 쟀습니다.

| 자료 | 화면이 적던 값 | 사건 쪽 무작위 | 다시 잰 값 |

|---|---|---|---|

| 달러 20종 여덟 해 | +5.61 | +1.13 | +4.38 |

| 겹치지 않는 40종 | +4.98 | +1.51 | +3.32 |

| 업비트 원화 14종 | +3.73 | +0.97 | +2.83 |

1%p 안팎 부풀어 있었습니다. 크지는 않지만 세 자료에서 같은 방향이고, 셋 다 양수로

남습니다.

몰림 격차에는 이 뺄셈을 쓸 수 없었습니다. 자료를 섞으면 몰린 사건이 **138건에서

0건**으로 사라집니다 — 뺄 대상이 남지 않습니다. 그래서 몰림은 처음부터 이름표만 섞어

쟀고, 그 값은 이미 사건 쪽 무작위를 뺀 값입니다. 두 방식은 배타적이고, 뒤엣것이

앞엣것을 이미 품고 있습니다.

미리 적어 둔 예측은 빗나갔습니다(13승 32패) — 줄어드는 폭이 예상 범위를 벗어났고,

몰림 쪽은 물음 자체가 성립하지 않았습니다.

  • 내부 검증 2023건 · 화면 기준선 257장. versionCode 612.
v3.14.82026-08-04
사건 쪽에도 무작위가 있습니다

「초과」는 사건 중앙값 − 기준선 중앙값입니다. 서른여덟 절 동안 기준선만 빼 왔는데,

갈라 보니 사건 쪽에도 무작위 몫이 있었습니다. 되돌림을 전부 부순 자료에서도 RSI 30

아래를 고르기만 하면 20봉 중앙값이 +3.17까지 오릅니다.

표류 때문이 아닙니다. 표류라면 h에 비례해야 하는데 달러는 h=5 +0.76 → h=10

+0.90으로 거의 안 움직이고, 순서를 완전히 부순 원화 h=10은 −1.57로 음수입니다.

그래서 사건 쪽에서도 무작위를 빼고 다시 봤습니다.

| 창 | h=5 | h=10 | h=20 |

|---|---|---|---|

| 달러 20종 여덟 해 | +3.92 | +6.04 | +7.45 |

| 달러 20종 2018~2022 | +5.35 | +10.31 | +13.28 |

| 달러 20종 최근 1,400 | +3.65 | +4.13 | +1.70 |

| 달러 40종 최근 1,400 | +1.73 | +1.50 | −1.70 |

| 업비트 원화 14종 | +2.31 | −0.45 | −5.17 |

> 다섯 창 모두에서 양수인 지평은 5봉뿐입니다. 5봉은 좋은 자리 중 하나가 아니라

> 다섯 창을 모두 넘는 유일한 자리입니다.

밝힌 것 하나 더 — 그 무작위 몫의 크기는 블록이 정합니다. 원화 h=20에서 블록 1은

+0.27, 블록 5는 +3.17, 블록 20은 +5.09입니다. 블록이 사건 창을 품으면 무작위가 관측을

닮아 가고 진짜 효과가 지워집니다. 한 블록으로 잰 값은 믿지 않습니다.

못 밝힌 것 — 무엇이 사건 쪽 무작위를 만드는지는 모릅니다. 표류도 변동성 뭉침도

재현하지 못했습니다. 관측된 사실로만 적어 둡니다.

  • 내부 검증 2019건 · 화면 기준선 257장. versionCode 611.
v3.14.72026-08-04
어제 적은 문장을 하루 만에 거둡니다

어제 「달러는 길게 볼수록 커지고 원화는 5봉이 꼭대기」라고 적었습니다. **그 견줌이

틀렸습니다 — 달러 자료는 여덟 해이고 원화는 네 해**였습니다. 두 시장을 견준 게

아니라 두 시기를 견준 것이었습니다.

같은 마지막 1,400봉으로 잘라 다시 쟀습니다.

| 자료 | h=5 | h=10 | h=20 | h=20 원값 |

|---|---|---|---|---|

| 달러 20종 여덟 해 | +5.61 | +8.85 | +12.11 밖 | +9.77% |

| 달러 20종 최근 1,400 | +4.46 | +4.81 | +6.34 안 | +4.79% |

| 달러 40종 최근 1,400 | +4.03 | +4.52 | +3.81 안 | −2.20% |

| 원화 14종 (같은 기간) | +3.73 | +2.06 | +0.58 안 | −2.00% |

기간을 맞추니 세 시장이 같은 모양입니다. 길게 쥐는 쪽이 좋았던 것은 2018~2022

였습니다 — 그 구간만 보면 h=20 초과가 +17.16%p(이긴 비율 77.3%)입니다.

> 거둡니다 — 「원화에서는 맞고 달러에서는 보수적」이라는 어제 문장. 최근 네 해 기준

> 으로는 세 시장 모두 3~5봉 부근이 좋은 자리이고, 앱이 말하는 5봉은 보수적이지

> 않습니다.

사건이 적어서가 아닙니다 — 가운데 토막 166건은 h=20 에서 서고 뒤 토막 135건은 안

섭니다. 점추정 자체가 반으로 줄었습니다.

기간을 안 맞추고 시장을 견주면, 시기의 차이가 시장의 차이로 보입니다.

  • 내부 검증 2014건 · 화면 기준선 257장. versionCode 610.
v3.14.62026-08-04
서른일곱 절 동안 5봉만 봤습니다

화면도 문구도 얹은 기능도 전부 5봉을 말합니다. 그 5가 어디서 왔는지 물으면 —

처음에 그렇게 골랐기 때문입니다. 거친 국면 안에서 지평을 바꿔 본 적이 **한 번도

없습니다.** 바꿔 봤습니다:

| h | 코인 20종 초과 | 원값 | 이긴 | 40종 | 업비트 원화 |

|---|---|---|---|---|---|

| 1 | +2.42 | +2.40% | 65.4% | +2.06 | +1.03 |

| 5 | +5.61 | +5.27% | 69.6% | +4.81 | +3.77 밖(꼭대기) |

| 10 | +8.85 | +8.07% | 77.1% | +6.65 | +1.63 |

| 20 | +12.11 | +9.77% | 73.5% | +5.79 | +0.09 (원값 −2.06%) |

달러 두 자료는 h=10~20까지 계속 커집니다. 그런데 업비트 원화는 정반대 — h=5가

꼭대기이고 h=10·20은 무작위 안, 원값은 −2.06%까지 내려갑니다.

> 이 앱이 5봉으로 말하는 것은 원화에서는 맞고 달러에서는 보수적입니다.

「길게 보면 당연히 커지는 것」이 아닙니다 — 되돌림이 한 봉짜리면 지평을 늘려도 초과는

일찍 평평해집니다. 계속 커진다는 건 되돌림이 열 봉 넘게 이어진다는 뜻입니다.

함께 적습니다 — h=20이면 창이 스무 봉씩 겹쳐 독립된 사건이 훨씬 적습니다. 표의

±1.64는 그 겹침을 안 세었으니 긴 쪽일수록 좁게 보입니다.

미리 적어 둔 예측은 빗나갔습니다(12승 30패) — 틀린 쪽이 더 나은 소식인 판이 또

나왔습니다.

  • 내부 검증 2009건 · 화면 기준선 257장. versionCode 609.
v3.14.52026-08-04
화면에 적은 수가 그 화면의 설정이 아니었습니다

새로 얹은 몰림 문구가 +7.75% 대 +0.50%를 적고 있었습니다. 그 수는 **20종 바구니 ·

문턱 5 · 「몰림 대 혼자」 값인데, 앱은 열 종목 · 문턱 3**으로 돌고 비교 대상도 혼자가

아니라 몰리지 않은 날입니다. 세 군데가 다릅니다.

얹은 설정으로 잰 값은 이렇습니다:

| 바구니 | 붙인 곳 | 격차 | 무작위가 더 큰 판 |

|---|---|---|---|

| 20종 | 겹치지 않는 40종 | +5.37 | 0/200 |

| 20종 | 업비트 원화 | +6.63 | 0/200 |

| 원화 9종 | 겹치지 않는 39종 | +6.72 | 0/200 |

| 달러 6종 | 겹치지 않는 39종 | +7.01 | 0/200 |

+5.37 ~ +7.01%p — 문구를 그 범위로 바꿨습니다. 「그런 40일 중 12일이 음수」도 문턱 5의

값이라 뺐고, 대신 설정과 무관한 꼬리(5봉 뒤 하위 5% −19.86%)를 남겼습니다.

이건 이 앱이 이미 적어 둔 함정입니다 — 「화면에 적은 수와 화면이 내는 표는 그 수가

아니다」. 그때는 앱이 원래 갖고 있던 표를 두고 한 말이었는데, 이번에는 **방금 만든

문구가 그랬습니다.**

왜 이렇게 되는지도 적었습니다 — 문구를 쓸 때 손에 있던 가장 인상적인 수를 집었기

때문입니다. +7.75는 이 문서에서 가장 큰 숫자였습니다.

  • 내부 검증 2005건 · 화면 기준선 257장. versionCode 608.
v3.14.42026-08-04
비율 규칙을 거둡니다 — 문턱은 그냥 셋입니다

두 판 전에 고정값을 걷어내고, 한 판 전에 그것을 다시 고쳤습니다. **앱이 실제로 서 있는

자리에 계단이 남아 있었습니다 — 열이면 3, 아홉이면 2**. 한 종목만 못 받아도 문턱이

내려갑니다. 그 계단을 쟀습니다:

| 바구니 | 문턱 | 몰린 날 | 겹치지 않는 39종 | 무작위가 더 큰 판 |

|---|---|---|---|---|

| 원화 9종 | 2 | 37일 (2.6%) | +3.45 | 1/200 |

| | 3 | 14일 (1.0%) | +6.72 | 0/200 |

| 달러 6종 | 2 | 60일 | +5.29 | 0/200 |

| | 3 | 25일 | +7.01 | 0/200 |

아홉에서 둘과 셋의 차이가 3.27%p입니다 — 예측 빗나감(12승 29패).

잰 것을 전부 늘어놓으니 규칙이 없습니다. 셋이 거의 모든 자리에서 좋고, 셋이 진 두

자리는 표본이 얇습니다. 그리고 두 판 전에 「6종이면 2」라고 결론지은 근거는 **바깥을 한

가지만 봤기 때문**이었습니다 — 같은 6종을 39종에 붙이면 3이 낫습니다.

> 비율은 세 점을 이어 그린 선이었고, 넷째 점이 선 밖에 있었습니다.

고정 3 → seen/3 → seen/4 → 다시 고정 3. 되돌리는 것이 진 것이 아닙니다 — **잰 것이

규칙을 안 만들어 주면 규칙을 만들지 않는 것이 맞습니다.** 두 판 전에 「결함」이라 부른

고정값은 결함이 아니었습니다.

  • 내부 검증 2001건 · 화면 기준선 257장. versionCode 607.
v3.14.32026-08-04
삼분의 일이 아니라 사분의 일이었습니다

앞 판에서 「문턱은 바구니의 삼분의 일」이라 적고 코드에 넣었는데, **잰 것과 안

맞습니다. 삼분의 일이면 20종에서 7인데 좋다고 한 값은 5이고, 7은 재 본 적이

없습니다.** 20종을 문턱별로 다시 쟀습니다:

| 문턱 | 몰린 날 | 비율 | 겹치지 않는 40종 | 업비트 원화 |

|---|---|---|---|---|

| 3 | 77일 | 2.4% | +5.37 (0/200) | +6.63 (0/200) |

| 4 | 49일 | 1.5% | +6.01 (0/200) | +6.98 (0/200) |

| 5 | 40일 | 1.2% | +7.47 (0/200) | +7.22 (0/200) |

| 6~7 | 28·27일 | 0.8% | +8.68 (0/200) | 표본 부족(겹침 13) |

| 8 | 22일 | 0.7% | +7.19 (0/200) | 표본 부족 |

격차만 보면 문턱이 높을수록 좋습니다(6~7에서 +8.68) — 미리 적어 둔 예측 두 절이 다

빗나갔습니다(12승 28패).

그런데 그 빗나감이 5의 진짜 이유를 드러냅니다 — 6종부터 원화에서 겹치는 날이 열세

일뿐이라 확인이 안 됩니다.

> **5를 고르는 이유는 격차가 가장 커서가 아니라, 원화에서 잴 수 있는 마지막 자리이기

> 때문입니다. 말은 더 세게 할 수 있지만 확인할 수가 없습니다.**

코드를 고쳤습니다 — `round(seen/4)`. 한 판 전에 고정값을 걷어낸 자리를 **한 판 만에

다시** 고쳤습니다.

> **일반화는 잰 점을 다 지나가야 합니다. 하나라도 빗나가면 그건 규칙이 아니라

> 눈어림입니다.**

  • 내부 검증 2001건 · 화면 기준선 257장. versionCode 606.
v3.14.22026-08-04
문턱은 바구니를 따라갑니다 — 고정값을 걷어냈습니다

앞 판이 빈틈을 적어 뒀습니다 — **달러 바구니 밖 14종은 겹치는 날이 13일뿐이라 재지

못했다.** 바구니를 달러 자료에서 잡으니 여덟 해가 통째로 쓰여 메워졌습니다.

| 문턱 | 몰린 날 | 비율 | 붙인 곳 | 격차 | 무작위가 더 큰 판 |

|---|---|---|---|---|---|

| 2종+ | 60일 | 1.8% | 달러 바구니 밖 14종 | +6.49 | 0/200 |

| | | | 겹치지 않는 39종 | +5.29 | 0/200 |

| 3종+ | 25일 | 0.8% | 달러 바구니 밖 14종 | +3.50 | 1/200 |

| | | | 겹치지 않는 39종 | +7.01 | 0/200 |

앞 판이 못 잰 칸이 +6.49(0/200)로 섭니다.

그리고 더 큰 것이 나왔습니다 — 문턱은 바구니를 따라갑니다: 20종이면 5, 10종이면 3,

6종이면 2 — 대략 삼분의 일입니다. 6종에 문턱 3을 씌우면 +3.50(1/200)으로 묽어집니다.

> 바구니가 작은데 문턱만 높이면 몰린 날이 너무 드물어져 힘을 잃습니다.

얹은 코드에 있던 결함도 고쳤습니다. 문턱을 3으로 못 박아 두었는데, 네트워크가 반만

되어 여섯 종목만 보이는 날에도 셋을 요구했습니다. 이제 그날 실제로 본 종목 수에서

문턱을 뽑습니다.

미리 적어 둔 예측이 맞았습니다(12승 27패) — 앞 판의 반성대로 **「어느 바구니 밖인지」를

적은 덕**입니다.

  • 내부 검증 2001건 · 화면 기준선 257장. versionCode 605.
v3.14.12026-08-04
얹은 그대로의 바구니로 다시 쟀습니다

앞 판이 얹었는데, 지금까지 잰 것은 무작위로 고른 열 종목이었습니다 — **실제로 얹은

그 열 종목으로는 안 쟀습니다.** 쟀습니다.

원화 자료에서 바구니로 잡히는 종목은 아홉입니다(SUI만 없습니다):

| 문턱 | 몰린 날 | 비율 | 붙인 곳 | 격차 | 무작위가 더 큰 판 |

|---|---|---|---|---|---|

| 3종+(얹은 값) | 14일 | 1.1% | 겹치지 않는 39종 | +6.72 | 0/200 |

| 2종+ | 37일 | 3.0% | 겹치지 않는 39종 | +3.45 | 1/200 |

| | | | 달러 바구니 밖 14종 | −0.49 | 118/200 |

| 4종+ | 8일 | 0.6% | 겹치지 않는 39종 | +6.99 | 0/200 |

얹은 설정이 실제 종목으로도 섭니다. 그리고 셋이 문턱인 이유가 표에 있습니다 —

2종으로 낮추면 잦아지는 대신(1.1% → 3.0%) 달러 바구니 밖에서 −0.49로 선다고 말할 수

없게 됩니다.

> 문턱을 낮추면 더 자주 말하게 되지만, 말할 것이 없어집니다.

미리 적어 둔 예측은 반만 확인됐습니다(11승 27패) — 겹치지 않는 39종에서는 0/200인데,

달러 바구니 밖 14종은 겹치는 날이 13일뿐이라 재지 못했습니다. **「어느 바구니 밖인지」를

안 적은 탓**입니다.

  • 내부 검증 1996건 · 화면 기준선 257장. versionCode 604.
v3.14.02026-08-03
「오늘 시장이 함께 밀렸는가」를 얹었습니다

지난 일곱 판이 하나를 향해 갔습니다. 얹었습니다.

판독 근거 줄에 「뜰 때만 뜨는 줄」이 생깁니다. 정해진 바구니 열 종목에서

거친 국면 + RSI 30 아래인 종목을 세고, 셋 이상일 때만 냅니다. 볼 수 있는 종목이

다섯보다 적으면 아무 말도 안 합니다.

| 왜 그 모양인가 | |

|---|---|

| 왜 세는가 | 혼자 뜬 신호는 +0.50%(40종 −2.43%), 몰린 날은 +7.75% |

| 우연 아닌가 | 이름표 섞기 200판 중 0판만 실제보다 컸습니다 |

| 왜 목록이 아니라 바구니인가 | 바구니 밖 코인·다른 시장에도 통합니다(표본 밖 0/200) |

| 왜 열 종목인가 | 일곱이면 원화에서 8/12로 목록을 탑니다. 열이면 9/12 |

| 왜 늘 안 켜 두는가 | 3종 문턱으로 2.5%의 날, 여덟 해에 열아홉 덩어리 |

대가도 같이 적습니다 — 「같은 날 들어간 것들은 같이 지기도 합니다. 그런 40일 중

12일이 음수였습니다」. 그리고 사나흘 이어질 수 있다고 알려 줍니다.

자료는 이미 있습니다 — 바구니 열 종목 × 일봉 150봉은 경보 작업이 쓰는 규격 그대로이고

캐시를 타므로, 시트를 다시 열어도 다시 받지 않습니다.

  • 내부 검증 1992건 · 화면 기준선 257장. versionCode 603.
v3.13.92026-08-03
바구니는 열 종목쯤이 낫습니다

앞 판이 모양까지 정했으니 이제 얹으면 됩니다. 그런데 이 앱의 기본 목록은 일곱 종목

입니다. 앞앞 판은 3·5·10을 쟀고 일곱은 안 쟀습니다. 얹기 전에 쟀습니다.

| 바구니·문턱 | 겹치지 않는 40종 | | 업비트 원화 | |

|---|---|---|---|---|

| 20종·5종+ | +7.47 | 12/12 | +7.22 | 12/12 |

| 10종·3종+ | +6.89 | 12/12 | +4.71 | 9/12 |

| 7종·2종+ | +5.95 | 12/12 | +4.51 | 8/12 |

| 7종·3종+ | +8.10 (몰린 날 26일) | 12/12 | +8.20 | 5/8 |

| 5종·2종+ | +6.10 | 12/12 | +3.96 | 7/11 |

달러에서는 일곱으로도 열두 판이 모두 섭니다. 원화에서는 8/12로 목록에 따라 갈리고,

열로 늘리면 9/12로 나아집니다.

> 바구니는 열 종목쯤이 낫습니다. 일곱으로도 달러에서는 서지만, 원화는 목록을 탑니다.

문턱을 3종으로 올리면 격차는 커지지만(+8.10) 몰린 날이 26일로 줄고 원화가 나빠집니다 —

덜 자주, 덜 곧게 됩니다.

미리 적어 둔 예측(「두 시장 모두 9/12 이상」)은 빗나갔습니다(11승 26패) — 원화가 8/12

였습니다.

얹을 때 알아야 할 것 셋을 가드로 못 박았습니다: 기본 목록이 몇인지(일곱), 몇 봉이

필요한지(141), 그만큼 받아 오는 길이 있는지(경보 작업의 일봉 규격이 150봉이라 있습니다).

  • 내부 검증 1987건 · 화면 기준선 257장. versionCode 602.
v3.13.82026-08-03
여덟 해에 열두 번, 한 번에 사나흘

앞 판이 「바구니 하나로 세면 된다」로 끝났으니, 얹기 전에 하나 더 물었습니다 —

얼마나 자주 말하는가.

| 자료 | 문턱 | 몰린 날 | 비율 | 5일 이내 이웃 | 덩어리 | 덩어리당 |

|---|---|---|---|---|---|---|

| 코인 20종(3,100일) | 2종+ | 114일 | 3.7% | 94% | 27개 | 4.2일 |

| | 3종+ | 77일 | 2.5% | 92% | 19개 | 4.1일 |

| | 5종+ | 40일 | 1.3% | 83% | 12개 | 3.3일 |

| 겹치지 않는 40종 | 5종+ | 41일 | 2.4% | 93% | 14개 | 2.9일 |

| 업비트 원화 | 5종+ | 8일 | 0.6% | 100% | 2개 | 4.0일 |

> 여덟 해에 열두 번, 한 번에 사나흘입니다.

그래서 늘 켜 두는 줄은 낭비입니다 — 백 날 중 아흔아홉 날은 「오늘은 아니다」만 말하게

됩니다. 뜰 때만 뜨는 표시가 맞고, 뭉쳐 오니 한 번 뜨면 사나흘 이어진다고 알려 주는

편이 정직합니다. 문턱은 3종 이상이 무난해 보입니다(2.5%, 19덩어리).

미리 적어 둔 예측 둘이 다 맞았습니다(11승 25패) — 뭉침은 83~100%로 예측보다 훨씬 셉니다.

가드를 짜면서 하나 배웠습니다. 음성 대조를 「공통 요인 없애기」로 뒀더니 몰린 날이

2일밖에 안 생겨 잴 수가 없었습니다. **뭉침을 만드는 것은 「함께 움직인다」가 아니라

「변동성이 몰려 다닌다」였습니다 — 공통 요인은 몰린 날을 있게** 하고, 변동성 군집은

그 날들을 붙어 오게 합니다.

  • 내부 검증 1982건 · 화면 기준선 257장. versionCode 601.
v3.13.72026-08-03
몰림은 그 코인의 사정이 아니라 그날 시장의 사정입니다

앞 판이 「목록이 열 개쯤 되어야 셀 수 있다」로 끝났습니다. 얹기 전에 먹일 자료

봤습니다 — 홈 화면은 스파크라인용으로 7봉만 받습니다. 150봉은 상세 시트를 열 때만,

그것도 그 코인 하나뿐입니다. 목록에서 세려면 코인 수 × 150봉의 새 조회가 필요합니다.

그래서 다른 길을 쟀습니다 — 정해진 스무 종목에서만 세고, 그 수를 **종목이 하나도

안 겹치는 40종다른 시장인 업비트 원화**에 붙였습니다:

| 바구니 문턱 | 몰린 날 | 붙인 곳 | 격차 | 무작위가 더 큰 판 |

|---|---|---|---|---|

| 3종 이상 | 77일 | 40종 / 원화 | +5.37 / +6.63 | 0/200 / 0/200 |

| 5종 이상 | 40일 | 40종 / 원화 | +7.47 / +7.22 | 0/200 / 0/200 |

| 8종 이상 | 22일 | 40종 | +7.19 | 0/200 |

여섯 칸 중 다섯이 0/200입니다. 종목이 하나도 안 겹치는 자료에도, **통화와 거래소가

다른 시장**에도 통합니다.

> 몰림은 그 코인의 사정이 아니라 그날 시장의 사정입니다.

미리 적어 둔 예측이 표본 밖에서 맞았습니다(10승 25패). 이 문서에서 표본 밖 시험이

이렇게 곧게 선 적은 드뭅니다.

그래서 기능이 싸졌습니다 — 목록마다 대량 조회를 할 필요 없이, **스무 종목짜리 바구니

하나를 하루 한 번 세어** 모두에게 같은 수를 보여 주면 됩니다.

  • 내부 검증 1978건 · 화면 기준선 257장. versionCode 600.
v3.13.62026-08-03
몰림은 목록이 열 개쯤 되어야 셀 수 있습니다

앞 판들이 「몰린 날이 좋은 날」을 세웠는데, 몰림을 스무·마흔 종목 전체에서 셌습니다.

사용자의 관심 목록은 그보다 작습니다. 작은 목록에서 세어도 그 말이 남는지 봤습니다.

| 자료 | 세는 범위 | 격차 중앙 | 무작위가 더 큰 판 | 5% 밑인 판 |

|---|---|---|---|---|

| 코인 20종 | 10종 목록(3종+) | +7.48 | 0/200 | 12/12 |

| | 5종 목록(2종+) | +7.27 | 0/200 | 10/12 |

| | 3종 목록(2종+) | +7.72 | 4/200 | 10/12 |

| 겹치지 않는 40종 | 10종 목록(3종+) | +8.02 | 0/200 | 12/12 |

| | 5종 목록(2종+) | +6.50 | 6/200 | 7/12 |

| | 3종 목록(2종+) | +6.51 | 30/200 | 4/8 |

> 열 종목쯤 담긴 목록이면 그 안에서 세어도 됩니다. 셋이면 안 됩니다.

미리 적어 둔 예측(「5종목에서도 두 자료 모두 무작위 밖」)은 **판의 중앙값으로는

맞았습니다(9승 25패). 다만 판마다 갈립니다** — 40종에서는 열두 판 중 다섯이 5% 위입니다.

기능으로 옮긴다면 화면이 「지금 당신 목록에서 몇 개가 함께 떴는가」를 말하려면 목록에

열 개쯤은 있어야 하고, 목록 크기에 문턱을 두어야 합니다.

  • 내부 검증 1974건 · 화면 기준선 257장. versionCode 599.
v3.13.52026-08-03
자료를 섞으면 사라진다면, 이름표를 섞습니다

앞 판이 막혔습니다 — 「몰린 날이 좋은 날」의 크기를 재려는데, 자료를 섞으면 **몰린 날

자체가 안 생겨** 견줄 값이 없었습니다.

섞을 것을 바꿨습니다. 자료가 아니라 이름표를 섞습니다 — 사건도, 어느 날 몇 종목이

함께 떴는지도 그대로 두고, 각 사건에 붙은 앞 5봉 결과만 사건들 사이에서 뒤섞습니다.

몰림은 하나도 안 지워지니 200판을 돌릴 수 있습니다.

| 자료 | 칸 | 격차 | 95% 띠 | 무작위가 더 큰 판 | |

|---|---|---|---|---|---|

| 코인 20종 | 전체 / 앞 / 뒤 | +7.25 / +10.20 / +3.74 | −2.60~+2.31 등 | 0 / 0 / 1 (200판) | |

| 겹치지 않는 40종 | 전체 / 앞 / 뒤 | +8.97 / +9.22 / +7.58 | −2.65~+2.38 등 | 0 / 0 / 0 | |

| 업비트 원화 | 전체 / 뒤 | +4.05 / +4.83 | −3.17~+4.48 | 5 / 3 | 경계 / 밖 |

달러 두 자료는 여섯 칸 전부 0~1/200입니다. 원화는 전체가 5/200(p≈0.025)로 경계이고

뒷절반만 밖입니다.

> 자료를 섞으면 사라지는 것을 재려면, 자료 말고 이름표를 섞습니다.

열두째 통제로 올렸습니다 — ⑫ 이름표 섞기. 앞 판이 「무작위가 현상을 지우면 크기를 못

잰다」로 끝났고, 이번 판이 그 뒤에 답을 붙였습니다.

미리 적어 둔 예측은 빗나갔습니다(8승 25패) — 「세 자료 모두」라고 적었는데 원화 전체가

경계에서 안이었습니다.

  • 내부 검증 1970건 · 화면 기준선 257장. versionCode 598.
v3.13.42026-08-03
앞 판에서 화면에 적은 「몰림」에 통제를 걸었습니다

앞 판이 「몰린 날이 좋은 날」을 찾아 화면에 적었는데, 그 값에는 **통제를 하나도 안

걸었습니다. 이 문서가 백서른 절 동안 남에게 요구한 것을 제가 방금 내보낸 것에** 안

건 것입니다. 걸었습니다.

| 자료 | 칸 | 격차 | 무작위 | |

|---|---|---|---|---|

| 코인 20종 | 전체 / 앞 / 뒤 | +7.25 / +10.20 / +3.74 | 안 나옴 | ? |

| 겹치지 않는 40종 | 전체 | +8.97 | −4.86~+5.01 | |

| | 뒷절반 | +7.58 | −2.66~−1.59 | |

| 업비트 원화 | 전체 / 뒤 | +4.05 / +4.83 | 안 나옴 | ? |

「안 나옴」이 실패가 아닙니다. 종목마다 따로 섞으면 「다섯 종목이 같은 날 함께 뜨는

일」이 견줄 만큼도 안 생깁니다 — 실제 몰린 사건은 349·393·52건입니다.

> **몰림은 자료의 성질이지 우연이 아닙니다. 그런데 바로 그 때문에, 이 무작위로는 「격차가

> 얼마나 큰가」를 못 말합니다 — 있음과 없음만 말할 수 있습니다.**

앞 판(§8-120)은 무작위가 너무 세서 현상을 안고 오는 경우였고, 이번은 너무 약해서

현상을 통째로 지우는 경우입니다. 둘 다 「무작위 밖」이라는 말을 못 쓰게 만듭니다.

미리 적어 둔 예측은 빗나갔습니다(8승 24패) — 절반의 부호는 전부 같았지만(+10.20/+3.74,

+9.22/+7.58) 「셋 모두 무작위 밖」은 확인하지 못했습니다.

가드가 이 설명을 한 번 뒤집었습니다. 처음엔 사건을 「하위 20%」로 뒀는데 **따로 섞은

쪽이 오히려 몰린 날이 많았습니다**(실제 359 · 무작위 449). 진짜 이유는 「함께 밀려서」가

아니라 사건이 드물어서였습니다. 그대로 적었습니다.

  • 내부 검증 1966건 · 화면 기준선 257장. versionCode 597.
v3.13.32026-08-03
혼자 뜬 신호는 같은 신호가 아닙니다

지금까지 이 신호를 낱개로만 쟀습니다. 뭉치로도 봤습니다.

전부 받아 5봉 보유했을 때(왕복 0.2% 뺀 뒤): 평균 +4.68% · +3.20% · +2.51%,

이긴 비율 65.3% · 61.4% · 64.2%. 낱개 최악은 −38.9% · −45.6% · −27.4% 입니다.

그런데 뜻밖의 것이 나왔습니다:

| | 5종목 이상 함께 뜬 날 | 혼자 뜬 날 |

|---|---|---|

| 코인 20종 | +7.75% (이긴 71.1%) | +0.50% (57.5%) |

| 겹치지 않는 40종 | +6.54% (이긴 73.0%) | −2.43% (37.8%) |

| 업비트 원화 | +5.21% (이긴 84.6%) | +1.16% (58.3%) |

> 몰린 날이 좋은 날이고, 혼자 뜬 신호에는 값이 거의 없습니다.

40종에서는 혼자 뜬 신호가 −2.43%, 이긴 비율 37.8% — 비용을 빼면 지는 쪽입니다.

되돌림이 사는 자리는 온 시장이 함께 밀린 뒤이고, 한 종목만 뜬 것은 그 종목 사정입니다.

몰림에는 대가도 있습니다 — 5종목 이상인 40일 중 12일이 음수, 최악의 날 −10.97%.

같은 날 들어간 것들은 같이 집니다.

미리 적어 둔 예측은 빗나갔습니다(8승 23패) — 원화는 몰린 날의 몫이 26.9%로 절반에

못 미쳤습니다. 그런데 빗나간 자리에서 더 큰 것이 나왔습니다: 몰림이 위험인 줄

알고 물었는데 신호의 질이었습니다.

RSI 설명에 그대로 적었습니다.

  • 내부 검증 1963건 · 화면 기준선 257장. versionCode 596.
v3.13.22026-08-03
화면이 쓰는 창으로 다시 쟀고, 표시가 흔들리는지도 봤습니다

앞 판이 창을 30·110으로 바꿨는데, 절반 시험과 기간 사다리는 60·250으로 잰 값이었습니다.

화면이 실제로 쓰는 창으로 다시 쟀습니다. 그리고 아무도 안 물은 것을 하나 더 물었습니다 —

그 표시가 흔들리지 않는가.

절반 시험 — 통과합니다:

| 자료 | 전체 | 앞절반 | 뒷절반 |

|---|---|---|---|

| 코인 20종 | +5.61 | +6.94 | +4.87 |

| 겹치지 않는 40종 | +4.81 | +5.64 | +5.02 |

| 업비트 원화 | +3.77 | 표본 부족 | +4.71 |

기간 사다리 — 다섯 모두 무작위 밖이고, 1시간이 비용을 넘어섰습니다:

| 기간 | 초과 | 원값 |

|---|---|---|

| 15분 / 30분 | +0.19 / +0.17 | +0.17% / +0.17% |

| 1시간 | +0.35 | +0.31% |

| 4시간 / 일봉 | +1.02 / +5.61 | +0.91% / +5.27% |

앞 판까지는 1시간 원값이 +0.17%로 비용에 먹히는 쪽이었는데, **짧은 창에서는 +0.31%로

올라 0.2%를 넘습니다.** 창을 줄인 것이 결과적으로 짧은 기간에 유리했습니다.

흔들리는가 — 안 흔들립니다:

| 자료 | 한 봉 만에 거침↔조용 | 칸이 바뀜 | 양 끝 칸에 있던 시간 |

|---|---|---|---|

| 코인 20종 | 0.26% | 8.0% | 71.9% |

| 업비트 원화 | 0.27% | 8.5% | 70.4% |

| 1시간 | 0.34% | 8.4% | 71.7% |

양 끝이 한 봉 만에 뒤집히는 일은 천에 서넛, 칸이 바뀌는 것 자체는 여덟 봉에 한 번쯤.

그리고 양 끝 칸에 있는 시간이 71.9%로 삼등분의 기대값(66.7%)보다 높습니다 — 변동성이

몰려 다니니 가운데를 덜 지납니다. 화면으로는 좋은 성질입니다.

미리 적어 둔 예측 셋이 다 맞았습니다(8승 22패). 다만 안정성은 쉬운 시험이었을 수

있습니다 — 겹치는 창이라 이웃한 두 봉은 원래 거의 같으니까요. 값을 한 것은 「안 흔들린다」

보다 「그런데도 여덟 봉에 한 번은 바뀐다」 쪽입니다.

  • 내부 검증 1959건 · 화면 기준선 257장. versionCode 595.
v3.13.12026-08-03
앞 판에서 얹은 줄에 먹일 자료가 없었습니다

앞 판(v3.13.0)에 결함이 있었습니다. 새로 얹은 변동성 칸은 311봉(창 60 + 견줄

250 + 1)이 있어야 나오는데, 이 앱은 어느 기간이든 150봉만 받아 옵니다. 계산도 맞고

줄도 붙어 있고 시험 다섯이 전부 통과했는데 — 모든 사용자에게 늘 「아직 모른다」

보였습니다.

> 붙이긴 붙였는데 먹일 자료가 없었습니다.

창을 줄여도 서는지 먼저 쟀습니다:

| 창 | 필요 봉 | 코인 20종 | 40종 | 업비트 원화 |

|---|---|---|---|---|

| 60·250 | 311 | +5.92 (원값 +5.59%) | +4.19 | +2.83 (+2.22%) |

| 30·110 | 141 | +5.61 (원값 +5.27%) | +4.81 | +3.77 (+3.38%) |

| 30·60 | 91 | +3.37 | +4.70 | +3.84 |

전부 무작위 밖이고 30·110은 크기도 안 줄었습니다 — 원화는 오히려 커집니다.

창을 30·110으로 바꿨습니다. 141봉이면 되고 앱은 150봉을 받으니 여유 9봉입니다.

왜 시험이 다 통과했는데 못 잡았나. 가드 다섯은 계산배선을 봤습니다 —

아무도 「그 계산에 먹일 자료가 앱에 있는가」를 안 물었습니다. 그 물음을 가드로 만들었습니다:

소스에서 받아 오는 봉 수를 긁어 요구 봉 수와 견주고, **여유가 다섯 봉 미만이면 그것도

실패**로 봅니다(거래소가 한두 봉 덜 주는 날 줄이 조용히 사라지니까요).

> 얹었다고 끝이 아닙니다 — 얹은 것도 재야 합니다.

  • 내부 검증 1955건 · 화면 기준선 257장. versionCode 594.
v3.13.02026-08-03
화면에 「변동성 칸」이 하나 늘었습니다

지난 네 판이 같은 말로 끝났습니다 — 필요한 것은 하나다. 이번에 얹었습니다.

판독 화면의 근거 줄에 「변동성 칸」이 생깁니다 — 지난 60봉 변동성이 **지난 250봉

안에서 어느 칸인지(조용·보통·거침)와, 지금 하루 변동성이 몇 %인지. 봉이 311봉**

(60 + 250 + 1)보다 적으면 「아직 모른다」고 말합니다. 조용히 빠지지 않습니다.

왜 이것만 새로 내는가:

| | |

|---|---|

| 남은 하나가 여기 삽니다 | 스물한 기법 중 크기로 남은 것이 거친 국면의 과매도 |

| 앱의 표로는 못 고릅니다 | ADX 국면은 그 칸을 빼놓고(20종 중 1종), RSI 표는 사건이 일곱 배 넓습니다 |

| 앞을 안 보고도 섭니다 | 지난 250봉 분위로 정해도 +5.92(코인 20종) · +4.19(40종) · +2.83(원화) |

| 어느 기간에서나 뜻이 있습니다 | 15분~일봉 다섯 모두 무작위 밖 |

경고를 함께 냅니다. 거친 칸일 때는 「과매도가 이 칸에서만 크기가 있었다」와

「꼬리도 거칠다 — 5봉 뒤 하위 5%가 −19.86%」를 같이 적고, 조용한 칸일 때는

「이 칸에서는 되돌림이 0 이거나 음수였다」고 적습니다. 숫자만 내면 신호로 읽히니까요.

> 재서 없앤 것이 스물, 재서 더한 것이 하나입니다.

  • 내부 검증 1952건 · 화면 기준선 257장. versionCode 593.
v3.12.72026-08-03
국면을 걸면 분봉에서도 섭니다 — 다만 비용이 셋을 먹습니다

앞 판이 인과 눈금으로 서는 하나를 남겼습니다. 얹기 전에 하나 더 봐야 했습니다 — 이

앱은 여섯 기간을 줍니다. 화면에 칸을 내면 여섯 기간 전부에 나오니까요.

| 기간 | 초과(%p) | 무작위 | | 원값 | 이긴 비율 | 사건 |

|---|---|---|---|---|---|---|

| 15분 | +0.22 | +0.00~+0.04 | | +0.20% | 60.9% | 3,220 |

| 30분 | +0.21 | +0.04~+0.05 | | +0.18% | 58.0% | 3,247 |

| 1시간 | +0.20 | −0.06~+0.06 | | +0.17% | 54.9% | 3,753 |

| 4시간 | +1.59 | +0.28~+0.43 | | +1.56% | 61.4% | 1,677 |

| 일봉 | +5.92 | +0.54~+0.91 | | +5.59% | 71.2% | 410 |

다섯 기간 모두 무작위 밖입니다. 그리고 크기가 봉 길이를 따라 단조로 오릅니다.

그런데 비용이 셋을 먹습니다. 원값이 15분 +0.20%, 30분 +0.18%, 1시간 +0.17%라

왕복 0.2%면 거의 다 사라집니다.

> 비용을 넘는 것은 4시간(+1.56%)과 일봉(+5.59%)뿐입니다.

앞서 「일봉에서만 크기가 있다」고 적은 것은 국면을 안 걸고 잰 값이었습니다.

「없다」와 「있는데 비용에 먹힌다」는 다른 말이고, 뒤가 더 정확합니다. RSI 설명을

그렇게 고쳤습니다.

미리 적어 둔 예측(「일봉에서만 선다」)은 빗나갔습니다(6승 22패) — **틀린 쪽이 더 나은

소식인 판**은 이 문서에서 드뭅니다.

  • 내부 검증 1947건 · 화면 기준선 257장. versionCode 592.
v3.12.62026-08-03
앞을 안 보고 잘라도 그대로 섭니다

앞 판이 「필요한 것은 하나 더다 — 지난 60봉 변동성이 어느 칸인가」로 끝났습니다. 그런데

그 칸을 어떻게 정할 것인가가 남아 있었습니다. 지금까지 쓴 「거친 삼분의 일」은

표본 전체를 놓고 나눈 칸이라 미래를 봅니다.

「지난 250봉 안에서의 분위」로 다시 잘랐습니다:

| 자료 | 앞을 본 눈금 | 인과 눈금 | 원값 | 이긴 비율 |

|---|---|---|---|---|

| 코인 20종 | +6.10 | +5.92 (무작위 +0.08~+1.21) | +5.59% | 71.2% |

| 겹치지 않는 40종 | +4.93 | +4.19 (+0.16~+1.55) | +2.51% | 60.5% |

| 업비트 원화 | +4.55 | +2.83 (−1.37~+0.74) | +2.22% | 64.0% |

차이가 작습니다. 원화가 가장 많이 줄지만(−38%) 그래도 무작위 밖입니다.

절반 시험도 통과합니다 — 달러 두 자료는 인과 눈금으로 앞뒤 절반 모두 무작위

밖입니다(+8.12·+3.99, +5.34·+4.86). 이 문서에서 이만큼 버틴 것은 없었습니다. 원화

앞절반은 여전히 얇습니다(1종) — 「없다」가 아니라 「아직 못 잽니다」.

백스물여섯 절을 걸어 살아남은 하나를, 이제 문장 하나로 쓸 수 있습니다:

> **지난 60봉 변동성이 지난 250봉 기준 위 3분의 1에 있고 RSI 가 30 아래일 때, 앞 5봉

> 수익률의 중앙값이 그 칸의 중앙값보다 +2.8 ~ +5.9%p 높았습니다 — 세 자료에서,

> 달러 두 자료는 앞뒤 절반 모두에서.**

그리고 그 문장의 어느 조각도 이 앱 화면에 없습니다. 앱의 국면 표는 그 칸을 빼놓고,

앱의 RSI 표는 그 사건이 아닙니다. 필요한 것은 여전히 하나입니다 — **지난 60봉 변동성이

지난 250봉 안에서 어느 칸인가.**

함께 적을 것은 그대로입니다 — 이 자리는 거친 국면이라 5봉 뒤 하위 5%가 −19.86%입니다.

이긴 비율 71.2%는 그 꼬리와 함께 옵니다.

  • 내부 검증 1943건 · 화면 기준선 257장. versionCode 591.
v3.12.52026-08-03
앱의 국면 표는 그 칸을 고르는 게 아니라 빼놓습니다

앞 판이 하나를 남겼습니다 — ADX 횡보 칸은 두 시장 모두 무작위 밖이었는데(+0.63 ·

+0.91) 절반 시험을 안 걸었습니다. 걸었습니다.

| | 전체 | 앞절반 | 뒷절반 |

|---|---|---|---|

| 코인 20종 | +0.63 | +1.86 밖 (원값 +2.29%) | −0.04 안 (원값 −0.74%) |

| 업비트 원화 | +0.91 | +2.36 밖 (원값 +1.93%) | +0.82 안 (원값 +0.51%) |

두 시장 다 뒷절반이 안이고 코인은 원값이 음수입니다. 앞 판과 거울처럼 반대입니다 —

거기서는 앞절반이 얇아 못 쟀고, 여기서는 뒷절반에서 사라집니다.

그리고 결정적인 것. 사건을 「RSI 30 아래」로 놓고 선택기를 견줬습니다:

| 선택기 | 코인 20종 | 업비트 원화 |

|---|---|---|

| 변동성 상 | +4.51 (무작위 +0.86~+1.62) 밖 · 원값 +4.21% | +4.60 (−0.16~+0.85) 밖 · 원값 +3.05% |

| ADX 횡보 | 표본 부족 — 20종 중 1종 | 표본 부족 — 14종 중 0종 |

재지도 못했습니다. RSI 30 아래는 값이 한쪽으로 내리 밀릴 때 나오고, 앱은 그 자리를

「추세」라고 부릅니다.

> 앱의 국면 표는 그 칸을 고르는 게 아니라 사실상 빼놓습니다.

앞 판은 「겹침이 +3.8%p 뿐」이라고 적었는데, 이번 판은 더 세게 말합니다 — **겹침이 적은

정도가 아니라 배타적**입니다.

한편 변동성으로 고르면 앱의 계산 그대로도 나옵니다(+4.51 · +4.60) — 앞앞 판의 수를

앱의 파이프라인으로 다시 확인한 셈입니다.

그래서 할 일이 단순해집니다. 앱의 국면 표를 손봐서 될 일이 아닙니다 — ADX 는 다른 것을

재고 있고 그건 그것대로 옳습니다. 필요한 것은 하나 더입니다: **지난 60봉 변동성이

어느 칸인가.**

  • 내부 검증 1939건 · 화면 기준선 257장. versionCode 590.
v3.12.42026-08-03
화면에 적은 수와 화면이 내는 표는 같은 것이 아닙니다

앞 판이 처음으로 쓸 만한 자리를 찾았습니다 — 거친 국면 + RSI 30 아래. 그래서 남은

물음 하나를 걸었습니다. 앱이 그걸 보여 주는가.

못 보여 줍니다 — 두 겹으로. 앱의 계산(150봉 창)으로 앱의 RSI 표(강세)를 사건으로

놓고 재면:

| 가르는 방법 | 코인 20종 초과 | 무작위 | | 원화 초과 | |

|---|---|---|---|---|---|

| 변동성 상(앞 판의 그 칸) | +0.01 | −0.17~+0.07 | 안 | −1.35 | 밖(반대) |

| ADX 추세 | −0.40 | −0.16~+0.10 | 밖(반대) | −0.33 | 밖(반대) |

| ADX 횡보 | +0.63 | −0.31~+0.18 | | +0.91 | |

| 응축 아님 | −0.38 | −0.30~+0.12 | 밖(반대) | −0.66 | 밖(반대) |

첫 줄이 전부입니다. 앞 판이 +4.16(원화 +4.04)을 잰 바로 그 칸인데, 사건을

앱의 표로 바꾸니 +0.01−1.35가 됩니다.

왜냐하면 사건이 일곱 배 넓습니다. 「RSI 30 아래」는 거친 칸에서 604건인데 앱의

강세 RSI 표는 같은 칸에서 4,493건입니다. 앱은 국면에 따라 과매도 표를 눌러 주고

넓혀 주는 규칙을 씁니다.

> 화면에 적은 수는 「RSI 값이 30 아래」이고, 화면이 내는 표는 그 수가 아닙니다.

앱의 국면 표도 변동성 국면이 아닙니다 — 거친 칸의 추세 비율이 전체보다 3.8%p

높을 뿐입니다(54.1% 대 50.3%).

그래도 하나 나왔습니다 — ADX 횡보 칸에서는 두 시장 모두 무작위 밖입니다(+0.63 ·

+0.91, 원값 +0.37% · +0.51%). 크기는 한참 못 미치고 절반 시험도 아직 안 걸었습니다.

RSI 설명에 그 간격을 적었습니다. 앞 판까지 적어 둔 「+4.16%p」 「+4.04%p · 68.1%」를

앱의 표가 켜졌을 때의 수로 읽지 않으시도록.

  • 내부 검증 1936건 · 화면 기준선 257장. versionCode 589.
v3.12.32026-08-03
원화에서도 섭니다 — 다만 뒷절반에서만입니다

앞 판이 남긴 첫 빈틈을 갚습니다 — 원화에서는 안 쟀습니다. 이 앱을 쓰시는 분이 실제로

보는 시장입니다. 거친 삼분의 일에서, 귀무는 블록 5:

| | 초과(%p) | 무작위 범위 | | 원값 중앙 | 이긴 비율 | 종목·사건 |

|---|---|---|---|---|---|---|

| 원화 RSI 30 아래 | +4.04 | −0.44 ~ +2.43 | | +2.66% | 68.1% | 12종 249건 |

| 달러(같은 길이) | +5.53 | +1.42 ~ +3.35 | 밖 | +4.51% | 66.5% | 9종 147건 |

| 원화 볼린저 하단 | +3.22 | +0.07 ~ +2.08 | | +2.02% | 61.8% | 14종 352건 |

| 원화 20봉 최저 | +1.66 | −0.07 ~ +1.42 | | +0.46% | 55.1% | 14종 799건 |

셋 다 무작위 밖이고, 셋 다 원값이 양수입니다. 「원화에서는 네 칸 모두 구별되지

않는다」로 끝냈던 그 시장입니다.

그런데 앞뒤로 갈라 보면 셋 다 앞절반은 안, 뒷절반은 밖입니다. 앞절반의 RSI 사건은

108건(6종)뿐이라 무작위 띠가 −1.28~+4.42로 넓습니다 — 그 띠에는 뒷절반의 +5.72를

넣어도 들어갑니다.

> 얇으면 못 잽니다 — 「무작위 안」은 「없다」가 아니라 「아직 모른다」입니다.

업비트 자료가 2022-10부터라 앞절반이 700봉이 안 됩니다. 다음 해에 다시 잴 자리

적어 두었습니다.

미리 적어 둔 예측은 세 절 중 둘이 맞고 하나가 틀려 빗나감입니다(5승 19패).

「셋 다 맞아야 맞음으로 적는다」고 먼저 적어 두었기 때문입니다.

그래도 남는 것은 큽니다 — 백스물세 절 만에 처음으로, **이 앱을 쓰시는 분이 실제로

보는 시장에서 원값이 양수이고 무작위 밖인 자리**를 하나 찾았습니다.

  • 내부 검증 1933건 · 화면 기준선 257장. versionCode 588.
v3.12.22026-08-03
국면으로 가르니 죽었던 넷이 되살아났습니다

「구별되지 않는다」로 끝냈던 절이 스물 몇 개 있고 그 전부가 한 솥이었습니다.

죽은 기법 열 가지를 한꺼번에 국면으로 갈랐습니다. 거친 삼분의 일에서(초과, %p ·

괄호는 무작위 범위):

| 기법 | 코인 20종 조용 | 코인 20종 거침 | 40종 조용 | 40종 거침 |

|---|---|---|---|---|

| RSI 30 아래 | +1.30 | +4.16 (+0.16~+1.46) | +0.62 | +5.45 (+0.32~+0.85) |

| 볼린저 하단 | +0.21 | +2.76 (+0.58~+1.29) | +0.51 | +3.31 (+0.30~+1.42) |

| 20봉 최저 | +0.27 | +2.18 (+0.35~+0.77) | +0.07 | +2.33 (+0.28~+0.84) |

| 골든크로스 | −0.13 | −0.79 (+0.19~+0.53) | +0.31 | −1.55 (−0.46~+0.35) |

> 과매도 계열은 거친 국면에서 살아나고, 교차 계열은 거친 국면에서 더 죽습니다.

절반으로 또 갈랐고, 원값으로도 봤습니다:

| 기법(거친 칸) | 원값 중앙 | 이긴 비율 | 사건 | 절반 시험 |

|---|---|---|---|---|

| RSI 30 아래(코인 20종) | +3.72% | 61.8% | 604 | 네 칸 모두 밖 |

| RSI 30 아래(40종) | +3.25% | 60.5% | 673 | (같음) |

| 볼린저 하단 | +2.47% · +1.52% | 60.3% · 54.5% | | 셋 밖 하나 안 |

| 20봉 최저 | +1.89% · +0.59% | 57.4% · 51.8% | | 네 칸 모두 밖 |

| 골든크로스 | −1.09% · −3.48% | 45.4% · 36.0% | | 하나 밖 |

앞 판과 다릅니다 — 여기서는 원값도 양수입니다. 왕복 0.2%를 빼도 남습니다.

그래도 함께 적습니다. 이 자리는 거친 국면이라 5봉 뒤 하위 5%가 −19.86%, 하위 1%가

−32.20%입니다. 이긴 비율 61.8%는 그 꼬리와 함께 옵니다. 그리고 이 판은 달러 두

자료뿐이고 원화에서는 아직 안 쟀습니다.

다만 국면은 사후가 아니라 지금 알 수 있습니다 — 지난 60봉 변동성은 오늘 보이는

값입니다. 이 문서에서는 드문 성질입니다.

RSI 설명과 이동평균 설명에 각각 적었습니다.

  • 내부 검증 1929건 · 화면 기준선 257장. versionCode 587.
v3.12.12026-08-03
부호 반전이 풀렸습니다

앞 판은 「왜 자산군마다 부호가 반대인지는 모른다」로 끝났습니다. 미리 적고 쟀습니다 —

이번엔 지평·절 나누기·귀무를 모두 적었습니다.

거친 칸을 「지난 60봉이 올랐나」로 다시 가르면, 어디서나 「하락 뒤」가 더 좋습니다

(다섯 자료 × 두 절반, 열 칸 전부 같은 부호). 갈리는 것은 규칙이 아닙니다.

갈리는 것은 거친 국면이 어느 쪽에서 오느냐입니다:

| | 거친 칸의 상승 몫 | 전체 봉의 상승 몫 | 차이 |

|---|---|---|---|

| 코인 20종 | 50.1% | 46.1% | +4.0%p |

| 겹치지 않는 40종 | 44.7% | 35.5% | +9.2%p |

| 업비트 원화 | 49.4% | 45.7% | +3.7%p |

| 미국 대형주 | 51.9% | 61.7% | −9.8%p |

| 주가지수 | 47.7% | 64.0% | −16.3%p |

코인의 변동성은 급등에서도 옵니다. 주식·지수의 변동성은 하락에서 옵니다.

(뒤의 것은 교과서에 있는 레버리지 효과이고, 앞의 것은 코인의 성질입니다.)

규칙 하나 × 조성 둘 = 앞 판의 부호 반전입니다. **뭉뚱그린 부호가 뒤집힌 것이지, 규칙이

뒤집힌 게 아닙니다.**

미리 적어 둔 예측은 맞았습니다 — 스물두 번 만에, **기제가 숫자로 확인된 것은

처음**입니다(4승 18패).

그래도 단서를 함께 적습니다. 절반으로 또 갈라 보면 열 칸 전부 부호는 같지만, 무작위

밖으로 나간 것은 넷뿐이고 두 절반 모두 나간 자산군은 하나도 없습니다.

> 방향은 믿고 크기는 믿지 않습니다.

RSI 설명에 그대로 적었습니다.

  • 내부 검증 1926건 · 화면 기준선 257장. versionCode 586.
v3.12.02026-08-03
블록이 사건보다 길면 그건 귀무가 아닙니다

앞 판에서 사건보다 칸 자체가 큰 수였습니다. 그래서 칸을 쟀습니다 — 귀무의 **블록

길이를 사다리로** 놓고. 겹치지 않는 40종, 앞 20봉(종목 전체 중앙값 대비, %p):

| | 실제 | 블록 1 | 블록 20 | 블록 60 | 블록 120 | 블록 250 |

|---|---|---|---|---|---|---|

| 조용 | +2.31 | +0.35~+0.75 | −0.36~+1.02 | +0.54~+1.53 | +1.14~+1.66 | +2.02~+2.28 |

| 거침 | −2.33 | −0.83~+1.26 | −1.57~+0.57 | −1.73~−0.64 | −1.85~−1.03 | −2.48~−2.16 |

블록을 늘릴수록 귀무가 실제로 다가옵니다. 250봉에서는 거의 겹칩니다. 첫 반응은

「그러니 국면은 변동성 군집의 산술이다」였는데, 틀렸습니다.

여기서 「사건」은 60봉 창으로 잰 국면입니다. 250봉 블록은 그 60봉을 **통째로 안고

옵니다.** 부수지 않은 것을 두고 「귀무가 재현했다」고 말하면, 재현한 것은 귀무가 아니라

같은 자료의 복사본입니다.

> 블록이 사건보다 길면 그건 귀무가 아니라 복사본입니다.

유효한 귀무(블록 20 이하)로 다시 읽으면 — 국면은 방향에 대해 무언가를 말합니다.

겹치지 않는 40종 −0.72(귀무 −0.44~−0.02), 업비트 원화 −0.64(귀무 −0.13~+0.28).

다만 자산군마다 부호가 다릅니다 — 미국 대형주 +0.09, 주가지수 +0.25(열두 종목

전부 양수). 왜 반대인지는 모릅니다.

미리 적어 둔 예측 「250봉 블록에서도 살아남는다」는 빗나갔습니다(3승 18패). 지평도

적었고 두 절로 나눠 적었는데, 이번엔 귀무를 잘못 골랐습니다.

> 통제를 거는 것과 옳은 통제를 고르는 것은 다른 일입니다.

RSI 설명에 국면 자체를 잰 결과를 적었습니다.

  • 내부 검증 1923건 · 화면 기준선 257장. versionCode 585.
v3.11.992026-08-03
그것은 「덜 잃는 것」이었습니다

앞 판까지 남은 하나(5봉 국면 스위치)를 쓸 수 있는지 봤습니다. 열세 절 동안 쓴 잣대는

전부 「그 칸의 중앙값보다 얼마나 나은가」였습니다. 시장의 표류를 제 몫으로 돌리지

않으려고 그렇게 정했고 그건 옳습니다. 그런데 원값을 한 번도 안 봤습니다.

봤습니다(5봉 뒤 중앙값, 왕복 0.2% 전):

| 거친 삼분의 일 | 사건 뒤 원값 | 비용 뒤 | 그 칸 전체 | 초과 | 양수 종목 |

|---|---|---|---|---|---|

| 코인 20종 | +1.33% | +1.13% | −0.24% | +1.57 | 17/20 |

| 겹치지 않는 40종 | −0.75% | −0.95% | −1.88% | +1.13 | 9/40 |

| 업비트 원화 | −0.56% | −0.76% | −1.22% | +0.66 | 4/14 |

초과는 셋 다 양수인데 원값은 둘이 음수입니다. 거친 국면은 그 자체가 내려가는

구간이고, 사건 뒤가 그보다 덜 내려갈 뿐입니다.

> 거친 국면의 되돌림은 「덜 잃는 것」이지 「버는 것」이 아닙니다.

꼬리도 사건이 아니라 국면이 만듭니다. 5봉 뒤 하위 5%가 조용한 칸 −13.28%, 거친 칸

−19.86%인데, 그 칸 전체(−12.01%·−18.78%)와 거의 같습니다. 꼬리를 만드는 것은 「과매도에서

샀다」가 아니라 「거친 국면에 있었다」입니다.

미리 적어 둔 예측은 두 절 다 빗나갔습니다(3승 17패) — 「비용 빼도 양수」는 세 자료 중

하나만 맞았고, 「꼬리가 두 배 이상」은 1.1~1.5배였습니다. 이번엔 지평(h=5)까지 적었는데도

틀렸습니다. 문장을 더 정확히 쓰는 것과 옳게 쓰는 것은 다른 일입니다.

RSI 설명에 원값과 초과를 갈라 적었습니다. 「+1.57%p」를 버는 값으로 읽지 않으시도록.

  • 내부 검증 1919건 · 화면 기준선 257장. versionCode 584.
v3.11.982026-08-03
그 스위치는 5봉짜리입니다

앞 판에서 「갈랐으면 절반으로 또 갈라라」를 규칙으로 덧댔습니다. 그 규칙을 **남의 주장이

아니라 앞앞 판에서 제가 낸 결론**에 먼저 걸었습니다 — 「조용하면 없다」도 「원화도 갈라

보면 나온다」도 갈라서 얻은 수입니다.

각 절반이 제 앞의 250봉을 워밍업으로 보게 하고, 귀무는 절반마다 여섯 판씩 뽑았습니다.

표의 값은 거침 − 조용(%p):

| 자료 | 앞절반 | 귀무 | 뒷절반 | 귀무 | 종목 |

|---|---|---|---|---|---|

| 코인 20종 | +1.58 | −0.74~+1.03 | +1.26 | −0.52~+0.45 | 17/20 · 17/20 |

| 겹치지 않는 40종 | +1.16 | −0.76~+0.96 | +2.29 | −0.80~+0.09 | 25/37 · 35/40 |

| 업비트 원화 | +0.69 | −0.95~+0.62 | +1.81 | −0.66~+1.10 | 8/14 · 13/14 |

| 미국 대형주 | +0.73 | −0.49~+0.21 | −0.06 | −0.13~+0.30 | 18/20 · 10/20 |

세 코인 자료 모두 두 절반에서 섭니다. 앞 판이 뭉뚱그린 값으로 겨우 건져낸 원화가,

절반으로 가르니 뒷절반에서 더 또렷해졌습니다(13/14).

그런데 20봉에서는 안 섭니다 — 여덟 칸 중 여섯이 귀무 안이고, 미국 대형주는 두 절반의

부호가 갈립니다(+0.91 → −0.62). 앞앞 판이 표에 넣었던 20봉 삼등분은 **절반 시험을

통과하지 못합니다.**

> 이 스위치는 5봉짜리입니다.

미리 적어 둔 예측 「두 절반 모두에서 선다」는 h=5 에서 맞았습니다(3승 16패). 다만

문장에 지평을 안 적어 20봉을 놓쳤습니다 — 다음부터는 어느 지평에서인지까지 적습니다.

미국 대형주는 앞절반에만 있었습니다.

RSI 설명에 그대로 적었습니다.

  • 내부 검증 1915건 · 화면 기준선 257장. versionCode 583.
v3.11.972026-08-03
갈랐으면 절반으로 또 갈라야 합니다

앞 판에서 「국면으로 갈라 보기」를 통제로 올렸으니, 그것을 **이 앱이 화면에 적어 둔

「구별되지 않는다」에 되돌려 걸었습니다.** 앱의 실제 계산(150봉 창)으로 판정을 내고,

앞 20봉 수익률에서 그 칸의 중앙값을 뺐습니다:

| 칸 | 코인 20종 격차 | 겹치지 않는 40종 격차 |

|---|---|---|

| 뭉침 | +0.38 | −1.05 |

| 조용 | −0.03 | +0.70 |

| 거침 | +2.16 | −2.83 |

거친 칸에서 두 자료의 부호가 반대입니다. 같은 스무 종목을 앞뒤로 갈라 봤습니다:

| 칸 | 조용 | 거침 |

|---|---|---|

| 앞절반(1,278봉) | +4.39 | +3.08 |

| 뒷절반(1,278봉) | +0.14 | −4.12 |

| 40종과 같은 길이(921봉) | −1.47 | −3.09 |

같은 코인, 같은 코드, 시기만 다릅니다. 부호를 가른 것은 종목이 아니라 시기였습니다.

그리고 아무것도 없는 자료에서도 그만큼 나옵니다. 신호를 하나도 안 심고(되돌림도

이어짐도 없음) 「판정」 자리에 앞을 전혀 못 보는 값을 넣었는데도, 갈라 보면

앞절반 거침 +4.26, 뒷절반 거침 −6.66 이 나옵니다. 뭉뚱그리면 ±0.6 안입니다.

> 아무것도 없는 곳에서도 갈라 보면 큰 수가 나옵니다.

왜인지 처음에 세운 설명은 틀렸습니다. 「종목들이 함께 움직여서」인 줄 알고 공통 요인을

빼 봤는데 그래도 −3.27 이 나왔습니다. 진짜 이유는 「강세」가 시간에 몰려 있다

것입니다 — 판정은 한 번 켜지면 한동안 유지되니, 작은 칸 하나에 들어오는 강세 창이 특정

시기 몇 덩어리뿐입니다. 봉마다 새로 던지는 동전으로 바꾸면 가장 큰 칸이 −0.76 으로

주저앉습니다.

그래서 규칙에 규칙을 덧댔습니다 — ⑪ 을 걸었으면 ④(절반 가르기)를 반드시 함께 겁니다.

「높음과 낮음의 방향은 구별되지 않는다」는 이 통제를 견뎠습니다. 다만 이유가

「어느 칸에서도 0 이라서」가 아니라 **「칸마다 크게 나오는데 시기를 바꾸면 부호가

뒤집혀서」**입니다. 신뢰도 설명에 그렇게 적었습니다.

  • 내부 검증 1911건 · 화면 기준선 257장. versionCode 582.
v3.11.962026-08-03
원화에서도 국면으로 가르면 모양이 나옵니다

앞 판에서 「해마다 다르다」와 「조용하면 없다」가 같은 이야기인지 미리 적고 쟀습니다.

아니었습니다. 시그마로 크기를 맞춰도 해간 편차가 안 줄어듭니다(1.44배 → 1.40배,

40종은 1.69배 → 2.05배). 변동성이 같은 두 해가 크게 다릅니다 — 2019 와 2022 는

둘 다 4.77% 인데 +0.153 대 +0.340, 2024 와 2025 는 4.46%·4.43% 인데 +0.013 대

+0.202 입니다.

> 국면은 변동성만이 아닙니다. 무엇이 더 있는지는 모릅니다.

그 국면 잣대를 앞앞 판의 업비트 원화에 걸었더니, 원화가 돌아왔습니다.

귀무는 열 판씩 뽑았습니다:

| | 조용한 삼분의 일 | 귀무 열 판 | 거친 삼분의 일 | 귀무 열 판 |

|---|---|---|---|---|

| 업비트 원화 h=5 | −0.50 (14종 중 2종 양수) | −0.32 ~ +0.75 | +0.66 (11종 양수) | −0.34 ~ +0.54 |

| 바이낸스 달러 h=5 | −0.05 (9/20) | −0.08 ~ +0.45 | +1.57 (20/20) | −0.42 ~ +0.30 |

| 업비트 원화 h=20 | −0.09 (5/14) | −0.25 ~ +1.19 | −0.11 (7/14) | −1.17 ~ +0.75 |

원화 h=5 의 두 칸이 모두 귀무 밖으로 나갑니다 — 조용한 칸은 아래로, 거친 칸은 위로.

앞앞 판은 모든 봉을 한 솥에 넣고 「구별되지 않는다」고 적었는데, 그 솥 안에서

부호가 반대인 두 국면이 서로를 지우고 있었습니다.

다만 크기는 달러의 절반이 안 되고(+0.66 대 +1.57), 20봉에서는 여전히 아무것도 서지

않습니다. 뒤집는 것이 아니라 좁히는 것입니다. RSI 설명을 그렇게 고쳤습니다.

여기서 열한째 통제가 생겼습니다 — 「국면으로 갈라 보기」.

> 뭉뚱그린 0 은 결론이 아니라 물음입니다.

  • 내부 검증 1908건 · 화면 기준선 257장. versionCode 581.
v3.11.952026-08-03
조용한 국면에는 그 되돌림이 아예 없습니다

§8-114 는 「해마다 다르다」에서 멈췄습니다. 무엇이 다른 해를 만드는지 두 후보를

미리 적고 쟀습니다 — 둘 다 지난 자료만으로 가릅니다(지난 60봉 변동성 · 200봉 평균).

직전 1봉 하위 20% → 앞 5봉, 그 칸 안의 중앙값을 뺀 값(%p):

| 칸 | 코인 20종 | 겹치지 않는 40종 | 미국 대형주 |

|---|---|---|---|

| 변동성 하 | −0.05 (양수 9/20) | −0.49 (13/40) | −0.07 |

| 변동성 중 | +0.89 (17/20) | +0.66 (31/40) | +0.04 |

| 변동성 상 | +1.57 (20/20) | +1.13 (34/40) | +0.14 |

| 200봉 평균 아래 | +0.87 | +0.48 | +0.10 |

| 200봉 평균 위 | +0.77 | +0.28 | −0.01 |

변동성은 가르고, 추세는 못 가릅니다.

사건이 커서 그런 것 아닌가 — 거친 국면에서는 하위 20% 봉 자체가 큰 하락입니다.

그래서 같은 값을 그 칸의 하루 변동성으로 나눴습니다(단위: 시그마):

| 칸 | 코인 20종 | 겹치지 않는 40종 |

|---|---|---|

| 변동성 하 | −0.022 | −0.132 |

| 변동성 중 | +0.208 | +0.134 |

| 변동성 상 | +0.259 | +0.171 |

나눠도 조용한 칸은 비어 있습니다. 그리고 중·상 두 칸은 서로 비슷합니다.

> **「크게 떨어졌을수록 크게 되받는다」가 아니라 「조용하면 아예 없다」입니다 —

> 눈금이 아니라 스위치입니다.**

잣대가 그 둘을 실제로 가르는지 인공 자료로 확인했습니다. 되돌림을 어디에나 똑같이

심으면 원값에는 기울기가 생기지만(+0.37 → +1.09) 시그마로 나눈 조용한 칸에 **+0.305 가

그대로 남습니다.** 실제 자료는 −0.022·−0.132 였습니다. 게다가 시그마 나누기는 조용한

칸 쪽에 오히려 유리하니(+0.305 대 +0.228), 실제 값은 덜 잡힌 값입니다.

미리 적어 둔 예측 「변동성이 높은 국면에서 크다」는 맞았습니다 — 열여섯 번 만에

두 번째입니다(2승 14패). 다만 이번 것도 절반은 쉬운 시험입니다. 값을 한 것은 미리 적은

문장이 아니라 크기를 맞춘 뒤에도 조용한 칸이 비어 있다는 쪽입니다.

  • 내부 검증 1905건 · 화면 기준선 257장. versionCode 580.
v3.11.942026-08-03
그 하나는 「늘 있는 성질」이 아니라 「그 해의 성질」입니다

백열세 절을 걸어 살아남은 것은 하루짜리 되돌림 하나였습니다. 그 하나를 여덟 해

평균으로 말해 왔는데, 해마다 따로 재 봤습니다.

그 해 안에서 하위 20% 를 잡고 그 해 중앙값을 뺀 앞 5봉 초과(%p):

| 해 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 |

|---|---|---|---|---|---|---|---|---|---|

| 코인 20종 | +0.64 | +0.71 | +1.28 | +1.77 | +1.59 | +0.53 | +0.02 | +0.88 | −0.42 |

같은 계산이 해마다 +1.77 에서 −0.42 까지 오갑니다. 그 흔들림이 표본 잡음인지

확인했습니다 — 같은 자료를 뒤섞어 해간 편차를 열 판 뽑으면 0.16~0.40(평균 0.31)인데,

실제는 0.71 입니다. 겹치지 않는 40종에서도 0.89 대 0.17~0.58 입니다.

> 되돌림의 크기는 시장의 성질이 아니라 그 해의 성질입니다.

그리고 가장 최근 해(2026년)는 두 자료 · 두 지평 네 칸 모두 음수입니다(−1.28 ·

−1.13 · −0.81 · −0.90). 양수 종목도 8/19 · 10/40 으로 절반이 안 됩니다. 다만 두 자료는

종목만 다르고 기간이 같으니 두 번 확인한 것이 아니라 한 국면입니다. 일곱 달치라

반으로 가를 수도 없습니다 — 다음 해에 다시 재야 할 자리로 적어 두었습니다.

미리 적어 둔 예측은 「쉬운 규칙일수록 알려지면 닳으니 최근이 작다」였는데 빗나갔습니다

처음 네 해는 오히려 세 배 커졌습니다(1승 14패).

RSI 설명에 그 사실을 적었습니다. 평균만 적어 두면 늘 있는 성질로 읽히기 때문입니다.

  • 내부 검증 1901건 · 화면 기준선 257장. versionCode 579.
v3.11.932026-08-13
이 앱의 주 시장에서는 그 하나마저 서지 않습니다

백열 절 동안 잰 것은 전부 달러값이었습니다 — 바이낸스·주가지수·미국주. 그런데 이

앱을 쓰시는 분은 대부분 업비트 원화로 사고팝니다. 주 시장에서 다시 쟀습니다.

업비트 자료가 2022-10부터라, 달러 자료도 뒤에서 같은 길이(1,400봉)만 잘라 시기를

맞췄습니다. 직전 1봉 하위/상위 20% → 앞 h봉 중앙값 − 전체 중앙값(%p), 실제/셔플:

| | h=5 하위 | h=5 상위 | h=20 하위 | h=20 상위 |

|---|---|---|---|---|

| 바이낸스 달러 20종 | +0.29 / −0.09 (14/20) | −0.51 / −0.03 (3/20) | +0.71 / +0.23 (16/20) | −0.74 / +0.02 (4/20) |

| 업비트 원화 14종 | +0.14 / +0.26 (8/14) | −0.06 / −0.15 (6/14) | −0.05 / +0.21 (7/14) | +0.42 / +0.29 (8/14) |

원화에서는 네 칸 모두 셔플과 구별되지 않습니다. 양수 종목 수도 8/14·6/14·7/14·8/14로

동전 던지기입니다. 표준오차는 두 시장이 비슷하니 검정력이 모자라서가 아닙니다.

> 백열한 절을 걸어 남긴 하나가, 이 앱을 쓰시는 분이 실제로 보는 시장에서는 안 섭니다.

왜인지는 모릅니다. 후보는 있지만(김프·거래 시간·참여자 구성), 이 앱의 성적표가

말합니다 — 그럴듯한 설명은 열한 번 중 열 번 틀렸습니다.

RSI 설명에 그 사실을 적었습니다. 이 앱은 원화 값을 보여 주고 원화 알림을 보내면서,

잰 것은 달러였습니다.

  • 내부 검증 1897건 · 화면 기준선 257장. versionCode 578.
v3.11.922026-08-13
남은 하나가 사는 곳은 일봉뿐입니다

이 앱은 기간을 여섯 개 줍니다. 15분봉을 보고 있으면 「어제 하루」는 「지난 15분」이

됩니다 — 거기서도 서는가.

직전 1봉 하위/상위 20% → 앞 5봉 중앙값 − 전체 중앙값(%p), 실제/셔플:

| 기간 | 하위 20% | 상위 20% |

|---|---|---|

| 15분 | +0.02 / +0.01 | −0.02 / +0.00 (양수 0/9) |

| 30분 | +0.03 / +0.01 | −0.04 / −0.01 (1/12) |

| 1시간 | +0.04 / +0.01 | −0.03 / −0.00 (1/12) |

| 4시간 | +0.08 / −0.01 | −0.00 / +0.03 |

| 일봉 | +0.83 / +0.09 | −0.61 / +0.02 (1/12) |

| 주봉 | −1.49 / +0.65 | +0.94 / +0.35 |

「짧을수록 크다」고 미리 적었는데 반대였습니다 — 분봉에서는 사실상 0이고 일봉에서만

큽니다. 변동성 차이(약 10배)를 감안해도 효과 차이(70배)가 훨씬 큽니다.

부호는 모든 기간에서 같습니다 — 상위 20%는 분봉에서도 열두 종목 중 하나만 양수입니다.

다른 것은 크기뿐이고, 그 크기가 뜻을 갖는 곳은 일봉 하나입니다.

> 15분봉을 보시는 분께는, 이 검증이 남긴 것이 아무것도 없습니다.

RSI 설명에 그 사실을 적었습니다. 이 앱은 여섯 기간을 나란히 주면서 **어느 기간에 무엇이

있는지**를 말하지 않았습니다.

  • 내부 검증 1897건 · 화면 기준선 257장. versionCode 577.
v3.11.912026-08-13
판정은 그 하나를 담고 있지 않습니다

백여덟 절 만에 남은 것은 하나입니다 — 하루짜리 대칭 되돌림(코인·지수에만).

마지막 물음: 이 앱의 판정은 그것의 어느 편에 서 있는가.

칸별 강세 판정 비중(칸1=가장 많이 내림 … 칸5=가장 많이 오름):

| | 칸1 | 칸2 | 칸3 | 칸4 | 칸5 |

|---|---|---|---|---|---|

| 코인 20종 | 45.1% | 42.2% | 39.2% | 39.6% | 46.3% |

| 40종 | 40.9% | 35.4% | 33.8% | 34.9% | 38.9% |

U자입니다. 판정은 방향을 따라가는 것이 아니라 「큰 움직임」을 따라갑니다

과매도 표가 이 앱에서는 강세 표이기 때문입니다.

어제 칸을 맞춘 뒤 판정의 강세−약세:

| | 날것 | 칸 맞춤 |

|---|---|---|

| h=5 코인 20종 | −0.17 | −0.18 ± 0.15 |

| h=5 40종 | −0.45 | −0.49 ± 0.21 |

| h=20 코인 20종 | +0.24 | +0.38 ± 0.55 |

| h=20 40종 | −0.90 | −0.87 ± 0.68 |

> 어제 얼마나 움직였는지를 알면, 이 앱의 판정은 더 보태는 것이 없습니다.

> 여덟 지표를 겹치고 무게를 달고 천장을 씌워 만든 값이, **어제 하루짜리 정보 하나에

> 흡수됩니다.**

신뢰도 설명에 그 수를 적었습니다. 이 앱은 오래 「방향을 못 맞힌다」고 말해 왔는데,

이제 왜 못 맞히는지가 한 줄 붙습니다 — 담고 있지 않아서입니다.

  • 내부 검증 1897건 · 화면 기준선 257장. versionCode 576.
v3.11.902026-08-13
되돌림은 위아래 대칭입니다 — 이 앱이 절반만 말해 왔습니다

앞 판이 「어제 하루면 거의 다」로 끝났습니다. 남은 물음 하나 — **그것은 「내렸다」인가

「크게 움직였다」인가.** 어제 수익률을 다섯 칸으로 갈랐습니다(중앙값 − 전체, %p):

| 칸 | h=5 코인20 실제/셔플 | h=5 40종 실제/셔플 | h=5 미국주 |

|---|---|---|---|

| 1 (가장 많이 내림) | +0.79 / +0.19 (20/20) | +0.42 / +0.03 (17/20) | +0.09 / +0.13 |

| 3 (가운데) | −0.09 / −0.21 | +0.01 / +0.09 | +0.01 / −0.01 |

| 5 (가장 많이 오름) | −0.62 / −0.05 (2/20) | −0.84 / +0.44 (2/20) | −0.07 / −0.06 |

유일한 생존자를 내내 「과매도 되돌림」이라 불러 왔는데, 재 보니 위아래 대칭입니다.

어제 많이 오른 자리는 5봉 뒤 중앙값이 −0.62·−0.84%p이고 스무 종목 중 둘만 양수입니다 —

아래쪽(+0.79·+0.42)과 크기가 비슷합니다.

> 「과매도에서 산다」는 이 현상의 절반입니다. 나머지 절반은 「어제 크게 오른 자리는

> 되돌아온다」이고, 둘은 같은 하나입니다.

앞서 위쪽을 「−1~+5로 부호가 갈린다」고 적은 것은 RSI ≥ 70으로 잰 값이었습니다.

어제 수익률 상위 20%로 보면 훨씬 선명합니다 — 같은 「위쪽」이라도 **어떤 창으로

보느냐가 결론을 바꿉니다.**

미국 대형주는 다섯 칸 전부 0입니다. RSI 설명에 그 대칭을 적었습니다.

  • 내부 검증 1897건 · 화면 기준선 257장. versionCode 575.
v3.11.892026-08-13
되돌림 곡선 — 어제 하루면 거의 다입니다

앞 판이 「남은 하나는 어떤 기법의 이름도 아니다 — 최근에 떨어졌다」로 끝났습니다.

그러면 물음은 하나입니다: 그 「최근」은 얼마나 최근인가.

지난 k봉 하락 하위 20% 자리의 앞 h봉 중앙값에서 전체 중앙값을 뺐습니다

(아래는 실제 − 셔플, %p):

| k | h=5 코인20 | h=5 40종 | h=20 코인20 | h=20 40종 | h=5 미국주 |

|---|---|---|---|---|---|

| 1 | +0.69 | +0.49 | +0.80 | +1.64 | +0.02 |

| 3 | +0.43 | +0.89 | +1.15 | +2.00 | +0.04 |

| 10 | +0.73 | +1.87 | +1.07 | +1.72 | −0.02 |

| 20 | +0.76 | +0.99 | −0.49 | −1.17 | +0.05 |

| 60 | +0.50 | −0.11 | +1.25 | −3.21 | +0.26 |

① 곡선이 평평합니다. 「3~10봉에서 봉우리」라고 미리 적었는데 빗나갔습니다 —

k=1부터 k=20까지 거의 평평하고 뚜렷한 봉우리가 없습니다.

② 어제 하루면 거의 다입니다. k=1이 이미 최고치의 대부분입니다 — 코인 20종 h=5에서

+0.79 ± 0.07, 스무 종목 전부 양수.

> **RSI는 열넷 봉을, 이격은 스물을, 망치는 다섯을 봅니다. 어제 하루만 봐도 거의 같은

> 수가 나옵니다.**

③ 자산군 갈림은 창과 무관합니다. 미국 대형주는 여덟 개 k 전부에서 0입니다.

RSI 설명에 그 사실을 적었습니다 — 지표를 보여 주면서 **그 지표가 더 단순한 것보다

나은지**를 말하지 않으면, 사용자는 복잡한 쪽이 낫다고 읽습니다.

  • 내부 검증 1897건 · 화면 기준선 257장. versionCode 574.
v3.11.882026-08-13
망치를 갈랐더니 꼬리가 아니라 하락이었습니다

앞 판이 캔들 격차를 망치형 하나로 좁혔습니다. 망치는 둘을 함께 요구합니다 —

긴 아래꼬리 그리고 직전 하락. 넷으로 갈랐습니다(중앙값 − 전체 중앙값, %p):

| | 5봉 코인 20종 | 5봉 40종 | 20봉 코인 20종 | 20봉 40종 |

|---|---|---|---|---|

| 꼬리O 하락O (=망치) | +0.03 | +0.20 | +0.28 | +1.55 |

| 꼬리O 하락X | +0.07 | −0.24 | +0.61 | −1.04 |

| 꼬리X 하락O | +0.25 (20/20) | +0.21 | +0.33 | +0.63 |

| 꼬리X 하락X | −0.31 (2/20) | −0.34 | −0.45 | −0.77 |

꼬리 없이 하락만 있는 봉이 네 칸 모두 양수이고, 5봉 코인 20종에서는 **스무 종목

전부가 양수입니다. 망치는 그보다 작거나 비슷합니다 — 꼬리는 아무것도 안 더합니다.**

그래서 생존자는 둘이 아니라 하나였습니다

| 이름 | 무엇을 보나 | 창 |

|---|---|---|

| 과매도 되돌림 | RSI ≤ 30 | 14봉 |

| 이격 −20% | 20일선에서 멀어짐 | 20봉 |

| 망치형 | 직전 5봉 하락 | 5봉 |

셋은 하나를 세 창으로 본 것입니다 — 「최근에 떨어졌으면 조금 되돌린다」.

> 스물한 기법에서 남은 것은 하나이고, 그 하나는 어떤 기법의 이름도 아닙니다

> 「값이 최근에 떨어졌다」입니다.

캔들 설명에 「모양이 아니라 최근에 떨어졌다가 진다」를 적었습니다. 모양을 보여 주면서

그 모양이 값을 더하지 않는다는 것을 말하지 않으면, 사용자는 그 줄을 근거로 읽습니다.

  • 내부 검증 1897건 · 화면 기준선 257장. versionCode 573.
v3.11.872026-08-13
두 번째 생존자 — 캔들이 크기로는 섭니다

영상 35편에서 가장 자주 나온 기법(캔들, 14편)을 다시 쟀습니다. 옛 결론은 「부호는

맞지만 오차 안」이었는데, 그건 적중률로 잰 값입니다. 앞 판이 「확률과 크기는 다른

이야기를 한다」를 보였으니 크기로 다시 쟀습니다.

종목별 「강세형 중앙값 − 약세형 중앙값」 (20봉 뒤)

| | 실제 | 봉 순서 셔플 | RSI 맞춤 |

|---|---|---|---|

| 코인 20종 | +1.56 ± 0.46 (20종 중 18) | +0.16 ± 0.61 | +1.40 ± 0.41 |

| 겹치지 않는 40종 | +1.83 ± 0.50 (20종 중 16) | +0.66 ± 1.10 | +1.21 ± 0.44 |

| 미국 대형주 | +0.16 ± 0.29 | +0.22 ± 0.28 | −0.46 ± 0.72 |

통제 넷을 걸었고 넷 다 통과했습니다 — 귀무(셔플) · 앞뒤 절반 · 자산군 · RSI 맞춤

(과매도 되돌림의 다른 이름이 아닙니다). 다만 5봉에서는 RSI를 맞추면 사라지고(+0.14),

미국 대형주에서는 20봉에서도 없습니다.

잣대를 바꾸니 판정이 바뀌었습니다

| | 적중률로 | 크기로 |

|---|---|---|

| 캔들 | 오차 안 (+1.8 ± 1.8) | +1.56 ± 0.46 |

> 「오차 안」이라는 판정은 잣대에 딸린 것이지 세상에 딸린 것이 아닙니다.

> 이 앱이 스물한 기법을 떨어뜨릴 때 쓴 잣대가 거의 전부 적중률이었습니다.

캔들 설명의 「구분되지 않았습니다」만 적혀 있던 자리에 두 잣대의 결과를 나란히

적었습니다. 적중률로 떨어뜨린 나머지 기법도 크기로 다시 재는 것이 다음 일입니다.

  • 내부 검증 1897건 · 화면 기준선 257장. versionCode 572.
v3.11.862026-08-13
꼬리를 봤습니다 — 위험은 처음 며칠에 몰려 있습니다

앞 판이 「중앙값은 남고 평균은 안 남는다」를 냈으니, 어디서 잃는가를 봐야 했습니다.

분위별로 갈랐습니다(과매도 뒤 분위 − 전체 분위, %p):

| 5봉 뒤 | 5% | 10% | 50% | 90% |

|---|---|---|---|---|

| 코인 20종 | −3.98 | −2.26 | +1.67 | +0.93 |

| ↳ 봉 순서 뒤섞기 | +1.04 | +0.86 | −0.52 | +0.07 |

| 주가지수 | −2.48 | −1.22 | +0.98 | +2.50 |

| 미국 대형주 | −2.04 | −1.29 | +0.01 | +2.16 |

① 대가는 실재합니다. 코인 20종 5봉에서 하위 5%가 −3.98%p — 중앙값 +1.67%p를 얻는

값이 그것입니다. 뒤섞은 자료에서는 전 분위가 ±1 안입니다.

② 위험은 처음 며칠에 몰려 있습니다. 하위 5% 대가가 5봉 −3.98 → 20봉 −1.64로

줄어듭니다. 급락 직후가 가장 위험하고, 스무 봉쯤이면 흡수됩니다. 학습 화면에 적었습니다.

③ 기제 예측이 또 틀렸습니다 — 세 번째입니다. 「개별 미국 대형주는 사건 위험이 커서

꼬리가 더 나빠 효과가 사라진다」고 미리 적었는데, 재 보니 미국 대형주의 꼬리 대가는

−2.04로 코인(−3.98)보다 작습니다. 사라지는 이유는 꼬리가 아니라 가운데가 없어서

입니다(중앙값 +0.01).

> 이 앱의 기제 설명은 세 번 다 틀렸습니다. **재는 것은 늘었는데 왜 그런지 아는 것은

> 하나도 안 늘었습니다.** 그것도 결과입니다.

  • 내부 검증 1897건 · 화면 기준선 257장. versionCode 571.
v3.11.852026-08-13
살아남은 하나를 크기로 쟀습니다 — 중앙값은 남고 평균은 안 남습니다

지금까지 잰 것은 전부 「오를 확률」이었습니다. 확률이 높다고 돈이 되는 것은 아닙니다 —

자주 조금 벌고 가끔 크게 잃으면 확률은 좋고 기대값은 나쁩니다.

5봉 뒤 수익률

| | 과매도 뒤 중앙값 | 전체 | 차이 | 평균 차이 |

|---|---|---|---|---|

| 주요 20종 | +1.50% | −0.17% | +1.68 | +0.27 |

| ↳ 봉 순서 뒤섞기 | +0.60% | −0.02% | +0.61 | +0.50 |

| 겹치지 않는 40종 | +1.22% | −0.87% | +2.09 | +1.15 |

| ↳ 봉 순서 뒤섞기 | −0.78% | −0.97% | +0.19 | +0.16 |

① 중앙값은 남습니다 — 뒤섞은 자료를 빼면 5봉 +1.1~+1.9%p, 20봉 +3.2~+5.8%p.

② 평균은 안 남습니다 — 주요 20종에서는 뒤섞은 자료보다 오히려 낮습니다(+0.27 대

+0.50, 20봉은 +1.26 대 +1.82).

> 자주 조금 오르고, 가끔 크게 빠집니다. 적중률과 기대값이 다른 이야기를 하는

> 전형적인 모양이고, 지금까지 확률만 재느라 못 본 것입니다.

③ 비용은 결정타가 아닙니다 — 왕복 0.2%를 빼도 중앙값은 +1.30%·+1.02%로 남습니다.

지금까지 「매매 비용은 재지 않았습니다」로 넘겨 온 자리인데, 재 보니 무너뜨리는 것은

비용이 아니라 꼬리였습니다.

학습 화면의 RSI 설명에 중앙값·비용·평균을 함께 적었습니다 — **「확률이 높다」와 「돈이

된다」 사이의 거리**를 보실 수 있게.

  • 내부 검증 1894건 · 화면 기준선 257장. versionCode 570.
v3.11.842026-08-13
「산술이냐 시장이냐」가 정말로 둘로 갈립니다

앞 판의 새 잣대(블록 사다리의 기울기)를 두 주장에 걸었습니다 — 하나는 **앱이 계산하는

, 하나는 시장에 대한 것**.

| 주장 | 실제 | IID 셔플 | 구조 의존도 |

|---|---|---|---|

| 수명 사다리(보통) | 8.1 | 6.9 | 15% |

| 20일선 어긋남 격차 | −7.75 | −6.45 | 17% |

| 과매도 되돌림(5봉) | +9.12 | +0.67 | 93% |

| 이격 −20%(5봉) | +14.02 | −1.03 | 107% |

> 이 앱이 계산하는 것은 15~17%, 시장에 대해 말하는 것은 93~107%.

> 그 사이에 있는 주장은 하나도 없습니다.

이격의 사다리는 시간 규모까지 알려 줍니다 — 5봉 덩어리로는 10%, 20봉 덩어리로는

69%가 살아납니다. 되돌림의 구조는 10~20봉에 있습니다.

학습 화면의 이격 문단에 「이쪽은 계산의 성질이 아닙니다」를 적었습니다. 앞 판에서 수명

사다리에 「이것은 시장을 아는 것이 아닙니다」를 적었으니, 이제 화면이 **두 종류를 같은

잣대로 구분해서** 말합니다.

그러다 세 언어가 거둬진 수를 보고 있는 것을 찾았습니다

v3.11.75 가 이격 수치를 고칠 때(+19·14 → +13·13, −5·−7 → −1·−4) 한국어와 영어만

고쳤습니다. 일본어·중국어 두 벌은 세 판 동안 거둬진 수를 보고 있었습니다. 고쳤고,

로케일 동기화 검사를 학습 화면 두 줄까지 넓혔습니다.

> 가드는 그 판에 아팠던 자리를 지킵니다. 다음에 아플 자리는 안 지킵니다.

  • 내부 검증 1894건 · 화면 기준선 257장. versionCode 569.
v3.11.832026-08-13
수명 사다리는 봉 순서를 지워도 그대로 나옵니다

앞 판의 열째 통제를 이 앱이 화면에 내는 유일한 긍정적 주장에 걸었습니다 —

판독 수명 사다리(2·6·11). 지금까지 「산술이다」의 근거는 가우시안 무작위 걸음이었는데,

그 걸음에는 실제의 꼬리도 변동성 군집도 없습니다.

실제 코인의 봉을 「수익률 + 봉 모양」 꾸러미로 보고 순서만 섞었습니다(분포·꼬리·

거래량·봉의 생김새는 그대로, 시간 구조만 파괴). 주요 20종 일봉:

| | 낮음 | 보통 | 높음 | 사다리 성립 |

|---|---|---|---|---|

| 실제 | 2.0 | 8.1 | 12.4 | 20/20 |

| IID 셔플 | 2.0 | 6.9 | 12.1 | 40/40 |

| 20봉 블록 | 2.0 | 7.5 | 12.5 | 40/40 |

| 60봉 블록 | 2.0 | 7.6 | 12.6 | 40/40 |

순서를 완전히 지워도 사다리가 마흔 계열 전부에서 성립하고 값도 거의 같습니다.

앞의 판정은 옳았고 근거만 약했습니다.

「산술이냐 시장이냐」에 눈금이 생겼습니다

| 섞는 단위 | 과매도 되돌림 | 수명 사다리(보통) |

|---|---|---|

| IID | +0.67 | 6.9 |

| 20봉 | +6.94 | 7.5 |

| 60봉 | +10.21 | 7.6 |

| 실제 | +9.12 | 8.1 |

> 블록 사다리의 기울기가 그 현상이 시간 구조에 얼마나 얹혀 있는지를 잽니다.

> 가파르면 시장의 것이고, 평평하면 계산의 것입니다.

화면에 붙였습니다

이 앱은 사다리를 잰 값으로 내놓으면서 그것이 계산의 성질이라는 말은 한 번도

안 했습니다. 가장 자주 보이는 수 하나가 이 앱의 원칙에서 빠져 있었습니다.

> 다만 이것도 시장을 아는 것은 아닙니다 — 같은 코인의 봉 순서를 통째로 뒤섞은

> 자료에서도 2·7·12봉으로 같은 사다리가 나옵니다(20종 전부에서).

  • 내부 검증 1892건 · 화면 기준선 257장. versionCode 568.
v3.11.822026-08-13
블록이 사건보다 길면 그것은 귀무가 아닙니다

앞 판은 5봉 쪽을 「단정하지 않는다」로 닫았습니다 — 가우시안 걸음이 −15% 이격을 거의

안 만들어 귀무가 약했기 때문입니다. 실제 수익률을 섞어 같은 변동성·같은 꼬리를 가진

귀무를 만들고, 섞는 단위를 바꿔 가며 쟀습니다(코인 60계열):

| 섞는 단위 | 5봉 뒤 | 20봉 뒤 |

|---|---|---|

| IID(1봉) | +0.67 ± 0.75 | +1.94 ± 0.79 |

| 5봉 / 10봉 | +4.13 / +5.73 | +3.82 / +3.13 |

| 20봉 / 40봉 | +6.94 / +7.36 | +4.46 / +4.58 |

| 60봉 | +10.21 | +8.21 |

| 실제 | +9.12 ± 1.10 | +12.79 ± 1.40 |

60봉 블록이 실제보다 큰 값을 냅니다. 당연합니다 — RSI(14)에 앞으로 5봉이면 사건

하나가 19봉이고, 60봉 덩어리는 그 사건을 통째로 담습니다.

> 블록 귀무는 「블록보다 긴 구조」만 지웁니다. 블록이 「지표 창 + 지평」보다 길면

> 검증하려는 사건 자체가 살아남습니다 — 그 귀무는 「없음」을 증명하지 않습니다.

살아남은 하나는 그대로 섭니다

올바른 귀무(IID 셔플)로 보면 +0.7·+1.9 이고 실제는 +9.1·+12.8 입니다. 앞 판이

쓴 가우시안 걸음보다 까다로운 귀무이고 그 위에서도 남습니다. 학습 화면의 수를

9~14로 좁히고 그 귀무를 함께 적었습니다.

사다리도 읽을 것이 있습니다 — 5봉 효과는 5봉 덩어리만 보존해도 절반이 살아나고, 20봉

효과는 40봉까지 보존해도 3분의 1뿐입니다. **짧은 되돌림은 짧은 구조에, 긴 되돌림은 긴

구조에** 얹혀 있습니다.

  • 내부 검증 1891건 · 화면 기준선 257장. versionCode 567.
v3.11.812026-08-13
「모른다」가 풀렸습니다 — 몸통이 지평에 따라 바뀝니다

앞 판은 「과매도인가, 그냥 많이 떨어진 것인가」를 −0.7 ~ +15.1 로 두고 「모른다」로

닫았습니다. 그 흔들림은 잡음이 아니라 지평이었습니다.

짝짓기를 종목별로 다시 했습니다(이격 9칸·RSI 8칸, 종목 평균 ± 표준오차):

| | 이격을 맞춘 뒤 RSI | RSI 를 맞춘 뒤 이격 |

|---|---|---|

| 5봉 코인 20종 | +0.25 ± 1.81 | +6.38 ± 1.36 |

| 5봉 40종 | +2.89 ± 2.09 | +7.99 ± 2.09 |

| 20봉 코인 20종 | +16.68 ± 2.62 | +1.56 ± 1.70 |

| 20봉 40종 | +10.36 ± 2.49 | +1.48 ± 2.28 |

완전한 교차입니다. 5봉에서는 이격을 맞추면 RSI 가 사라지고, 20봉에서는 그대로

뒤집힙니다.

> 짧게는 「얼마나 떨어졌나」가, 길게는 「얼마나 오래 눌렸나」가 답합니다.

이 앱은 두 값을 둘 다 보여 줍니다 — 이격은 판독 카드의 20일선 줄로, RSI 는 지표

목록으로. 지금까지 어느 쪽을 언제 봐야 하는지는 말하지 않았습니다. 학습 화면에

그 교차를 적었습니다.

귀무가 약한 것도 적습니다

무작위 걸음은 20일선에서 −15% 넘게 벌어지는 일이 드물어 칸이 채워지는 계열이 마흔 중

다섯뿐입니다. 20봉의 +16.7·+10.4 는 그 약한 귀무로도 확실히 바깥이지만, 5봉의

+6.4·+8.0 은 귀무의 표준오차와 같은 크기라 단정하지 않습니다.

  • 내부 검증 1889건 · 화면 기준선 257장. versionCode 566.
v3.11.802026-08-13
「높음이 낮음보다 낮다」를 거둡니다 — 무작위도 그렇게 나옵니다

앞 판이 세운 아홉째 통제(「귀무를 여러 번 뽑아 분포로 볼 것」)를 남은 다른 주장에도

걸었습니다.

귀무를 열 판 뽑았습니다

(높음 잔차 − 낮음 잔차), 20봉 뒤 — 음수면 「높음이 더 나쁘다」:

귀무 10판: −2.2 · −1.9 · −1.3 · −7.5 · −1.1 · −5.2 · −6.3 · −4.6 · +0.5 · +0.0

평균 −2.9 · 판 SD 2.8 · 음수 판 8/10

| 표본 | (높음 − 낮음) |

|---|---|

| 코인 20종 | −1.6 ± 1.2 |

| 겹치지 않는 40종 | −0.6 ± 1.0 |

| 주가지수 | −6.3 ± 1.1 |

| 미국 대형주 | +0.9 ± 1.4 |

무작위 걸음이 이미 음수를 냅니다 — 열 판 중 여덟입니다. 그리고 두 코인 표본은

귀무 평균보다 오히려 덜 음수입니다. 실제 값 넷이 전부 귀무 분포 안에 있습니다.

앞 판까지 적었던 「무작위에서는 거꾸로 나옵니다」는 한 판의 운이었습니다 — 열 판 중

양수는 둘뿐이고, 그때 뽑힌 것이 그 둘 중 하나였습니다.

화면에서 거뒀습니다

「「높음」이 세 자료 모두에서 「낮음」 아래입니다」와 「다섯 지평 모두에서…」를 지우고,

네 자료의 차이와 귀무 열 판의 범위를 나란히 적었습니다.

결론은 오히려 단순해집니다 — 「신뢰도는 맞을 확률이 아니다」가 이제 두 방향 모두에서

참입니다. 높지도 낮지도 않습니다.

아홉 판의 결산

| 주장 | 상태 |

|---|---|

| 과매도 되돌림 | 선다 — 코인 +8.7·+10.3 · 주가지수 +11.1·+8.9 |

| ↳ 미국 대형주 | 안 선다 (+1.6·+2.8 ± 2.2) |

| ↳ 「RSI 인가 이격인가」 | 모른다 |

| 「높음 < 낮음」 | 거둔다 |

| 나머지 | 귀무와 구별되지 않습니다 |

  • 내부 검증 1889건 · 화면 기준선 257장. versionCode 565.
v3.11.792026-08-13
귀무를 한 번만 뽑았습니다 — 그리고 과매도가 자산군에서 갈렸습니다

앞 판이 「남은 것은 둘뿐」로 끝났습니다. 그 둘에 남은 통제를 걸었더니 두 가지

나왔고, 둘 다 이 앱의 방법에 관한 것입니다.

① 귀무도 오차가 있습니다

「실제 +10~14 대 귀무 −1~−2」에서 그 「−1~−2」는 씨앗 하나로 뽑은 한 판이었습니다.

씨앗을 바꾸니 +5.9가 나옵니다.

| 귀무 뽑기 | 5봉 | 20봉 |

|---|---|---|

| 씨앗 4000번대 (앞 판) | −1.0 | −2.0 |

| 씨앗 20000번대 | +5.9 ± 2.2 | +6.1 ± 2.6 |

| 씨앗 30000번대 다섯 판 | +1.4 · −0.8 · +1.4 · +0.3 · −0.2 | +2.0 · +1.1 · +3.6 · −3.3 · −0.6 |

귀무는 값이 아니라 분포입니다. 한 번 뽑아 「0 근처」라고 적으면 그 뒤의 모든 비교가

그 한 판의 운에 얹힙니다. 이 앱이 만든 여덟 통제는 전부 「실제 값」에 걸려 있었고,

귀무 자체의 오차는 한 번도 안 쟀습니다.

② 과매도 되돌림이 자산군에서 갈립니다

| | 5봉 | 20봉 |

|---|---|---|

| 코인 20종 | +8.7 ± 1.6 | +10.3 ± 1.6 |

| 겹치지 않는 40종 | +9.4 ± 1.5 | +14.0 ± 1.9 |

| 주가지수 | +11.1 ± 1.3 | +8.9 ± 2.9 |

| 미국 대형주 | +1.6 ± 2.2 | +2.8 ± 2.3 |

코인과 주가지수에서는 서고, 개별 미국 대형주에서는 사라집니다. 학습 화면에 그

사실을 적었습니다 — 크기를 고친 것이 아니라 어디까지 서는지를 적은 것입니다.

③ 답이 안 나온 것도 적습니다

「과매도인가, 그냥 많이 떨어진 것인가」 — 20일선 이격을 맞추고 재면 −0.7에서 +15.1까지

흔들립니다. 거꾸로 재도 마찬가지입니다. 지금 자료로는 말할 수 없습니다.

  • 내부 검증 1889건 · 화면 기준선 257장. versionCode 564.
v3.11.782026-08-13
「겹칠수록 낮아진다」도 재현되지 않았습니다

앞 판이 남긴 마지막 항목입니다. 여섯 잣대의 「좋은 쪽」을 셋씩 겹쳐 편향 없는 기준선으로

다시 쟀습니다. 옛 판은 13칸만 냈는데 이번에는 스무 칸 전부입니다.

| | 전체 | 홑 평균 | 셋 겹침 평균 | 범위 |

|---|---|---|---|---|

| 무작위 걸음(귀무) | +0.03 | −0.62 | −0.98 | −2.35 ~ +0.60 |

| 코인 20종 | +1.01 | +0.79 | +0.59 | +0.05 ~ +1.40 |

| 겹치지 않는 40종 | +0.06 | +0.17 | +0.55 | −0.36 ~ +1.25 |

「겹칠수록 낮아진다」는 재현되지 않습니다. 한 자료에서는 오히려 올라가고(0.06 → 0.17

→ 0.55), 무작위 걸음에서도 같은 내림이 나옵니다(0.03 → −0.62 → −0.98) — 내려가는 쪽은

자료의 성질이 아니라 조건을 겹칠수록 표본이 줄어드는 데서 옵니다.

겹쳐도 아무 일도 일어나지 않는다 — 그것이 정확한 말입니다.

네 판에 걸친 정리

v3.11.75(과매도 +) · v3.11.76(판정·신뢰도 −) · v3.11.77(기간·지평 −) · 이번 판(겹침 −).

하나의 잣대가 네 문단, 열댓 개의 수를 물들였습니다. 그 잣대는 처음 고를 때

합리적으로 보였습니다 — 「시장 상황이 다르니 같은 시기와 견주자」는 옳은 직관입니다.

틀린 것은 직관이 아니라 그 직관을 무작위 걸음에 걸어 보지 않은 것입니다.

편향을 걷어내고 남은 것 둘

1. 과매도 되돌림 — +10~14 포인트(무작위 −1~−2)

2. 「높음」이 「낮음」보다 방향에서 낮다 — 세 자료 × 다섯 지평 여덟 칸 연속,

무작위에서는 거꾸로

나머지는 전부 무작위와 구별되지 않습니다. 이 앱이 방향에 대해 할 수 있는 말은 그것뿐입니다.

  • 내부 검증 1887건 · 화면 기준선 257장. versionCode 563.
v3.11.772026-08-13
여섯 기간·다섯 지평의 수치도 같은 편향이었습니다

앞 판이 「아직 다시 안 잰 수」로 적어 둔 것을 그대로 쟀습니다.

여섯 기간 (20봉 뒤 방향, 편향 없는 기준선)

| | 전체 | 「높음」 | 「낮음」 |

|---|---|---|---|

| 무작위 걸음(귀무) | +0.63 | +1.10 | −0.54 |

| 15분 / 30분 | −2.30 / −0.46 | −3.50 / −1.16 | −1.32 / +1.38 |

| 1시간 / 4시간 | −1.32 / −1.51 | −1.59 / −0.67 | −0.62 / −1.64 |

| 일봉 / 주봉 | +0.80 / −5.05 | −0.99 / −1.57 | +1.10 / −8.45 |

여섯 기간 전부 귀무와 구별되지 않습니다. 옛 화면의 「−1.7~−5.9」는 시기별 기준선의

값이었고, 편향 없이 재면 −5.1~+0.8입니다. 그리고 **「가장 짧은 15분봉이 가장 나빴다」가

재현되지 않습니다** — 어느 기간이 더 나쁘다는 순서는 서지 않습니다.

다섯 지평에서 살아남은 것 하나

전체 잔차는 다섯 지평 모두 −1.6~+1.0 으로 귀무(−0.4~+2.1)와 구별되지 않습니다.

**그런데 「높음」이 「낮음」보다 낮다는 순서는 다섯 지평 전부에서 성립하고, 무작위

걸음에서는 거꾸로 나옵니다.** 앞 판의 세 자료와 합치면 여덟 칸 연속입니다.

하나의 편향이 네 문단을 물들였습니다

v3.11.75(과매도) · v3.11.76(판정·신뢰도) · 이번 판(기간·지평)이 전부 같은 시기별

기준선에서 나왔습니다. **잘못된 것은 각각의 수가 아니라 한 번 고른 잣대였고, 그 잣대는

네 판에 걸쳐 조용히 재사용됐습니다.**

  • 내부 검증 1887건 · 화면 기준선 257장. versionCode 562.
v3.11.762026-08-13
「기준선을 넘지 못한다」의 수치도 편향이었습니다

앞 판에서 「과매도 +17~21」이 시기별 기준선의 편향이라는 것을 밝혔습니다. 그러면 같은

방법으로 잰 다른 수들은 어떨까요. 이 앱이 가장 자주 인용하는 문장부터 봤습니다 —

「강세 판정 −2.6, 약세 판정 −2.7 포인트로 기준선을 넘지 못합니다」.

| 표본 | 편향 없는 기준선 | 시기별 90봉 기준선 |

|---|---|---|

| 무작위 걸음(귀무) | +0.8 · +1.6 | −7.4 · −8.3 |

| 코인 20종 | +1.7 · +1.1 | −7.7 · −6.4 |

| 겹치지 않는 40종 | +1.1 · −0.3 | −9.4 · −7.8 |

| 주가지수·미국주 | −0.9 · −2.4 | −7.7 · −10.2 |

시기별 기준선의 실제 값이 무작위 걸음의 값과 구별되지 않습니다. 그 열 전체가

편향입니다. 부호가 앞 판과 반대인 것도 이치가 닿습니다 — 과매도는 블록의 바닥에서

켜져 +로 부풀고, 강세 판정은 블록의 꼭대기 쪽에서 켜져 −로 눌립니다.

고친 문장
  • 「강세 −2.6 · 약세 −2.7 로 기준선을 넘지 못합니다」 → 「+1.7 · +1.1 인데 무작위 걸음에서도 +0.8 · +1.6 이 나옵니다 — 구별되지 않습니다」
  • 「신뢰도가 높을수록 방향이 나빴습니다(−5.2·−4.3 …)」 → 「「높음」이 세 자료 모두에서 「낮음」 아래입니다(+0.1·+0.1·−6.0 대 +1.4·+2.4·+0.5). 무작위에서는 거꾸로 나옵니다」
결론은 그대로이고 근거가 바뀝니다

방향에 우위가 없다 — 그대로입니다. 바뀐 것은 왜 그렇게 말할 수 있는가입니다.

옛 문구는 「음수라서」였고, 지금은 「귀무와 구별되지 않아서」입니다. 뒤가 더 강한

근거입니다.

「높음」이 「낮음」보다 방향에서 낮다는 순서는 세 자료 모두에서 살아남았습니다

무작위 걸음에서는 거꾸로 나오니 그 순서는 편향이 아닙니다. 다만 「보통」은 순서를

지키지 않고, 크기는 옛 화면보다 훨씬 작습니다.

  • 내부 검증 1887건 · 화면 기준선 257장. versionCode 561.
v3.11.752026-08-13
「과매도 되돌림」 수치를 다시 재서 낮췄습니다

학습 화면이 「RSI 30 아래면 5~20봉 뒤 방향이 17~21 포인트 높다」고 적어 왔습니다.

그 수를 다시 쟀더니 재현되지 않았습니다.

같은 자료·같은 규칙에서 기준선만 바꿔 세 번 쟀습니다(주요 20종, 5·10·20봉):

| 기준선 | RSI≤30 | 무작위 걸음에서 같은 계산 |

|---|---|---|

| 코인 전체 평균 | +9.6 · +13.6 · +13.2 | −1.0 · −0.9 · −2.0 |

| 시기별 90봉 블록 | +20.6 · +25.9 · +25.7 | +14.0 · +18.9 · +21.3 |

아래 줄이 가짜입니다. 되돌림이 전혀 없는 무작위 걸음에서도 +14~21 포인트를 만들어

냅니다 — 블록 안에서 「바닥 근처」를 고르면, 그 블록의 기준선이 **바닥이 되돌아온 뒤의

값까지 포함해** 계산되기 때문입니다. 옛 수 17~21 은 그 가짜 범위 안에 있습니다.

고친 수 (다섯 언어 전부)

| | 옛 화면 | 다시 잰 값 |

|---|---|---|

| RSI ≤ 30 | 17~21 | 10~14 |

| 볼린저 하단 | 9~14 | 3~8 |

| 20봉 최저 | 4~9 | 3~6 |

| RSI ≥ 70 (위쪽) | 3~6 | −1~+5 (두 자료에서 부호가 갈림) |

| 골든크로스 | −2~−9 | −1~−2 |

| 20일선 −20% 이격 | +19·14 | +13·13 |

| 20일선 +20% 이격 | −5·−7 | −1·−4 |

결론은 그대로이고 크기만 바뀝니다

과매도 되돌림은 여전히 섭니다 — 무작위 귀무가 −1~−2인데 실제는 +10~14입니다. 교차는

여전히 안 서고, 이격의 단조 사다리도 그대로입니다. **바뀐 것은 크기이고, 크기가 사용자가

읽는 전부입니다.** 위쪽(70 위)만 「작지만 양수」에서 「어느 쪽도 아니다」로 바뀝니다.

옛 수를 왜 그렇게 믿었는지도 화면에 한 줄로 남겼습니다.

  • 내부 검증 1885건 · 화면 기준선 257장. versionCode 560.
v3.11.742026-08-13
흡수 결론을 여섯 기간에서 다시 확인했습니다

앞 네 판의 흡수 감사는 전부 일봉에서 잰 것이었습니다. 그런데 화면은 기간을 여섯 개

주고 그 문구는 어느 기간에서나 뜹니다 — 「사라집니다」라고 단언했으니 짧은 기간에서도

그런지 봐야 했습니다.

| | ADX 정렬 날것 → 맞춤 | 걸터앉음 날것 → 맞춤 |

|---|---|---|

| 15분 / 1시간 / 4시간 | +6 / +6 / +7 → +0.00 | −4 / −5 / −5 → −0.40 / −0.85 / −0.41 |

| 일봉 / 주봉 | +7 / +4 → +0.00 / −1.78 | −5 / −4 → −0.90 / −0.82 |

결론은 그대로입니다.

「+0.00」이 네 번 나온 것은 우연이 아닙니다

의심스러운 수라 적어 둡니다 — 중앙값이 정수이기 때문입니다. 「차이가 0에 가깝다」가

아니라 「중앙값으로는 차이가 없다」로 읽어야 합니다.

화면의 수를 조금 넓혔습니다

걸터앉음의 남은 몫이 짧은 기간에서 0.4봉까지 내려갑니다. 화면은 「0.7~1.2봉」이라고

적고 있었는데(일봉·주가지수에서 잰 값), 여섯 기간 전부를 담아 0.4~1.2봉으로

고쳤습니다.

  • 내부 검증 1882건 · 화면 기준선 257장. versionCode 559.
v3.11.732026-08-13
흡수 감사 완료 — 넷 중 둘은 이미 라벨에 들어 있었습니다

짝지은 비교 넷을 모두 신뢰도로 맞춰 봤습니다. 마지막(두 거래소 어긋남)은 날것 −8봉,

신뢰도 맞춤 −3.54봉입니다.

| 짝 | 날것 | 맞춘 뒤 | 남은 몫 | 신뢰도의 입력인가 |

|---|---|---|---|---|

| ADX 정렬 | +7봉 | ±0봉 | 0% | ✅ |

| 걸터앉음 | −5봉 | −0.9봉 | 15% | ✅ |

| 20일선 반대쪽 | −8봉 | −3.3봉 | 40% | ❌ |

| 두 거래소 어긋남 | −8봉 | −3.5봉 | 45% | ❌ |

깨끗하게 갈립니다.

> **신뢰도의 입력인 주의는 이미 라벨에 들어 있고, 입력이 아닌 주의만 새 정보를

> 나릅니다.** 흡수율이 그 여부를 그대로 읽어 줍니다 — 0~15% 대 40~45%.

주의를 따로 보여 줄 값이 있으려면 그것이 라벨을 만드는 입력이 아니어야 합니다.

입력이면 같은 사실을 두 번 읽게 됩니다.

지우지는 않았습니다. 「ADX가 높고 방향이 일치한다」는 사실이고 화면에 있어야

합니다. 바꾼 것은 그 옆의 수입니다 — 「4봉 더 간다」가 아니라 「그 차이는 이미

신뢰도가 말하고 있다」로.

네 문구 모두 날것의 수는 남기고 맞춘 뒤의 수를 함께 적었습니다. 수를 지우면 왜 이

주의가 있는지가 사라지고, 맞춘 수를 빼면 두 번 세게 됩니다.

  • 내부 검증 1864건 · 화면 기준선 257장. versionCode 558.
v3.11.722026-08-13
「ADX가 맞으면 오래 간다」는 전부 신뢰도였습니다

앞 판이 「걸터앉음」의 80~90%를 신뢰도로 돌려보냈습니다. 같은 구조가 하나 더

있었습니다 — ADX 정렬은 신뢰도를 올리는 입력인데, 화면이 그 효과를 따로 한 번

더 말하고 있었습니다.

| | 날것 | 신뢰도 맞춤 |

|---|---|---|

| 코인 20종 | +7봉 | +0.00봉 |

| 겹치지 않는 40종 | +6봉 | +0.91봉 |

| 주가지수 12 | +5봉 | −1.72봉 |

부호가 갈리고 평균이 0입니다. 걸터앉음보다 더 완전히 — 남는 것이 없습니다.

짝지은 비교 세 건의 흡수율

| 짝 | 날것 | 맞춘 뒤 | 남은 몫 |

|---|---|---|---|

| 20일선 반대쪽 | −8봉 | −3.3봉 | 약 40% |

| 걸터앉음 | −5봉 | −0.9봉 | 약 15% |

| ADX 정렬 | +7봉 | ±0봉 | 0% |

> 화면이 이미 값에 반영한 것을 문구가 다시 세면 두 번 세는 것입니다. 사용자는

> 라벨에서 한 번, 문구에서 또 한 번 읽습니다.

세 문구를 모두 고쳤습니다. 이번에도 영어가 3칸 초과해서 예산이 접을 것을 정하게

했습니다.

  • 내부 검증 1864건 · 화면 기준선 257장. versionCode 557.
v3.11.712026-08-13
「걸터앉아서 짧다」는 거의 전부 신뢰도였습니다

앞 판이 남긴 결함 유형 — 두 수가 각각 맞아도 나란히 놓이면 원인이 옮겨 붙는다

으로 화면의 짝지은 비교들을 훑었습니다. 가장 의심스러운 것이 이것이었습니다.

```

「이런 자리는 절반이 3봉 … (그 밖은 8봉)」

그런데 같은 문구가 「신뢰도를 낮춰 잡았습니다」라고 말한다

```

낮춘 신뢰도가 이미 그 짧음을 담고 있다면 3 대 8은 같은 것을 두 번 세는 것입니다.

| | 날것 | 신뢰도 맞춤 | 동의 수 맞춤 |

|---|---|---|---|

| 코인 20종 | −5봉 | −0.90봉 | −0.43봉 |

| 겹치지 않는 40종 | −4봉 | −0.74봉 | −0.28봉 |

| 주가지수 12 | −5봉 | −1.22봉 | −0.78봉 |

「걸터앉아서」 짧은 것이 아닙니다. 걸터앉으면 동의 수가 적어 신뢰도가 낮고, 그래서

짧습니다. 날것 4~5봉 가운데 80~90%가 신뢰도의 것입니다.

예산이 접을 것을 정하게 했습니다

고친 문구를 넣자 한국어가 1,021칸으로 예산을 넘었습니다. 답은 분명했습니다 — **날것의

짝(3봉 대 8봉)을 풀어 쓰는 것이 바로 원인을 옮겨 붙게 하는 부분**입니다. 한 문장으로

합치니 오히려 짧아졌습니다.

> 틀린 읽기를 부르는 표현을 지우면 대개 짧아집니다. 정확해지려고 덧붙일 필요가

> 없었습니다.

  • 내부 검증 1864건 · 화면 기준선 257장. versionCode 556.
v3.11.702026-08-13
「반대쪽이라서」의 절반은 「멀어서」였습니다

앞 판이 만든 크기 맞추기 통제를, 규칙대로 살아남은 주장들에도 걸었습니다.

| | 날것 | 크기 맞춤 |

|---|---|---|

| A+B (둘 다 − 아무 일 없음) | +30.1 / +27.3%p | +31.2 / +29.1%p |

| 20일선 반대쪽 (반대 − 같은 쪽) | −8 / −7봉 | −3.33 / −3.31봉 |

A+B는 깨끗합니다 — 거리를 맞추면 오히려 조금 커집니다.

반대쪽은 다릅니다. 차이의 절반쯤이 「반대쪽이라서」가 아니라 「20일선에서 멀어서」

였습니다. 벌어짐을 1%p 칸으로 맞추면 −8봉이 −3.3봉으로 줄고, 두 표본이 −3.33·−3.31로

거의 같습니다.

화면의 수는 틀리지 않았습니다

화면은 「반대쪽이면 절반이 1봉, 같은 쪽이면 8~9봉」이라 말하고 두 수 다 맞습니다.

그런데 나란히 놓이면 「반대쪽이라는 사실이 7~8봉을 깎는다」로 읽힙니다. 실제로 그

사실이 깎는 것은 3.3봉이고, 나머지는 「멀리 와 있다」가 깎습니다.

> 각 수는 제 자로는 맞습니다. 나란히 놓인 순간 원인이 옮겨 붙습니다.

접힌 자리(신뢰도 설명)에 적었습니다 — 첫 화면 예산을 건드리지 않는 자리입니다.

  • 내부 검증 1864건 · 화면 기준선 257장. versionCode 555.
v3.11.692026-08-13
「거래량 없는 돌파는 되돌아온다」는 절반만 맞습니다

배우기 문구가 단언하고 있었습니다. 재 보니 지금까지 중 가장 강한 수가 나왔습니다.

| | 거래량 없음 | 거래량 실림 | 차이 |

|---|---|---|---|

| 코인 20종 | 61.6% | 51.0% | +10.61%p |

| 겹치지 않는 40종 | 67.8% | 57.9% | +9.94 |

| 주가지수 12 / 미국주 20 | 52.9 / 61.1% | 38.5 / 38.4% | +14.42 / +22.67 |

세 자산군·두 절반이 전부 같은 방향입니다. 여기서 멈췄으면 「드디어 하나 섰다」가

나갔습니다.

기계적 교란이 있었습니다

되돌림의 기준은 그 고가 한 점인데, 거래량이 실린 돌파는 대개 그 선을 더 멀리

넘어갑니다. 0.1% 넘긴 돌파는 조금만 밀려도 되돌아오고, 5% 넘긴 돌파는 그만큼 밀려야

합니다. 고르는 잣대가 재는 대상의 난이도를 바꿉니다.

돌파 폭을 0.5%p 칸으로 나눠 같은 칸끼리만 견줬습니다.

| | 날것 | 폭 맞춤 |

|---|---|---|

| 코인 20종 | +10.61 | −5.94%p |

| 겹치지 않는 40종 | +9.94 | −1.81 |

| 주가지수 / 미국주 | +14.42 / +22.67 | +2.55 / +6.66 |

| [귀무] 거래량만 섞기 | −1.57 / −7.25 | −4.61 / −4.66 |

코인에서는 부호가 뒤집히고 무작위와 구분되지 않습니다. 주식에서만 남는데 코인과

부호가 반대입니다.

> 고르는 잣대가 재는 대상의 「난이도」를 바꾸면, 그 차이는 발견이 아닙니다.

문구를 「절반만 맞다」로 고쳤습니다 — 날것의 수도, 폭을 맞추면 사라진다는 사실도 함께

적었습니다.

  • 내부 검증 1864건 · 화면 기준선 257장. versionCode 554.
v3.11.682026-08-13
비대칭 회의주의 — 형제 문구 하나만 거둬져 있었습니다

국면 문구를 훑다 짝이 어긋난 것을 봤습니다.

```

ADX 낮음 — 「이럴 때 오실레이터가 잘 맞는다」는 확인되지 않았습니다 ← 쟀다

ADX 높음 — 추세추종 교차 신호가 비교적 잘 작동하는 구간입니다 ← 안 쟀다

```

한쪽 통설은 재서 거뒀는데, 거울상은 재지도 않고 단언하고 있었습니다.

정반대였습니다

| | 5일 | 20일 |

|---|---|---|

| 추세 · 골든크로스 | −3.0 / −3.1 / −3.7 / −1.0 | −5.9 / −3.9 / −9.9 / −6.8 |

| 횡보 · 골든크로스 | +1.7 / +5.2 / −4.6 / −1.7 | +5.5 / +6.1 / +0.4 / +2.1 |

| 추세 · MACD 상향 | −6.1 / −4.5 / −7.0 / −5.4 | +2.7 / +9.3 / −10.7 / −0.3 |

(표본 둘 × 절반 둘 = 네 값씩)

추세 구간의 골든크로스는 여덟 칸 전부 음수이고, 횡보 구간이 오히려 낫습니다.

강한 추세에서 교차는 이미 움직인 뒤에 켜지기 때문입니다.

> 국면은 교차도 구제하지 않습니다. 그리고 통념을 반박할 때는 재고 통념에 동조할

> 때는 안 재는 것 — 이 앱이 스스로에게 가장 조심해야 할 편향입니다.

이제 두 형제 문구가 둘 다 잰 말을 합니다.

  • 내부 검증 1864건 · 화면 기준선 257장. versionCode 553.
v3.11.672026-08-13
VWAP 「지지·저항처럼 작동한다」는 서지 않습니다

배우기 화면이 이렇게 단언하고 있었습니다 — 「기관이 체결 기준으로 삼는 값이라

지지·저항처럼 작동하는 일이 많습니다」. 분석 문서에 VWAP은 0번 나옵니다.

통제가 깔끔한 자리였습니다. **VWAP과 단순평균은 같은 봉·같은 구간을 보고 거래량 가중만

다릅니다** — 한 가지만 다른 짝입니다.

| | VWAP 되밀림 | 단순평균 | 차이 |

|---|---|---|---|

| 코인 20종 | 48.6% (n=331) | 51.9% | −3.28%p |

| 겹치지 않는 40종 | 43.0% | 51.8% | −8.81%p |

| 주가지수 12 | 55.7% | 55.2% | +0.57%p |

1. 되밀림 자체가 43~56%로 동전 던지기입니다

2. 거래량 가중이 단순평균보다 낫지 않습니다 — 코인에서는 오히려 낮습니다

사건 수가 관측 수와 거의 같아(312 대 331) 앞 판의 길이 편향은 여기 없습니다.

> 이 앱이 지지·저항에서 이미 밟은 자리입니다 — 「여러 번 닿은 자리일수록 크게 반응한다」도,

> 「낡은 선이 붙든다」도 서지 않았습니다. VWAP이 그 목록에 하나 더 얹혔습니다.

뜻(「이 구간에 산 사람들의 평균보다 비싸게 사는 셈」)은 남기고, 받쳐지지 않는 말은

잰 것으로 바꿨습니다.

  • 내부 검증 1864건 · 화면 기준선 257장. versionCode 552.
v3.11.662026-08-13
모든 통제를 통과했고, 국면을 세니 무너졌습니다

가장 유명한 통념입니다 — 「남들이 공포에 질렸을 때 사라.」 이 앱은 홈에 그 지수를

카드로 띄우면서 혼자서는 한 번도 재지 않았습니다.

통제를 전부 통과했습니다

| 극심한 공포 | 5일 | 20일 |

|---|---|---|

| BTC 전체 | +8.6%p | +12.2%p |

| 앞 절반 / 뒤 절반 | +11.1 / +3.2%p | +17.1 / +13.0%p |

| 바스켓 20종 | +5.4%p | +6.9%p |

| 무작위 | −3.2%p | +2.3%p |

절반 가르기(김프를 죽인 것)·결과 자산 바꾸기(시장 맥박을 죽인 것)·무작위

(대부분을 죽인 것)를 모두 통과했습니다. 이 앱에서 처음 있는 일이었습니다.

국면을 세니 열넷이었습니다

「극심한 공포」는 길게 이어집니다 — 2021-11~2022-07 한 국면이 8개월입니다.

날짜로 세면 그 한 번이 수백 번이 됩니다.

| | 국면 수 | 총 일수 | 국면 중앙에서 20일 뒤 오름 |

|---|---|---|---|

| 극심한 공포 | 14개 | 1,176일 | 6/14 = 43% |

| 극심한 탐욕 | 11개 | 578일 | 3/11 = 27% |

| (기준) 아무 날 | — | 3,080일 | 53.2% |

국면 하나를 한 번으로 세면 기준선에 못 미칩니다. +12.2%p는 길이 편향이었습니다.

> 8년에 열네 번. 어느 쪽으로도 말할 수 없는 표본입니다.

>

> n이 커 보이는 것과 표본이 큰 것은 다릅니다. 이 통제가 없었으면 이 앱은

> 「드디어 하나 찾았다」를 내보냈을 것입니다 — 다른 다섯 통제를 전부 통과했으니까요.

공포지수 카드에 그대로 적었습니다.

  • 내부 검증 1864건 · 화면 기준선 257장. versionCode 551.
v3.11.652026-08-13
「급등 목록」을 따라가면 평균보다 못했습니다

「탐색(급등락)」 화면도 분석 문서에 0번 나옵니다. 사용자가 가장 쉽게 행동으로 옮기는

자리인데 재 본 적이 없었습니다.

기준선은 그날 전체 종목의 오름 비율입니다 — 같은 날 안에서 비교하니 시장 전체의

흐름이 저절로 빠집니다.

| | 5일 뒤 | 20일 뒤 |

|---|---|---|

| 급등 상위5 (코인20 / 40종) | −0.97 / −3.78%p | −0.15 / −1.53%p |

| 급락 상위5 | −0.71 / −0.30%p | −1.07 / −0.08%p |

| 거래량 상위5 | +1.26 / −2.12%p | +2.13 / −0.76%p |

| 무작위 5종 | −0.28%p | −0.04%p |

  • 급등·급락은 따라가면 평균보다 못합니다. 작지만 두 표본·두 절반에서 방향이 같고, 40종에서는 −3.8%p까지 벌어집니다
  • 거래량은 두 자료에서 부호가 뒤집힙니다. 아무 말도 할 수 없습니다 목록 위에 그대로 적었습니다 — 「순위일 뿐 추천이 아닙니다」. > 순위는 추천처럼 읽힙니다. 「강한」·「신호」·「순환」에 이은 네 번째 낱말입니다.
  • 내부 검증 1863건 · 화면 기준선 257장. versionCode 550.
v3.11.642026-08-13
도미넌스 「순환」은 이어지지 않습니다

홈에서 눌러 들어가면 화면이 「하락 · 알트코인으로 자금 순환」이라고 말합니다.

「순환」은 이어진다는 뜻으로 읽힙니다. 분석 문서에 도미넌스는 0번 나옵니다 —

한 번도 재지 않았습니다.

| | 5일 뒤 | 20일 뒤 |

|---|---|---|

| 전체(오늘 알트 우위) | −0.55%p | −0.04%p |

| 앞 절반 | −0.52%p | +1.77%p |

| 뒤 절반 | −0.34%p | −1.91%p |

| 무작위 | +0.29%p | +0.20%p |

전부 ±2%p 안이고, 20일은 앞뒤 절반의 부호가 반대입니다. 무작위와 구분되지 않습니다.

「순환」이라는 낱말은 두되 그 아래에 잰 것을 적었습니다 — 「관측된 흐름일 뿐 이어지지는

않습니다 … 「순환」은 지금까지의 사실이지 앞일이 아닙니다」.

> 이 앱이 되풀이해 온 문장의 또 한 번입니다 — **지금을 말하는 낱말이 앞일을 말하는

> 것처럼 읽힙니다.** 「강한」·「신호」·「순환」이 모두 그랬습니다.

첫 화면 글자 예산에는 영향이 없습니다. 도미넌스는 눌러 들어가는 자리라, 배경 설명은

접힌 곳에 둔다는 규칙 그대로입니다.

  • 내부 검증 1863건 · 화면 기준선 257장. versionCode 549.
v3.11.632026-08-13
예산이 한국어만 보고 있었습니다

앞 두 판이 첫 화면 글자 예산의 사각지대를 고쳤는데, 하나가 더 남아 있었습니다 —

그 검사는 한국어 파일 하나만 읽습니다.

| | 글자 수 | 표시 칸 수 |

|---|---|---|

| 한국어 | 585 | 955 |

| 영어 | 1,055 | 1,055 |

| 일본어 | 524 | 971 |

| 중국어(간/번) | 387 / 386 | 701 / 699 |

「글자 600개」라는 자는 언어마다 다른 것을 재고 있었습니다. 한국어 글자는 두 칸을

차지하니 585자는 955칸이고, 그게 원래 규칙이 뜻하던 양입니다.

칸 수로 바꾸고 다섯 언어 모두에 걸었습니다

한도 1,000칸은 새 규칙이 아니라 옛 규칙의 번역입니다. 바꾸자마자 **영어가

1,055칸으로 걸렸습니다.** 초과분은 거의 전부 가장 긴 주의 하나였고(영어 332 대 한국어

258칸), 뜻을 줄이지 않고 문장을 조였습니다.

```

ko 955 · en 1,055 → 1,000 · ja 971 · zh 701/699

```

> 한 언어만 보는 예산은 예산이 아닙니다. 이 앱은 문구가 언어별로 어긋나는 것을 여러

> 번 잡았는데, 길이도 같은 축이었습니다.

  • 내부 검증 1863건 · 화면 기준선 257장. versionCode 548.
v3.11.622026-08-13
「김프가 높으면 과열」을 처음 쟀습니다

김프는 목록 모든 줄에 뜨고 정렬 기준도 계산기도 있는데, 분석 문서 4,500줄에 0번

나옵니다. 한국에서 「김프가 높으면 과열」이라는 통념이 붙어 다니는 수인데 한 번도 재지

않았습니다.

전체로는 통념이 맞아 보입니다

업비트 원화 · 바이낸스 달러 · 환율을 날짜로 맞춰 9종 8,766일.

| | 상위 20% | 하위 20% |

|---|---|---|

| 전체 · 달러값 | −11.23%p | +7.05%p |

| 전체 · 원화값 | −16.53%p | +11.19%p |

두 결과 자산에서 부호가 같습니다 — 앞 판에서 「시장 맥박」을 죽였던 통제를 통과합니다.

절반으로 가르니 사라집니다

| | 상위 20% |

|---|---|

| 앞 절반 | +2.70%p |

| 뒤 절반 | −26.89%p |

전체 수치는 뒤 절반 하나가 끌고 갑니다. 앞 절반은 무작위 잡음 안입니다.

무작위 모형을 잘못 만들어 반대 부호를 얻었습니다

처음엔 달러 값 경로를 섞었는데, 그러면 김프가 「섞인 달러값의 역수」가 되어 +12.10%p

라는 강한 반대 신호가 나왔습니다. 옳은 방법은 김프 계열만 섞는 것이고, 그러자

+2.06%p로 내려앉았습니다.

> 무작위 모형은 관계를 지우는 것이지 다른 관계를 만드는 것이 아닙니다. 잘못 만들면

> 발견을 지우는 대신 반대 방향의 가짜 발견을 만듭니다.

화면의 김프 설명에 그대로 적었습니다.

  • 내부 검증 1862건 · 화면 기준선 257장. versionCode 547.
v3.11.612026-08-13
같은 병을 고치는 자리에 같은 병을 심었습니다 (화면은 그대로입니다)

보시는 화면은 바뀌지 않았습니다.

앞 판은 「가드가 무엇을 세는지 모르면 세지 않는 쪽으로 자란다」로 끝났습니다. 그런데 그

고침에서 제가 넣은 것이 손으로 적은 목록이었습니다 — 다음에 늘 보이는 줄을 하나 더

놓으면 그대로 낡고, 예산은 다시 실제보다 적게 셉니다.

소스에서 끌어오게 했습니다. 기준율을 놓는 자리는 이미 정해져 있습니다 — **카드와 주의

목록 사이. 그 구간의 문자열을 그대로 읽으니, 거기 한 줄을 놓으면 자동으로 예산에

들어갑니다.**

일부러 한 줄 더 놓아 봤더니 585 → 685자, 예산 초과로 실패했습니다. 접힌 자리에

놓으면 안 늘어납니다.

> 손 목록은 「지금은 맞다」를 「앞으로도 맞다」로 착각하게 합니다.

두 자리가 바뀌면 이 검사도 함께 고쳐야 하므로, 못 찾으면 0을 세는 대신 실패하게

해 뒀습니다 — 조용히 0을 세는 것이 처음의 사고였습니다.

  • 내부 검증 1860건 · 화면 기준선 257장. versionCode 546.
v3.11.602026-08-13
첫 화면이 예산의 1.5배였습니다

첫 화면 글자 예산 검사는 세 가지만 셉니다 — 판정 한 문장, 육하원칙 여섯 줄, 가장 긴

주의 하나. 그 사이 판정 아래에 흐린 문단이 넷까지 늘었는데 전부 예산 밖이었습니다.

검사는 565자라 하는데 실제 첫 화면은 935자였습니다. 그 370자는 지난 열다섯 판 동안

하나씩 붙인 것입니다.

> 가드가 무엇을 세는지 모르면, 세지 않는 쪽으로 자랍니다.

검사가 실제를 세게 하고, 접을 것을 정했습니다
  • 기준율 두 줄을 하나로 — 「‘강한’은 열에 여섯, ‘신뢰도 높음’은 넷에 하나 — 둘 다 드문 상태가 아닙니다」(142 → 45자)
  • 배경 설명 둘을 「자세히 보기」 안으로 — 「두 머리글은 다른 것을 잰다」와 「기간을 넘기지 마라」는 지금 이 판독을 읽는 눈금이 아닙니다(−228자)
  • 가장 긴 주의에서 빈도 문장을 제거 — 「25일에 하루꼴」은 급한 주의가 아니라 기준율입니다(−27자) ``` 565 → (검사가 실제를 세자) 935 → 585 ``` 예산을 올리지 않았습니다. 612자에서 12자가 남았을 때도 숫자를 손대는 대신 접을 것을 찾았습니다 — 그게 이 검사의 값입니다.
  • 내부 검증 1860건 · 화면 기준선 257장. versionCode 545.
v3.11.592026-08-13
「신뢰도 높음」도 넷에 하나입니다

`강한 강세 · 신뢰도 중간` — 앞 판들에서 앞쪽에는 기준율을 붙였는데(「강한」은 열에

여섯) 뒤쪽은 안 붙였습니다. 같은 줄인데 한쪽만 재 놓은 셈이었습니다.

| | 낮음 | 중간 | 높음 |

|---|---|---|---|

| 코인 20종 | 24.8% | 47.9% | 27.3% |

| 겹치지 않는 40종 | 30.8% | 47.4% | 21.8% |

| 업비트 14종 | 23.6% | 47.1% | 29.3% |

| 주가지수 12 | 27.1% | 51.3% | 21.6% |

| 미국 대형주 20 | 25.4% | 49.7% | 25.0% |

| 합성 난수 | 26.3% | 50.2% | 23.4% |

여섯 자료가 거의 같고 합성 난수까지 재현합니다 — 시장이 아니라 규칙의 성질입니다.

「높음」은 넷에 하나이고, 「중간」은 둘에 하나로 가장 흔한 상태입니다.

그림을 보고 자리를 옮겼습니다

처음엔 판정 문장 바로 아래에 기준율 세 문단을 쌓았습니다. 그림으로 보니 **카드가 한참

밀려났습니다** — 이 앱이 카드를 넣을 때 「주의사항을 먼저 읽고 나서야 요약을 만난다」며

고쳤던 바로 그 모양입니다. 결론 → 카드 → 기준율 로 되돌리고, 순서를 못 박는 검사도

걸었습니다.

> 재서 붙일 것이 늘수록 「어디에 붙이는가」가 결론만큼 중요해집니다. 앞에 쌓으면

> 정확해지는 것이 아니라 답이 안 보입니다.

  • 내부 검증 1860건 · 화면 기준선 257장. versionCode 544.
v3.11.582026-08-13
가장 많이 보이는 판정에 근거가 없었습니다

홈 맨 위의 「시장 맥박」(위험선호 / 중립 / 위험회피)은 이 앱에서 가장 많이 보이는

판정입니다. 그런데 분석 문서 4,400줄 어디에도 한 번도 나오지 않았습니다. 코인 단위

주장은 죽도록 쟀으면서, 시장 단위 판정은 「참고용 요약 · 투자 조언 아님」이라는 **면책

한 줄**로 서 있었습니다. 면책은 근거가 아닙니다.

재 보니 크게, 그것도 거꾸로 나왔습니다

공포·탐욕 3,101일 + VIX 2,515일 + 코인 20종 일봉.

| | 비율 | 5일 뒤 | 20일 뒤 |

|---|---|---|---|

| 위험선호 | 27.3% | −2.77%p | −7.48%p |

| 위험회피 | 19.5% | +8.86%p | +12.62%p |

덩어리섞기 무작위가 재현하지 못했습니다(+1.00·+2.22%p) — 이 앱에서 처음이었습니다.

앞뒤 절반으로 갈라도 부호가 같았습니다. 여기까지가 「발견」으로 보이는 자리입니다.

결과 자산을 바꾸자 부호가 뒤집혔습니다

| 결과 자산 | 5일 위험선호 | 5일 위험회피 |

|---|---|---|

| BTC | −2.77 | +8.86 |

| 20종 바스켓 | +14.69 | −12.13 |

같은 날, 같은 판정입니다. 90% 넘게 같이 움직이는 두 바구니에서 부호가 반대로 나오는

것은 시장 신호가 아닙니다 — 맥박의 입력 둘이 그 바스켓의 그날 수익률로 만들어지기

때문입니다.

> 무작위 하나를 견뎠다고 발견이 아닙니다. 하마터면 「시장 맥박은 거꾸로다」를 낼

> 뻔했습니다. 검사 둘만 하고 멈췄으면 그대로 나갔습니다.

면책만 있던 자리에 잰 것을 적었습니다(다섯 언어) — 방향을 가르지 못했다는 것, 어느

자산으로 재느냐에 따라 부호가 뒤집혔다는 것, 그리고 상태 비율까지.

  • 내부 검증 1858건 · 화면 기준선 257장. versionCode 543.
v3.11.572026-08-13
「설명이 동작보다 오래 산다」를 세어 봤습니다 (화면은 그대로입니다)

보시는 화면은 바뀌지 않았습니다. 앞 판이 그 병의 네 번째 사례였고, 넷 다 다른 일을

하다 우연히 나왔습니다 — 그러면 세지 않은 것이 더 있다는 뜻입니다.

기계적으로 훑어 봤더니 하나도 못 잡았습니다

KDoc 의 `[심볼]` 참조는 깨져도 컴파일이 통과하니 좋은 채널로 보였습니다. 훑어 보니

깨진 참조 0건이었고(52건은 매개변수 참조라 정당, 나머지 1건은 확장 함수를 못 본

제 실수), 무엇보다 그 검사는 앞선 네 사례 중 하나도 못 잡습니다. 넷 다 심볼은

멀쩡했고 낡은 것은 산문이었습니다.

> 좋아 보이는 채널이 실제 결함과 겹치는지부터 확인해야 합니다. 안 겹치면 그 검사는

> 초록불을 하나 더 만들 뿐입니다.

그래서 바꾼 낱말을 이름으로 못 박았습니다 — 셋이 더 나왔습니다

| 자리 | 남아 있던 옛말 |

|---|---|

| `PlainReading` | 「화면이 «…N봉 안에 뒤집혔습니다» 로 말한다」 |

| `PlainReading` | 「«신뢰도 보통인데 1봉»」 |

| `Confluence` | 「«신뢰도 보통»」 |

앞의 둘은 손으로 찾았고 셋째는 검사가 찾았습니다 — 제 훑기가 KDoc 블록만 봐서

놓친 자리입니다.

일곱 건 중 여섯은 사람이 읽어서 찾았습니다. 그래서 「읽기」를 대신할 검사를 찾는 대신,

바꾼 낱말마다 못을 하나씩 박습니다. 낱말을 바꾸는 판에서 그 못도 함께 박는 것이

이제 절차입니다.

  • 내부 검증 1856건 · 화면 기준선 257장. versionCode 542.
v3.11.562026-08-13
「이 신호는 이 코인에서 잘 맞는다」는 대개 「이 코인이 올랐다」입니다

신호 목록 머리글은 오래 이렇게만 말했습니다 — 「과거 적중률은 다음 구간을 예측하지

못해(상관 0.13) 보여 주지 않습니다」. 그 0.13은 근거가 문서 어디에도 없었고

재측정도 없었습니다. 화면에 나가는 수치 중 마지막으로 남은 자리였습니다.

다시 쟀습니다

앞 절반의 적중률로 뒤 절반을 맞힐 수 있는가 (짝 = 자산 × 신호종류):

| | 날것 r | 그 자산이 오른 만큼을 뺀 뒤 |

|---|---|---|

| 코인 20종 | +0.002 | −0.110 |

| 코인 40종 | +0.337 | +0.091 |

| 주가지수 12 | +0.487 | −0.100 |

| 미국 대형주 20 | +0.233 | −0.136 |

날것으로는 지수에서 +0.49 까지 나와 「성적은 이어진다」로 보입니다. 그런데 그 자산이

두 반기 모두 올랐으면 매수 신호 셋이 함께 높아집니다 — 신호의 실력이 아니라 자산의

표류입니다. 빼고 나면 네 표본이 −0.14~+0.09로 흩어지고 부호도 갈립니다.

> 「이 신호는 이 코인에서 잘 맞는다」는 대개 「이 코인이 올랐다」를 다시 말한 것입니다.

이 앱이 도달한 가장 깊은 「아니다」입니다. 판정이 방향을 못 맞힌다는 것보다 한 겹 위 —

실적 자체가 다음을 못 맞히고, 실적이 맞아 보이는 이유까지 답이 나왔습니다.

머리글이 이제 그 이유를 말합니다(다섯 언어). 「안 보여 준다」만 남으면 다음 사람이

「그럼 보여 주자」로 되돌립니다.

주석이 동작보다 오래 살아 있었습니다

`SignalList` 의 설명이 적중률을 화면에 내던 시절의 것이었습니다 — 「성적이 붙으면

54%는 반반, 71%는 볼 만하다」. 화면은 이미 반대로 말하는데 주석만 옛 편을 들고

있었습니다. 이번 흐름에서 네 번째입니다.

> 동작을 바꾸면 그것을 옹호하던 글도 함께 찾아야 합니다.

  • 내부 검증 1855건 · 화면 기준선 257장. versionCode 541.
v3.11.552026-08-13
TalkBack을 처음 확인했습니다 (화면은 그대로입니다)

보시는 화면은 바뀌지 않았습니다. 이 앱의 검사는 1,800건이 넘는데 **접근성은 한 건도

없었습니다.** 화면 그림은 눈으로 보는 것만 지키고, 눈으로 안 보는 분이 무엇을 듣는지는

아무도 묻지 않았습니다.

| 화면 | 누를 수 있는 것 | 말 없는 것 |

|---|---|---|

| 홈 | 19 | 0 |

| 코인 상세 | 19 | 0 |

| 알림 | 20 | 0 |

| 설정 | 12 | 0 |

다섯을 찾았다가, 다섯 다 물렀습니다

설정에서 이름 없는 칩 넷, 알림에서 하나가 나왔습니다. 스크롤해서 온전히 보이게 하고

다시 재니 멀쩡했고, 대신 위쪽에서 잘린 8픽셀짜리 둘이 새로 걸렸습니다. 자리를

옮기면 범인이 바뀌는 결함은 결함이 아닙니다 — **화면 끝에서 잘린 요소는 자식 글이

덤프에서 통째로 빠집니다.**

> 이번 판에서 두 번째입니다. 앞 판에서는 픽셀을 dp로 읽어 없는 결함을 만들었고,

> 여기서는 잘린 요소를 말 없는 버튼으로 읽었습니다.

되풀이할 수 있게 굳혔습니다

`scripts/a11y_check.py` 가 기기를 잡아 네 화면을 훑습니다. **훑을 것이 없으면

실패합니다** — 처음엔 화면 이동이 빗나가도 「말없는 것 0」으로 초록불이 났습니다.

가르는 함수의 자체검사(다섯 건)도 매번 돌립니다.

  • 내부 검증 1851건 · 화면 기준선 257장. versionCode 540.
v3.11.542026-08-13
회전을 처음 확인했습니다 (화면은 그대로입니다)

보시는 화면은 하나도 바뀌지 않았습니다. 확인과 검사만 늘었습니다.

지침에 「아직 0회」로 적혀 있던 축 넷 중 하나(회전)를 처음으로 실기기에서 봤습니다.

720×1640 폰을 가로로 돌려 코인 시트를 연 채로 확인했습니다 — 멀쩡했습니다.

시트가 살아 있고, 고른 코인이 남고, 여섯 줄이 한 줄씩 들어가고, 주의 문단이 제대로

접힙니다.

결함으로 적을 뻔했습니다

가로에서 지표 행의 상태 칩이 값에서 700px 넘게 떨어져 보였습니다. 이 앱이 뉴스

목록과 알림 목록에서 이미 두 번 결함으로 규정한 모양이라 그대로 적을 뻔했습니다.

아니었습니다. 기기 밀도가 320dpi(×2.0)라 그 폭이 정확히 640dp — 시트는 제 상한을

지키고 있었고, 칩 간격은 그 안에서의 정상 배치였습니다.

> 픽셀로 재고 dp로 말하면 없는 결함이 생깁니다. 기기 화면은 픽셀이고 규칙은

> dp입니다. 넓어 보이면 먼저 밀도로 나눠야 합니다.

그래도 빈틈은 남았습니다

그 상한을 아무것도 안 보고 있었습니다. 지우면 태블릿·폴드에서 시트가 화면을 다

채우고 칩이 1,000dp 넘게 밀려나는데, 실패하는 검사가 없었습니다. 그림도 없었습니다 —

판독 절 그림 스물몇 장이 전부 320~400dp 였습니다.

  • 시트가 가장 넓어지는 640dp 그림 한 장(깨끗했습니다)
  • 상한 선언을 못 박는 검사 — 지워 보고 실패 확인
  • 내부 검증 1851건 · 화면 기준선 257장. versionCode 539.
v3.11.532026-08-13
같은 사건을 두 이름으로 부르고 있었습니다

실기기에서 카드 바로 아래 주의 문구를 읽다 보였습니다.

```

카드 네 줄 「절반은 6봉 안에 이 방향이 아니게 됐습니다」

주의·설명 다섯 「절반이 1봉 안에 끝났습니다」

```

둘 다 같은 것을 뜻하고 둘 다 틀리지 않았습니다. 그런데 지난 판에서 자가 셋임을

갈라낸 자리입니다 — 이름이 둘이면 읽는 분은 다른 사건으로 읽습니다.

> 「끝났다」가 나쁜 낱말이어서 바꾼 것이 아닙니다. 둘이어서 바꿨습니다.

다섯 언어 열다섯 곳을 하나로 모았습니다. 영어는 시제가 자리마다 다른데(카드 `stop`,

측정 보고 `stopped`) 그건 이름이 갈린 것이 아니라, 사건의 이름만 봅니다 — 처음엔

시제까지 맞추라고 걸었다가 네 곳이 헛짚어서 좁혔습니다.

네 번째 수치도 다시 쟀고, 맞습니다

| | 화면 | 다시 잰 값 |

|---|---|---|

| 두 거래소가 어긋나는 빈도 | 25일에 하루꼴(3.8%) | 4.1% |

| 어긋날 때 수명 | 절반이 1봉 | 2봉 |

| 같을 때 수명 | 절반이 8봉 | 10봉 |

이게 중요한 이유는 대조 때문입니다. 지난 판에서 「20일선 반대쪽」의 빈도가 옛 표

2.4% 대 지금 9.5~9.8%로 네 배 어긋났습니다. 같은 종류의 수인데 이쪽은 맞으니,

그건 계통 오차가 아니라 그 측정 하나의 문제입니다. 재측정을 하나 더 붙여야 비로소

알 수 있는 것입니다.

이 수치는 영구 검사로 못 옮깁니다 — 두 거래소 자료가 있어야 하는데 저장소에 없고,

합성으로는 「두 거래소」를 만들 수 없습니다(잡음 크기를 제가 정하는 순간 답도 제가

정합니다). 옮길 수 없다는 사실을 적어 둡니다.

이름을 모으자 첫 화면 예산이 터졌습니다

첫 화면 글자 예산 검사(600자)가 602자로 막았습니다. 2자를 깎는 것은 답이 아닙니다.

세어 보니 예산의 3분의 1이 문자열 하나였습니다 — 스퀴즈 판독 문장 204자. 그런데

그 안의 측정 설명은 지표 줄에 이미 같은 말로 있었습니다. 첫 화면에는 결론만

남기고 중복을 접었습니다(602 → 565자).

> 예산 검사는 「글이 길다」가 아니라 「무엇이 중요한지 정하지 않았다」를 잡습니다.

> 여기서도 답은 중복이었습니다.

  • 내부 검증 1849건 · 화면 기준선 256장. versionCode 538.
v3.11.522026-08-13
세 번째 수치도 재측정으로 옮겼습니다

카드의 「어떻게」 줄을 만드는 수 — 이 앱에서 가장 「행동처럼」 읽히는 자리입니다.

앱 코드로 코인 20종 일봉을 다시 훑었더니 넷 다 화면의 수와 1%p 안이었습니다.

| | 화면 | 다시 잰 값 | 합성 난수 |

|---|---|---|---|

| 아무 일 없음 | 61% | 60.9% | 63.2% |

| 선만 무너짐 | 65% | 64.6% | 70.9% |

| 20일선만 넘음 | 81% | 81.5% | 81.5% |

| 둘 다 | 91% | 90.9% | 90.6% |

합성에서도 차례와 폭이 그대로라, 영구 검사는 퍼센트가 아니라 구조를 못 박습니다.

검사 하나로는 모자랐습니다 — 되돌려 보고 알았습니다

선 고르기를 옛 규칙(「가장 가까운 선」)으로 되돌려 봤더니 그 검사가 통과했습니다.

그래서 하나 더 걸었습니다 — 그 선이 20봉 안에 무너지는 비율. 옛 규칙에서

75.1% 가 나옵니다. 넷에 셋 넘게 일어나는 일을 「만약 무너지면」이라고 부르는

것은 거짓말에 가깝습니다.

> 한 검사가 통과했다고 그 결정이 지켜지는 것은 아닙니다. 되돌려 보지 않으면

> 「걸었다」와 「잡는다」의 차이를 영영 못 봅니다.

붙잡는 데 두 번 헛돌았고 둘 다 측정틀 탓이었습니다 — 지지·저항이 이름과 반대 순서로

돌아오는 것, 무효화 선의 값이 결과에 없어 거리에서 되짚어야 하는 것. 표본이 0인데

「통과」로 보이지 않은 것은 이유별로 세어 찍었기 때문입니다.

  • 내부 검증 1848건 · 화면 기준선 256장. versionCode 537.
v3.11.512026-08-13
재측정을 하나 더 옮겼고, 안 맞는 수를 하나 찾았습니다

지난 판이 수명 사다리를 재측정 검사로 옮겼습니다. 같은 자리에 수가 하나 더 있습니다 —

「20일선 반대쪽」(1봉). 이 수는 신뢰도를 제치고 카드의 「언제까지」 줄을

차지하는데, 재측정이 없었습니다.

| | 같은 쪽 | 반대쪽 | 반대쪽 비율 |

|---|---|---|---|

| 합성 난수 | 9봉 | 2봉 | 9.5% |

| 코인 20종 | 10봉 | 2봉 | 9.8% |

| 주가지수 12 | 9봉 | 2봉 | 9.5% |

여기서도 합성이 시장을 그대로 재현합니다. 화면의 1봉은 여섯 기간 중 최솟값이라

한 기간짜리 2봉과 어긋나지 않습니다 — 그 관계를 그대로 규칙으로 걸었습니다.

일부러 1 → 5로 바꿔 보고 잡히는 것을 확인했습니다.

안 맞는 수는 고치지 않고 적어 둡니다

반대쪽이 얼마나 흔한가가 안 맞습니다. 옛 측정표는 2.4%라고 적었는데 지금 코드의

조건으로 세 말뭉치를 훑으면 9.5~9.8% — 네 배 차이입니다. 수명 쪽은 잘 맞습니다.

빈도만 어긋나니, 옛 측정이 「어긋남」을 지금보다 좁게 잡았을 가능성이 큽니다.

화면 문구는 빈도를 말하지 않으므로 지금 보시는 수가 틀린 것은 아닙니다. 다만

문서의 표가 코드와 안 맞으니 그대로 적어 둡니다.

> 재측정을 붙이면 옛 측정이 무엇을 쟀는지도 함께 드러납니다. 일관성 검사만 있을

> 때는 두 수가 다르다는 사실 자체가 보이지 않습니다.

  • 내부 검증 1846건 · 화면 기준선 256장. versionCode 536.
v3.11.502026-08-13
하나 남은 주장을 매번 다시 재게 했습니다

이 앱이 「맞힌다」고 말하는 것은 하나뿐입니다 — 판독이 얼마나 오래 가는가.

그런데 그 수를 다시 재는 검사가 없었습니다. 기존 검사는 상수와 화면 문구가

서로 맞는지만 봅니다. 일관성은 지켜지고, 진실은 아무도 묻지 않는 상태였습니다.

합성 난수로 잽니다 — 그게 오히려 맞는 방식입니다

이 사다리는 이미 산술로 판명됐습니다. 실제로 씨앗 고정 난수 걸음이 실제 시장의 표를

봉 단위로 재현합니다.

| | 코인 20종 | 주가지수·미국주 | 합성 난수 |

|---|---|---|---|

| 이름표가 바뀌기까지 | 1·3·9 | 1·3·8~9 | 1·3·9 |

| 방향이 아니게 되기까지 | 2·8·12 | — | 2·8·13 |

| 반대로 뒤집히기까지 | 6~8·14·18~19 | — | 6·13·19 |

세 자산군과 난수가 같은 표를 냅니다. 지난 판의 결론(「코인이라서가 아닙니다」)이

여기서 가장 깨끗하게 보입니다 — 시장을 아예 빼도 표가 그대로입니다.

무엇을 잡는지 세 번 확인했습니다

| 망가뜨린 것 | 잡았나 |

|---|---|

| 화면 상수 「높음」 11 → 30 | ✅ |

| 화면 상수 「보통」 6 → 2 | ✅ |

| 계산 자체 — 신뢰도를 뒤집음 | ✅ 두 검사가 동시에 |

셋째가 이 검사의 존재 이유입니다. 앞의 둘은 상수 오타를 잡고, 셋째는 **지표나 신뢰도

규칙을 손댔을 때 사다리가 무너지는 것**을 잡습니다 — 상수만 보는 검사로는 영영

안 보이는 자리입니다.

> 일관성 검사는 값이 서로 맞는지를 묻고, 재측정 검사는 값이 참인지를 묻습니다.

> 이 앱은 전자를 스물몇 개 쌓아 두고 후자를 하나도 두지 않았습니다.

  • 내부 검증 1845건 · 화면 기준선 256장. versionCode 535.
v3.11.492026-08-13
한 문장에 자가 셋 섞여 있었습니다

지난 판이 숙제를 남겼습니다 — 측정값이 1·3·9봉인데 화면은 2·6·11을 씁니다.

재 보니 틀린 쪽이 없었습니다. 자가 셋이었습니다.

| 무엇의 수명인가 | 낮음 | 보통 | 높음 |

|---|---|---|---|

| A 화면에 보이는 이름표(「강한 매수」·「매수 우위」…) | 1 | 3 | 9 |

| B 방향이 아니게 되기까지 — 화면이 쓰는 수 | 2 | 8 | 12 |

| C 반대쪽으로 실제로 뒤집히기까지 | 6~8 | 14 | 18~19 |

두 표본이 같은 값이고, B가 화면의 수와 맞습니다. 화면의 수는 옳았습니다.

풀고 보니 더 큰 것이 있었습니다

화면은 B의 수를 적고 C의 낱말로 말하는데, 보고 계신 것은 A입니다.

```

카드: 「신뢰도 중간 · 절반은 6봉 안에 뒤집혔습니다」

└ 6 = B └ 「뒤집혔다」 = C (참값 14)

바로 위: 「강한 매수」 = A (절반이 3봉)

```

  • 「뒤집혔다」로 읽으면 참값은 6이 아니라 14입니다 — 낱말 하나로 수가 두 배 넘게 틀립니다
  • 보고 계신 이름표는 6봉이 아니라 3봉이면 절반이 바뀝니다 > 각 수는 제 자로는 맞습니다. 나란히 놓인 순간 거짓말이 됩니다. 수는 그대로 두고(B가 맞는 자입니다) 낱말을 고쳤습니다 — 「절반은 N봉 안에 이 방향이 아니게 됐습니다」. 그리고 신뢰도 설명에 세 자를 나란히 적었습니다. 특히 A를 빼면, 화면은 자기가 보여 주는 것보다 오래 가는 수를 적어 두는 셈입니다.
이 사다리를 다시 재는 검사는 없었습니다

기존 검사는 상수와 화면 문구가 서로 맞는지만 봅니다. 다시 재지는 않습니다.

이 앱에 하나 남은 긍정적 주장의 수가 그렇게 서 있었습니다 — 일관성은 지켜지고,

진실은 아무도 묻지 않는 상태. 다음 숙제로 적어 둡니다.

  • 내부 검증 1842건 · 화면 기준선 256장. versionCode 534.
v3.11.482026-08-13
코인이라서가 아니었습니다

이 앱의 모든 측정이 코인이었습니다. 그러면 「어느 잣대도 기준선을 못 넘는다」는

코인의 성질일 수도 있습니다 — 그 경우 화면의 말은 범위를 좁혀야 합니다.

주가지수 12개(코스피·코스닥·다우·S&P·나스닥·닛케이·FTSE·DAX·항셍·유로스톡스50·호주·

브라질)와 미국 대형주 20종의 일봉 10년치로 다시 쟀습니다. 예측 셋을 미리 적었고,

셋 다 확인됐습니다.

| | 주가지수 12 | 개별주 20 | (대조) 코인 20 | 무작위 |

|---|---|---|---|---|

| 극단 합 | 65.4% | 67.5% | 66.9% | 63.6 / 63.9% |

| 중립 | 10.5% | 9.8% | 10.5% | 10.9% |

| 강세 판정 | −6.20%p | −5.02%p | −4.64%p | −6.95 / −6.14 |

주식에서 오히려 더 나쁩니다. U자도, 중립이 열에 하나인 것도, 신뢰도 사다리의

순서도 그대로입니다.

> 이 앱이 재 온 것은 코인이 아니라 이 산술이었습니다. 지표를 세어 판정을 내는

> 방식은 값 경로가 무엇이든 — 코인이든 코스피든 무작위든 — 같은 모양으로 실패합니다.

판독 요약을 다섯 언어에서 고쳤습니다. 「두 자료 모두에서」 → 「코인 20종·주가지수

12개·미국 대형주 20종 어디에서도 … 코인이라서가 아닙니다」.

가진 것보다 적게 말하는 것도 정확하지 않습니다. 이 앱은 지금까지 반대 방향만

조심해 왔습니다.

풀지 못한 것을 적어 둡니다

이번 측정의 수명 절대값이 화면이 쓰는 2·6·11과 다릅니다. 임시 측정틀의 신뢰도 분포가

앱과 다르게 나왔으니(높음 636 대 낮음 8,367) 측정틀 쪽이 다를 가능성이 큽니다.

순서는 잘못 조립해도 견디지만 절대값은 아니라서, 순서만 가져오고 **절대값 차이는

풀지 않은 채로 남깁니다.**

  • 내부 검증 1840건 · 화면 기준선 256장. versionCode 533.
v3.11.472026-08-13
「바로 위의 …」가 없어진 줄을 가리키고 있었습니다

근거 설명 문단은 이렇게 시작하고 있었습니다.

> 바로 위의 「강세 지표 N개 · 약세 M개」가 이 화면에서 가장 많은 것을 말합니다.

그 줄은 없습니다. 육하원칙 카드를 넣으면서 표 수가 두 번 나오는 것을 고치려고

뺐는데, 그 줄을 가리키던 문장은 안 고쳤습니다. 지금 「바로 위」에는 신뢰도 설명이

있고, 표 수는 카드의 「왜」 줄에 「지표 N개가 위, M개가 아래」로 있습니다 — 인용한

낱말조차 다릅니다.

> 요소를 옮기면 그 요소를 가리키던 말이 남습니다. 문서에서 이미 겪은 모양이

> (거둔 결론이 앞에서는 현재형) 화면으로 왔습니다.

인용 전체를 훑는 검사는 만들지 않았습니다

처음엔 「」 안의 말이 실재하는지 전부 보려 했습니다. 35건 중 **32건이 걸렸는데 거의 다

정상이었습니다 — 「골든크로스」·「큰 움직임이 임박했다」처럼 개념을 따온** 인용입니다.

오탐이 그만큼 나는 검사는 다음 사람이 꺼 버립니다.

걸러야 하는 것은 자리를 가리키는 말뿐이었습니다. 두 번 더 좁혔고, 둘 다 일부러

돌려 보고서 알았습니다.

1. 가리킴과 인용이 붙어 있을 때만 — 「70의 바로 위」처럼 을 가리키는 말이

다섯 건 헛짚었습니다

2. 한국어만 — 번역문에서 「すぐ上」·「上方的」이 두 뜻으로 갈립니다. 번역은

한국어에서 나오니 원문에서 잡으면 번져 나가지 않습니다

고쳐 놓고도 한 번 실패했습니다. 인용은 「N개…M개」인데 원본은 형식 인자라 둘 다 같은

글자로 뭉개집니다 — 자리표를 안 맞추면 맞는 문장도 틀렸다고 합니다.

  • 내부 검증 1838건 · 화면 기준선 256장. versionCode 532.
v3.11.462026-08-13
화면에 없는 낱말의 기준율을 설명하고 있었습니다

지난 판에 붙인 문단을 실기기에서 봤습니다. 판정이 「약세 우위」인데 바로 아래 문단은

「강한」의 기준율을 이야기하고 있었습니다 — 읽는 분이 보고 있지도 않은 상태의 설명입니다.

한 문단을 둘로 갈랐습니다.

  • 기준율(「지금 이 ‘강한’은 열에 여섯입니다」)은 판정이 실제로 극단일 때만
  • 기간 넘기기 경고는 늘 — 오히려 판정이 중립일 때 넘기고 싶어지므로, 그때 빼면 가장 필요한 자리에서 사라집니다 > 지난번 방향 인식 무효화 줄과 같은 계열입니다. 한 상태에서 맞는 문장이 다른 상태에서 > 어긋납니다. 그림은 한 상태만 그리고, 기기는 그날의 상태만 보여 줍니다.
게이트가 왜 죽었는지 말하게 했습니다

지난 판에서 게이트가 한 번 죽고 다시 돌리니 통과했습니다. 코드는 그대로였고, 화면에

뜬 것은 「gradle exit 1」뿐이라 원인을 찾는 데 몇 분을 썼습니다. 컴포즈 프리뷰 렌더러가

가끔 시간 안에 못 그리는 것이었습니다.

  • 실패 이유를 갈라 봅니다 — 렌더 타임아웃이라고 말한 경우에만, 한 번만 다시 돌립니다
  • 시험이 깨졌거나 기준선이 어긋난 실패는 그대로 죽습니다. 「다시 돌리면 통과」는 진짜 결함을 숨기는 흔한 길이라 좁게 잡았습니다
  • 두 번째도 죽으면 gradle 의 「What went wrong」 토막을 찍습니다
  • 가르는 함수가 실제로 가르는지 매번 확인합니다 — 진짜 실패를 렌더 탓으로 넘기는 오작동이 가장 위험해서, 자체검사를 따로 두지 않고 게이트 안에 넣었습니다
  • 내부 검증 1837건 · 화면 기준선 256장. versionCode 531.
v3.11.452026-08-13
「강한」은 열에 여섯입니다. 그리고 기간이 여섯 개 있습니다

화면은 기간을 여섯 개 줍니다(15분·30분·1시간·4시간·일·주). 그게 다중비교 기계인지

예측을 미리 적고 쟀습니다 — 셋 다 확인됐고, 크게 넘겼습니다.

| | 실제 | 덩어리섞기 무작위 |

|---|---|---|

| 여섯 중 하나라도 극단 | 99.8% | 99.3% |

| 강한 매수·강한 매도 동시 | 57.2% | 73.4% |

| 일봉이 중립인데 다른 데서 극단 | 99.6% | 98.5% |

원하는 답은 거의 언제나 어느 기간엔가 있습니다.

왜 그렇게 흔한가 — 판정 분포가 U자였습니다

| | 주요 20종 | 겹치지 않는 40종 | 업비트 14종 |

|---|---|---|---|

| 중립 | 10.6% | 14.6% | 10.1% |

| 극단(강한 매수·매도) 합 | 66.8% | 58.9% | 67.7% |

점수는 가운데에 잘 머물지 않습니다. 「강한」은 드문 상태가 아니라 열에 여섯입니다.

밴드를 다시 나누지 않았습니다

분위수로 자르면 「강한」이 드물어 보이게 만들 수 있습니다. 안 했습니다 — 그러면

점수가 U자라는 사실 자체가 화면에서 사라지고, 이 앱의 수명·관문·신뢰도 측정이

전부 이 밴드 위에 쌓여 있어 자를 바꾸면 쌓인 것이 뜻을 잃습니다.

대신 기준율을 화면에 적었습니다. 이름을 고치면 보기 좋아지고, 기준율을 적으면

읽는 분이 스스로 나눌 수 있습니다.

  • 내부 검증 1837건 · 화면 기준선 256장. versionCode 530.
v3.11.442026-08-13
두 요약이 같은 말을 해도 보강이 아닙니다

지난 판 실기기 확인에서 본 장면입니다. 판독 화면 위쪽 머리글 두 줄이 **바로 붙어 있고

정반대로** 말합니다 — 「방향이 뚜렷하지 않습니다」 바로 아래 「강한 강세」.

미리 예측을 적고 쟀는데, 둘 다 빗나갔습니다

| | 주요 20종 | 겹치지 않는 40종 |

|---|---|---|

| 같은 방향 | 46.4% | 46.3% |

| 구조가 「엇갈림」 | 39.8% | 40.1% |

| 정반대 | 13.8% | 13.6% |

정반대는 15%에 못 미쳤고(예측 기각), 대신 「같은 말을 하지 않는」 봉이 53.7% 입니다.

문제는 어긋남이 아니라 일치였습니다. 기준선 대비로 강세 판정 혼자는 −4.41·−3.32%p,

둘이 강세로 일치하면 −5.75·−3.81%p 로 더 나쁩니다.

그런데 그것도 쓸 수 없습니다

수익률을 60봉 덩어리로 섞은 무작위 경로에 같은 사슬을 걸면 −5.87·−7.58%p

귀무가 더 세게 재현합니다. 어긋나는 비율(14.8·14.5%)까지 같습니다.

> 사람은 두 요약이 같은 말을 하면 「둘 다 그렇다니 확실하다」로 읽습니다. 이 앱에서는

> 그 읽기가 틀립니다. 화면이 할 수 있는 말은 「이 둘은 다른 것을 잰다」까지입니다.

영어 그림을 그려 보다 퍼센트가 두 개로 찍히는 걸 봤습니다

새 문구가 「46%% of bars」로 나왔습니다. 인자 없는 문자열의 `%%` 는 안드로이드가

줄이지 않습니다 — 줄어드는 것은 형식 인자와 함께 부를 때뿐입니다. 한국어는 `%` 하나로

써서 멀쩡했고 — 한국어 그림만 봤으면 그대로 나갔습니다.

훑어보니 이미 하나 더 있었습니다. 스토캐스틱 %D선 라벨이 다섯 언어 모두

「%%D선 · %%D線 · %%D线」으로 찍히고 있었습니다. 언제부터인지 모릅니다.

  • 내부 검증 1834건 · 화면 기준선 256장. versionCode 529.
v3.11.432026-08-13
같은 등급을 두 이름으로 부르고 있었습니다

실기기에서 잡았습니다. 판독 머리글은 「강한 강세 · 신뢰도 중간」이라 하고, 그 아래

150픽셀 거리의 육하원칙 카드는 「신뢰도 보통 · 절반은 6봉 안에」라고 합니다.

같은 값입니다. 읽는 사람은 두 등급인 줄 압니다.

그림 …장이 이걸 못 잡습니다

기준선은 픽셀이고, 두 낱말 다 멀쩡한 한국어라 맞춤법도 마크다운도 안 걸립니다.

무엇과 무엇이 같아야 하는지는 사람만 압니다 — 그래서 사람이 기기에서 봐야 했습니다.

훑어보니 한국어만 다른 낱말이었고(중간↔보통), 일본어·중국어는 활용형이 어긋나

있었습니다(低い↔低 · 中等↔中 · 高い↔高). 다섯 언어를 칩 라벨에 맞췄습니다.

> 숫자에서 먼저 겪은 일입니다 — 「각 수는 제 자로는 맞다. 나란히 놓인 순간 거짓말이

> 된다」(수명 정의 둘이 한 화면에 섞였던 판). 이번엔 이름으로 왔습니다.

스물여덟 판 만의 실기기 확인에서 나머지는 맞았습니다
  • 난독화(R8) 릴리스가 두 기기에서 정상 기동 — 폴드5 안쪽 화면, 720px 폰
  • 방향 인식 무효화 줄이 양방향 모두 맞습니다. 매도 판정 + 20일선 위 → 「₩9,502 아래로 돌아와야 버팁니다」, 매수 판정 + 20일선 위 → 「₩9,458 아래로 내려가면 이 판독은 거둡니다」. 이 줄은 예전에 한 방향으로만 맞았고, 그때 실기기 확인은 하필 약세 코인을 열어 못 봤습니다
  • 무효화 가격이 지표 줄의 20일선 값과 같은 수임을 눈으로 대조
  • 알림 폼의 새 문단이 넓은 화면에서 안 넘칩니다. RSI 칩 둘은 스크롤하면 나옵니다
  • 내부 검증 1830건 · 화면 기준선 256장. versionCode 528.
v3.11.422026-08-13
화면에 붙여 놓고, 그림이 지나지 않았습니다

지난 열 판 동안 알림 화면에는 아무도 본 적 없는 문단 두 개가 있었습니다.

v3.11.31 에서 「기술적 신호」알림 설명에 잰 것을 적어 넣었습니다 — 발화한 자리의 20봉 뒤

방향이 기준선을 못 넘는다는 말입니다. 그런데 그 문단은 종류로 「기술적 신호」를 골라야만

나옵니다. 폼의 기본 종류는 「가격 ↑ 이상」입니다.

알림 화면 그림이 여섯 장 있었습니다. 여섯 장 다 같은 가지를 지납니다.

세어 보니 어두운 가지가 여섯이었습니다

| 종류로 갈리는 자리 | 그림이 지나나 |

|---|---|

| 가격 ↑ 이상 — 「지금 값 대비」 힌트 | ✅ (기본값) |

| 기술적 신호 — 설명 두 문단 | ❌ |

| 가격 ↓ 이하 · RSI ↑/↓ · 변동 ↑/↓ | ❌ 다섯 |

일곱 장을 새로 그렸습니다. 기술적 신호는 좁은 폭 × 큰 글씨(1.4배) 로 잡았습니다 —

이 앱에서 글이 넘친 사고는 거의 다 거기서 났습니다.

> 계산해 놓고 화면에 안 붙인 값, 옛 수가 화면에 남은 것에 이어 세 번째 모양입니다:

> 화면에 붙였는데 그림이 안 지나는 것. 앞의 둘은 값을 봐서 잡았고, 이건 가지를 세어야

> 잡힙니다. 이제 가드가 셉니다 — 새 가지를 만들면 그림 없이는 못 넘어갑니다.

그림을 그리자 「결함」이 하나 보였는데, 아니었습니다

새 그림에서 임계값 칸은 RSI 를 묻는데 위 칩 줄에는 고른 칩이 안 보입니다. 고칠 뻔했습니다.

닿을 수 없는 자리였습니다 — 기본 종류가 첫 칩이라 처음 열면 늘 보이고, 고른 종류와 스크롤

위치는 회전에서 함께 살아남습니다. 어긋나게 만든 것은 그림을 그리려고 넣은 손잡이

뿐이었습니다.

> 그림용 손잡이는 앱에 없던 상태를 만들어 냅니다. 거기서 나온 어긋남은 고치기 전에

> 「사용자가 그 자리에 닿는 길이 있는가」부터 물어야 합니다.

  • 내부 검증 1829건 · 화면 기준선 256장. versionCode 527.
v3.11.412026-08-13
문서에도 같은 병이 있었습니다

이 앱의 분석 문서는 「덧붙이는 원칙에는 줄이는 원칙이 짝으로 있어야 한다」를 세워 뒀는데,

마흔다섯 절을 덧붙이는 동안 그 규칙을 문서 자신에게는 한 번도 적용하지 않았습니다.

그리고 구체적 위험이 있었습니다 — 뒤 절이 거둔 주장이 앞 절에서는 아직 현재형입니다.

순서대로 읽는 사람은 거둬진 것을 먼저 믿고 스무 절 뒤에야 「그건 아니었다」를 만납니다.

열 자리 중 일곱이 앞을 안 가리켰습니다

| 거둔 주장 | 어디서 거뒀나 | 앞을 가리켰나 |

|---|---|---|

| 「처음으로 검증된 구조적 아이디어」 | §8-37 | ✅ |

| 신뢰도는 「이미 얼마나 왔나」를 재는 값 | §8-26 | ❌ 세 곳 |

| 「오래된 선일수록 붙든다」 | §8-44 | ❌ |

| 「지지·저항 선이 붙든다」 | §8-43 | ❌ |

| 「유일한 시장 잔차/신호」 | §8-44·§8-45 | ❌ 두 곳 |

지우지 않고 표시를 붙였습니다 — 틀린 판단도 기록으로 남기는 것이 이 저장소의 규칙이고,

그게 다음 사람이 같은 길을 다시 걷지 않게 합니다.

> 문서도 화면과 같은 병에 걸립니다. 화면에서는 「옛 수」로, 문서에서는 **「거둔 결론이

> 아직 현재형」**으로 나타납니다.

가드를 걸다 두 번 헛돌았습니다

처음엔 앞뒤 900자 창으로 걸었더니, 표시를 일부러 지워도 통과했습니다 — 절 하나가

통째로 「거뒀다」 이야기를 하고 있으면 어떤 줄이든 이웃 낱말에 걸립니다. 줄 단위로 좁히자

두 곳이 더 걸렸습니다.

> 창을 넓게 잡은 가드는 「맥락이 있다」를 「이 줄이 말한다」로 착각합니다.

  • 내부 검증 1828건 · 화면 기준선 250장. versionCode 526.
v3.11.402026-08-13
세 층을 벗겼는데 남습니다. 그리고 여기서 멈춥니다

앞 판이 잔차를 「자리」에서 「상태」로 옮겼습니다. 그 상태가 「강한 추세」일 것 같았습니다 —

먼 선을 넘으면서 20일선은 안 넘었다는 건 20일선이 더 멀다는 뜻이니까요.

기각 — 신뢰도가 흡수하지 못합니다

| | 실제 (20종 / 40종) | 블록 20 | 잔차 |

|---|---|---|---|

| 낡은 선 전체 | 59.7% / 58.5% | 64.7% / 68.2% | −5.02 / −9.68 |

| 신뢰도 높음 | 54.0% / 54.7% | 62.1% / 63.4% | −8.09 / −8.61 |

| 신뢰도 보통 | 64.4% / 59.9% | 66.6% / 70.2% | −2.25 / −10.31 |

| 신뢰도 낮음 | 70.9% / 68.9% | 69.2% / 75.7% | +1.71 / −6.77 |

「신뢰도 높음 × 낡은 선」에서 두 자료가 −8.09 · −8.61로 거의 같습니다 — 이 앱에서 가장

잘 재현된 잔차입니다.

세 층을 벗겼는데 남았습니다

자기상관·변동성 군집(IID) → 변동성 군집만(블록) → 「그 자리」(가짜 선) → 「강한

추세」(신뢰도 고정). 네 번째도 흡수하지 못했습니다.

그런데 여기서 멈춥니다

① 쪼갤수록 찾을 확률이 오릅니다. 이 잔차를 접점·라운드·나이·거리·신뢰도로 다섯 번

갈랐습니다. 그중 하나가 두 자료에서 맞는 것은 우연으로도 일어납니다.

② 두 자료가 완전히 독립이 아닙니다. 종목은 안 겹치지만 기간이 겹칩니다.

③ 쥘 손잡이가 없습니다. 이 잔차를 규칙으로 옮기려 했더니 지금 규칙보다 나빴습니다.

> 셋을 합치면 「더 파라」가 아니라 「여기까지」입니다. 잔차가 재현된다는 것과 그것이

> 무엇인지 안다는 것은 다르고, 무엇인지 모르는 것을 화면에 붙일 수는 없습니다.

화면은 앞 판에서 고친 그대로 둡니다 — 「자리가 아니라 얼마나 멀리 왔는가」. 그 문장은 이

측정 뒤에도 맞습니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 525.
v3.11.392026-08-13
유일한 「시장 사실」도 지지·저항의 것이 아니었습니다

앞 판이 「60봉 넘게 안 건드린 낡은 선」을 유일한 생존자로 남겼습니다. 그런데 지금까지의

잣대는 전부 가짜 시세였습니다 — 값 경로를 통째로 바꾸는 방식입니다.

더 날카로운 잣대가 있습니다. 가짜 선 — 값 경로를 그대로 두고, 같은 봉·같은 쪽·같은

거리에 꼭짓점이 아닌 선을 놓습니다. 같은 사건에서 짝지으니 변동성·추세·군집이 자동으로

통제되고, 남는 차이는 「그 가격이 꼭짓점이냐 아니냐」뿐입니다.

기각 — 가짜 선이 똑같이 합니다

| | 진짜 선 | 가짜 선(같은 거리) | 차이 |

|---|---|---|---|

| 20종 전체 | 64.8% | 65.3% | −0.55%p |

| 20종 낡은 선 | 59.7% | 59.1% | +0.56 |

| 40종 전체 | 64.1% | 64.3% | −0.13 |

| 40종 낡은 선 | 58.5% | 57.4% | +1.10 |

두 결과를 함께 읽으면

모순이 아닙니다. 블록 부트스트랩은 잔차가 실재한다고 말하고, 가짜 선은 **그 잔차가

「자리」의 것이 아니다**라고 말합니다.

즉 잔차는 상태의 것입니다 — 「값이 오래된 구조에서 멀리 떨어져 있다」는 상태. 그

상태에서는 그 거리쯤을 되짚어도 판독이 잘 안 뒤집힙니다. 어느 가격을 되짚든.

이 앱이 이미 같은 답을 적어 뒀습니다

매물대에 대해 「자리가 아니라 얼마나 멀리 왔는가」라고 적혀 있습니다. 지지·저항에서도 같은

답이 나왔습니다.

> 차트에서 「어디」를 묻는 물음은 「얼마나 멀리」로 되돌아옵니다.

화면을 한 판 만에 다시 고쳤습니다

앞 판에 붙인 「낡은 선은 붙든다」가 부정확해져 5개 언어를 고쳤습니다.

> **잔차를 찾았을 때 가장 먼저 할 일은 그것을 화면에 붙이는 것이 아니라, 그것이 무엇의

> 잔차인지 한 번 더 가르는 것입니다.**

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 524.
v3.11.382026-08-13
결산을 의심했더니, 유일한 발견의 70%가 「선」이 아니었습니다

앞 판의 결산은 무작위 모형 하나 위에 서 있었습니다 — 수익률을 IID로 뒤섞기. 그 모형은

자기상관과 변동성 군집을 함께 없앱니다. 그러면 유일하게 남은 발견(지지·저항이 붙든다)도

「선」이 아니라 군집의 그림자일 수 있습니다.

블록 부트스트랩으로 갈랐습니다 — 덩어리째 뒤섞으면 덩어리 안의 변동성 군집은 살아남고

긴 구조만 깨집니다.

| | 실제 | IID 잔차 | 블록 20 | 블록 60 |

|---|---|---|---|---|

| 20종 전체 | 64.8% | −9.5 | −2.8 | −2.5 |

| 20종 새 선 | 68.7% | −5.4 | −0.2 | −1.0 |

| 20종 낡은 선 | 59.7% | −14.9 | −6.1 | −4.5 |

| 40종 전체 | 64.1% | −7.2 | −2.1 | −3.2 |

| 40종 새 선 | 68.4% | −4.0 | +2.0 | +0.8 |

| 40종 낡은 선 | 58.5% | −11.5 | −7.5 | −8.5 |

① 잔차의 70%가 변동성 군집이었습니다. ② 새 선은 아무것도 아닙니다(−0.2·+2.0).

③ 낡은 선만 남습니다 — 네 칸 전부 음수, 두 자료 × 두 덩어리 길이에서 재현됩니다.

이 앱이 세운 단 하나의 시장 사실

> **60봉 넘게 안 건드린 지지·저항 선은, 변동성 군집을 살린 가짜 시세와 견줘도 깨졌을 때

> 판독을 4.5~8.5%p 덜 뒤집습니다.**

참고한 영상 어디에도 없는 말이고, 영상들은 오히려 반대를 가르칩니다.

방법에 대해 배운 것이 더 큽니다

> 무작위 모형을 하나만 쓰면, 그 모형이 못 지운 것을 발견으로 착각합니다.

IID 뒤섞기는 「시장이 아니다」를 네 번 옳게 말했지만, 다섯 번째에서는 **너무 많이

지웠습니다.** 화면 문구도 더 보수적인 잣대의 수로 고쳤습니다(5개 언어) — 잰 것을 화면에

붙이는 원칙은 어느 잣대로 쟀는지까지 옮겨야 합니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 523.
v3.11.372026-08-13
귀무 훑기를 끝냈습니다

무작위 시세에 아직 안 걸어 본 주장이 하나 남아 있었습니다 — 관문이 헛울림을 줄인다.

관문도 산술입니다

| | 실제가 줄인 폭 | 무작위가 줄인 폭 |

|---|---|---|

| 주요 20종 | 28.7%p | 29.8%p |

| 겹치지 않는 40종 | 22.4%p | 29.0%p |

관문은 무작위 시세에서 적어도 똑같이 줄입니다. 단계별 잔차의 부호도 두 자료가 반대라

재현되지 않습니다.

그렇다고 쓸모가 없다는 뜻은 아닙니다 — 여러분은 실제로 되돌아가는 알림을 덜 받습니다.

다만 그것은 「시장을 읽어서」가 아니라 산술입니다.

> 헛울림을 줄이는 것과 시장을 아는 것은 다릅니다. 앞의 것만으로도 알림은 값을 합니다.

귀무 훑기 결산 — 이 앱의 모든 긍정적 주장

| 주장 | 실제 | 무작위 | 판정 |

|---|---|---|---|

| 신뢰도 사다리 폭 | +9.0봉 | +9.0봉 | 산술 |

| 20일선 어긋남 → 1봉 | 1.0 / 9.0봉 | 1.0 / 8.0봉 | 산술 |

| A+B 무효화 | 91.1% | 91.3% | 산술 |

| 알림 관문 | 28.7 / 22.4%p | 29.8 / 29.0%p | 산술 |

| 지지·저항 선이 붙든다 | 64.8 / 64.1% | 72.3 / 70.4% | 잔차 −4~−8%p |

| 판독과 20일선이 같은 쪽 | — | — | +1.0~+1.2봉 |

넷은 산술, 둘은 잔차입니다. 그리고 잔차 둘 다 「규칙으로 옮기기」에는 실패했습니다.

이 앱이 도달한 자리

| 물음 | 답 |

|---|---|

| 값이 어디로 갈까 | ❌ 아무 데서도 기준선을 못 넘습니다 |

| 얼마나 크게 움직일까 | ❌ 전부 지금 하루 폭의 5.1~5.3배 |

| 이 판독이 언제 바뀔까 | ✅ 잘 맞힙니다 — 다만 산술입니다 |

| 시장에 대해 아는 것 | 하나 — 오래된 지지·저항 선은 조금 붙듭니다 |

> **이 앱이 정직할 수 있는 이유는 잴 것이 많아서가 아니라, 잰 것이 거의 다 「아니다」였기

> 때문입니다.** 그 「아니다」를 화면에 그대로 옮긴 것이 이 앱의 전부입니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 522.
v3.11.362026-08-13
미리 적어 둔 예측을 걸었고, 기각됐습니다

앞 판에서 「오래된 선일수록 붙든다」를 쟀고, 그렇다면 **무효화 선으로는 낡은 선이 나쁘니

최근 선을 고르면 나아질 것**이라는 예측을 미리 적어 뒀습니다. 이번에 걸었습니다.

좋은 무효화 선은 깨졌을 때와 지켜졌을 때를 크게 가르는 선입니다. 네 규칙을 같은

자리에 걸었습니다.

| 규칙 | 깨짐% | 깨짐→뒤집힘 | 지켜짐→뒤집힘 | 가름폭(20종/40종) |

|---|---|---|---|---|

| A 두 번째(지금 앱) | 33.3% | 83.4% | 65.8% | +17.6 / +15.4 |

| B 가장 최근 | 41.6% | 81.1% | 65.0% | +16.1 / +14.1 |

| C 가장 가까운 | 50.7% | 79.6% | 63.5% | +16.1 / +13.8 |

| D 가장 낡은 | 42.4% | 81.2% | 64.7% | +16.5 / +14.2 |

기각입니다. 지금 규칙이 두 자료 모두에서 이깁니다 — 가장 적게 울리면서 가장 잘

가릅니다.

그리고 「가장 최근」과 「가장 낡은」이 사실상 같습니다

+16.1 대 +16.5, +14.1 대 +14.2. 나이로 고르면 어느 쪽으로 골라도 같습니다. 앞 판의

잔차는 실재하는데 선을 고르는 데는 안 쓰입니다.

> 재서 알아낸 것과 그것으로 규칙을 고칠 수 있는 것은 다릅니다.

> 잔차가 있다는 것과 그 잔차를 쥘 손잡이가 있다는 것은 별개입니다.

부수적으로 — 지금 규칙이 처음으로 앱 코드로 검증됐습니다

「두 번째로 가까운 선」은 원래 근사로 골랐던 것인데, 이번에 앱 코드로 세 대안과 다시

견줘 그대로 이겼습니다. 다음 사람이 같은 안을 다시 내지 않도록 코드 주석에 표를 남겼습니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 521.
v3.11.352026-08-13
아무도 안 하는 말 하나가 섰습니다: 오래된 선일수록 붙듭니다

앞 판이 「여러 번 지켜진 선」을 떨어뜨렸으니, 붙드는 힘이 어디서 오는지 물을

차례였습니다. 남은 후보 둘도 영상의 단골입니다 — 최근성라운드 넘버.

라운드 넘버는 기각, 나이는 강하게 나옵니다

| | 주요 20종 | 40종 |

|---|---|---|

| 라운드 0.3% 안 / 0.3~1% / 1% 밖 | −7.54 / −8.03 / −8.03 | −3.53 / −4.13 / −6.37 |

| 최근 20봉 안 | −5.24 | −1.82 |

| 20~59봉 | −5.49 | −0.73 |

| 60봉 이상 | −10.99 | −9.36 |

나이인가 거리인가 — 갈라 봤습니다

낡은 선은 대개 멀리 있으니 거리를 고정하고 다시 봤습니다.

| | 20종 | 40종 |

|---|---|---|

| 새 선 · 가까움(<4%) | −1.86 | −2.40 |

| 낡은 선 · 가까움(<4%) | −10.96 | −9.58 |

| 낡은 선 · 중간(4~10%) | −9.87 | −9.72 |

같은 거리에서 낡은 선이 다섯 배 붙듭니다. 낡은 선은 어느 거리에서나 −9.6~−11.0%p로

거의 일정합니다. 나이지 거리가 아닙니다.

지지·저항 통념 넷을 다 물었습니다

| 주장 | 결과 |

|---|---|

| 여러 번 닿은 자리일수록 크게 반응 | ❌ |

| 여러 번 지켜진 선일수록 강하다 | ❌ |

| 선이 깨지면 무너진다 | ❌ 혼자 깨진 선은 무작위보다 약함 |

| 라운드 넘버가 지지·저항이 된다 | ❌ 몰리지 않음 |

| *(아무도 안 하는 말)* 오래된 선일수록 붙든다 | ✅ |

넷을 물어 넷 다 아니었고, 아무도 안 하는 말 하나가 섰습니다.

왜 그런지는 안 잽니다

그럴듯한 이야기를 붙이고 싶어지지만 안 붙입니다 — 이 앱의 기전 예측은 0/8입니다.

잰 것은 「낡은 선에서 잔차가 크다」이고, 그 이상은 아직 모릅니다.

화면(학습 화면 지지·저항 절)에 잰 것만 적었습니다. 규칙은 아직 안 바꿉니다 — 다음

판에 「최근 선을 무효화 선으로 쓰면 더 나은가」를 재고 나서 정합니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 520.
v3.11.342026-08-13
「여러 번 지켜진 선일수록 강하다」도 서지 않습니다

앞 판에서 이 앱의 유일한 시장 신호를 찾았습니다 — 지지·저항 선은 무작위보다 붙듭니다.

그 하나를 밀어붙일 차례였고, 영상들의 핵심 가르침 중 하나가 「여러 번 지켜진 선일수록

강하다」입니다. 잔차가 접점 수를 따라 커지는지 보면 갈립니다.

기각 — 접점 1에서 이미 다 나옵니다

| 접점 | 주요 20종 | 40종 |

|---|---|---|

| 1 | −4.59%p (n=3,985) | −5.97%p (n=4,269) |

| 2 | −1.19%p (n=562) | −8.59%p (n=551) |

| 3+ | −1.65%p (n=86) | −4.76%p (n=63) |

단조롭지 않고 두 자료의 모양이 서로 다릅니다. **붙드는 힘은 「여러 번 지켜졌다」에서

오지 않습니다** — 꼭짓점에서 나온 선이라는 것만으로 이미 다 나옵니다.

잔차의 크기는 정직하게 적습니다

전체 잔차가 여기서는 −4.2·−6.2%p 인데 앞 판은 −7.5·−8.0%p 였습니다. 씨앗 하나 대 다섯

평균이고, 앞 판이 잰 우연폭이 4.6~5.0%p 이니 한 씨앗의 흔들림 안입니다.

> **잔차가 우연폭과 비슷한 크기면, 그 잔차의 「값」이 아니라 「부호와 재현」만 말해야

> 합니다.** 부호는 네 번 다 같았고, 크기는 −4에서 −8 사이입니다.

화면을 그에 맞게 고쳤습니다

학습 화면은 이미 「여러 번 닿은 자리일수록 크게 반응한다」를 되밀림에 대해 부정하고

있었습니다. 이번 측정은 판독 뒤집힘이라 다른 각도인데 같은 답입니다.

다만 같은 문단의 뒷문장이 부정확했습니다 — 「이 선의 쓸모는 넘어섰을 때 판독이 바뀐다는

데 있습니다」. 혼자 넘어선 것으로는 무작위보다도 덜 바뀝니다. 5개 언어를 고쳤습니다.

영상 성적표에 한 줄 더

「여러 번 닿은 지지선일수록 크게 반응한다」 ❌ · 「여러 번 지켜진 선일수록 강하다」 ❌ ·

「선이 깨지면 무너진다」 ❌. 세 번 물었고 세 번 다 아닙니다. 다만 **선 자체가 아무것도

아닌 건 아닙니다** — 붙드는 잔차는 있고, 그게 「반복」이나 「돌파」로 이어지지 않을 뿐입니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 519.
v3.11.332026-08-13
「셋 다 그대로」가 아니었습니다. 하나가 남습니다

앞 판에서 「저희 발견 셋이 전부 산술」이라고 했습니다. 결과가 크고 뚜렷하니 **저희 규칙을

저희에게 적용**해야 했고, 표를 다시 보니 전부 같지는 않았습니다.

씨앗 다섯 × 자료 둘로 잔차와 「우연히 생길 수 있는 폭」을 함께 쟀습니다.

| | 20종 잔차 | 40종 잔차 | 우연폭 |

|---|---|---|---|

| 사다리 폭 | −0.20봉 | −0.80봉 | 1.0 / 2.0 |

| 같은 쪽 수명 | +1.20봉 | +1.00봉 | 1.0 / 0.0 |

| 지지·저항선만 무너짐 | −7.53%p | −8.02%p | 4.6 / 5.0 |

| 20일선만 · 둘 다 · 아무것도 | −0.1 ~ −1.6 | −0.5 ~ −1.6 | 전부 안쪽 |

남는 것은 둘, 그리고 하나는 통념의 반대입니다

① 지지·저항 선은 실제로 붙듭니다. 그 선만 무너진 경우 무작위 시세보다 **7.5~8.0%p

덜** 뒤집힙니다. 두 자료에서 같은 부호이고 우연폭의 1.6배입니다.

「선이 깨지면 무너진다」가 아니라, 혼자 깨진 선은 무작위보다도 덜 결정적입니다.

지지·저항이 시장 잔차를 보인 것은 이번이 처음이고, 방향은 통념과 거꾸로입니다.

② 추세는 아주 조금 이어집니다. 판정과 20일선이 같은 쪽이면 무작위보다 1봉 오래

갑니다.

나머지는 전부 우연폭 안입니다 — 사다리도, A+B도 산술이라는 앞 판 결론은 그대로입니다.

> 「차이가 없다」를 말하려면 「얼마나 없는가」를 함께 재야 합니다.

> 우연폭을 안 재면 「같다」와 「조금 다르다」를 가를 수 없고, 그 「조금」이 이 앱에서

> 유일하게 남은 시장 신호였습니다.

화면에 붙였습니다

지지·저항 줄은 「무너지면 판독이 흔들립니다」라고만 하고 잰 것이 없었는데, 측정은 그

반대를 말합니다. 한 문장을 더했습니다 — 「이 선 하나만 무너진 경우는 열에 예닐곱만

판독이 바뀌었습니다. 아래의 두 번째 선까지 함께 넘어야 열에 아홉입니다.」

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 518.
v3.11.322026-08-13
저희의 「긍정적 발견」 셋이 전부 산술이었습니다

이 앱은 「방향은 못 맞히지만 판독이 언제 바뀌는지는 잘 가른다」로 정리돼 있었습니다.

그런데 한 번도 묻지 않은 것이 있었습니다 — 그게 시장 사실인가, 산술인가.

판정은 최근 150봉의 결정론적 함수입니다. 강한 판정이면 지표가 문턱에서 멀리 있으니

기계적으로 넘는 데 봉이 더 걸립니다. 그렇다면 시장이 아니라 계산의 성질일 수 있습니다.

수익률을 뒤섞은 가짜 시세에서 재 봤습니다

분포는 그대로 두고 자기상관과 변동성 군집만 없앴습니다.

| | 실제 시세 | 뒤섞은 가짜 |

|---|---|---|

| 신뢰도 사다리 (높음/보통/낮음) | 11 / 7 / 2봉 | 11 / 6 / 2봉 |

| 사다리 폭 | +9.0봉 | +9.0봉 |

| 20일선 어긋남 / 같은 쪽 | 1.0 / 9.0봉 | 1.0 / 8.0봉 |

| A+B 무효화 | 91.1% | 91.3% |

A+B가 무작위 걸음에서 91.3%입니다. 셋 다 그대로 나옵니다.

그래서 성적표를 고쳤습니다 — 아홉 중 하나도 안 섰습니다

「영상이 판 주장 아홉 중 하나는 섰다」고 오래 적어 왔습니다. 그 문장을 거둡니다.

영상의 「교차 검증」이 일하는 것처럼 보인 이유는 시장이 그 선을 존중해서가 아니라,

두 조건이 판정을 만드는 입력이기 때문입니다.

> 「판독이 언제 바뀌는가」를 맞히는 것과 「시장을 안다」는 것은 다릅니다.

> 앞은 우리가 만든 함수의 성질이고, 뒤는 세상의 성질입니다.

고칠 화면 문구는 하나도 없었습니다

무효화 줄은 이미 「판독이 바뀐다는 뜻이지 값이 그쪽으로 간다는 뜻은 아닙니다」라고

적혀 있고, 사다리도 「얼마나 자주 다시 보아야 하는가」로 적혀 있습니다.

틀린 것은 화면이 아니라 저희 문서의 해석이었습니다. 조심은 화면에서만 하고 문서에서는

풀어 놓기 쉽습니다 — 그런데 다음 판을 정하는 것은 문서입니다.

쓸모는 그대로입니다

산술이라는 것이 쓸모없다는 뜻은 아닙니다. 이 앱이 그 수로 하는 일 셋은 전부 「판독」에

대한 물음이라, 판독이 결정론적 함수라는 사실이 오히려 답을 믿을 근거입니다.

다만 그 이상을 말하면 안 됩니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 517.
v3.11.312026-08-13
알림 설명만 근거가 없었습니다

방향은 지금까지 모든 판정에서 쟀습니다. 그런데 알림은 그중 1.8%만 남긴 자리입니다.

걸러진 부분집합은 다르게 행동할 수 있고, 우위가 숨어 있다면 바로 거기입니다.

재 봤고, 거기도 없습니다

| | 발화 | 원 적중률 | 기준선 대비 |

|---|---|---|---|

| 주요 20종 | 889건 | 52.1% | −2.44%p ± 1.63 |

| 겹치지 않는 40종 | 902건 | 49.4% | −5.32%p ± 1.59 (t=−3.35) |

가장 심하게 걸러진 자리에서도 우위가 없고, 전체 판정(−2.6·−2.9%p)보다 **나아지지도

않았습니다** — 관문이 헛울림을 31.1%에서 25.1%로 줄이는데도 그렇습니다.

> 관문은 「판독이 오래 가는 자리」를 고르지 「값이 갈 자리」를 고르지 않습니다.

화면에서 유일하게 근거가 없던 자리였습니다

알림 설명은 「강한 강세/약세 신호 발생 시 알림」이었습니다. 이 앱은 화면의 모든 수치에

근거를 붙여 왔는데 알림 설명만 빈 라벨이었습니다 — 하필 「신호」라는 낱말이 「따르라」로

읽히는 자리입니다.

> 잰 것을 화면에 붙인다는 원칙은, 아직 아무것도 안 적힌 자리에서 가장 잘 잊힙니다.

> 고칠 수치가 없으니 훑을 때도 안 걸립니다.

목록의 한 줄은 짧게 고치고(「판정이 강한 매수·매도로 바뀔 때 알립니다」), **켤지 정하는

화면**에 잰 것을 적었습니다 — 발화 자리의 20봉 뒤 방향이 기준선을 못 넘는다는 것, 관문은

헛울림만 줄인다는 것(5개 언어).

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 516.
v3.11.302026-08-13
방향이 아니라 「폭」을 물어봤습니다. 그것도 못 가릅니다

이 앱은 방향을 못 맞힙니다 — 여섯 기간 열네 칸 전부 기준선 아래입니다. 그런데 **방향이

아닌 물음**은 한 번도 하지 않았습니다. 「앞으로 얼마나 크게 흔들릴 자리인가」는 예측이

아니라 위험의 크기라, 이 앱의 태도와 어긋나지 않습니다.

변동성은 이어지므로 지금 하루 폭(ATR)으로 나눈 배수로 재고 코인 안에서 짝지었습니다.

기각 — 전부 5.1~5.3배로 수렴합니다

| | 주요 20종 | 40종 |

|---|---|---|

| 전체 | 5.31배 | 5.15배 |

| 신뢰도 높음 / 보통 / 낮음 | 5.26 / 5.39 / 5.23 | 5.28 / 5.22 / 5.12 |

| 짝지은 「높음−낮음」 | +0.04배 (10/20 종목) | +0.16배 (20/40 종목) |

| 짝지은 「강한−약한 판정」 | +0.20배 (13/20) | +0.17배 (23/40) |

신뢰도의 종목 분할이 정확히 반반입니다 — 동전 던지기입니다.

> **이 앱은 「언제 이 말을 거둬야 하는가」는 91%로 말할 수 있고, 「앞으로 어떻게 될까」는

> 방향도 폭도 말할 수 없습니다.** 그 경계가 이제 양쪽에서 그어졌습니다.

그러다 스퀴즈 설명이 더 정확해졌습니다

앞 판에서 「스퀴즈 뒤 폭이 오히려 작다」를 쟀는데, 그건 절대 폭이었습니다. 지금 하루

폭으로 나누니 두 자료의 부호가 갈립니다(+0.09 / −0.35배).

두 측정은 모순이 아니라 다른 물음입니다 — 절대 폭은 작고(지금이 조용하니 당연), 평소 폭

대비로는 변동성이 지금 수준을 그대로 이어 갈 뿐입니다.

> 스퀴즈는 앞일이 아니라 지금을 말합니다. 「곧 터진다」도 「계속 조용하다」도 아니고,

> 그저 「지금 조용하다」입니다.

화면 문구에 그 한 줄을 더했습니다(5개 언어).

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 515.
v3.11.292026-08-13
가장 강한 규칙이 실물 검증을 그대로 통과했습니다

이 앱이 잰 것 중 가장 강한 규칙이자, 참고한 영상 35편에서 **처음으로 검증된 구조적

아이디어**가 A+B 무효화입니다. 그 수도 근사로 잰 것이었으니 앱 코드로 다시 걸었습니다.

| 5봉 안에 일어난 일 | 근사 | 앱 코드(20종 / 40종) |

|---|---|---|

| 아무것도 | 60.9 / 56.5 | 61.2 / 61.7 |

| 무효화 선만 | 65.1 / 63.6 | 64.8 / 64.1 |

| 20일선만 | 80.6 / 81.6 | 81.7 / 81.3 |

| 둘 다 | 91.4 / 89.4 | 91.1 / 89.1 |

0.3%p 차이입니다. 재현되는 수는 건드리지 않으니 문구도 그대로 둡니다.

이것이 지난 여덟 판의 패턴을 설명합니다

근사가 실물 검증을 그대로 통과한 것은 처음입니다. 무엇이 달랐는지 보니 선이 하나로

그어집니다.

| 무엇을 물었나 | 근사 | 왜 |

|---|---|---|

| 판독 수명 사다리 | ❌ | 라벨에 걸려 있음 |

| 게이지 칸 | ❌ | 점수 크기에 걸려 있음 |

| 반대표 값어치 | ❌ | 지표 구성이 다름 |

| 방향이 기준선을 넘는가 | ✅ | 부호만 물음 |

| 20일선 어긋남 | ✅ | 어느 쪽인가만 물음 |

| A+B 무효화 | ✅ | 가격이 선을 지났는가만 물음 |

> 근사는 「어느 쪽인가」를 맞히고 「얼마나」를 틀립니다.

그래서 근사를 버릴 일이 아닙니다 — 새 가설을 빠르게 훑을 때는 근사로 방향을 얻고,

화면에 인쇄할 수는 반드시 앱 코드로 얻습니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 514.
v3.11.282026-08-13
44.3%라는 수가 저를 멈춰 세웠습니다

화면 문구 중 실물로 안 잰 것이 하나 남아 있었습니다 — 거래소 간 어긋남입니다.

두 거래소 자료가 필요해 미뤄 뒀던 자리라, 업비트 원화 일봉을 받아 바이낸스 달러 일봉과

날짜로 맞췄습니다.

첫 결과는 화면과 정반대였고, 틀렸습니다

```

같은 편 중앙값 5.0봉

어긋남 중앙값 12.0봉 ← 화면과 반대

어긋난 비중 44.3%

```

같은 코인의 두 거래소가 44% 어긋난다는 건 있을 수 없습니다. 결과가 크고 뚜렷할수록

의심하라는 규칙대로 멈춰 서서 자료를 열었더니 — **업비트 API는 최신순으로 주는데 페이지를

그대로 이어 붙여 시계열이 뒤섞여 있었습니다.** 14종 전부가 그랬습니다.

> 한 자료에서 통하던 페이지 이음이 다른 자료에서는 시계열을 부숩니다.

> 그리고 그렇게 부서진 자료는 오류가 아니라 「흥미로운 결과」로 나옵니다.

바로잡으니 나머지와 같은 모양이 됩니다

| | 화면(옛) | 다시 잰 값 |

|---|---|---|

| 어긋남 | 평균 5.6봉 | 중앙값 1봉 (열에 일곱이 3봉 이하) |

| 같은 편 | 평균 12.7봉 | 중앙값 8봉 |

| 어긋나는 날 | — | 3.8% (25일에 하루꼴) |

「어긋나면 1봉」은 20일선 어긋남과 똑같은 수입니다 — 이 앱에서 「두 자료가 서로 다른

말을 하는 자리」는 어디서나 그 봉에 끝납니다.

이것으로 화면의 실측 수치는 전부 앱 코드로 걸렸습니다

판독 수명 사다리 · 게이지 · 걸터앉음 · 강한추세 · 동의 수 · 반대표 구조 · 원자료 층 ·

곧기 · 얇은 자료 · 스퀴즈 · OBV 다이버전스 · 방향 적중률 · 거래소 간 어긋남.

번역 드리프트도 전수 조사했습니다

앞 판에서 문구 하나를 고쳤으니 같은 잣대를 모든 문자열에 댔습니다 — 남은 드리프트는

0건입니다. 그 훑기를 검사로 남겼습니다.

  • 내부 검증 1826건 · 화면 기준선 250장. versionCode 513.
v3.11.272026-08-13
일본어·중국어가 세 판 뒤처져 있었습니다

이 앱의 정직함이 딛고 선 방향 수치를 앱 코드로 다시 걸었습니다. 그러다 더 큰 것을

발견했습니다.

방향 수치를 실물로

| 화면(옛) | 주요 20종 | 40종 |

|---|---|---|

| 적중률 52% · 기준선 49% | 51.5% · 47.3% | 51.4% · 39.8% |

| 강세 −1.6 · 약세 −0.1 | −2.57 · −2.67 | −2.66 · −3.15 |

| 신뢰도가 가장 낮음(−5.5·−7.7) | 높음 −5.23 | 높음 −4.26 |

「약세 −0.1」이 실제로는 −2.67입니다 — 「강세만 나쁘다」는 비대칭이 재현되지 않습니다.

더 날카로운 것이 나왔습니다

| 신뢰도 | 주요 20종 | 40종 |

|---|---|---|

| 높음 | −5.23%p | −4.26%p |

| 보통 | −1.85 | −3.44 |

| 낮음 | −0.24 | +0.32 |

두 자료 모두에서 신뢰도가 높을수록 방향이 나쁩니다. 기준선을 잃지 않는 유일한 칸이

「낮음」 — 이 앱이 가장 믿지 말라는 그 칸입니다.

그러다 번역이 뒤처진 것을 발견했습니다

v3.11.17 · v3.11.20 · v3.11.23 의 수정이 한국어와 영어에만 반영돼 있었습니다.

일본어·중국어 사용자는 이미 틀린 것으로 밝혀진 수를 계속 보고 있었습니다.

문자열 가 다 있는지 보는 검사는 오래 있었습니다. 같은 값을 말하는지는 아무도

안 봤습니다.

> 번역은 키가 아니라 내용이 뒤처집니다. 키는 빠지면 티가 나고, 값은 안 납니다.

소수점 있는 수는 언어와 무관하게 같은 글자로 적힙니다. 그것을 잣대로 삼는 검사를 걸었고,

걸자마자 두 문단이 더 빠져 있는 것을 잡았습니다. 5개 언어를 모두 맞췄습니다.

  • 내부 검증 1823건 · 화면 기준선 250장. versionCode 512.
v3.11.262026-08-13
영상 주장을 반박하던 문구를 실물로 걸었습니다

화면에는 영상의 단골 주장을 정면으로 반박하는 문구가 둘 있습니다. 그 반박도 근사로 잰

것이었으니 앱 코드로 다시 걸었습니다.

① 스퀴즈 — 저희가 너무 부드럽게 반박하고 있었습니다

화면: 「이후 20봉의 움직인 폭은 스퀴즈가 아닐 때와 같았습니다

| | 주요 20종 | 40종 |

|---|---|---|

| 코인 안에서 짝지은 차이 | −1.30%p | −4.94%p |

| 폭이 더 컸던 종목 | 6/20 | 6/40 |

「같았다」가 아니라 「오히려 작았다」입니다.

> 반박도 정확해야 합니다. 실제보다 부드럽게 반박하면 그 주장은 「아직 여지가 있다」로

> 살아남습니다.

② OBV 다이버전스 — 두 자료가 갈립니다

화면: 「20봉 뒤 방향은 기준선을 넘지 못했습니다

| | 주요 20종 | 40종 |

|---|---|---|

| 기준선 대비 | −1.31%p | +1.84%p |

부호가 갈립니다. 그러면 「못 넘는다」도 단정할 수 없습니다. 「어느 쪽으로도 서지

않습니다」로 고쳤습니다.

이 앱의 태도(「이건 지금의 사실이지 예측이 아니다」)는 오히려 강해집니다 — 근거가

「못 넘더라」에서 「자료를 바꾸면 부호가 바뀌더라」로 옮겨 갔습니다.

③ 얇은 자료의 수명도 낡아 있었습니다

「12봉 안팎」은 옛 정의의 수였습니다. 지금 정의로는 8~9봉이고, 다 자란 자료의

7~8봉보다 여전히 깁니다 — 문장이 하려던 말은 그대로 섭니다.

  • 내부 검증 1822건 · 화면 기준선 250장. versionCode 511.
v3.11.252026-08-13
신뢰도는 크기로도 모양으로도 대신되지 않았습니다

앞 판에서 「지나온 크기」가 신뢰도를 대신하지 못한다고 나왔습니다. 화면에는 그것과 짝을

이루는 주장이 하나 더 있었습니다.

> 「몇이 동의하는가」는 사실상 「값이 얼마나 곧게 왔는가」와 같은 이야기입니다.

> 신뢰도가 같은 칸끼리 견주면 1.9봉으로 줄고 「높음」 칸에서는 사라집니다.

크기는 「얼마나」, 곧기는 「어떻게」입니다. 다른 물음이라 따로 걸었습니다.

기각 — 「높음」 칸에서도 안 사라집니다

| | 옛 화면 | 주요 20종 | 40종 |

|---|---|---|---|

| 곧기만 (곧은/가운데/굽은) | — | 12 / 7 / 5봉 | 10 / 7 / 4봉 |

| 곧은−굽은 (홀로) | 4.2봉 | +7봉 | +6봉 |

| 신뢰도 고정 후 | 1.9봉 | +3 / +5 / +3 | +2 / +3 / +1 |

| 「높음」 칸에서 | 사라진다 | +3.0 — 남음 | +2.0 — 남음 |

| 거꾸로 곧기 고정 후 신뢰도 | — | +8봉 | +8~10봉 |

두 짝을 나란히 놓으면

| 신뢰도를 대신할 수 있나 | 홀로 폭 | 신뢰도 고정 후 |

|---|---|---|

| 지나온 크기 | 5봉 | +1~3봉 (낮음에선 부호가 뒤집힘) |

| 지나온 모양(곧기) | 6~7봉 | +1~5봉 (높음에서도 남음) |

모양이 크기보다 더 독립적입니다. 그래도 둘 다 신뢰도를 대신하지는 못합니다.

> 신뢰도는 지나온 길의 크기도 모양도 아닙니다. 둘 다 겹치지만 둘 다 대신하지

> 못합니다. 화면의 머리 라벨은 셋을 합친 무엇이고, 그것이 판독 수명을 가장 잘 가르는

> 단일 값입니다.

함께 건 것 — 얇은 자료 주장은 재현됐습니다

| | 화면 | 주요 20종 |

|---|---|---|

| 반대표가 나오는 비율(짧은 창 대 긴 창) | 열에 다섯 대 여섯 | 46.7% 대 55.4% |

| 이동평균·스토캐스틱 일치 | 59% → 94% | 61.8% → 94.6% |

재현되는 수는 건드리지 않습니다.

  • 내부 검증 1822건 · 화면 기준선 250장. versionCode 510.
v3.11.242026-08-13
가장 드물게 반대하는 지표가 가장 비쌉니다

「여덟 지표가 서로 다른 여덟은 아니다」는 이 앱이 오래 설명해 온 것입니다. 그 근거 수치도

근사로 잰 값이었고 수명 정의까지 바뀌었으니, 앱 코드로 전부 다시 걸었습니다.

반대표의 구조

| 지표 | 반대표 비율 | 반대일 때 수명 변화 |

|---|---|---|

| 스토캐스틱 | 25.3% / 30.5% | −2 / −1봉 (가장 옅음) |

| OBV | 18.5 / 18.4 | −3 / −4 |

| MFI | 12.1 / 15.9 | −4 / −3 |

| MACD | 11.7 / 12.0 | −5 / −6 |

| 스퀴즈 | 3.0 / 4.3 | −5 / −4 |

| RSI | 2.1 / 3.5 | −5 / −5 |

| ADX | 0.8 / 2.8 | −6 / −5 |

| 이동평균 | 0.3 / 0.7 | −8 / −7 |

조용한 넷의 명단(이동평균·RSI·ADX·스퀴즈)은 정확히 맞았습니다. 비율만 「1~3%」가 아니라

0.3~4.3% 입니다.

화면에 없던 것이 하나 있었습니다

이동평균이 반대편에 서면 판독은 그 봉에 끝납니다(중앙값 0봉, 7~8봉 감소). 천 번에

서너 번뿐인 일인데 일어나면 가장 큽니다. 화면은 가장 옅은 쪽(스토캐스틱)만 말하고 반대쪽

끝을 말하지 않았습니다.

> 「반대표가 다 같지 않다」를 말하려면 양쪽 끝을 다 말해야 합니다. 옅은 쪽만 말하면

> 「반대표는 대개 가볍다」로 읽힙니다.

「같은 원자료를 읽는 짝」은 반쯤만 맞았습니다

화면은 「6~8%p 더 자주 같은 편」이라 했는데 실측은 +3.6~6.2%p 이고, **가장 붙는

짝(이동평균·스퀴즈, 98~99%)은 원자료 층이 서로 다릅니다.** 겹침의 상당 부분은 원자료가

아니라 계산이 닮은 데서 옵니다. 문구를 그렇게 고쳤습니다(5개 언어).

  • 내부 검증 1822건 · 화면 기준선 250장. versionCode 509.
v3.11.232026-08-13
한 화면이 두 자를 섞어 쓰고 있었습니다

앞 판에서 「화면에 인쇄하는 수는 앱 코드로만 얻을 수 있다」고 해 놓고, 사다리와 게이지만

그렇게 쟀습니다. 나머지 문구를 같은 자로 마저 걸었습니다.

| 문구 | 화면(옛) | 앱 코드로 다시 |

|---|---|---|

| 동의 한 끗 | 절반 2봉 · 열에 여섯 | 1봉 · 열에 일곱 |

| 동의 다섯 이상 | 절반이 12봉 넘김 | 10~11봉 (못 넘음) |

| 걸터앉음 | 5봉 (그 밖 9봉) | 3봉 (그 밖 8봉) |

| 강한추세 일치 | 2봉가량 더 | 4봉 더 |

| 20일선 반대편 | 2봉 (같은 편 10봉) | 1봉 (같은 편 8~9봉) |

전부 어긋났고, 전부 같은 방향이었습니다 — 화면의 수가 실제보다 길었습니다.

원인은 하나였습니다

수명의 정의가 둘인데, 사다리 줄은 한쪽을 주의사항들은 다른 쪽을 쓰고 있었습니다.

그래서 같은 화면에 이런 두 줄이 나란히 나갔습니다.

```

언제까지 신뢰도 낮음 · 절반은 2봉 안에 뒤집혔습니다

주의 이런 자리는 절반이 5봉 안에 뒤집혔습니다

```

각 수는 제 자로는 맞습니다. 나란히 놓인 순간 거짓말이 됩니다.

> 한 화면에서 두 정의를 섞으면, 각 수가 맞아도 함께 읽히는 순간 틀립니다.

5개 언어 전부 한 정의로 맞췄습니다.

「낮음도 한 가지가 아니다」는 정의가 만든 그림자였습니다

화면은 「지표가 한 끗 차이면 4봉, 변동성 응축이 이유면 10봉」이라며 「낮음」을 둘로 갈라

설명해 왔습니다. 앱 코드로 재니 둘 다 1봉입니다. 구분이 실체가 아니었습니다.

그 문장을 뺐습니다 — 왜 낮은지는 여전히 화면에 적히지만, 수명으로 이유를 가릴 수 있다고는

더 말하지 않습니다.

  • 내부 검증 1822건 · 화면 기준선 250장. versionCode 508.
v3.11.222026-08-13
화면의 수를 다시 재려다, 재던 자가 틀렸음을 알았습니다

화면 설명에서 봉 수치를 주장하는 문구 15개를 뽑아 전부 다시 걸었습니다. 그런데 **재던

도구가 먼저 무너졌습니다.**

근사가 실제와 크게 어긋났습니다

지금까지의 측정은 지표 여섯 표를 파이썬으로 근사한 것이었습니다. 앱은 여덟 개를 쓰고

가중치까지 넣습니다. 게이지 문구를 검증하니:

| 경계로부터 | 화면 | 근사 | 앱 코드 |

|---|---|---|---|

| 10 이내 | 8~9봉 | 7봉 | 8~9봉 |

| 11~20 | 12~13봉 | 3봉 | 13~14봉 |

| 그 밖 | 14~15봉 | 12봉 | 15봉 |

가운데 칸이 3봉 대 13봉입니다. 화면 수치가 옳았고 제 자가 틀렸습니다. 고치기 전에

잡았습니다.

앱 코드로 다시 재니 두 번째 문제가 나왔습니다

수명의 정의가 둘이었습니다.

| 정의 | 높음 | 보통 | 낮음 | 20일선 어긋남 |

|---|---|---|---|---|

| A 판정이 반대로 뒤집힐 때까지 | 17~18 | 13 | 5~7 | 3~4 |

| B 이 판정이 아니게 될 때까지(중립 포함) | 11 | 7 | 2 | 1 |

화면의 수는 B인데 화면의 말은 A였습니다 — 「판정이 반대로 뒤집히기까지」라고 적고

B의 수를 인쇄했습니다. 다시 볼 주기로는 B가 맞습니다. 「강한 매수」를 보고 왔다가

「중립」을 만난 분에게 그 판독은 이미 바뀐 것입니다. 수를 두고 말을 고쳤습니다.

여섯 기간을 앱 코드·앱 창(150봉)으로

| 신뢰도 | 15분 | 30분 | 1시간 | 4시간 | 일20 | 일40 | 주 |

|---|---|---|---|---|---|---|---|

| 높음 | 11 | 12 | 11 | 11 | 11 | 11 | 10 |

| 보통 | 6 | 6 | 7 | 6 | 7 | 7 | 5 |

| 낮음 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |

| 20일선 어긋남 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |

화면을 11 · 6 · 2로 고쳤습니다. 그리고 「20일선 어긋남 1봉」은 **여섯 기간 전부에서

정확히 맞았습니다**(3봉 이하가 72.7~78.0%).

> 근사로 방향을 얻고 실물로 크기를 얻습니다. 근사가 쓸모없던 것은 아닙니다 — 여덟

> 판에 걸쳐 규칙과 순서를 옳게 짚었습니다. 다만 화면에 인쇄하는 수는 앱의 코드로만

> 얻을 수 있습니다.

이번에 고친 것은 결국 제가 앞서 세 판에 걸쳐 넣은 수입니다(12·8·3 → 13·9·4 →

11·8·3 → 11·6·2). 세 번 모두 근사로 재고 붙였고, 네 번째에야 실물로 쟀습니다.

  • 내부 검증 1822건 · 화면 기준선 250장. versionCode 507.
v3.11.212026-08-13
앞 판에 제가 내보낸 문장이 과장이었습니다

앞 판에서 「신뢰도가 높은 자리는 이미 크게 움직인 뒤」임을 쟀습니다. 그리고 그 옆에 한

문장을 더 써서 화면에 내보냈습니다.

> 신뢰도는 앞으로 얼마나 갈지가 아니라 이미 얼마나 왔는지를 재는 값에 가깝습니다.

잰 것보다 한 발 더 나간 말입니다. 「상관이 있다」와 「그것이다」는 다릅니다. 그러면

확인할 수 있는 귀결이 하나 나옵니다 — 「이미 온 크기」 하나로 신뢰도를 대신할 수 있어야

합니다. 재 봤고, 아니었습니다.

홀로 재면 신뢰도가 두 배 셉니다

| | 지나온 크기 | 신뢰도 |

|---|---|---|

| 일봉 · 20종 | 13 / 10 / 8봉 | 13 / 9 / 4봉 |

| 일봉 · 40종 | 12 / 10 / 8 | 13 / 10 / 4 |

| 4시간봉 | 12 / 9 / 8 | 12 / 8 / 4 |

| 1시간봉 | 11 / 9 / 7 | 12 / 8 / 4 |

그리고 흡수 행렬이 결정적입니다

| 고정한 것 | 남는 효과 |

|---|---|

| 신뢰도 고정 → 크기 | +1~+3봉 |

| 그중 「낮음」칸 | −1~−3봉 (부호가 뒤집힘) |

| 크기 고정 → 신뢰도 | +5~+11봉 |

신뢰도는 「이미 온 크기」로 바꿔 놓을 수 없습니다. 오히려 크기 쪽이 대부분 흡수됩니다.

뜻밖의 것도 하나 나왔습니다 — 신뢰도가 낮은 칸에서는 크게 움직인 뒤일수록 판독이 더

빨리 뒤집혔습니다(네 자료 전부). 지표 몇 개만 겨우 같은 편인데 값이 이미 크게 왔다면,

밀고 가는 움직임이 아니라 멈춰 서는 중인 움직임에 가깝다는 뜻입니다.

그래서 한 판 만에 문구를 되돌렸습니다

> 잰 것 옆에 「즉, 이것이다」를 붙이는 순간이 가장 위험합니다. 측정은 끝났는데 문장은

> 아직 안 끝난 느낌이 들 때, 그 마지막 한 줄이 재지 않은 것입니다.

곁가지로 하나 더. 그 과장을 화면에 붙들어 두던 것이 검사였습니다 — 문구가 사라지지

않게 지키려고 걸었는데, 문구가 틀린 것이라 틀린 말을 고정하는 장치가 돼 있었습니다.

가드는 문장을 지키지, 그 문장이 맞는지는 지키지 않습니다.

  • 내부 검증 1822건 · 화면 기준선 250장. versionCode 506.
v3.11.202026-08-13
이 앱이 딛고 선 문장을 여섯 기간에 걸었습니다

이 앱의 정직함은 한 문장 위에 서 있습니다 — 「방향은 기준선을 못 넘는다」. 「맞을

확률이 아닙니다」도, 판독 설명 전체도 그 위에 얹혀 있습니다. 그런데 그 문장도 일봉과

4시간봉 한 판으로만 뒷받침돼 있었습니다.

여섯 기간을 새로 받아 다시 걸었습니다.

92만 건에서 단 한 번도 넘지 못했습니다

| 기간 | 5봉 뒤 | 20봉 뒤 | 기준선 넘은 종목 |

|---|---|---|---|

| 15분 | −3.87%p | −5.14%p | 0/20 |

| 30분 | −2.72 | −3.48 | 0/20 |

| 1시간 | −2.84 | −3.99 | 0/20 |

| 4시간 | −2.51 | −4.16 | 0/20 |

| 일 · 주요 20종 | −2.06 | −1.99 | 4/20 |

| 일 · 40종 | −1.74 | −2.32 | 9/40 |

| 주 | −2.56 | −5.93 | 0/9 |

열네 칸이 전부 음수이고, 인트라데이 네 기간에서는 종목 하나도 넘지 못했습니다.

그리고 가장 짧은 15분봉이 가장 나쁩니다 — 「빠른 차트가 빠른 신호를 준다」는 지지되지

않는 정도가 아니라 가장 나쁜 자리입니다.

그리고 「왜」를 처음으로 쟀습니다

이 앱은 오래 그 이유를 「강한 판정은 값이 이미 간 뒤에 나온다」고 적어만 뒀습니다.

판정 자리에서 지나온 20봉과 앞으로의 20봉을 나란히 재 봤습니다.

| | 지난 20봉 | 앞 20봉 |

|---|---|---|

| 15분봉 · 높음 | +1.70% | −0.06% |

| 1시간봉 · 높음 | +4.01% | −0.04% |

| 4시간봉 · 높음 | +9.00% | +0.11% |

| 일봉 · 높음 | +28.94% | +2.28% |

| 일봉 · 낮음 | +1.81% | +0.76% |

다섯 기간 전부에서 사다리가 「지나온 움직임」에 대해 단조롭습니다 — 높음이 낮음의

16~24배입니다. 앞으로의 움직임에는 그런 사다리가 없습니다.

> 신뢰도는 「앞으로 얼마나 갈까」가 아니라 「이미 얼마나 왔나」를 재는 값입니다.

> 그래서 판독 수명은 잘 가르면서 방향은 못 가릅니다.

일봉의 「앞 20봉 +2.28%」를 이득으로 읽으면 안 됩니다. 같은 기간 아무 봉에서나 오를

확률을 빼면 −1.99%p 입니다 — 그 +2%는 시장의 표류지 판정의 몫이 아닙니다.

설명 문구를 이 결과로 고쳤습니다(한국어·영어).

  • 내부 검증 1822건 · 화면 기준선 250장. versionCode 505.
v3.11.192026-08-13
여섯 기간을 다 재 봤습니다. 규칙은 섰고 숫자는 틀렸습니다

이 앱은 15분·30분·1시간·4시간·일·주 여섯 기간을 줍니다. 그런데 지금까지 잰 것은 거의

전부 일봉이었습니다. 특히 앞 판에서 붙인 「판정과 20일선이 어긋남 · 절반은 1봉」은 **이

앱이 잰 것 중 가장 큰 효과이면서 지금 화면에 나가는 줄**인데 일봉에서만 쟀습니다.

여섯 기간을 모두 받아 다시 걸었습니다.

규칙은 여섯 기간 전부에서 섭니다

| 봉 길이 | 같은 쪽 | 어긋남 | 3봉 이하 |

|---|---|---|---|

| 15분 | 9봉 | 1봉 | 75.1% |

| 30분 | 9봉 | 1봉 | 73.4% |

| 1시간 | 9봉 | 1봉 | 77.0% |

| 4시간 | 9봉 | 1봉 | 77.8% |

| 일 | 10봉 | 1봉 | 75.9% |

| 주 | 10봉 | 1봉 | 83.3% |

봉 길이가 672배 차이 나는데 어긋난 쪽은 어디서나 1봉이고, 종목별로도 20/20입니다.

그런데 같은 표가 화면 숫자를 틀렸다고 말했습니다

화면은 일봉에서 잰 13/9/4를 여섯 기간에 다 인쇄하고 있었습니다.

| 신뢰도 | 15분 | 30분 | 1시간 | 4시간 | 일 | 주 | 옛 화면 |

|---|---|---|---|---|---|---|---|

| 높음 | 11 | 12 | 12 | 12 | 13 | 11 | 13 |

| 보통 | 8 | 8 | 8 | 8 | 9 | 10 | 9 |

| 낮음 | 4 | 3 | 4 | 4 | 4 | 5 | 4 |

일봉이 가장 깁니다. 15분봉 사용자에게 「절반은 13봉」이라 말해 왔지만 실제로는

11봉입니다 — 하필 덜 자주 보라고 말하는 쪽으로 틀렸습니다.

폭이 두 봉뿐이라 기간별 갈래를 두지 않고, 여섯 중 가장 작은 11/8/3을 씁니다.

> 한 수로 여섯 기간을 말해야 한다면, 틀릴 때 덜 해로운 쪽으로 틀려야 합니다.

덤으로 확인된 것

이 앱은 오래 「이 눈금은 시간이 아니라 봉으로 읽으십시오」라고 적어 왔습니다. 근거는

4시간봉 한 판이었는데, 이제 여섯 기간 전부에서 중앙값이 두 봉 안에 모입니다 — 15분과

주봉은 실제 시간으로 672배 차이인데도 그렇습니다.

  • 내부 검증 1821건 · 화면 기준선 250장. versionCode 504.
v3.11.182026-08-13
새 축을 알림에도 재 보고, 안 넣기로 했습니다

앞 판에서 「시장과 같은 편인가」가 판독 수명의 새 축으로 섰습니다(같은 편 11봉 · 역행

6봉, 60종 전부 같은 방향). 화면에는 안 붙였고, 알림에서 다시 보겠다고 적어 뒀습니다.

알림은 찾아가는 화면과 달리 밀고 들어오므로 같은 크기의 효과도 값이 다르기 때문입니다.

재 봤고, 안 넣습니다.

앱의 발화 사슬을 처음부터 다시 구현해서 쟀습니다

| 관문 | 주요 19종 | 겹치지 않는 40종 |

|---|---|---|

| 관문 없음 | 2,067발 · 36.4% | 2,251발 · 34.3% |

| 국면 추세만 | 325발 · 35.1% | 632발 · 36.7% |

| +신뢰도+스퀴즈 | 206발 · 31.1% | 378발 · 34.4% |

| +한 봉 확인(지금 앱) | 203발 · 25.1% | 360발 · 21.4% |

| +BTC 동조 | 156발 · 23.1% | 268발 · 20.9% |

발화를 4분의 1 잘라 내고 헛울림은 −2.0%p · −0.5%p 뿐입니다. 국면 관문(−13.4%p)이나

한 봉 확인(−5.5%p)과 견줄 자리가 아닙니다.

왜 화면에서 큰 축이 여기서는 놀고 있나

알림이 울리는 그 순간에는 이미 79.6% · 77.2%가 BTC와 같은 편입니다. 가를 것이 거의

남아 있지 않습니다. 이 앱이 점수 문턱에서 이미 만난 그 포화와 같은 모양입니다.

> 관문은 「그 순간 아직 갈리는 것」으로만 일합니다. 화면에서 큰 축이 알림에서도 큰

> 축인 것은 아닙니다.

이것으로 이 축은 닫힙니다 — 화면에서는 자리 값을 못 하고, 알림에서는 가를 것이 없습니다.

「나중에 다시 볼 것」으로 남기지 않습니다.

맞은 쪽만 적지 않았습니다

이번 측정은 앱 코드를 다시 읽어 사슬을 처음부터 다시 구현한 것입니다. 주요 20종에서

25.1%가 나왔는데 앞 판의 같은 표본 값이 24.8% — 서로 다른 두 구현이 0.3%p 안에서

만났습니다.

그런데 40종에서는 21.4% 대 32.0%로 10%p 넘게 어긋납니다. 앞 판은 관문을 둘만 걸었고

이번엔 넷을 걸었으니 센 것이 다릅니다.

> 맞은 쪽만 적고 어긋난 쪽을 빼면, 그것은 재현의 증거가 아니라 재현의 광고입니다.

  • 내부 검증 1821건 · 화면 기준선 250장. versionCode 503.
v3.11.172026-08-13
마흔 개의 판독은 서로 다른 마흔 개가 아니었습니다

지금까지 잰 것은 전부 코인 하나 안에서였습니다. 참고한 영상들도 차트를 하나씩 봅니다.

이 앱은 그 전제를 그대로 물려받아 코인마다 판독을 하나씩 내놓는데, **그 마흔 개가 서로

다른 마흔 개인지**는 한 번도 안 쟀습니다.

시장은 사흘에 이틀꼴로 한쪽입니다

비중립 코인 중 한쪽이 80% 이상인 날이 67.9% · 66.1% 였습니다(두 자료).

「마흔 개의 의견」은 사흘에 이틀꼴로 하나를 마흔 번 말한 것입니다.

그리고 그 동조 여부가 판독 수명을 가릅니다

| | 주요 20종 | 겹치지 않는 40종 |

|---|---|---|

| 시장과 같은 편 | 중앙값 11봉 | 11봉 |

| 혼자 역행 | 중앙값 6봉 | 6봉 |

| 코인 안에서 짝지은 차이 | +5.0봉 · 20/20 종목 | +5.0봉 · 40/40 종목 |

60종 전부가 같은 방향입니다. BTC 하나만 봐도 그 대부분이 설명됩니다(+4.0 · +3.0봉).

그런데 화면에는 안 붙였습니다

이미 화면에 있는 두 축(신뢰도 · 20일선 쪽)을 고정하면 남는 것은 +2~3봉입니다.

머리 숫자의 상당 부분은 구성 효과였습니다. 그 크기 때문에 「외계어 같다」던 카드에

일곱째 줄을 더하지는 않습니다.

> 재서 확인한 것과 화면에 붙일 것은 다른 물음입니다. 앞은 참인가를 묻고,

> 뒤는 그만한 자리 값을 하는가를 묻습니다.

대신 이 측정이 화면의 숫자가 낡았다는 것을 드러냈습니다

앞 판에서 「값이 20일선 반대쪽」인 경우를 갈라내 제 줄을 줬는데(그 자리는 절반이 1봉),

남은 쪽의 수는 그대로 뒀습니다. 짧은 것을 빼냈으면 남은 것은 길어집니다.

| 신뢰도 | 다시 잰 값 | 옛 화면 |

|---|---|---|

| 높음 | 13봉 | 12 |

| 보통 | 9봉 | 8 |

| 낮음 | 4봉 | 3 |

「낮음은 열에 여섯이 3봉 이하」도 이제 열에 다섯입니다. 설명 문구까지 5개 언어 모두

맞췄습니다.

> 위쪽에서 한 칸을 갈라내면, 아래에 남은 수는 다시 재야 합니다.

  • 내부 검증 1820건 · 화면 기준선 250장. versionCode 502.
v3.11.162026-08-13
검사가 조용히 아무것도 안 보게 되는 옆문을 잠갔습니다

앞 두 판에서 같은 것을 세 번 만났습니다 — **걸어 둔 검사가 실제로는 아무것도 지키지

않는 상태. 기회가 닿을 때마다 하나씩 고치는 대신, 이번에는 검사 전체에 그 잣대를 한

번에** 댔습니다.

1,818개 중 몇 개가 위험한가 — 세어서 답했습니다

「위반을 모아서 비어 있으면 통과」하는 꼴이 위험합니다. 위반이 없을 때와 **아무것도 못

찾았을 때가 똑같이 통과**하기 때문입니다.

| | 개수 |

|---|---|

| 전체 검사 | 1,818 |

| 「비면 통과」 꼴 | 128 |

| 그중 훑어서 모집단을 만드는 것 | 66 |

| 그중 파수병이 없던 것 | 5 |

저장소는 이미 이 문제를 순회 함수 안에서 풀어 두었습니다. 다만 **한 겹만 훑는 경로가 그

관문을 지나지 않았고**, 그중 절반은 「경로를 못 찾음」을 「위반 없음」과 구분 없이

흘려보내고 있었습니다.

> 전부를 의심하는 것과 다섯을 짚는 것은 다릅니다. 세지 않았으면 예순여섯 곳을

> 고치거나(대부분 헛수고) 아무 곳도 안 고쳤을 것입니다.

지금 헛돌던 것은 없었습니다

열한 곳을 관문으로 옮기고 전체를 돌렸는데 하나도 안 깨졌습니다. 구멍은 이미 뚫린

것이 아니라 앞으로 뚫릴 자리였습니다. 폴더 하나가 옮겨지는 날 조용히 초록불이 됩니다.

관문 자체도 빈 폴더·없는 폴더에 걸어 실제로 막는 것을 확인했고, 옆문을 하나 도로

열어 새 검사가 실제로 실패하는 것도 확인했습니다.

  • 내부 검증 1820건 · 화면 기준선 250장. versionCode 501.
v3.11.152026-08-13
지키는 것이 없던 화면 검사 넉 장을 되살렸습니다

앞 판에서 「검사를 걸었다는 것과 검사가 잡는다는 것은 다르다」를 배웠습니다. **같은

잣대를 화면 기준선에도 대 봤습니다.**

이름에 「주의」가 든 그림이 넉 장 있습니다. 열어 보니 **넷 다 지켜야 할 주의가 화면

밖으로 잘려 안 보였습니다.** 앞 판에서 여섯 줄 요약 카드를 판정 바로 아래 끼워 넣으면서

그 아래 것들이 밀렸는데, 화면 검사는 「기준선과 자기 자신」을 견주므로 그대로

통과했습니다.

> **화면 위쪽에 무언가를 끼워 넣으면, 아래를 지키던 그림들이 조용히 아무것도 안 지키게

> 됩니다.**

넉 장을 되살렸습니다.

되살리고 보니 그 안에 다른 것이 있었습니다

그림 안의 스토캐스틱 줄이 이렇게 적혀 있었습니다.

```

스토캐스틱 %K 76.4 · %D 71.0 [중립(변화 없음)]

OBV 변화가 미미. 수급이 균형 상태입니다.

```

스토캐스틱 자리에 OBV 문장이, 강세 표에 「중립」 칩이 붙어 있었습니다. 표본이 옛

상태 이름을 들고 있었고 — 스토캐스틱 판정을 교차에서 위치로 바꾸며 없어진 이름입니다 —

이름을 못 찾으면 화면이 「보합」으로 떨어지고 있었습니다.

그 자리 주석은 「빠진 것이 곧 뜻이 되면 안 된다」고 적혀 있었는데, **주석만 고쳐져 있고

코드는 반만 고쳐져 있었습니다.**

> 기본값이 뜻을 가지면, 빠진 것이 틀린 것이 아니라 그럴듯한 것이 됩니다.

> 그럴듯한 것은 아무도 보지 않습니다.

이제 기본값은 아무 뜻도 없는 문구로 갑니다. 표본의 옛 이름 둘도 고쳤고, 표본이 없는

이름을 쓰면 실패하는 검사를 걸었습니다 — 이번에도 **옛 이름을 도로 넣어 실제로 실패하는

것을 먼저 확인**했습니다.

  • 내부 검증 1818건 · 화면 기준선 250장. versionCode 500.
v3.11.142026-08-13
실기기에서 처음 보고, 요약이 정반대로 말하던 곳을 고쳤습니다

이 앱은 그동안 실제 기기에서 한 번도 확인한 적이 없었습니다. 「기기가 있어야 한다」고

적어 두고 재 보지는 않았는데, 확인해 보니 기기가 붙어 있었습니다. 갤럭시 폴드5에

올려 판정 화면을 열었습니다.

여섯 줄 요약은 그대로 떴고, 그중 한 줄이 판정에 따라 뜻이 정반대였습니다.

「어떻게」 줄이 방향을 몰랐습니다

문구가 하나뿐이었습니다 — 「○○○을 넘어서면 이 판독은 거둡니다」.

  • 매도 판정에서는 맞습니다. 값이 20일선 아래이니 넘어서는 것이 반증입니다.
  • 매수 판정에서는 값이 이미 20일선 입니다. 같은 문장이 「이미 지나온 선을 넘으면 거둔다」가 됩니다. 하필 열어 본 코인이 매도 판정이라 맞는 자리를 보고 넘어갈 뻔했습니다. 이제 판정과 값의 위치를 함께 보고 네 가지로 나눠 말합니다(내려가면 · 올라서면 · 돌아와야 · 갈림길).
그러다 「언제까지」 줄도 같은 사실을 무시하고 있었습니다

같은 화면의 주의사항은 「20일선 반대쪽이면 절반이 2봉 안에 뒤집힌다」고 말하는데,

요약은 신뢰도만 보고 「절반은 8봉」이라고 했습니다. 한 화면에서 두 줄이 다른 수를

말할 수 있었습니다. 갈라서 쟀습니다.

| | 주요 20종 | 겹치지 않는 40종 |

|---|---|---|

| 판정과 같은 쪽 | 53,471건 · 중앙값 10봉 | 58,145건 · 10봉 |

| 판정과 어긋남 | 1,312건 · 중앙값 1봉 | 1,525건 · 1봉 |

어긋난 자리에서는 신뢰도보다 이쪽이 셉니다. 신뢰도 「보통」이어도 9봉이 1봉이 됩니다.

그래서 그 자리에서는 신뢰도 대신 「판정과 20일선이 어긋남 · 절반은 1봉 안에」라고 씁니다.

곁가지 둘
  • 숫자 뒤에 조사를 붙이고 있었습니다(「93,879,000 넘어서면」). 자릿수마다 조사가 달라지는 자리라 조사를 쓰지 않는 문형으로 바꿨습니다.
  • 그것을 막는 검사를 걸었는데 처음엔 아무것도 안 잡았습니다. 옛 문구를 일부러 도로 넣어 보고서야 알았습니다. 검사를 건 것과 검사가 잡는 것은 다릅니다.
  • 내부 검증 1816건 · 화면 기준선 250장. versionCode 499.
v3.11.132026-08-13
알림 관문도 처음 보는 자료에 걸었습니다

앞 판이 판독 규칙을 새 자료에 걸었습니다. 이 앱이 실제로 쓰는 것 중 남은 하나가

알림입니다. 알림은 찾아가는 화면과 달리 밀고 들어오므로 헛울림의 대가가 큽니다.

| 관문 | 20종 발화 · 헛울림 | 40종(처음 보는) |

|---|---|---|

| 국면 추세 + 한 봉 확인(지금 앱) | 896 · 24.8% | 866 · 32.0% |

| 국면 추세 · 확인 없음 | 1157 · 32.5% | 1154 · 37.5% |

| \|점수\| ≥ 80 + 확인 | 1117 · 42.5% | 996 · 45.4% |

| 관문 없음 + 확인 | 1694 · 46.9% | 1676 · 50.3% |

「한 봉 확인」이 헛울림을 −7.7%p · −5.5%p 낮춥니다.

국면 관문은 점수 문턱보다 −17.7%p · −13.4%p 낮으면서 발화도 더 적습니다.

그리고 점수 문턱은 ≥80에서 포화합니다(1117 → 1115 → 1115). 앞서 잰 「극단 전이에서는

점수가 이미 다 높다」가 그대로 재현됩니다.

절대값은 다르고 차이는 같습니다

옛 측정은 헛울림을 16.4% · 18.8%로 적었는데 여기서는 24.8% · 32.0%입니다. 자료가 다르고

잣대도 조금 다릅니다. 재현된 것은 차이입니다.

> 비교 대상을 맞추면 차이가 재현되고, 절대값은 자료를 따라 움직입니다.

> 화면에 적을 것은 그중 재현되는 쪽입니다.

이것으로 「앱이 실제로 쓰는 것」은 전부 걸었습니다

| 앱이 쓰는 것 | 처음 보는 자료에서 |

|---|---|

| 판독 수명 사다리(신뢰도) | 4시간봉에서 +8.26 대 +8.33봉 |

| A+B 무효화 | 네 수 모두 재현 |

| 알림 — 한 봉 확인 | −5.5%p |

| 알림 — 국면 관문 | −13.4%p, 발화도 적음 |

넷 다 섰습니다. 이 앱이 사용자에게 하는 말과 보내는 알림이, 모두 그 규칙이 본 적 없는

자료에서 확인됐습니다.

  • 내부 검증 1813건 · 화면 기준선 248장. versionCode 498.
v3.11.122026-08-13
앱이 실제로 쓰는 규칙을 처음 보는 자료에 걸었습니다

성적표를 닫고 보니 빈틈이 있었습니다. 살아남은 넷 중 셋은 새 잣대로 두 자료·사다리·

대조군까지 거쳤는데, **화면이 실제로 쓰는 유일한 규칙인 A+B 무효화는 오래전 측정

그대로**였습니다. 새로 받은 40종에서 다시 걸었습니다.

| | 화면이 말하는 값 | 주요 20종 | 다른 40종(처음 보는) |

|---|---|---|---|

| 아무 일도 없을 때 | 61% | 61.3% | 62.2% |

| A만(선만 무너짐) | 65% | 64.6% | 63.0% |

| B만(20일선) | 81% | 81.5% | 82.1% |

| A+B | 91% | 91.3% | 89.0% |

네 수가 모두 재현됩니다. 이 앱이 화면에서 하는 말 중 가장 실질적인 것이, 그 규칙이

한 번도 본 적 없는 40종에서 그대로 섰습니다.

하마터면 맞는 기록을 틀렸다고 적을 뻔했습니다

처음 계산할 때 바닥을 「모든 비중립 판정」으로 잡았습니다. 그러면 71.8%가 나오고 이득이

+17~20%p로 줄어, 「기존 기록이 이득을 부풀렸다」고 적을 참이었습니다.

그런데 화면이 말하는 바닥은 「아무 일도 없을 때」입니다 — A도 B도 안 켜진 자리입니다.

따로 재니 61.3% · 62.2%로 화면의 61%와 맞았습니다.

> 비교 대상을 안 맞추면 같은 자료가 반대 결론을 냅니다.

> 규칙도 측정도 맞았는데, 바닥 하나를 잘못 잡아 맞는 기록을 틀렸다고 적을 뻔했습니다.

곁가지로 하나 더

무효화 선 하나만 무너진 자리는 바닥과 거의 같습니다(64.6·63.0 대 61.3·62.2). 값어치는

거의 전부 20일선과 둘의 겹침에 있습니다 — 화면이 이미 「이 선 하나로는 약합니다」라고

말하고 있고, 그 문장이 둘째 자료에서도 맞았습니다.

  • 내부 검증 1813건 · 화면 기준선 248장. versionCode 497.
v3.11.112026-08-13
추세선도 쟀습니다. 그리고 성적표를 닫습니다

앞 판에서 「못 잰다는 판정도 근거를 대야 한다」를 세웠으니, 남은 넷을 그 기준으로 다시

봤습니다. 추세선도 잴 수 있었습니다.

주관은 「어느 점을 잇느냐」에 있는데, **꼭짓점을 기계적으로 정의하면 선이 하나로

정해집니다.** 정의를 못 박고 쟀습니다 — 앞뒤 3봉보다 낮은 봉 둘을 잇고 지금까지 늘립니다.

예측도 문턱을 박아 적었습니다(앞 판에서 「나올 수 있으나」로 셀 수 없게 쓴 뒤라).

| | 20종 5·20봉 | 40종 5·20봉 |

|---|---|---|

| 지지 추세선에 닿음 | −1.16 · −0.88 | −1.90 · −0.26 |

| 저항 추세선에 닿음 | −0.37 · −1.03 | −1.05 · +0.43 |

| 지지선 하향 돌파 | −2.21 · −2.17 | +0.25 · −0.66 |

| 저항선 상향 돌파 | −0.43 · −0.08 | +1.05 · −1.94 |

| 대조: 수평선 | +1.92 · +0.95 | −2.27 · −0.60 |

여덟 칸이 모두 기준선 ±2 안이고, 수평 대조군과 다르지 않습니다 — 기울어진 선이나

수평선이나 같은 자리입니다.

> 선을 어떻게 긋든 자리는 자리입니다.

파동·엘리엇은 정말로 기계 규칙이 없습니다

파동 번호는 사후에 고쳐 답니다. 같은 차트를 두 사람이 다르게 세고, 한 사람도 나중에

다시 셉니다. 다만 거기서 나오는 검증 가능한 주장은 이미 쟀습니다 — 「되돌림은 0.618

에서 멈춘다」는 피보나치 줄이고, 안 섰습니다.

성적표를 닫습니다

빈도표 21개 기법 중 재현 가능한 정의를 세울 수 있는 것은 전부 쟀습니다.

| 종류 | 결과 |

|---|---|

| 상태(과매도 · 이격도 · CCI 아래쪽) | 섭니다 |

| 사건(교차 셋 · 다이버전스 · 캔들 · 추세선 돌파) | 안 섭니다 |

| 자리(지지·저항 · 피보나치 · 매물대 · 구름 두께 · 추세선) | 안 섭니다 |

| 뒤늦은 상태(일목 구름) | 안 섭니다 |

| *(구조)* A+B 무효화 | 섭니다 |

> 열여섯 중 넷이 살아남았고, 넷은 한 가지입니다 — 「값이 평소에서 얼마나 멀리

> 왔는가」, 그리고 「그것을 언제 거둘 것인가」.

  • 내부 검증 1809건 · 화면 기준선 248장. versionCode 496.
v3.11.102026-08-13
일목 구름은 20일선보다 「더」 나빴습니다

앞 판에서 「추세선·파동·엘리엇·일목은 규칙이 사람마다 달라 못 잰다」고 적었습니다.

그중 하나는 틀렸습니다일목균형표는 공식이 완전히 정해져 있습니다. CCI를

「자체 지표」로 잘못 제외했던 것과 같은 실수를 바로 다음 판에 또 했습니다.

> 「못 잰다」는 판정도 근거를 대야 합니다. 안 그러면 재기 싫은 것이 「잴 수 없는 것」이

> 됩니다.

| | 20종 5·20봉 | 40종 5·20봉 |

|---|---|---|

| 구름 위(오른다) | −2.88 · −5.61 | −4.12 · −7.50 |

| 구름 아래(내린다) | −2.36 · −4.05 | −2.07 · −3.13 |

| *대조: 20일선 위/아래* | *−2.12 · −1.76* | *−1.45 · −1.94* |

| 구름 위 & 20일선 아래 | −0.43 · −8.28 | −3.71 · −12.64 |

| 두꺼운 구름 안(되돌림) | +0.25 · −0.89 | +0.26 · −0.18 |

구름은 20일선 대조군보다 더 나쁩니다. 이치가 닿습니다 — 지금 자리의 구름은 **26봉 전

자료로 계산됩니다. 이 앱이 얻은 축이 「값이 이미 갔는가」이니, 더 뒤늦은 자는 더

아래**입니다.

> 「상태」라고 다 같은 것이 아닙니다 — 얼마나 최신인가가 갈립니다.

가장 나쁜 칸은 둘이 어긋날 때입니다. 「구름 위인데 20일선 아래」가 −8.28 · −12.64로

이 판에서 잰 것 중 가장 낮습니다.

두께 주장은 0 근처입니다 — 「자리」 주장은 이제 다섯 다 안 섰습니다(지지·저항 ·

뚫린 저항 · 피보나치 · 매물대 · 구름 두께).

예측 하나는 셀 수 없게 썼습니다

「우위가 나올 수 있으나」라고 적었는데, 그 말은 어떤 결과와도 양립합니다.

성적표에 「맞음」으로 올리지 않았습니다.

> 애매하게 쓴 예측은 세지 않습니다. 세면 성적표가 좋아지고, 좋아진 성적표는 다음에

> 짐작을 근거로 쓰게 만듭니다.

성적표는 열다섯 중 넷입니다.

  • 내부 검증 1809건 · 화면 기준선 248장. versionCode 495.
v3.11.92026-08-13
앞 판에 한계로 적어 둔 것을 사다리로 닫았습니다

앞 판에서 「CCI가 20봉에서 이격도 너머에 더한다」를 얻고, **손으로 고른 문턱 하나에서

나온 것이라 한계로 적어 뒀습니다. 이격도 칸을 다섯으로 나눠 칸 안에서** 다시 쟀습니다.

| 이격도 칸 | 20종 5봉 · 20봉 | 40종 5봉 · 20봉 |

|---|---|---|

| 0% 위 | *표본 0* | *표본 0* |

| −5 ~ 0% | +0.94 · +4.45 | −3.85 · −0.65 |

| −10 ~ −5% | +2.93 · +8.13 | +2.04 · +5.11 |

| −15 ~ −10% | −2.06 · +5.02 | −2.72 · +4.12 |

| −15% 아래 | +7.35 · +5.58 | +5.31 · +14.94 |

20봉에서는 거의 모든 칸이 양수이고(두 자료), 5봉에서는 부호가 오락가락합니다

앞 판의 「5봉에서는 안 더한다」가 사다리로도 재현됐습니다.

> CCI가 원시 이격도 너머에 더하는 것은 「긴 지평에서, 이격도 칸과 무관하게」입니다.

> 짧은 지평에서는 더하지 않습니다.

「0% 위」 칸이 표본 0인 것도 결과입니다 — CCI가 −100 아래인데 값이 20일 평균 위인

경우는 사실상 없습니다. 두 자가 위쪽에서는 거의 겹칩니다.

그래도 화면은 안 바꿨습니다

「어디서」 줄은 원시 이격도 퍼센트를 씁니다. 정규화한 값으로 바꾸려면 **사용자가 읽을 수

있는 문장이 무엇인지부터** 정해야 합니다 — 「CCI −180」은 앞서 없애려던 바로 그 말입니다.

> 잰 것과 보여 줄 것은 다른 결정입니다.

  • 내부 검증 1809건 · 화면 기준선 248장. versionCode 494.
v3.11.82026-08-13
CCI는 서는데, 새 축은 아니었습니다

빈도표에서 실측 가능한 마지막 조각이었습니다(CCI 3편). 기존 기록은 「거래량 CCI 등 자체

지표」를 계산식 비공개로 제외했는데, 평범한 CCI는 공식이 공개돼 있습니다.

둘째 자료는 주요 20종과 겹치지 않는 40종을 새로 받아 썼습니다.

| | 주요 20종 5·10·20봉 | 다른 40종 |

|---|---|---|

| CCI ≤ −100 | +6.64 · +5.71 · +5.70 | +4.84 · +5.08 · +5.91 |

| CCI ≥ +100 | +0.63 · +0.94 · +1.71 | +2.07 · +3.78 · +4.42 |

| CCI ≤ −200 | +7.46 · +9.29 · +8.76 | +8.61 · +10.72 · +14.25 |

아래쪽이 서고, 더 극단이면 더 크고, 위쪽은 아래쪽의 1/3 안팎입니다 — 앞서 잰 이격도

사다리와 같은 모양입니다.

그런데 CCI가 이격도 너머에 무엇을 더하나

| | 주요 20종 | 다른 40종 |

|---|---|---|

| 대조: 이격도 ≤ −10% | +9.84 · +7.00 · +3.75 | +7.23 · +6.14 · +3.63 |

| CCI ≤ −100 인데 이격도는 > −10% | +0.98 · +2.52 · +5.41 | −0.31 · +1.47 · +5.78 |

5봉에서는 아무것도 안 더하고(≈0), 20봉에서는 더합니다(+5.4 · +5.8). 그 자리에서

이격도 자신의 우위는 +3.7로 식어 있습니다.

이치가 닿습니다 — CCI는 이격도를 그 코인의 평소 흔들림으로 나눈 값입니다. 조용한

코인의 −5%는 시끄러운 코인의 −15%와 같은 자리인데, 원시 퍼센트는 둘을 같은 칸에 넣습니다.

> CCI는 새 축이 아니라 같은 축의 더 나은 자입니다.

한계와, 안 바꾼 것

「이격도 > −10%」라는 자름은 손으로 고른 것이라, 「20봉에서 더한다」는 한 번 확인된 것

이지 사다리로 확인된 것이 아닙니다. 그리고 이 앱은 CCI를 보여 주지 않습니다 — 넣는 것은

기능 결정이고, 이 판이 잰 것은 「서는가」까지입니다. 재고, 적고, 멈춥니다.

성적표는 열넷 중 넷입니다. 예측 ⑯은 뒤 절반이 틀려 틀림으로 셉니다.

  • 내부 검증 1805건 · 화면 기준선 248장. versionCode 493.
v3.11.72026-08-13
주의 순서를 다시 쟀고, 바꿀 필요가 없었습니다

주의사항을 「급한 하나 + 접기」로 바꾸면서 **그 순서가 「무엇을 보여 줄지」를 정하게

됐습니다. 그런데 그 순서는 평균**으로 매겨져 있었습니다 — 앞 판들에서 오도한다고

밝힌 바로 그 통계입니다. 중앙값으로 다시 쟀습니다.

| 조건 | 평균 | 중앙값 | 3봉 이하 |

|---|---|---|---|

| 지표 충돌 | 6.6 | 2 | 60.9% |

| 20일선 반대 | 5.1 | 2 | 68.5% |

| 문턱 바로 옆 | 8.7 | 5 | 43.8% |

| 추세 약함 | 9.9 | 6 | 35.1% |

| 변동성 응축 | 10.1 | 6 | 36.7% |

| *(대조) 전체* | 12.2 | 9 | 25.2% |

맨 앞은 그대로입니다. 충돌과 문턱이 한 칸씩 올라올 뿐이고, 그 차이는 아직 안 잰

조건들(교차 시장·불안정·마른 눌림목) 때문에 확정할 수도 없습니다. **그래서 안

바꿨습니다.**

> 평균의 함정이 「보여 주는 수」는 오염시켰지만 「순서」는 오염시키지 않았습니다.

> 같은 실수라도 어디에 쓰였는지에 따라 결과가 다릅니다 — 훑어 보기 전에는 알 수 없었습니다.

하나는 더했습니다

「문턱 바로 옆」은 비중립 판정의 11.6%로 흔하고, 그 자리의 판독은 절반이 5봉 안에

뒤집힙니다(그 밖은 9봉). 그런데 그 주의는 「왜 신뢰도를 낮췄는지」만 말하고 **결과를

말하지 않았습니다.** 다른 문구들과 같은 규약으로 한 줄 붙였습니다.

  • 내부 검증 1805건 · 화면 기준선 248장. versionCode 492.
v3.11.62026-08-13
「신뢰도 낮음」이 무슨 뜻인지 그 자리에서 답합니다

첫 화면을 다시 보니 둘이 보였습니다.

① 표 수가 두 번 나오고 있었습니다

「강세 지표 2개 · 약세 지표 3개」(윗줄)와 「왜: 지표 2개가 위, 3개가 아래(겹치는 지표가

있습니다)」(카드). 같은 사실을 두 번 말하는데, 단서 없는 쪽이 위에 있었습니다.

윗줄을 뺐습니다 — 카드가 더 나은 판을 갖고 있습니다.

> 같은 것을 두 번 말하면 사용자는 단서 없는 쪽을 먼저 믿습니다.

② 「신뢰도 낮음」이 머리말에 있고, 그 뜻은 접혀 있었습니다

이 앱은 1,345자를 들여 「신뢰도는 맞을 확률이 아니라 다시 볼 주기다」를 말해 왔습니다.

그 글을 접으면서 라벨만 남았습니다. 사용자는 「신뢰도 낮음」을 「틀릴 확률이 높다」로

읽습니다.

「언제까지」 줄이 이제 그 이름을 함께 답니다:

> 언제까지 — 신뢰도 낮음 · 절반은 3봉 안에 뒤집혔습니다

머리말의 말이 바로 아래에서 뜻을 얻습니다. 다섯 언어 전부 한 줄 예산(45자) 안입니다.

검사가 둘을 더 잡았습니다

줄을 지우자 문자열 하나가 고아가 됐고(번역 5벌 포함) 기존 검사가 잡았습니다 —

함께 지웠습니다. 문서 수치도 함께 어긋나 갱신했습니다.

  • 내부 검증 1804건 · 화면 기준선 248장. versionCode 491.
v3.11.52026-08-13
접은 경고가 지키던 오해를, 요약이 앞장서 옮기고 있었습니다

여섯 줄 카드의 「왜」 줄이 「지표 5개가 위, 1개가 아래」를 첫 화면 둘째 줄에 올립니다.

그런데 이 앱이 1,142자를 들여 경고해 온 것이 바로 **「여덟을 서로 다른 여덟으로 읽지

마라」**입니다 — 넷은 반대표를 1~3%만 던지고, 같은 원자료를 읽는 짝은 6~8%p 더 자주 같은

편에 섭니다.

접기 전에는 그 경고가 같은 화면에 있었습니다. 접고 나니 **오해를 부르는 수는 맨 앞에

남고, 그것을 막던 문장은 뒤로 갔습니다.**

한 마디를 붙였습니다 — 「지표 5개가 위, 1개가 아래 (겹치는 지표가 있습니다)」.

다섯 언어 전부, 한 줄 예산(45자) 안입니다.

> 접는다는 것은 「덜 중요하다」가 아닙니다. 접힌 경고가 지키던 오해가 있으면, 그 한

> 마디는 접기 바깥에 남아야 합니다.

앞 판이 「덧붙이는 원칙에는 줄이는 원칙이 짝으로 있어야 한다」로 끝났는데, 여기에 짝이

하나 더 붙습니다 — 줄일 때는 무엇이 무엇을 막고 있었는지 함께 봅니다.

  • 내부 검증 1803건 · 화면 기준선 248장. versionCode 490.
v3.11.42026-08-13
같은 함정이 세 곳 더 있었습니다

앞 판에서 「보통 15봉」이 평균이라 사용자를 오도한다는 것을 알았습니다. 이 앱에는

「한 곳을 고치면 같은 실수가 이미 몇 개 있었는지 함께 센다」는 규칙이 있어서, 수명을

「평균」으로 말하는 자리를 전부 찾아 다시 쟀습니다.

| 화면이 말하던 것 | 평균 | 중앙값 | 3봉 이하 |

|---|---|---|---|

| 신뢰도 높음 · 보통 · 낮음 | 15.5 · 11.9 · 7.1 | 12 · 8 · 3 | 7% · 25% · 58% |

| 동의 차이 한 끗 | 6.6 | 2 | 60.9% |

| 동의 차이 다섯 이상 | 14.6 | 12 | 11.2% |

| 20일선 반대편 | 5.1 | 2 | 68.5% |

| *(대조) 같은 편* | 13.0 | 10 | 20.3% |

앞의 셋은 평균이 중앙값의 세 배쯤입니다. 「평균 4~5봉」을 읽은 분은 실제로는

열에 일곱이 3봉 안에 끝나는 상황을 기다리게 됩니다.

다섯 언어 전부 고쳤습니다

「절반은 2봉 안에 뒤집혔습니다 — 열에 일곱은 3봉 이하입니다」처럼 중앙값과 꼬리

바꿨습니다.

그리고 앞 판에서 카드만 고쳐 놓아 카드는 「절반 3봉」, 접힌 설명은 「낮음 7봉」이라고

한 앱이 두 말을 하고 있었습니다. 함께 맞췄습니다.

금지하는 것은 「평균」이 아니라 「평균만」입니다

추세 강도 문구는 「2봉가량 오래 갔다」는 차이를 말합니다. 중앙값에서도 11 대 9로

같은 +2라 오도가 아니어서 그대로 뒀습니다.

> 분포가 쏠린 값은 평균만 적지 않습니다. 평균이 틀려서가 아니라, 읽는 사람이 평균을

> 「절반쯤」으로 읽기 때문입니다.

  • 내부 검증 1802건 · 화면 기준선 248장. versionCode 489.
v3.11.32026-08-13
새로 올린 수가 바로 그 함정에 빠져 있었습니다

두 판 전에 여섯 줄 카드에 「이 판독은 보통 15봉쯤 갑니다」를 넣었습니다. 그 15는

평균이고, 이 앱이 스무 판 넘게 써 온 값입니다. 맞는 수입니다. 그런데 사용자는

「보통」을 절반쯤으로 읽습니다.

분포를 재 봤습니다(주요 20종 일봉 9,890건).

| 신뢰도 | 평균 | 중앙값 | 3봉 이하 |

|---|---|---|---|

| 높음 | 15.5 | 12 | 7.3% |

| 보통 | 11.9 | 8 | 25.1% |

| 낮음 | 7.1 | 3 | 57.9% |

「낮음」이 특히 나빴습니다. 화면은 「보통 7봉쯤 갑니다」라고 적고 있었는데, 실제로는

열에 여섯이 3봉 안에 끝납니다. 평균이 긴 꼬리에 끌려 올라간 값이라, 읽는 뜻과 전혀

다른 수였습니다.

고쳤습니다

문구를 「절반은 N봉 안에 뒤집혔습니다」로 바꾸고, 수도 중앙값(12 · 8 · 3)으로

바꿨습니다. 사다리 자체는 그대로입니다 — 바뀐 것은 어느 통계를 보여 주는가입니다.

> 맞는 수를 보여 주는 것과 읽은 대로인 수를 보여 주는 것은 다릅니다.

앞 판에서 세운 「읽히는가」 잣대가 잡은 첫 실물입니다. 그 잣대가 없었다면 이 수는

「두 자료에서 확인된 값」이라는 이유로 계속 화면에 있었을 것입니다.

(표본 파일이 임시 폴더에서 지워져 일봉 20종 58,925봉을 다시 받아 쟀습니다. 출력 파일이

안 생겨서 알아챘습니다 — 조용히 건너뛴 측정을 결과로 쓰지 않으려는 장치입니다.)

  • 내부 검증 1798건 · 화면 기준선 248장. versionCode 488.
v3.11.22026-08-13
읽기 부담을 재서 82% 줄인 것을 확인하고, 예산으로 묶었습니다

앞 두 판에서 화면을 고치고 「읽기 쉬워졌다」고 말씀드렸는데, 그건 눈으로만 한 말

이었습니다. 이 앱은 무엇이든 재는 것이 규칙이라, 읽기 부담도 쟀습니다.

| | 글자 수 |

|---|---|

| 접기 전 첫 화면(판독 + 주의 전부 + 지표 8줄) | ≈ 2,123자 |

| 접기 후 첫 화면(판독 + 여섯 줄 + 급한 주의 하나) | ≈ 375자 |

| 「자세히 보기」 뒤로 옮긴 설명 산문 | 2,628자(그대로 있습니다) |

82% 줄었습니다. 지운 것은 없습니다 — 순서를 바꾸고 접었을 뿐입니다.

왜 이렇게 됐었나

이 앱은 「잰 것은 화면에 붙인다」를 지켜 왔습니다. 옳은 원칙인데 **한 방향으로만

작동합니다** — 측정할 때마다 문구가 길어지고, 줄어들 계기는 어디에도 없었습니다. 열몇

판을 그렇게 하고 나니 설명 문단이 1,345자가 됐습니다.

> 덧붙이는 원칙에는 줄이는 원칙이 짝으로 있어야 합니다.

그래서 예산으로 묶었습니다

「읽기 쉽게 하자」는 다짐은 다음 측정 한 번이면 무너집니다. 실제로 그렇게 무너뜨렸습니다.

이제 검사가 첫 화면을 600자로, 여섯 줄은 한 줄 45자로 묶습니다. 문구를 늘리려면

무엇을 접을지 함께 정해야 합니다.

이 규칙은 이 앱이 얻은 것 중 유일하게 측정이 아니라 사용자에게서 온 것입니다. 스무 판

동안 어떤 측정도 이것을 알려 주지 않았습니다 — 잣대가 「맞는가」뿐이었고 「읽히는가」가

아니었기 때문입니다.

  • 내부 검증 1798건 · 화면 기준선 248장. versionCode 487.
v3.11.12026-08-13
요약을 주의사항 «위»로 올렸습니다

앞 판에서 여섯 줄 요약을 넣었는데, 전체 화면을 보니 제자리가 아니었습니다. 요약이

판정 블록을 통째로 지난 뒤에 있어서, 사용자는 주의사항 예닐곱 줄을 먼저 읽고 나서야

요약을 만났습니다 — 없애려던 벽을 그대로 둔 셈입니다.

> 부품만 보고 화면을 안 보면, 고친 줄 알고 안 고친 채로 나갑니다.

이제 읽는 순서가 이렇습니다

1. 종합 판독 한 줄 (강세 우위 · 신뢰도 낮음)

2. 지금 이 코인 — 여섯 줄

3. 가장 급한 주의 하나

4. 「주의 N개 더 보기」 — 나머지는 접힘

주의사항을 전부 접지는 않았습니다. 목록은 이미 급한 순서로 정렬돼 있어서 **맨 앞 하나는

늘 보입니다** — 벽을 없애는 것과 경고를 숨기는 것은 다릅니다.

같은 화면 높이에서 이제 OBV·장세·무효화 선까지 보입니다. 예전에는 주의사항 벽에 가려

한참 아래에 있었습니다.

검사가 요약이 주의사항보다 위에 있는지급한 주의 하나는 절대 접히지 않는지

지킵니다.

  • 내부 검증 1794건 · 화면 기준선 248장. versionCode 486.
v3.11.02026-08-13
판독을 여섯 줄로 읽습니다

「기술적 분석이 외계어 같아 알아들을 수 없다」는 말씀을 받았습니다. **맞는 말씀이고,

저희가 만든 문제입니다.** 잰 것은 화면에 붙인다는 원칙을 지키다 보니, 판정 화면의 설명

문단이 1,345자와 1,142자까지 자랐습니다. 하나하나는 근거가 있지만 합쳐 놓으면 읽을

수 없습니다.

판정 바로 아래에 여섯 줄이 먼저 답합니다

| | |

|---|---|

| 무엇을 | 강한 매수로 읽힙니다 |

| | 지표 5개가 위, 1개가 아래를 봅니다 |

| 언제까지 | 이 판독은 보통 15봉쯤 갑니다 |

| 어디서 | 값이 20일 평균보다 8.3% 위에 있습니다 |

| 어떻게 | ₩61,200 를 넘어서면 이 판독은 거둡니다 |

| 주의 | 앞으로 오를지 내릴지를 맞히는 값이 아닙니다 |

긴 설명은 지우지 않고 접었습니다

지우면 이 앱이 하는 일 자체가 없어집니다. 「자세히 보기」를 누르면 그대로 다 나옵니다 —

평소에는 접혀 있습니다.

값이 없으면 줄이 사라지지 않고 「모른다」고 말합니다

20일 평균을 낼 자료가 모자라면 그 줄에 「아직 모자랍니다」가 나옵니다. 빈자리는 「해당

없음」이 아니라 「원래 그런 것」으로 읽히기 때문입니다 — 이 앱이 네 번 데인 자리입니다.

만들면서 잡은 것 둘
  • 첫 프리뷰에서 여섯째 「주의」 줄이 잘렸습니다. 가장 중요한 줄이라 높이를 늘렸습니다.
  • 영어 큰 글씨에서 라벨이 단어 중간에서 깨졌습니다(Wh/ere, Care/ful). 라벨 칸이 58dp 고정이라 글씨가 커지면 모자랐습니다 — 글씨 배율을 따라가게 고쳤습니다. 어떤 줄을 낼지는 화면이 아니라 도메인이 정하고, 검사가 여섯 줄이 늘 여섯 줄인지「주의」가 절대 빠지지 않는지를 지킵니다.
  • 내부 검증 1792건 · 화면 기준선 248장. versionCode 485.
v3.10.142026-08-13
매물대는 반대로 나왔고, 그 반대가 앞 판으로 설명됩니다

빈도표에서 실측 가능한 마지막 조각이었습니다(매물대 2편). 이 앱은 그 구간을 **이미 화면에

보여 주는데** 성적표에 줄이 없었습니다.

주장은 「거래가 몰린 구간에 닿으면 되돌린다」입니다. 최근 120봉으로 24칸 프로필을 만들고,

지금 값이 놓인 칸의 두께로 갈라 쟀습니다.

| | 주요 20종 5·10봉 | 이중상장 60종 |

|---|---|---|

| 두꺼운 칸 상위 1/4 | +0.60 · −0.25 | −0.57 · +1.06 |

| 가장 두꺼운 칸 | −0.17 · −1.31 | −3.37 · −0.21 |

| 얇은 칸 하위 1/4 | +4.61 · +6.07 | +5.54 · +5.56 |

| 짝지은 차이(두꺼움−얇음) | −4.01 · −6.33 | −6.11 · −4.50 |

안 서는 정도가 아니라 반대입니다. 되돌림은 두꺼운 칸이 아니라 얇은 칸에서

일어나고, 두 자료·두 지평에서 모두 그렇습니다.

왜 반대인지 — 이야기로 두지 않고 쟀습니다

| | 얇은 칸 | 두꺼운 칸 | 짝지은 차이 |

|---|---|---|---|

| 20일선에서 벌어진 정도 · 20종 | 20.3% | 6.1% | +14.22%p ± 0.69 |

| 같음 · 60종 | 12.0% | 5.5% | +6.50%p ± 0.34 |

얇은 칸은 곧 멀리 온 자리입니다. 매물대는 앞 판의 사다리를 거래량으로 우회해 본 것에

지나지 않습니다 — 그것도 부호가 반대인 이름으로.

> **이 판의 값어치는 「또 하나 안 섰다」가 아니라, 안 선 이유가 이미 잰 것으로 설명된다는

> 데 있습니다.** 새 기제를 지어내지 않았습니다.

성적표가 한 분류로 닫힙니다

| 종류 | 무엇인가 | 항목 | 결과 |

|---|---|---|---|

| 상태 | 지금 어디에 있는가 | 과매도 · 이격도 | 섭니다 |

| 사건 | 방금 무엇이 일어났는가 | 교차 · 다이버전스 · 캔들 · 거래량 교차 | 안 섭니다 |

| 자리 | 어느 값이 특별한가 | 지지·저항 · 뚫린 저항 · 피보나치 · 매물대 | 안 섭니다 |

| *(구조)* | 둘이 함께 꺼질 때 | A+B 무효화 | 섭니다 |

「자리」는 넷 다 안 섰습니다. 이 앱이 지지·저항을 여전히 보여 주는 이유는 **맞아서가

아니라**, 사용자가 스스로 그 선을 그으니 같은 선을 같은 규칙으로 보여 주는 편이 낫기

때문입니다 — 화면도 그렇게 말하고 있습니다.

> 선 것은 「값이 평소에서 얼마나 멀리 왔는가」 하나입니다. 이름이 넷(과매도 · 이격도 ·

> 밴드 하단 · 얇은 매물대)일 뿐 재 보면 같은 축입니다.

성적표는 열셋 중 셋입니다. 측정은 지지·저항 설명에 넣었습니다.

그러다 화면에 별표가 그대로 나가고 있던 것을 찾았습니다

지지·저항 설명을 늘렸는데 기준선이 한 장도 안 바뀌어 보니, 그 글을 그리는 프리뷰가

없었습니다(네 번째입니다). 프리뷰를 붙이자마자 진짜 결함이 나왔습니다 — 문서에서

쓰는 `굵게` 표기를 그대로 옮겨 붙여서 별표가 화면에 그대로 보이고 있었습니다.

훑어 보니 이번에 넣은 다섯 곳 말고도 이미 배포돼 있던 것이 둘 더 있었습니다(일본어

장세 설명 · 한국어 다이버전스 설명). 일곱 곳을 모두 고치고, 다시 들어오면 실패하도록

검사를 걸었습니다.

> 한 판에서 저지른 실수를 고칠 때는, 같은 실수가 이미 몇 개 있었는지 함께 셉니다.

  • 내부 검증 1784건 · 화면 기준선 245장. versionCode 484.
v3.10.132026-08-13
사다리가 나왔습니다. 그리고 제 말의 절반이 틀렸습니다

앞 두 판에서 「과매도는 서고 교차는 안 선다」를 얻었습니다. 그런데 과매도 쪽은 **이진

분할 하나로 나온 것이었습니다. 정도를 나눠 단조로 늘어서는지**는 확인하지 않았습니다.

빈도표의 이격도 2편도 성적표에 없었으니 둘이 한 측정으로 풀립니다.

이번엔 예측을 적을 수 있었습니다 — 이미 잰 것을 같은 층위에서 곧장 늘리는 것입니다.

> 예측 ⑮ 이격도가 낮을수록 위쪽 우위가 크고 단조로 줄어든다. 다만 위쪽에서는

> 대칭으로 음수가 되지 않는다.

앞 절반은 맞았습니다 — 열 칸이 단조로 늘어섭니다

「위로 갈 확률 − 기준선」(포인트)

| 이격도 | 주요 20종 5·10·20봉 | 이중상장 60종 |

|---|---|---|

| ~ −20% | +18.74 · +15.35 · +10.71 | +13.92 · +7.72 · −3.38 |

| −20 ~ −15% | +10.93 · +9.25 · +5.40 | +14.04 · +8.65 · −0.83 |

| −15 ~ −10% | +5.08 · +1.99 · −0.39 | +2.40 · +1.56 · −0.22 |

| −10 ~ 0% | ≈ 0 | ≈ 0 |

| 0 ~ +15% | −0.5 ~ −2.4 | −0.5 ~ −5.2 |

| +20% ~ | −5.23 · −7.13 · −6.34 | −6.82 · −8.55 · −10.36 |

열 칸이 두 자료에서 같은 모양으로 늘어섭니다. 이진 분할 하나보다 훨씬 어려운

일입니다 — 우연히 이렇게 정렬되기 어렵습니다.

뒤 절반은 틀렸습니다 — 위쪽도 음수입니다

+20% 넘게 벌어진 자리는 분명히 음수입니다. 앞 판의 「상단은 0」은 **칸을 잘못 잡은

것**이었습니다 — 볼린저 상단에 닿는 자리는 대개 +5~15% 구간이고, 거기가 바로 평평한

칸입니다.

> 「위쪽은 안 된다」가 아니라 「위쪽은 더 멀리 가야 한다」였습니다.

비대칭은 그대로지만 크기가 다릅니다 — 아래쪽 끝 +18.7 대 위쪽 끝 −5.2로 서너 배입니다.

시간 상수도 양쪽이 다릅니다

아래쪽은 지평이 길수록 줄고(+18.7 → +15.4 → +10.7), 위쪽은 커집니다

(−6.8 → −8.6 → −10.4). 아래쪽 되돌림은 빠르고 위쪽 되돌림은 느립니다.

성적표 두 줄이 바뀝니다

영상 성적표에 이격도가 「✅ 섬」으로 올라가 열둘 중 셋이 됐고, 예측 성적표의

⑮는 틀림입니다.

> 붙여 쓴 예측은 「절반 맞음」이 아니라 틀림으로 셉니다. 안 그러면 어느 예측이든

> 맞은 조각만 골라 셀 수 있고, 성적표는 그 순간 쓸모를 잃습니다.

결과는 이동평균 설명에 한계와 함께 넣었습니다.

  • 내부 검증 1776건 · 화면 기준선 244장. versionCode 483.
v3.10.122026-08-02
교차 신호는 셋 다 안 섭니다. 가장 유명한 것이 가장 뚜렷하게

빈도표에 이동평균 3편 · MACD 3편 · 스토캐스틱 3편이 있는데 성적표에 「교차」 줄이

없었습니다. 셋 다 같은 형식이라 한 잣대로 나란히 쟀습니다.

앞 판에서 대조군이 14봉 어긋났던 자리가 있어 정렬 규칙부터 확인하고 시작했습니다.

| 교차 (위로) | 주요 20종 5·10·20봉 | 이중상장 60종 |

|---|---|---|

| 이동평균 5-20(골든크로스) | −2.33 · −1.24 · −0.62 | −9.49 · −8.42 · −1.08 |

| MACD 선-신호선 | −1.21 · +0.09 · +0.02 | −6.32 · −5.76 · −1.12 |

| 스토캐스틱 %K-%D | +0.44 · +0.34 · +0.56 | +0.94 · −0.66 · +1.47 |

아래로 뚫는 쪽도 같고, 골든크로스의 반대 방향은 두 자료가 부호부터 어긋납니다.

가장 유명한 주장이 가장 뚜렷하게 안 섭니다.

한 칸만 눈에 띄었고, 그래서 안 채택했습니다

이동평균 20-60 이 아래로 뚫는 자리가 20종에서 +7.74로 나왔는데, **60종에서는 관측이

0건입니다(620봉으로는 60일선 + 워밍업이 안 나옵니다). 한 자료뿐이면 채택하지

않습니다.** 적어만 뒀습니다.

코드에 이미 있던 측정을 다른 잣대로 재현했습니다

스토캐스틱 교차가 0 근처인 것은 새 사실이 아닙니다. 이 앱은 이미 「교차 50.8% 대 위치

72.7%」를 재고 교차가 아니라 위치로 표를 내도록 바꿔 뒀습니다. 이번엔 기준선 대비라는

다른 잣대로 다시 확인한 것입니다 — 설계가 이미 맞았습니다.

그래서 한 줄이 더 붙습니다 — 상태는 서고 사건은 안 섭니다

| | 무엇인가 | 결과 |

|---|---|---|

| 과매도 · 밴드 하단 · 20봉 최저 | 상태 — 지금 어디에 있는가 | 섭니다 (+8 ~ +21) |

| 골든크로스 · MACD · %K/%D | 사건 — 방금 무엇이 일어났는가 | 안 섭니다 (0 또는 아래) |

교차는 값이 이미 간 뒤에 켜집니다 — 짧은 평균이 긴 평균을 넘으려면 그전에 값이 올라

있어야 합니다.

> 이 앱이 잰 것 전부를 관통하는 물음은 하나입니다 — 「값이 이미 갔는가」.

> 이미 간 것을 확인하는 신호는 기준선을 못 넘고(판정 · 신뢰도 · 교차), 이미 간 것을

> 거스르는 신호만 넘습니다(과매도). 그리고 이 앱은 앞의 것입니다.

성적표는 이제 열하나 중 둘입니다. 결과는 이동평균 설명에 넣었습니다.

  • 내부 검증 1776건 · 화면 기준선 244장. versionCode 482.
v3.10.112026-08-02
원자료로 돌아가 보니 안 잰 것이 있었습니다 — 볼린저 7편

최근 여러 판이 앱 내부를 팠습니다. 상시 지침은 「영상에서 얻은 지식을 모두 검증」

이라, 부록의 기법 빈도표로 돌아가 성적표와 대조했습니다. **볼린저가 7편에 나오는데

성적표에 한 줄도 없었습니다** — 캔들·지지·거래량·저항 다음으로 자주 나온 기법입니다.

재기 전에 결과가 아니라 해석을 등록했습니다.

섭니다 — 다만 한쪽뿐입니다

기준선 대비(같은 코인·같은 180봉 토막에서 아무 봉이나 골랐을 때의 확률을 뺀 값)

| | 주요 20종 (5·10·20봉) | 이중상장 60종 |

|---|---|---|

| 볼린저 하단(오른다) | +9.66 · +10.19 · +8.74 | +10.70 · +13.59 · +6.85 |

| 볼린저 상단(내린다) | +0.70 · +1.04 · +1.47 | −0.60 · −0.99 · +0.59 |

아래쪽만 섭니다. 위쪽은 두 자료 모두 0 근처입니다.

그런데 볼린저가 특별한 것이 아니었습니다

볼린저와 무관한 「과매도」 방아쇠 둘을 같은 잣대로 함께 쟀습니다.

| 방아쇠 (아래쪽) | 주요 20종 | 60종 |

|---|---|---|

| RSI ≤ 30 | +17.27 · +18.44 · +20.74 | +17.01 · +11.92 · +6.13 |

| 볼린저 하단 | +9.66 · +10.19 · +8.74 | +10.70 · +13.59 · +6.85 |

| 20봉 최저 | +8.52 · +7.84 · +7.64 | +3.90 · +6.29 · +4.24 |

RSI 30 이 볼린저보다 강합니다. 살아남은 것은 「볼린저」가 아니라 「과매도 되돌림」

이고, 볼린저는 그중 약한 판입니다.

영상이 붙인 조건은 반대로 나왔습니다

영상은 「횡보장에서 밴드 되돌림이 맞다」고 합니다. 재 보니 횡보 +0.31·+2.94·+1.59,

추세 +8.21·+7.55·+6.12 입니다. 전제가 또 반대입니다.

생존 편향을 따로 확인했습니다

이 표본은 오늘까지 살아남은 코인뿐이라, 「과매도에서 산다」는 결론에 가장 크게 무는

편향입니다. 코인별로 갈랐습니다(10봉).

| | 양수 코인 | 성적 낮은 절반 | 높은 절반 |

|---|---|---|---|

| 볼린저 하단 (20종) | 19/20 | +12.24 | +8.13 |

| RSI ≤ 30 (20종) | 20/20 | +19.74 | +17.13 |

| 볼린저 하단 (60종) | 15/15 | +12.70 | +10.76 |

네 경우 다 성적이 나쁜 코인에서 더 큽니다. 편향이라면 승자 쪽에 몰려야 하는데

반대입니다. 남는 한계는 그대로입니다 — **0으로 간 코인은 표본에 없고, 매매 비용도 재지

않았습니다.** 이 앱은 매매를 권하지 않습니다.

앱이 억누르는 자리가 바로 그 자리입니다 — 그래도 안 바꿉니다

이 앱은 추세 안의 과매도를 「신호가 아니라 상태」로 보고 표를 누릅니다. 되돌림이 가장

잘 듣는 자리가 바로 추세입니다. 정면으로 부딪칩니다.

그래도 바꾸지 않았습니다. 저 억누름은 「판독이 얼마나 버티는가」 위에서 정해졌고, 여기

수치는 「20봉 뒤 방향」입니다 — 하나를 다른 하나의 근거로 쓰는 것이 이 기록이 일곱 번

틀린 그 짓입니다.

> 여기서는 재고, 적고, 멈춥니다.

측정 결과는 RSI 설명에 한계와 함께 넣었습니다. 성적표는 이제 열 중 둘입니다.

  • 내부 검증 1770건 · 화면 기준선 244장. versionCode 481.
v3.10.102026-08-02
반대표 봉우리는 두 보호 규칙 사이의 틈이었습니다

기록에 「둘 중 어느 쪽이 얼마나 기여하는지는 가르지 않았다」로 남아 있던 항목입니다.

재기 전에 결과가 아니라 해석을 등록했습니다 — 봉우리가 47봉 직후면 국면이 전부이고,

무관한 자리면 %K 쪽입니다.

계단이었습니다

| 창 | 국면 계산 불가 | 반대표 있음 | 역방향 표(자리당) |

|---|---|---|---|

| 30~46봉 | 100.0% | 50.3% | 0.00 |

| 48봉 | 0.0% | 66.1% ← 최고 | 0.26 |

| 100봉 이상 | 0.0% | 59.5% | 0.16 |

47봉 아래에서 역방향 표가 정확히 0.00이고, 한 칸 넘어가면 반대표가 +15.8%p

뜁니다. 국면이 전부이고 %K 는 기여가 없습니다 — %K 분포는 창과 무관합니다.

그런데 가르는 도중 문서의 결함을 찾았습니다

새 측정이 옛 표와 어긋나서 멈춰 서서 정의를 갈랐더니, 옛 표가 「국면 모름」이라는 **한

이름 아래 두 가지**를 섞고 있었습니다 — 35봉의 「계산 불가」와 50봉 이상의 「경계」입니다.

| 창 | 계산 불가 | 경계 | 스토캐스틱 중립 | 반대표 |

|---|---|---|---|---|

| 35봉 | 100.0% | 0.0% | 30.1% | 50.3% |

| 50봉 | 0.0% | 70.7% | 8.1% | 66.1% |

| 150봉 | 0.0% | 20.6% | 15.2% | 59.5% |

갈라 놓고 보니 세 구간이고, 셋 다 국면입니다.

1. 47봉 아래 — 계산 불가라 극단 표가 전부 보류됩니다

2. 47~55봉 — 국면은 나오는데 대부분 「경계」입니다. 「모르면 말하지 마라」는

계산 불가만 보고, 「추세 안이면 말하지 마라」는 추세라야 걸립니다 — **어느 쪽도

안 걸립니다.** 극단이 마음껏 투표하고 반대표가 가장 높습니다.

3. 그 위 — 「경계」가 줄고 「추세」가 확정되며 추세 안의 극단이 눌립니다

> 봉우리는 두 보호 규칙 사이의 틈입니다.

옛 표에서 끌어낸 설명은 35봉에서만 맞았습니다.

> **두 가지를 한 이름으로 부르면 그 표에서 끌어낸 설명은 절반만 맞고, 절반이 맞기

> 때문에 틀린 절반이 오래 살아남습니다.**

화면은 고치지 않았습니다

이 앱은 이미 「반대표가 나오는 일 자체가 드뭅니다(열에 다섯, 다 자란 자료는 열에 여섯)」

라고 적어 뒀습니다. 촘촘히 재니 50.3%와 59.5% — 정확히 맞습니다.

> 잰 것이 이미 적혀 있는 것과 같으면, 다시 적지 않습니다.

  • 내부 검증 1764건 · 화면 기준선 244장. versionCode 480.
v3.10.92026-08-02
조용히 사라지는 줄을 통째로 훑었습니다. 하나뿐이었습니다

앞 판에서 고친 자리는 우연히 찾은 것이었습니다. 그게 유일한 자리인지 세어 본 적은

없었습니다. 판독 화면의 모든 줄을 훑었습니다.

기준을 먼저 적었습니다 — 안 그러면 「없으면 다 말하자」로 흘러 화면이 안내문으로

덮입니다.

> ① 그 빠짐이 나머지 줄의 뜻을 바꾸면 → 말해야 한다

> ② 그냥 정보 하나가 없는 것이면 → 안 그리는 게 맞다

| 줄 | 언제 빠지나 | 판정 |

|---|---|---|

| 장세 | 47봉 미만 | — 되돌림 표가 함께 꺼집니다(앞 판에서 고침) |

| 무효화(지지·저항) | 판정 쪽에 선이 없음 | — 두 번째 선이 받습니다 |

| 무효화(20일선) | 이미 넘어간 뒤 | ② — 다른 경고가 대신 말합니다 |

| 기간 정렬 · 거래량 확증 | 자료 없음 · 조용한 구간 | ② |

| 지지·저항 · 피보나치 · 지표 차트 | 계산 불가 | ② — 없는 것이 곧 보입니다 |

애매한 하나는 재서 정했습니다

무효화 줄이 안 나오는 경우가 3.7%였습니다. 「드물다」로 넘기기엔 애매해서, **두 번째

선이 대신 나오는지**를 함께 셌습니다.

| 창 | 비중립 판정 | 무효화 없음 | 지지·저항 없음 | 둘 다 없음 |

|---|---|---|---|---|

| 47봉 | 91.6% | 7.2% | 0.0% | 0.1% |

| 100봉 | 89.4% | 4.5% | 0.0% | 0.1% |

| 150봉 | 89.6% | 3.7% | 0.0% | 0.0% |

지지·저항이 아예 없는 일은 한 번도 없었고, 지지·저항 쪽 선이 안 나오는 3.7%는

20일선이 받습니다. 사용자가 무효화 기준을 아예 못 보는 자리는 사실상 없습니다.

코드 주석이 이미 그 원리를 적고 있었습니다 — 「더 나은 선을 고르려다 줄 자체를 잃으면

그건 고친 것이 아니다」. 설계는 이미 맞았고, 이번에 처음 세어 확인했습니다. 두 선이

서로를 받친다는 것은 깨져도 화면이 조용해질 뿐이라, 직접 세는 검사를 걸었습니다.

그래서 이 판은 아무것도 안 고쳤습니다

> 훑고 나서 아무것도 안 고치는 것도 결과입니다. 세어 보지 않으면 「하나 더 있겠지」와

> 「이제 없다」를 가를 수 없습니다.

  • 내부 검증 1759건 · 화면 기준선 244장. versionCode 479.
v3.10.82026-08-02
「장세」 줄이 조용히 사라지던 자리를 고쳤습니다

앞 판에서 「47봉이 안 되면 국면이 안 나오고, 그러면 RSI·스토캐스틱·MFI 의 과매수·과매도

표가 통째로 꺼진다」를 알아냈습니다. 그런데 그 판은 문서와 설명 글만 고쳤습니다.

정작 그 일이 벌어지는 순간에 화면이 무엇을 하는지는 보지 않았습니다.

보기 전에 판정 기준을 적었습니다.

> ① 얇은 자료 경고가 47봉과 다른 문턱에서 뜨면 → 엉뚱한 자리에서 경고를 받는다

> ② 국면 줄이 조용히 사라지기만 하면 → 왜 없는지 알 길이 없다

둘 다 걸렸습니다

| | 수 | 무엇의 문턱인가 |

|---|---|---|

| 얇은 자료 경고 | 56봉 | 값이 아직 여물지 않았다 |

| 국면 | 47봉 | 국면이 아예 안 나온다 — 되돌림 표가 꺼진다 |

그리고 국면이 없으면 그 줄이 통째로 안 그려지고 있었습니다. 사용자는 「장세」 항목이

원래 없는 줄 압니다.

조용히 빠지는 것이 왜 특히 나쁜가

국면이 없다는 것은 「정보 하나가 빠졌다」가 아니라 「반대할 수 있는 표가 꺼졌다」입니다.

그 자리에서 이동평균과 스토캐스틱의 의견 일치가 58.6% → 93.6%로 뜁니다. 화면은 더

한목소리로 보이는데, 그렇게 보이는 이유가 화면 어디에도 없었습니다.

> 없는 것을 안 그리면 「없다」가 아니라 「원래 그런 것」으로 읽힙니다.

고친 것과 안 고친 것

②를 고쳤습니다 — 국면이 없으면 그 자리에 이렇게 나옵니다.

> 장세 · 판정할 수 없습니다 · ADX 에 47봉이 필요합니다 — 이때는 과매수·과매도 표가

> 나오지 않아 지표들이 실제보다 한목소리로 보입니다.

다섯 언어 전부에 넣고, 학습 화면 프리뷰에 네 번째 모양으로 세워 기준선을 박았습니다.

①은 고치지 않았습니다. 얇은 자료 경고(56봉 미만)는 47봉 아래를 포함하므로 놓치는

자리가 없고, 문턱을 47로 옮기면 「여물기」 경고와 「구조」 경고가 뒤섞입니다. 둘은 다른

것을 말합니다 — 대신 국면 줄이 자기 문턱을 직접 말하게 했습니다.

47은 새 수가 아니었습니다

코드 주석이 이미 「47봉은 국면이 처음 나오는 지점」이라고 적고 있었습니다. 앞 판의 측정은

그 수를 독립적으로 재현한 것입니다. 다만 그때까지 그 수는 주석 안에만 있었습니다 —

상수로 꺼내고 화면이 쓰게 했습니다.

> **문서에 적힌 수와 화면이 쓰는 수는 다릅니다. 적어 둔 것만으로는 사용자에게 닿지

> 않습니다.**

  • 내부 검증 1757건 · 화면 기준선 244장. versionCode 478.
v3.10.72026-08-02
얇은 자료에서 왜 한목소리로 보이는지, 답이 섰습니다

이 앱의 기록에서 가장 오래 열려 있던 물음입니다. 설명 둘이 이미 반증돼 있었습니다 —

「평활 지표의 초기값 탓」도, 「되돌아보기 기간이 겹쳐서」도 아니었습니다.

예측 ⑬ — 틀렸습니다

「얇은 창에서는 계산이 안 되는 지표가 있어 투표하는 지표 수가 준다」고 봤는데, 여덟이

전부 나오고 자리마다 투표 수도 5.78 대 5.85로 거의 같았습니다. 구성 탓이 아닙니다.

짝마다 따로 보니 한 지표에 몰려 있었습니다

| 짝 | 창 35봉 | 창 150봉 | 차이 |

|---|---|---|---|

| 이동평균 – 스토캐스틱 | 93.6% | 58.6% | +35.0 |

| 스퀴즈 – 스토캐스틱 | 86.9% | 63.8% | +23.1 |

| RSI – 스토캐스틱 | 79.8% | 65.1% | +14.7 |

| *스토캐스틱 없는 21짝 평균* | | | *≈ −0.2* |

28짝 평균은 +3.2%p로 약합니다 — 평균이 이야기를 가리고 있었습니다.

예측 ⑭ — 맞았고, 이유가 코드에 있었습니다

%K 값 자체는 창과 무관합니다(다섯 창에서 평균 49.2 · 극단 30.0%로 전부 같음).

달라지는 것은 판정 규칙입니다. 이 앱은 「국면을 모르면 극단값으로 되돌림을 점치지

않는다」는 규칙을 갖고 있습니다.

| 창 | 국면 모름 | 되돌림 표가 꺼진 비율 | 역방향 표 | 위치 표 |

|---|---|---|---|---|

| 35봉 | 100.0% | 30.0% | 0.0% | 69.9% |

| 50봉 | 0.0% | 0.0% | 21.9% | 69.9% |

| 150봉 | 0.0% | 0.0% | 14.9% | 69.9% |

35봉에서는 ADX가 아예 계산되지 않아 국면이 100% 「모름」입니다. 그래서 극단 표가

정확히 %K 극단 비율(30.0%)만큼 꺼지고, 남는 것은 위치 표뿐입니다. 위치는 「최근 흐름이

위였나」라서 이동평균과 같은 말이고 — 그래서 둘의 일치가 58.6%에서 93.6%로 뜁니다.

문턱은 47봉입니다

30~46봉에서 국면 모름 100.0%, 47봉부터 0.0%. 칼같이 갈립니다.

> **얇은 자료에서 한목소리로 보이는 것은 시장이 한목소리라서가 아니라, 되돌림을 말할 수

> 있는 표가 꺼져 있기 때문입니다.**

이 앱은 이미 「한목소리로 보이는 것이 근거가 두터워서가 아닐 수 있습니다」라고 적어

뒀습니다. 이제 왜인지를 적을 수 있어 화면에 넣었습니다.

성적표가 갈렸습니다

⑬은 코드 근거 예측 중 처음 빗나간 것입니다. 그런데 ⑬과 ⑭ 둘 다 「코드 근거」인데

하나만 맞았습니다. 차이는 이렇습니다 — ⑬의 「지표별 최소 봉 수」는 읽지 않고 짐작한

코드 사실이었고, ⑭는 실제로 갈래를 열어 읽은 것입니다.

> 코드에 있다는 것과 코드를 읽었다는 것은 다릅니다.

성적표: 코드 근거 5/6 · 같은 층위 연장 1/1 · 「왜 그런가」와 「규칙 옮기기」 0/7.

  • 내부 검증 1752건 · 화면 기준선 244장. versionCode 477.
v3.10.62026-08-02
60봉 골은 이 앱이 만든 것이 아니었습니다

앞 판에서 「60봉 근처에서 방향 격차가 가장 벌어진다」로 끝내면서 왜인지는 모른다

적었습니다. 짐작이 하나 있었지만(「150봉 창에 14~26봉 되돌아보기가 얹혀 시간자가

생긴다」) 성적표대로 적지 않았습니다.

이번엔 짐작 대신 코드를 조작해서 갈랐습니다. 그리고 재기 전에 **결과가 아니라

해석을 미리 등록**했습니다 — 기제 짐작이 일곱 번 다 틀린 자리에서 여덟 번째 짐작을

적는 것은 성적표를 무시하는 일이니까요.

> ① 창을 100·150·250봉으로 바꿔도 골이 60봉에 그대로면 → 앱의 구성물이 아니다

> ② 골이 창을 따라 움직이면 → 앱이 만든 시간자다

> 대조군으로 앱과 무관한 단순 규칙(20봉선 위/아래)도 함께 잽니다.

①이었습니다

| 규칙 \ 지평 | 5봉 | 20봉 | 40봉 | 60봉 | 90봉 | 120봉 | 골 |

|---|---|---|---|---|---|---|---|

| 앱 판정 창 100봉 | −2.92 | −2.95 | −5.60 | −6.95 | −4.43 | −3.68 | 60봉 |

| 앱 판정 창 150봉 | −2.90 | −2.94 | −5.65 | −6.97 | −4.43 | −3.69 | 60봉 |

| 앱 판정 창 250봉 | −2.99 | −2.81 | −5.58 | −6.98 | −4.28 | −3.54 | 60봉 |

| 대조: 20봉선 | −2.02 | −1.90 | −3.91 | −4.80 | −3.05 | −2.00 | 60봉 |

창을 2.5배로 늘려도 골이 60봉에 못 박혀 있고, **앱과 아무 상관 없는 20봉선 규칙도

60봉에서 골**입니다.

> 골은 이 앱이 만든 것이 아니라 표본의 성질입니다. 짐작은 아니었습니다.

> 다만 「왜 60봉인가」는 여전히 모릅니다.

왜 창을 바꿔도 안 변하는가 — 판정 자체가 안 변합니다

| | 같은 칸(0~4) | 같은 방향 |

|---|---|---|

| 창 150봉 대 250봉 | 100.0% | 100.0% |

| 창 150봉 대 100봉 | 99.5% | 99.8% |

250봉을 줘도 판정이 한 자리도 안 바뀝니다(10,593자리). 지표 되돌아보기가 전부 26봉

이하이니 이치가 닿습니다 — 150봉 너머는 판정에 닿지 않습니다. (그렇다고 창을 줄이자는

뜻은 아닙니다. 차트가 그 봉을 함께 씁니다.)

그리고 앱 판정은 단순 규칙의 「더 센 판」입니다

모든 지평에서 앱 판정이 20봉선 규칙보다 더 아래입니다(60봉에서 −6.97 대 −4.80).

강한 판정은 값이 이미 한쪽으로 간 뒤에 나오고, 여덟이 동의할수록 더 뒤에 있습니다.

화면은 고치지 않았습니다

이번에 지운 것은 만든 사람 쪽의 의심이지 사용자가 알아야 할 내용이 바뀐 것이

아닙니다. 화면은 이미 「어느 지평에서도 기준선을 못 넘는다」를 말하고 있습니다.

재면 무조건 화면에 붙이는 것이 아니라, 사용자의 이해가 바뀔 때만 붙입니다.

  • 내부 검증 1746건 · 화면 기준선 244장. versionCode 476.
v3.10.52026-08-02
4시간봉으로 다시 쟀습니다. 사다리가 +8.26 대 +8.33봉입니다

이 앱이 지금까지 낸 결론은 전부 일봉 위에서 나왔습니다. 그것이 가장 큰 미검증

전제였습니다. 4시간봉 20종을 4,000봉씩(총 80,000봉) 새로 받아, 일봉을 대조군으로 같은

측정을 통째로 다시 돌렸습니다.

예측 ⑪ 구조에서 나온 셋은 눈금을 바꿔도 그대로 선다

예측 ⑫ 방향이 기준선 아래라는 것은 경험적이라 무너질 수 있다

| | 일봉(대조) | 4시간봉 |

|---|---|---|

| 같은 원자료를 읽는 짝이 더 동의 | +5.95%p ± 0.28 | +5.62%p ± 0.34 |

| 「점수」→ 동의 차이 고정 후 | +4.48 → −0.02봉 | +5.11 → −0.03봉 |

| 국면 → 신뢰도 고정 후 | +3.66 → +0.47봉 | +3.24 → +0.04봉 |

| 신뢰도 사다리(높음−낮음) | +8.26봉 ± 0.32 | +8.33봉 ± 0.38 |

| 방향 · 판정 전체 | −2.79 ± 0.53 | −4.71 ± 0.66 |

| 방향 · 신뢰도 높음 | −5.45 ± 0.90 | −7.19 ± 1.09 |

⑪ 맞음 — 구조 셋이 그대로 서고, 점수와 국면은 4시간봉에서 완전히 흡수됩니다.

⑫ 틀림 — 방향도 그대로 서고, 오히려 더 낮습니다.

사다리가 거의 같은 수입니다

+8.26봉 대 +8.33봉. 봉의 길이를 여섯 배로 바꿔도 소수점 첫째 자리에서 갈립니다.

앞서 여섯 기간(15분~주)에서 +8.3 ~ +9.2봉이라 쟀던 것과도 맞습니다.

> 신뢰도는 시간의 눈금이 아니라 「봉」의 눈금입니다.

화면에 「이 눈금은 시간이 아니라 봉으로 읽으십시오」라고 적어 둔 것이 여기서 다시

확인됩니다.

⑫가 가르친 것 — 세 번째 같은 실수입니다

⑫는 앞 판의 예측 성적표에서 뽑은 것이었습니다. 그런데 성적표는 **「예측이 어디서 나와야

맞는가」에 대한 규칙이고, ⑫는 그것을 「어떤 결과가 다른 눈금으로 넘어가는가」**라는

다른 물음에 갖다 쓴 것이었습니다. 그 물음에서는 구조 결과와 경험 결과가 똑같이 잘

넘어갔습니다.

앞 판이 정확히 이 실수를 경고했는데(⑩), 이번엔 이 앱이 스스로 세운 규칙으로 같은

실수를 했습니다.

> 규칙이 맞았다는 것은 그 규칙을 다른 물음에 써도 된다는 뜻이 아닙니다.

성적표: 코드 근거 4/4 · 같은 층위 연장 1/1 · 「왜 그런가」와 「규칙 옮기기」 0/7.

새 자료로 잴 때는 옛 자료로 옛 수치가 재현되는지를 함께 돌렸습니다. 그것이 없으면

「4시간봉이 다르다」와 「잣대가 고장 났다」를 가를 수 없습니다.

  • 내부 검증 1741건 · 화면 기준선 244장. versionCode 475.
v3.10.42026-08-02
여덟 표는 세 종류의 원자료만 봅니다

앞 판의 성적표가 말한 것은 분명했습니다 — **코드에서 확인할 수 있는 것에서 예측을

뽑으면 맞고, 「왜 그런가」 이야기에서 뽑으면 틀린다.** 그래서 이번엔 코드부터 봤습니다.

이 앱의 중심은 「몇이 동의하는가」인데, 여덟 표가 몇 개의 원자료에서 나오는지는 한

번도 세어 본 적이 없었습니다. 각 지표가 실제로 읽는 계열을 세면 이렇습니다.

| 묶음 | 지표 | 종가 | 고가·저가 | 거래량 |

|---|---|---|---|---|

| 종가만 | 이동평균 · RSI · MACD | ✓ | | |

| 종가 + 고저 | 스토캐스틱 · 스퀴즈 · ADX | ✓ | ✓ | |

| 거래량까지 | OBV · MFI | ✓ | (MFI만) | ✓ |

여덟이 전부 종가를 읽습니다. 다른 것은 무엇을 *더* 보느냐뿐입니다.

예측 ⑨ — 맞았습니다

같은 묶음의 지표 짝이 더 자주 같은 편에 섭니다.

| | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 같은 묶음 짝 | 80.2% | 77.9% |

| 다른 묶음 짝 | 74.3% | 69.6% |

| 짝지은 차이 | +5.93%p ± 0.28 | +8.28%p ± 0.47 |

앞서 잰 「같은 평활 방식끼리 더 같이 간다」는 계산 방식의 묶음이었습니다. 이것은

입력의 묶음이고, 다른 자름입니다.

예측 ⑩ — 틀렸습니다

「같은 동의 수라도 묶음이 갈린 동의가 더 오래 간다」를 재 봤습니다.

| 동의 수 | 묶음 2개 | 묶음 3개 | 짝지은 차이 |

|---|---|---|---|

| 3개 | 6.57봉 | 5.85봉 | −0.73 ± 0.55 |

| 4개 | 9.78봉 | 8.78봉 | −1.01 ± 0.70 |

| 5개 | 12.40봉 | 12.74봉 | +0.34 ± 1.01 |

부호가 오락가락하고 어느 칸도 서지 않습니다. 표들이 서로 독립이 아니라는 것은

사실이지만, 그렇다고 「묶음 수」를 세는 편이 「개수」를 세는 것보다 낫지도 않습니다.

구조를 더 영리하게 만들려다 제자리로 온 일곱째 자리입니다.

그리고 ⑩이 성적표의 범주를 하나 갈랐습니다

⑩을 적을 때는 그것을 ⑤와 같은 「이미 잰 것」 범주로 여겼습니다 — 「서로 다른 두 가지」

규칙은 실제로 예측을 맞힌 규칙이니까요. 그런데 그 규칙이 맞은 자리는 관문 층위였고,

⑩은 그것을 지표 표 층위로 옮긴 것이었습니다. 옮기니 서지 않았습니다.

> 규칙을 다른 층위로 옮기는 것은 「이미 잰 것」이 아니라 「짐작」입니다.

성적표가 이렇게 갱신됩니다 — **코드에서 확인할 수 있었던 것 3/3, 이미 잰 것을 같은

층위에서 곧장 늘린 것 1/1, 「왜 그런가」 이야기 0/6.**

두 가지를 함께 화면(「강세 N개 · 약세 M개」 설명)에 넣었습니다. 사실만 말하고 한계를

빼면 「묶음을 세라」로 읽히므로, 검사가 둘 다 있는지 지킵니다.

그러다 빈틈을 또 하나 찾았습니다

문구를 늘렸는데 화면 기준선이 한 장도 안 바뀌었습니다. 그 설명을 담던 유일한

프리뷰가 높이 없이 선언돼 있어 잘린 상태였고, 뒤에 무엇을 더해도 픽셀이 안 바뀌는

상태였습니다. 게이트 통과가 또 「화면이 안 깨졌다」가 아니라 「화면을 안 봤다」였습니다.

설명 글마다 전용 프리뷰(한국어 셋 + 영어 큰 글씨 좁은 폭 하나)를 붙이고, 높이 없이

선언하면 실패하도록 검사를 걸었습니다. 같은 실패가 이 저장소에 이미 두 번 적혀 있습니다

담기지 않은 것은 지켜지지 않습니다.

  • 내부 검증 1736건 · 화면 기준선 244장. versionCode 474.
v3.10.32026-08-02
지평을 바꿔도 안 나옵니다. 그리고 예측 성적표를 냈습니다

앞 판에서 「값이 곧게 온 정도만은 방향을 맞힐 수 있다」는 예측이 틀렸다고 적었는데,

빈틈이 있었습니다. 그 기제(시계열 모멘텀)가 말하는 지평은 20봉이 아니라 60~250봉

입니다. 주장하는 자리에서 재지 않고 없다고 적은 셈이라, 다시 쟀습니다.

예측 ⑦ 곧게 온 정도는 60~120봉에서는 기준선을 넘을 수 있다

예측 ⑧ 신뢰도가 가장 낮다는 순서는 지평이 길어질수록 옅어진다

둘 다 틀렸습니다

주요 20종 · 기준선 대비 · 토막은 지평의 세 배(최소 180봉)

| 지평 | 판정 전체 | 곧게 온 정도 | 신뢰도 | 국면 | \|점수\| |

|---|---|---|---|---|---|

| 5봉 | −2.37 | −4.53 | −6.21 | −4.31 | −3.19 |

| 20봉 | −2.81 | −3.52 | −4.99 | −4.32 | −3.81 |

| 60봉 | −6.68 | −8.75 | −11.77 | −10.74 | −9.14 |

| 120봉 | −3.81 | −5.28 | −7.84 | −7.27 | −5.89 |

| 250봉 | −2.47 | −4.45 | −5.15 | −4.66 | −3.50 |

⑦ 틀림 — 곧게 온 정도는 다섯 지평 전부에서 기준선 아래이고, 어디서도 판정 전체보다

낫지 않습니다. ⑧ 틀림 — 신뢰도는 다섯 지평 전부에서 가장 낮습니다. 옅어지기는커녕

60봉에서 가장 벌어집니다.

60봉 근처에서 가장 벌어지고 다시 좁아지는 모양이 보입니다. 왜인지는 모릅니다

짐작이 하나 있지만 안 쟀으므로 적지 않습니다. 그리고 **뒤집으면 돈이 된다는 뜻이

아닙니다.** 이 앱은 매매를 권하지 않습니다.

예측이 여덟 개 쌓여서, 성적표를 냈습니다

| | 무엇에 근거했나 | 결과 |

|---|---|---|

| ① 신뢰도 낮음 + 교차 반대 | 코드에서 둘이 서로를 참조하지 않음 | 맞음 |

| ② 신뢰도 낮음 + 지표 충돌 | 코드에 「충돌이면 낮음」이 적혀 있음 | 맞음 |

| ③ 신뢰도와 경로 모양은 다르다 | 기제 이야기 | 틀림 |

| ④ 국면과 경로 모양은 같다 | 기제 이야기 | 틀림 |

| ⑤ 방향은 어떤 조합으로도 안 된다 | 이미 잰 것 여럿 | 맞음 |

| ⑥ 경로 모양만은 방향을 맞힌다 | 학계 기제 | 틀림 |

| ⑦ 그 기제의 지평에서는 나온다 | 같은 기제 | 틀림 |

| ⑧ 신뢰도 순서는 지평이 길수록 옅어진다 | 이 앱이 세운 기제 | 틀림 |

> **코드에서 확인할 수 있었던 것과 이미 잰 것에서 나온 예측은 셋 다 맞았고(3/3),

> 「왜 그런가」 이야기에서 나온 예측은 다섯 다 틀렸습니다(0/5).**

⑧이 가장 아픕니다 — 바깥에서 빌려 온 이야기가 아니라 이 앱이 스스로 재서 세운 기제

에서 뽑은 예측인데도 틀렸습니다. 기제가 맞아도 **그 기제의 다음 수는 따라 나오지

않습니다.**

> 기제 설명은 이미 잰 것을 묶는 데는 쓰고, 아직 안 잰 것을 정하는 데는 쓰지 않습니다.

성적표를 남기는 이유도 같습니다. 맞은 예측만 적으면 이 기록은 실제보다 잘 맞히는 것처럼

읽히고, 다음에 짐작을 근거로 쓰게 됩니다.

  • 내부 검증 1731건 · 화면 기준선 240장. versionCode 473.
v3.10.22026-08-02
겹쳐도 방향은 안 맞습니다 — 열세 조합을 전부 재 봤습니다

앞 두 판은 이 앱이 잘하는 것을 쟀습니다(판독 수명 · 알림 헛울림). 셋째는 이 앱이

못한다고 선언한 것입니다 — 방향. 그 선언은 그동안 「판정 전체」와 「신뢰도 칸」으로만

확인돼 있었지, 잣대별로도 조합으로도 확인된 적이 없었습니다.

재기 전에 예측을 적었습니다.

예측 ⑤ 어떤 조합도 기준선을 못 넘는다. 수명에서 가장 센 신뢰도는 방향에서 0 근처일 것

예측 ⑥ 다만 「값이 곧게 온 정도」는 다를 수 있다 — 지표 요약이 아니라 값의 실제

움직임이고, 학계에서 근거가 있는 몇 안 되는 것에 가장 가깝다

결과 — 하나도 못 넘습니다

같은 코인·같은 180봉 토막에서 아무 봉이나 골랐을 때의 확률을 뺀 값입니다

(주요 20종 49,175건 · 60종 22,016건).

| 그 잣대의 「좋은 쪽」 | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 신뢰도 | −5.47 ± 0.80 | −7.68 ± 1.26 |

| 국면(ADX) | −4.73 ± 0.62 | −6.33 ± 0.89 |

| \|점수\| | −4.34 ± 0.68 | −5.88 ± 0.74 |

| 동의 차이 | −4.09 ± 0.62 | −5.57 ± 0.65 |

| 값이 곧게 온 정도 | −3.66 ± 0.64 | −4.72 ± 0.75 |

| 응축 없음 | −3.13 ± 0.48 | −5.21 ± 0.56 |

| *(판정 전체)* | *−3.03 ± 0.47* | *−4.50 ± 0.47* |

⑤가 맞았습니다 — 「0 근처」가 아니라 여섯 개가 전부 기준선 아래입니다.

⑥은 틀렸습니다 — 곧게 온 정도도 −3.66 · −4.72 입니다. 이 지평(20봉)에서는 안 나옵니다.

겹치면 더 나빠집니다

셋씩 겹친 13가지를 전부 훑었습니다(가장 좋은 것만 고르면 우연이 섞이므로 훑은 칸

수를 함께 적습니다). 주요 20종에서 가장 높은 칸이 −4.33, 가장 낮은 칸이 −5.47 —

가장 좋은 조합도 아무 판정이나 쓰는 것(−3.03)보다 나쁩니다.

그리고 순서가 두 자료에서 같습니다

앞 넷(신뢰도 → 국면 → 점수 → 동의 차이)의 자리가 두 자료에서 정확히 같습니다. 그리고

그 맨 앞이 신뢰도입니다 — 판독 수명을 가장 강하게 가르던 바로 그 값입니다.

> 「이 판독은 오래 간다」고 가장 강하게 말해 주는 값이 방향에서는 가장 못합니다.

강한 판정은 값이 이미 한쪽으로 간 뒤에 나옵니다. 여럿이 동의할수록 그 움직임은 더 뒤에

있습니다. 버팀과 앞일은 같은 방향이 아니라 반대 방향입니다.

(완전한 뒤집힘은 아닙니다 — 국면은 수명에서 다섯째인데 방향에서는 둘째로 낮습니다.

맨 앞이 같다는 것과 전부가 기준선 아래라는 것만 재서 말할 수 있습니다.)

이 내용을 신뢰도 설명에 넣었습니다. 이 앱이 하는 가장 중요한 정직한 말이고, 이제

「판정 전체」가 아니라 여섯 잣대와 열세 조합 전부로 뒷받침됩니다.

  • 내부 검증 1726건 · 화면 기준선 240장. versionCode 472.
v3.10.12026-08-02
잣대를 바꾸니 답이 바뀌었습니다

앞 판은 「'다른 종류인가'는 잣대에 따라 달라진다」로 맺었는데, 잣대를 하나만 쟀습니다.

그래서 같은 행렬을 알림 잣대 위에서 다시 돌렸습니다 — 대상은 극단 판정으로 넘어가는

자리(주요 20종 5,746건 · 60종 2,657건), 칸은 5봉 내 되돌아감의 짝지은 차이(%p)입니다.

| 재는 잣대 \ 고정 | 홑 | 곧게 온 | 신뢰도 | 동의 차이 | \|점수\| | 국면 | 응축 |

|---|---|---|---|---|---|---|---|

| 곧게 온 정도 | −11.1 ± 1.3 | — | −4.7 | −7.0 | −7.2 | −8.1 | −10.0 |

| 신뢰도 | −53.2 ± 3.2 | −31.8 | — | - | - | - | −54.2 |

| 동의 차이 | −20.9 ± 1.1 | −19.5 | −13.5 | — | −15.2 | −18.5 | −20.6 |

| \|점수\| | −18.5 ± 1.2 | −15.8 | −11.1 | −4.4 | — | −19.2 | −17.3 |

| 국면(ADX) | −23.8 ± 1.6 | −20.7 | −9.6 | −14.6 | −16.4 | — | −22.5 |

| 응축 없음 | −10.6 ± 1.1 | −8.2 | −2.8 | −7.7 | −9.9 | −7.6 | — |

두 물음, 두 답

| 국면이 신뢰도에 흡수되는 정도 | 판독 수명 | 알림 헛울림 |

|---|---|---|

| 홑 | +3.67 · +3.84봉 | −23.8 · −29.5%p |

| 신뢰도 고정 후 | +0.48 · +0.13 | −9.6 · −13.9 |

| 남는 비율 | 13% · 3% | 40% · 47% |

같은 두 잣대가 한 물음에서는 한 가지이고, 다른 물음에서는 두 가지입니다. 앞 판의

문장이 추측이 아니라 수치로 섰습니다.

그리고 이 앱이 이미 맞게 하고 있었습니다

알림은 신뢰도와 국면을 둘 다 관문으로 씁니다. 그 잣대 위에서 정확히 그 둘이 서로를

못 지웁니다. 그 조합 자체를 재서 확인한 것은 이번이 처음입니다 — 그전까지는 각각이

따로 좋다는 것만 알았습니다.

반대로 판독 수명을 말하는 화면에서 둘을 「두 개의 근거」로 읽는 것은 겹쳐 세는 것입니다.

앞 판의 문장을 하나 고쳤습니다

국면 설명에 「극단 판정으로 넘어가는 자리의 헛울림은 점수나 신뢰도로는 못 거르고

국면으로만 걸러집니다」라고 적었는데, 재 보니 신뢰도도 크게 가릅니다(−53.2%p).

정확한 문장으로 바꿨습니다 — 「신뢰도가 같은 것끼리만 견줘도 추세장과 횡보장의 차이가

23.8%p 중 9.6%p 남습니다」.

두 잣대에서 함께 확인된 것
  • 「점수」는 「동의 차이」와 사실상 같습니다 — +0.02봉 · −4.4%p
  • 응축은 대체로 신뢰도 안에 있습니다 — 27% · 26%만 남습니다
  • 신뢰도는 무엇으로도 잘 안 지워집니다 두 물음에서 같은 답이 나온 것들은 잣대와 무관한 구조로 보아도 됩니다. 갈린 것은 국면 하나이고, 그 하나가 이 앱에서 유일하게 「묶여서 이긴」 관문입니다.
  • 내부 검증 1721건 · 화면 기준선 240장. versionCode 471.
v3.10.02026-08-02
이 앱은 여섯 가지를 재는 줄 알았는데, 한 가지였습니다

앞 판에서 「하나를 고정하고 나머지가 남는지 본다」가 짐작보다 낫다는 것을 확인했습니다.

이번엔 그것을 모든 짝에 돌렸습니다.

세로가 재는 잣대, 가로가 고정한 잣대, 칸은 남은 판독 수명 차이(봉)입니다. 고정 칸은

전부 셋으로 맞췄습니다 — 칸 수가 다르면 흡수량이 기계적으로 달라집니다.

주요 20종 · 관측 9,890건

| 재는 잣대 \ 고정 | 홑 | 곧게 온 | 신뢰도 | 동의 차이 | \|점수\| | 국면 | 응축 |

|---|---|---|---|---|---|---|---|

| 곧게 온 정도 | +4.20 | — | +2.22 | +2.16 | +2.72 | +3.40 | +3.35 |

| 신뢰도 | +8.28 | +6.80 | — | - | - | +9.28 | +8.18 |

| 동의 차이 | +5.20 | +3.74 | +1.64 | — | +3.00 | +4.29 | +4.71 |

| \|점수\| | +4.49 | +3.06 | +1.30 | +0.02 | — | +3.80 | +3.72 |

| 국면(ADX) | +3.67 | +2.31 | +0.48 | +1.96 | +2.41 | — | +3.24 |

| 응축 없음 | +2.83 | +1.49 | +0.77 | +1.55 | +1.78 | +2.16 | — |

이중상장 60종에서도 같습니다 — 신뢰도로 고정하면 국면이 +3.84 → +0.13이 되고,

신뢰도 홑 +9.15는 곧게 온 정도로 고정해도 +9.11입니다.

셋이 읽힙니다

① 겹침이 대칭이 아닙니다. 신뢰도는 무엇으로 고정해도 81~100% 남고, 신뢰도로

고정하면 나머지 다섯이 3~53%로 줍니다. 「같은 것」이 아니라 포함입니다.

② 「점수」와 「동의 차이」는 사실상 같은 것입니다 — 동의 차이를 고정하면 점수의

차이가 +0.02봉이 됩니다. 점수는 표의 가중합이니 이치가 닿습니다.

③ 국면이 가장 완전히 흡수됩니다 — +3.67 → +0.48. 앞 판에 「국면만이 따로 논다」고

적었는데 정확히 뒤집혔습니다.

이유가 코드에 있었습니다. ADX 계열을 한 번 계산해 두 곳에 씁니다 — 국면을 정하고,

같은 값으로 여덟 표 중 한 표를 던집니다. 파일끼리는 서로를 참조하지 않는데 **입력이

같습니다. 그 사실을 지키던 검사는 파일 경계만 보고 통과시키고 있었습니다.** 이름을

고치고, 무엇까지만 지키는지 적어 뒀습니다.

그런데 알림에서는 국면이 여전히 일합니다 — 모순이 아닙니다

v3.9.7에서 국면 관문은 점수 문턱이 못 하는 일을 했습니다(헛울림 18.8% 대 27~29%).

잣대가 다릅니다 — 저기는 「극단 판정으로 넘어간 뒤 5봉 안에 되돌아가는가」이고,

여기는 「모든 판정이 며칠 가는가」입니다.

> **「다른 종류인가」는 두 잣대만의 성질이 아닙니다. 무엇을 재려 하는가까지 셋의

> 관계입니다.**

「추세장 + 높은 신뢰도」를 두 개의 근거로 읽지 말라는 문장을 국면 설명에 넣었습니다 —

알림에서는 이야기가 다르다는 단서와 함께.

그래서 몇 가지인가

판독 수명에 관한 한 사실상 한 축입니다 — 「지표들이 얼마나 갈리지 않는가」. 화면이

이름을 여섯으로 나눠 부르지만(판정·신뢰도·동의 수·국면·응축·경로 모양) 재 보면 하나의

축과 그 부분들입니다.

> 이름의 개수는 잣대의 개수가 아닙니다.

그리고 고치다가 빈틈을 하나 찾았습니다

국면 설명을 고쳤는데 화면 기준선이 한 장도 안 바뀌었습니다. 확인해 보니 학습 글이

뜨는 화면을 그리는 프리뷰가 하나도 없었습니다. 게이트 통과가 「화면이 안 깨졌다」가

아니라 「화면을 안 봤다」였습니다. 프리뷰 둘(한국어 · 영어 큰 글씨 좁은 폭)을 붙이고,

다시 비면 실패하도록 검사를 걸었습니다.

  • 내부 검증 1717건 · 화면 기준선 240장. versionCode 470.
v3.9.92026-08-02
「몇이 동의하는가」는 사실 「값이 얼마나 곧게 왔는가」였습니다

앞 판에서 규칙 하나가 예측을 맞히는 것을 확인하고, 「이제 재기 전에 거르는 데 쓴다」

적었습니다. 바로 다음 판에 그 문장이 잡혔습니다.

이번엔 두 짝을 골라 예측을 먼저 적었습니다.

예측 ③ 신뢰도(투표 수)와 곧게 간 정도(경로 모양)는 다른 종류 → 신뢰도를

고정해도 차이가 남는다

예측 ④ 국면(ADX)과 곧게 간 정도는 같은 종류 → 국면을 고정하면 차이가 준다

둘 다 거꾸로 나왔습니다

| | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 곧게 간 정도만으로 (기준) | +4.20봉 ± 0.24 | +4.25봉 ± 0.43 |

| 신뢰도를 같은 칸으로 묶고 | +1.92 ± 0.25 | +1.28 ± 0.39 |

| 국면을 같은 칸으로 묶고 | +3.05 ± 0.29 | +2.58 ± 0.41 |

신뢰도 「높음」 칸만 보면 60종에서 −0.13봉 — 아예 사라집니다.

이치가 닿습니다. 여러 지표가 같은 방향에 투표하려면 값이 곧게 와야 합니다. 그러니

「몇이 동의하는가」는 「얼마나 곧게 왔는가」를 지표로 세어 재는 것에 가깝습니다.

반대로 ADX의 추세/횡보 이분법은 거칠어서, 추세 칸 안에서도 +3.87봉이 갈립니다.

> 강한 판정은 값이 이미 한쪽으로 간 뒤에 나옵니다.

> 그리고 높은 신뢰도는 값이 이미 「곧게」 간 뒤에 나옵니다.

이 앱의 점수표는 이름을 셋(판정·신뢰도·동의 수)으로 나눠 붙였지만, 재 보면 **대체로

같은 것 — 값이 걸어온 모양 — 을 여러 번 세고 있습니다.** 국면만이 그와 따로 놉니다.

이 사실을 「강세 N개 · 약세 M개」 설명에 적었습니다.

짐작은 틀렸지만, 짐작 대신 쓴 측정은 맞혔습니다

국면을 고정해도 차이가 남았으니 둘은 다른 종류이고, 다른 종류라면 알림 관문에서

묶여야 합니다. 앱의 실제 발화 조건 그대로 두고 관문만 갈아 끼웠습니다 — 되돌아감이

24.8% → 19.5%로 내려갔습니다(코인 단위 짝지어 −5.49%p ± 1.15). 맞았습니다.

그래서 규칙의 쓸모를 좁혀 적었습니다:

  • 잰 뒤에 「왜 올랐나」를 설명 → 됩니다
  • 코드에서 한쪽이 다른쪽을 참조하는지로 미리 판정 → 됩니다
  • 측정 수준의 독립을 짐작으로 판정 → 안 됩니다(네 번 짐작해 네 번 틀렸습니다) > 코드가 서로를 모른다는 것은 두 잣대가 다른 것을 잰다는 뜻이 아닙니다. 다만 짐작하지 않고 재는 방법이 있습니다 — 하나를 고정하고 나머지가 남는지 봅니다.
그럼에도 그 관문은 넣지 않았습니다

v3.9.6에서 데인 자리입니다 — 덜 울려서 좋아 보이는 것일 수 있습니다. 같은 만큼

깎는 다른 조건과 코인 단위로 짝지어 견줬습니다:

| 추세+곧게 간 정도 빼기 견줌 (주요 20종) | 차이 |

|---|---|

| vs 국면만 | −5.49%p ± 1.15 |

| vs 추세 + 신뢰도 높음 | −2.87 ± 1.53 |

| vs 추세 + \|점수\|≥80 | −1.96 ± 1.56 |

국면만보다 낫다는 것은 뚜렷하고, 다른 조건보다 낫다는 것은 서지 않습니다(2 SE 미만).

이중상장 60종은 코인마다 발화가 모자라 확인이 안 됩니다. 그래서 넣지 않습니다

구조를 더 영리하게 만들려다 제자리로 온 여섯째 자리입니다.

(곧게 간 정도 은 국면보다 명백히 나쁩니다 — 816발 32.6% 대 896발 24.8%로, 더 적게

울리면서도 못 이깁니다.)

  • 내부 검증 1711건 · 화면 기준선 238장. versionCode 469.
v3.9.82026-08-02
규칙이 예측을 하는지 봤습니다 — 미리 적고 쟀습니다

앞 판에서 스무 판 넘게 재서 얻은 규칙 하나를 적었습니다:

> 둘을 묶어서 얻는 것은 「둘」이 아니라 「서로 다른 두 가지」입니다.

그런데 이 문장은 이미 잰 것들을 설명하면서 만들어졌습니다. 그런 규칙은 약합니다 —

나온 결과에 맞춰 지은 이야기일 수 있습니다. 설명하는 규칙과 맞히는 규칙은 무게가

다릅니다.

그래서 아직 안 잰 짝 둘을 골라, 재기 전에 예측을 먼저 적었습니다.

예측 ① 신뢰도 낮음(투표 수) + 다른 시장 반대(다른 표본) → 다른 종류이므로

묶이면 어느 쪽 홑보다도 짧아진다

예측 ② 신뢰도 낮음 + 지표 충돌 → 충돌은 신뢰도를 낮추는 재료 자체다.

같은 것을 두 번 세므로 거의 안 짧아진다

결과 (이중상장 60종 · 판독 수명)

| | n | 판독 수명 |

|---|---|---|

| 아무것도 | 3,656 | 13.51 ± 0.31 |

| 신뢰도 낮음 | 882 | 7.29 ± 0.35 |

| 교차 반대 | 484 | 5.84 ± 0.56 |

| 낮음 + 교차 | 286 | 4.83 ± 0.63 |

| 지표 충돌 | 333 | 6.21 ± 0.66 |

| 낮음 + 충돌 | 333 | 6.21 ± 0.66 |

①이 맞았습니다 — 4.83봉은 7.29봉과 5.84봉 둘 다보다 짧습니다.

②는 극단으로 맞았습니다 — 수명이 비슷한 정도가 아니라 n까지 같습니다(333 = 333).

두 집합이 아예 같습니다.

다만 ②는 쉬운 시험이었습니다 — 그 점도 적어 둡니다

신뢰도를 정하는 코드의 첫 갈래가 「충돌이면 낮음」입니다. 즉 ②의 동일성은 **코드에 이미

적혀 있던 것**이고, 이 측정은 규칙이 그 사실과 어긋나지 않는지를 본 것이지 새 증거를 준

것이 아닙니다.

진짜 시험은 ①입니다. 신뢰도는 지표 표를 세고, 교차는 다른 거래소의 판정을 봅니다 —

둘은 코드에서 서로를 모릅니다. 그런데도 겹쳐서 더 깎였습니다.

그래서 이제는 재기 전에 씁니다

새 조건을 얹을지 말지를 「이미 있는 것과 다른 것을 재는가」로 먼저 거릅니다. 이 앱이

헛되이 잰 다섯 자리(MFI 문턱 · 스토캐스틱 제거 · 국면 가중 평탄화 · 걸터앉음 폭 ·

계열 접기)는 전부 그 물음에서 걸렸을 것들입니다.

검사가 두 조건이 여전히 서로를 모르는지도 지킵니다 — 하나가 다른 하나를 쓰기

시작하면 ①의 결과는 「같은 것을 두 번」이 되어 뜻을 잃습니다.

  • 내부 검증 1706건 · 화면 기준선 238장. versionCode 468.
v3.9.72026-08-02
왜 국면이 알림에서만 일하는가 — 이번엔 재서 맞았습니다

앞 판에서 「왜 국면이 알림에서만 일하는지는 모른다」고 적고, 그럴듯한 짐작 하나를

표시해 뒀습니다 — 「극단 전이에서 ADX가 높다는 것은 순간적 튐이 아니라 실제 추세라는 뜻」.

배운 대로 새 짐작을 세우지 않고, 앞선 물음에 답을 준 입력 쪽 잣대를 그대로

가져왔습니다 — 극단 전이 직전 20봉이 얼마나 곧게 왔나.

| | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 국면 추세 | 25.70% ± 0.44 | 27.00% ± 0.80 |

| 그 외 | 17.40% ± 0.24 | 19.06% ± 0.47 |

| 짝지은 차이 | +8.29 ± 0.54 | +7.94 ± 0.98 |

추세 국면의 극단 전이는 절반쯤 더 곧게 온 움직임에서 나옵니다. 곧게 온 것은 잘 안

튕겨 나오고, 그것이 헛울림 차이(18.8% 대 27~29%)의 실체입니다.

그래서 점수 문턱이 대신할 수 없습니다. |점수|는 「몇이 동의하는가」를 세고, 국면은

「값이 어떤 모양으로 왔는가」를 봅니다 — 다른 것을 재는 두 자입니다.

그리고 같은 원리가 무효화 선에서도 이겼습니다

이 앱에서 묶여서 이긴 두 자리가 같은 모양입니다:

| | 하나 | 다른 하나 | 왜 묶이나 |

|---|---|---|---|

| 무효화 | 지지·저항 이탈 | 추세 중심선 이탈 | 다른 종류의 벽 |

| 알림 | 신뢰도(투표 수) | 국면(경로 모양) | 다른 종류의 근거 |

반대로 묶어도 안 오르던 자리들은 전부 같은 것을 두 번 잰 것이었습니다 — A+C(MACD는

20일선을 넘게 만든 그 움직임에서 파생), 계열 접기, 점수로 국면 대신하기.

> 둘을 묶어서 얻는 것은 「둘」이 아니라 「서로 다른 두 가지」입니다.

이것이 이 앱이 스무 판 넘게 재서 얻은 것 중 가장 넓게 쓰이는 규칙입니다. 새 조건을

더할지 말지를 이 한 문장으로 미리 걸러낼 수 있습니다.

검사가 두 관문이 서로 다른 재료를 쓰는지도 지킵니다 — 신뢰도가 ADX를 보기 시작하거나

국면이 지표 표를 세기 시작하면 묶는 뜻이 사라집니다.

  • 내부 검증 1702건 · 화면 기준선 238장. versionCode 467.
v3.9.62026-08-02
하마터면 잘못된 측정으로 알림 관문을 걷어낼 뻔했습니다

이 앱은 「국면」을 여러 번 재서 계속 떨어뜨렸습니다 — 오실레이터 적중을 못 가르고, 가중치를

평평하게 해도 같았습니다. 그런데 알림에서는 가장 큰 관문입니다(발화를 65% 잘라 냅니다).

다른 데서 다 떨어진 것이 여기서만 통과했으니 의심할 자리였습니다.

첫 측정은 「걷어내라」였습니다 — 그리고 틀렸습니다

같은 만큼 걸러 내는 다른 관문과 견줬습니다:

| 관문 | 주요 20종 | 60종 |

|---|---|---|

| 없음 | 46.8% | 49.1% |

| 국면 추세(지금) | 41.6% | 43.7% |

| \|점수\| 상위 같은 수 | 37.9% | 40.5% |

관문 줄 전체로도 발화 수가 같은 자리에서 되돌아감이 16.4% → 7.9%로 반이 됐습니다.

바꾸기에 충분해 보였습니다.

그런데 앱은 그 규칙이 아니었습니다

알림 워커는 강한 매수(4)·강한 매도(0)로 갈 때만 울립니다. 그 자리에서는 |점수|가

이미 60 이상이라 포화해 있습니다. 앱과 같게 고쳐 다시 쟀습니다:

| 국면 자리에 무엇을 | 발화 | 5봉 내 되돌아감 | 간격 |

|---|---|---|---|

| 국면 추세(지금) | 1545 · 682 | 18.8% · 17.9% | 29 · 30봉 |

| \|점수\| ≥ 75 | 2371 · 1040 | 28.2% · 28.7% | 20 · 21봉 |

| \|점수\| ≥ 90 | 2277 · 1003 | 27.4% · 27.9% | 21 · 22봉 |

완전히 뒤집힙니다. 국면 관문이 더 적게 울리면서 더 잘 거르고, 점수 문턱은 아무리

올려도 같은 선택성에 도달조차 못 합니다.

바꾸지 않은 이유

첫 결과는 「발화 수 같은데 헛울림이 절반」이라 충분히 그럴듯했습니다. 바꾸지 않은 이유는

하나입니다 — 고치기 전에 워커 코드를 열어 실제 발화 조건을 확인했습니다.

> 측정이 앱과 다른 규칙을 흉내 내면, 그 결과는 크고 뚜렷할수록 더 위험합니다.

이 앱에는 「측정이 앱과 같은지」를 지키는 검사가 이미 있습니다. 이번 일은 그 검사가 왜

있는지를 보여 준 자리입니다 — 그리고 새 측정을 만들 때마다 그 확인을 다시 해야 한다

것도.

왜 국면이 여기서만 일하는지는 모릅니다

극단 전이에서 ADX가 높다는 것은 그 움직임이 순간적 튐이 아니라 실제 추세라는 뜻일 수

있습니다. 그럴듯합니다 — 그래서 적어만 두고 결론으로 삼지 않습니다.

  • 내부 검증 1701건 · 화면 기준선 238장. versionCode 466.
v3.9.52026-08-02
50봉 봉우리는 시장이 아니라 앱 자신의 규칙이었습니다

앞 판에서 새 물음이 하나 생겼습니다 — 반대표는 창이 커질수록 줄어야 하는데 **50봉에서

가장 많습니다**(66.3%·72.4%). 곧게 간 정도로는 설명되지 않았습니다.

배운 대로 짐작을 세우지 않고 잣대를 또 바꿨습니다 — 전체가 아니라 지표별로 갈랐습니다.

| | 35봉 | 50봉 | 75봉 | 150봉 |

|---|---|---|---|---|

| 스토캐스틱 반대표 | 11.8% · 13.1% | 31.3% · 37.0% | 25.2% · 31.4% | 24.1% · 30.9% |

| 스토캐스틱 중립 | 30.4% · 36.2% | 8.1% · 7.4% | 14.1% · 13.3% | 15.2% · 14.2% |

나머지 일곱은 전부 ±5 안입니다. 봉우리는 스토캐스틱 하나가 만듭니다 — 35봉에서는

셋에 하나꼴로 침묵하다가 50봉에서 거의 다 말합니다.

왜 침묵하나 — 앱 자신의 규칙입니다

이 앱은 국면을 모를 때 오실레이터의 극단을 「판단 보류」로 돌립니다. 국면이 「모름」인

비율을 재 봤습니다:

| 창 | 국면 「모름」 |

|---|---|

| 35봉 | 100.0% |

| 50봉 | 70.9% · 72.3% |

| 150봉 | 19.7% · 20.1% |

창 35봉에서는 ADX 워밍업 때문에 국면이 한 번도 안 정해집니다. 그래서 스토캐스틱의

극단이 전부 보류되고, 반대표가 줄어듭니다.

> 50봉 봉우리는 시장의 성질이 아니라 이 앱 자신의 보호 규칙이 켜졌다 꺼지는 자리입니다.

가르지 않은 부분

스토캐스틱 중립률은 국면만으로 정해지지 않습니다 — 「%K가 극단인가」도 함께 걸립니다

(짧은 창일수록 범위가 좁아 극단이 잦습니다). **둘 중 어느 쪽이 얼마나 기여하는지는

가르지 않았습니다. 찾아낸 것은 어느 지표에서, 어느 규칙 때문에** 생기는가까지입니다.

세 잣대를 거쳤습니다

지표 짝(틀림) → 같은 지표 두 기간(틀림) → 입력의 곧기(답)지표별 분해(답).

앞의 둘은 같은 종류였고 그래서 같은 벽에 부딪혔습니다.

이제 처음 물음에는 두 겹의 답이 있습니다 — 입력이 두 배 곧고(18.7% 대 9.2%), 그

위에 앱이 스토캐스틱을 침묵시킵니다(국면 100% 모름). 50봉 봉우리는 그 침묵이 풀리는

자리입니다.

  • 내부 검증 1698건 · 화면 기준선 238장. versionCode 465.
v3.9.42026-08-02
잣대의 종류를 바꾸니 답이 나왔습니다

앞 판에서 「다음 사람이 답하려면 또 다른 짐작이 아니라 다른 잣대가 필요하다」고

적었습니다. 그 잣대를 만들었습니다.

앞의 시험 둘은 전부 지표를 봤습니다 — Wilder 초기값, 되돌아보기 겹침. 둘 다 틀렸습니다.

물음은 입력 쪽이었습니다.

창이 얼마나 「한 방향 한 토막」인가

끝에서 끝까지 간 거리를 그 사이 오르내린 거리의 합으로 나눴습니다(1이면 곧게 감).

| 창 | 곧게 간 정도 | 반대표 있는 판독 |

|---|---|---|

| 35봉 | 18.67% ± 0.24 · 18.69% ± 0.23 | 50.5% · 55.5% |

| 50봉 | 15.91% · 16.06% | 66.3% · 72.4% |

| 75봉 | 13.01% · 13.81% | 61.0% · 67.4% |

| 150봉 | 9.20% ± 0.26 · 11.63% ± 0.32 | 60.0% · 65.5% |

35봉 창은 150봉 창보다 두 배 곧게 갑니다. 그리고 그 자리에서 반대표가 가장 적습니다.

지표의 성질이 아니라 창이 짧으면 그 안이 한 방향 한 토막이기 쉽다는 것이었습니다 —

깨끗한 입력에는 여덟이 다 같은 쪽을 볼 수밖에 없습니다.

전부는 아닙니다

곧게 간 정도는 창이 커질수록 곧게 줄어드는데(18.7→15.9→13.0→9.2), 반대표는 **50봉에서

가장 많습니다**(66.3·72.4). 그 봉우리는 이 잣대로 설명되지 않습니다.

처음 물음(35봉에서 왜 덜 갈리나)은 답했고, 50봉 봉우리는 모릅니다.

이번에 배운 것

짐작 둘이 틀렸을 때 셋째 짐작을 찾은 것이 아니라 잣대의 종류를 바꿨습니다. 앞의 둘은

같은 종류(지표를 보는 잣대)였고 그래서 같은 벽에 부딪혔습니다.

> 답이 안 나오면 다음 짐작이 아니라 다음 잣대를 찾을 것.

이것이 이 앱의 「얇은 자료」 경고가 왜 옳은지도 다시 말해 줍니다 — 그 자리의 한목소리는

근거가 두꺼워서가 아니라 볼 것이 하나뿐이어서 생깁니다.

  • 내부 검증 1698건 · 화면 기준선 238장. versionCode 464.
v3.9.32026-08-02
「왜 둘에서 포화하는가」 — 천장 설명이 반증을 견뎠습니다

결산의 「모르는 것」 둘째를 쟀습니다 — 왜 조건 둘에서 포화하는가. 적어 둔 설명은 「A+B

만으로 이미 91%이고 바닥이 58%라 여지가 9%p뿐」이었고, 재지 않았다고 표시했습니다.

반증될 수 있는 시험을 만들었습니다

천장이 이유라면 「A+B가 났는데 안 뒤집힌 9%」는 구조가 없어야 합니다 — 무엇으로

갈라도 비율이 같아야 합니다. 앱이 아는 가름 열 가지로 갈랐습니다.

| 가름 | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 신뢰도 높음 | −1.0 | −4.1 |

| 신뢰도 낮음 | +3.7 | +1.8 |

| \|점수\| 75+ | −2.1 | −0.2 |

| 국면 추세 | −1.0 | −1.2 |

| 약한 라벨 | +2.1 | +0.2 |

(전체 뒤집힘 91.4%·89.4% 대비)

전부 ±4 안이고, 큰 축은 두 표본에서 재현되지 않습니다. A+B가 나면 앱이 아는 그

무엇으로도 결과가 갈리지 않습니다 — 셋째 조건이 잡을 것이 남아 있지 않습니다.

이번엔 짐작이 살아남았습니다

앞선 두 번(§1-4의 국면 전제, Wilder 초기값)은 재서 틀렸습니다. 이번은 다릅니다 —

**어느 한 가름에서 비율이 크게 갈렸다면 「천장이 아니라 아직 못 찾은 조건이 있다」가

됐을 텐데, 그러지 않았습니다.**

그래서 이 항목은 닫힌 것이 아니라 좁혀진 것입니다. 「열 가지로 갈라 못 찾았다」는

「구조가 없다」와 같지 않습니다 — 앱이 모르는 축이 있을 수 있습니다. 그 단서도 함께

적었습니다.

남은 물음
  • 왜 얇은 자료에서 반대표가 드문가 — 짐작 둘이 다 틀렸고, 쓰던 잣대도 못 쓴다는 것까지 알아냈습니다. 다른 잣대가 필요합니다.
  • 실기기 확인 0회 — 이 문서의 수치는 전부 자료에서 나온 것입니다. 기기가 있어야 답할 수 있습니다.
  • 내부 검증 1698건 · 화면 기준선 238장. versionCode 463.
v3.9.22026-08-02
둘째 짐작도 틀렸고, 쓰던 잣대까지 못 쓰게 됐습니다

앞 판에서 「Wilder 초기값」 설명이 틀렸다는 것을 확인하면서, **대안 설명을 하나 적어

두고 「재지 않았다」고 표시**했습니다 — 「창이 35봉이면 되돌아보는 기간이 26봉이든

14봉이든 결국 같은 최근 한 토막을 요약한다」.

바로 그 판에서 「그럴듯함은 검증이 아니다」라고 적었으니, 이번에 쟀습니다.

변수를 하나만 움직였습니다

같은 RSI를 기간 7과 21로 돌려, 둘이 같은 쪽인 비율을 창 크기별로 봤습니다.

지표 종류는 고정되고 되돌아보기만 달라집니다.

| 창 | RSI 7 대 21이 같은 쪽 |

|---|---|

| 35봉 | 77.8% ± 0.4 · 79.6% ± 0.5 |

| 50봉 | 79.4% ± 0.4 · 82.7% ± 0.4 |

| 150봉 | 81.5% ± 0.3 · 84.6% ± 0.5 |

창이 짧을수록 덜 같이 갑니다. 겹침 이야기였다면 정반대여야 합니다. **둘째 짐작도

틀렸습니다.**

게다가 쓰던 잣대가 못 쓸 것이었습니다

이 깨끗한 시험이 앞의 짝별 측정과 방향이 어긋납니다. 짝별 측정에서는 되돌아보기가

다른 짝이 오히려 더 같이 갔습니다(82.0% 대 75.9%) — 「같은 무리」에 반대를 잘하는

스토캐스틱이 몰려 있어 구성 자체가 뒤섞였기 때문입니다.

그러니 그 측정은 이 물음에 쓸 수 없습니다. 그 사실도 함께 적었습니다 — **안 적으면

다음 사람이 못 쓸 잣대를 다시 씁니다.**

남은 것

두 짐작이 다 틀렸고, 이 물음은 여전히 열려 있습니다. 다음 사람이 답하려면 또 다른

짐작이 아니라 다른 잣대가 필요합니다.

두 번을 재서 둘 다 틀렸다는 것이 헛수고는 아닙니다 — 그럴듯한 후보 둘이 사라졌고, 쓰면

안 되는 잣대 하나를 알아냈습니다. 「모른다」가 「아무것도 모른다」보다 좁아졌습니다.

  • 내부 검증 1698건 · 화면 기준선 238장. versionCode 462.
v3.9.12026-08-02
결산에 적어 둔 「모르는 것」 하나를 재 보니, 짐작이 반대였습니다

바로 앞 판의 결산에 모르는 것 셋을 적었습니다. 그중 하나가 잴 수 있는 것이었습니다 —

「왜 얇은 자료에서 반대표가 드문가」. 짐작은 **Wilder 평활 지표가 같은 초기값에서 출발해

함께 움직인다**는 것이었습니다.

그렇다면 Wilder 지표끼리만 유독 같이 가야 합니다. 지표 짝마다 「같은 방향에 투표한

비율」을 창 크기별로 쟀습니다.

| 창 | Wilder끼리 | 평활 아닌 것끼리 | 섞임 |

|---|---|---|---|

| 35봉 | 82.8% ± 0.5 | 73.1% ± 0.4 | 79.2% ± 0.3 |

| 50봉 | 79.3% ± 0.5 | 63.7% ± 0.4 | 72.8% ± 0.3 |

| 150봉 | 83.8% ± 0.4 | 66.6% ± 0.4 | 76.2% ± 0.3 |

짐작이 반대였습니다. Wilder 지표끼리는 창과 거의 무관하게 늘 83% 안팎으로 같이

갑니다(+1.0). 창 35봉에서 유독 오르는 것은 평활 아닌 것끼리입니다(+6.5·+7.7).

초기값 이야기였다면 정반대로 나왔어야 합니다.

다른 설명은 있지만, 그것도 재지 않았습니다

창이 35봉이면 되돌아보는 기간이 26봉이든 14봉이든 결국 같은 최근 한 토막을 요약하게

되고, 150봉에서는 서로 다른 구간을 봅니다. 그럴듯합니다 — **그리고 바로 그래서 적어만

두고 결론으로 삼지 않습니다.**

세 번째입니다

이 문서가 「이치가 닿는 설명」을 결론처럼 적는 실수를 한 것이 이번이 세 번째입니다:

1. 「국면을 먼저 정하라」가 이 앱의 측정과 일치한다 → 뒤집힘

2. 「종류가 다르면 묶인다」니 셋째 종류를 더하면 낫다 → 빗나감

3. 「Wilder 초기값 때문이다」 → 반대

세 번 다 그럴듯한 기제였습니다. 이치가 닿는 설명은 검증을 통과한 것처럼 느껴집니다 —

그래서 적어 두게 되고, 다음 사람은 그것을 근거로 씁니다.

> 이 문서에서 「모른다」는 표시는 겸손이 아니라 다음 사람을 위한 안전장치입니다.

  • 내부 검증 1698건 · 화면 기준선 238장. versionCode 461.
v3.9.02026-08-02
결산: 아홉 중 하나가 살아남았고, 그 하나도 지표가 아니었습니다

영상 35편에서 나온 기법을 모두 검증했습니다. 결론이 문서 여섯 군데에 흩어져 있어

한자리로 모았습니다(§8). 이제 그 절만 읽어도 됩니다.

성적표

| 주장 | 결과 |

|---|---|

| 국면을 먼저 정하라 (전제) | 조건으로는 안 섬 |

| 적응형 과매수·과매도 문턱 | 안 섬 |

| 여러 번 닿은 자리일수록 반응이 크다 | 안 섬 |

| 되돌림은 피보나치 선에서 멈춘다 | 안 섬 |

| 뚫린 저항은 지지가 된다 | 안 섬 |

| 다이버전스는 가장 신뢰하는 신호 | 안 섬 |

| 캔들 모양이 방향을 알려 준다 | 오차 안 |

| 거래량 10/20 교차 · 60일선 필터 | 필터가 거꾸로 |

| 두 조건이 함께 꺼질 때 거둬라 | ✅ 섬 (91.4%·89.4%, 바닥 60.9%·56.5%) |

아홉 중 하나. 그리고 그 하나도 지표가 아니라 구조입니다 — 「무엇을 보라」가 아니라

「둘이 함께 꺼질 때 움직여라」입니다.

왜 대부분 안 섰나 — 한 문장

> 겉보기 값어치가 지표가 아니라 곁다리 조건에서 옵니다.

거래량 교차가 가장 선명했습니다. 「무시하라」는 칸이 +8.4로 좋아 보이는데, **교차 없이

그 칸에 있기만 해도 +3.1**입니다.

이 앱에서 일한 것은 전부 같은 종류입니다

신뢰도 사다리(+8.3~9.2봉, 여섯 기간·네 표본) · 동의 수 사다리(6.6→15.0봉) · 두 선이

함께 꺼짐(91%) · 알림 한 봉 확인(27.4%→16.4%) · 다른 시장의 반대(12.7→5.6봉).

하나도 「어떤 지표가 맞는가」가 아닙니다. 반대로 구조를 더 영리하게 만들려는 시도는

다섯 번 다 제자리였습니다.

하나의 기제 — 세 결과가 같은 얼굴입니다
  • 강한 판정의 20봉 뒤 방향이 기준선보다 −4.1 ~ −11.6
  • 판독이 살아 있는 동안 값이 판정 반대로 감 (+5.2 · +8.1)
  • 값이 긴 평균 아래면 낫고 면 못함 (+3.1·+1.8 대 −5.6·−8.2) > 강한 판정은 값이 이미 한쪽으로 간 뒤에 나옵니다. 방향 우위가 없는 것도, 가장 센 판정이 오히려 기준선보다 못한 것도 여기서 나옵니다. 결함이 아니라 성질입니다. (그렇다고 뒤집으면 돈이 된다는 뜻은 아닙니다.)
그래서 이 앱은 무엇인가

세 가지를 합니다. 셋 다 앞일이 아니라 지금에 대한 것입니다 — 지금 무엇이 보이는가,

이 말이 얼마나 갈 것 같은가, 언제 다시 봐야 하는가. **「얼마나 오를까」에 대한 답은 이

앱에 없습니다.** 재 봤고, 없다는 것이 결론입니다.

모르는 것도 적었습니다

왜 얇은 자료에서 반대표가 드문가 · 왜 둘에서 포화하는가 · 실기기 확인이 0회. 이 문서는

짐작을 결론처럼 적는 실수를 두 번 했고 두 번 다 재서 바로잡았습니다. 남은 셋을

「모른다」로 적어 두는 것이 그 재발을 막습니다.

  • 내부 검증 1697건 · 화면 기준선 238장. versionCode 460.
v3.8.92026-08-02
영상의 마지막 미검증 기법 — 필터가 거꾸로였습니다

문서 §1-3에 볼륨 오실레이터 영상이 요약돼 있습니다: 거래량 10일·20일 이평 교차로 매수

시점을 잡되 「60일선 아래에서는 신호를 무시하라」. 그 영상은 설명의 절반을 「언제

무시할까」에 씁니다. 이 앱에 없는 기법이고 잰 적도 없었습니다 — 후보 목록에도 안 올랐습니다.

대조군을 함께 뒀습니다. 「60일선 아래」만으로도 되돌림이 나올 수 있고, 그러면 교차는

아무것도 더하지 않은 것입니다.

| | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 교차 · 60일선 위 | −2.16 ± 1.48 | −5.13 ± 2.69 |

| 교차없음 · 60일선 위 | −5.63 ± 0.75 | −8.21 ± 0.93 |

| 교차 · 60일선 아래 | +8.44 ± 1.25 | +2.34 ± 1.24 |

| 교차없음 · 60일선 아래 | +3.11 ± 0.65 | +1.78 ± 0.41 |

둘이 나왔습니다

1. 영상의 필터가 거꾸로입니다. 「쓰라」는 칸(60일선 위)이 두 표본 모두 음수이고,

「무시하라」는 칸이 양수입니다.

2. 일하는 것은 교차가 아닙니다. 교차 없이 60일선 위치만으로 위 −5.6·−8.2, 아래

+3.1·+1.8입니다. 교차가 얹는 몫은 한 칸에서 +3.5·+3.1, 다른 칸에서 +5.3·+0.6으로

일정하지 않고 부호도 못 바꿉니다.

영상 기법에 대해 다섯 번째로 얻은 같은 모양입니다 — **겉보기 값어치가 지표가 아니라

곁다리 조건에서 옵니다.**

부수적으로 얻은 것이 이 앱의 성질을 설명합니다

「값이 긴 평균 아래면 20봉 뒤 오를 확률이 기준선보다 높고 위면 낮다」는 것 자체가 두

표본에서 일치합니다. 이 앱이 따로 잰 두 결과와 맞물립니다 — **강한 판정이 기준선보다

못하고(−4.1~−11.6), 판독이 살아 있는 동안 값이 판정 반대로 갑니다**(+5.2·+8.1).

셋이 같은 규칙성의 다른 얼굴입니다: 강한 판정은 값이 이미 한쪽으로 간 뒤에 나옵니다.

그래도 화면에 「지금 사라」를 적지 않습니다

이 앱은 매매를 권하지 않고, 그 방향으로 쓰려면 비용·미끄러짐까지 재야 합니다. 문서에

적는 것은 이 앱의 판정이 왜 그런 성질을 갖는지에 대한 설명입니다. 검사가 그 이야기가

화면 문구로 새지 않았는지도 함께 봅니다.

  • 내부 검증 1691건 · 화면 기준선 238장. versionCode 459.
v3.8.82026-08-02
「뚫린 저항은 지지가 된다」도 서지 않았습니다

앞 판에서 적어 둔 자리를 쟀습니다 — 학습 문구의 「한 번 뚫린 저항은 그 뒤로 지지 역할을

하는 경우가 많습니다」.

이 앱의 지지·저항은 이미 역할이 바뀐 자리를 표시합니다. 그래서 새로 만들 것이

없었습니다 — 지지선마다 「20봉 안에 닿았나」, 닿았으면 「그 위에서 마감했나」를 세고

뒤집힌 자리와 보통 자리를 견줬습니다.

거리를 맞춘 것이 핵심입니다. 뒤집힌 자리가 체계적으로 더 가깝거나 멀면 그것만으로

결과가 갈립니다. 거리 칸을 셋으로 나누고 같은 코인·같은 칸 안에서만 짝지었습니다.

| 거리 | 주요 20종 (뒤집힘 − 보통) | 이중상장 60종 |

|---|---|---|

| 1~3% | +1.6 ± 1.5 | −2.7 ± 2.4 |

| 3~6% | +1.8 ± 1.9 | −4.4 ± 3.0 |

| 6~10% | +4.5 ± 2.4 | −8.8 ± 6.2 |

세 칸 모두 부호가 엇갈립니다. 지지되지 않습니다.

셋이 같은 서사였습니다

영상들이 파는 것 중 이 앱이 대조군을 두고 잰 것이 넷인데, 그중 **셋이 「가격이 자리를

기억한다」는 같은 이야기**입니다:

1. 여러 번 닿은 자리일수록 반응이 크다 — 임의 가격과 구분 안 됨

2. 되돌림은 피보나치 선에서 멈춘다 — 0.618이 옆 임의 비율과 같음

3. 뚫린 저항은 지지가 된다 — 부호가 엇갈림

서로 다른 영상이 서로 다른 이름으로 파는데 셋 다 서지 않습니다.

반면 이 앱에서 실제로 일한 「자리」 이야기는 하나뿐입니다 — 무효화 선. 그리고 그것도

「그 자리가 특별하다」가 아니라 「거기를 지나면 판독이 바뀐다」는 이야기입니다.

표시는 그대로 둡니다

「한때 저항이었다」는 사실입니다. 지운 것은 「그래서 더 잘 버틴다」뿐입니다 — 이 앱이

열 번 넘게 해 온 것과 같습니다: 화면에서 기능을 빼지 않고, 과장만 뺍니다.

  • 내부 검증 1687건 · 화면 기준선 238장. versionCode 458.
v3.8.72026-08-02
같은 통설이 네 번째 화면에 남아 있었습니다

훑을 때 학습 문구는 일부러 제외했습니다 — 「지표의 정의를 설명하는 자리는 주장을

하는 것이 아니다」라고 봤기 때문입니다. 그 가정이 틀렸습니다. 학습 문구 중 주장을

하는 것이 넷 있었고, 그중 하나가 이미 재서 확인하지 못한 통설이었습니다:

> `learn_regime_read`: 「추세장에서는 이동평균·MACD 같은 추세추종 지표가, 횡보장에서는

> RSI·스토캐스틱 같은 오실레이터가 잘 맞습니다.」

이 앱은 그 주장을 이미 쟀습니다 — 짝지은 차이가 두 표본 모두 반대 부호(−11.96 ·

−16.73)였고, 「횡보 + RSI 극단」이 겹치는 것은 봉의 0.5~0.7%뿐이었습니다. 판독

화면(`c_osc_range`·`c_regime_range`)은 그때 고쳤는데 학습 화면은 남았습니다.

왜 못 찾았나

앞서 만든 구조적 가드는 다이버전스만 덮고 있었습니다. 그리고 문구 훑기에서 학습

화면을 제외 규칙으로 빼 놓았습니다 — 훑는 범위를 좁힌 그 결정이 그대로 빈틈이 됐습니다.

이 앱이 되풀이해 밟는 자리입니다: 재서 고치고, 같은 말을 하는 다른 화면은 못 찾습니다.

이번이 네 번째입니다.

고친 것

학습 문구를 다섯 언어에서 고쳤습니다 — 「흔히 …고 하는데, 재 보니 두 자료 모두에서

확인되지 않았습니다. ADX 는 방향이 아니라 방향성의 세기만 말합니다.」

그리고 가드를 그 자리까지 넓혔습니다. 이제 판독 화면과 학습 화면을 함께 봅니다.

아직 안 잰 것 — 다음 자리

같은 훑기에서 하나가 더 나왔습니다:

> `learn_sr_tip`: 「한 번 뚫린 저항은 그 뒤로 지지 역할을 하는 경우가 많습니다.」

고전적인 「역할 전환」 주장인데 이 앱이 잰 적이 없습니다. 지지·저항 반응은 대조군을 두고

재서 확인하지 못했지만, 역할 전환은 그것과 다른 주장입니다. 다음에 잽니다 — 여기

적어 두는 것은 잊지 않기 위해서입니다.

  • 내부 검증 1683건 · 화면 기준선 238장. versionCode 457.
v3.8.62026-08-02
91%는 「판독이 바뀐다」이지 「값이 그쪽으로 간다」가 아닙니다

바로 앞 판에서 「두 조건이 함께 꺼지면 91%」를 화면에 붙였습니다. 그런데 이 앱은 **방향에

우위가 없다**는 것도 이미 재 두었습니다. 둘이 부딪히니 확인해야 했습니다 — 91%가 무엇에

대한 수인가.

A+B 가 난 뒤 값이 판정 반대로 간 비율을 기준선 대비로 쟀습니다(코인×180봉 칸,

조건은 1~5봉, 값은 6~25봉):

| | 주요 20종 | 이중상장 60종 |

|---|---|---|

| A+B 났을 때 | +2.07 ± 0.89 | −3.26 ± 1.18 |

| 아무것도 | +5.17 ± 0.79 | +8.08 ± 0.94 |

부호가 엇갈립니다 — 우위가 없습니다. 게다가 「아무 일도 없을 때」가 오히려 높습니다

(강한 판정이 기준선보다 못하다는, 이미 잰 사실의 다른 얼굴입니다).

그래서 91%가 무엇인가

앱 자신의 판독이 뒤집힌다는 뜻입니다. 「다시 봐야 할 때」를 알려 주는 수이지 **가격

예보가 아닙니다.**

큰 수를 화면에 적으면 사용자는 그것을 가격 예보로 읽습니다 — 이 앱이 되풀이해 고쳐 온

오독입니다. 그래서 수를 적은 자리 바로 옆에서 아니라고 말합니다: 「두 조건이 함께

꺼진 것입니다 — 판독이 바뀐다는 뜻이지 값이 그쪽으로 간다는 뜻은 아닙니다.

이것이 이 앱의 성격을 다시 보여 줍니다

이 앱이 잘하는 것은 앞날을 맞히는 일이 아니라 지금을 정확히 말하는 일입니다. 91%는

그 성격 안에 있는 수입니다 — 「지금 이 판독이 얼마나 오래 유효한가」에 대한 답이지

「값이 어디로 가는가」에 대한 답이 아닙니다.

  • 내부 검증 1682건 · 화면 기준선 238장. versionCode 456.
v3.8.52026-08-02
두 번째 조건을 계산해 놓고 숫자는 버리고 있었습니다

앞 판들에서 이것을 쟀습니다 — 무효화 선이 무너진 뒤 판정이 뒤집힌 비율 65%, 값이

20봉 평균까지 판정 반대로 넘었으면 81%, 둘 다면 91%.

그런데 사용자는 그 규칙을 쓸 수가 없었습니다. 화면은 무효화 선을 가격으로

말하는데, 20봉 평균은 「이미 어긋났다」는 경고로만 나왔습니다. 값 자체는 앱이 계산해

놓고 참·거짓만 쓰고 버렸습니다.

두 조건 중 하나만 지켜볼 수 있으면 91%짜리 규칙을 아무도 못 씁니다. 이 앱이 결함으로

다뤄 온 「계산해 놓고 화면에 안 붙인 값」 그대로입니다.

「두 번째 선」을 가격으로 보여 줍니다

무효화 선 바로 아래에 20봉 평균을 가격과 거리로 적습니다 — 「20봉 평균은 ₩93,400,000

(2.1% 아래)입니다. 그 아래에서 마감하면 두 조건이 함께 꺼진 것입니다.」

새 계산은 없습니다. 이미 있던 값을 화면에 붙일 뿐이고, 판정도 신뢰도도 무효화 선도

그대로입니다.

이미 넘어간 뒤에는 안 띄웁니다

값이 벌써 평균 반대편이면 그건 「지켜볼 선」이 아니라 이미 일어난 일이고, 그때는 어긋

났다는 경고가 따로 나갑니다. 같은 사실을 두 곳에서 다르게 말하지 않습니다. 중립

판정일 때도 지켜볼 방향이 없으므로 조용합니다.

  • 내부 검증 1681건 · 화면 기준선 238장. versionCode 455.
v3.8.42026-08-02
「종류 다양성」으로 셋째를 정당화하려 했더니 빗나갔습니다

앞 판에서 「묶어서 세지는 것은 몇 개가 아니라 몇 종류」라는 기제를 적었습니다.

A(지지·저항)와 B(추세 중심선)는 다른 종류라 묶이고, C(MACD)는 B에서 파생돼 못 묶인다 —

그럴듯한 설명이었습니다.

그럴듯한 설명에는 예측이 따라옵니다. 진짜 다른 종류인 수급(거래량 몰림)을 셋째로

얹으면, MACD가 못 한 만큼 더해야 합니다. 재 봤습니다.

| | 주요 20종 | 이중상장 60종 |

|---|---|---|

| A+B | 91.4% ± 0.7 | 89.5% ± 1.0 |

| A+B+C 모멘텀 | 91.8% ± 0.6 | 89.6% ± 1.0 |

| A+B+D 거래량 | 92.7% ± 0.6 | 89.8% ± 2.1 |

빗나갔습니다. 장기에서 +1.3%p, 60종에서 +0.3%p — 재현되지 않습니다.

정확한 문장

> **「다른 종류여야 한다」는 둘을 고를 때의 조건이지, 셋째를 정당화하지 않습니다.

> 둘에서 포화합니다.**

이치도 닿습니다 — A+B만으로 이미 91%이고 바닥이 58%입니다. 남은 여지가 9%p뿐이라

무엇을 얹어도 크게 오를 자리가 없습니다.

이번에 배운 것

기제 설명이 그럴듯하다고 그 다음 수까지 맞는 것은 아닙니다. 이 앱이 짐작을 적어 두고

데인 자리가 이번이 두 번째입니다(앞선 판에서는 「창이 짧으면 지표가 줄어서일 것」이

틀렸습니다).

그래서 문서에 설명만 남기지 않고 반증도 함께 남겼습니다. 설명만 남으면 다음 사람은

그 설명을 근거로 조건을 더 얹습니다 — 검사가 그 반증이 지워지지 않았는지 봅니다.

화면은 달라지지 않습니다.

  • 내부 검증 1675건 · 화면 기준선 237장. versionCode 454.
v3.8.32026-08-02
묶어서 세지는 것은 「몇 개」가 아니라 「몇 종류」였습니다

앞 판에서 영상의 「교차 검증」이 통한다는 것을 확인했습니다(둘 다 꺼지면 90%). 곧바로

따라오는 물음이 둘입니다 — 셋이면 더 나은가, 그리고 아무 둘이나 되는가.

조건 셋을 놓고 홑·쌍·셋을 전부 견줬습니다. A = 무효화 선 이탈 · B = 20일선을 판정

반대로 넘음 · C = MACD 가 판정 반대로.

| 5봉 안에 일어난 일 | 주요 20종 | 이중상장 60종(모아 셈) |

|---|---|---|

| 없음 | 58.1% | 54.8% |

| A 무효화선 | 64.3% | 66.4% |

| B 20일선 | 80.2% | 87.0% |

| C MACD | 67.5% | 59.7% |

| A+B | 89.3% | 88.9% |

| A+C | 68.9% | 65.6% |

| B+C | 80.7% | 81.3% |

| A+B+C | 91.8% | 89.5% |

둘이면 충분합니다

셋째를 더해도 89.3 → 91.8로 2.5%p뿐입니다. 영상이 둘을 고른 것이 결과적으로

맞았습니다.

그런데 아무 둘이나는 아닙니다

**A+C(68.9%)는 A 홑(64.3%)이나 C 홑(67.5%)과 거의 같고, B+C(80.7%)는 B 홑(80.2%)과

같습니다. 묶여서 오르는 것은 A+B 뿐**입니다.

이유가 닿습니다 — A는 지지·저항 이탈이고 B는 추세 중심선 이탈입니다. 둘 다 가격

구조지만 다른 종류의 벽입니다. C(MACD)는 모멘텀인데, 20일선을 넘게 만든 바로 그

움직임에서 파생됩니다 — B와 같은 사건의 다른 얼굴이라 더할 것이 없습니다.

> 묶어서 세지는 것은 「몇 개」가 아니라 「몇 종류」입니다.

계열 집계가 진 것과 어긋나지 않습니다

앞선 판에서 「지표를 계열로 접어 세기」는 더 나빴습니다(v3.8.1). 모순처럼 보이지만

아닙니다 — 여덟을 전부 셀 때는 종류 다양성이 개수에 이미 섞여 있어, 접으면 눈금만

잃습니다. 반면 둘·셋만 고를 때는 무엇을 고르느냐가 곧 종류 다양성이라 결정적입니다.

정직하게 적어 둘 것

60종 표본에서 A+B 는 관측 99건뿐이고 코인 단위로 셀 만한 코인이 없습니다. 모아 센

88.9%가 주요 20종의 89.3%와 맞지만, **그 칸만은 두 표본 확인이 아니라 한 표본 + 방향

일치**입니다.

화면은 달라지지 않습니다 — 앞 판에서 이미 A+B 를 적었습니다.

  • 내부 검증 1675건 · 화면 기준선 237장. versionCode 453.
v3.8.22026-08-02
영상의 「교차 검증」이 처음으로 검증됐습니다

`docs/TA-PRINCIPLES.md` §2 는 영상들이 포지션 정리에 조건을 둔다고 적어 두었습니다 —

중심선 이탈 그리고 CCI 0선 이탈. 영상은 그걸 「교차 검증」이라 부릅니다. 그런데

이 앱의 무효화 선은 조건이 하나였고, 둘을 요구하면 나아지는지 잰 적이 없었습니다.

창을 겹치지 않게 했습니다

두 조건은 앞으로 1~5봉에서 보고, 판정이 반대로 뒤집혔는지는 6~25봉에서 셉니다.

겹치면 「20일선을 반대로 넘었다」와 「판정이 뒤집혔다」가 같은 사건이 됩니다 —

20일선 위치는 판정을 만드는 지표 중 하나이기 때문입니다.

| 5봉 안에 일어난 일 | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 아무것도 | 60.9% ± 0.9 | 56.5% ± 1.2 |

| 무효화 선만 무너짐 | 65.1% ± 1.6 | 63.6% ± 5.6 |

| 20일선만 반대로 넘음 | 80.6% ± 1.1 | 81.6% ± 1.4 |

| 둘 다 | 91.4% ± 0.7 | 89.4% ± 1.0 |

두 가지가 나왔습니다

1. 앱이 머리로 내세운 무효화 선이 둘 중 약한 쪽입니다 — 65% 대 81%. 「이 선이 깨지면

판단을 거두라」가 화면에서 가장 눈에 띄는데, 정작 20일선 이탈이 더 잘 가릅니다.

2. 둘을 함께 요구하면 90%입니다. 영상의 「교차 검증」이 실제로 일합니다 — 35편에서

얻은 것 중 처음으로 검증된 구조적 아이디어입니다.

선은 그대로 두고 말만 더했습니다

무효화 선 자체는 바꾸지 않았습니다. 그 선은 사용자가 지켜볼 가격이고 두 번째 조건은

가격이 아니라 상태입니다 — 하나로 합치면 「어느 값을 보라」가 흐려집니다. 대신 그 줄의

설명에 무엇을 함께 봐야 하는지를 수치와 함께 적었습니다.

기준선(아무 일도 없을 때 61%·57%)도 함께 적었습니다. 90%는 커 보이지만 **판정은 원래

잘 뒤집힙니다** — 그 대비를 빼면 「거의 확실」로 읽힙니다.

이 앱이 다섯 번 배운 것과도 맞습니다 — 이긴 것은 늘 단순한 세기와 버팀이었고,

여기서도 새 계산이 아니라 이미 있는 두 사실을 함께 보는 것이 이겼습니다.

  • 내부 검증 1674건 · 화면 기준선 237장. versionCode 452.
v3.8.12026-08-02
「독립이 아니니 접으면 낫다」는 틀렸습니다

앞 판의 결론은 「몇 개가 같은 말을 하느냐가 정보의 원천」이었고, 그 이유로 **「여덟 지표는

서로 독립이 아니다」**를 들었습니다. 그 이유를 그대로 밀면 자연스러운 다음 수가 있습니다 —

상관된 지표를 계열로 접어 독립 단위로 세면 더 나아야 한다. 앱에 이미 계열 개념이

있으니 바꿔 끼워 봤습니다.

두 표본 모두 나빠졌습니다.

| 「높음」을 정하는 방식 | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 지표 수 ≥5 (지금) | 0.0660 | 0.0892 |

| 계열 수 ≥3 (계열 최선) | 0.0618 | 0.0797 |

| 잘 갈리는 넷만 ≥2 (그 최선) | 0.0572 | 0.0730 |

왜 지는가 — 두 가지가 겹칩니다

1. 접으면 눈금이 거칠어집니다. 계열은 최대 4칸, 지표 수는 8칸입니다. 상관돼 있어도

정도는 남아 있는데 접으면 그것이 사라집니다.

2. 잘 반대 안 하는 지표가 반대할 때가 가장 셉니다. 반대표의 수명 감소를 지표별로

보면 ADX −6.95봉 · 스퀴즈 −4.33봉인데, 정작 가장 자주 반대하는 스토캐스틱은 −0.4봉

입니다. 「잘 갈리는 넷만」 세면 가장 센 반대 신호를 버립니다.

정확한 문장

> **여덟은 서로 독립이 아니다. 그래서 「여섯이 동의」를 여섯 개의 근거로 읽으면 안 된다.

> 그러나 그렇다고 독립 단위로 접어 세면 더 나빠진다. 드물게 반대하는 지표는 동의할

> 때 정보가 적고 반대할 때 정보가 많다** — 그냥 세는 것이 그 둘을 동시에 담는 유일한

> 방법이다.

다섯 번째입니다

「구조를 더 영리하게 만들려는」 시도가 이제 다섯 번 다 제자리였습니다 — MFI 무승부 문턱 ·

스토캐스틱 제거 · 국면 가중 평탄화 · 걸터앉음 폭 확대 · 계열 단위 집계. **이긴 구조는

전부 단순한 세기와 버팀입니다.**

화면은 달라지지 않습니다.

  • 내부 검증 1669건 · 화면 기준선 237장. versionCode 451.
v3.8.02026-08-01
영상 35편이 수렴한 전제도, 재 보니 서지 못했습니다

`docs/TA-PRINCIPLES.md` 는 외부 자료 35편을 갈래로 나눠 읽고 **세 갈래가 같은 문장에

도달한다**는 것을 찾아냈습니다 — 「국면을 먼저 정하라. 고정된 문턱은 그래서 실패한다.」

그리고 이렇게 맺었습니다: 「전제는 옳고, 그들이 파는 해법만 검증되지 않는다.」

그 뒤로 스무 판 넘게 더 쟀습니다. 전제 쪽도 서지 못했습니다.

| 문서가 근거로 든 것 | 그 뒤 측정 |

|---|---|

| 국면별 가중치를 코드로 갖고 있다 | 평평하게 해도 라벨 구별력이 같다 (+0.38 ± 0.19 · −0.17 ± 0.17) |

| 스토캐스틱이 횡보장에서 역전한다 | 그 반대표의 값어치가 −0.39 ± 0.23 · −0.43 ± 0.36 — 사실상 0 |

| 국면이 오실레이터 적중을 가른다 | 짝지은 차이 −11.96 · −16.73(반대 부호), 그 상황은 봉의 0.5~0.7% |

그런데 뚜렷했던 것도 있습니다 — 전부 다른 종류입니다

| | 효과 |

|---|---|

| 신뢰도 사다리 | +8.3 ~ +9.2봉 (여섯 기간·네 표본 전부) |

| 무효화 선 | 무너짐 대 지켜짐 56% 대 16% |

| 동의 수 사다리 | 한 끗 6.6봉 → 다섯 이상 15.0봉 |

| 알림에 「한 봉 확인」 | 헛울림 27.4% → 16.4% |

| 다른 시장이 다른 말을 할 때 | 12.7봉 → 5.6봉 |

그리고 「지표 하나를 빼거나 문턱을 만지는」 시도는 네 번 다 제자리였습니다.

거시적으로 — 무엇이 실제로 일했나

영상 35편이 수렴한 곳은 「무엇을 보는가」였습니다. 이 앱도 그 전제로 코드를 짜

두었습니다. 그런데 대조군을 두고 재니 그쪽으로는 얻는 것이 없었습니다.

실제로 일한 것은 전부 「얼마나 여러 개가 같은 말을 하는가」와 **「그 말이 얼마나

버티는가」**였습니다.

> **어떤 지표를 고르느냐보다, 몇 개가 같은 말을 하고 그 말이 며칠 가느냐가 압도적으로

> 중요합니다.**

이유는 아마 이것입니다 — 지표 여덟은 서로 독립이 아닙니다. 같은 가격에서 나온 함수들이라

어느 하나를 골라도 새 정보가 거의 없습니다. 반면 몇 개가 몰렸는가는 그 움직임이

얼마나 한쪽으로 치우쳤는지를, 판독이 며칠 가는가는 그 치우침이 얼마나 안정적인지를

요약합니다. 요약 쪽에 정보가 있고, 선택 쪽에는 별로 없습니다.

영상의 값어치는 설명에 있었습니다

「같은 값이 국면에 따라 정반대를 뜻한다」는 관찰은 지금도 옳습니다 — 고정 문턱이 왜

실패하는지 설명합니다. 다만 그것을 조건으로 걸면 나아지지 않습니다. **설명으로서

참인 것과 규칙으로서 쓸모 있는 것은 다릅니다.**

35편에서 실제로 남은 것은 결국 입니다 — 값이 20일 평균의 어느 쪽인가, 눌림목에서

거래량이 말랐는가. 둘 다 국면과 무관한 단순 사실입니다.

옛 결론은 지우지 않고 「처음에 적었던 것」으로 표시했습니다. 그때 그렇게 생각했다는

기록이고, 표시 없이 두면 그것이 결론으로 읽힙니다.

  • 내부 검증 1668건 · 화면 기준선 237장. versionCode 450.
v3.7.72026-08-01
사다리의 문턱을 격자로 쓸었더니, 지금 값이 꼭대기였습니다

신뢰도 사다리는 이 앱이 잰 것 중 가장 뚜렷한 신호입니다(높음−낮음 +8~9봉). 조건

하나하나는 근거가 적혀 있는데, 숫자 문턱 자체는 한 번도 쓸어 본 적이 없었습니다.

어떻게 쟀나

앱의 결정 규칙을 그대로 옮기되 문턱만 인자로 빼고, 천장 넷도 같은 순서로 씌웠습니다.

먼저 앱과 같은지부터 확인했습니다 — 관측 9,982·4,736건에서 어긋남 0.

잣대는 「세 칸이 수명을 얼마나 갈랐나」인데, 단순한 「높음−낮음」 차이는 문턱을 올릴수록

저절로 커집니다(높음이 희귀해지므로). 그래서 분산비를 썼습니다 — 칸 크기에 휘둘리지

않고, 한 칸을 텅 비우는 것도 벌합니다.

| 동의 문턱 | 주요 20종 | 60종 | 높음 비율 |

|---|---|---|---|

| ≥3 | 0.0586 | 0.0747 | 34.2% · 32.2% |

| ≥4 | 0.0641 | 0.0811 | 32.4% · 30.1% |

| ≥5 (지금) | 0.0660 | 0.0892 | 30.4% · 26.5% |

| ≥6 | 0.0573 | 0.0816 | 22.8% · 19.0% |

| ≥7 | 0.0507 | 0.0664 | 11.7% · 8.6% |

두 표본 모두 5에서 꼭대기입니다. 열다섯 칸 격자를 다 돌아도 최댓값이 지금 값입니다.

예전 판에서 3→5로 옮긴 판단이 정확히 맞은 자리에 내려앉았습니다.

사이 발견 — 조건 하나가 지금 한 번도 안 걸립니다

표에서 「근거≥4」와 「근거≥5」가 완전히 같은 수를 냅니다. 이치를 보면 당연합니다 —

높음이 되려면 다섯이 몰려야 하고, 그러면 근거도 자동으로 다섯 이상입니다. 즉 **두 상수가

같은 값인 동안 뒤쪽 조건은 죽어 있습니다.**

그렇다고 지우지 않습니다. 동의 문턱을 다시 낮추는 날 그 조건이 살아나 「셋 중 셋」을

막아 줍니다 — 그때를 위한 안전망입니다. 다만 **죽어 있다는 사실을 모르면, 그 상수를

만져 놓고 아무 일도 안 일어나는 것을 보며 「영향이 없구나」로 잘못 배웁니다.** 그래서

적어 두고 검사로 못 박았습니다.

화면은 달라지지 않습니다.

  • 내부 검증 1663건 · 화면 기준선 237장. versionCode 449.
v3.7.62026-08-01
게이지의 점을 더 선명하게 읽는 법

앞 판이 남긴 지침대로 구조를 봤습니다. 라벨 경계(±20·±60)는 모든 판정을 가르는

구조인데 한 번도 재 본 적이 없었습니다. 「어디가 최적인가」로 묻는 대신 **수명이 실제로

꺾이는 자리가 있는지** 봤습니다.

| 경계까지 거리 | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 0–2 | 8.16 ± 0.29 | 8.07 ± 0.50 |

| 3–5 | 9.73 ± 0.45 | 6.28 ± 0.84 |

| 6–10 | 9.22 ± 0.32 | 8.83 ± 0.37 |

| 11–15 | 11.91 ± 0.29 | 11.99 ± 0.40 |

| 16–20 | 11.56 ± 0.45 | 13.25 ± 0.60 |

| 31 이상 | 14.32 ± 0.20 | 14.76 ± 0.43 |

10과 11 사이에서 계단이 집니다(+2.70 · +3.16, 두 표본 모두).

화면을 그 값으로 올렸습니다

바로 앞 판에서 「라벨 안 절반으로 갈랐더니 1~3봉 차이」라고 적었습니다. 그건 라벨을

건너는 변화를 못 봅니다 — 게이지에서 사람이 실제로 보는 것은 **점이 경계에 얼마나

가까운가**입니다. 그대로 재니 차이가 훨씬 큽니다(8~9봉 대 12봉 이상). 화면에는 이 쪽을

적습니다.

「걸터앉음」 폭은 넓히지 않았습니다

꺼짐이 10까지 간다면 걸터앉음 판정 폭(지금 5)을 넓혀야 할 것 같습니다. 재 봤습니다 —

신뢰도 눈금의 「높음−낮음」이 폭 5·8·10·12에서 8.32 → 8.33 → 8.33 → 8.33

(60종은 9.15 → 9.16 → 9.16 → 9.16)으로 꼼짝하지 않습니다. 대신 걸터앉음 판정만

11.6%에서 36.3%로 늘어납니다.

이유는 분명합니다 — 새로 덮이는 판독들은 이미 「중간」이라 천장이 할 일이 없습니다.

이 앱의 네 번째 「재 봤더니 바꿔도 안 나아진다」입니다.

라벨 경계도 신뢰도도 건드리지 않았습니다.

  • 내부 검증 1659건 · 화면 기준선 237장. versionCode 448.
v3.7.52026-08-01
국면별 가중을 평평하게 해도 달라지지 않았습니다 (그래서 그대로 둡니다)

이 앱은 점수를 낼 때 국면에 따라 지표에 다른 무게를 줍니다(추세장은 추세추종에 1.5배,

오실레이터에 0.8배 · 횡보장은 반대). 근거가 적혀 있지만 옛 자료에서 온 것이고, 그

사이 이 앱은 「국면이 지표의 적중을 가른다」는 통설을 재서 확인하지 못했습니다(v3.6.4).

같은 전제 위에 서 있는지 물어야 했습니다.

어떻게 쟀나

같은 지표 목록에서 점수를 두 번 냅니다 — 지금 규칙과 평평한 가중(전부 1.0). 각각에서

라벨을 뽑고, 앞으로 굴릴 때도 같은 규칙을 써서 판독 수명을 잽니다. 잣대는 **강한

라벨과 약한 라벨을 얼마나 잘 가르는가**입니다 — 오래 사는 것 자체가 좋은 것은 아닙니다

(늘 같은 판정이면 영원히 삽니다).

| | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 같은 라벨을 준 비율 | 92.6% | 91.4% |

| 강−약 수명 차이 · 국면 가중 | 4.72 ± 0.19 | 5.35 ± 0.37 |

| 강−약 수명 차이 · 평평한 가중 | 5.10 ± 0.22 | 5.19 ± 0.39 |

| 짝지은 차이(평평−지금) | +0.38 ± 0.19 | −0.17 ± 0.17 |

부호가 엇갈리고 둘 다 작습니다. 국면 가중은 라벨을 여덟에 하나꼴로 바꾸지만, 바뀐

결과가 더 잘 가르지도 못 가르지도 않습니다.

양쪽 다 그대로 둡니다

걷어내지 않습니다 — 재서 나아지지 않는 것을 「복잡해 보인다」는 이유로 없애면 다음 사람은

그 결정을 되돌릴 근거도 함께 잃습니다. 세게 하지도 않습니다 — 그럴 근거가 없습니다.

셋째입니다 — 패턴이 보입니다

「재 봤더니 바꿔도 안 나아진다」로 끝난 자리가 이제 셋입니다:

1. MFI 의 미세 변화 무승부 문턱 — 수명 11.26 → 11.32봉 (표준오차 0.17)

2. 스토캐스틱을 신뢰도 계산에서 빼기 — 눈금 +0.07 ± 0.17

3. 국면별 가중을 평평하게 하기 — 위 표

셋 다 지표 하나하나를 손보는 종류입니다. 반대로 뚜렷했던 것은 전부 구조였습니다 —

신뢰도 사다리(+8~9봉), 동의 사다리, 무효화 선, 알림의 한 봉 확인(27%→16%).

화면은 달라지지 않습니다. 이 판의 값어치는 다음에 어디를 손댈지 아는 것입니다.

  • 내부 검증 1659건 · 화면 기준선 237장. versionCode 447.
v3.7.42026-08-01
이름이 같아도 자리가 다릅니다

편향 게이지의 점은 점수입니다. 라벨(강한 매도~강한 매수)은 그 점수의 구간이라

(±20·±60), 같은 「강한 강세」 안에 60점과 95점이 함께 들어갑니다 — 게이지에서는 점의

자리가 확연히 다른데 이름은 같습니다.

이 앱은 그 점을 화면에 그리면서 그 자리가 뜻을 갖는지 물어본 적이 없었습니다.

쟀습니다 — 여덟 칸 모두 같은 방향

라벨 안에서 「약한 절반」과 「센 절반」의 판독 수명을 코인 단위로 짝지어 견줬습니다:

| 라벨 | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 강한 매도 | +1.79 ± 0.30 | +2.78 ± 0.58 |

| 매도 | +2.42 ± 0.77 | +1.09 ± 0.81 |

| 매수 | +1.60 ± 0.63 | +2.12 ± 1.56 |

| 강한 매수 | +3.31 ± 0.36 | +1.70 ± 0.49 |

여덟 칸 모두 양수입니다. 센 쪽이 1~3봉 오래 갑니다. 강한 라벨에서는 표준오차의

3~9배로 뚜렷하고, 가운데 라벨에서는 같은 방향이되 얇습니다.

크기에 맞게 말합니다

1~3봉은 신뢰도 눈금(8~9봉)의 삼분의 일 이하입니다. 그래서 **「가장자리면 조금 짧다」로만

적고** 예측이나 새 규칙으로 옮기지 않습니다.

이 앱은 이미 문턱 바로 옆을 경고합니다 — 그건 「이름이 바뀔 수 있다」는 이야기이고,

이쪽은 「이름이 같아도 자리가 다르다」는 이야기입니다. 다른 사실이라 다른 줄에 적었습니다.

규칙은 그대로입니다

라벨 경계도 신뢰도도 건드리지 않았습니다. 잰 것은 **이미 화면에 있는 수를 어떻게

읽는가**이지 계산이 아닙니다.

  • 내부 검증 1655건 · 화면 기준선 237장. versionCode 446.
v3.7.32026-08-01
남겨 둔 짐작을 쟀더니 틀렸습니다

앞 판에서 「자료가 얇으면 판독이 왜 더 오래 사는지는 재지 않았으므로 적지 않는다」고

남겼습니다. 짐작만 적어 뒀습니다 — 「창이 짧으면 쓸 수 있는 지표가 줄어서일 것」.

재 보니 틀렸습니다.

| 창 | 지표 칸 수 | 찬반표 수 | 반대표가 있는 판독의 비율 |

|---|---|---|---|

| 35봉 | 8.00 | 5.79 · 5.64 | 50.4% · 55.5% |

| 50봉 | 8.00 | 6.05 · 6.05 | 66.3% · 72.4% |

| 150봉 | 8.00 | 5.88 · 5.84 | 59.9% · 65.5% |

지표 칸 수는 어느 창에서나 8.00 그대로이고 찬반표 수도 5.6~6.1로 거의 같습니다.

줄어드는 것은 지표가 아니라 반대표가 나오는 빈도입니다.

그래서 무엇이 문제인가

자료가 아주 얇으면 한목소리로 보이는 일이 더 잦습니다. 그리고 한목소리인 판독이

오래 사는 것은 이 앱이 이미 잰 사실입니다 — 그래서 12봉이 나온 것입니다.

문제는 사용자가 「강세 6 · 약세 0」을 보고 근거가 두텁다고 읽는다는 것입니다.

하필 가장 안 여문 자리에서 가장 세게 믿게 됩니다. 「N개 동의」를 읽는 법에 그

사실을 더했습니다.

왜 반대표가 드문지는 여전히 모릅니다

Wilder 평활 지표들이 같은 초기값에서 출발해 함께 움직이는 것이 그럴듯합니다. 그러나

그건 재지 않았습니다. 화면에는 관측만 적습니다 — 이번 판이 바로 짐작을 적어 두면

어떻게 되는지 보여 준 자리입니다.

  • 내부 검증 1650건 · 화면 기준선 237장. versionCode 445.
v3.7.22026-08-01
상장한 지 얼마 안 된 코인에서 「낮음」의 뜻이 달랐습니다

앞 판에서 「잰 것은 다 자란 창이고, 이력이 짧은 자리는 아직 모른다」고 적었습니다.

그 자리를 쟀습니다 — 창 크기를 줄여 가며 같은 방식으로.

| 창 | 낮음 | 중간 | 높음 | 높음−낮음 | 표본부족 |

|---|---|---|---|---|---|

| 35봉 | 12.89 · 13.60 | — | — | — | 100% |

| 50봉 | 12.01 · 11.75 | — | — | — | 100% |

| 75봉 | 7.08 · 7.26 | 13.28 · 13.49 | — | — | 100% |

| 100봉 | 7.12 · 7.16 | 11.90 · 11.47 | 15.52 · 16.02 | +8.40 · +8.87 | 0% |

| 150봉 | 7.10 · 7.29 | 11.85 · 11.56 | 15.42 · 16.44 | +8.32 · +9.15 | 0% |

두 갈래로 갈립니다
  • 75봉: 「높음」만 막힙니다. 「낮음」은 7.1봉으로 평소와 같습니다 — 눈금이 그대로 뜻을 갖습니다.
  • 56봉 미만: 모든 판독이 「낮음」이 됩니다. 그런데 그 판독들은 12~13.6봉을 삽니다 — 다 자란 창의 「낮음」(7.1봉)보다 훨씬 길고, 전체 평균(약 11.9봉)보다도 깁니다. 그 자리에서 「낮음」은 「판독이 짧다」가 아니라 「자료가 얇다」는 뜻입니다. 그런데 이 앱은 신뢰도 설명에서 「이 값은 판독이 얼마나 오래 가는지를 가른다」고 말합니다 — 상장한 지 얼마 안 된 코인을 보는 사용자에게는 그 문장이 틀립니다.
고친 것은 한 줄입니다

「자료가 N봉뿐이라 지표를 믿을 단계가 아닙니다」가 뜨는 그 자리에, 이때의 「낮음」이

무슨 뜻인지 함께 적었습니다. 신뢰도 설명 쪽에 적으면 이 상황의 사용자는 못 봅니다 —

그는 코인 화면을 보고 있고, 그 화면에 이 줄이 떠 있습니다.

표본 문턱도 신뢰도 규칙도 그대로입니다. 천장은 「값이 아직 안 여물었다」를 막는

것이고 그 근거는 따로 있습니다. 이번 측정이 말하는 것은 **천장이 씌워진 뒤의 라벨을

어떻게 읽어야 하는가**입니다 — 서로 다른 이야기라 섞지 않았습니다.

왜 더 오래 사는지는 묻지 않았습니다

짐작은 됩니다 — 창이 짧으면 쓸 수 있는 지표가 줄고, 남은 것들이 서로 더 닮았을 수

있습니다. 그러나 재지 않았으므로 적지 않습니다. 화면에 적은 것은 관측(12봉 안팎)뿐입니다.

  • 내부 검증 1649건 · 화면 기준선 237장. versionCode 444.
v3.7.12026-08-01
남겨 둔 두 기간을 채웠습니다 — 이제 여섯 전부입니다

바로 앞 판에서 「15분봉과 주봉은 아직 모른다」고 적었습니다. 그 자리를 그대로 닫았습니다.

30분봉까지 더해, 이 앱이 주는 여섯 기간 전부를 같은 방식으로 쟀습니다.

| | 낮음 | 중간 | 높음 | 짝지은 「높음−낮음」 |

|---|---|---|---|---|

| 15분봉 20종 | 5.96 | 10.28 | 14.89 | +8.93 ± 0.31 |

| 30분봉 20종 | 6.35 | 10.84 | 15.35 | +9.00 ± 0.25 |

| 1시간봉 20종 | 6.46 | 10.99 | 14.90 | +8.45 ± 0.40 |

| 4시간봉 20종 | 6.59 | 10.82 | 15.02 | +8.43 ± 0.29 |

| 일봉 주요 20종 | 7.10 | 11.85 | 15.42 | +8.32 ± 0.32 |

| 일봉 이중상장 60종 | 7.29 | 11.56 | 16.44 | +9.15 ± 0.57 |

| 주봉 20종 | 5.71 | 8.97 | 13.67 | +8.41 ± 1.24 |

일곱 번의 측정 모두 세 칸이 단조롭게 늘고, 간격이 8.3~9.2봉입니다. 절대값도 서로

2봉 안쪽입니다.

15분봉의 「높음」은 대략 3시간 45분, 주봉의 「높음」은 대략 14주 — **시간은 600배 넘게

다른데 봉 수는 같습니다.**

앱과 같은 창을 씁니다

처음에 주봉만 100봉 창으로 쟀다가 고쳤습니다. 앱은 여섯 기간 모두 150봉을 받습니다 —

앱과 다른 것을 재면 그 수는 앱의 것이 아닙니다.

문장 대신 목록과 맞춥니다

「여섯 기간 전부」라는 문장은 앱이 기간을 하나 더 늘리는 순간 조용히 거짓이 됩니다.

그래서 검사가 문구가 아니라 차트의 기간 목록 개수와 맞춰 봅니다. 기간을 늘리면

검사가 먼저 걸리고, 그 기간에서 재기 전에는 통과하지 못합니다.

아직 이 표가 말하지 않는 것

잰 것은 다 자란 창입니다. 신규 상장처럼 이력이 짧은 자리는 표본 부족 판정이 따로

말의 세기를 조이는데, 이번 측정에서는 그 경로가 한 번도 켜지지 않았습니다(0.0%).

그 자리는 아직 모릅니다.

  • 내부 검증 1645건 · 화면 기준선 237장. versionCode 443.
v3.7.02026-08-01
신뢰도 눈금이 기간을 건너 그대로 섭니다

이 앱은 15분·30분·1시간·4시간·일·주봉을 같은 신뢰도 눈금으로 보여 줍니다. 그런데

지금까지 잰 것은 전부 일봉이었습니다. 「규칙에 기간별 상수가 없다」는 검사가 있지만,

그건 코드가 갈라지지 않는다는 뜻이지 눈금이 실제로 같은 값을 낸다는 뜻이 아닙니다.

1시간봉·4시간봉을 20종씩 3,000봉 받아 같은 방식으로 쟀습니다:

| | 낮음 | 중간 | 높음 | 짝지은 「높음−낮음」 |

|---|---|---|---|---|

| 일봉 주요 20종 | 7.10 | 11.85 | 15.42 | +8.32 ± 0.32 |

| 일봉 이중상장 60종 | 7.29 | 11.56 | 16.44 | +9.15 ± 0.57 |

| 1시간봉 20종 | 6.46 | 10.99 | 14.90 | +8.45 ± 0.40 |

| 4시간봉 20종 | 6.59 | 10.82 | 15.02 | +8.43 ± 0.29 |

네 표본·세 기간에서 간격이 8.3~9.2봉입니다. 세 칸의 절대값도 서로 1봉 안쪽입니다.

시간이 아니라 봉입니다

1시간봉의 「높음」은 대략 15시간, 일봉의 「높음」은 대략 15일입니다 — **시간은 24배

다른데 봉 수는 같습니다. 같은 문장이 두 사람에게 다른 시간을 말하는 것이 맞는

동작**이고, 그 사실을 화면에 적었습니다.

15분봉과 주봉은 아직 모릅니다

잰 것은 1시간·4시간·일봉입니다. 재지 않은 것을 잰 것처럼 적지 않습니다 — 화면은

잰 셋만 듭니다. 이 앱이 되풀이해 고쳐 온 「재 놓고 화면에 안 닿은」의 거울상이고, 이쪽은

안 재고 적는 것이라 더 나쁩니다. 검사로 막았습니다.

  • 내부 검증 1645건 · 화면 기준선 237장. versionCode 442.
v3.6.92026-08-01
반대표는 다 같은 값이 아닙니다

이 앱은 이미 「여덟 지표 중 넷은 반대표를 던지는 일이 1~3%뿐이라, 그 위의 표는 새 근거가

아니라 조용한 넷이 켜진 것」이라고 적어 두었습니다. **반대쪽 절반은 물어본 적이

없었습니다** — 자주 반대하는 지표들의 반대표는 얼마나 값어치가 있는가.

자료 두 벌로, 지표가 종합 판정과 반대 방향일 때와 같은 방향일 때의 판독 수명을

코인 단위로 짝지어 견줬습니다:

| 지표 | 반대표 비율 | 반대표일 때 수명 차이 |

|---|---|---|

| 이동평균 | 0.8% · 1.6% | 짝지을 표본 없음 |

| ADX | 1.7% · 3.8% | −6.95 ± 0.94 · −3.85 ± 2.05 |

| RSI | 3.2% · 5.3% | −2.69 ± 0.89 · −4.35 ± 1.07 |

| 스퀴즈 | 5.9% · 7.4% | −4.33 ± 0.61 · −4.79 ± 1.60 |

| MACD | 11.8% · 11.3% | −3.84 ± 0.39 · −4.28 ± 0.55 |

| MFI | 13.2% · 16.9% | −2.02 ± 0.36 · −1.71 ± 0.50 |

| OBV | 18.4% · 15.3% | −2.51 ± 0.28 · −3.01 ± 0.58 |

| 스토캐스틱 | 30.1% · 38.1% | −0.39 ± 0.23 · −0.43 ± 0.36 |

스토캐스틱은 가장 자주 반대하면서 가장 뜻이 없습니다. 열에 서넛은 반대하는데 그때

판독은 0.4봉밖에 못 삽니다 — 다른 지표들의 2~7봉과 견주면 사실상 0입니다. 두 표본이

같은 값을 냅니다.

그런데 빼도 나아지지 않습니다

반대표 수는 신뢰도를 정하는 재료입니다. 뜻 없는 반대표가 눈금을 흐릴 것 같아

스토캐스틱을 세지 않고 신뢰도를 다시 내 봤습니다:

| 높음 − 낮음 수명 차이 | 지금 규칙 | 스토캐스틱 뺌 |

|---|---|---|

| 주요 20종 | 7.80 | 7.86 |

| 짝지은 차이 | +0.07 ± 0.17 | |

잡음 안입니다. 신뢰도는 이미 개수가 아니라 계열로 한 번 거르고 있어, 스토캐스틱

한 표가 눈금을 좌우하지 못합니다. 규칙은 그대로 둡니다 — 재서 나아지지 않는 것을

바꾸면 위험만 새로 생깁니다.

대신 화면이 말합니다

사용자는 「강세 5 · 약세 1」을 봅니다. 그 1이 스토캐스틱이면 「한 지표가 반대한다」는

사실은 맞지만 무게는 다릅니다. 그것을 적어 두는 편이, 규칙을 건드리는 것보다

정직합니다.

함께 확인하고 아무것도 안 한 것

자료의 구멍을 걱정했습니다 — 거래소 점검이나 거래 정지로 봉이 빠지면 지표가 그것을

모르고 연속인 척 계산합니다. 업비트 원화 시장 267종 전체를 최근 150봉으로 훑어 보니

빠진 날이 하나도 없었습니다. 걱정에 실체가 없어 여기서 접습니다.

  • 내부 검증 1642건 · 화면 기준선 237장. versionCode 441.
v3.6.82026-08-01
알림이 한 봉 기다렸다 울립니다 — 헛울림이 넷에 하나에서 여섯에 하나로

알림은 이 앱에서 오탐 비용이 가장 큰 자리입니다. 화면은 안 보면 그만이지만 알림은

사용자를 깨우고, 몇 번 헛울리면 알림 자체를 끕니다. 그런데 이 앱은 알림 관문 넷을

쌓아 두고도 그 관문들이 실제로 거르는지 잰 적이 없었습니다.

실제 일봉으로 관문을 하나씩 얹어 가며 쟀습니다(주요 20종 8년치 · 이중상장 60종 620일,

앱의 규칙을 그대로 흉내 내 — 관문에 걸리면 상태를 갱신하지 않고 건너뜁니다):

| | 발화 수 | 5봉 내 되돌아감 | 발화 간격 중앙값 |

|---|---|---|---|

| 관문 없음 | 16,689 · 8,800 | 49.1% · 51.8% | 2봉 · 2봉 |

| +걸터앉음 | 13,014 · 6,844 | 46.8% · 49.1% | 2봉 · 2봉 |

| +국면 | 4,493 · 2,311 | 39.0% · 41.6% | 4봉 · 3봉 |

| +신뢰도 | 2,813 · 1,299 | 33.8% · 33.1% | 10봉 · 9봉 |

| +스퀴즈(옛 전부) | 1,983 · 891 | 27.4% · 25.5% | 15봉 · 16봉 |

| +1봉 확인(지금) | 1,302 · 590 | 16.4% · 16.1% | 28봉 · 28봉 |

관문들은 일하고 있었습니다

넷을 다 지나면 발화가 88~90% 줄고 헛울림이 절반이 됩니다(49→27, 52→26). 발화 간격

중앙값도 2봉에서 15~16봉으로 벌어집니다 — 코드가 걱정하던 「닷새 만에 같은 알림이 또」가

실제로 해결돼 있었습니다.

다만 「걸터앉음」이 가장 적게 일합니다(−2.3·−2.7%p인데 발화의 22%를 가져갑니다).

그래도 두 표본 모두 방향이 같고 비용이 없어 그대로 둡니다 — 재서 나쁘지 않은 것을

취향으로 걷어내지 않습니다.

새 관문 — 하루 늦게, 대신 정확하게

넷을 다 지나고도 넷에 하나가 닷새 안에 되돌아갔습니다. 새 판정이 **직전 봉에서도

같았을 때만** 울리게 하니 16%로 떨어졌습니다 — 두 표본이 0.3%p 안에서 같습니다.

값은 하루 지연과 발화 34% 감소입니다. 이 알림이 말하는 판독은 중앙값 15봉 넘게

살고, 하루 늦게 정확한 편이 낫습니다.

지우는 것이 아니라 미루는 것입니다 — 다른 관문들과 같이 상태를 갱신하지 않고

건너뛰므로, 확인되면 다음 주기에 울립니다. 그 구분이 사라지면 알림이 영영 안 오게 되므로

검사로 못 박았습니다.

  • 내부 검증 1638건 · 화면 기준선 237장. versionCode 440.
v3.6.72026-08-01
유일하게 판정이 안 나 있던 주장에 결론을 냈습니다

이 앱은 화면의 예측 주장을 열두 개 남짓 재 왔습니다. 여섯은 지지되지 않았고 넷은

확인됐는데, 하나만 「모르겠다」로 남아 있었습니다:

> 「되밀리는 비율이 조금 높았습니다(58% 대 55%, 70% 대 67%). 방향은 두 자료가 같지만

> 크기가 작아, 확실하다고 말하지는 않겠습니다.

자료 두 벌이 새로 생겼으니 결론을 낼 수 있습니다.

다시 쟀습니다 — 다른 잣대로

원래 수치는 「값이 다시 닿았을 때 되밀리는 비율」입니다. 이번에는 **그 되밀림이 실제로

지켜졌는가를 봤습니다 — 되밀린 뒤 20봉 안에 그 선을 종가로** 넘지 않았으면 지켜진

것으로 세고, 코인 단위로 짝을 지었습니다.

| | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 거래 몰린 되밀림 | 30.47 ± 0.98 | 32.14 ± 1.16 |

| 얇은 되밀림 | 25.61 ± 0.45 | 26.65 ± 0.62 |

| 짝지은 차이 | +4.85 ± 1.13 | +5.49 ± 1.25 |

둘 다 양수이고 표준오차의 4.3배입니다. 앞선 두 자료(+3·+3)까지 **네 벌 모두 같은

방향**입니다.

「확실하지 않다」를 내렸습니다 — 크기는 그대로 작습니다

방향이 네 번 일정한 것은 우연으로 보기 어렵습니다. 그러나 크기는 여전히 몇 %p 수준이고

바탕 비율이 26~30%라, 넷에 셋은 여전히 뚫립니다. 화면은 그 둘을 함께 말합니다 —

「네 번 다 같은 방향이지만 크기는 작습니다」.

유보를 내린 것은 방향에 대해서지 크기에 대해서가 아닙니다. 그 구분이 사라지지

않도록 검사로 못 박았습니다.

수치를 덮어쓰지는 않았습니다

58/55·70/67은 「되밀리는 비율」이고 새 수치는 「되밀림이 지켜진 비율」입니다. 서로 다른

것을 잰 수라 나란히 적었지 갈아 끼우지 않았습니다 — 앞 판에서 무효화 선 수치를

그대로 둔 것과 같은 이유입니다.

  • 내부 검증 1633건 · 화면 기준선 237장. versionCode 439.
v3.6.62026-08-01
「확인됨」으로 남겨 둔 네 주장을 다시 쟀습니다

앞 판에서 신뢰도 눈금의 수치가 옛 규칙의 것임을 알았습니다. 그러면 같은 일이 다른

수치에도 있을 수 있습니다 — 화면에 실측 수치를 인용하는 문구가 24개입니다. 그중 이

앱이 「확인됨」으로 남겨 둔 네 주장을 처음 보는 자료 두 벌로 다시 쟀습니다.

① 동의 사다리 — 방향 유지, 수치 낡음

| 강세·약세 지표 수의 차이 | 주요 20종 | 60종 |

|---|---|---|

| 한 끗 | 6.61 ± 0.24 | 6.27 ± 0.67 |

| 다섯 이상 | 14.56 ± 0.20 | 14.99 ± 0.37 |

화면은 「10봉 대 19~20봉」이었습니다. 비는 그대로(2.2배·2.4배)인데 절대값이 낮습니다.

지금 값으로 고쳤습니다.

② 20일선 반대 — 방향 유지, 수치 낡음

| | 주요 20종 | 60종 |

|---|---|---|

| 20일선 반대 | 5.13 ± 0.23 | 4.21 ± 0.34 |

| 같은 쪽 | 12.92 ± 0.20 | 13.04 ± 0.30 |

화면은 「8봉 대 18봉」. 역시 비는 더 벌어졌고(2.5배·3.1배) 절대값이 낮습니다. 고쳤습니다.

③ 무효화 선 — 갈라 놓는 힘은 그대로, 수치는 덮어쓰지 않았습니다

| | 무너짐 | 지켜짐 |

|---|---|---|

| 20봉 | 86.74 · 84.34 | 34.32 · 34.91 |

| 5봉 | 44.04 · 39.05 | 9.95 · 11.10 |

5봉 값은 화면의 「39% 대 6%」와 가깝고 20봉 값은 「56% 대 16%」와 멉니다. **구성이 다르기

때문입니다** — 화면의 수치는 「선이 무너진 뒤」 20봉을 세고, 이번 측정은 「관측 시점」부터

셉니다. 다른 것을 잰 수로 남의 수를 덮어쓰지 않습니다. 확인한 것은 갈라 놓는 힘이

그대로라는 것입니다(2.5배·2.4배 · 4.4배·3.5배).

④ 마른 눌림목 — 그대로 재현

| 20봉 안에 이전 고점 되찾음 | 주요 20종 | 60종 |

|---|---|---|

| 마름 | 46.5% | 47.0% |

| 유지 | 70.0% | 59.3% |

화면은 「53%·45% 대 73%·63%」. 네 수가 모두 가깝습니다. 고칠 것이 없습니다.

밟은 함정 둘

`supportResistance` 는 이름과 달리 (저항, 지지) 순서로 돌려줍니다. 뒤집어 넘겼더니

무효화 선이 한 건도 안 나왔습니다(9,573건이 0). 화면 코드는 제대로 넘기고 있었고

잘못은 측정 쪽이었습니다 — 0이 나왔을 때 「드물구나」로 읽지 않고 왜 0인지 본 것

유일한 안전장치였습니다.

그리고 「판정이 뒤집혔다」를 처음엔 중립으로 바뀐 것까지 셌습니다. 그랬더니 선이

지켜진 경우조차 60%가 「뒤집힘」이 됐습니다. 앱이 그 말로 뜻하는 것은 강세가 약세가

되는 일이지 판정이 흐려지는 일이 아닙니다.

  • 내부 검증 1628건 · 화면 기준선 237장. versionCode 438.
v3.6.52026-08-01
이 앱이 잘한다고 말하는 단 하나를, 본 적 없는 자료로 확인했습니다

여러 판에 걸쳐 「방향은 못 맞힌다」를 재 왔습니다. 그러면서 「대신 판독이 얼마나 오래

가는지는 가른다」를 근거로 남겼는데, 그 근거는 옛 자료 두 벌에서, 그리고 옛 규칙으로

잰 것이었습니다.

그 사이 신뢰도 규칙이 여러 번 바뀌었습니다 — 높음 문턱 3→5, 스퀴즈를 「중간」으로, 기간

정렬을 아예 제거. 규칙이 바뀌었으면 그때 잰 수치는 더 이상 그 규칙의 것이 아닙니다.

지금 규칙으로, 처음 보는 자료 두 벌에서 다시 쟀습니다

| | 주요 20종 8년치 | 이중상장 60종 620일 |

|---|---|---|

| 낮음 | 7.10 ± 0.23 (n=1,653) | 7.29 ± 0.35 (n=882) |

| 중간 | 11.85 ± 0.20 (n=5,298) | 11.56 ± 0.28 (n=2,599) |

| 높음 | 15.42 ± 0.26 (n=3,031) | 16.44 ± 0.49 (n=1,255) |

| 짝지은 차이(높음−낮음) | +8.32 ± 0.32 | +9.15 ± 0.57 |

세 칸이 단조롭게 늘고, 짝지은 차이가 표준오차의 26배·16배입니다. 이 앱이 잰 것 중

가장 뚜렷한 결과이고, 이번엔 처음 보는 자료에서 나왔습니다.

규칙 변경이 눈금을 날카롭게 만들었습니다

옛 수치는 높음 20봉·보통 17봉·낮음 13봉으로 간격이 7봉이었습니다. 지금은 절대값이

낮지만(표본과 기간이 다릅니다) 간격이 8.3·9.2봉으로 넓습니다. 최근 판들에서 한 규칙

변경이 실제로 「높음」과 「낮음」을 더 잘 갈라 놓았다는 뜻입니다.

화면의 수치도 고쳤습니다

옛 규칙으로 잰 20·17·13이 그대로 적혀 있었습니다. **옛 규칙으로 잰 수를 새 규칙 옆에

두면, 맞는 것처럼 보이지만 아무것도 재지 않은 수가 됩니다.** 최근 판들에서 세 번 고친

「재 놓고 다른 화면엔 안 닿은」 것과 같은 자리이고, 방향만 반대입니다 — 이쪽은 고친 뒤

수치를 안 옮긴 것입니다.

「맞을 확률이 아닙니다」는 그대로 둡니다. 수명 눈금이 뚜렷할수록 적중률로 읽히기 쉬운데,

재서 아는 것은 정반대입니다 — 방향은 기준선을 못 넘었고, 가장 센 판정은 오히려 음수였습니다.

  • 내부 검증 1624건 · 화면 기준선 237장. versionCode 437.
v3.6.42026-08-01
재지 않고 말해 온 마지막 통설을 쟀습니다

이 앱은 화면의 예측 주장을 하나씩 재 왔습니다. 그런데 국면 논리를 떠받치는 문장만은

통설 그대로였습니다:

> 「이런 구간에서는 과매수·과매도가 실제로 되돌림으로 이어지는 편이라, **이 지표가

> 비교적 잘 맞습니다.**」

시험도 어느 문구가 뽑히는지만 봤지 그 말이 참인지는 한 번도 묻지 않았습니다.

화면이 말하고 계산까지 바꾸는 자리인데 근거가 없었습니다.

① 앱이 조언하는 상황이 거의 없습니다

표본 두 벌(주요 20종 8년치 18,522봉 · 이중상장 60종 9,060봉):

| | 주요 20종 | 60종 |

|---|---|---|

| 횡보 구간 | 29.4% | 31.6% |

| RSI 극단(≤30·≥70) | 10.1% | 8.5% |

| 둘 다 | 0.5% | 0.7% |

서로 무관하다면 3.0%·2.7%여야 할 자리라 4~6배 드뭅니다. 당연한 일입니다 — RSI가

극단에 닿으려면 값이 크게 움직여야 하고, 그러면 ADX가 올라 더는 횡보가 아닙니다.

조언이 가리키는 칸이 사실상 비어 있었습니다.

② 비교 주장도 지지되지 않습니다

짝지은 차이(횡보 − 추세, 코인 단위): −11.96 ± 5.99(15종) · −16.73 ± 15.17(9종).

두 표본 모두 부호가 반대입니다 — 「횡보에서 더 잘 맞는다」가 아니라 오히려 못했습니다.

다만 위 ①의 이유로 표본이 얇아 결정적이지는 않습니다. 그래서 화면은 「반대다」가 아니라

「확인되지 않았다」고 말합니다.

절대값은 쓰지 않았습니다

칸 안에서 RSI 극단에 조건을 걸면 「값이 그 칸의 극단에 있을 때」를 고른 셈이라 되돌림이

저절로 나옵니다. 그래서 각 국면의 기준선 대비 값은 쓰지 않습니다. 편향이 두 국면에

똑같이 걸리므로 짝지은 차이만 씁니다.

계산은 바꾸지 않습니다

추세 구간에서 RSI를 「판단 보류」로 두는 규칙이 있습니다. 위 결과는 그 보류의 근거를

지지하지 않지만, 2.0·1.1 표준오차짜리 결과로 판정 규칙을 뒤집지는 않습니다 — 코인

15종·9종입니다. 고친 것은 아는 것처럼 말하던 문구뿐입니다.

같은 주장의 네 번째 자리

「가격에 거래가 따라붙지 않아 이어질 힘이 약할 수 있습니다」도 함께 고쳤습니다. 앞 판에서

잰 것과 같은 이야기인데, 이름이 달라 새 가드에 안 걸렸습니다.

  • 내부 검증 1621건 · 화면 기준선 237장. versionCode 436.
v3.6.32026-08-01
같은 잘못을 세 번 했습니다 — 이번엔 구조로 막습니다

이 앱은 어떤 주장을 재서 「앞일을 못 맞힌다」로 결론 내면 그 사실을 어딘가에 적습니다.

그런데 같은 주장을 말하는 다른 자리는 옛말 그대로 남았습니다. 세 번 반복됐습니다:

| 잰 곳 | 안 고쳐진 곳 |

|---|---|

| 방향 우위 없음 | 머리글 「추세 지속에 무게」 — v3.6.2 에서 고침 |

| `PriceFlow` 「앞일은 말하지 않는다」 | 「힘이 빠지는」·「바닥을 다지는」 — v3.6.1 에서 고침 |

| 학습 화면 「재 봤습니다 … 오히려 낮았습니다」 | 지표 표의 「반등 가능성」·「조정 가능성」 |

셋 다 사용자가 어느 화면을 여느냐에 따라 다른 말을 듣는 상태였습니다. 학습 화면을

연 사람만 진실을 보고, 지표 표만 본 사람은 옛 약속을 읽습니다.

이번 자리 — OBV 다이버전스

학습 화면은 이미 「다이버전스는 곧 방향이 뒤집힌다는 뜻이 아닙니다」라고 적고 있는데,

지표 표는 여전히 「하락 동력 약화·반등 가능성」이라고 말했습니다.

학습 화면의 수치는 옛 자료에서 왔고 RSI 쪽을 포함하므로, 지표 표가 말하는 **OBV

다이버전스**를 따로 쟀습니다. 표본 두 벌(주요 20종 8년치 · 이중상장 60종 620일),

코인×180봉을 한 칸으로 삼고 신호 방향에 맞춘 기준선을 뺐습니다:

| 기준선 대비(%p) | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 다이버전스 방향 | −2.83 ± 1.66 | −0.22 ± 2.61 |

| 평소 OBV 방향 | −2.03 ± 0.54 | −2.06 ± 0.69 |

다이버전스도 기준선을 못 넘습니다.

판정 규칙은 그대로 둡니다

다이버전스가 잡히면 평소 OBV 방향을 덮어쓰고 그 방향으로 표를 던지는데, **평소 OBV

방향도 기준선을 못 넘습니다.** 바꿔도 나아지지 않는 것을 바꾸면 위험만 새로 생깁니다.

고친 것은 약속하는 문구뿐입니다.

구조로 막습니다

낱말 목록을 지키는 검사가 아닙니다 — 경로를 지킵니다. 어떤 개념이 「재서 앞일을 못

맞힌다」로 결론 났으면, 문구 지도가 그 개념으로 내보내는 모든 문구가 앞일을 약속하지

않아야 합니다. 지도는 소스에서 캐냅니다 — 손으로 목록을 적으면 다음에 문구가 하나 더

생겼을 때 조용히 빠지고, 그게 바로 이 검사가 막으려는 일입니다.

  • 내부 검증 1617건 · 화면 기준선 237장. versionCode 435.
v3.6.22026-08-01
가장 앞 문장이 앞일을 말하고 있었고, 그 방향으로 틀렸습니다

이 앱은 「방향에서 얻는 우위는 없다」를 이미 재 두었습니다. 그런데 **머리글은 고쳐지지

않았습니다:**

  • 「다수 지표가 약세로 정렬 — 하락 추세 지속에 무게.
  • 「다수 지표가 강세로 정렬 — 상승 추세 지속에 무게.」 재 놓고 화면에 안 닿은 자리입니다. 그래서 이번엔 판정 칸별로 다시 쟀습니다.
어떻게 쟀나

표본 두 벌(주요 20종 8년치 · 이중상장 60종 620일). 국면이 섞이지 않게 코인 × 180봉

을 한 칸으로 삼고, 그 칸 안에서 아무 봉에나 20봉 뒤 오를 확률을 따로 구해 뺐습니다.

겹치는 관측을 그냥 세면 우위가 있는 것처럼 보입니다 — 이 앱이 세 번 밟은 함정입니다.

| 기준선 대비(%p) | 주요 20종 | 이중상장 60종 |

|---|---|---|

| 강한 약세(0) | −4.10 ± 0.76 | −4.07 ± 0.97 |

| 약세(1) | +1.22 ± 1.14 | −4.22 ± 1.68 |

| 강세(3) | −2.30 ± 1.19 | −0.25 ± 1.75 |

| 강한 강세(4) | −4.11 ± 0.78 | −11.56 ± 1.18 |

가장 세게 말하는 두 칸이, 두 표본 모두에서, 기준선보다 못합니다. 「우위가 없다」가

아니라 음수입니다. 지표가 한쪽으로 몰릴 무렵이면 값은 이미 그쪽으로 간 뒤라는

뜻으로 읽힙니다.

「지속」을 다르게 읽으면 — 그쪽은 맞습니다

「지속」을 「판독이 오래 간다」로 읽을 수도 있습니다. 그건 사실입니다:

| 판독 수명 | 주요 20종 | 60종 |

|---|---|---|

| 강한 판정(0·4) | 12.5봉 | 12.1봉 |

| 약한 판정(1·3) | 8.7봉 | 7.9봉 |

그래서 없애지 않고 갈라 적었습니다 — 「지금 상태」는 말하고, 「값이 그쪽으로 더

간다」는 빼고, 기준선 이야기를 함께 둡니다. 스퀴즈 문구에서 이미 쓴 방식입니다.

지지된 쪽은 남겼습니다

「추세 강도(ADX)가 높고 방향도 일치」할 때 판독이 2봉가량 더 오래 간 것은 두 표본이

같은 방향입니다(13.16 대 11.06 · 12.70 대 10.84). 그건 적되, 옛 문구의 「현재 방향의

지속력이 큽니다」는 뺐습니다 — 방향 쪽은 재서 음수였습니다.

뒤집으면 돈이 된다는 뜻은 아닙니다

음수라고 해서 반대로 하면 된다는 말이 아닙니다. 이 앱은 매매를 권하지 않고, 그 방향으로

쓰려면 비용과 미끄러짐까지 재야 합니다. 여기서 한 일은 틀린 말을 빼는 것 하나입니다.

  • 내부 검증 1613건 · 화면 기준선 237장. versionCode 434.
v3.6.12026-08-01
「현재 흐름 종합」이 앞일을 말하고 있었습니다

`PriceFlow` 는 스스로 맨 위에 이렇게 적어 두었습니다 — **「앞일은 말하지 않는다. 전부

있었던 일이다.」** 그런데 정작 두 상태의 문구가 앞일을 말하고 있었습니다:

  • 「추세선은 위인데 고점은 낮아지고 있습니다 — 살아 있으나 힘이 빠지는 구간입니다.」
  • 「추세선은 아래인데 저점은 높아지고 있습니다 — 눌려 있으나 바닥을 다지는 구간입니다.」 스스로 세운 규칙과 화면이 어긋난 자리라 쟀습니다.
어떻게 쟀나

표본 두 벌 — 주요 20종 8년치(관측 11,117)와 이중상장 60종 620일(관측 5,460).

코인 단위로 짝을 지어, 같은 추세 방향끼리만 견줬습니다(방향을 섞으면 상승장이 답을

대신 냅니다). 잣대는 둘입니다: 추세가 뒤집힐 때까지 몇 봉인가, 20봉 뒤 값

몇 %인가.

| 그 상태 − 같은말 | | 수명 | 20봉 뒤 값 |

|---|---|---|---|

| 힘빠짐 | 주요 20종 | −3.32 ± 0.79 | −0.34 ± 2.43 |

| | 60종 | +0.54 ± 3.22 | +3.82 ± 1.91 |

| 바닥다짐 | 주요 20종 | −2.28 ± 0.49 | −0.21 ± 0.95 |

| | 60종 | −1.67 ± 0.57 | −1.67 ± 0.80 |

「힘이 빠진다」 — 지지되지 않습니다

한 표본은 추세가 3.3봉 일찍 끝났다고 하는데, 다른 표본에서는 부호가 뒤집혔습니다

(20봉 뒤 값은 오히려 +3.82로 좋았습니다). 이 앱이 계속 써 온 기준이 그렇습니다 —

두 표본에서 같은 방향이 아니면 말하지 않습니다.

「바닥을 다진다」 — 절반만 맞습니다

하락 추세가 일찍 끝나는 것은 두 표본 모두 같은 방향입니다(2.3봉·1.7봉). 그런데

33봉 중에서 2봉이고, 무엇보다 값이 오르지 않습니다 — 20봉 뒤 값이 같거나 오히려

낮았습니다(−1.67%p). 「바닥」이라는 낱말이 함의하는 것과 반대입니다.

그래서 좋은 쪽만 적지 않고 둘 다 적었습니다.

상태 자체는 그대로입니다

추세선과 고점·저점이 어긋난다는 것은 실제로 있는 일이고 읽을 거리입니다. 없앤 것은

그것으로 앞일을 안다는 말뿐입니다. 이 앱이 열한 개의 예측 주장에 대해 해 온 것과

같습니다 — 화면에서 기능을 빼지 않고, 과장만 뺍니다.

  • 내부 검증 1609건 · 화면 기준선 237장. versionCode 433.
v3.6.02026-08-01
다른 시장이 다르게 보면, 그 사실을 말합니다

앞 판에서 원화·달러 지표가 갈리는 원인이 통화임을 확인했습니다. 그러면 남는 질문은

하나입니다 — 얼마나 갈리고, 갈리면 무슨 일이 생기는가.

두 거래소에 모두 상장된 60종 · 620일의 일봉으로, 이 앱의 판정을 양쪽에 그대로

돌려 견줬습니다(150봉 창 · 10봉 간격 · 관측 2,880건):

| | |

|---|---|

| 라벨(0~4)이 다름 | 32.9% |

| 방향이 다름 | 16.7% |

| 점수 평균차 | 20.6 |

여섯에 한 번은 방향 자체가 갈립니다.

갈리면 판독이 절반밖에 못 삽니다

판독이 방향이 뒤집히기까지 몇 봉 사는지 쟀습니다(최대 40봉, 코인 단위로 짝을 지어):

| 보는 쪽 | 저쪽도 같은 말 | 저쪽은 다른 말 | 짝지은 차이 |

|---|---|---|---|

| 업비트 | 12.96봉 | 5.79봉 | +7.18 ± 0.89 |

| 바이낸스 | 12.02봉 | 7.42봉 | +4.61 ± 0.75 |

그저 「애매한 판정」인 것은 아닌가

갈리는 비율 자체가 판정 세기에 매여 있습니다(|점수|<25 에서 34.6~48.5%, ≥75 에서

3.0~3.4%). 그러면 이 신호는 「점수가 낮다」를 돌려 말하는 것일 수 있습니다.

점수 칸을 고정하고 같은 코인 안에서 다시 견줬습니다:

| 점수 칸 | 업비트 | 바이낸스 |

|---|---|---|

| 25–49 | +5.77 ± 0.94 | +4.06 ± 1.20 |

| 50–74 | +3.20 ± 1.34 | +2.48 ± 2.29 |

| 75 이상 | 코인 1종 | −8.57 ± 3.55 (4종) |

남습니다. 같은 점수 칸 안에서 8.6봉이 2.8봉이 됩니다 — 앱이 지금까지 볼 수 없던

정보입니다. 다만 판정이 강한 자리는 재서 모릅니다(갈리는 일이 3%뿐이고 부호도

뒤집혔습니다). 그 자리에서는 말하지 않습니다.

방향은 못 맞힙니다 — 그래서 신뢰도는 안 건드립니다

20봉 뒤 적중률의 짝지은 차이는 +2.89 ± 5.36−6.76 ± 3.92 로 부호가

엇갈립니다. 이 앱이 잰 다른 신호들과 같은 모양입니다 — **더 오래 살지만 더 맞지는

않습니다. 그래서 신뢰도는 그대로 두고 사실 한 줄만** 얹었습니다. 저쪽 시장은

근거가 아니라 다른 표본이라, 신뢰도에 넣으면 같은 지표를 두 번 세게 됩니다.

자리는 따로 재서 정했습니다

경고 목록은 「짧게 사는 것부터」가 규칙인데, 위 수치는 다른 표본에서 왔습니다.

섞으면 순서가 틀어지므로(v3.5.88 에서 한 번 데었습니다) 이웃할 두 줄을 같은 표본에서

다시 쟀습니다:

| | 판독 수명 |

|---|---|

| 전체(방향 있는 것) | 11.99봉 |

| 20일선 반대 | 3.90봉 ← 여전히 가장 짧습니다 |

| 다른 시장이 다른 말 | 5.57봉 ← 새 줄 |

| 지표 충돌 | 6.82봉 |

기존 두 줄의 순위가 이 표본에서도 그대로 재현됐습니다. 그 사이가 새 줄의 자리입니다.

함께 확인하고 고치지 않은 것
  • MFI 가 미세 변화에 결정을 맡깁니다. 전형가격이 거의 안 움직인 봉에서 그 봉의 자금 전부가 한쪽으로 몰립니다 — 가격에 상수를 곱하기만 해도 판정이 바뀌는 경우를 찾았습니다(120번 중 2번). 무승부 문턱을 0.2%까지 둬 봤지만 판독 수명이 11.26 → 11.32봉으로, 표준오차(0.17)보다 작은 차이였습니다. 결과에 닿지 않아 고치지 않습니다.
  • 내부 검증 1605건 · 화면 기준선 237장. versionCode 432.
v3.5.992026-08-01
앱이 적어 둔 설명 하나가 틀렸습니다

원화 차트와 달러 차트에서 같은 코인의 지표가 다르게 나오는 것을 두고, 이 앱은 그동안

「환율이 섞이고 일봉 마감 시각도 다르기 때문(09:00 KST vs 00:00 UTC)」 이라고

설명해 왔습니다. v3.5.64 노트에도 그렇게 적혀 있습니다.

09:00 KST 는 00:00 UTC 입니다. 같은 순간을 두 시간대로 적은 것뿐입니다. 두 거래소의

응답으로 확인했습니다 — 업비트 `candle_date_time_utc = 2026-08-01T00:00:00`, 바이낸스

`openTime = 2026-08-01T00:00:00 UTC`. 경계는 같습니다.

그런데 차이는 실재합니다

같은 날 경계로 여덟 종의 120일을 다시 견줬습니다(RSI 14):

| | 업비트 | 바이낸스 | 차이 |

|---|---|---|---|

| BTC | 37.6 | 44.8 | 7.2 |

| ETH | 46.5 | 51.0 | 4.5 |

| XRP | 33.6 | 41.4 | 7.8 |

| SOL | 35.6 | 41.8 | 6.2 |

| ADA | 51.8 | 54.9 | 3.1 |

| DOGE | 34.7 | 39.5 | 4.8 |

| LINK | 41.5 | 46.0 | 4.5 |

| AVAX | 40.4 | 43.7 | 3.3 |

여덟 종 모두 업비트가 낮습니다. 한쪽으로 쏠린 차이라 잡음이 아닙니다.

마감 시각이 같으니 남는 원인은 통화입니다. 원화 계열에는 환율 움직임과 프리미엄이

함께 섞여 있어, 같은 코인이라도 값의 오르내림 자체가 다릅니다. 그래서 지표도 갈립니다.

화면은 그대로입니다

이 설명은 코드 주석과 지난 노트에만 있었고 사용자 문구에는 실린 적이 없습니다(다섯

언어 전부 확인). 그래서 화면에 보이는 것은 달라지지 않습니다 — 달라진 것은 「왜 그런가」

에 대한 앱의 답입니다. 가격이 온 거래소의 캔들을 쓰는 규칙(v3.5.64)은 **이유가 바뀌어도

그대로 옳습니다.**

관측이 맞으면 설명은 잘 검증되지 않습니다. 이 자리도 여러 판을 지나며 아무도 짚지

않았습니다. 틀린 설명이 돌아오지 않도록 검사로 못 박았습니다.

  • 내부 검증 1597건 · 화면 기준선 237장. versionCode 431.
v3.5.982026-08-01
알림이 봉 마감 전에 헛울리지 않는지 확인했습니다
  • 바로 앞 판에서 봉 초반의 판정은 다섯에 하나가 마감 때와 다르다는 것을 쟀습니다. 알림 워커는 15분마다 돌고 일봉이면 한 봉에 96번 평가하니, 그 흔들림이 알림에도 그대로 나타날 것 같았습니다. 덜 자란 시점에 「알림감」이던 것이 마감까지 살아남는지 쟀습니다. | 봉 진행률 | 덜 자란 시점 알림감 | 마감 때 사라짐 | 마감 때 반대 방향 | |---|---|---|---| | 10% | 1,752 · 2,809 | 1.3% · 1.9% | 0.0% · 0.0% | | 25% | 1,759 · 2,820 | 1.0% · 1.6% | 0.0% · 0.0% | | 50% | 1,760 · 2,843 | 0.6% · 1.1% | 0.0% · 0.0% | 화면은 21%가 달라지는데 알림은 1~2%만 사라지고 방향은 한 건도 안 뒤집힙니다. 이유가 있습니다. 알림의 문 넷(문턱에 걸터앉음·방향 없는 국면·낮은 신뢰도·변동성 응축)은 정확히 불안정한 상태를 걸러 냅니다. 봉이 자라며 판정이 흔들리는 것도 같은 상태들입니다. 그래서 봉 타이밍을 겨냥한 적이 없는데 그것까지 막아 줍니다. 그러니 알림에 「봉이 덜 자랐다」 문을 따로 달지 않습니다. 막을 것이 1~2%뿐이고, 그만큼을 더 미루면 알림이 하루 늦어집니다.
  • 화면에는 이 사실을 말하고(앞 판), 알림에는 문을 안 답니다. 화면과 알림은 묻는 질문이 다르므로 답도 다릅니다 — 이 앱이 스퀴즈에서 이미 한 번 겪은 갈림길입니다.
  • 내부 검증 1594건 · 화면 기준선 237장. versionCode 430.
v3.5.972026-08-01
오늘 봉이 덜 자랐다는 것을 말하기 시작했습니다
  • 이 앱의 판정은 진행 중인 봉을 그대로 넣어 계산합니다. 그래야 오늘의 움직임이 반영되고, 실시간으로 갱신되는 화면과도 맞습니다. 다만 그 봉이 자라는 동안 판정도 함께 움직입니다. 얼마나 움직이는지는 한 번도 재 보지 않았습니다. 마지막 봉을 진행률만큼만 만들어 넣고 다 자란 봉과 견줬습니다. | 봉 진행률 | 판정이 다름 | 방향이 반대 | 신뢰도가 다름 | |---|---|---|---| | 10% | 21.4% · 22.1% | 2.3% · 1.9% | 18.2% · 18.8% | | 25% | 18.7% · 19.6% | 1.8% · 1.4% | 15.9% · 16.1% | | 50% | 13.6% · 14.0% | 1.2% · 0.9% | 11.2% · 11.3% | | 75% | 7.7% · 7.2% | 0.5% · 0.4% | 5.7% · 6.0% | 봉 초반에 보시는 판정은 다섯에 하나가 마감 때와 다릅니다. 그런데 방향은 거의 안 뒤집힙니다(2% 안팎). 바뀌는 것은 라벨의 세기와 신뢰도이지 「오르는 쪽이냐 내리는 쪽이냐」가 아닙니다. 그래서 계산은 바꾸지 않았습니다. 진행 중인 봉을 빼면 하루 종일 어제 판정을 보여 주게 되고, 그건 이 화면이 하려는 일이 아닙니다. 바꾼 것은 말해 주지 않던 것뿐입니다. 봉이 절반도 안 자랐을 때 판독 아래에 그 사실이 적힙니다.
  • 자료 나이와 다른 사실입니다. 이 앱은 이미 「받아 온 자료가 묵었는가」를 말합니다. 이것은 「봉이 덜 자랐는가」입니다 — 방금 받은 자료라도 봉은 덜 자랐을 수 있습니다.
  • 봉 간격을 스스로 재므로 시간봉·주봉에서도 같은 규칙이 섭니다.
  • 내부 검증 1594건 · 화면 기준선 237장. versionCode 429.
v3.5.962026-08-01
거래가 얇은 코인에서도 규칙이 서는지 확인했습니다
  • 이 앱은 수백 종을 보여 주는데, 측정은 늘 거래가 활발한 코인으로 했습니다. 얇은 코인을 보시는 분에게도 같은 말이 통하는지는 확인한 적이 없었습니다. 신규 상장 60종을 거래대금 중앙값으로 갈라(값 × 거래량) 위·아래 절반에서 다시 쟀습니다. | | 두터운 쪽 30종 | 얇은 쪽 30종 | |---|---|---| | 전체 평균 판독 수명 | 10.9봉 | 10.1봉 | | 신뢰도 간격 (높음−낮음) | +9.5 | +9.2 | | 20일선 간격 (같은쪽−반대) | +7.8 | +7.0 | | 합의 간격 (차이 ≥5 − ≤2) | +7.4 | +7.1 | 전체 평균으로 나누면 0.87·0.91 / 0.72·0.69 / 0.68·0.70 — 사실상 같습니다. 이로써 결론이 견고한 축이 넷이 됐습니다: | 축 | 확인한 것 | |---|---| | 표본 | 주요 10종(8년) · 신규 60종(2023~) | | 기간 | 일봉 · 3일봉 · 주봉 | | 지평 | 5봉 · 10봉 · 20봉 · 40봉 | | 유동성 | 두터운 쪽 · 얇은 쪽 | 그리고 잰 것이 배포된 앱의 동작과 같다는 것도 따로 확인했습니다.
  • 내부 검증 1589건 · 화면 기준선 237장. versionCode 428.
v3.5.952026-08-01
잰 것이 실제로 배포되는 앱의 동작인지 확인했습니다
  • 이 앱은 여러 판에 걸쳐 실제 자료로 규칙을 재고 고쳐 왔습니다. 그런데 그 측정은 전부 300봉 창으로 돌렸고, 앱이 실제로 받는 것은 150봉입니다. 두 배 긴 이력으로 잰 셈이라, 결론이 배포된 앱에 그대로 적용되는지 확인해야 했습니다. 같은 봉에서 두 창으로 판정을 내고 견줬습니다. | | 견준 횟수 | 판정이 다름 | |---|---|---| | 주요 10종 | 4,933 | 0 (0.0%) | | 신규 60종 | 7,888 | 0 (0.0%) | 핵심 성질도 그대로였습니다 — 신뢰도 간격 150봉 +9.1 / 300봉 +9.1, 20일선 간격 +8.3 / +8.3. 왜 같은가 — 앞서 잰 것이 이미 답을 갖고 있었습니다. 「자료가 여물었다」 기준을 고칠 때 「봉이 몇 개면 지표가 여무는가」를 쟀고, 150봉에서 종합 판정이 달라지는 비율이 0.0%였습니다. 이 앱의 지표는 되돌아보는 기간이 가장 긴 것이 26(MACD)이라 150봉이면 초기값의 영향이 남지 않습니다. 서로 다른 두 측정이 같은 답을 냈습니다. 한쪽은 「몇 봉이면 여무는가」를, 다른 한쪽은 「두 창의 판정이 다른가」를 물었는데 둘 다 150봉에서 0.0%입니다.
  • 앱이 받는 봉 수가 여물기 기준 아래로 내려가면 이 앱이 잰 모든 것이 배포본과 어긋나기 시작합니다. 그 관계를 검사로 못 박았습니다.
  • 내부 검증 1589건 · 화면 기준선 237장. versionCode 427.
v3.5.942026-08-01
「20봉」이 맞춘 수가 아닌지 확인했고, 처음 며칠이 가장 날카롭다는 것을 찾았습니다
  • 이 앱이 잰 것은 거의 전부 「20봉 뒤」입니다. 그런데 그 수를 고른 근거가 없었습니다. 20봉에서만 보이는 것이라면 기간을 맞춘 셈이니, 여러 기간에서 다시 쟀습니다. 무효화 선 — 무너짐 → 판정 뒤집힘 / 지켜짐 → 뒤집힘 | 기간 | 주요 10종 | 신규 60종 | |---|---|---| | 5봉 | 38.8% 대 6.1% (+32.7) | 34.5% 대 5.8% (+28.7) | | 10봉 | 54.5% 대 8.8% (+45.7) | 50.9% 대 8.5% (+42.4) | | 20봉 | 55.8% 대 17.1% (+38.7) | 55.4% 대 16.1% (+39.3) | | 40봉 | 59.5% 대 34.6% (+24.9) | 57.7% 대 28.8% (+28.8) | 마른 눌림목 — 이전 고점 되찾음 도 전 구간에서 −21 ~ −35 포인트로 한결같았습니다. 둘 다 5~40봉 전 구간에서 섭니다. 20봉은 맞춘 수가 아니었습니다. 그리고 새로 찾은 것 — 처음 며칠이 가장 날카롭습니다. 비율로 보면 5봉에서 38.8% 대 6.1%로 6.4배입니다. 20봉의 3.3배보다 훨씬 큽니다. 오래 볼수록 지켜진 쪽도 결국 뒤집히기 때문입니다(40봉이면 34.6%). 그래서 화면이 그 사실을 함께 말합니다. 이 선의 쓸모는 「몇 주 뒤」가 아니라 「며칠 안에 다시 보라」입니다 — 원래 적혀 있던 「그 아래에서 봉이 마감하면 다시 보세요」가 옳았고, 이제 그 말에 수가 붙었습니다.
  • 내부 검증 1587건 · 화면 기준선 237장. versionCode 426.
v3.5.932026-08-01
규칙이 기간을 타지 않는다는 것을 확인했습니다
  • 이 앱의 판정 규칙은 전부 일봉으로 재서 만들었습니다 — 신뢰도 문턱, 합의 사다리, 20일선 대비 위치, 마른 눌림목, 스퀴즈 천장. 그런데 화면의 기간 정렬 줄은 같은 규칙을 1시간·4시간봉에도 그대로 적용합니다. 그래도 되는지는 한 번도 확인한 적이 없었습니다. 같은 일봉을 3개씩·7개씩 묶어 3일봉과 주봉을 만들고 같은 것을 다시 쟀습니다. | | 일봉 | 3일봉 | 주봉 | |---|---|---|---| | 표본 | 22,263 | 6,413 | 1,739 | | 전체 평균 판독 수명 | 11.8봉 | 10.1봉 | 8.7봉 | | 합의 사다리 간격 | +7.7 | +6.5 | +6.3 | | 신뢰도 간격 | +9.1 | +8.4 | +6.9 | | 20일선 간격 | +8.3 | +7.1 | +6.7 | 셋 다 세 기간에서 모두 섭니다. 그리고 간격이 전체 평균에 비례해 줄어듭니다 — 전체 평균으로 나누면 합의 0.65·0.64·0.72, 신뢰도 0.77·0.83·0.79, 20일선 0.70·0.70·0.77. 놀랄 만큼 고릅니다. 기간이 길어지면 모든 것이 같은 비율로 느려질 뿐 규칙의 힘은 그대로입니다. 그래서 두 가지가 정당해집니다: 1. 기간 정렬 줄이 같은 규칙을 써도 됩니다. 그동안은 가정이었고 이제 확인입니다. 2. 기간별로 문턱을 따로 두지 않습니다. 「1시간봉에는 다른 값이 맞지 않을까」는 그럴듯한 생각이지만 근거가 없고, 기간마다 상수를 따로 두면 손댈 자리가 다섯 배로 늘고 각각을 다시 재야 합니다.
  • 기간별 상수가 슬며시 생기지 않는지 지키는 검사를 붙였습니다.
  • 내부 검증 1587건 · 화면 기준선 237장. versionCode 425.
v3.5.922026-08-01
작동하는 것들을 겹쳐 봤습니다 — 지금이 이미 그만큼 합니다
  • 여러 판에 걸쳐 「작동한다」고 확인한 것이 넷입니다. 넷을 따로 쟀지 함께 쓴 적은 없었습니다. 겹치면 더 잘 갈리지 않을까 싶어 재 봤습니다. 「좋은 조건」 셋을 세었습니다 — 20일선이 판정과 같은 쪽 · 표 차이 5 이상 · 마른 눌림목이 아님. | 좋은 조건 | 주요 10종 | 신규 60종 | |---|---|---| | 1개 이하 | 4.3봉 (9.0%) | 4.3봉 (11.1%) | | 2개 | 9.9봉 | 9.1봉 | | 3개 | 14.4봉 | 13.6봉 | | 구간 단위 | +10.0 (15/15) | +8.3 (11/11) | 곧은 사다리입니다. 그런데 지금의 신뢰도가 거의 같은 일을 합니다 — 높음 15.4·15.0봉, 낮음 6.5·5.3봉, 구간 단위 +8.7과 +8.7. 한 표본에서 조금 낫고 다른 표본에서 조금 못합니다. 바꿀 이유가 되지 않습니다. 다만 하나는 말할 값이 있습니다 — 눈에 보이는 사실 셋이 다섯 겹 장치와 맞먹습니다. 여섯째 장치를 얹어 크게 나아지기를 기대할 자리가 아닙니다. 20일선을 신뢰도에 넣어도 달라지지 않습니다. 넷 중 신뢰도가 아직 안 보는 것이 「20일선 대비 위치」입니다. 스퀴즈를 「보통 천장」으로 옮겨 크게 나아졌던 것처럼 이것도 천장으로 넣어 봤습니다. | | 주요 10종 | 신규 60종 | |---|---|---| | 지금 | +8.7 ± 0.7 | +8.7 ± 1.1 | | 20일선 천장 추가 | +8.8 ± 0.7 | +8.8 ± 1.1 | +0.1봉. 이유가 분명합니다 — 「높음」은 이미 표 차이 5 이상을 요구하는데, 그 상태는 값이 20일선의 옳은 쪽에 있는 경우와 거의 겹칩니다. 같은 사실을 두 번 세는 셈입니다. 그래서 20일선은 단서 줄로만 둡니다. 거기서는 제 몫을 합니다 — 판정과 어긋날 때 판독이 8.4·8.5봉으로 짧아지고, 그건 보실 값이 있는 사실입니다.
  • 둘 다 「그럴듯해서 하고 싶어지는」 변경이라, 재서 안 한 근거를 코드에 못 박아 두었습니다.
  • 내부 검증 1585건 · 화면 기준선 237장. versionCode 424.
v3.5.912026-08-01
처음으로 「애매하다」고 적었습니다
  • 화면에 남은 마지막 검증 가능한 문구를 쟀습니다 — 「그 되밀림이 거래가 몰린 채 일어났다면 되밀림에 무게가 실린다」. 저항선을 만든 마지막 되밀림 봉의 거래량이 평소의 1.5배를 넘었는지로 가르고, 값이 그 선에 다시 닿았을 때 되밀리는 비율을 견줬습니다. | | 주요 10종 | 신규 60종 | |---|---|---| | 거래 몰린 되밀림이 만든 선 | 58.4% (n=736) | 69.7% (n=980) | | 평범한 되밀림이 만든 선 | 55.2% (n=3,827) | 67.4% (n=5,409) | | 구간 단위 | +6.8 ± 2.8 (11/14) | +3.7 ± 2.3 (7/11) | 방향은 두 자료가 같은데 한쪽이 문턱을 못 넘습니다. 지금까지 채택한 것들(20일선 15/15·11/11, 무효화 선 15/15·11/11)과 버린 것들(적응형 문턱 6/15·6/10, 캔들 모양 오차 안) 사이입니다. 앞선 여섯은 다 뚜렷한 예/아니오였는데 이건 아닙니다. 그래서 「맞다」도 「아니다」도 아닌 잰 그대로를 적었습니다 — 수치와 함께 「확실하다고 말하지는 않겠습니다」를. 애매한 것을 애매하다고 말할 수 있는 것도 정확도의 일부입니다. 한쪽으로 밀어 붙이면 둘 중 하나는 거짓말이 됩니다.
  • 이로써 화면의 예측성 문구를 전부 검증했습니다. 여섯은 확인되지 않았고, 하나는 애매하며, 작동한다고 확인된 것은 무효화 선·지표 합의·20일선 대비 위치·마른 눌림목 넷입니다.
  • 내부 검증 1582건 · 화면 기준선 237장. versionCode 423.
v3.5.902026-08-01
「스퀴즈 뒤에 큰 움직임이 온다」— 폭은 그대로였습니다
  • 화면에 남은 예측성 문구를 훑어 검증 가능한 것을 찾았습니다. 가장 널리 믿기고 가장 자주 뜨는 것(판독의 30%)이 변동성 응축 → 「큰 움직임이 임박」이었습니다. 이건 방향이 아니라 에 대한 예측이라 따로 쟀습니다. 이후 20봉의 움직인 폭오간 폭을 그 시점의 평소 하루 폭으로 나눠 견줬습니다. | | 주요 10종 | 신규 60종 | |---|---|---| | 움직인 폭 (스퀴즈 / 아님) | 2.73 / 2.75배 | 1.90 / 2.11배 | | 오간 폭 | 5.50 / 5.51배 | 5.82 / 5.11배 | 차이가 없습니다. 게다가 이 잣대는 스퀴즈 쪽에 유리하게 기울어 있습니다 — 평소 하루 폭으로 나누는데 스퀴즈 구간은 그 값이 작으니 같은 움직임도 크게 나옵니다. 유리하게 재고도 차이가 없었습니다. 그래도 스퀴즈는 쓸모가 있습니다 — 다른 쪽으로. 이 상태의 판독은 평균보다 짧게 갑니다(14.0·14.3봉 대 전체 16.8·16.6봉). 그래서 신뢰도 「보통 천장」으로 남겨 두었고, 그 결정은 앞서 재서 확인됐습니다. 「곧 크게 움직인다」가 아니라 「이 판독을 세게 말할 자리가 아니다」입니다. 지지·저항과 같은 모양입니다 — 값이 그 자리에서 되튀지는 않지만 그 자리를 지나면 지표가 달라집니다. 널리 쓰이는 말이 가리키는 쪽과 실제로 쓸모 있는 쪽이 다릅니다. 이로써 여섯 번째입니다 — 지지·저항, 피보나치, 다이버전스, 캔들 모양, 기간 정렬, 그리고 스퀴즈. 여섯 다 화면에 남기고 말만 고쳤습니다.
  • 내부 검증 1582건 · 화면 기준선 237장. versionCode 422.
v3.5.892026-08-01
기간 정렬의 「눌림목·거스르는 반등」도 재 봤습니다
  • 앞서 기간끼리 맞느냐 엇갈리느냐가 판독의 수명도 방향도 가르지 못한다는 것을 쟀고, 그 이유로 신뢰도에서 뺐습니다. 그런데 화면은 모양별로 더 구체적인 말을 하고 있었습니다 — 「긴 기간↑ 짧은 기간↓ 는 눌림목」, 「긴 기간↓ 짧은 기간↑ 는 거스르는 반등이라 되돌려지기 쉽다」. 뒤엣것은 검증 가능한 예측이므로 쟀습니다. 각 모양 뒤 20봉의 방향을 같은 시기의 기준선과 견줬습니다. | 모양 | 주요 10종 | 신규 60종 | |---|---|---| | 거스르는 반등 (긴↓ 짧↑) | +0.0 포인트 | +0.4 | | 눌림목 (긴↑ 짧↓) | −5.1 | −1.4 | 「되돌려지기 쉽다」는 기준선과 정확히 같습니다. 「잠깐 되돌리는 중」은 오히려 기준선 아래인데, 두 표본의 크기가 달라(구간 단위 −5.7 대 −1.0) 그쪽도 단정하지 않습니다. 이치는 이미 적어 두었던 그대로입니다 — 긴 기간은 짧은 기간을 포함해 만든 것이라 서로 다른 근거가 아닙니다. 같은 자료를 두 번 세는 셈입니다. 줄은 그대로 두고 말을 고쳤습니다. 「1h·4h·1D 가 지금 어느 쪽인가」는 사실이고 볼 값이 있습니다. 바꾼 것은 그 뒤에 붙던 예측입니다. 이로써 다섯 번째입니다 — 지지·저항, 피보나치, 다이버전스, 캔들 모양, 그리고 기간 정렬. 다섯 다 화면에 남기고 말만 고쳤습니다.
  • 검사 하나가 또 표현을 보고 있었습니다. 영어 문구가 대문자 「Measured」로 시작하는데 가드는 소문자만 찾고 있었습니다. 앞서 일본어에서 같은 실수를 했으므로 이번엔 대소문자를 가리지 않게 고쳤습니다.
  • 내부 검증 1582건 · 화면 기준선 237장. versionCode 421.
v3.5.882026-08-01
판독 아래 이유 목록의 순서가 세 잣대로 섞여 있었습니다
  • 최근 여러 판에 걸쳐 이유 줄을 넷 더했습니다. 줄이 너무 많아진 것 아닌가 싶어 세어 봤는데, 걱정할 자리가 아니었습니다 — 94%가 4줄 이하, 평균 2.05줄입니다. 대신 다른 것이 나왔습니다. 이 목록은 「짧게 사는 것부터」 놓는 것이 규칙인데, 그 「짧다」가 서로 다른 잣대에서 왔습니다.
  • 「자리를 안 잡음」 → 라벨이 바뀌기까지(0.7봉)
  • 갈림·ADX·스퀴즈 → 낮음 표본 안에서의 방향 수명(4·7·10봉)
  • 문턱·20일선 → 전체 표본의 방향 수명(12.6·8.4봉) 견줄 수 없는 수를 한 줄에 세우고 있었습니다. 전부 같은 표본·같은 잣대로 다시 쟀습니다: | 이유 | 주요 10종 | 신규 60종 | 옛 자리 → 새 자리 | |---|---|---|---| | 20일선 반대 | 8.4봉 | 8.5봉 | 5위 → 1위 | | 갈림 | 10.3 | 10.3 | 2위 → 2위 | | ADX 상충 | 12.7 | 12.2 | 3위 → 3위 | | 문턱 걸터앉음 | 12.8 | 12.6 | 7위 → 4위 | | 자리 안 잡음 | 13.0 | 13.4 | 1위 → 5위 | | ADX 약함 | 14.5 | 13.7 | 4위 → 6위 | | 스퀴즈 | 14.0 | 14.3 | 8위 → 7위 | | 마른 눌림목 | 17.0 | 15.2 | 6위 → 8위 | 가장 급한 줄이 다섯째, 가장 덜 급한 줄이 여섯째에 있었습니다. 두 표본의 순위가 거의 같아 그대로 씁니다. 함께 확인한 것 — 자주 뜨는 줄이 아무 말도 못 하는 것은 아닙니다. ADX 줄은 판독의 95%에 뜹니다. 「그렇게 자주 뜨면 뜻이 없는 것 아닌가」 싶어 쟀는데 오히려 가장 잘 갈랐습니다 — 강함 18.8·19.2봉 대 약함 14.5·13.7봉. 절반씩 갈라 놓고 그 둘이 실제로 다르면, 자주 뜨는 것이 곧 정보량입니다.
  • 순서를 못 박고 있던 검사 셋이 제 몫을 해서 이 변경을 잡아 세웠습니다. 셋 다 잰 값으로 갱신했습니다.
  • 내부 검증 1582건 · 화면 기준선 237장. versionCode 420.
v3.5.872026-08-01
눌림목에서 거래량이 마르면 나쁩니다 (고전 교과서와 반대였습니다)
  • 앞 판에서 정리한 외부 자료의 남은 후보를 쟀습니다. 여기서 통설이 정면으로 충돌합니다 — 고전 교과서는 「조정 중 거래량이 줄면 팔 사람이 없다는 뜻이라 좋다」고 가르치고, 최근 자료들은 「거래량이 유지된 눌림목이 가장 좋다」고 합니다. 둘 다일 수는 없습니다. 강세 판정에서 「앞 5봉은 오르고 뒤 3봉은 그 고점 아래로 마감」을 눌림목으로 잡고, 두 구간의 평균 거래량 비율로 갈라, 20봉 안에 이전 고점을 되찾았는지를 셌습니다. | 눌림목 거래량 | 주요 10종 | 신규 60종 | |---|---|---| | 마름 (직전의 절반 미만) | 53.1% (n=260) | 45.3% (n=979) | | 다소 줄음 (0.5~0.8배) | 72.5% | 59.8% | | 비슷 (0.8~1.2배) | 73.5% | 63.3% | | 오히려 늘음 (1.2배 초과) | 72.5% | 69.3% | 구간 단위로 「마름 − 살아있음」은 −5.4 ± 2.4(양수 2/15)−10.3 ± 2.0(양수 1/11). 신규 60종은 45.3% → 69.3% 로 단조롭게 늘어납니다. 고전 쪽이 틀렸습니다. 거래량이 절반 아래로 마른 눌림목은 추세가 이어지는 비율이 눈에 띄게 낮습니다. 다만 「많을수록 좋다」로는 읽지 않습니다. 마름만 다르고 나머지 셋은 서로 비슷합니다 (72.5 · 73.5 · 72.5). 그래서 화면이 말하는 것도 「말랐다」 한 가지뿐입니다 — 없는 눈금을 만들지 않습니다.
  • 판정은 바꾸지 않습니다. 사실 하나를 더 얹을 뿐입니다.
  • 강세 판정에서만 말합니다. 약세에 「눌림목」을 말하면 없는 이야기가 됩니다.
  • 내부 검증 1582건 · 화면 기준선 237장. versionCode 419.
v3.5.862026-08-01
외부 기술적 분석 자료 35편을 재 봤고, 하나를 채택했습니다
  • 유튜브 기술적 분석 영상 35편(자막 26만 자)의 주장을 정리하고, 이 앱이 실제 자료로 잰 결과와 겹쳐 읽었습니다. 정리한 문서는 `docs/TA-PRINCIPLES.md` 에 있습니다. 세 갈래가 같은 문장에 도달합니다. 가격 위치(볼린저·이평·지지저항), 모멘텀(RSI·CCI·스토캐스틱), 거래량(볼륨 오실레이터·OBV) — 서로 다른 것을 재는 세 갈래가 결론에서 만납니다. > 같은 값이 국면에 따라 정반대를 뜻한다. 그래서 국면을 먼저 정해야 하고, > 고정된 문턱은 바로 그 이유로 실패한다. 이 앱은 그 전제를 이미 코드로 갖고 있고, 스토캐스틱 측정에서 같은 구조를 확인했습니다. 그들이 파는 해법(적응형 RSI 문턱)은 재 보니 나아지지 않았습니다. 최근 120봉 RSI의 상위·하위 10% 백분위를 문턱으로 삼아 고정 70/30 과 견줬습니다. 신호는 세 배 가까이 자주 나오는데(11.7% → 28.1%) 가르는 힘은 그대로였습니다(구간 단위 +0.3 ± 2.7, +2.4 ± 3.8). 전제는 옳고 해법은 검증되지 않습니다. 채택한 것 — 값이 20일 평균의 어느 쪽인가 이 앱은 이동평균 5·10·20 의 정배열은 봤지만, 값이 20일선 위인가는 안 봤습니다. 정배열은 세 선의 순서이고 이건 값과 한 선의 관계라 다른 사실입니다. | | 주요 10종 | 신규 60종 | |---|---|---| | 판정과 20일선이 같은 쪽 | 17.6봉 | 17.5봉 | | 판정과 20일선이 반대쪽 | 8.4봉 | 8.5봉 | | 구간 단위 차이 | +9.2 (15/15) | +8.0 (11/11) | 두 표본의 구간이 하나도 빠짐없이 같은 방향입니다. 무효화 선에 맞먹는 크기이고, 이 앱이 잰 상태 중 두 번째로 짧습니다. 판정은 안 바꿉니다. 말의 세기도 건드리지 않고 사실만 얹습니다 — 지지·저항· 피보나치·다이버전스·캔들에서 해 온 것과 같습니다.
  • 쓰지 않은 것: 자체 지표(계산식 비공개), 「승률 95%」류 수치(밴드 안에 머무는 비율을 승률로 바꿔 말한 것), 되짚어 고른 종목 사례.
  • 내부 검증 1576건 · 화면 기준선 237장. versionCode 418.
v3.5.852026-08-01
「방향 적중률 52%」 옆에 견줄 것을 놓았습니다 (기준선은 49%였습니다)
  • 여러 판에 걸쳐 「방향 적중률 52%」를 적어 왔습니다. 52%는 동전 던지기보다 조금 나아 보이고, 그래서 「조금은 맞는다」로 읽힙니다. 그 읽기가 틀렸습니다. 기준선을 빼야 합니다. 같은 기간에 아무 봉에서나 20봉 뒤 오를 확률부터 재야 합니다. 그것이 이 앱이 넘어야 할 선입니다. | | 기준선(아무 봉) | 강세 판정 | 약세 판정 | |---|---|---|---| | 주요 10종 | 49.3% | 51.8% | 52.8% | | 신규 60종 | 35.6% | 35.5% | 63.8% | 신규 60종의 약세 「63.8%」는 뛰어나 보이지만, 그 기간에 봉의 64.4%가 내렸습니다. 시기별로 빼면 넷 다 0 이하입니다. | | 강세 판정 | 약세 판정 | |---|---|---| | 주요 10종 | −1.6 ± 1.8 | −0.1 ± 1.8 | | 신규 60종 | −3.6 ± 3.0 | −3.0 ± 1.9 | 방향에서 이 앱이 얻는 우위는 없습니다. 합치면 좋아 보이는 이유 — 스스로 속기 쉬운 자리 전부 합쳐 세면 강세 +2.4, 약세 +2.1로 나아 보입니다. 시기별로는 음수인데도요. 이 앱이 오르는 구간에 강세 판정을 더 많이 내기 때문입니다 — 그러면 시장이 오른 공이 판정의 공으로 계산됩니다. 같은 함정을 이미 두 번 밟았습니다(겹치는 관측 세기, 피보나치 목록에만 스윙 양 끝 넣기). 그래서 화면에 견줄 것을 함께 놓았습니다. 숫자를 지우는 것이 아니라 견줄 것을 주는 것이 이 앱이 계속 해 온 일입니다. 우위가 없다는 것이 쓸모없다는 뜻은 아닙니다. 같은 자료에서 무효화 선(무너지면 56%, 지켜지면 16%)과 판독의 수명(신뢰도 높음 21봉, 낮음 11봉)은 뚜렷합니다. 이 앱이 잘하는 것은 앞날을 맞히는 일이 아니라 지금을 정확히 말하는 일입니다.
  • 내부 검증 1571건 · 화면 기준선 237장. versionCode 417.
v3.5.842026-08-01
캔들 모양도 재 봤습니다 — 네 번째이자 마지막 통설입니다
  • 지지·저항, 피보나치, 다이버전스에 이어 캔들 모양을 쟀습니다. 이 앱이 화면에 내면서 검증하지 않은 마지막 자리였습니다. 패턴이 잡힌 봉과 안 잡힌 봉을 놓고 20봉 뒤 상승 비율을 견줬습니다: | | 패턴 없음 | 망치형 | 상승 장악 | 유성형 | 하락 장악 | |---|---|---|---|---|---| | 주요 10종 | 49.3% | 52.5% | 48.8% | 49.6% | 46.9% | | 신규 60종 | 38.5% | 38.8% | 39.3% | 36.4% | 36.7% | 묶어서 구간 단위로 보면 강세 +1.8 ± 1.8+1.4 ± 1.3, 약세 −1.0 ± 1.4−2.7 ± 1.5. 부호는 교과서와 같은 방향입니다 — 강세 모양 뒤가 조금 더 오르고 약세 모양 뒤가 조금 덜 오릅니다. 그런데 그 「조금」이 1~3 포인트이고 오차막대도 그만합니다. 예측으로 쓸 수 없습니다. 이 줄의 문장들은 이미 조심스럽게 적혀 있었습니다 — 「아래쪽에서 받아졌다는 뜻이지, 오른다는 약속은 아닙니다」. 이제 왜 그렇게 적었는지를 잰 수치로 함께 밝힙니다. 네 판에 걸친 정리 | 통설 | 결과 | |---|---| | 많이 닿은 자리일수록 크게 반응한다 | 임의 가격과 구분 안 됨 | | 되돌림은 피보나치 선에서 멈춘다 | 61.8%가 옆 임의 비율보다 낫지 않음 | | 다이버전스는 가장 신뢰하는 신호 | 신호 없을 때보다 오히려 낮음 | | 캔들 모양이 방향을 알려 준다 | 부호는 맞지만 오차 안 | 넷 다 화면에서 지우지 않았습니다. 이 앱이 그리는 것은 「지금 차트가 어떻게 생겼는가」 이고 그건 사실입니다. 바꾼 것은 앞날에 대한 약속처럼 읽히던 문장뿐입니다. 그리고 같은 자료로 작동하는 것도 찾았습니다 — 무효화 선(무너지면 56%, 지켜지면 16%), 지표 합의 사다리(한 끗 10봉 → 다섯 이상 19봉), 신뢰도의 수명 순서(21/16/11봉).
  • 내부 검증 1568건 · 화면 기준선 237장. versionCode 416.
v3.5.832026-08-01
피보나치와 다이버전스도 재 봤습니다 (둘 다 확인되지 않았습니다)
  • 지난 판에서 「많이 닿은 자리일수록 크게 반응한다」가 확인되지 않는다는 것을 쟀습니다. 같은 방식으로 앱이 가르치던 나머지 둘도 쟀습니다. 「되돌림은 피보나치 선에서 멈춘다」— 확인되지 않았습니다. 같은 구간에서 피보나치 비율과 그 사이의 임의 비율을 함께 놓고, 그 값에 닿은 뒤 되돌아선 비율을 셌습니다(닿은 횟수 두 자료 합쳐 19,250건): | | 38.2% | 45% | 50% | 55% | 61.8% | 70% | |---|---|---|---|---|---|---| | 주요 10종 | 60.9% | 59.2% | 59.9% | 59.3% | 59.2% | 57.4% | | 신규 60종 | 55.5% | 57.6% | 58.6% | 57.3% | 56.2% | 57.3% | 61.8%가 바로 옆 임의 비율보다 낫지 않습니다 — 두 자료 모두에서 그렇습니다. 「다이버전스는 가장 신뢰하는 신호」— 앞날은 못 말합니다. 강세 다이버전스가 난 뒤 20봉 뒤에 값이 올라 있던 비율: | | 강세 신호 | 신호 없음 | |---|---|---| | 주요 10종 | 48.4% (n=314) | 49.3% (n=7,506) | | 신규 60종 | 32.0% (n=874) | 35.8% (n=11,633) | 둘 다 오히려 낮습니다. 무엇을 바꿨나 — 기능이 아니라 말입니다. 셋 다 화면에서 지우지 않았습니다. 이 앱이 그리는 것은 「지금 차트가 어떻게 생겼는가」이고 그건 사실입니다. 바꾼 것은 앞날에 대한 약속처럼 읽히던 문장입니다.
  • 피보나치: 되돌림의 깊이를 재는 눈금으로는 그대로 쓸 만합니다. 다만 그 선에서 멈출 것을 기대하지 마십시오.
  • 다이버전스: 「힘이 빠지고 있다」는 지금의 사실입니다. 앞날의 예고가 아닙니다.
  • 그리고 같은 선이 다른 쓸모로는 실제로 작동합니다 — 무효화 기준으로 쓰면 무너질 때 판정이 뒤집힌 비율 56%, 지켜지면 16%입니다.
  • 내부 검증 1568건 · 화면 기준선 237장. versionCode 415.
v3.5.822026-08-01
「많이 닿은 자리일수록 크게 반응한다」— 재 보니 확인되지 않았습니다
  • 이 앱은 지지·저항을 그리면서 배움 문구에 이렇게 적어 두었습니다 — 「여러 번 닿았던 자리일수록 많은 사람이 보고 있어 반응이 큽니다」. 널리 쓰이는 말이고, 이 앱이 스스로 검증한 적은 없었습니다. 대조군을 두고 쟀습니다. 앱이 그은 저항선과, 같은 거리만큼 떨어진 임의의 가격(그 거리의 0.6배·1.4배 지점)을 함께 놓고, 고가가 닿은 뒤 5봉 안에 2% 넘게 되밀린 비율을 셌습니다. | | 앱이 그은 선 | 가짜 선 | 차이 | |---|---|---|---| | 주요 10종 | 56.3% (n=4,008) | 57.0% (n=8,067) | −0.7 | | 신규 60종 | 69.5% (n=6,311) | 69.1% (n=12,632) | +0.4 | 가짜 선을 가까운 쪽·먼 쪽으로 갈라도 같았습니다(57.6% · 56.4% / 68.7% · 69.5%). 구분되지 않습니다 — 두 표본에서 부호마저 반대입니다. 그렇다고 선이 쓸모없는 것은 아닙니다 — 쓸모가 다른 데 있습니다. 같은 선을 무효화 기준으로 쓸 때는 잰 값이 뚜렷합니다. 선이 무너지면 20봉 안에 판정이 뒤집힌 비율 56%, 지켜지면 16% 입니다(바로 앞 판에서 확인). 두 결과는 어긋나지 않습니다 — 값이 그 자리에서 되튀지는 않지만, 그 자리를 지나면 지표들이 달라집니다. 앞엣것은 시장의 성질이고 뒤엣것은 계산의 성질입니다. 그래서 선은 그대로 두고 말을 고쳤습니다. 「되튐을 맞힌다」가 아니라 「넘어서면 판독이 바뀐다」가 이 선의 쓸모입니다.
  • 확인되지 않았다는 사실 자체를 화면에 적었습니다. 널리 쓰이는 말일수록 「우리는 재 봤고 확인 못 했다」가 쓸모 있습니다.
  • 내부 검증 1565건 · 화면 기준선 237장. versionCode 414.
v3.5.812026-08-01
「깨지는 선」을 한 칸 아래로 옮겼습니다 (덜 무너지면서 더 잘 맞습니다)
  • 지난 판에서 이 선의 약속(52% 대 15%)이 지켜지고 있다는 것을 확인했습니다. 그런데 함께 드러난 것이 있습니다 — 그 선은 20봉 안에 74~76%가 무너집니다. 넷에 셋 넘게 일어나는 일을 「만약 무너지면」이라 부르고 있었던 셈입니다. 원인은 가장 가까운 지지선을 쓰기 때문입니다. 가장 가까운 자리는 대개 얕고 최근에 생긴 선이라 평소 흔들림만으로도 닿습니다. 선 고르는 규칙 다섯을 두 자료로 견줬습니다: | 규칙 | 주요 10종 (무너짐 / 무너지면 / 지켜지면) | 신규 60종 | |---|---|---| | 가장 가까운 (지금까지) | 74.0% / 51.7% / 13.3% | 75.5% / 50.6% / 15.7% | | 두 번째로 가까운 | 63.8% / 56.6% / 15.7% | 67.0% / 55.0% / 16.7% | | 1×ATR 밖 | 68.5% / 52.5% / 15.6% | 68.7% / 46.4% / 16.4% | | 2×ATR 밖 | 72.1% / 50.8% / 13.8% | 68.2% / 43.7% / 16.0% | | 3% 밖 | 69.5% / 52.7% / 15.0% | 72.8% / 50.3% / 15.4% | 두 번째 선이 덜 무너지면서 더 잘 가릅니다 — 두 표본 모두에서 그렇습니다. 둘 다 나아지는 것은 드문 일이라 그 쪽으로 옮겼습니다.
  • 없거나 20% 밖이면 첫 번째로 물러납니다. 더 나은 선을 고르려다 줄 자체를 잃으면 사용자는 무효화 기준을 아예 못 봅니다.
  • 화면의 수치도 새 선에 맞춰 고쳤습니다 — 56% 대 16%, 「열에 여섯 넘게 무너진다」. 함께 잡힌 것 — 제가 만들 뻔한 결함 처음 구현에서는 「평소 폭으로 너무 멀면 첫 번째로 물러난다」로 만들었습니다. 그러면 평소 폭을 알려 준 것이 선을 「바꾸는」 일이 됩니다. 이 앱에는 「평소 폭을 안다고 없던 줄이 생기거나 달라지지 않는다」는 규칙이 있고, 그 검사가 실제로 멈춰 세웠습니다. 고르는 일과 걸러 내는 일을 분리했습니다.
  • 후속 알림(선이 무너졌다고 다시 알리기)도 재 봤습니다. 발화가 지금의 0.80배라 총량이 두 배가 됩니다. 알림을 아예 꺼 버리게 만드는 값이라 넣지 않았습니다.
  • 내부 검증 1562건 · 화면 기준선 237장. versionCode 413.
v3.5.802026-08-01
「이 선이 무너지면」이라는 약속을 처음으로 검증했습니다
  • 화면은 「₩88,700,000(3.8% 아래)가 무너지면 지금 판독은 흔들립니다」라고 말합니다. 판정도 신뢰도도 여러 판에 걸쳐 쟀는데 이 줄만은 아무도 재지 않았습니다 — 그러면서 화면에서 가장 구체적인 숫자를 내놓고 있었습니다. 검증할 수 있는 말이므로 조건부로 쟀습니다. 선이 무너진 뒤 20봉 안에 판정 방향이 실제로 뒤집힌 비율을, 지켜진 경우와 갈라서: | | 주요 10종 (8년) | 신규 60종 (2023~) | |---|---|---| | 선이 무너짐 | 51.7% (n=7,097) | 50.4% (n=10,517) | | 선이 지켜짐 | 14.5% (n=2,511) | 15.5% (n=3,449) | | 구간 단위 차이 | +36.8 (15/15) | +35.2 (11/11) | 이 앱이 잰 것 중 가장 강한 효과입니다. 거리 구간 넷 모두(+32~+46 포인트), 구간 26개 모두 같은 방향입니다. 신뢰도(+9봉)도 합의 사다리(+7봉)도 이만큼 뚜렷하지 않았습니다. 약속은 지켜지고 있었습니다. 그런데 덜 말하고 있었습니다. 그 선은 20봉 안에 74~75%가 무너집니다. 넷에 셋 넘게 일어나는 일을 「무너지면」이라고만 말하면 드문 사건으로 읽힙니다. 사실이 아닌 것은 아니지만 덜 말한 것입니다. 그래서 잰 것을 그대로 붙였습니다 — 52% 대 15%, 그리고 「열에 일곱 넘게 무너진다」. 이 앱이 계속 해 온 「계산해 놓고 화면에 안 붙인 값」 메우기와 같은 자리입니다.
  • 내부 검증 1561건 · 화면 기준선 237장. versionCode 412.
v3.5.792026-08-01
지금까지 잰 것이 「오래된 대형 코인」만의 이야기는 아닌지 확인했습니다
  • 여러 판에 걸쳐 하나의 자료로 재 왔습니다 — 8년치 주요 10종. 그것으로 신뢰도 문턱을 옮겼고, 스토캐스틱의 무게를 뺐고, 알림 문을 세웠습니다. 그런데 그 열 종은 8년을 살아남은 대형 코인이라 표본이 한쪽에 치우쳐 있습니다. 그래서 완전히 다른 자료로 같은 것을 다시 쟀습니다 — 2023~2024년에 상장한 60종 (57,382봉). 코인도, 시기도, 성격도 다릅니다. | 발견 | 주요 10종 (8년) | 신규 60종 (2023~) | |---|---|---| | 합의 사다리 (표 차이 +1 → +8) | 10.4 → 20.4봉 | 10.5 → 21.5봉 | | ⤷ 구간 단위 | +7.49 (15/15) | +6.69 (11/11) | | 신뢰도 순서 (높음/보통/낮음) | 20.8 / 16.1 / 11.3봉 | 21.4 / 16.3 / 11.2봉 | | ⤷ 구간 단위 (높음−낮음) | +9.19 (15/15) | +9.08 (11/11) | | 가운데 라벨 대 양끝 | 13.1 대 18.0봉 | 13.7 대 18.1봉 | | 횡보장 스토캐스틱 (동의−반대) | −3.82 (양수 0/15) | −2.62 (양수 2/11) | | 20봉 뒤 방향 적중률 | 52.3% | 52.8% | 전부 재현됩니다. 우연이라 하기 어려울 만큼 가깝습니다 — 사다리의 첫 칸이 10.4와 10.5, 신뢰도 「낮음」이 11.3과 11.2입니다. 한 가지는 오히려 새 자료에서 더 뚜렷했습니다 — 「높음」의 방향 적중률이 55.9%로 「낮음」(51.2%)보다 4.7 포인트 높았습니다(옛 자료에서는 1.3 포인트). 그래도 적중률 이야기는 바꾸지 않습니다: 전체가 여전히 52%대이고, 「신뢰도는 맞을 확률이 아니다」는 두 표본 모두에서 확인됐습니다.
  • 화면의 신뢰도 설명이 이제 「서로 다른 두 자료로 재 보니 똑같이」라고 말합니다. 같은 수치라도 한 표본에서 나온 것과 두 표본에서 나온 것은 무게가 다릅니다.
  • 내부 검증 1559건 · 화면 기준선 237장. versionCode 411.
v3.5.782026-08-01
「자료가 여물었다」는 기준을 처음으로 재서 고쳤습니다
  • 지난 판에서 「봉이 적으면 신뢰도를 낮춘다」는 규칙을 가진 자료로는 잴 수 없다고 적었습니다. 8년치가 쌓인 주요 코인 열 종이라 갓 상장한 코인이 안 담겼기 때문입니다. 그래서 2023~2024년에 상장한 60종(57,382봉)을 새로 모았습니다. 먼저: 얇다고 판독이 짧아지지는 않았습니다. 신규 상장 코인의 상장 첫날부터 자라는 창으로 재니 30~49봉 14.2봉, 80~119봉 18.4봉, 400봉 이상 16.3봉 — 단조롭지 않았습니다. 이 천장의 근거는 「판독이 짧다」가 아닙니다. 진짜 근거는 「지표가 덜 여물었다」이고, 그건 성립합니다. 같은 봉에서 넉넉한 과거(600봉)로 낸 값과 짧은 과거로 낸 값을 견줬습니다(3,096곳): | 창 | RSI 오차 | ADX 오차 | 종합 판정이 달라짐 | |---|---|---|---| | 35봉 | 1.70 | 7.17 | 19.5% | | 50봉 | 0.60 | 2.99 | 12.8% | | 60봉 | 0.28 | 1.56 | 7.4% | | 80봉 | 0.07 | 0.41 | 1.8% | | 100봉 | 0.02 | 0.10 | 0.5% | | 150봉 | 0.00 | 0.00 | 0.0% | 60봉 아래에서는 판정이 열에 한둘꼴로 「여문 값」과 다릅니다. 주장은 맞았습니다. 그런데 문턱이 낮게 잡혀 있었습니다. 「여물었다」 기준이 기간의 5배(70봉)였는데, 70봉에서는 아직 4~5%가 다릅니다 — 그 자리에서 천장을 아예 안 씌우고 있었습니다. 7배(98봉)면 0.5%로 사실상 여뭅니다. 「얇다」 기준도 3배(42봉, 18.2% 다름)에서 4배(56봉, 10% 안팎)로 올렸습니다.
  • 「실무에서 쓰는 눈금」이라 적혀 있던 5배는 어림이었고, 이 앱의 지표 조합에서는 낮았습니다. 이제 그 자리에 잰 표가 있습니다.
  • 신규 상장 코인을 보시는 분은 「신뢰도 높음」이 조금 늦게 붙습니다. 그만큼 그 말이 실제로 여문 자리에서만 나옵니다.
  • 내부 검증 1557건 · 화면 기준선 237장. versionCode 410.
v3.5.772026-08-01
조용히 신뢰도를 낮추던 마지막 한 곳이 이유를 말합니다
  • 이 앱은 스스로 이렇게 적어 두었습니다 — 「신뢰도만 낮추고 이유를 안 밝히면 사용자는 왜 낮은지 알 수 없다」. 얇은 자료·묵은 자료·겹친 계열·갈림·ADX·스퀴즈는 모두 판독 아래에 이유가 적힙니다. 하나만 조용했습니다 — 점수가 판정 이름의 경계 언저리라 낮춘 경우입니다. 남길 근거는 있습니다. 마지막 남은 천장 둘을 수명 잣대로 쟀습니다(자라나는 창 24,649건): | | 표본 | 판독 수명 | |---|---|---| | 문턱에 걸터앉음 | 2,890 (11.7%) | 12.6봉 | | 아님 | 21,759 | 17.3봉 | 이 천장을 빼면 신뢰도가 수명을 가릅니다(−0.08봉, 나아진 구간 6/17). 앞선 두 판에서 반박당한 「기간 충돌」·「스퀴즈」와 달리 이것은 제 몫을 합니다. 그러니 남기고, 남기는 김에 말도 하게 했습니다. 표본 천장은 이 자료로 잴 수 없었습니다 — 그리고 그게 중요합니다. 같은 방식으로 「봉이 적으면 낮춘다」도 쟀는데 차이가 안 보였습니다(+0.14봉 ± 0.14). 그런데 이건 「효과가 없다」가 아니라 「이 표본으로는 답할 수 없다」입니다:
  • 200봉 미만인 관측이 24,649건 중 1,490건(6%) 뿐이고,
  • 이 자료는 8년치가 쌓인 주요 코인 열 종이라 이 천장이 겨냥하는 갓 상장한 코인을 구조적으로 담지 않습니다. 여러 판에 걸쳐 같은 자료로 재 왔는데, 그 자료가 구조적으로 답할 수 없는 규칙이 있다는 것을 코드에 적어 두었습니다. 못 잰 것을 「효과 없음」으로 읽고 걷어 내면, 정작 그것이 필요한 분(신규 상장 코인을 보는 분)에게서만 안전장치가 사라집니다.
  • 화면이 쓰지도 않으면서 들고 있던 참조 하나도 함께 걷어 냈습니다.
  • 내부 검증 1557건 · 화면 기준선 237장. versionCode 409.
v3.5.762026-08-01
변동성 응축은 「낮음」이 아니라 「보통까지」입니다
  • 신뢰도를 강제로 「낮음」으로 내리는 조건이 넷 있었습니다. 어느 것이 제 몫을 하는지 하나씩 빼 가며 수명 잣대로 쟀습니다(8년치 실제 자료 22,263건, 반년 구간 15개): | 조건을 빼면 | 신뢰도가 수명을 가르는 힘 | |---|---| | ADX 상충 | −0.03봉 ± 0.03 → 지금이 낫다 | | ADX 약함 | −0.20봉 ± 0.11 → 지금이 낫다 | | 갈림 | −0.16봉 ± 0.04 → 지금이 확실히 낫다 | | 스퀴즈 | +1.86봉 ± 0.44 (12/15 구간 개선) | | 스퀴즈를 「보통 천장」으로 | +2.25봉 ± 0.32 (15/15 구간 개선) | 셋은 제 몫을 하고 스퀴즈 하나만 어긋났습니다. 아예 빼는 것보다 「보통까지만 낮춘다」가 낫고, 그 쪽은 열다섯 구간이 하나도 빠짐없이 나아집니다. 이치도 맞습니다. 변동성 응축은 「곧 크게 움직일 수 있다」는 말이지 「지금 방향 판독이 못 믿을 것」이라는 근거가 아닙니다. 세게 말하지 않는 것까지가 맞고, 가장 낮은 자리로 내리는 것은 지나쳤습니다. 실제로 그 이유로 붙던 「낮음」은 판독이 14.0봉을 가서 「보통」(16.6봉)에 가까웠고, 「낮음」의 76%를 차지해 그 딱지를 통째로 묽게 만들고 있었습니다. 알림은 다릅니다 — 거기선 스퀴즈가 제 몫을 합니다. 화면은 「이 판독을 얼마나 세게 말할까」를 묻고, 알림은 「사람을 깨울 만한가」를 묻습니다. 뒤엣것으로 다시 재니: | 문 | 발화 | 2봉 안에 풀림 | |---|---|---| | 문턱+국면만 | 762 | 30.8% | | + 신뢰도≥보통 | 657 | 28.3% | | + 스퀴즈면 건너뜀 | 499 | 22.0% | 그래서 알림에는 스퀴즈 건너뛰기를 제 이름으로 적었습니다. 그동안 신뢰도 문에 얹혀 가고 있었는데, 그러면 다른 자리를 고칠 때 이 효과가 조용히 사라집니다.
  • 스퀴즈라는 사실 자체는 화면에 그대로 있습니다. 바뀐 것은 말의 세기를 어디까지 깎느냐뿐입니다.
  • 내부 검증 1553건 · 화면 기준선 237장. versionCode 408.
v3.5.752026-08-01
기간이 엇갈린다고 신뢰도를 깎지 않습니다 (재 보니 오히려 해로웠습니다)
  • 앞서 「여러 기간이 같은 쪽을 본다」는 이유로 신뢰도를 올리던 조건은 뺐습니다. 재 보니 적중률에 차이가 없었기 때문입니다. 그때 「엇갈린다」는 이유로 낮추던 조건은 남겼습니다 — 「막는 쪽이니 안전하다」는 이유였습니다. 막는 것도 공짜가 아니었습니다. 기간 충돌이 판정을 실제로 짧게 만드는지 수명 잣대로 쟀습니다(짧은 틀=일봉, 중간=3일봉, 긴 틀=7일봉): | | 표본 | 수명 | 적중 | |---|---|---|---| | 정렬 | 12,069 | 17.3봉 | 51.8% | | 충돌 | 8,061 | 16.1봉 | 52.7% | 차이가 없습니다(구간 15개 단위로 +0.9봉 ± 1.2, 절반만 양수). 그런데 이 조건은 관측의 36.5%를 「낮음」으로 몰아넣고 있었습니다. 그 결과 「낮음」이 전체의 58%가 되고, 그 안에 15봉씩 가는 판독이 섞여 딱지가 묽어졌습니다. | | 높음 | 보통 | 낮음 | 높음−낮음 | |---|---|---|---|---| | 있을 때 | 20.9봉 (5,105) | 16.8봉 (4,332) | 15.1봉 (12,826) | +5.8 | | 뺐을 때 | 20.8봉 (7,037) | 16.6봉 (7,313) | 13.4봉 (7,913) | +7.4 | 구간 단위로 +1.74봉 ± 0.78(11/15 개선). 빼는 쪽이 낫습니다. 이치도 같습니다 — 「긴 기간의 판정은 짧은 기간을 포함해 만든 것이라 두 근거가 아니다」는 앞서 적은 그 말이 충돌에도 그대로 적용됩니다. 한쪽만 남겨 둔 것이 어긋나 있었습니다. 사실은 그대로 말합니다. 없앤 것은 말의 세기를 자동으로 깎던 처리뿐이고, 「기간이 엇갈린다」·「가장 긴 기간은 아직 방향을 내지 않았습니다」는 화면에 그대로 있습니다.
  • 지표 기간(RSI 14 · MACD 12-26-9 · 스토캐스틱 14)도 함께 재 봤습니다. 기간을 10이나 20으로 바꿔도 표가 뒤집히는 비율은 RSI 5.7% · MACD 5.5% · 스토캐스틱 10.5% 였습니다 — 판정이 그 수에 크게 휘둘리지 않으므로 손대지 않았습니다.
  • 쓰지 않으면서 받기만 하던 인자 셋(`adxAligned`·`mtfAligned`·`mtfConflict`)을 걷어 냈습니다. 받는데 안 쓰는 인자는 다음 사람이 효과를 기대하게 만듭니다.
  • 내부 검증 1553건 · 화면 기준선 237장. versionCode 407.
v3.5.742026-08-01
가운데 판정은 「상태」가 아니라 「지나가는 중」이었습니다
  • 판정 라벨은 다섯입니다 — 강한 매도 · 매도 · 중립 · 매수 · 강한 매수. 경계는 점수 ±20 과 ±60 인데, 그 수가 어디서 왔는지는 어디에도 적혀 있지 않았습니다. 그래서 8년치 실제 자료로 재 봤습니다(24,462건). 다섯 단계가 실제로는 둘입니다. | 라벨 | 표본 | 라벨이 붙어 있는 기간 | |---|---|---| | 강한 매도 | 8,478 | 8.0봉 | | 매도 | 2,706 | 0.7봉 | | 중립 | 2,374 | 0.8봉 | | 매수 | 2,514 | 0.7봉 | | 강한 매수 | 8,390 | 7.9봉 | 가운데 셋은 한 봉도 못 버팁니다. 다음 봉에 그대로 남을 확률이 매도 41.5%·중립 39.7%·매수 38.8% 인데, 양끝은 85% 로 눌어붙습니다. 그리고 가운데 셋의 66.1%가 사흘 안에 「강한」 쪽으로 굳습니다(반년 구간 15개에서 44~61%, 한 번도 빗나가지 않음). 왜 그런가 — 점수가 그렇게 생겼습니다. 점수는 지표 표의 비율입니다. 말하는 지표가 전부 같은 쪽이면 ±100 이고, 그런 봉이 42.1% 입니다. 가운데 구간은 점수가 양끝 사이를 건너는 자리입니다. 문턱을 옮겨 봤지만 나아지지 않았습니다. 「강한」이 69%나 되는 것이 마음에 걸려 다른 규칙을 재 봤습니다. 좁힐수록 비율은 줄지만 (69% → 50% → 31%) 라벨이 붙어 있는 기간도 함께 줄고(7.9 → 4.7 → 2.8봉) 적중률은 52% 그대로였습니다. 어느 쪽도 지금보다 낫지 않아 경계는 건드리지 않았습니다. 바꾼 것은 화면이 아는 것을 말하게 한 것뿐입니다. 가운데 판정에는 「아직 자리를 잡지 않았습니다」를 맨 위에 붙입니다 — 잰 것 중 가장 짧게 사는 상태이기 때문입니다. 방향은 말하지 않습니다. 중립에서 위로 갈 확률과 아래로 갈 확률은 11.9% 대 11.5% 로 같습니다. 말할 수 있는 것은 「곧 바뀐다」뿐이고, 그것이 가장 쓸모 있습니다.
  • 내부 검증 1555건 · 화면 기준선 237장. versionCode 406.
v3.5.732026-08-01
「신뢰도 낮음」은 한 가지가 아니었습니다 (급한 말이 맨 아래 있었습니다)
  • 「낮음」은 서로 다른 이유로 붙습니다. 그 이유별로 판독이 몇 봉이나 가는지 8년치 실제 자료로 재 봤습니다(낮음 7,913건): | 낮음이 붙은 이유 | 표본 | 수명 | 중앙값 | 2봉 안에 풀림 | |---|---|---|---|---| | 스퀴즈(변동성 응축) | 6,028 | 14.0봉 | 10봉 | 19.9% | | ADX 약함 + 얇은 우세 | 1,044 | 12.3봉 | 7봉 | 27.4% | | 갈림(한 끗 차이) | 743 | 10.4봉 | 4봉 | 40.9% | 두 가지가 드러났습니다. 낮음의 76%는 스퀴즈입니다 — 「지표가 엇갈린다」가 아니라 「큰 움직임이 임박했을 수 있다」는 뜻이고, 그 판독은 중앙값 10봉을 갑니다. 낮음 중에서 가장 덜 급합니다. 가장 급한 것은 갈림입니다 — 중앙값 4봉, 열에 넷은 두 봉 안에 풀립니다. 그런데 화면의 이유 목록은 갈림을 맨 마지막에 적고 있었습니다. ADX 이야기와 스퀴즈 이야기를 먼저 읽고 나서야 「지표가 갈렸다」를 만납니다 — 가장 급한 말이 가장 늦게 나오는 셈입니다. 사람은 위에서부터 읽고, 작은 글씨 목록은 끝까지 안 읽습니다. 잰 순서대로 다시 놓았습니다. 목록의 내용은 그대로고 순서만 바뀝니다 — 없던 말을 만들지 않고, 있던 말을 늦게 하지 않습니다.
  • 신뢰도 설명에도 이 사실을 적었습니다. 「낮음은 13봉」이라는 평균이 4봉짜리를 감추고 있었습니다.
  • 그 재정렬을 그림으로 확인할 방법이 없었습니다. 검증 그림의 표본이 갈림 상태를 만들지 않기 때문입니다. 갈린 판독을 그리는 그림 두 장을 새로 만들었습니다(하나는 영어 × 큰 글씨 × 좁은 폭). 앞서 고친 「규칙은 검사가 지키는데 모습은 아무도 못 본」 자리와 같은 부류입니다.
  • 내부 검증 1551건 · 화면 기준선 237장. versionCode 405.
v3.5.722026-08-01
「신뢰도 높음」의 문턱을 옮겼습니다 (셋 → 다섯)
  • 「높음」은 지표들이 「한쪽으로 뚜렷하게」 모였을 때 붙습니다. 그 「뚜렷하게」가 오래 표 차이 셋이었는데, 그 수에는 근거가 없었습니다. 이제 있습니다. 바로 앞 판에서 신뢰도가 맞을 확률이 아니라 판독의 수명을 가리킨다는 것을 쟀습니다. 그러면 문턱을 어디에 둘지도 그 잣대로 물을 수 있습니다 — 어디서 끊어야 「높음」이라는 말이 가장 뚜렷해지는가. | 문턱 | 「높음」 표본 | 「높음」 수명 | 높음−보통 | 높음−낮음 | |---|---|---|---|---| | ≥3 (지금까지) | 7,856 | 20.1봉 | +3.3 | +6.7 | | ≥4 | 7,497 | 20.5봉 | +3.9 | +7.1 | | ≥5 | 7,037 | 20.8봉 | +4.2 | +7.4 | | ≥6 | 5,361 | 20.5봉 | +3.0 | +7.1 | 다섯에서 가장 잘 갈립니다. 반년 단위 15개 구간으로 견주면 +0.98봉 ± 0.19(13/15 구간 개선), 고르게 나아집니다. 그러면서 「높음」 딱지는 10%만 줄어듭니다. 왜 하필 다섯인가. 앞 판에서 여덟 중 넷(이동평균·RSI·ADX·스퀴즈)이 반대표를 던지는 일이 1~3%뿐이라는 것을 세었습니다. 그래서 표 차이가 커질 때 실제로 줄어드는 것은 갈릴 수 있는 넷의 반대표 이고, 그 수는 차이 5에서 0.49, 6에서 0.06으로 사라집니다. 수명도 딱 거기까지 오릅니다 — 차이 5에 18.5봉, 6에 19.5봉, 7에 19.6봉, 8에 20.4봉. 위쪽은 평평합니다. 다섯은 「갈릴 수 있는 지표가 사실상 다 동의한」 지점이고, 그 위의 표는 조용한 넷이 켜진 것일 뿐입니다. 사다리는 코인마다도 섭니다. 열 종을 따로 재 보니 위-아래 폭이 +6.6 ~ +9.7봉으로 한 종도 예외가 없었습니다(다만 BTC·BNB는 맨 위 칸에서 오히려 조금 내려옵니다 — 위가 평평하다는 같은 이야기입니다).
  • 화면 문구도 고쳤습니다. 앞 판의 「여덟이 모두 같은 쪽일 때는 20봉」은 위로 갈수록 계속 좋아진다고 읽힐 수 있어, 다섯을 넘으면 더 늘지 않는다는 사실과 그 이유를 함께 적었습니다.
  • 내부 검증 1547건 · 화면 기준선 235장. versionCode 404.
v3.5.712026-08-01
「강세 5개 · 약세 1개」가 무슨 뜻인지 말합니다 (그리고 넷은 반대표를 못 던집니다)
  • 판독 카드의 「강세 지표 N개 · 약세 M개」는 이 화면에서 가장 많은 것을 말하는 줄입니다. 그런데 앱은 그 수를 보여 주기만 하고 뜻은 말한 적이 없었습니다. 8년치 실제 자료로 그 차이별 판정 수명을 재 보니 곧은 사다리가 나왔습니다 — 차이가 한 끗일 때 평균 10.4봉, 여덟이 모두 같은 쪽일 때 20.4봉. 반년 구간 15개로 재면 「≥5 대 ≤2」가 +7.5봉 ± 0.6 (양수 15/15), 신뢰도 자체보다도 잘 가릅니다. 그런데 여덟이 서로 다른 여덟 사람은 아닙니다. 지표별로 종합 판정과 반대쪽을 낸 비율을 세어 봤습니다: | 지표 | 반대 비율 | | 지표 | 반대 비율 | |---|---|---|---|---| | 이동평균 | 0.2% | | MFI | 11% | | RSI | 0.3% | | MACD | 18% | | ADX | 1.5% | | OBV | 18% | | 스퀴즈 | 2.4% | | 스토캐스틱 | 36% | 이동평균은 2,862번 방향을 내는 동안 열한 번만 종합과 어긋났습니다. 넷은 사실상 반대할 수 없으니, 「여섯이 동의」에서 그 넷의 표는 근거를 더한 것이 아니라 다수를 되풀이한 것에 가깝습니다. 화면이 이제 그 사실을 함께 밝힙니다. 셈법은 바꾸지 않았습니다 — 바꾸려고 재 봤는데 지금이 나았습니다. 「갈리는 넷만 세면 낫지 않을까」를 시험했습니다. 판정 수명을 가르는 힘이 +7.5봉에서 +4.1봉으로 떨어졌습니다. 「반대표를 던진 지표 수」로 바꿔 봐도 +4.8봉이었습니다. 신뢰도를 묶어 놓고 「갈리는 넷이 등 돌린 상태」가 따로 무언가를 말하는지도 봤는데 구간마다 부호가 뒤집혔습니다. 두 길 다 지금보다 못했습니다. 재고 나서 아무것도 안 바꾸는 것도 결론입니다. 바꾼 것은 화면이 그 수의 뜻을 말하게 한 것뿐입니다.
  • 내부 검증 1546건 · 화면 기준선 235장. versionCode 403.
v3.5.702026-08-01
횡보장에서 스토캐스틱에 얹던 무게를 뺐습니다 (재 보니 거꾸로였습니다)
  • 이 앱은 국면에 따라 지표에 무게를 다르게 줍니다 — 「오실레이터는 횡보장에서, 추세추종은 추세장에서 맞는다」는 전제입니다. 그 전제를 지금까지 재 온 잣대로 확인했습니다. 지표가 종합 판정과 같은 쪽을 볼 때와 반대쪽을 볼 때를 갈라, 그 판정이 얼마나 오래 갔는지 봤습니다(실제 일봉 8년치 10종, 22,323건). 국면 안에서 순위로 보면 전제는 대체로 섭니다 — 횡보장 상위가 RSI(+3.7봉)·MFI(+2.2봉), 추세장 상위가 ADX(+6.0봉)· MACD(+4.3봉). 딱 하나가 어긋났습니다. 스토캐스틱은 횡보장에서 거꾸로였습니다. | 잣대 | 동의할 때 | 반대일 때 | 반년 구간 15개 | |---|---|---|---| | 판정 수명 | 12.9봉 | 16.1봉 | −4.2봉 ± 0.9 (양수 0/15) | | 20봉 뒤 방향 적중 | 51.3% | 55.9% | −7.1 포인트 ± 3.1 | 두 잣대가 같은 방향이고, 수명 쪽은 열다섯 구간이 하나도 빠짐없이 음수입니다. 점수 크기를 묶어 놓고 봐도 띠마다 −3.8·−4.9·−4.9 로 한결같아, 점수가 커서 생긴 착시가 아닙니다. 이치도 닿습니다. 이 앱의 스토캐스틱은 「%K가 최근 범위의 위쪽 절반인가」를 봅니다. 벽이 있는 구간에서 「위쪽 절반」은 위쪽 벽에 가깝다는 뜻이고, 거기는 이어질 자리가 아니라 되밀릴 자리입니다. 그러니 횡보장의 「상승 판정 + 스토캐스틱도 상승」은 근거가 겹치는 것이 아니라 끝물에 가깝습니다. 그래도 뒤집지는 않았습니다. 추세장 수치(+3.9봉)는 스토캐스틱을 추세추종으로 옮기라고 말하는 듯하지만, 자료 한 벌로 잘 알려진 분류를 반대로 뒤집는 것은 없는 확신입니다. 어느 쪽에도 넣지 않아 무게 1.0 — 한 표를 그대로 셉니다. 모르면 무게를 두지 않는다는 이 앱의 원래 규칙 그대로입니다.
  • RSI·MFI 는 횡보장에서 제 몫을 했으므로 무게를 그대로 받습니다. 하나가 어긋났다고 규칙을 통째로 버리지 않았습니다.
  • 신뢰도를 깎을 때 쓰는 계열 묶음은 손대지 않았습니다. 무게(국면 적합)와 계열(근거가 겹치는가)은 다른 개념이고, 함께 떼면 「여섯이 같은 말을 하니 근거가 여섯」이라는 옛 결함이 되살아납니다.
  • 내부 검증 1543건 · 화면 기준선 235장. versionCode 402.
v3.5.692026-08-01
두 봉 만에 풀릴 판정으로 깨우지 않습니다
  • 기술적 신호 알림에는 이미 문이 둘 있었습니다. 점수가 문턱에 걸터앉으면 건너뛰고, 횡보장이면 건너뜁니다. 그런데도 소음이 남아 있었습니다. 남은 소음이 어디였는지 찾았습니다. 두 문을 통과한 발화를 신뢰도로 갈라 8년치 실제 일봉으로 세어 봤습니다. 잣대는 「맞았는가」 가 아니라 「그 판정이 몇 봉이나 버텼는가」입니다 — 사용자의 불만은 틀렸다가 아니라 「며칠 만에 또 울린다」였기 때문입니다. | 신뢰도 | 발화 | 유지 중앙값 | 2봉 안에 풀림 | |---|---|---|---| | 높음 | 365 | 11봉 | 15.6% | | 보통 | 203 | 7봉 | 29.6% | | 낮음 | 354 | 4봉 | 45.5% | 울리던 알림의 46%가 「낮음」이었고, 그중 절반 가까이가 두 봉 안에 풀렸습니다. 신뢰도가 판독의 수명을 가른다는 것은 바로 앞 판에서 쟀는데, 알림이 신경 쓰는 것이 정확히 그 수명인데도 알림은 그 값을 보지 않고 있었습니다. 이제 봅니다. 발화 771 → 509, 「2봉 안에 풀림」 30.5% → 22.6% 입니다. 지우는 것이 아니라 미루는 것입니다. 앞의 두 문과 같은 자리에서 이전 상태를 건드리지 않고 건너뛰므로, 같은 판정이 이어지다 신뢰도가 올라오면 그때 울립니다. 놓치는 것이 아니라 깨울 만해질 때까지 기다리는 것입니다.
  • 횡보장 차단의 근거를 바꿨습니다. 그 자리에는 「횡보장의 강한 매도는 47.6%밖에 안 맞는다」고 적혀 있었는데, 그 수는 겹치는 관측을 그냥 센 것이라 못 믿을 것으로 판명됐습니다(블록 단위로 재면 차이가 사라집니다). 그래도 문은 남깁니다 — 되뒤집힘 이라는 옳은 잣대로 재면 이 문은 제 몫을 합니다(51.0% → 30.5%). 규칙은 그대로, 근거만 재 본 것으로 바꿨습니다.
  • 알림이 화면과 같은 신뢰도를 씁니다. 따로 계산하면 「화면은 낮음이라는데 알림은 울리는」 어긋남이 생깁니다.
  • 내부 검증 1539건 · 화면 기준선 235장. versionCode 401.
v3.5.682026-08-01
「신뢰도」가 무엇을 뜻하는지 처음으로 말할 수 있게 됐습니다
  • 앞 판에서 신뢰도가 적중률을 가르지 못한다는 것을 쟀습니다. 그러면 남는 물음은 하나였습니다 — 그럼 무엇을 가르는가. 아무것도 안 가른다면 화면에 내걸 이유가 없습니다. 판독의 수명을 가릅니다. 같은 자료(8년치 실제 일봉 10종)로, 판정이 반대로 뒤집히기까지 몇 봉이나 버텼는지 셌습니다(22,323건): | 신뢰도 | 표본 | 평균 | 중앙값 | |---|---|---|---| | 높음 | 7,883 | 20.2봉 | 18봉 | | 보통 | 6,467 | 16.6봉 | 12봉 | | 낮음 | 7,973 | 13.2봉 | 9봉 | 순서가 곧습니다. 반년 단위 15개 구간으로 재도 「높음 − 낮음」은 +6.7봉 ± 0.8 로 뚜렷합니다(적중률에서는 못 얻은 그 구분입니다). 「점수가 경계에서 멀어서」가 아닌지도 확인했습니다. 점수 크기를 묶어 놓고 다시 견주니 차이는 줄지만 남았습니다 — +3.6봉 ± 0.9. 절반쯤은 경계 거리 효과지만 나머지 절반은 신뢰도가 따로 들고 있는 것입니다. 그래서 화면 문구를 바꿨습니다. 이제 아니라는 말만 하지 않고 무엇인지 말합니다 — 「맞을 확률」이 아니라 「얼마나 자주 다시 보아야 하는가」의 눈금입니다. 높음이면 스무 봉쯤, 낮음이면 열 봉 남짓 뒤에 판정이 뒤집혔습니다.
  • 이 성질이 깨지면 그 문구가 거짓말이 되므로, 깨지는지 지키는 검사를 붙였습니다.
  • 문구에 넣었던 줄바꿈 기호를 뺐습니다. 검증 그림은 그걸 줄바꿈으로 그리지 않는데 기기는 그립니다 — 그림과 실제가 갈라지는 자리라, 두 판 연속 고쳐 온 그 부류입니다.
  • 내부 검증 1534건 · 화면 기준선 235장. versionCode 400.
v3.5.672026-08-01
「신뢰도」가 실제로 무언가를 가르는지 처음으로 재 봤습니다
  • 판독 옆에 붙는 신뢰도는 다섯 장치가 겹쳐 만듭니다 — 지표들이 얼마나 한목소리인지 보고, 그 위에 자료가 얇은지·묵었는지·점수가 문턱에 걸터앉았는지·방향 없는 구간인지로 차례차례 천장을 씌웁니다. 다섯 다 저마다 검사가 있었습니다. 그런데 이어 붙인 결과에는 없었습니다. 조립하는 자리가 화면 안에 있어서, 사용자가 실제로 보는 그 값은 한 번도 시험된 적이 없었습니다. 그 자리를 밖으로 꺼냈고, 그러자 처음으로 잴 수 있게 됐습니다. 재 봤습니다 — 신뢰도는 방향을 가르지 못합니다. 8년치 실제 일봉(10종)으로 300봉씩 걸어가며 판정을 내고 20봉 뒤 방향을 맞혔는지 셌습니다 (7,393회): | 신뢰도 | 표본 | 방향 적중 | |---|---|---| | 높음 | 2,621 | 52.3% | | 보통 | 2,138 | 56.0% | | 낮음 | 2,634 | 48.9% | 「높음」이 「보통」보다 낮습니다. 순서가 맞지 않습니다. 겹치는 관측을 걷어 내려고 반년 단위 15개 구간으로 다시 재니 「높음 − 낮음」은 +2.2 포인트 ± 2.0 — 구분되지 않습니다. 국면(추세·횡보)으로 갈라도 +0.7 ± 1.7 로 마찬가지였습니다. 그래서 판정도 천장도 그대로 둡니다. 뒤집을 근거가 되는 차이 자체가 없기 때문입니다. 대신 화면이 이 사실을 말하게 했습니다. 신뢰도 설명에 재 본 결과를 그대로 적었습니다 — 이 값은 지표들이 얼마나 모였고 자료가 얼마나 받쳐 주는지를 말할 뿐, 맞을 확률이 아닙니다.
  • 조립을 한 곳으로 모으면서 화면이 같은 것을 다시 세던 자리 열몇 개도 없앴습니다. 어긋나면 「신뢰도는 낮은데 단서 줄은 아무 말도 안 하는」 화면이 됩니다.
  • 예전에 적어 둔 「추세 51.4% / 횡보 53.8%」는 겹치는 관측을 그냥 센 숫자였습니다. 같은 함정을 앞 판의 MACD에서도 밟을 뻔했습니다 — 이제 오차막대 없이는 숫자를 적지 않습니다.
  • 내부 검증 1532건 · 화면 기준선 235장. versionCode 399.
v3.5.662026-08-01
MACD가 신호선 아래인데 «위쪽» 이라고만 말하던 것
  • 판독 표의 MACD 줄은 값을 두 개 보여 줍니다 — `144,125 · sig 146,399`. 그런데 판정은 선의 부호 하나로만 냈고, 문장도 「0 위 · 방향은 위쪽」 이라고만 했습니다. 두 번째 숫자가 더 큰데 말입니다. 다섯 번에 두 번이 그 상태였습니다. 실제 8년치 일봉으로 세 보니 MACD 선이 0 위인 12,716건 중 4,978건(39%) 이 신호선 아래였습니다. MACD를 아는 분이 보면 값과 판정이 어긋난 것처럼 읽히는 화면이 그만큼 자주 나왔습니다. 판정은 그대로 둡니다 — 재 봤지만 못 쟀습니다. 갈라서 보는 쪽이 더 잘 맞으면 판정을 바꿔야 합니다. 겹치는 관측을 그냥 세면 53.2% 대 46.8% 로 크게 갈리고 코인 10종이 모두 같은 방향이라 그럴듯해 보였습니다. 그런데 관측은 20봉씩 겹치고 암호화폐는 코인끼리도 함께 움직입니다 — 같은 시장 국면을 여러 번 센 것입니다. 반년 단위 16개 구간으로 나눠 다시 재니 차이는 +5.4 포인트 ± 3.8, 구간별로 −35 에서 +29 까지 흔들렸습니다. 이 정도로는 판정을 바꿀 수 없습니다. 그래서 바꾼 것은 문구뿐입니다. 보이는 사실에 이름을 붙이고(「0 위 · 신호선 아래」), 그것으로 판정을 바꾸지 않는다고 밝힙니다. 없는 예측을 더하지 않습니다.
  • 지표 줄의 숫자가 자릿수 한가운데서 끊기던 것을 고쳤습니다. 값과 배지가 한 줄을 나눠 쓰는데 배지가 자리를 먼저 가져가, 큰 글씨 × 좁은 폭에서 `144,125 · sig 146,399` 가 `144,1 / 25 · / sig / 146, / 399` 다섯 조각이 됐습니다. 끊긴 숫자는 두 개의 다른 숫자로 읽힙니다. 큰 글씨에서는 배지를 이름 줄로 올리고 값에 폭을 전부 줍니다.
  • 이 결함은 바로 앞 판에서 비어 있던 그 검증 그림이 살아나자마자 드러났습니다.
  • 내부 검증 1529건 · 화면 기준선 235장. versionCode 398.
v3.5.652026-08-01
판독 화면 검증 그림이 넉 장 비어 있었습니다
  • 이 앱은 화면을 눈으로 보지 않고 그림으로 찍어 픽셀로 견줍니다. 판독 절(종합 판정 · 장세 · 무효화 · 기간 정렬)에도 그 그림이 넉 장 있었습니다. 그런데 그 넉 장이 아무것도 안 그리고 있었습니다. 왜 아무도 못 봤는가. 그림에 쓰는 표본 봉은 지지·저항만 볼 셈으로 적혔습니다. 그 계산은 고가·저가만 쓰므로 시가 자리에 `0` 을 두고 넘어갔고, 그때는 맞았습니다. 그러다 앞선 판에서 성립하지 않는 봉을 버리는 장치가 들어왔습니다. 시가가 저가보다 아래인 봉은 성립하지 않고, `0` 은 언제나 저가보다 아래입니다 — 표본 55봉이 통째로 버려졌습니다. 그래서 그 넉 장은 판정 문장도, 근거 목록도, 지표 표도 없는 «자료 없음» 화면을 찍고 있었습니다. 검사는 전부 통과했습니다. 다시 만들어도 한 장도 안 바뀌니까요 — 「전부 통과」와 「아무것도 안 그렸다」가 구분되지 않았습니다. 앱은 멀쩡했습니다. 실제 화면은 분석이 성립했는지 먼저 보고, 성립하지 않으면 이 상태를 아예 그리지 않습니다. 그러니 사용자가 볼 수 없는 상태만 넉 장 찍어 두고, 사용자가 보는 상태는 한 장도 안 찍고 있던 셈입니다.
  • 표본에 시가를 채웠습니다. 고가·저가·종가는 건드리지 않아 지지·저항 그림은 그대로입니다.
  • 판독 절 그림이 이제 분석이 성립하지 않으면 그리기를 멈춥니다. 조용히 빈 화면을 찍고 기준선이 굳는 일이 다시는 없습니다.
  • 같은 새는 길을 막는 검사 넉 건을 더했습니다. 일부러 되돌려 놓고 정말 잡는지 확인했습니다.
  • 달러 차트 판독 그림 두 장을 새로 만들었습니다 — 앞선 판의 통화 결함이 그림으로 한 번도 안 드러났던 이유가 기준선이 전부 원화 표본이어서였습니다.
  • 내부 검증 1526건 · 화면 기준선 235장. versionCode 397.
v3.5.642026-08-01
차트를 원화와 달러로 바꿔 볼 수 있습니다
  • 「원화와 달러 차트를 함께 볼 수 있어도 좋겠다」는 말씀을 받았습니다. 차트 아래 ₩ / $ 단추로 바로 바꿉니다. 환산이 아니라 그 시장의 실제 값입니다. 원화 캔들을 오늘 환율로 나눠 달러로 바꾸는 방법도 있습니다. 하지만 그건 과거 봉에 오늘 환율을 적용하는 것이라 그때의 달러 값이 아닙니다. 환율이 20% 움직인 구간이면 그림 자체가 틀립니다. 그래서 각 통화의 실제 시장 캔들을 받습니다 — 원화면 업비트, 달러면 바이낸스. 그래서 바꾸면 그림이 조금 달라집니다. 그게 맞습니다 — 다른 시장이고, 일봉 마감 시각도 다릅니다(업비트 09:00 KST, 바이낸스 00:00 UTC). 앞서 재 봤듯 같은 코인이라도 RSI가 최대 7.8 포인트 차이 납니다.
  • 원화 시장이 없는 해외 전용 코인은 ₩ 를 눌러도 달러 시장으로 자연히 넘어갑니다. 이때 단위는 「요청한 것」이 아니라 「받은 것」을 따릅니다 — 바로 앞 판에서 고친 결함이 정확히 그 어긋남이었습니다.
  • 지지·저항 등 판정 값도 같은 통화로 함께 바뀝니다. 차트와 판정이 같은 캔들을 쓰기 때문입니다.
  • 내부 검증 1522건 · 화면 기준선 233장. versionCode 396.
v3.5.632026-08-01
달러 차트에 ₩ 가 붙던 것을 고쳤습니다 (제가 만든 결함입니다)
  • 「차트에 달러 표시와 원화 표시가 잘못된 부분이 있다」는 제보를 받았습니다. 확인해 보니 맞았고, 제가 두 판 전에 만든 결함입니다. 차트가 단위를 이렇게 정하고 있었습니다: ``` 원화 가격이 아예 없는가? → 없으면 달러, 있으면 원화 ``` v3.5.53 이전에는 캔들이 늘 업비트 원화였으니 맞는 판단이었습니다. 그런데 그 판에서 캔들이 사용자가 고른 거래소를 따르게 바꿨습니다. 바이낸스를 고르면 캔들은 달러(USDT) 인데, 원화 가격은 환산으로 존재하므로 조건이 거짓이 되어 달러 값에 ₩ 를 붙였습니다. 비트코인 66,324달러가 「₩66,324」로 보였습니다. 이제 단위가 캔들이 온 곳을 따릅니다. 원화 시장(업비트·빗썸)에서 온 캔들이면 원화, 아니면 달러입니다. 값과 단위가 같은 곳에서 나오므로 다시 어긋날 수 없습니다. 같은 잘못이 한 곳 더 있었습니다. 기술적 분석 절의 지지·저항 값도 같은 방식으로 단위를 정하고 있어서, 차트는 달러인데 지지선만 ₩ 로 적히는 식이었습니다. 두 곳이 각자 정하던 것을 한 곳에서 정하게 모았습니다.
  • 이런 종류는 화면을 봐야 드러나서 사람 눈에 오래 남습니다. 규칙이 되돌아가지 않도록 검사를 세웠습니다.
  • 「원화와 달러를 함께 볼 수 있으면 좋겠다」는 말씀도 받았습니다 — 다음 판에서 하겠습니다.
  • 내부 검증 1522건 · 화면 기준선 233장. versionCode 395.
v3.5.622026-08-01
「여러 기간이 같은 방향」이 신뢰도를 올리지 않습니다
  • 이 앱은 여러 기간(1시간·4시간·일봉)의 판정이 같은 쪽인지 보여 주고, 일치하면 신뢰도를 「높음」으로 올려 주고 있었습니다. 그 일치가 실제로 도움이 되는지 재 봤습니다. 바이낸스 일봉 8년치 10종에서, 일봉 판정이 20봉 뒤 방향을 맞히는 비율을 주봉과 일치할 때와 충돌할 때로 갈랐습니다. ``` 일치 51.5% (n=2,731) 충돌 51.2% (n=1,741) ``` 차이가 없습니다. 그럴 만합니다. 긴 기간의 판정은 짧은 기간을 포함해서 만든 것입니다. 둘이 같은 쪽을 보는 것은 「두 개의 근거」가 아니라 같은 근거를 두 번 센 것에 가깝습니다. 이 앱은 이미 같은 결론을 지표 쪽에서 냈습니다 — RSI와 스토캐스틱이 함께 과매수라고 해도 그건 근거 하나입니다. 그래서 「일치하면 높음」을 뺐습니다.
  • 충돌은 그대로 「낮음」으로 둡니다. 뺀 것은 올리는 쪽뿐입니다. 이 앱의 신뢰도 규칙은 「조건을 더하기만 한다 — 없던 높음을 만들지 않는다」인데, 시간대 일치만 그 원칙을 어기고 있었습니다.
  • 일치·충돌 표시 자체는 그대로입니다. 사실이니까요. 다만 그 사실이 「더 믿을 만하다」는 뜻은 아니라는 것을 이제 신뢰도가 반영합니다.
  • 내부 검증 1517건 · 화면 기준선 233장. versionCode 394.
v3.5.612026-08-01
RSS 주소를 직접 넣을 수 있습니다
  • 앞서 국내 매체 세 곳을 목록에서 뺐습니다(v3.5.43). 브랜드와 서비스 사용에 사전 협의를 기대하는 것이 관행인데, 협의 없이 이름을 기능 안에 넣어 두었기 때문입니다. 그 자리를 메우는 기능입니다.
  • 설정 ▸ 뉴스 출처에서 RSS 주소를 직접 넣을 수 있습니다. 여러 개 넣을 수 있고, 누르면 지워집니다. 이 방식이 더 낫습니다. 앱이 「어느 매체를 실을지」를 정하지 않고 주소를 받아 읽는 도구가 됩니다. 그러면 남의 브랜드를 협의 없이 기능 안에 넣는 문제가 아예 생기지 않고, 보고 싶은 매체를 사용자가 직접 고를 수 있습니다 — 국내든 해외든, 목록에 없든.
  • 주소가 올바른지 넣을 때 바로 확인합니다. 같은 주소를 두 번 넣어도 한 번만 저장됩니다 (두 번 넣으면 기사도 두 번 뜹니다).
  • 목록 이름은 주소의 호스트를 씁니다. 피드 제목을 받아 오는 방법도 있지만, 그러려면 목록을 그리기 전에 망을 타야 하고 실패하면 이름 없는 줄이 남습니다.
  • 작업 중 내부 가드가 입력칸 라벨이 공용 컴포넌트를 안 거친 것을 잡았습니다 — 그러면 큰 글씨에서 이 칸만 다르게 부서집니다.
  • 내부 검증 1513건 · 화면 기준선 233장. versionCode 393.
v3.5.602026-08-01
신호가 차트 위에 표시됩니다
  • 요청은 「차트에 매수/매도 타점을 표시해 달라」였는데, 지금까지는 차트 아래 목록으로만 보여 주고 있었습니다. 이제 차트 위에도 찍힙니다.
  • 매수 성격은 봉 아래에서 위를 가리키는 작은 삼각형, 매도 성격은 봉 에서 아래를 가리킵니다. 눈이 「어느 쪽 이야기인가」를 방향으로 먼저 읽습니다. 봉을 가리지 않게 꼬리 바깥에 둡니다.
  • 확대하거나 좌우로 옮겨도 점이 제 봉에 붙어 있습니다. 화면 밖으로 나간 것은 알아서 빠집니다. 차트의 점과 아래 목록은 같은 신호입니다. 각자 계산하면 언젠가 갈리고, 그러면 차트에 점은 있는데 목록엔 없는(또는 그 반대) 일이 생깁니다. 이 앱이 되풀이해 데인 「같은 것을 두 곳에서 세는」 자리라, 한 번만 계산해 차트와 목록이 나눠 씁니다. 검사가 그것을 확인합니다.
  • 점이 가리키는 것은 여전히 판단이 아니라 사실입니다. 이 앱은 8년치 실제 자료에서 방향 적중률이 51% 안팎임을 재서 화면에 적어 두었으므로, 차트에 「타점」을 못 박으면 스스로와 모순됩니다. 점을 누를 곳은 아래 목록이고, 거기서 그때의 값이 펼쳐집니다.
  • 내부 검증 1513건 · 화면 기준선 233장. versionCode 392.
v3.5.592026-08-01
신호를 누르면 그때의 값이 펼쳐집니다
  • 요청하신 「어떠한 근거로 매수/매도 타점이었는지 상세히」의 나머지 절반입니다. 지금까지는 신호 이름만 있었습니다 — 「정배열로 전환」이라고만 하면 사용자는 그 말을 믿는 수밖에 없습니다.
  • 이제 신호를 누르면 그 순간의 값들이 펼쳐집니다. ``` 08.14 정배열로 전환 지난 23회 RSI 58.2 · 이동평균 정배열 · MACD +0.42 · 거래량 평소의 1.8배 ``` 이 앱이 지표 「이 숫자의 근거」 줄에서 이미 택한 방식입니다 — 판단을 믿으라고 하지 않고, 확인할 재료를 줍니다.
  • 근거도 미래를 훔쳐보지 않습니다. 값은 전부 「그 봉까지」로 계산합니다. 그 봉 이후 자료가 섞이면, 그때 알 수 없던 것을 근거라고 내미는 셈입니다. 검사가 그것을 확인합니다 — 같은 지점의 근거를 나중 자료로 다시 계산해도 값이 같아야 합니다.
  • 작업 중 내부 가드가 「진행 중인 봉을 손으로 잘라 내지 말라」며 걸렸습니다. 여기서는 뜻이 달랐지만(신호 봉의 앞 20봉) 표현이 같았습니다. 자리로 집어 뜻이 드러나게 고쳤더니 코드도 더 읽기 쉬워졌습니다.
  • 내부 검증 1512건 · 화면 기준선 233장. versionCode 391.
v3.5.582026-08-01
한 판 전에 넣은 숫자를 재 보고 뺐습니다
  • 바로 앞 판에서 매수·매도 신호마다 「과거 61% (23회)」처럼 적중률을 적었습니다. 그 숫자가 실제로 쓸모가 있는지 재 봤습니다 — 바이낸스 일봉 8년치를 앞뒤 절반으로 갈라, 앞 절반에서 잰 성적이 뒤 절반을 맞히는지 봤습니다(짝 59개). ``` 상관계수 0.126 ← 사실상 무관 전·후반 차이 중앙 11.5%p (90퍼 24.8%p, 최대 45.5%p) 전반 평균 51.1% · 후반 평균 51.7% ``` 같은 신호의 과거 적중률이 다음 구간을 전혀 예측하지 못했습니다. 「61%」는 51% 언저리의 표본 잡음이었습니다. 그런 수를 화면에 적으면 사용자는 「이 신호는 좀 더 맞는다」고 읽습니다. 그럴 근거가 없습니다. 게다가 그 한 판 전에 이 앱은 「신뢰도는 맞을 확률이 아닙니다」라고 화면에 적어 두었습니다 — 그 바로 옆에서 같은 과장을 하고 있었던 것입니다. 그래서 비율을 빼고 횟수만 남겼습니다. ``` 08.14 정배열로 전환 지난 23회 07.29 RSI 과매도 이탈 지난 31회 ``` 「이 신호는 이 코인에서 그동안 23번 있었다」는 사실이고, 「드문 신호인가 흔한 신호인가」 를 아는 데 실제로 쓸모가 있습니다. 화면의 안내문에도 왜 적중률을 안 보여 주는지 적었습니다.
  • 그 비율이 다시 화면으로 돌아오지 않도록 검사를 세웠습니다.
  • 내부 검증 1510건 · 화면 기준선 233장. versionCode 390.
v3.5.572026-08-01
매수·매도 신호 — 그리고 그 신호가 과거에 얼마나 맞았는지
  • 「차트에 매수·매도 타점을 표시하고, 어떤 근거였는지 볼 수 있으면 좋겠다」는 요청을 받았습니다. 그런데 바로 앞 판에서 이 앱은 스스로 잰 것을 화면에 적었습니다 — 8년치 실제 자료에서 방향 적중률이 51% 안팎이라고. 그 옆에 「여기가 매수 타점」이라고 못 박으면 앱이 스스로와 모순됩니다.
  • 그래서 두 가지를 함께 담았습니다. 하나 — 점이 가리키는 것은 판단이 아니라 사실입니다. 「정배열로 전환」, 「RSI 과매도 이탈」, 「MACD 0선 상향」 같은 것들입니다. 그 봉에서 실제로 일어난 일이라 지어낸 것이 없고, 틀릴 수가 없습니다. 둘 — 그 신호가 이 코인에서 과거에 얼마나 맞았는지 함께 보여 줍니다. ``` 08.14 정배열로 전환 과거 61% (23회) 07.29 RSI 과매도 이탈 과거 54% (31회) 07.11 MACD 0선 하향 표본 부족 ``` 성적이 붙으면 같은 점이라도 다르게 읽힙니다. 54%는 「반반이구나」이고 71%는 「볼 만하다」 입니다. 그 판단을 앱이 대신 하지 않고 재료를 드립니다.
  • 미래를 훔쳐보지 않습니다. 신호를 찾을 때도 성적을 잴 때도 「그 봉까지의 자료」만 봅니다. 뒤를 보고 고른 점을 「과거에 잘 맞았다」고 하면 그건 성적이 아니라 눈속임입니다. 검사가 그것을 확인합니다 — 같은 시점을 나중에 다시 봐도 신호가 달라지지 않아야 합니다.
  • 아직 결과가 없는 최근 신호는 성적에서 뺍니다. 넣으면 성적이 부풀거나 깎입니다.
  • 표본이 8회 미만이면 비율을 말하지 않습니다. 「3번 중 2번」도 67%로 보입니다.
  • 내부 검증 1509건 · 화면 기준선 233장. versionCode 389.
v3.5.562026-08-01
가격 차트를 키우고, 전체화면으로 열 수 있습니다

하나 — 차트 높이를 정할 수 있습니다.

168dp로 굳어 있었습니다. 폰에서는 알맞지만 **폴드 펼침이나 태블릿에서는 화면이 남는데도

차트만 작고**, 작은 폰에서는 아래 지표까지 보려면 차트가 자리를 너무 먹었습니다.

차트 아래 「낮게 / 높게」로 한 단계씩 조절하고, 설정에 저장돼 다음에도 그대로입니다.

끌어서 맞추는 손잡이도 생각했지만, 차트가 이미 두 손가락 확대와 좌우 이동을 쓰기 때문에

그 위에 세로 끌기를 더하면 제스처가 서로 잡아먹습니다. 단추 두 개가 어긋날 여지가 없습니다.

둘 — 차트를 눌러 전체화면으로 볼 수 있습니다.

가격 차트에는 두 손가락 확대가 이미 있었지만, 그건 카드 안에서 커지는 것입니다.

폴드를 펼쳤을 때 원하는 것은 화면을 통째로 쓰는 것이라 다릅니다. 앞서 다른 차트들에

붙여 둔 전체화면 보기를 가격 차트에도 붙였습니다 — 누르면 설명도 지표도 없이 차트만

화면을 다 씁니다. 전체화면에서도 확대·이동은 그대로 됩니다.

  • 단추 이름을 기호(`+`/`−`) 대신 로 썼습니다. 화면에서 부호를 손으로 적지 말라는 내부 규칙에 걸리기도 했고(숫자와 헷갈리니 옳은 규칙입니다), 무엇보다 「낮게 / 높게」가 무엇을 하는 단추인지 더 분명합니다.
  • 내부 검증 1502건 · 화면 기준선 233장. versionCode 388.
v3.5.552026-08-01
8년치로 재 보고, 「신뢰도」가 무엇이 아닌지 화면에 적었습니다
  • 지난 판에서 「추세장 적중률」이 표본에 따라 82%에서 51%까지 널뛰는 것을 확인하고, 결론을 미뤄 두었습니다. 이번에 표본을 크게 넓혔습니다 — 바이낸스 일봉 8년치, 10종, 5,100회를 연도별로 나눠 쟀습니다. | 연도 | 추세 | 횡보 | 애매 | |---|---|---|---| | 2019 | 53.7% | 55.6% | 55.8% | | 2021 | 56.7% | 59.2% | 63.6% | | 2022 | 48.5% | 50.7% | 39.4% | | 2024 | 42.1% | 49.2% | 41.1% | | 2026 | 46.4% | 47.2% | 47.2% | | 전체 | 51.4% | 53.8% | 50.7% | 어느 국면에서도, 어느 해에도 동전 던지기 수준입니다. 앞서 나온 82%도 73.9%도 표본 효과였습니다. 이건 계산 결함이 아니라 앱이 말하는 방식의 문제입니다. 화면은 「강한 매수 · 신뢰도 높음」이라고 말하고, 사람은 그것을 「맞을 확률이 높다」로 읽습니다. 그런데 이 앱이 실제로 재는 「신뢰도」는 지표들이 얼마나 한목소리인가자료가 충분한가입니다. 그 둘은 다른 것이고, 다른 것을 같은 이름으로 부르면 사용자가 없는 확신을 갖게 됩니다. 그래서 화면이 직접 밝힙니다: > 「신뢰도」는 지표들이 얼마나 한목소리인지, 그리고 자료가 충분한지를 나타냅니다. > 맞을 확률이 아닙니다. 8년치 실제 자료(10종·5,100회)로 재 보니 20봉 뒤 방향 > 적중률은 국면과 무관하게 51% 안팎이었습니다. 이 판독은 앞날의 예측이 아니라 > 지금 상태의 요약입니다. (5개 언어) 이 앱은 스스로에게 늘 「모르면 말하지 않는다」를 적용해 왔습니다. 이번에는 그 규칙을 앱 자신의 판정에 적용했습니다 — 무엇을 모르는지 말합니다.
  • 국면별 신뢰도 천장은 그대로 둡니다. 뒤집을 근거가 되는 차이 자체가 없었고, 낮추기만 하는 장치라 해롭지 않으며, 「방향이 없는 구간에서 강하게 말하지 않는다」는 그 자체로 옳은 태도입니다.
  • 내부 검증 1502건 · 화면 기준선 233장. versionCode 387.
v3.5.542026-08-01
실제 시장 자료가 우리 적중률 수치와 정반대였습니다
  • 앞서 「추세장 적중률 82%」라는 숫자를 얻고 검사로 고정해 두었습니다. 그 숫자는 제가 만든 표본에서 나온 것이었습니다. 이번에 실제 업비트 일봉(18종 × 200봉)으로 다시 쟀습니다. | | 합성 표본 | 실제 일봉 | |---|---|---| | 추세장 | 82.4% | 50.9% | | 횡보장 | 54.1% | 73.9% | 뒤집혔습니다. 원인은 표본에 있었습니다. 무작위 보행에 일정한 드리프트를 넣으면 추세가 영원히 이어지는 계열이 되고, 추세추종 지표가 자동으로 이깁니다. 실제 시장은 그렇지 않습니다 — 추세는 끝나고 값은 되돌아옵니다. ADX가 「강한 추세」라고 할 무렵이면 그 추세는 이미 성숙한 경우가 많습니다. 그런데 이번 판에서 앱의 동작은 바꾸지 않았습니다. 바꾸고 싶은 유혹이 있었습니다 — 이 결과대로면 지난 판에서 「횡보장에 신뢰도 천장」을 씌운 것이 거꾸로입니다. 하지만 실제 표본도 한 국면의 표본 하나입니다. 18종이 모두 같은 시기의 국내 상장 코인이고, 걸어가며 재는 방식이라 관측이 크게 겹칩니다. 그것 하나로 방향을 뒤집으면 이번엔 반대쪽으로 틀릴 수 있고, 알림처럼 사용자를 깨우는 자리에서는 그 대가가 큽니다. 대신 두 곳에 크게 적어 두었습니다.
  • 적중률 검사에: 이 78%는 「앱이 시장에서 78% 맞힌다」는 뜻이 결코 아니다. 같은 표본으로 판이 바뀔 때 나빠졌는지만 보는 눈금이다.
  • 신뢰도 천장 코드에: 실제 자료는 반대를 가리킨다. 여러 시기·여러 시장의 자료가 모일 때까지 이 자리를 열어 둔다. 숫자를 지어내는 것보다, 모른다는 것을 정확히 아는 편이 낫다고 판단했습니다.
  • 내부 검증 1502건 · 화면 기준선 233장. versionCode 386.
v3.5.532026-08-01
가격은 한 거래소, 분석은 다른 거래소를 보고 있었습니다
  • 지난 판에서 실제 거래소 자료로 계산을 검증했습니다. 이번엔 이 앱이 한 번도 물어본 적 없는 것을 물었습니다 — 거래소를 바꾸면 기술적 분석도 바뀌는가. | 코인 | 업비트 RSI | 바이낸스 RSI | 차이 | |---|---|---|---| | BTC | 36.49 | 44.16 | 7.68 | | XRP | 33.57 | 41.34 | 7.77 | | SOL | 35.95 | 41.92 | 5.98 | | DOGE | 36.30 | 39.09 | 2.79 | 같은 코인·같은 기간인데 RSI가 최대 7.8 포인트 다릅니다. 잡음이 아니라 이유가 분명합니다 — 원화와 달러라 환율 변동이 섞이고, 일봉 마감 시각이 다릅니다(업비트 09:00 KST, 바이낸스 00:00 UTC). 그런데 분석용 캔들이 사용자가 고른 거래소를 따르지 않았습니다. 설정과 무관하게 늘 업비트를 먼저 받았습니다. 바이낸스를 고른 분은 가격은 달러, 분석은 원화 캔들로 보고 있었던 것입니다. RSI 36과 44는 다른 이야기이고, 40 근처면 과매도 판정 자체가 갈립니다. 고친 방법 — 가격이 온 그 거래소의 캔들을 씁니다. 설정값이 아니라 가격이 실제로 온 곳을 씁니다(폴백 결과까지 반영). 그러면 화면의 가격과 분석이 구조적으로 어긋날 수 없습니다. 알림과 스파크라인도 같은 거래소를 봅니다.
  • 캐시 키에도 거래소를 넣었습니다. 안 넣으면 거래소를 바꿔도 옛 캔들이 그대로 돌아옵니다 — 설정을 바꿨는데 아무것도 안 달라지고, 그 사이 판정은 화면에 적힌 거래소와 다른 자료로 낸 것이 됩니다.
  • 검사 하나를 또 고쳤습니다. 「자료 나이를 묻는가」를 확인하던 가드가 호출 문구를 통째로 맞추고 있어서, 인자가 하나 늘자 규칙은 그대로인데 깨졌습니다. 이 앱이 되풀이해 겪은 모양이라 규칙만 보도록 바꿨습니다.
  • 내부 검증 1502건 · 화면 기준선 233장. versionCode 385.
v3.5.522026-08-01
실제 거래소 자료로 처음 대조했습니다
  • 지금까지 정확도를 잴 때 쓴 표본은 전부 만들어 낸 계열이었습니다. 이번에 실제 업비트 일봉 200개를 다섯 코인(BTC·ETH·XRP·SOL·DOGE)에 대해 받아, 앱의 값과 독립적으로 구현한 계산을 나란히 견줬습니다. 결과 — RSI와 이동평균은 다섯 코인 모두 소수점까지 일치했습니다. ATR만 앱이 일관되게 7% 컸습니다. 확인해 보니 틀린 쪽은 제 대조 구현이었습니다. 오늘의 미완성 일봉을 포함해 계산했던 것입니다. ``` BTC 전체 봉 2,012,329.86 · 마지막 봉 제외 2,153,355.23 · 앱 2,153,355.35 ``` 빼고 나니 소수점까지 일치했습니다. 갓 열린 일봉은 아직 하루치 범위를 못 그렸으므로 변동폭이 비정상적으로 작고, 그걸 평균에 넣으면 변동성이 통째로 낮게 나옵니다. 7%는 반올림 수준이 아닙니다 — 「변동성 201만원」과 「215만원」의 차이이고, 그 값이 손절 폭과 무효화 거리로 그대로 쓰입니다. 이 앱이 가장 공들여 지켜 온 규칙(진행 중인 봉을 세지 않는다)에 이제 실제 시장 숫자가 붙었습니다. 코드에 적어 두었습니다.
  • 새로 고친 것은 없습니다. 확인한 판입니다 — 열여덟 번째 회차에서 처음으로 만들어 낸 자료가 아닌 실제 자료로 앱을 검증했고, 계산은 옳았습니다.
  • 내부 검증 1497건 · 화면 기준선 233장. versionCode 384.
v3.5.512026-08-01
이 앱이 얼마나 맞는지, 이제 검사가 지킵니다
  • 지난 네 판에서 지표가 「무엇을 보고 표를 던지는가」를 고쳤습니다. 그 다음 순서로 가중치를 의심했습니다 — 지표별·국면별 적중률에서 무게를 뽑아 다시 놓아 봤습니다. ``` 현재 가중치 측정 기반 가중치 추세 82.4% 82.0% 횡보 54.1% 54.1% ``` 나아지지 않았습니다. 그래서 가중치는 건드리지 않았습니다. 지표들이 이미 고르게 맞으므로 무게를 바꿔도 합계의 부호가 거의 안 바뀝니다 — 문제는 가중치가 아니라 지표가 무엇을 보는가였고, 그건 이미 고쳤습니다. 이 사실을 코드에 적어 두었습니다. 나중에 누군가 「가중치를 최적화하자」고 시작하기 전에 이미 재 봤고 나아지지 않았다는 것을 알 수 있게요. 대신 이 앱에 없던 것을 만들었습니다 — 적중률 회귀 검사. 열여섯 판에 걸쳐 판정의 적중률을 추세장 82%대까지 올렸는데, 그 수치가 아무 데도 적혀 있지 않았습니다. 누군가 지표 하나를 「개선」하다 이 수를 떨어뜨려도 알 방법이 없었습니다 — 화면은 여전히 판정을 내고, 검사는 전부 통과합니다. 이제 배포 전 검사가 직접 잽니다. 추세장이 78% 아래로 내려가거나 횡보장이 동전 던지기 아래로 떨어지면 그 자리에서 걸립니다.
  • 이 수치는 수익률이 아닙니다. 「20봉 뒤 종가가 지금보다 높은가」를 맞히는 비율일 뿐이고, 표본도 무작위로 만든 계열이라 실제 시장 수치가 아닙니다. 판이 바뀔 때 나빠졌는지 보는 눈금으로만 씁니다. 그 한계도 검사에 함께 적어 두었습니다.
  • 내부 검증 1497건 · 화면 기준선 233장. versionCode 383.
v3.5.502026-08-01
여덟 지표 중 하나가 말을 안 하고 있었습니다
  • 지난 두 판에서 국면에 맞지 않는 표를 걷어 냈습니다. 그 뒤 지표들이 실제로 얼마나 자주 말하는지 세어 봤습니다. | 지표 | 표를 던진 비율 | |---|---| | MACD | 100% | | OBV | 99.9% | | ADX | 78.5% | | 이동평균 | 55.5% | | 스퀴즈 | 51.5% | | 스토캐스틱 | 46.3% | | RSI | 46.1% | | 자금흐름지수(MFI) | 0.5% | MFI는 3,500번 중 18번만 말했습니다. 2,910번이 중립이었습니다. 극단값에서만 말하도록 되어 있는데 그 극단은 대부분 국면 규칙에 걸러지므로, 목록에서 한 줄을 차지하며 아무것도 하지 않는 장식이 되어 있었습니다. 「지표 8개」라는 인상만 주고 실제로는 7개였던 셈입니다. 빼는 대신 말하게 했습니다. MFI는 거래량으로 무게를 준 RSI라, 다른 지표에 없는 정보를 나릅니다. 중심선 위치를 재 보니 앞으로 20봉의 방향을 71.6%로 맞혔습니다 — 스토캐스틱(72.7%)과 같은 수준입니다. 그래서 지난 판에 스토캐스틱에 쓴 방식 그대로, 가운데 구간에서도 위쪽 절반이면 매수 쪽, 아래쪽 절반이면 매도 쪽으로 말합니다. 극단값에 걸린 국면 규칙은 그대로입니다.
  • 검사 하나를 함께 손봤습니다. 「기준 점수가 0이 아니다」를 확인하던 자리가 있었는데, 지표 구성이 바뀌면 우연히 0이 될 수 있는 약한 확인이었습니다. 검사는 그때그때의 값이 아니라 규칙을 봐야 합니다 — 거름망이 정확히 한 봉만 버리는지로 바꿨습니다.
  • 내부 검증 1495건 · 화면 기준선 233장. versionCode 382.
v3.5.492026-08-01
횡보장의 「강한 매도」는 동전 던지기였고, 그걸로 알림이 울렸습니다
  • 지난 판에서 지표 하나하나의 적중률을 쟀습니다. 이번엔 그것들을 합친 종합 판정을 국면별로 쟀습니다(무작위 300계열, 앞으로 20봉의 방향). | 국면 | 강한 매도 | 매도 | 매수 | 강한 매수 | |---|---|---|---|---| | 추세장 | 86.4% | 58.8% | 66.5% | 84.5% | | 횡보장 | 47.6% | 51.0% | 61.2% | 59.2% | | 애매 | 55.8% | 53.8% | 55.8% | 59.1% | 추세장에서 강한 판정은 85% 대입니다 — 이 앱이 잘하고 있는 부분입니다. 그런데 횡보장의 강한 매도는 47.6%, 동전 던지기 이하입니다. 방향이 없는 구간에서 「강하게」 말할 근거가 애초에 없기 때문입니다. 그리고 그 강한 판정이 알림이 울리는 자리입니다. 47.6%짜리 근거로 사용자를 깨우고 있었습니다. 고친 것 둘 1. 횡보·애매 국면에서는 신뢰도에 천장을 씌웁니다. 판정을 감추지 않습니다 — 얇은 자료·오래된 자료·문턱에 걸친 판정에 이미 쓰던 방식 그대로이고, 넷 다 천장이라 함께 걸면 가장 낮은 것이 남습니다. 2. 추세장이 아니면 알림이 울리지 않습니다. 몇 번 헛울리면 사람은 알림 자체를 끄고, 그러면 추세장의 85%짜리 진짜 신호도 함께 잃습니다. 국면이 추세로 바뀐 뒤의 전이는 그대로 울립니다 — 건너뛸 때 이전 상태를 갱신하지 않기 때문입니다.
  • 판정이 실제로 쓴 국면을 결과에 함께 실어 보냅니다. 화면이 국면을 다시 계산하면 「같은 것을 두 곳에서 세는」 자리가 됩니다.
  • 내부 검증 1494건 · 화면 기준선 233장. versionCode 381.
v3.5.482026-08-01
여덟 지표를 전부 재 봤더니 하나가 반대로 맞히고 있었습니다
  • 지난 판에서 MACD가 「방향을 못 보는 값」으로 투표하던 것을 고쳤습니다. 그러자 더 큰 물음이 남았습니다 — 나머지 지표의 분류와 가중치는 근거가 있는가. 잰 적이 없었습니다.
  • 그래서 여덟 지표가 국면별로 앞으로 20봉의 방향을 얼마나 맞히는지 전부 쟀습니다. | 지표 | 추세장 | 횡보장 | |---|---|---| | 이동평균 | 84.0% | 58.9% | | MACD | 84.1% | 56.0% | | ADX | 82.6% | — | | RSI | 78.6% | 56.3% | | 스퀴즈 | 78.6% | 57.4% | | OBV | 73.4% | 47.6% | | 스토캐스틱 | 42.2% | 45.1% | 스토캐스틱만 모든 국면에서 50% 아래였습니다. 추세장에서 42.2% — 표를 그대로 뒤집으면 더 맞는다는 뜻입니다. 1,082번 표를 던지고서요. 원인은 MACD와 똑같았습니다. 남은 표가 「%K가 %D를 넘었나」, 즉 교차였습니다. 같은 자료 같은 순간에 두 가지를 견줘 보면: ``` 교차 %K > %D 50.8% ← 동전 던지기 위치 %K > 50 72.7% ← 같은 지표, 다른 읽기 ``` %K는 「최근 14봉 범위에서 지금 종가가 어디쯤인가」입니다. 위쪽 절반이면 최근 흐름이 위였다는 뜻이라 위치가 곧 방향이고, 교차는 그 위치가 방금 흔들렸는지만 말합니다.
  • 문구도 바꿨습니다. 「K선 상향」 → 「위쪽 절반」, 「%K가 %D를 상향 교차. 단기 상승 압력.」 → 「%K가 최근 범위의 위쪽 절반에 있습니다 — 최근 흐름이 위쪽이라는 뜻입니다.」(5개 언어) 보는 값이 바뀌면 설명도 바뀌어야 합니다.
  • 두 판 연속 같은 병이었습니다: 교차(모멘텀의 변화)로 방향을 말하려 한 것. 남은 지표에도 같은 자리가 있는지 이어서 봅니다.
  • 내부 검증 1489건 · 화면 기준선 233장. versionCode 380.
v3.5.472026-08-01
MACD가 방향을 못 보는 쪽으로 표를 던지고 있었습니다
  • 폭락 표본에서 MACD가 매수 표를 던지는 것이 눈에 띄어, 현실적인 무작위 자료 400계열로 앞으로 20봉의 방향을 맞히는 비율을 쟀습니다. | 추세 | 히스토그램(앱이 쓰던 값) | MACD선 부호 | |---|---|---| | 하락 −0.6%/봉 | 40.6% | 96.6% | | 상승 +0.6%/봉 | 56.7% | 95.0% | | 방향 없음 | 49.5% | 50.3% | 앱이 쓰던 값은 하락장에서 40.6% — 동전 던지기보다 나빴습니다. 그런데 앱은 MACD를 추세추종 지표로 분류해 추세장에서 가중치를 더 주고 있었습니다. 못 맞히는 값에 무게를 얹고 있었던 셈입니다. 원인 — MACD의 두 값 중 다른 쪽을 보고 있었습니다. 히스토그램은 「MACD선 − 신호선」, 즉 교차입니다. 「모멘텀이 방금 꺾였나」를 말하지 「어느 쪽으로 가고 있나」를 말하지 않습니다. 추세가 있든 없든 그 교차는 대략 반반이라 방향 정보를 거의 안 나릅니다. MACD선 자체는 「짧은 평균 − 긴 평균」이라 부호가 곧 방향이고, 방향이 없을 때는 정확히 50%로 떨어집니다 — 없는 확신을 만들지 않습니다. 히스토그램을 버린 것은 아닙니다. 「이 숫자의 근거」 줄이 여전히 「벌어지는 중 / 좁아지는 중」으로 씁니다. 바꾼 것은 표를 던지는 자리뿐입니다.
  • 「시그널 상회」였던 문구를 「기준선 위」로 고쳤습니다 — 보는 값이 바뀌었으니 설명도 바뀌어야 합니다. 「MACD가 0 위입니다 — 짧은 평균이 긴 평균보다 위라는 뜻이고, 방향은 위쪽입니다.」(5개 언어)
  • 내부 검증 1489건 · 화면 기준선 233장. versionCode 379.
v3.5.462026-08-01
「강한 하락」이라고 판정해 놓고 결론은 「중립」이었습니다
  • 지난 판에서 국면을 모를 때 극단값을 매수 근거로 세지 않게 고쳤습니다. 그 뒤 폭락 표본에서 어느 지표가 매수 표를 던지는지 하나씩 들여다봤더니, 구멍이 하나 더 있었습니다. ``` 꾸준히 무너지는 80봉 · 국면 판정 = 강한 하락 RSI · 과매도(추세 중) ← 걸러짐 스토캐스틱 매수 과매도 ← 보호 없음 자금흐름지수 매수 과매도 ← 보호 없음 → 종합 점수 −13 · 판정 「중립」 ``` 국면을 몰라서가 아니라 알고도 그랬습니다. 「추세 안의 과매도는 신호가 아니라 상태」라는 보호 장치가 RSI에만 있었고, 눈금만 다를 뿐 똑같은 규칙을 쓰는 스토캐스틱·자금흐름지수는 그대로 매수 표를 던졌습니다. 그 두 표가 하락 표를 상쇄해 결론이 중립이 됐습니다. 지난 판은 신규 상장 코인의 문제였지만, 이건 자리 잡은 코인 전부에 해당합니다. 고친 방법 — 규칙을 한 벌로. 눈금(70·30 / 80·20)만 인자로 받아 세 지표가 같은 규칙을 나눠 씁니다. 세 벌로 적으면 언젠가 한 곳만 고쳐집니다. 뜻밖의 성과가 하나 있었습니다. 이 표들을 걷어 내자 종합 판정 자체가 훨씬 안정됐습니다. 「근거는 그대로인데 헤드라인만 뒤집히는」 현상이 6.4% → 0.12%(9/7,800)로 50배 줄었습니다. 앞서 그 흔들림에 신뢰도 천장을 씌워 대응했는데(v3.5.38), 이번에 원인 쪽이 거의 사라진 것입니다. 천장은 그대로 둡니다 — 0은 아니니까요. 다만 검사에 그 변화를 기록해 두었습니다. 나중에 이 수가 다시 커지면 무언가 되돌아갔다는 신호입니다.
  • 내부 검증 1485건 · 화면 기준선 233장. versionCode 378.
v3.5.452026-08-01
매 봉 30%씩 무너지는 코인을 「중립」으로 읽고 있었습니다
  • 신규 상장 코인에서 매일 나오는 모양으로 판정을 돌려 봤습니다. 하나가 크게 걸렸습니다. | 표본 | 점수 | 종합 판정 | |---|---|---| | 매 봉 +30% × 40봉 | +25 | 매수 | | 매 봉 −30% × 40봉 | +14 | 중립 | 가능한 가장 격렬한 폭락인데 점수가 양수였습니다. 원인 — 「과매도 = 매수」라는 고전 규칙입니다. 이 앱은 그 규칙의 위험을 이미 알고 있었습니다. 추세가 살아 있을 때 그대로 따르면 상승 초입에서 팔고 하락 초입에서 사게 되므로, 추세장에서는 그 표를 빼는 장치가 RSI에 붙어 있었습니다. 그런데 국면(추세인지 횡보인지)을 아직 정할 수 없을 때는 그 장치가 안 걸립니다. 그리고 「국면 미정」은 드문 상황이 아닙니다 — 국면 판단에는 캔들 47개가 필요하므로 신규 상장 코인은 상장 후 47봉까지 늘 미정입니다(일봉이면 7주). 하필 가장 크게 움직이는 시기입니다. 게다가 처음 본 것보다 넓었습니다. RSI만 고쳐서는 점수가 여전히 양수였습니다. 스토캐스틱과 자금흐름지수(MFI)도 같은 규칙을 쓰는데, 이 둘에는 추세 보호 장치가 아예 없었습니다. 세 지표가 함께 매수 표를 던지고 있었던 것입니다. 고친 방법 — 모르면 그 한 표를 세지 않습니다. 「모르면 반대로 읽자」가 아닙니다. 그건 판단을 지어내는 것입니다. 국면을 정할 수 없으면 극단값으로 되돌림을 점치지 않고, 그 표를 빼기만 합니다 — 이 앱이 얇은 자료·오래된 자료·문턱에 걸친 판정에서 지켜 온 방향과 같습니다.
  • 화면에도 왜 안 셌는지가 뜹니다: 「극단값이지만 지금이 추세인지 횡보인지 아직 정할 수 없습니다. 그 구분에 따라 같은 값이 정반대 뜻이 되므로, 되돌림 근거로 세지 않았습니다.」(5개 언어)
  • 내부 검증 1480건 · 화면 기준선 233장. versionCode 377.
v3.5.442026-08-01
성립하지 않는 봉 하나가 「강한 매수」 알림을 낼 수 있었습니다
  • 지금까지 정확도를 잴 때 쓴 표본은 전부 매끄러운 합성 자료였습니다. 실제 시장 자료에는 있는데 그 표본에는 한 번도 없던 모양들로 다시 돌려 봤습니다 — 거래량 0인 봉, 값이 멈춘 구간, 극단적 갭, 초저가 코인, 시각이 어긋난 봉, 그리고 성립하지 않는 봉.
  • 일곱은 멀쩡했습니다. 예외도 없고 이상한 값도 안 나오며, 바르게 물러납니다 — 거래량이 0이면 거래량 지표를 빼고 중립을 내고, 값이 안 움직이면 RSI 50, 초저가 코인에서도 결과가 같습니다. 그런데 하나가 걸렸습니다. | | 점수 | 종합 판정 | |---|---|---| | 정상 150봉 | 33 | 매수 | | 그중 한 봉만 「고가 < 저가」 | 67 | 강한 매수 | 봉에는 지켜야 할 관계가 있습니다 — 고가는 저가보다 낮을 수 없고, 시가·종가는 그 사이에 있어야 합니다. 깨진 값은 「이상한 시세」가 아니라 시세가 아닙니다. 그런데 이 앱은 진행 중인 봉은 꼼꼼히 가려내면서 성립하지 않는 봉은 안 가려내고 있었습니다. 왜 중요하냐면 — 「강한 매수」는 알림이 울리는 자리입니다. 거래소가 깨진 봉을 한 번 흘리면 그것만으로 푸시가 나갈 수 있습니다. 그리고 깨진 봉은 실제로 나옵니다: 거래소 장애, 캔들 집계 오류, 신규 상장 직후. 고친 방법 — 메우지 않고 버립니다. 앞뒤 값으로 메울 수도 있지만 그건 없는 봉을 지어내는 것입니다. 이 앱이 되풀이해 골라 온 답은 「모르면 말하지 않는다」이고 여기서도 같습니다. 거래소가 그 봉을 안 보낸 것과 같게 다룹니다.
  • 검사가 정확한 성질을 지킵니다. 처음엔 「깨진 봉이 있어도 판정이 그대로여야 한다」로 적었는데 그건 틀린 요구였습니다 — 봉을 버리면 봉 수가 줄고, 그러면 지표가 조금 달라지는 것이 정상입니다. 지켜야 할 것은 깨진 값이 계산에 한 톨도 안 섞이는 것이라, 「깨진 봉이 든 150봉」과 「그 봉을 아예 뺀 149봉」이 똑같은 답을 내는지를 봅니다.
  • 내부 검증 1475건 · 화면 기준선 233장. versionCode 376.
v3.5.432026-08-01
협의 없이 실려 있던 국내 매체를 뺐습니다
  • 뉴스 출처 목록에 국내 매체 세 곳(토큰포스트·블록미디어·블록체인투데이)의 이름과 RSS 주소가 앱에 박혀 있었습니다. 데이터 출처 화면에도 이름과 도메인이 그대로 나왔습니다.
  • 국내 매체는 브랜드와 서비스 사용에 사전 협의를 기대하는 것이 관행입니다. 협의 없이 기능 안에 이름을 넣어 둔 상태에서 항의가 오면 내세울 근거가 없고, 그때는 이미 배포된 판이 여럿이라 되돌리는 데 시간이 걸립니다. 그래서 뺐습니다. 함께 정리된 것
  • 「국내 / 해외」로 나누던 묶음 머리글을 없앴습니다. 국내가 빠진 뒤로 남은 것은 전부 같은 성격이라, 「해외」라는 이름은 나눌 것이 없는 자리에 이름만 붙이는 셈이었습니다.
  • 번역 칩을 뺐습니다. 모든 출처가 같은 성격이 되면서, 기사마다 붙던 그 표시가 뜻을 잃었습니다. 덤으로 큰 글씨에서 출처가 「Co…」로 줄던 문제가 원인째 사라졌습니다 — 자리를 뺏던 것이 바로 그 칩이었습니다. 이제 「출처 · 분류 · 시각 ★」이 320dp × 1.5배에서도 한 줄에 들어가고, 줄을 늘리지 않으니 한 화면에 담기는 기사가 늘었습니다.
  • 이미 국내 매체를 골라 두셨더라도 아무 일도 일어나지 않습니다 — 목록에 없는 선택은 자연히 걸러집니다.
  • 다시 들어오지 않도록 검사를 세웠습니다. 국내 도메인이나 한글 이름의 출처가 목록에 추가되면 그 자리에서 걸립니다. 목록은 사람이 손으로 늘리는 곳이라, 나중에 「하나쯤은」 하고 넣기 쉽습니다.
  • 다음 판에서 RSS 주소를 직접 추가하는 기능을 넣습니다. 앱은 「주소를 받아 읽는 도구」가 되고, 어느 매체를 볼지는 사용자가 정합니다.
  • 내부 검증 1470건 · 화면 기준선 233장. versionCode 375.
v3.5.422026-08-01
디자인 개편 1단계 — 선을 지우고 숫자를 앞으로
  • 전면 개편을 시작합니다. 방향은 「고요한 데이터」 — 선과 배지를 지우고 여백과 글자 크기로만 정리해서, 숫자가 화면의 주인공이 되게 하는 것입니다. 한 번에 다 바꾸면 되돌리기 어려우므로 여러 판에 나눠 진행합니다. 이번이 첫 판입니다. 하나 — 시선 위계를 바로잡았습니다. 김치 프리미엄이 파란색으로 꽉 채운 상자에 테두리까지 두르고 있어서, 목록에서 가장 강한 요소가 부차 정보였습니다. 사용자가 먼저 찾는 것은 가격인데 눈은 프리미엄으로 먼저 갔습니다. 상자를 없애고 글자만 남겼습니다 — 색은 그대로라 양·음은 여전히 한눈에 보이고, 앞에 「김프」라는 작은 이름표를 붙여 무엇의 %인지 밝힙니다. 둘 — 행 사이 구분선을 지웠습니다. 코인마다 선을 그으면 목록이 로 읽힙니다 — 눈이 값보다 격자를 먼저 봅니다. 선을 빼고 여백만 남겼습니다. 자료의 종류가 바뀌는 자리(코인 → 지수 → 환율)의 구분선은 남기되 훨씬 옅게 하고 틈을 넓혔습니다. 셋 — 카드 테두리를 거의 지웠습니다. 카드를 선으로 두르면 화면이 「상자의 모음」으로 읽힙니다. 카드를 나누는 것은 테두리가 아니라 배경과의 미세한 밝기 차와 여백이면 충분합니다.
  • 작업 중 제가 결함을 하나 넣었고 기준선이 잡았습니다. 이름표를 「김치 프리미엄」 그대로 붙였더니 이름이 칸을 다 먹어 숫자가 「-0.…」로 잘렸습니다. 이 앱의 규칙은 그 반대입니다 — 말줄임은 라벨에만, 숫자는 줄여서라도 온전히. 짧은 이름표로 바꾸고 칸 폭을 조정해 큰 글씨에서도 온전히 나오게 했습니다.
  • 다음 판에서는 정렬 칩(큰 알약 5개)을 텍스트 세그먼트로 바꾸고, 화면을 하나씩 이어서 개편합니다.
  • 내부 검증 1479건 · 화면 기준선 233장. versionCode 374.
v3.5.412026-08-01
공포지수 화면을 납작하게 고쳤습니다
  • 공포·탐욕 게이지가 자동차 계기판을 흉내 내고 있었습니다. 크롬 재질의 3D 허브(방사형 그라디언트 + 흰 하이라이트 점), 광택 바늘, 아크 아래 드리운 그림자, 빨강→노랑→초록 무지개. 오래된 스타일이라는 것 말고도 문제가 있었습니다. 무지개가 앱의 색과 따로 놀았습니다. 이 앱은 골드·적·청으로 말하는데 이 카드에서만 주황·노랑·라임이 나왔습니다. 카드 하나가 다른 앱처럼 보였습니다. 바늘·허브·그림자는 정보를 하나도 나르지 않았습니다. 값은 아크의 길이가 이미 말합니다. 같은 사실을 다섯 번 말하고 있었습니다. 바늘 위치 · 큰 숫자 「75」 · 「극탐욕」 · 다섯 칸 중 칠해진 「극탐욕」 칩 · 그리고 맨 아래 요약의 「F&G 75 극탐욕」. 다섯 칸 칩은 세로로 크게 자리를 먹으면서 나머지 네 칸으로 지금이 아닌 상태를 알려 줄 뿐이었습니다. 고친 모습
  • 은은한 트랙 위에 단계 색 하나로 값만큼 칠하고, 끝에 점 하나. 바늘도 허브도 그림자도 없습니다.
  • 비어 있던 반원 안쪽에 숫자와 단계 이름을 넣었습니다. 예전엔 아크 아래에 따로 쌓아서 반원 안이 통째로 비고 카드만 길어졌습니다.
  • 다섯 칸 칩을 뺐습니다. 칠해진 칸의 이름은 바로 위 반원 안에 이미 있습니다.
  • 맨 아래 요약에서 종합 한마디만 남겼습니다. 「극단적 탐욕」은 셋을 함께 읽은 판정이라 다른 어디에도 없지만, 뒤에 이어지던 「F&G 75 극탐욕 · VIX 17.1 보통 · KOSPI +1.20% 상승」 은 전부 바로 위 카드들이 더 크게 말하던 값이었습니다. 큰 글씨에서 그 되풀이가 세 줄을 먹었습니다.
  • 반원 안쪽 글씨는 넘치면 줄어듭니다. 아크는 dp, 글씨는 sp 라 표시 배율을 키우면 글씨만 커져 아크를 넘습니다 — 이 앱이 되풀이해 만난 결함의 최대 산지가 그 어긋남입니다.
  • 카드 높이가 기본 글씨에서 약 12%, 큰 글씨에서 약 25% 줄었습니다.
  • 내부 검증 1479건 · 화면 기준선 233장. versionCode 373.
v3.5.402026-08-01
새로 고침이 시세를 조금 전으로 되돌리고 있었습니다
  • 「웹소켓이 있으면 새로 고침이 필요한가」를 따져 보다 찾았습니다. 필요합니다 — 소켓이 주는 것은 고른 거래소의 가격과 등락률뿐이고, 환율·김프 기준가·지수· 공포탐욕·도미넌스·뉴스·차트 캔들은 전부 새로 고침이 가져옵니다. 소켓은 화면이 켜져 있을 때만 열리므로 돌아왔을 때 메우는 것도, 소켓이 끊긴 동안의 폴백도 새로 고침입니다.
  • 그런데 지금 형태로는 그 새로 고침이 실시간 값을 되돌리고 있었습니다. 새로 고침은 시세 묶음을 통째로 갈아끼웁니다. 그 응답에 담긴 가격은 요청을 보낸 시점의 것입니다. 왕복하는 수백 밀리초 동안 소켓으로 더 새로운 값이 들어왔다면, 갈아끼우는 순간 화면의 가격이 뒤로 튑니다. 눈에는 이렇게 보입니다 — 갱신 주기마다 한 번씩 값이 조금 되돌아가고, 되돌아가는 방향이라 가격 플래시가 반대 색으로 켜집니다. 오르는 중인 코인이 1분에 한 번 파랗게 번쩍이는 것입니다. 끄는 대신 「어느 쪽이 더 새로운가」를 가립니다. 새로 고침보다 나중에 도착한 실시간 값만 다시 얹습니다. 얹는 방법은 소켓이 쓰는 것과 같은 함수입니다 — 두 곳이 각자 병합하면 김프 계산이나 통화 처리가 언젠가 갈립니다.
  • 거래소를 바꿀 때는 들고 있던 실시간 값을 버립니다. 원화 거래소에서 달러 거래소로 옮기면 통화가 달라지는데, 옛 값이 남아 새 묶음을 이기면 비트코인이 15만원이 됩니다.
  • 내부 검증 1479건 · 화면 기준선 233장. versionCode 372.
v3.5.392026-07-31
신호 알림의 절반이 「한 점 차이」로 사용자를 깨우고 있었습니다
  • 알림은 이 앱에서 오탐 비용이 가장 큰 자리입니다. 화면은 안 보면 그만이지만 알림은 사용자를 깨웁니다. 몇 번 헛울리면 사람은 그 알림 하나를 끄는 게 아니라 알림 자체를 끕니다 — 그러면 진짜 신호도 함께 잃습니다.
  • 기술적 신호 알림은 종합 판정이 「강한 매수」나 「강한 매도」로 넘어갈 때 울립니다. 그 경계는 점수 ±60 입니다. 그런데 점수가 그 언저리면 「매수」와 한 점 차이인 상태에서 사용자를 깨우게 됩니다. 쟀습니다. 무작위 200계열(일봉 260개)에서 알림 상태기를 그대로 돌렸습니다. | | 예전 | 지금 | |---|---|---| | 총 발화 | 1,677 | 764 | | 점수가 문턱 ±5 안에서 발화 | 898 (53.5%) | 0 | | 직전 발화로부터 5봉 이내 재발화 | 462 (27.5%) | 9.4% | | 알림이 난 계열 | 200 / 200 | 200 / 200 | 절반 넘는 알림이 한 점 차이에서 나갔고, 넷 중 하나는 닷새 안의 재알림이었습니다. 일봉이니 「닷새 만에 같은 알림이 또」라는 뜻입니다. 소음만 걷고 신호는 남겼습니다. 알림이 나던 계열은 여전히 200개 전부입니다 — 울릴 일이 있으면 여전히 울립니다. 줄어든 것은 「한 점 차이로 깨우던」 몫뿐입니다.
  • 건너뛸 때 이전 상태를 갱신하지 않습니다. 여기서 상태만 적어 두면, 나중에 점수가 제대로 올라왔을 때 「바뀌지 않았다」가 되어 진짜 전이를 영영 놓칩니다. 이 앱은 오래된 자료를 다루면서 같은 함정을 이미 한 번 겪었고, 그때 세운 규칙(「평가 불가 → 이전 상태 보존」)을 그대로 씁니다. 검사가 그 순서까지 확인합니다.
  • 검사가 결함이 실재했다는 것부터 확인하고, 고친 뒤 신호를 잃지 않았는지도 함께 봅니다 — 알림을 줄이는 가장 쉬운 방법은 안 울리는 것이고, 그건 고친 게 아닙니다.
  • 내부 검증 1475건 · 화면 기준선 233장. versionCode 371.
v3.5.382026-07-31
근거는 그대로인데 종합 판정만 뒤집히던 자리
  • 종합 판정은 −100~100 점수를 다섯 칸(강한 매도~강한 매수)으로 접습니다. 접는 자리는 ±20 과 ±60 입니다. 그런데 점수가 그 언저리에 있으면 봉 하나에 라벨이 뒤집힙니다 — 사용자가 화면에서 읽는 것은 그 라벨이므로, 아무 일도 없었는데 「매수 우위」가 「중립」이 됐다가 돌아옵니다. 주장하지 않고 쟀습니다. 무작위 120계열에서 봉을 하나씩 늘리며 4,680번 견줬습니다. | | 횟수 | 비율 | |---|---|---| | 판정 라벨이 바뀜 | 1,090 | 23.3% | | 그중 점수는 5 이하로만 움직임 | 301 | 전체 걸음의 6.4% | 즉 열다섯 봉에 한 번꼴로, 근거는 그대로인 채 헤드라인만 뒤집힙니다. 실시간 시세가 들어오는 지금은 그 뒤집힘을 실제로 보게 됩니다. 라벨을 감추는 대신 신뢰도를 낮춥니다. 문턱을 옮기거나 없애는 것은 답이 아닙니다 — 어디에 두든 그 언저리는 늘 생깁니다. 값을 감추는 것도 답이 아닙니다(점수 75는 문턱에서 멀어 흔들려도 결론이 안 바뀝니다). 이 앱이 얇은 자료오래된 자료에 이미 쓰던 답을 그대로 씁니다: 틀렸다는 말이 아니라 그만큼 세게 말할 자리가 아니라는 뜻이므로 신뢰도에 천장을 씌웁니다. 셋 다 천장이라 함께 걸면 가장 낮은 것이 남습니다.
  • 천장을 씌우는 폭(5점)은 눈대중이 아니라 위 측정에서 나왔습니다. 더 넓게 잡으면 멀쩡한 판정까지 깎이고, 더 좁게 잡으면 정작 뒤집히는 자리를 놓칩니다.
  • 검사가 결함이 실재한다는 것부터 확인합니다 — 근거가 그대로인데 뒤집히는 걸음이 실제로 있는지 먼저 재고, 그 다음 그 자리들이 전부 신뢰도가 깎였는지 봅니다.
  • 판정이 접는 자리(±20·±60)가 두 곳에 적혀 있으면 언젠가 갈립니다. 한쪽만 고치면 엉뚱한 자리를 지키면서도 검사는 통과합니다. 그래서 소스에서 실제로 세어 맞대어 봅니다.
  • 내부 검증 1470건 · 화면 기준선 233장. versionCode 370.
v3.5.372026-07-31
어떤 차트든 누르면 그 차트만 크게 볼 수 있습니다
  • 이 앱의 차트는 카드 안에서 높이 26~140dp 로 삽니다. 목록을 훑을 때는 그게 맞지만, 한 자리를 들여다보려는 순간 그 크기가 곧 한계가 됩니다 — 선이 겹치는 구간은 갈라 보이지 않고, 봉의 꼬리는 픽셀 하나로 뭉갭니다.
  • 가격 차트와 지표 상세는 이미 확대를 갖고 있었습니다. 그런데 나머지 — 성과 비교 · 코인 비교 · 포트폴리오 구성 · 거래량 — 은 크게 볼 방법이 아예 없었습니다. 같은 앱 안에서 어떤 차트는 눌리고 어떤 차트는 안 눌리면, 사용자는 눌리는 것을 외우는 대신 누르기를 그만둡니다 — 있는 기능까지 함께 죽습니다. 이제 모든 차트가 눌립니다. 누르면 설명도 판정도 없이 그 차트만 화면을 통째로 씁니다. 확대해서 보고 싶은 것은 선이지 글이 아니기 때문입니다(지표 설명은 지표 상세 시트가 따로 합니다).
  • 작은 차트와 큰 차트는 같은 함수가 그립니다. 둘을 따로 적으면 언젠가 갈라져서, 작게 볼 때와 크게 볼 때 다른 그림을 보게 됩니다. 크기만 다르고 그림은 하나입니다.
  • 확대한 화면에서 가로로 돌려도 닫히지 않습니다.
  • 새 차트를 붙이면서 확대를 안 달면 검사가 걸어냅니다. 차트를 그리는 파일과 확대가 닿는 파일의 차집합을 봅니다 — 예외로 두려면 「왜 필요 없는지」를 적어야 합니다. (스파크라인은 눌러도 그 코인의 상세로 가는 것이 맞고, 공포·탐욕 게이지는 확대할 선이 없습니다. 그런 이유들을 적어 두었습니다.)
  • 확대 화면은 창보다 길어질 수 없는 구조입니다 — 차트가 남은 자리를 그대로 받으므로 내용이 자리를 요구하는 게 아니라 자리가 내용을 정합니다. 제목도 한 줄로 못 박았습니다.
  • 내부 검증 1463건 · 화면 기준선 233장. versionCode 369.
v3.5.362026-07-31
실시간이 되자 목록이 계속 물들어 있었습니다
  • 지난 판에서 다섯 거래소 모두 실시간으로 바꿨습니다. 그러자 가격 변동 플래시가 제 성질을 드러냈습니다.
  • 이 앱은 값이 바뀌면 행을 잠깐 붉게(오름) 또는 푸르게(내림) 비췄다가 0.56초에 걸쳐 사그라뜨립니다. 60초 폴링 시절에는 「바뀔 때 한 번 반짝」이었습니다. 그런데 실시간에서는 틱이 0.25초마다 들어옵니다 — 사그라지기 전에 계속 다시 켜져서 행이 줄곧 물들어 있고, 오름과 내림이 번갈아 오면 빨강과 파랑을 초당 몇 번씩 오갑니다. 한 번 켜진 불은 끝까지 사그라지게 했습니다. 아직 꺼지는 중이면 새 불을 켜지 않습니다. 애니메이션을 값이 아니라 별도의 신호에 매단 것이 핵심입니다 — 값에 매달면 값이 바뀔 때마다 중간에 취소돼 페이드가 멎은 채로 굳고, 행이 영영 물든 채 남습니다. 보이는 숫자가 바뀌었을 때만 켭니다. 표시 가격은 반올림되므로, 뒤에서 몇 원 움직인 것은 눈에 아무 차이가 없습니다. 안 보이는 변화에 불을 켜는 것은 정보가 아니라 소음입니다. 문턱을 임의로 정하지 않고 「화면의 숫자가 달라졌는가」를 그대로 기준으로 삼았습니다. 값이 길어져도 옆 칸이 밀리지 않습니다. 등락률과 김프 배지가 내용만큼 자리를 먹고 있었습니다. 그러면 등락률이 한 글자 늘 때마다 그 칸이 넓어지고 옆의 가격이 밀립니다 — 가만히 있어야 할 숫자가 옆으로 움직입니다. 이제 두 칸 모두 폭을 비율로 못 박아, 값이 길어지면 제 칸 안에서 글자만 줄어듭니다. 고정 dp 가 아니라 비율인 것이 중요합니다 — dp 칸은 큰 글씨에서 넘칩니다.
  • 자릿수가 다른 행을 세로로 쌓은 그림을 만들었습니다. 폭이 값에 딸려 다니면 가격들의 오른쪽 끝이 층계처럼 어긋나고, 못 박혀 있으면 한 줄로 정렬됩니다 — 눈이 아니라 정렬로 재는 것입니다. 그 그림이 곧바로 하나를 잡아냈습니다: 큰 글씨에서 김프 배지가 「+0.9…」로 잘려 있었습니다. 잘린 김프는 12.3%가 1.2%로 읽히므로, 줄여서라도 온전히 보이게 고쳤습니다(이 앱의 규칙: 말줄임은 라벨에만, 숫자는 줄여서).
  • 내부 검증 1459건 · 화면 기준선 232장. versionCode 368.
v3.5.352026-07-31
어느 거래소를 고르든 실시간 시세가 나옵니다
  • 시세 거래소는 다섯 곳 중에 고를 수 있었는데(업비트·빗썸·바이낸스·비트겟·코인베이스), 실시간 소켓은 업비트에만 있었습니다. 나머지를 고른 분들은 60초 폴링만 받았습니다 — 같은 앱인데 어떤 사용자는 1초 안에, 어떤 사용자는 1분 뒤에 시세를 본 것입니다. 게다가 화면 어디에도 그 사실이 없어서, 느린 쪽에서는 앱이 느린 것으로 보였을 겁니다.
  • 다섯 거래소 모두 웹소켓을 붙였습니다. 어느 것을 고르든 시세가 실시간으로 들어옵니다. 설정에서 거래소를 바꾸면 소켓도 즉시 갈아탑니다. 연결·재연결은 한 곳에서 합니다. 거래소마다 소켓 코드를 따로 쓰면 끊김 처리·재접속·화면 나갈 때 닫기가 다섯 벌이 되고, 그중 하나만 어긋나도 그 거래소에서만 조용히 멈춥니다. 어려운 부분은 공통으로 두고, 거래소마다 다른 것은 주소·구독 한 줄·값 읽기 셋뿐입니다. 소켓 전용 연결 설정을 따로 뒀습니다. 기존 연결에는 「8초 안에 끝나야 한다」는 제한이 걸려 있었는데, 실시간 소켓은 끝나지 않는 것이 정상이라 전제가 정반대입니다. 거래가 뜸한 코인만 보고 있으면 8초 넘게 조용한 것이 자연스러운데, 그때 끊기면 재접속이 쌓이면서 실시간이 점점 느려집니다. 이제 시간 제한을 풀고 20초마다 살아 있는지 확인합니다 — 조용한 것과 끊긴 것을 구분하는 방법이 그것뿐입니다.
  • 거래소마다 값의 통화가 다릅니다(업비트·빗썸은 원화, 나머지 셋은 달러). 통화를 잘못 넣으면 비트코인이 15만원이 되므로, 통화를 값에 붙여 다니게 했습니다. 달러 거래소를 고르면 달러 값도 실시간으로 함께 움직입니다 — 예전 병합 코드는 원화만 갱신해서, 달러 거래소를 골랐다면 정작 보고 있는 숫자가 멈춰 있었을 겁니다.
  • 거래소가 알아듣는 종목 코드가 넷으로 다릅니다(`KRW-BTC`·`BTC_KRW`·`BTCUSDT`·`BTC-USD`). 하나라도 어긋나면 소켓은 멀쩡히 도는데 화면만 안 바뀝니다 — 가장 찾기 어려운 고장이라, 다섯 거래소 코드가 전부 제 코인으로 되돌아오는지 검사가 확인합니다.
  • 소켓이 보내오는 문자열은 외부 입력이라, 거래소 다섯 곳의 값 읽기를 순수 함수로 떼어 검증합니다. 0원 틱은 버리고(그 코인만 ₩0으로 깜빡입니다), 어떤 쓰레기가 와도 읽기 스레드가 죽지 않습니다 — 죽으면 실시간이 조용히 멈춥니다.
  • 새로 접속하는 주소 네 곳을 데이터 출처 화면에 고지했습니다. 지속 연결을 연다는 사실과, 그 연결이 화면이 켜져 있을 때만 열린다는 것도 함께 적었습니다.
  • 내부 검증 1459건 · 화면 기준선 230장. versionCode 367.
v3.5.342026-07-31
자료가 얇을 때 추세·횡보 판정이 스무 코인 중 하나꼴로 반대였습니다
  • 이 앱은 먼저 지금이 추세장인가 횡보장인가를 정하고, 그 다음에 나머지를 읽습니다. 같은 「RSI 72」라도 추세장에서는 「힘이 살아 있다」, 횡보장에서는 「되돌림이 가깝다」로 뜻이 정반대이기 때문입니다. 지표 가중치도 그 판정을 따릅니다. 국면이 뒤집히면 화면 전체가 뒤집힙니다.
  • 그 판정을 ADX가 정합니다. 그런데 ADX는 이 앱에서 가장 늦게 여무는 값입니다 — 다른 지표는 평활을 한 번 하는데 ADX만 두 번 합니다(DI를 14로 고르고, 거기서 나온 값을 다시 14로 고릅니다). 그래서 자료가 짧으면 ADX는 한동안 시작점에 끌려다닙니다. 재 봤습니다. 무작위로 만든 300개 계열에서, 900봉으로 낸 값을 정답으로 두고 꼬리만 잘라 견줬습니다. | 캔들 | ADX 오차(중앙) | 90퍼센타일 | 최대 | 추세↔횡보가 반대로 | |---|---|---|---|---| | 47 | 2.62 | 10.10 | 18.67 | 14/300 | | 56 | 0.98 | 3.04 | 9.51 | 6/300 | | 70 | 0.47 | 1.13 | 2.21 | 2/300 | | 84 | 0.33 | 0.79 | 1.29 | 0/300 | | 120 | 0.03 | 0.12 | 0.27 | 0/300 | 같은 자리에서 RSI 오차는 3.31 → 1.72 → 0.74 → 0.33입니다. ADX만 자릿수가 다릅니다. 47봉은 국면이 처음 나오는 지점입니다. 거기서 스무 코인 중 하나꼴로 추세와 횡보가 반대로 나왔습니다. 값을 감추는 대신 문턱을 벌렸습니다. 안 여물었다고 국면을 통째로 숨기면, ADX 45처럼 문턱에서 멀어 흔들려도 결론이 안 바뀌는 자리까지 잃습니다. 흔들림이 문제가 되는 것은 문턱 가까이 있을 때뿐입니다. 그래서 아직 남아 있는 시작점의 영향만큼 경계(25·20)를 벌리고, 그 안에 들어오면 「애매하다」고 말합니다 — 이 앱이 24.9와 25.1을 가르지 않기로 한 것과 같은 이유이고, 이번에는 그 애매한 폭을 자료가 정합니다.
  • 벌리는 폭은 Wilder 자신의 감쇠를 그대로 씁니다. 150봉을 받는 평상시에는 정확히 0이라 아무것도 달라지지 않습니다 — 자료가 얇을 때만 넓어집니다. 노출되는 곳은 신규 상장 코인과 주봉입니다(상장 2.9년 미만이면 주봉은 전부 이 구간입니다).
  • 검사가 결함이 실재했다는 것부터 확인합니다. 벌리지 않으면 실제로 뒤집히는지 먼저 재고, 그 다음 벌린 폭이 뒤집힘을 없애는지 봅니다 — 「원래 안 뒤집히는 것」을 지키는 헛수고가 되지 않게 하려는 것입니다.
  • 여물고 나면 경계는 문서에 적힌 그대로입니다. 아주 작은 폭이라도 남겨 두면 「25 이상 추세」가 영원히 어긋나므로, 화면이 못 보여 줄 만큼 작아지면 0으로 떨어뜨립니다.
  • 내부 검증 1443건 · 화면 기준선 230장. versionCode 366.
v3.5.332026-07-31
이동평균과 거래량의 설명이 어떤 화면에도 닿지 않고 있었습니다
  • 지난 판에서 이동평균 근거와 거래량 근거를 각각 고쳤습니다. 고친 것은 맞았지만 둘 다 사용자에게 닿지 않는 코드였습니다. 화면은 그대로였습니다.
  • 지표 상세를 여는 길이 둘입니다. 지표 그래프(RSI·스토캐스틱·MACD·스퀴즈·ADX·OBV)를 누르는 길과, 그 아래 작은 칩 줄을 누르는 길입니다. 이동평균과 거래량은 가격 차트 위에 겹쳐 그려져 누를 자리가 없어서 칩 줄로만 열립니다.
  • 그런데 근거를 고르는 코드가 그래프 쪽에만 있었습니다. 칩 줄은 근거를 넘기지 않은 채 상세를 열었고, 그래서 이동평균·거래량 상세에는 일반적인 학습 글만 떴습니다 — 계산은 다 되고 문구도 다섯 언어에 다 준비돼 있었는데도요. 이제 이동평균을 열면 「지금 값이 20봉 평균보다 3.2% 위이고, 세 평균도 짧은 것부터 차례로 서 있습니다(정배열)」가 뜹니다. 거래량을 열면 「마지막으로 끝난 봉의 거래량이 그 앞 96봉 평균의 2.4배입니다」가 뜹니다. 일반론만 읽고 나오던 화면이 지금 이 코인의 이야기를 하게 됐습니다.
  • 근거를 고르는 자리를 한 곳으로 모았습니다. 두 길이 각자 고르는 한 이 일은 또 일어납니다. 그리고 「낼 수 있는 근거가 전부 열 수 있는 화면에 붙어 있는가」를 검사가 직접 확인합니다 — 열리지 않는 지표에 근거를 붙이면 그 자리에서 걸립니다.
  • 제목도 고쳤습니다. 이 두 화면은 머리글에 숫자가 없는데 「이 숫자의 근거」라고 적혀 있었습니다 — 없는 것을 가리키는 제목이었습니다. 값이 없는 화면에서는 「지금 이 코인은」으로 부릅니다.
  • 두 화면의 그림도 처음 세웠습니다(거래량은 영어 큰 글씨로 — 근거 문장이 가장 긴 쪽입니다).
  • 내부 검증 1437건 · 화면 기준선 230장. versionCode 365.
v3.5.322026-07-31
「근거」가 판정이 보지도 않은 것을 세던 자리 둘을 더 찾았습니다
  • 지난 판에서 RSI의 근거 줄이 화면의 값을 만들지 못하는 계산을 쓰고 있었습니다. 원인은 「계산을 손으로 다시 적은 것」이었습니다. 같은 자리가 더 있는지 나머지 근거를 전부 원본과 대조했고, 둘 더 나왔습니다. 하나 — 이동평균 근거가 판정과 무관한 수를 말했습니다. 이동평균 판정은 5·10·20봉 평균이 선 차례로 정합니다(정배열·역배열·혼조). 그런데 근거 줄은 차례를 아예 말하지 않고 「지금 값이 20봉 평균보다 3.2% 위」만 말했습니다. 맞는 말이지만 그 수로는 정배열인지 혼조인지 알 수 없습니다. 특히 차례가 어긋난 혼조일 때 판정은 「중립」인데 근거만 강세처럼 읽혔습니다. 이제 판정이 본 그 차례를 그대로 말합니다. 차례가 뒤엉켰을 때는 위·아래를 말하지 않습니다 — 없는 방향을 만들어 내지 않기 위해서입니다. 둘 — 같은 거래량을 두 곳이 다른 기준선으로 쟀습니다. 흐름 문단의 「평소의 2.4배」와 근거 줄의 「최근 N봉 평균의 몇 배」는 같은 봉의 같은 이야기인데, 두 곳이 쓸 수 있는 봉 수를 하나 다르게 세고 있었습니다. 그 한 칸 차이로 하루치 기준선이 열리는 시점이 갈렸습니다 — 15분봉 98개일 때 한쪽은 20봉, 다른 쪽은 96봉을 기준으로 삼았습니다. 하루치냐 아니냐는 새벽·저녁 판정을 통째로 바꾸는 차이입니다 (이 앱이 「시계만 보고 나오는 판정」을 없애려고 만든 장치입니다). 이제 근거가 흐름과 같은 함수를 부르므로 갈릴 수 없고, 확인도 한 길이가 아니라 21~120봉 모든 길이에서 둘이 같은 말을 하는지 봅니다.
  • 거래량 근거 문구도 고쳤습니다. 「이번 봉의 거래량」이라고 적혀 있었지만 실제로 재는 것은 마지막으로 끝난 봉입니다. 진행 중인 봉은 세지 않는데 문구만 그렇게 읽혔습니다.
  • 검사 하나가 코드를 한 글자도 바꾸지 않았는데 깨졌습니다. 지표 목록을 소스에서 셀 때 「한 줄에 붙어 있는 모양」만 찾고 있어서, 줄이 길어져 인자가 다음 줄로 내려간 순간 그 지표가 목록에서 통째로 사라졌습니다. 검사는 생김새가 아니라 규칙을 봐야 합니다. 이 앱이 되풀이해 겪은 모양이라 그 사실도 검사 옆에 적어 두었습니다.
  • 내부 검증 1434건 · 화면 기준선 228장. versionCode 364.
v3.5.312026-07-31
「왜 84.3인가」를 설명하는 줄이 84.3을 못 만드는 계산을 쓰고 있었습니다
  • 지표를 누르면 뜨는 상세 화면에는 「이 숫자의 근거」라는 줄이 있습니다. 일반론(「RSI란 무엇인가」)과 결론(「강세 구간입니다」) 사이를 메우려고 만든 줄이고, 계산이 실제로 견준 두 값을 그대로 꺼내 놓는 자리입니다. 소스 주석에도 「과정을 꺼내 놓는 것이라 틀릴 수가 없다」고 적어 두었습니다.
  • 그 줄을 상세 화면 전체와 이어 붙여 읽어 보니, 위에 적힌 값과 아래 근거가 서로 다른 계산이었습니다. RSI는 오른 폭의 합을 「14」로 나눕니다. 근거는 「오른 날의 수」로 나누고 있었습니다. 이름이 비슷해 같아 보이지만 전혀 다른 수이고, 자주 반대를 가리켰습니다. 12봉이 +1%, 2봉이 −2%인 구간이라면 —
  • 화면 맨 위의 RSI: 69.3 (강세)
  • 바로 아래 근거: 「오른 쪽이 0.5배」 (내린 쪽이 두 배라는 뜻) 오른 날은 잦고 작았고 내린 날은 드물고 컸기 때문입니다. 결론과 근거가 정반대인 화면이었고, 근거를 믿고 읽은 사람일수록 더 헷갈렸을 겁니다. 「오른 쪽이 0.5배 큽니다」라는 말도 안 되는 문장이 나오고 있었습니다. 문장을 하나만 두고 배수를 그대로 끼워 넣었기 때문입니다. RSI가 50 아래인 동안에는 내내 그랬습니다. 이제 어느 쪽이 큰지에 따라 문장이 갈리고, 말하는 배수는 항상 1 이상입니다. 두 쪽이 거의 같을 때는 「거의 같습니다」라고 말합니다.
  • 근거는 이제 지표가 쓴 바로 그 두 값을 받아 씁니다. 손으로 다시 세는 자리를 없앴으니 둘이 어긋날 수 없습니다. 값은 코인마다 자릿수가 다르지 않게 %로 바꿔 적는데, 둘 다 같은 수로 나누므로 비율은 그대로입니다 — 화면의 RSI를 근거에서 되짚어 확인하실 수 있습니다.
  • 「오르기만 했습니다」 문구도 고쳤습니다. 「최근 14봉이」라고 적혀 있었지만 실제로는 자료 전체를 본 결과였습니다.
  • 이 결함을 시험이 못 잡은 이유도 함께 고쳤습니다. 검사 표본이 한 봉 걸러 한 봉 (오른 날 7 · 내린 날 7)이었는데, 두 개수가 같으면 잘못된 계산과 옳은 계산이 정확히 같은 값이 됩니다. 결함이 안 보이는 단 하나의 모양을 고른 셈이었습니다. 이제 잦고 작은 상승 대 드물고 큰 하락처럼 개수가 다른 모양들로 확인하고, 근거의 배수로 화면의 RSI를 되짚어 같은 숫자가 나오는지까지 봅니다.
  • 상세 화면 기준선에 근거 줄이 한 번도 그려진 적이 없었습니다 — 어느 그림도 그 값을 넘겨 주지 않아서, 기능은 있는데 그림에는 없었습니다. 기본·큰 글씨·영어 큰 글씨로 세웠습니다.
  • 내부 검증 1431건 · 화면 기준선 228장. versionCode 363.
v3.5.302026-07-31
같은 두 숫자가 40dp 간격으로 두 번 적혀 있었습니다
  • 지난 판에서 판독 절을 처음부터 끝까지 그려 봤습니다. 이번엔 그걸 큰 글씨 × 좁은 폭 × 영어로도 세웠습니다 — 이 앱이 되풀이해 만난 결함의 최대 산지입니다.
  • 그러다 먼저 알게 된 것: 검증 그림은 높이를 2000dp에서 자릅니다. 높이를 6200으로 올려도 잘린 자리는 그대로였습니다 — 즉 「절 전체」라고 이름 붙인 그림이 실은 앞부분만 보여 주고 있었습니다. 그래서 앞·뒤 두 장으로 나눴습니다.
  • 그리고 두 가지가 나왔습니다. 하나 — 같은 수가 두 번. 편향 막대 아래에 「강세 3 · 약세 3」이 있고, 바로 아래 판독 카드가 「강세 지표 3개 · 약세 지표 3개」를 다시 말했습니다. 같은 두 숫자가 40dp 간격으로 두 번입니다. 게다가 위쪽 것은 명사가 없어 무엇을 센 수인지 혼자서는 알 수 없었습니다. 큰 글씨에서는 그 한 줄이 두 줄을 차지했습니다. 둘 — 영어에서 숫자가 제 낱말과 떨어졌습니다. 「%d bullish · %d bearish indicators」가 좁은 폭에서 「3 bullish · 3」 / 「bearish indicators」로 접혔습니다. 숫자 3이 홀로 줄 끝에 남아 무엇의 3인지 알 수 없습니다. 한국어로는 각 조각이 온전해서 절대 안 보이는 결함입니다.
  • 절 전체 그림을 앞·뒤 × 기본·큰 글씨·영어 여섯 장으로 세웠습니다. 여섯 장이 같은 본문 하나를 그리므로, 한쪽만 고쳐 갈라질 일이 없습니다.
  • 내부 검증 1426건 · 화면 기준선 227장. versionCode 362.
v3.5.292026-07-31
판독 절을 처음부터 끝까지 읽어 봤더니 두 가지가 나왔습니다
  • 스물여덟 판 동안 이 절에 문장을 계속 더했습니다 — 흐름 문단, 구조 무효화, 신뢰도 단서 넷, 구역 폭, 역할 전환, 접촉 시점, 거래 밀집, 벽에서의 되밀림.
  • 하나하나는 검증 그림이 있는데, 전체를 끝까지 그린 그림이 한 장도 없었습니다. 덩어리마다 따로 보면 「한 줄 더」는 늘 싸 보입니다. 쌓인 뒤에 어떻게 읽히는지는 이어 붙여야만 보입니다.
  • 만들어서 읽어 보니 두 가지가 바로 드러났습니다. 하나 — 같은 문장이 연달아 두 번 떴습니다. 방향이 뚜렷하지 않은 코인에서, 굵은 사실 줄과 그 아래 해설 줄의 첫 마디가 똑같은 문장이었습니다. 각 덩어리만 보면 둘 다 옳습니다. 둘 — 자금흐름지수가 「스퀴즈 모멘텀」이라는 이름으로 떴습니다. 지표 제목을 고르는 자리의 마지막 가지가 `else → 스퀴즈 모멘텀`이었습니다. 나중에 더한 자금흐름지수에 이름을 안 줘서, 다른 지표의 이름을 빌려 쓴 채 화면에 나왔습니다 — 한 목록에 「스퀴즈 모멘텀」이 두 줄 있었고 그중 하나는 전혀 다른 지표였습니다.
  • 앱은 이 함정에 이미 이름을 붙여 두고 있었습니다 — 캔들 패턴 코드에 「…마지막 가지가 `else`가 된다 … 컴파일러는 아무 말도 안 한다(이 저장소가 지표 판정에서 이미 한 번 당한 모양이다)」. 그 「이미 당한 자리」가 바로 여기였고, 고쳐지지 않은 채였습니다.
  • 이제 자금흐름지수에 제 이름을 주고, 모르는 지표에는 이름을 지어 주지 않습니다 — 다른 지표의 이름을 빌려 쓰면 사용자는 그것이 그 지표인 줄 압니다.
  • 「판정이 내는 모든 지표에 제 이름이 있는가」를 검사가 셉니다. 같은 이유로 문구는 이미 그렇게 지켜지고 있었는데 이름만 빠져 있었습니다.
  • 내부 검증 1426건 · 화면 기준선 222장. versionCode 361.
v3.5.282026-07-31
되밀림과 그 거래량은 같은 봉의 이야기인데 따로 떨어져 있었습니다
  • 지난 판에서 「직전 봉이 저항에 닿았다가 되밀렸습니다」를 넣었습니다. 그리고 흐름 문단은 「거래량은 평소의 2.4배」를 말합니다.
  • 둘은 같은 봉의 이야기입니다. 그런데 화면의 서로 다른 두 문단에 있어서, 그 사실을 사용자가 스스로 이어야 했습니다.
  • 되밀림은 거래량이 실렸을 때 훨씬 무겁습니다. 얇은 거래로 물러난 것은 「살 사람이 없어 못 올라간 것」에 가깝고, 많은 거래로 물러난 것은 누군가 그 값에서 실제로 팔았다는 뜻입니다.
  • 이제 그 자리에서 이어 줍니다 — 「그것도 거래가 몰린 채 일어났습니다 — 누군가 그 값에서 실제로 사고팔았다는 뜻이라, 되밀림에 무게가 실립니다」.
  • 숫자를 다시 적지 않습니다. 흐름 문단이 이미 「평소의 2.4배」를 말하니, 여기서 같은 수를 또 적으면 두 사건으로 읽힙니다. 여기서 할 일은 둘이 같은 봉이라는 것을 잇는 것뿐입니다.
  • 모르는 것을 「몰렸다」로 꾸미지 않습니다. 자료가 얇아 평소 거래량을 못 구하면 아무 말도 하지 않습니다.
  • 이 조합을 그리는 검증 그림이 없었습니다 — 기준선을 다시 만들어도 한 장도 안 바뀌었고, 그게 신호였습니다. 그 그림을 만들었습니다.
  • 내부 검증 1420건 · 화면 기준선 221장. versionCode 360.
v3.5.272026-07-31
벽이 거기 있다는 것과, 그 벽이 방금 버텼다는 것은 다릅니다
  • 이 앱은 지지·저항을 꽤 자세히 말합니다 — 어디에 있고, 몇 번 닿았고, 언제 닿았고, 구역이 얼마나 넓고, 거래도 몰렸는지까지.
  • 전부 그 자리에 대한 사실입니다. 그런데 차트를 보며 실제로 기다리는 것은 하나 더 있습니다 — 방금 거기서 무슨 일이 있었나.
  • 값이 저항에 닿았다가 되밀려 그 아래에서 마감했으면, 그 벽은 방금 한 번 더 버틴 것입니다. 실무에서 가장 신뢰하는 관찰 중 하나입니다.
  • 이제 지지·저항 아래에 적습니다 — 「직전 봉이 ₩95,900,000까지 밀렸다가 그 위에서 마감했습니다 — 그 자리가 한 번 더 받쳤습니다」.
  • 닿지 않았으면 아무 말도 하지 않습니다. 없는 사건을 만들지 않습니다.
  • 「뚫고 마감했다」는 여기서 말하지 않습니다. 뚫린 자리는 곧바로 반대편으로 분류가 바뀌어(v3.5.8의 역할 전환) 이미 「뚫린 지지 자리」로 표시됩니다 — 같은 사실을 두 곳에서 다른 말로 하면 별개의 사건 두 개로 읽힙니다.
  • 진행 중인 봉은 보지 않습니다. 「닿았다가 되밀렸다」는 종가가 확정돼야 성립합니다 — 봉이 자라는 동안에는 닿았다 물러났다 다시 뚫기를 되풀이할 수 있고, 그때마다 이 말이 나타났다 사라집니다.
  • 내부 검증 1416건 · 화면 기준선 220장. versionCode 359.
v3.5.262026-07-31
「거래량 폭발」만으로는 어느 쪽이 이겼는지 모릅니다
  • 앱은 「거래량은 평소의 2.4배 — 움직임에 사람이 따라붙었습니다」까지 말했습니다. 맞는 말이지만 절반입니다.
  • 같은 「2.4배」라도 —
  • 그 봉이 위쪽에 마감했으면 쏟아진 물량을 사는 쪽이 받아 냈다는 뜻입니다.
  • 그 봉이 아래쪽에 마감했으면 그 거래량은 파는 쪽이 밀어낸 것입니다.
  • 실무에서 가장 자주 데는 자리가 여기입니다. 급등 중에 「거래량 폭발」을 보고 따라 들어갔는데 그 봉이 긴 윗꼬리를 달고 아래쪽에 마감했다면, 그 거래량은 사 준 사람이 아니라 팔아 치운 사람의 것입니다. 2017년 이래 고점마다 되풀이되는 모양이고, 숫자만 보면 둘이 똑같이 「2.4배」로 보입니다.
  • 이제 흐름 문단이 한 마디를 더 합니다 — 「그런데 그 봉은 아래쪽에 마감했습니다 — 그 거래량은 파는 쪽이 밀어낸 것입니다」.
  • 몰렸을 때만 말합니다. 평소 거래량에서 종가가 위쪽이든 아래쪽이든 그건 잡음이라, 그때 말하면 없는 뜻을 만듭니다. 가운데에 마감했을 때도 말하지 않습니다 — 어느 쪽도 이기지 못한 것이니까요.
  • 새 블록을 만들지 않았습니다. 이미 있는 봉에서 한 가지를 더 읽는 것이라, 화면에 덩어리가 늘지 않고 문장에 한 마디가 붙습니다.
  • 진행 중인 봉은 보지 않습니다 — 그 「종가」는 그냥 지금 값이라 봉이 끝날 때까지 위치가 계속 바뀝니다.
  • 함께 살펴본 두 곳(볼린저 폭 변화 1.3/0.75와 지표 움직임의 1.3/0.75)은 서로 다른 것을 재고 있어 묶지 않았습니다. 숫자가 같다고 같은 판정은 아닙니다.
  • 내부 검증 1406건 · 화면 기준선 220장. versionCode 358.
v3.5.252026-07-31
「과매수」가 네 곳에서 따로 정의되고 있었습니다
  • 지난 판에서 「경계를 피해 가는 검사」를 찾다가, 앱의 문턱 38개를 하나씩 흔들어 봤습니다. 전부 잡혔습니다 — 이름 붙은 상수는 검사가 잘 지키고 있었습니다.
  • 그런데 그게 답을 줬습니다. 잡힌 건 전부 이름 붙은 상수였고, 지난 판에 샌 것은 코드 안에 묻힌 날숫자였습니다. 그 눈으로 남은 날숫자를 찾았습니다.
  • RSI 70/30이 네 곳에 흩어져 있었습니다 — 추세 보정, 표를 던지는 자리, 지표 상세의 「며칠째 과매수」, 다이버전스의 「구간에서 생겼나」. 스토캐스틱·자금흐름의 80/20은 세 곳, ADX의 25/20은 두 곳이었습니다.
  • 그중 다이버전스 쪽 주석은 이렇게 적혀 있었습니다 — 「값을 여기 한 곳에만 둔다 — 화면과 도메인에 따로 적으면 「과매수」의 뜻이 두 곳에서 갈린다」. 그 주석이 있는 파일이 중복 중 하나였습니다.
  • 갈리면 어떻게 되는가: 추세 보정 쪽 눈금만 71로 올리면, RSI 70.5인 강한 상승장에서 「추세 안의 정상 범위」는 거짓이 되어 면제가 안 걸리는데 표를 던지는 자리는 여전히 과매수라 약세 표를 던집니다. v3.5.2에서 없앤 「RSI 70이니 팔아야지」가 그 틈으로 돌아옵니다.
  • 이제 눈금이 한 곳에서 옵니다.
  • 그리고 제 확인이 반쪽이었습니다. 38개를 흔들 때 한 방향으로만 흔들었습니다. RSI 과매수를 70 → 71로 올리면 잡히는데, 70 → 68로 내리면 아무도 안 멈췄습니다 — 검사들이 78·70처럼 「충분히 큰」 값만 짚고 있어서 눈금이 내려가도 여전히 과매수였기 때문입니다. 이제 문턱을 위아래 양쪽에서 못 박습니다.
  • 내부 검증 1395건 · 화면 기준선 219장. versionCode 357.
v3.5.242026-07-31
화면은 「탐욕」이라 부르는데 시장 맥박은 「중립」으로 세고 있었습니다
  • 「시장 맥박」은 공포지수·시총·VIX·BTC 비중을 모아 지금 분위기를 요약합니다. 각 신호가 위험선호(+1)·중립(0)·위험회피(−1) 중 무엇인지 세어 합칩니다.
  • 그런데 그 판정이 공포지수와 VIX에 자기 경계를 따로 들고 있었습니다.
  • 공포지수: 맥박은 60/40 · 화면의 이름표는 25/45/55/75
  • VIX: 맥박은 18/26 · 화면의 이름표는 12/20/30/40
  • 그래서 한 화면이 같은 숫자를 두 가지로 읽었습니다.
  • 공포지수 58 → 칩은 「탐욕」, 맥박은 「중립
  • VIX 27 → 칩은 「높음(긴장)」(5단계 중 가운데), 맥박은 「위험회피
  • 이제 맥박이 화면이 부르는 이름 그대로 셉니다. 「탐욕」이면 위험선호, 「매우 높음」 부터 위험회피입니다. 가운데 단계를 한쪽 끝으로 밀지 않습니다.
  • 이 앱은 그 규칙을 이미 적어 두고 있었습니다 — 「★ 임계값 단일 출처. 예전엔 domain·UI 라벨·UI 색이 각자 복사해 갖고 있어 한쪽만 바뀌면 조용히 어긋났다」. 적어 두고도 한 곳이 자기 숫자를 들고 있었습니다.
  • 이제 맥박은 숫자가 아니라 단계로 말합니다. 이름표의 눈금이 바뀌면 둘이 함께 움직입니다.
  • 어긋나던 구간에 검사가 하나도 없었습니다(공포지수 55~59, VIX 26~30). 그래서 오래 남아 있었습니다. 이제 0~100 전 구간에서 이름과 표가 같은지 확인합니다.
  • 내부 검증 1387건 · 화면 기준선 219장. versionCode 356.
v3.5.232026-07-31
안 움직인 봉의 「+0.00%」가 상승 색으로 떴습니다
  • 차트를 길게 눌러 봉을 짚으면 그 봉의 시가·고가·저가·종가와 등락률이 뜹니다.
  • 그런데 그 등락률의 색을 두 갈래로만 고르고 있었습니다 — 「0 이상이면 상승색, 아니면 하락색」. 그러면 시가와 종가가 같은 봉(도지)에서 「+0.00%」가 상승 색으로 뜹니다. 안 움직였는데 올랐다고 말하는 셈입니다.
  • 이 앱은 그 결함을 이미 알고 있었습니다. 색 매핑 코드에 이렇게 적혀 있습니다 — 「화면들이 `if (v >= 0) 상승 else 하락`으로 두 갈래로만 색을 골랐고, 0은 갈 곳이 없어 상승 쪽에 얹혔다 — 보유 코인이 하나도 없는 포트폴리오가 `손익 +0.00%`를 빨강으로 띄웠다.」
  • 그 규칙을 「여기 한 곳뿐」이라고 적어 두고도, 차트 두 곳이 각자 두 갈래로 고르고 있었습니다. 같은 결함이 다른 화면에서 되풀이된 것입니다.
  • 이제 두 차트 모두 공용 판정을 씁니다. 사실상 안 움직인 값(±0.05% 이내)도 보합으로 다룹니다 — 그 경계도 앱 전체에 한 곳뿐입니다.
  • 몸통 색은 그대로 둡니다. 캔들의 몸통은 「종가가 시가보다 높은가」를 그리는 관례적 표시이지 화면에 뜨는 수치가 아닙니다.
  • 보합 색에 기본값을 두지 않았습니다. 빠뜨리면 화면을 봐야만 알 수 있는 결함이 되니, 컴파일 단계에서 막습니다 — 실제로 이 방식이 호출부 열 곳을 바로 잡아 줬습니다.
  • 위젯과 알림도 같은 눈으로 훑었는데 거기는 깨끗했습니다 — 위젯은 옛 값을 끌어다 쓰면 ⚠를 붙이고 캐시 복원 경로에서도 그 표시를 강제하며, 알림은 정말로 게시 지점이 한 곳뿐이었습니다.
  • 내부 검증 1382건 · 화면 기준선 219장. versionCode 355.
v3.5.222026-07-31
알림과 화면이 같은 일봉을 두 번 받아오고 있었습니다
  • 알림 워커는 일봉 120개, 상세 화면은 150개를 요청했습니다.
  • 캔들 캐시의 키는 「심볼·기간·개수」로 만들어집니다. 개수가 하나만 달라도 키가 갈리고, 그러면 같은 코인의 같은 일봉을 두 번 받아옵니다. 공개 무료 API라 요청 제한에 그대로 닿고, 알림과 화면이 서로 다른 자료로 판정하게 됩니다.
  • 그리고 워커 주석은 정확히 그 위험을 적어 두고 있었습니다 — 「상세 화면과 같은 모양의 지정이라 캐시도 함께 쓴다. 값을 여기서 따로 정하면 같은 코인을 두 번 받아온다.」 적어 두고도 다른 수를 쓰고 있었습니다.
  • 이제 일봉 지정이 한 곳뿐입니다. 상수를 공유하면 「같은 수」지만, 지정을 공유하면 갈릴 수가 없습니다.
  • 검증된 최소 길이(120봉)는 하한으로 남겼습니다. 「이보다 짧으면 판정이 수렴하지 않는다」는 뜻이고, 실제 요청이 그 하한 위인지 검사가 잇습니다 — 안 이으면 그 상수는 아무도 안 보는 숫자가 됩니다.
  • 이 자리를 지키던 검사도 함께 고쳤습니다. 그 검사는 이름을 찾고 있었는데, 규칙을 더 강하게 지키자 오히려 실패했습니다. 자기 주석에 「검사는 표현이 아니라 규칙을 봐야 한다」고 적어 두고 같은 실수를 되풀이한 셈이라, 이번엔 규칙 그대로 봅니다.
  • 볼린저 밴드도 함께 확인했는데 거기는 깨끗했습니다 — 차트·스퀴즈·「띠 폭」 문장 셋이 같은 함수와 같은 표준편차 정의를 쓰고 있었습니다.
  • 내부 검증 1378건 · 화면 기준선 219장. versionCode 354.
v3.5.212026-07-31
한 화면이 「되돌림」을 두 가지로 말하고 있었습니다
  • 「흐름 읽기」 문단은 이렇게 말합니다 — 「₩101,500,000까지 갔다가 38.2% 되돌렸습니다」. 지금 구조의 다리를 잰 값입니다.
  • 그런데 바로 아래 피보나치 블록은 받은 구간 전체의 고점·저점으로 선을 그었습니다. 그래서 「61.8% 되돌림 근처」라고 말합니다.
  • 같은 「되돌림」이라는 말이 서로 다른 스윙을 가리키고 있었고, 두 숫자가 왜 다른지 알 방법이 없었습니다.
  • 전체 구간 쪽이 더 약한 도구이기도 합니다. 150봉이면 다섯 달 전 고점과 이번 달 저점이 짝이 될 수 있는데, 그 스윙의 61.8%는 아무도 보지 않는 값입니다. 실무에서 피보나치는 가장 최근의 뚜렷한 다리에 겁니다.
  • 이제 피보나치가 흐름 문단과 같은 다리를 잽니다. 두 숫자가 같은 것을 재니 서로를 설명합니다.
  • 모르면 손대지 않습니다. 구조를 못 읽으면(자료가 짧거나 방향이 없으면) 예전처럼 전체 구간으로 물러섭니다 — 없는 다리를 지어내는 것보다 낫습니다.
  • 이번에도 검증 그림이 한 장도 없었습니다. 표본 자료는 확정된 꼭짓점이 모자라 구조가 안 읽히고, 그러면 예전 동작으로 물러섭니다 — 기준선을 다시 만들어도 한 장도 안 바뀌었고, 그게 「만들어 놓고 아무도 못 보는」 신호였습니다. 그 그림을 만들었습니다.
  • 내부 검증 1377건 · 화면 기준선 219장. versionCode 353.
v3.5.202026-07-31
일봉을 못 받으면 거부권이 4시간봉으로 넘어가고 있었습니다
  • 몇 판 전에 「가장 긴 기간에 거부권」을 넣었습니다 — 1시간과 4시간은 서로 독립이 아니라(4시간봉 하나가 1시간봉 넷을 품습니다) 둘만 같아서는 「여러 기간이 같은 쪽」이 아니라는 규칙입니다.
  • 그런데 그 목록을 만들 때 값이 없는 기간을 지우고 있었습니다. 그러면 일봉을 못 받았을 때 목록이 `[1시간, 4시간]`이 되고, 4시간봉이 「가장 긴 기간」이 되어 거부권을 쥡니다 — 막으려던 구멍이 그대로 다시 열립니다.
  • 일봉을 모르는 것은 「4시간봉이 가장 길다」는 뜻이 아닙니다. 이제 자리를 비워서 남깁니다. 그러면 「아직 확인해 주지 않은 것」이 되어 정렬로 세지 않고, 그 이유도 화면이 밝힙니다.
  • 얄궂게도 바로 아래 「기간 정렬」 줄은 진작 자리를 남기고 있었습니다. 같은 자료를 한 화면의 두 곳에서 다르게 다루고 있었던 셈입니다.
  • 얇은 기간에도 거부권을 주고 있었습니다. 종합 판독은 표본이 얇으면 신뢰도에 천장을 씌우는데, 기간 판정은 30봉만 넘으면 그대로 통과였습니다. 하필 갓 상장한 코인에서 가장 얇은 것이 일봉입니다(1시간봉은 넉넉한데 일봉은 서른 몇 개) — 가장 못 믿을 자료가 가장 센 표를 쥐고 있었습니다. 이제 같은 잣대를 씁니다.
  • 만드는 쪽도 둘 고쳤습니다. 「무거운 계산이 기억 안에 있는가」를 보는 검사가 주석을 길게 적었다는 이유만으로 잘못 잡고 있었고(실행되는 줄만 세도록 고쳤습니다), 정작 지지·저항 계산은 감시 목록에 빠져 있었습니다.
  • 내부 검증 1372건 · 화면 기준선 218장. versionCode 352.
v3.5.192026-07-31
분·시간봉에서 「거래량」 판정이 절반은 시계를 읽고 있었습니다
  • 이 시장의 거래량에는 시간대 리듬이 있습니다. 아시아·유럽·미국 장이 열고 닫을 때마다 오르내립니다 — 가격과 무관하게 그렇습니다.
  • 그런데 앱의 거래량 기준선은 기간과 상관없이 20봉이었습니다.
  • 15분봉: 20봉 = 5시간
  • 30분봉: 20봉 = 10시간
  • 1시간봉: 20봉 = 20시간
  • 셋 다 하루 안입니다. 그래서 새벽 한 시간을 저녁 장이 섞인 창과 견주면 「평소의 0.4배 — 움직임에 사람이 따라붙지 않았습니다」가 나옵니다. 가격이 무엇을 하든 상관없이, 시계만 보고 나오는 판정입니다. 반대로 저녁에는 늘 「몰렸습니다」가 됩니다.
  • 검사로 재 보니 같은 자료에서 새벽 1.94배 · 저녁 0.47배 — 네 배 차이가 순전히 시각 때문에 났습니다.
  • 이제 기준선이 하루를 통째로 담습니다. 창이 하루의 정수 배를 덮으면 모든 시간대가 똑같이 한 번씩 들어가 리듬이 상쇄됩니다(15분→96봉, 30분→48봉, 1시간→24봉, 4시간→24봉, 일봉→그대로 20봉).
  • 봉 간격은 자료에서 읽습니다 — 시각의 중앙값 간격을 씁니다. 거래소가 한 봉을 빠뜨려도 버티고, 시각을 알 수 없으면 예전 그대로입니다.
  • 일봉·주봉은 손대지 않았습니다. 한 봉이 하루를 통째로 담으니 하루 안의 리듬이 애초에 없습니다.
  • 「흐름 읽기」의 거래량 문장, 「거래량 확증」 판정, 지표 상세의 「평소의 몇 배」 — 셋 다 같은 문제를 갖고 있어 함께 고쳤습니다. 지표 상세는 이제 실제로 견준 봉 수를 그대로 적습니다.
  • 내부 검증 1370건 · 화면 기준선 218장. versionCode 351.
v3.5.182026-07-31
알림이 옛 자료로 울리고, 진짜 신호는 삼켜지고 있었습니다
  • 지난 판에서 화면이 옛 자료로 「신뢰도 높음」을 말하지 않도록 고쳤습니다. 같은 눈으로 알림을 봤더니, 거기가 더 위험했습니다.
  • 알림도 같은 캐시를 씁니다. 그리고 캐시는 네트워크가 끊기면 만료된 값이라도 돌려줍니다.
  • 화면에서는 그게 「너무 확신에 찬 문장」으로 끝납니다. 알림에서는 두 가지가 겹칩니다. 1. 옛 자료로 「강한 매수 전이」 알림이 울립니다. 2. 그리고 그 상태를 「알렸다」고 저장합니다. 그러면 잠시 뒤 진짜 전이가 왔을 때 「이미 알린 값」이 되어 영영 울리지 않습니다.
  • 두 번째가 특히 나쁩니다 — 알림이 안 온 이유를 알 방법이 없습니다. 이 파일은 이미 같은 걱정을 적어 두고 있었습니다: 「규칙은 켜져 있는데 알림이 조용히 영영 울리지 않는다」.
  • 이제 오래된 자료를 「자료 없음」과 똑같이 다룹니다. 앱에 이미 있던 규칙 — 「평가 불가 → 이전 상태 보존」 — 에 그대로 얹었습니다. 그러면 다음 주기에 자료가 돌아왔을 때 진짜 전이가 제대로 울립니다.
  • 화면과 같은 문턱을 씁니다. 알림이 자기 기준을 따로 가지면 「화면은 옛 자료라는데 알림은 울리는」 조합이 생깁니다.
  • 캐시 유효기간(45초) 안에 받아오기가 성공하면 걸리지 않습니다 — 이 문턱에 닿는 것은 네트워크가 끊긴 경우뿐입니다.
  • 내부 검증 1363건 · 화면 기준선 218장. versionCode 350.
v3.5.172026-07-31
옛 자료로 「신뢰도 높음」을 말하고 있었습니다
  • 네트워크가 끊기면 이 앱은 만료된 캐시 값이라도 보여 줍니다. 빈 화면보다 낫다는 판단이고, 그건 맞습니다. 문제는 그 위에 얹히는 말이었습니다.
  • 자료가 10분 전 것이어도 판독은 「강한 강세 · 신뢰도 높음」이라고 똑같이 확신에 차서 말했습니다.
  • 화면은 이 사실을 이미 알고 있었습니다. 자료의 나이를 받아 「N분 전 자료입니다」라고 적기까지 했습니다. 그리고 그 자리 코드 주석이 문제를 정확히 적어 두었습니다 — 「그때 기술적 분석은 옛 자료로 확신 있는 문장을 내놓는다. 나이를 알아야 그 사실을 적을 수 있다.」
  • 적기만 하고 세기는 그대로 뒀습니다. 지난 판에 거래량에서 만난 것과 같은 모양입니다 — 주석이 위험을 알아보고, 고침이 절반에서 멈췄습니다.
  • 이제 자료가 오래되면 신뢰도에 천장을 씌웁니다. 3분이 지나면 「높음」을 주지 않고, 10분이 지나면 「낮음」입니다. 이 시장에서 10분은 큰 움직임 하나가 통째로 지나가기 충분한 시간이라, 그 자료로 방향을 말하는 건 어제 신문으로 오늘 날씨를 말하는 것에 가깝습니다.
  • 얇은 자료와 같은 방식입니다. 앞엣것은 「덜 익었다」, 뒤엣것은 「식었다」 — 둘 다 값이 틀렸다는 말이 아니라 그만큼 세게 말할 자리가 아니라는 뜻입니다. 둘은 함께 걸리고, 낮은 쪽이 남습니다.
  • 모르면 깎지 않습니다. 나이를 아직 못 받았으면 예전 그대로입니다.
  • 왜 낮췄는지 판독 곁에 적습니다. 「N분 전 자료입니다」 줄은 절 맨 위에 있는데, 신뢰도가 왜 낮은지는 신뢰도 곁에서 읽혀야 합니다.
  • 경계도 한 곳으로 모았습니다. 「적는 기준」과 「낮추는 기준」이 갈리면 그 줄을 적으면서 「신뢰도 높음」을 함께 띄우는 조합이 생깁니다.
  • 내부 검증 1359건 · 화면 기준선 218장. versionCode 349.
v3.5.162026-07-31
확대하면 이동평균선이 조용히 사라졌습니다
  • 차트를 손가락으로 확대하면 좁은 구간만 보입니다. 그런데 세로 눈금을 캔들만 보고 정하고 있었습니다.
  • 20일선은 지난 20봉의 평균입니다. 급락 직후 열 봉만 확대해 보면 그 봉들은 전부 20일선 아래에 있습니다 — 그러면 20일선은 화면 위로 밀려나 보이지 않습니다. 「이동평균 표시」를 켜 놓았는데 선이 없습니다. VWAP도 같습니다.
  • 얄궂게도 볼린저 밴드는 진작 눈금에 넣고 있었습니다. 그러니까 그 밴드의 한가운데인 20일선만 빠져 있던 셈입니다.
  • 이제 값과 함께 움직이는 선은 눈금에 넣습니다. 다만 지지·저항 같은 가로선은 넣지 않습니다 — 그 값은 「지금 값」 기준이라 옛 구간으로 스크롤하면 한참 떨어져 있고, 눈금에 넣으면 그 구간의 캔들이 실오라기처럼 눌립니다.
  • 왜 여태 안 보였는가: 이 계산이 캔들 차트와 선 차트에 각자 적혀 있었고, 둘 다 같은 것을 빼먹었습니다. 검증 그림은 늘 전체를 보여 주므로(확대는 손가락 으로만 됩니다) 그림으로는 잡히지 않는 자리였습니다.
  • 그래서 눈금 규칙을 한 곳으로 모으고, 확대 상황을 검사로 직접 만들어 걸었습니다. 이제 한쪽만 고쳐 갈라지는 일이 생기면 검사가 멈춥니다.
  • 내부 검증 1353건 · 화면 기준선 217장. versionCode 348.
v3.5.152026-07-31
지표 패널들이 같은 시간축을 쓰고 있지 않았습니다
  • 지표를 세로로 쌓아 보는 이유는 하나입니다 — 「같은 자리에서 무슨 일이 있었나」. RSI가 꺾인 그 지점에서 MACD는 뭘 했는지, ADX는 어땠는지.
  • 그런데 지표마다 앞쪽이 비는 길이가 다릅니다. RSI는 14봉, 스토캐스틱 17봉, 스퀴즈 19봉, ADX는 27봉이 없습니다.
  • 각 패널은 자기 목록을 폭 전체에 펼쳐 그립니다. 그래서 자료가 짧으면 — 갓 상장한 코인이 딱 그렇습니다 — 패널마다 그리는 기간이 달라집니다. 70봉짜리에서 MACD는 64봉, ADX는 43봉을 같은 폭에 그렸습니다.
  • 그러면 가로 위치가 서로 다른 시각을 가리킵니다. MACD 패널의 한가운데와 ADX 패널의 한가운데가 다른 날입니다. 나란히 놓고 비교하는 그 동작이 바로 어긋나 있었습니다.
  • 이제 모두 같은 창으로 맞추고, 모자란 앞쪽은 비워 둡니다. 없는 값을 채우는 게 아니라 없다는 사실을 자리로 남기는 것입니다.
  • 그리면서 세 군데를 함께 고쳤습니다. 선은 진작 빈 자리를 건너뛰었는데 눈금 계산과 막대·점은 아니었습니다 — 스퀴즈는 자료가 없는 자리에도 「수축 꺼짐」 점을 찍고 있었습니다. 자료가 없는 것과 「수축이 아니다」는 다른 말입니다.
  • 이런 오류는 「틀렸다」고 소리치지 않습니다. 그냥 그럴듯하게 보이면서 오독하게 만듭니다 — 앱의 다이버전스 코드가 「가장 찾기 어려운 종류의 오류」라고 적어 둔 바로 그 종류입니다.
  • 자료가 짧은 코인의 지표 화면에 검증 그림이 한 장도 없었습니다. 그래서 이 문제가 오래 눈에 안 띄었습니다. 그 그림을 만들었습니다.
  • 내부 검증 1346건 · 화면 기준선 217장. versionCode 347.
v3.5.142026-07-31
「12봉째 상승 흐름」이 한 봉 안에서 0으로 떨어졌다 돌아왔습니다
  • 「흐름 읽기」 문단의 첫 줄이 「N봉째 상승/하락 흐름」입니다. 아래 문장 전부가 그 판정 위에 얹혀 있습니다.
  • 그런데 그 계산이 아직 안 끝난 봉의 종가를 쓰고 있었습니다. 그 「종가」는 그냥 지금 값이라, 값이 추세선을 살짝 넘는 순간 「뒤집혔다」가 되어 지속 봉 수가 0으로 떨어졌다가, 값이 되돌아오면 다시 12로 돌아옵니다 — 한 봉 안에서 몇 번이고 그럴 수 있습니다.
  • 실무에서 이 지표의 전환은 종가로 확정합니다. 이제 완성된 봉으로만 판정합니다.
  • 이 파일은 「되돌아보며 고쳐 그리지 않는다」를 약속하고 있었습니다 — 마지막 봉에서도 그 약속을 지키게 된 셈입니다.
  • 이번에는 먼저 다른 것을 의심했다가 헛물을 켰습니다. 「0.0을 모름으로 쓰는 자리」를 훑었는데, 의심한 두 곳 모두 바로 다음 줄에서 제대로 걸러 내고 있었습니다. 고칠 것이 없으면 고치지 않는 편이 낫습니다 — 그대로 적어 둡니다.
  • 검사를 세우다 비교 자체가 틀린 것도 하나 배웠습니다. 「봉을 붙이기 전」과 「붙인 뒤」를 견줬는데, 그건 끝난 봉의 개수가 달라 애초에 어긋납니다. 물어야 할 것은 「맨 뒤 봉이 무엇이든 답이 같은가」였습니다.
  • 내부 검증 1342건 · 화면 기준선 216장. versionCode 346.
v3.5.132026-07-31
「맨 뒤 봉은 아직 안 끝났다」에 이름을 붙였더니 세 번째가 나왔습니다
  • 지난 두 판에서 거래량과 봉 모양을 고쳤습니다. 둘 다 뿌리가 같았습니다 — 거래소는 아직 안 끝난 봉을 목록 맨 뒤에 줍니다.
  • 그런데 그 개념이 네 파일에 `dropLast(1)`로만 흩어져 있었습니다. 이름이 없으니 쓰는 사람마다 다르게 기억했고, 그래서 각자 다르게 틀렸습니다.
  • 이번에 이름을 붙이고 한 곳에 모았습니다. 그러자 ATR이 한 파일 안에서 두 가지로 계산되고 있던 게 드러났습니다 — 「평소 하루 폭」은 진행 중인 봉을 넣고, 「이번 봉은 그 몇 배」는 빼고 셌습니다. 화면은 그 둘을 나란히 보여 줍니다. 서로 다른 자로 잰 두 수를 한 줄에 놓고 있었던 셈입니다.
  • ATR이 작게 나오면 「깨지는 선」의 노이즈 판정(v3.5.4)도 함께 어긋납니다 — 평소 흔들림 폭이 좁아져서, 흔들림 안에 있는 자리를 흔들림이 아니라고 말합니다.
  • 그리고 개념이 다시 흩어지지 않게 검사를 세웠더니, 그 검사가 곧바로 세 번째를 찾았습니다. 지표 상세의 「거래량은 평소의 몇 배」가 똑같이 틀려 있었습니다 — 평균은 마지막 봉을 빼고 냈는데 분자는 진행 중인 봉이라, 봉이 바뀔 때마다 「평소의 0.0배」를 근거랍시고 내놓고 있었습니다.
  • 검사가 제 몫을 두 번 했습니다. 「쓰지도 않을 편의 함수」를 미리 만들어 둔 것도 바로 잡아 줘서 지웠습니다.
  • 어디까지 빼고 어디를 남기는지도 못 박았습니다. 구간을 요약하는 값(거래량 합· 고저 폭·봉 모양)은 완성된 봉으로만 세고, 지금 값(현재가·지금까지 움직인 폭)은 그대로 씁니다 — 앞엣것은 한쪽으로 치우치지만 뒤엣것은 아직 확정되지 않았을 뿐입니다.
  • 내부 검증 1341건 · 화면 기준선 216장. versionCode 345.
v3.5.122026-07-31
봉 모양을 아직 닫히지도 않은 봉에서 읽고 있었습니다
  • 지난 판에서 거래량을 고치면서 같은 눈으로 다른 자리도 봤습니다. 「주석이 약속한 동작」과 「코드가 실제로 하는 일」을 맞대어 봤더니, 캔들 모양에서 같은 문제가 나왔습니다.
  • 봉의 모양은 시가·고가·저가·종가의 관계입니다. 그런데 거래소는 아직 안 끝난 봉을 맨 뒤에 주므로, 그 봉의 「종가」는 그냥 지금 값입니다. 몸통과 꼬리의 비율은 봉이 끝날 때까지 계속 바뀝니다.
  • 그래서 10%쯤 찬 일봉에서 「망치형」이 떴다가 사라지고 또 뜨는 일이 생겼습니다. 장악형은 더 심합니다 — 앞 봉 몸통을 덮었는지가 한 봉 안에서 들락날락합니다.
  • 캔들 패턴은 교과서적으로도 종가에서 확정되는 것이라, 진행 중인 봉에서 읽는 건 애초에 성립하지 않습니다. 이제 마지막으로 끝난 봉에서 읽습니다.
  • 한 봉 늦어지지만, 이 앱은 이미 「봉이 마감하면 다시 보세요」라고 말하고 있었습니다 — 말과 계산을 맞춘 것입니다.
  • 아이러니: 이 코드는 맥락(앞선 흐름)을 볼 때는 「패턴이 나온 봉 자신이 맥락에 섞이면 자기가 자기 근거가 된다」며 마지막 봉을 정확히 빼고 있었습니다. 봉 고르는 일을 그만큼 신중히 해 놓고, 정작 그 봉이 안 끝났다는 건 보지 못했습니다.
  • 검사 하나가 또 헛돌고 있었습니다. 「깨진 봉은 읽지 않는다」를 확인하는 검사가 깨진 봉을 맨 뒤에 두고 있었는데, 그 자리는 이제 애초에 안 읽는 자리라 아무것도 확인하지 않으면서 통과하게 됩니다. 깨진 봉을 패턴 자리로 옮겼습니다.
  • 내부 검증 1333건 · 화면 기준선 216장. versionCode 344.
v3.5.112026-07-31
아직 끝나지도 않은 봉의 거래량과 견주고 있었습니다
  • 거래소 세 곳(업비트·바이낸스·비트겟) 모두 아직 진행 중인 봉을 목록 맨 뒤에 줍니다. 그 봉의 거래량은 쌓이는 중이라 늘 작습니다 — 봉이 막 열린 참이면 거의 0입니다.
  • 그런데 앱은 그 봉의 거래량을 그대로 분자로 써서 「평소의 몇 배」를 냈습니다. 그래서 봉이 바뀔 때마다 「평소의 0.1배 — 움직임에 사람이 따라붙지 않았습니다」를 말하고 있었습니다. 일봉으로 보시면 매일 아침마다 그랬습니다.
  • 더 뼈아픈 건, 코드 주석이 이 위험을 정확히 적어 두고 있었다는 점입니다 — 「진행 중인 봉의 거래량은 아직 쌓이는 중이라 늘 작게 나온다. 그걸 그대로 '평소보다 적다'로 말하면 장 초반마다 '거래가 죽었다'고 하게 된다.」 그리고 그 해결책이 문제를 안 고치고 있었습니다. 마지막 봉을 평균에서만 뺐을 뿐, 정작 분자는 여전히 진행 중인 봉이었습니다.
  • 이제 완성된 봉끼리만 견줍니다. 값이 한 봉 늦어지지만, 실무에서 「거래량이 실렸나」는 원래 마감한 구간에 대해서만 세는 말입니다 — 그리고 매번 틀린 말을 하는 것보다 한 봉 늦는 편이 낫습니다.
  • 「거래량 확증」 판정도 같은 문제였습니다. 「이번 움직임」 세 봉 중 하나가 진행 중인 봉이었습니다. 가격도 같은 창에서 재도록 함께 맞췄습니다 — 거래량만 완성 봉으로 바꾸고 움직임은 진행 중인 봉까지 재면 서로 다른 구간의 두 값을 한 문장으로 묶는 셈이 됩니다.
  • 검사가 왜 못 잡았는지도 고쳤습니다. 시험 자료가 전부 「마지막 봉이 다 찬 상태」 라는 현실에 없는 상황을 놓고 있었습니다. 이제 진행 중인 봉을 붙여 놓고 봅니다.
  • 그 과정에서 검사 하나가 아무것도 확인하지 않으면서 통과하고 있던 것도 찾았습니다 (필요한 자료 길이가 하나 늘면서 여섯 경우가 전부 「자료 부족」으로 빠졌습니다).
  • 내부 검증 1332건 · 화면 기준선 216장. versionCode 343.
v3.5.102026-07-31
가장 쓸모 있는 값 하나가 계산만 되고 있었습니다
  • 이 앱은 가격대별 거래량을 셉니다. 그 계산에서 나오는 가장 중요한 값이 거래가 가장 많았던 구간입니다 — 「사람들이 이 값이 맞다고 가장 많이 합의한 자리」입니다.
  • 지금 값이 그 위면 최근 거래 대부분보다 비싼 자리에 계신 것이고, 아래면 그 반대입니다. 앞일이 아니라 있었던 일이라 이 앱이 말할 수 있는 종류입니다.
  • 그런데 그 값이 여러 판 동안 한 번도 화면에 안 붙어 있었습니다. 계산은 매번 하면서 아무도 못 보고 있었습니다.
  • 왜 못 잡았는지도 고쳤습니다. 「계산한 값은 화면까지 닿아야 한다」는 검사가 있는데, 그 검사가 함수만 훑고 있었습니다. 계산을 담은 프로퍼티는 정규식에 안 걸려서 그대로 지나갔습니다. 검사를 넓히자 정확히 이 값 하나가 걸렸습니다.
  • 이제 지지·저항 아래에 적습니다 — 「최근 거래가 가장 많았던 구간은 ₩90,087,500~ ₩90,435,417입니다 — 지금 값은 그 아래입니다」.
  • 한 점이 아니라 구간으로 말합니다. 가격대를 24칸으로 나눠 세므로 애초에 띠입니다.
  • 칸 경계에 걸친 벽을 놓치던 것도 고쳤습니다. 「거래 밀집」을 대표값 한 점에서만 확인했는데, 벽이 칸 경계에 걸치면 거래량이 두 칸으로 나뉘어 어느 쪽도 문턱을 못 넘습니다. 진짜 벽일수록 좁은 띠에 쌓이니 더 잘 걸리던 함정입니다. 이제 구역 전체를 봅니다.
  • 검증 그림 두 장이 아래가 잘려 있던 것도 고쳤습니다 — 그중 하나는 지지 칩 하나를 통째로 가리고 있었습니다. 잘린 그림은 달라진 것을 영원히 숨깁니다.
  • 내부 검증 1330건 · 화면 기준선 216장. versionCode 342.
v3.5.92026-07-31
벽은 선이 아니라 「띠」입니다 — 닿은 것과 지난 것은 다릅니다
  • 이 앱은 0.4% 안쪽의 되밀린 자리들을 하나로 묶어 지지·저항을 만듭니다. 그런데 묶어 놓고 대표값 하나만 내보냈고, 그 대표값은 「먼저 온 것」이었습니다 — 묶인 자리 중 어느 쪽 끝인지 아무도 모르는 값입니다.
  • 그걸 「₩122,467,666이 무너지면」이라고 아홉 자리까지 적으면 없는 정밀도를 만드는 셈입니다. 실제로는 ±0.4%(₩490,000)짜리 입니다.
  • 두 끝은 하는 일이 다릅니다.
  • 먼저 만나는 쪽 — 값이 올라오면 저항 구역의 아래 끝에서 먼저 부딪히고, 지지로 내려오면 위 끝에서 먼저 받칩니다. 「가장 가까운 저항」이라 부를 값은 이쪽입니다.
  • 완전히 지나야 닿는 쪽 — 「저항을 뚫었다」고 하려면 위 끝을 넘어야 하고, 「지지를 잃었다」고 하려면 아래 끝을 잃어야 합니다.
  • 그래서 두 가지를 고쳤습니다.
  • 칩의 값을 「먼저 온 것」에서 「먼저 만나는 끝」으로 바꿨습니다.
  • 「깨지는 선」은 구역의 바깥 끝을 씁니다. 칩이 말하는 값에 닿는 건 흔한 일이라, 그걸 「판독이 흔들린다」로 삼으면 평범한 되돌림마다 판정이 깨진 것처럼 읽힙니다. 초보자가 딱 그 경계에서 튕겨 나옵니다.
  • 띠가 실제로 벌어져 있을 때만 폭을 밝힙니다 — 「₩96,350,000까지 구역(폭 0.4%)」. 꼭짓점이 한 값에 모여 있으면(평평한 천장·바닥) 「폭 0.0%」는 알려 주는 게 없어 적지 않습니다.
  • 구역이 번져 나가지 않게 못 박았습니다. 묶는 기준을 끝값으로 삼으면 꼭짓점이 하나씩 사슬처럼 이어져 30%짜리 「구역」도 만들어질 수 있습니다.
  • 여기까지 어떤 검증 화면도 폭이 있는 구역을 그리지 않았습니다 — 표본 자료의 자리가 전부 한 값에 모여 있었습니다. 그 빈 칸을 메웠고, 만들다가 화면 아래가 잘려 있던 검증 그림도 함께 고쳤습니다(잘린 그림은 달라진 것을 숨깁니다).
  • 내부 검증 1328건 · 화면 기준선 216장. versionCode 341.
v3.5.82026-07-31
뚫린 지지가 머리 위 저항인데, 그걸 버리고 있었습니다
  • 지지·저항을 고점은 저항으로, 저점은 지지로만 썼습니다. 그러면 「지금 값보다 에 있는 저점」과 「아래에 있는 고점」이 통째로 버려집니다.
  • 그런데 그 둘이 실무에서 가장 믿는 자리입니다.
  • 값보다 위에 있는 저점 = 한때 지지였다가 뚫린 자리. 거기서 사신 분들이 본전을 기다리시니, 값이 되돌아오면 팔 물량이 나옵니다 → 저항으로 바뀝니다.
  • 값보다 아래에 있는 고점 = 한때 저항이었다가 뚫린 자리. 못 사고 놓친 분들이 기다리시니 → 지지로 바뀝니다.
  • 「역할 전환」이라고 부르고, 2017년 이래 이 시장에서도 늘 같았습니다. 특히 값이 크게 무너진 직후에는 머리 위 가장 가까운 저항이 거의 언제나 방금 뚫린 지지입니다.
  • 얼마나 어긋나 있었는지 검증 화면에서 그대로 드러났습니다. 앱이 「가장 가까운 저항 +6.7%」라고 말하던 자리가, 실제로는 +1.7%에 있었습니다 — 네 배 멀리 겨누고 있었습니다.
  • 이제 그 자리를 찾아내고, 왜 벽인지도 함께 적습니다 — 「뚫린 지지 자리」.
  • 없는 전환은 지어내지 않습니다. 값이 한 방향으로만 갔으면 뚫린 자리가 없고, 그때는 아무 말도 하지 않습니다.
  • 가까운 것이 먼저라는 순서는 손대지 않았습니다. 후보만 늘고 답이 그대로면 고친 것이 아니니, 실제로 더 가까운 자리가 앞에 오는지 검사로 못 박았습니다.
  • 이 자리는 「깨지는 선」에도 그대로 쓰이므로, 무효화 기준도 함께 정확해집니다.
  • 내부 검증 1323건 · 화면 기준선 215장. versionCode 340.
v3.5.72026-07-31
「7번 닿음」이 언제 닿은 건지가 빠져 있었습니다
  • 지지·저항 칩은 「몇 번 닿았는지」를 적습니다. 다섯 번 되밀린 벽과 한 번 스친 꼬리는 같은 선이 아니니까요.
  • 그런데 「언제」가 없었습니다. 그래서 정반대의 두 자리가 같은 얼굴이 됩니다.
  • 60봉짜리 박스에서 일곱 번 되밀렸지만, 값이 그 위로 빠져나가 20봉째 안 돌아온
  • 최근 열 봉 안에서 세 번 시험된 선
  • 앞엣것을 「7번 닿음」이라고만 적으면 뒤엣것보다 더 단단해 보입니다. 실제로는 이미 지나간 자리입니다 — 값의 기억은 시간이 지나면 옅어집니다.
  • 이제 함께 적습니다 — 「3번 닿음 · 5봉 전」.
  • 한 번만 닿은 자리도 이제 말합니다. 예전에는 「1번 닿음」이 알려 주는 게 없어서 아예 적지 않았는데, 「3봉 전에 닿음」과 「42봉 전에 닿음」은 전혀 다른 이야기 입니다. 그동안 그 칩들은 아무 말도 하지 않고 있었습니다.
  • 판정을 새로 만들지 않았습니다. 「몇 봉이면 낡은 것인가」는 1시간봉과 일봉이 다르고, 그 문턱을 지어내면 없는 기준을 만드는 셈입니다. 사용자가 지금 보는 기간을 아시니 봉 수를 그대로 적습니다.
  • 쓰이지 않게 된 옛 문구는 남겨 두지 않고 지웠습니다 — 검사가 「정의만 되고 아무도 안 쓰는 문구」를 잡아 준 덕입니다.
  • 내부 검증 1317건 · 화면 기준선 215장. versionCode 339.
v3.5.62026-07-31
1시간·4시간만 같은 건 「여러 기간이 같다」가 아닙니다
  • 이 앱은 1시간·4시간·일봉 세 기간을 함께 봅니다. 그리고 화면에 이렇게 적어 뒀습니다 — 「긴 기간이 방향을 정하고 짧은 기간이 시점을 정합니다」.
  • 그런데 정작 계산에서는 셋을 그냥 셌습니다. 방향이 같은 기간이 둘이면 정렬, 반대가 둘이면 상충. 옳은 원리를 화면에 써 놓고 결론에서는 쓰지 않은 셈입니다.
  • 그래서 두 가지가 어긋나 있었습니다.
  • 1시간과 4시간은 서로 독립이 아닙니다. 4시간봉 하나가 1시간봉 넷을 품고 있으니 큰 움직임에서 둘이 같이 가는 건 거의 자동입니다. 그 둘만으로 「여러 기간이 같은 쪽을 봅니다」라고 하면 한 가지를 두 번 세는 것입니다.
  • 일봉 하나가 반대인 건 상충이 아니었습니다. 반대가 「둘 이상」이어야 했으니, 가장 큰 흐름이 정면으로 반대인데도 신뢰도가 깎이지 않았습니다.
  • 이제 가장 긴 기간에 거부권을 줍니다.
  • 가장 긴 기간이 반대면 → 상충. 짧은 둘이 뭐라 하든 그렇습니다.
  • 가장 긴 기간이 같은 쪽이고 반대가 하나도 없을 때만 → 정렬.
  • 가장 긴 기간이 중립이면 정렬이 아닙니다. 아직 확인해 주지 않은 것이지, 확인해 준 것이 아닙니다.
  • 왜 정렬로 안 셌는지 밝힙니다 — 「가장 긴 기간은 아직 방향을 내지 않았습니다 — 짧은 기간끼리는 원래 함께 움직입니다」. 안 밝히면 「기간은 다 상승이라면서 왜 신뢰도가 보통이지」로 읽힙니다.
  • 말을 줄이기만 합니다. 없던 「정렬」을 만들지 않고 있던 상충을 지우지 않습니다. 세 기간이 가질 수 있는 모든 조합(216가지)을 훑어 옛 규칙과 견줬습니다.
  • 판정을 화면 코드에서 도메인으로 옮겼습니다. 화면 안에 있을 때는 시험할 수가 없었고, 그래서 이 빈틈을 오래 아무도 못 봤습니다. 쓰이지 않게 된 옛 함수는 남겨 두지 않고 지웠습니다 — 검사가 「제품 코드에서 아무도 안 부른다」고 잡아 준 덕입니다.
  • 덤으로 빈 칸 하나를 메웠습니다. 여러 기간 판정이 화면에 어떻게 나오는지 기준선이 한 장도 없었습니다.
  • 내부 검증 1313건 · 화면 기준선 215장. versionCode 338.
v3.5.52026-07-31
「저점이 높아진다」를 깨는 건 가까운 지지가 아니라 마지막 저점입니다
  • 이 앱은 판독 아래에 「깨지는 선」을 둡니다. 그건 종합 판독에 딸린 것이고 지지·저항을 근거로 씁니다.
  • 그런데 「흐름 읽기」 문단이 하는 말은 다른 주장입니다 — 「고점도 저점도 높아지고 있습니다」. 그 문장을 깨는 자리는 가까운 지지가 아니라 마지막 저점 입니다. 저점이 높아진다는 말은 마지막 저점을 잃는 순간 정의상 거짓이 되니까요. 실무에서 「구조가 깨졌다」고 부르는 자리가 정확히 여기입니다.
  • 이제 흐름 문단이 그 자리를 함께 말합니다 — 「이 「저점이 높아진다」는 읽기는 ₩95,800,000 아래에서 깨집니다 — 지금에서 3.1% 거리입니다」.
  • 시작한 자리와 다릅니다. 문단 첫 줄의 「₩93,100,000에서 돌아서」는 어디서 시작했나(가장 낮은 저점)이고, 이건 어디를 잃으면 이 말이 거짓이 되나(가장 최근 저점)입니다. 앞엣것을 기준으로 쓰면 훨씬 느슨해져서, 구조가 깨진 뒤에도 한참 「상승 구조」라고 말하게 됩니다.
  • 이미 지났으면 지났다고 합니다. 고점·저점은 좌우 3봉이 나온 뒤에야 확정되니, 값이 그 사이에 선을 넘어가 있을 수 있습니다. 그때 「이 값을 잃으면」이라고 하면 이미 일어난 일을 앞일처럼 말하는 셈이라, 대신 「값은 이미 그 너머로 갔습니다 — 판정이 아직 못 따라온 상태입니다」라고 적습니다.
  • 덩어리를 늘리지 않았습니다. 새 블록이 아니라 이미 있는 흐름 문단에 한 줄 더한 것입니다.
  • 내부 검증 1305건 · 화면 기준선 214장. versionCode 337.
v3.5.42026-07-31
평소 흔들림 안에 그은 선은 「깨지는 선」이 아닙니다
  • 이 앱은 판독 바로 아래에 「깨지는 선」을 둡니다 — 「이 값이 무너지면 지금 판독은 흔들립니다」. 전문가가 늘 하나 더 갖고 있는 것이고, 이걸 정해 두지 않으면 값이 반대로 가도 계속 이유를 붙이게 됩니다.
  • 그런데 그 거리를 퍼센트로만 재고 있었습니다. 여기에 오래 남아 있던 빈틈이 있습니다.
  • 같은 「2% 아래」라도 평소 하루 폭이 0.5%인 코인에게는 큰 사건이고, 8%인 코인에게는 아무 일도 아닙니다 — 가만히 둬도 하루에 몇 번씩 닿습니다. 뒤엣것을 「이 선이 깨지면 판단이 틀린 것」이라고 내놓으면, 평소 흔들림을 매번 「판단이 깨졌다」로 읽게 됩니다.
  • 그래서 이제 그 코인의 평소 하루 폭(ATR)으로 함께 잽니다.
  • 평소 폭 에 있는 자리면 그 사실을 밝힙니다 — 「이 자리는 평소 하루 폭(8.2%) 안에 있습니다 — 방향과 무관한 흔들림만으로도 닿습니다」.
  • 평소 폭으로 너무 먼(여덟 배 넘는) 자리는 아예 말하지 않습니다. 그 자리에 닿기까지 여러 날이 걸리고, 그동안 판독은 몇 번이고 바뀝니다.
  • 가까운 것 자체는 사실이고, 문제는 그게 얼마나 흔한 일인지 안 말하는 것입니다. 그래서 감추지 않고 덧붙입니다.
  • 모르면 예전 그대로입니다. 자료가 얇아 평소 폭을 못 구하면 아무것도 달라지지 않습니다 — 모르는 것으로 판단을 바꾸지 않는다는 이 앱의 선과 같습니다.
  • 말을 줄이기만 합니다. 평소 폭을 알게 됐다고 없던 줄이 생기지는 않습니다. 무작위 3,000가지 조합으로 그 성질을 검사에 걸었습니다.
  • 내부 검증 1300건 · 화면 기준선 214장. versionCode 336.
v3.5.32026-07-31
「8개 중 6개가 강세」가 근거 6개라는 뜻은 아닙니다
  • 지표를 여러 개 켜 놓고 다 같은 말을 하면 확신이 커집니다. 그런데 그 지표들이 서로 다른 것을 보고 있는지는 아무도 확인하지 않습니다.
  • RSI·스토캐스틱·자금흐름(MFI)은 같은 최근 구간을 거의 같은 식으로 봅니다. MFI는 사실상 거래량을 얹은 RSI이고, 스토캐스틱은 그 구간 안 어디쯤인가를 잽니다. 값이 크게 움직이면 셋은 거의 항상 함께 움직입니다.
  • 이동평균 정배열과 MACD도 마찬가지입니다. MACD가 양수라는 말은 짧은 이동평균이 긴 이동평균 위에 있다는 뜻이라 정배열과 거의 같은 문장입니다.
  • 그래서 「6개가 같은 방향」이 관측 2개를 여섯 번 말한 것일 수 있습니다. 지표를 늘리면 확신은 커지는데 정보는 늘지 않습니다 — 오실레이터 다섯 개를 켜 놓고 「다 과매수네, 확실하다」 하는 자리가 정확히 이겁니다.
  • 이제 신뢰도를 정할 때 몇 개가 같은 말을 하는가가 아니라 서로 다른 것을 보는 근거가 몇 가지인가를 함께 셉니다. 추세·모멘텀·거래량·변동성 — 한 계열은 아무리 여럿이어도 한 목소리입니다.
  • 거래량이 값과 어긋나면 자신 있게 말하지 않습니다. 예전에는 「강세 4 : 약세 1」로 거래량 한 표가 묻혔지만, 계열로 접으면 둘 대 하나라 자신 있게 말할 자리가 아닙니다. 숙련자가 「거래가 안 따라온다」며 손을 늦추는 바로 그 자리입니다.
  • 어느 계열이 반대편인지까지 말합니다 — 「지표는 4대 1로 기울었지만 거래량 계열은 반대편입니다」. 그냥 「엇갈립니다」만 하면 무엇을 더 봐야 할지 알 수 없습니다.
  • 계열 안에서 갈리면 그 계열은 아무 말도 안 한 것으로 봅니다. 3:3을 「중립 한 표」로 세면 아무것도 모르는 상태가 조용히 근거 하나로 둔갑합니다.
  • 낮추기만 하고 올리지는 않습니다. 계열 수는 지표 수보다 클 수 없어서, 이 조건은 「높음」을 막을 뿐 없던 「높음」을 만들지 못합니다. 무작위 4,000가지 조합으로 그 성질을 검사로 못 박았습니다.
  • 왜 낮췄는지 밝힙니다. 「6개가 강세라면서 왜 신뢰도가 보통이지」로 읽히면 안 되니, 「서로 다른 것을 보는 근거는 2가지입니다」를 함께 적습니다.
  • 만드는 쪽도 하나 고쳤습니다. 배포 전 검사 도구가 한글 메시지를 찍다가 죽어 배포가 멈추는 버그가 있었습니다(같은 원인으로 세 번째였습니다). 고침은 진작 있었는데 부르는 곳을 열두 군데 빠뜨린 것이라, 이번엔 「한글을 찍으면 반드시 부른다」를 검사로 못 박았습니다 — 앱 동작은 그대로입니다.
  • 내부 검증 1295건 · 화면 기준선 213장. versionCode 335.
v3.5.22026-07-31
「RSI 70이니 팔아야지」가 가장 크게 잃는 자리입니다
  • 처음 배우실 때 거의 모두가 익히는 규칙이 있습니다 — 「RSI 70이 넘으면 과매수, 30 아래면 과매도」. 값이 박스 안을 오갈 때는 잘 맞습니다.
  • 그런데 강한 추세에서는 전혀 다르게 움직입니다. 상승 추세에서 RSI는 70 위에 몇 주씩 머뭅니다. 그때마다 「과매수니까」 하고 파시면 남은 상승을 통째로 놓칩니다. 2017년 이래 시장이 몇 번 바뀌는 동안에도 이 자리는 늘 같았습니다.
  • 지금까지 이 앱은 국면과 상관없이 70/30만 보고 약세 표를 던졌습니다. 이제 추세가 뚜렷하고 그 방향과 같은 쪽으로 치우친 값은 신호가 아니라 상태로 읽습니다 — 「추세 안에서는 정상입니다」라고 적고, 매도 근거로 세지 않습니다.
  • 방향까지 봅니다. 「추세장이면 무시」로 뭉뚱그리면 정반대 상황에서 같은 말을 하게 됩니다 — 하락 추세에서 RSI가 70을 넘었다면 그건 큰 흐름을 거스르는 진짜 과열이라 약세 판정이 맞습니다. 그럴 때는 그대로 둡니다.
  • 박스권에서는 손대지 않습니다. 고전 눈금은 원래 그 자리에서 잘 맞습니다. 국면을 알 수 없을 때도 그대로 둡니다 — 모를 때는 익숙한 눈금이 안전합니다.
  • 거짓 표를 빼기만 하고, 없던 표를 더하지는 않습니다. 「추세에서는 눈금이 이동한다」를 끝까지 밀면 「상승 추세의 RSI 45는 매수」 같은 판정까지 만들 수 있는데, 그건 이 앱이 그어 둔 선(앞일을 말하지 않습니다)에 너무 가깝습니다. 잘못된 표를 빼는 것은 안전하고, 없던 표를 더하는 것은 그렇지 않습니다.
  • 왜 표가 안 갔는지 화면이 말합니다. 그냥 「과매수」로만 부르면 「과매수라면서 왜 약세가 아니지」로 읽히니까요.
  • 내부 검증 1276건 · 화면 기준선 211장. versionCode 334.
v3.5.12026-07-31
「엇갈림」 안에 정반대의 두 상황이 숨어 있었습니다
  • 여러 기간(1시간·4시간·일)의 방향이 다를 때 앱은 「엇갈립니다」 한 마디만 했습니다. 그런데 그 안에는 정반대의 두 상황이 들어 있습니다.
  • 긴 기간은 상승, 짧은 기간은 하락 → 큰 흐름 안에서 잠깐 되돌리는 중(눌림목). 전문가가 오래 기다리는 자리입니다.
  • 긴 기간은 하락, 짧은 기간은 상승 → 큰 흐름을 거스르는 반등. 되돌려지기 쉬운 자리입니다.
  • 둘을 한 낱말로 뭉뚱그리면 가장 유리한 자리와 가장 위험한 자리를 같은 말로 듣게 됩니다. 이제 화면이 둘을 가려 말합니다.
  • 어긋날 때는 읽는 순서도 함께 밝힙니다 — 「긴 기간이 방향을 정하고 짧은 기간이 시점을 정합니다」. 2017년 이래 시장이 몇 번 바뀌는 동안에도 이 위계는 그대로였습니다.
  • 짧은 쪽과 긴 쪽이 같은 방향이고 가운데만 다를 때는 그냥 「엇갈림」입니다 - 없는 모양을 지어내지 않습니다.
  • 정리도 함께 했습니다. 새 판정이 옛 판정을 완전히 대체해서, 쓰이지 않게 된 옛 함수를 남겨 두지 않고 지웠습니다. 검사가 「제품 코드에서 아무도 부르지 않는 함수」를 잡아 준 덕입니다.
  • 내부 검증 1266건 · 화면 기준선 211장. versionCode 333.
v3.5.02026-07-31
지지·저항이 「거기서 거래도 몰렸는지」를 함께 봅니다
  • 지금까지 지지·저항은 「여기서 값이 돌아섰다」를 근거로 삼았습니다. 맞는 근거지만 가장 강한 것은 아닙니다.
  • 전문가가 더 믿는 것은 「그 가격에서 거래가 많이 일어났는가」입니다. 거기서 많이 거래됐다는 것은 그 값에 실제로 물량을 든 분이 많다는 뜻이고, 그분들이 그 자리를 지키기 때문입니다.
  • 두 근거가 같은 자리를 가리킬 때가 진짜 벽입니다. 이제 그럴 때 지지·저항 칩에 「거래 밀집」이 붙습니다.
  • 새 블록을 만들지 않았습니다. 기존 지지·저항에 근거를 한 겹 더 얹었을 뿐입니다 - 화면에 덩어리를 늘리지 않고 근거의 질만 올리는 방식입니다.
  • 어림값임을 밝힙니다. 제대로 된 계산은 체결 하나하나를 가격별로 쌓지만, 이 앱이 받는 것은 봉(시가·고가·저가·종가·거래량)뿐이라 한 봉의 거래량이 그 봉의 범위에 고르게 퍼졌다고 볼 수밖에 없습니다. 근사인 것 자체는 괜찮고 감추는 것이 문제라, 「봉 단위로 어림한 값입니다」를 함께 적습니다.
  • 거래량을 주지 않는 거래소에서는 아무 말도 하지 않습니다. 「전부 0」을 분포라고 부르면 어느 구간이든 밀집이 되거나 아무 데도 아니게 되고, 둘 다 거짓입니다.
  • 내부 검증 1260건 · 화면 기준선 211장. versionCode 332.
v3.4.32026-07-31
다이버전스가 「어디서 생겼는지」를 함께 말합니다
  • 다이버전스(가격과 지표가 반대로 움직이는 구간)는 전문가가 가장 신뢰하는 신호 중 하나이면서, 실무에서 오독이 가장 많은 신호이기도 합니다.
  • 이 앱은 그동안 「다이버전스가 있다」까지만 말했습니다. 그런데 RSI 82에서 꺾이며 생긴 것55에서 53으로 생긴 것은 전혀 다른 이야기입니다. 앞엣것은 고전적인 신호이고, 뒤엣것은 추세가 잠깐 숨을 고르는 모양일 때가 훨씬 많습니다.
  • 둘을 같은 얼굴로 보여 주면 처음 보시는 분은 매번 「신호가 떴다」로 읽습니다. 그래서 이제 두 가지를 함께 말합니다.
  • 「과매수·과매도 구간에서 꺾이며 생긴 신호라 무게가 있습니다
  • 「중립 구간에서 생긴 신호입니다 — 추세가 잠깐 숨을 고르는 모양일 때가 더 많습니다」
  • 어긋난 폭도 함께 봅니다. 폭이 작으면(관측 범위의 15% 미만) 「잔차에 가깝습니다」라고 덧붙입니다.
  • 다만 신호를 걸러 내지는 않습니다. 다이버전스는 켜고 끄는 스위치가 아니라 정도의 문제입니다 - 문턱 하나로 「신호 아님」을 만들면 경계선 근처에서 있다·없다가 오락가락해 더 혼란스럽습니다. 그래서 감추지 않고 약하다고 말합니다.
  • 없는 기준은 지어내지 않습니다. MACD 는 종목·기간마다 값의 크기가 달라 「70 이상」 같은 절대 눈금을 만들 수 없습니다. 그럴 때는 아무 말도 하지 않습니다 - 모른다는 사실을 감추고 「중립이라 약하다」고 하면 그게 더 나쁜 거짓말입니다.
  • 내부 검증 1252건 · 화면 기준선 210장. versionCode 331.
v3.4.22026-07-31
자료가 얇을 때 「신뢰도 높음」이 붙던 것을 막았습니다
  • 이 앱의 주요 지표(RSI·ATR·ADX·자금흐름)는 직전 값을 조금씩 섞어 가는 방식으로 계산됩니다. 그래서 처음 몇 십 봉 동안은 맨 처음 값의 영향이 크게 남습니다 - 값은 나오지만 아직 여물지 않은 상태입니다.
  • 그런데 화면은 40봉짜리와 300봉짜리를 같은 얼굴로 보여 주고 있었습니다. 상장한 지 얼마 안 된 코인이나 주봉처럼 자료가 얇을 때, 「신뢰도 높음」이 그대로 붙었습니다. 가장 못 믿을 상황에서 가장 자신 있게 말한 것입니다.
  • 이제 자료가 얇으면 신뢰도의 천장을 낮춥니다. 판정 자체를 뒤집지는 않고 말의 세기만 조입니다.
  • 그리고 왜 낮췄는지 함께 밝힙니다 — 「자료가 38봉뿐입니다 — 지표가 아직 덜 여물어 값이 흔들릴 수 있습니다」. 낮추기만 하고 침묵하면 「이 앱은 늘 자신이 없다」로 읽힙니다.
  • 기준은 눈에 좋은 숫자가 아니라 계산 방식에서 나옵니다. 지표 기간(14)의 세 배 미만 이면 「덜 여묾」, 다섯 배 이상이면 「충분」으로 봅니다. 실무에서 쓰는 눈금입니다.
  • 자료가 많다고 신뢰도를 올리지는 않습니다. 올리기 시작하면 오래된 코인이면 무조건 「높음」이 붙습니다 - 여기서 하는 일은 「얇은데 높음」이라는 조합을 못 만들게 막는 것 하나뿐입니다.
  • 숙련자는 「상장한 지 얼마 안 됐으니 참고만」을 스스로 압니다. 처음 보시는 분은 화면에 적힌 대로 믿습니다 - 그래서 이 판단은 화면이 대신 해야 합니다.
  • 내부 검증 1247건 · 화면 기준선 210장. versionCode 330.
v3.4.12026-07-31
흐름 읽기에 「얼마나 돌려줬나」와 「평균 단가」를 더했습니다
  • 지난 판의 흐름 문단에 차트에서 뽑은 사실 두 가지를 더했습니다. > 12봉째 상승 흐름 — ₩93,100,000에서 돌아서 +8.20% > 추세선과 고점·저점이 같은 말을 합니다. ₩101,500,000까지 갔다가 38.2% > 되돌렸습니다. 돌아선 뒤 들어온 평균 단가는 ₩94,300,000 — 지금은 그 위입니다. > 최근 5봉은 움직임이 눈에 띄게 줄었습니다. 거래량은 평소의 0.7배 — 움직임에 사람이 > 따라붙지 않았습니다.
  • 되돌림 깊이 — 「고점이 어디였나」만으로는 흐름을 못 읽습니다. 실제로 궁금한 것은 얼마나 돌려줬나입니다. 조금 쉬는 중인지, 되돌림이 깊어 흐름 자체가 흔들리는지가 거기서 갈립니다. 피보나치 표가 「어느 가격이 38.2%인가」를 말한다면 이건 「지금 몇 %를 되돌렸나」를 말합니다 - 표를 읽을 줄 몰라도 이 한 숫자는 읽힙니다.
  • 평균 단가 — 돌아선 자리부터 지금까지 들어온 돈의 거래량가중 평균가입니다. 기관·전문 트레이더가 오래 써 온 도구인데, 이유가 분명합니다: 의견이 아니라 산수입니다. 「이쯤이 지지선일 것」은 해석이지만 「이 구간에 들어온 돈의 평균 단가는 ₩94,300,000」은 계산 결과입니다.
  • 지금 가격이 그 위면 그 구간에 들어온 분들이 이익 중이고, 아래면 손실 중입니다. 흐름을 읽을 때 사람들이 실제로 궁금해하는 것이 그것입니다.
  • 재는 기준을 근거 있게 잡았습니다. 그냥 「최근 20봉 평균」처럼 임의 구간을 쓰면 어디서 끊었느냐에 따라 값이 흔들려 근거가 되지 못합니다. 그래서 시작점을 「흐름이 돌아선 자리」에 맞췄습니다 - 사람이 차트에서 손가락으로 짚는 그 지점입니다.
  • 되돌림도 다리 길이 대비로 잽니다. 가격 대비로 재면 비싼 코인과 싼 코인의 숫자가 서로 비교되지 않습니다.
  • 거래량을 주지 않는 거래소에서는 평균 단가를 말하지 않습니다. 거래량을 1로 가정하면 그건 평균 단가가 아니라 그냥 평균이고, 이름만 남고 뜻은 사라집니다.
  • 내부 검증 1239건 · 화면 기준선 209장. versionCode 329.
v3.4.02026-07-31
「흐름 읽기」 — 지표를 한 편의 이야기로 엮었습니다
  • 코인 상세 화면에는 판단 근거가 열세 덩어리 붙어 있습니다. 하나하나는 옳지만 전부 「지금 이 순간」의 값이라, 다 읽고 나도 「그래서 이 코인이 어떤 흐름인가」가 남지 않았습니다. 사람이 차트에서 실제로 하는 일은 순서를 읽는 것입니다.
  • 이제 절 맨 앞에 흐름 한 문단이 붙습니다. > 12봉째 상승 흐름 — ₩93,100,000에서 돌아서 +8.20% > 추세선과 고점·저점이 같은 말을 합니다. 최근 5봉은 움직임이 눈에 띄게 줄었습니다. > 거래량은 평소의 0.7배 — 움직임에 사람이 따라붙지 않았습니다.
  • 셋을 시간 순서로 엮은 것입니다. 언제 뒤집혔나(추세 전환점과 지속 봉 수) · 고점과 저점이 어느 쪽으로 가나(시장 구조) · 그 움직임에 사람이 붙었나(평소 대비 거래량). 전문 트레이더가 차트를 볼 때 순서대로 확인하는 것들입니다.
  • 어긋날 때가 오히려 쓸모 있습니다. 「추세선은 위인데 고점은 낮아지고 있습니다 — 살아 있으나 힘이 빠지는 구간입니다」처럼, 둘이 다른 말을 하면 그 사실 자체를 알려 드립니다. 한쪽만 말하면 화면이 거짓말을 하게 됩니다.
  • 앞으로 어떻게 될지는 한 글자도 말하지 않습니다. 전부 있었던 일입니다. 「오를 것」도 「살 때」도 없습니다 - 담을 자리조차 만들지 않았고, 검사가 그걸 확인합니다.
  • 이 판단이 늦는다는 사실도 함께 밝힙니다. 고점·저점은 좌우 3봉이 나온 뒤에야 확정됩니다. 그걸 감추고 「지금 돌아섰다」고 하면, 지나고 보면 항상 맞아 보이는 재도색(repaint) 과 같은 거짓말이 됩니다.
  • 덩어리를 늘리지 않았습니다. 새 지표를 각각 한 줄씩 더하면 화면이 어수선해집니다 - 셋을 한 문단으로 합쳐 맨 앞에 두어, 아래 열세 덩어리를 어떤 눈으로 읽을지만 정해 줍니다.
  • 함께 고친 것: 글씨를 크게 쓰시면 종합 판독 머리줄이 「Overall read· confidence」처럼 제목과 값이 뒤엉켜 보이던 것을 바로잡았습니다.
  • 내부 검증 1232건 · 화면 기준선 209장. versionCode 328.
v3.3.52026-07-30
앱이 죽었을 때 원인을 읽을 수 있게 해 두었습니다
  • 앱 동작은 이번 판에서 바뀌지 않았습니다. 문제가 생겼을 때 원인을 찾을 수 있도록 하는 준비입니다.
  • 이 앱은 배포할 때 코드를 난독화합니다(용량이 줄고 내부 구조가 드러나지 않습니다). 그런데 난독화된 앱이 죽으면 오류 기록이 `a.b.c` 같은 뜻 없는 이름으로만 남습니다 - 그 판의 「이름 대응표」가 있어야만 어디서 죽었는지 읽을 수 있습니다.
  • 그 대응표가 다음 판을 빌드하는 순간 덮어써지고 있었습니다. APK 는 보관 절차가 있어 남는데 대응표만 우연에 기대고 있었던 것입니다. 이제 APK 와 같은 자리에 함께 보관합니다.
  • 지금은 사용자 오류 기록을 받고 있지 않지만, 받기 시작하는 순간 「오류는 오는데 읽을 수가 없는」 상태가 됐을 것입니다. 그때 가서는 이미 늦습니다 - 지난 판들의 대응표는 되살릴 수 없습니다.
  • 내부 검증 1215건 · 화면 기준선 207장. versionCode 327.
v3.3.42026-07-29
가장 큰 파일을 쪼갰습니다 (앱 동작 변화 없음)
  • 앱 동작은 이번 판에서 바뀌지 않았습니다. 저장소에서 가장 큰 파일을 정리했습니다.
  • 화면 그림(기준선)을 만드는 파일이 3,368줄까지 자라 있었습니다. 이 앱은 파일이 커지면 떼어 내 왔는데, 그림 파일만은 미뤄 두고 있었습니다 - 기준선 파일 경로에 파일 이름이 박혀 있어 옮기면 그림 207장이 통째로 자리를 옮기기 때문입니다.
  • 그런데 자리가 바뀌는 것과 그림이 바뀌는 것은 다릅니다. 옮기기 전후로 207장의 내용을 하나하나 대조해 한 장도 달라지지 않았음을 확인했습니다. 화면은 그대로고 파일만 갈렸습니다.
  • 뉴스·담아 둔 기사 → `PreviewNews.kt`, 내 자금·설정·도구·알림·탐색 → `PreviewMyMoney.kt` 로 나눴고, 남은 파일은 3,368 → 2,429줄이 됐습니다.
  • 그 과정에서 검사 넷이 깨졌습니다. 「기준선이 없다」고 했지만 그림은 멀쩡했고, 그 검사들이 파일을 이름으로 집고 있었을 뿐입니다. 이름에 매달린 검사는 정리를 막는 쪽으로 작용합니다 - 고치기 싫어서 파일을 안 쪼개게 됩니다. 넷 다 폴더를 훑도록 고쳤습니다.
  • 이 앱은 같은 일을 기술적 분석 파일에서 이미 한 번 겪고 고쳤는데(v3.1.1), 그림 쪽만 남아 있었습니다.
  • 내부 검증 1215건 · 화면 기준선 207장. versionCode 326.
v3.3.32026-07-29
「담아 둔 기사가 없습니다」가 거짓말일 수 있었습니다
  • 담아 둔 목록을 읽지 못했을 때도 「아직 담아 둔 기사가 없습니다」라고 말했습니다. 담아 두신 것은 그대로 있는데 사라졌다고 말하는 셈이었습니다. 담았다는 것은 「나중에 다시 볼 것」이라는 뜻이라, 그 오해가 가장 크게 놀랍니다.
  • 이제 「담아 둔 목록을 불러오지 못했습니다. 사라진 것이 아니니 잠시 뒤 다시 열어 보세요」라고 알려 드립니다. 두 문구가 서로 같아지지 않도록 검사가 다섯 언어에서 대조합니다.
  • 이 앱은 같은 구분을 이미 여러 곳에서 지키고 있었습니다 - 뉴스 화면은 「불러오지 못함」과 「검색 결과 없음」을 다른 문구로 말하고, 담긴 링크 조회도 「모름」과 「없음」을 나눠 둡니다. 그 구분을 마지막에 눌러 없애고 있었던 것입니다.
  • 7일 차트가 사라지던 것도 고쳤습니다. 여러 코인의 차트를 한 번에 받는데, 거래소가 일부만 거절해도 성공한 것으로 통째로 바꿔치기해서 직전까지 멀쩡하던 선이 화면에서 없어졌습니다. 이제 새로 받은 것만 덮어 얹고 나머지는 그대로 둡니다.
  • 이것도 같은 규칙입니다 - 「실패한 응답으로 좋은 값을 덮지 않는다」. 이 앱이 경쟁 앱과 갈리는 지점이라 시세·지수에는 검사까지 있었는데, 받아 온 값을 들고 있는 세 번째 자리가 그 규칙 밖에 있었습니다.
  • 내부 검증 1215건 · 화면 기준선 207장. versionCode 325.
v3.3.22026-07-29
화면을 돌려도 업데이트 진행과 열어 둔 설명이 유지됩니다
  • 내려받는 중에 화면을 가로로 돌리면 진행 막대가 사라졌습니다. 그리고 되돌아온 「지금 업데이트」 버튼을 눌러도 아무 일이 없었습니다 - 이미 받는 중이라 앱이 조용히 돌아섰기 때문입니다. 내려받기 자체는 계속 돌고 있었지만, 사용자에게는 먹통이었습니다.
  • 이제 화면이 다시 만들어져도 진행이 그대로 이어집니다. 돌리는 순간 진행 막대가 이어서 그려집니다.
  • 이 앱은 「실패보다 나쁜 것은 아무 반응이 없는 상태」라는 결론을 업데이트 잠금 문제에서 이미 냈었는데, 그 결론이 잠금에만 적용돼 있었습니다.
  • 지표 설명 창도 회전하면 닫혔습니다. 차트를 크게 보려고 돌리는 것은 이 화면에서 가장 자연스러운 동작인데, RSI·스토캐스틱·MACD 등을 펼쳐 놓고 돌리면 창이 사라졌습니다. 이제 유지됩니다.
  • 「자세히 보기」 설명 창 세 곳도 같습니다. 초보자가 설명을 읽다가 화면을 돌리는 것은 특히 흔한 일입니다.
  • 화면 회전뿐 아니라 인앱 언어 변경·표시 배율 변경도 화면을 다시 만듭니다 - 셋 다 같이 고쳐졌습니다.
  • 내부 검증 1213건 · 화면 기준선 206장. versionCode 324.
v3.3.12026-07-29
앱을 갱신해도 담아 둔 것이 사라지지 않도록 못 박았습니다
  • 앱 동작은 이번 판에서 바뀌지 않았습니다. 되돌릴 수 없는 사고를 막는 장치입니다.
  • 이 앱의 저장소는 두 종류를 함께 담습니다. 캐시(차트·시장기록)는 스키마가 바뀌면 버리고 다시 받으면 그만이지만, 담아 두신 기사와 뉴스 아카이브는 다시 받을 수 없습니다 - RSS에서 밀려난 기사는 어디에도 없습니다.
  • 그 둘을 가르는 규칙이 코드에 이미 있었는데, 지키는 장치가 없었습니다. 이제 저장소 코드에서 표를 직접 뽑아 대조합니다 - 새 테이블을 만드는 사람이 「캐시인가 사람이 모은 것인가」를 반드시 정하게 됩니다.
  • 반대 방향은 더 위험합니다. 다시 만드는 테이블을 지우지 않으면, 다음 판에서 「이미 있는 테이블을 또 만든다」는 오류로 저장소가 통째로 안 열립니다. 캐시뿐 아니라 담아 두신 기사까지 못 쓰게 되고, 앱은 조용히 넘어가 아무 표시도 없습니다. 두 방향 모두 일부러 어겨 보고 검사가 잡는 것을 확인했습니다.
  • 실시간 시세가 끊겼을 때 다시 붙는 간격(1초→2초→4초…30초)도 따로 떼어 검사했습니다. 이 계산은 자릿수를 옮기는 방식이라, 상한을 지우면 실패가 쌓였을 때 간격이 도로 1초로 뒤집혀 죽은 서버를 계속 두드리게 됩니다. 배터리를 아끼겠다는 앱이 정반대로 구는 것이라, 어떤 횟수에서도 뒤집히지 않는지 전수로 잽니다.
  • 내부 검증 1210건 · 화면 기준선 206장. versionCode 323.
v3.3.02026-07-29
새로고침이 겹쳐 돌아 데이터를 두 번 쓰던 것을 막았습니다
  • 설정에서 거래소를 잇달아 바꾸면 전체 새로고침이 겹쳐 돌았습니다. 시세·지수·시장· 차트를 통째로 두 번 받고, 먼저 끝난 쪽이 회전 표시를 내려 아직 받는 중인데 회전이 멈췄습니다.
  • 이 앱은 데이터와 배터리를 아끼는 것이 정체성이라 중복 요청 자체가 손해입니다. 이제 이미 받는 중이면 새로 시작하지 않습니다. 뉴스 새로고침도 같습니다.
  • 코인 아이콘이 사라지던 자리도 고쳤습니다. 코인 목록을 빠르게 두 번 바꾸면 아이콘을 받아 합치는 일이 겹쳐 도는데, 「읽어서 더한 뒤 쓰기」 방식이라 그 사이에 들어온 아이콘이 덮여 사라졌습니다. 예외도 안 나고 로그도 안 남아서, 아이콘 몇 개가 다음 갱신까지 비어 보일 뿐이었습니다.
  • 이 앱은 같은 규칙을 시세 갱신에서 이미 지키고 있었습니다(실시간 틱과 폴링이 서로 덮지 않도록). 그 결론이 그 함수에만 적용돼 있었던 것입니다.
  • 눌러서 더 보기(뉴스 다음 쪽)는 원래 올바른 방식이었습니다. 그걸 나머지 둘에 맞췄습니다.
  • 앞으로 같은 모양이 생기지 않도록, 「자기 값을 읽어 자기에게 쓰는 자리가 없다」와 「받는 중 표시는 코루틴 밖에서 세운다」를 검사가 고정합니다.
  • 내부 검증 1199건 · 화면 기준선 206장. versionCode 322.
v3.2.92026-07-29
값이 안 움직이는 코인에서도 지표가 흔들리지 않도록
  • 앱 동작은 이번 판에서 바뀌지 않았습니다. 거래소가 예쁜 값을 주지 않을 때를 위한 장치입니다.
  • 지표 계산은 나눗셈투성이입니다. RSI는 「오른 폭 ÷ 내린 폭」, 스토캐스틱은 「고가−저가」, 변동성은 「폭 ÷ 가격」입니다. 그런데 분모가 0이 되는 자료가 실제로 옵니다 - 상장 직후라 하루 종일 값이 안 움직인 코인, 거래량이 0인 봉 같은 것들입니다.
  • 그때 `0 ÷ 0`은 오류를 내지 않고 조용히 「수가 아닌 것」이 됩니다. 그 값은 어떤 비교와도 거짓이라 「과매수인가?」도 「과매도인가?」도 전부 아니오가 되고, 판정이 슬그머니 「중립」으로 흐릅니다. 운이 나쁘면 화면에 글자 그대로 찍힙니다.
  • 확인 결과 지금 계산은 모두 안전했습니다. 값이 한 톨도 안 움직이는 봉 60개, 거래량 0, 1000조 단위, 소수점 아래 12자리, 평평하다가 한 봉만 10억으로 폭등 - 여덟 가지 극단 자료를 지표 열 종류에 넣어 봤고 하나도 새지 않았습니다.
  • 다만 그 사실을 지키는 장치가 없었습니다. 이제 「화면에 닿는 값은 없음이거나 성립하는 수다」를 검사가 고정합니다 - 어중간한 세 번째를 만들지 않습니다.
  • 차트 선의 「빈 구간」도 함께 봅니다. 20봉 평균은 20번째 봉부터 존재하므로 앞머리가 비는 것은 정상이지만, 중간이 비면 선이 까닭 없이 두 동강 나고 사용자는 「자료가 빠졌나」로 읽습니다.
  • 볼린저 밴드의 (상단·중심·하단) 순서도 못 박았습니다. 뒤바뀌어도 컴파일은 되고 밴드만 뒤집혀 그려지는데, 그러면 「상단을 뚫었다」를 정반대로 읽게 됩니다.
  • 내부 검증 1195건 · 화면 기준선 206장. versionCode 321.
v3.2.82026-07-29
서머타임이 있는 지역에서 「어제」가 어긋나던 것을 고쳤습니다
  • 뉴스 목록의 날짜 머리글이 「어제」를 24시간 전으로 계산하고 있었습니다. 그런데 하루가 24시간이 아닌 날이 1년에 두 번 있습니다 - 서머타임이 시작하는 날은 23시간, 끝나는 날은 25시간입니다.
  • 그래서 23시간짜리 날의 다음 날 새벽에는 「어제」가 그저께를 가리켰고, 25시간짜리 날의 밤에는 「어제」가 오늘과 같아졌습니다. 두 경우 모두 진짜 어제 기사에 「어제」가 안 붙고 날짜만 표시됐습니다.
  • 이제 달력으로 하루를 물러납니다. 시간을 빼는 것이 아니라 날짜를 하나 뺍니다.
  • 한국에서는 절대 재현되지 않던 결함입니다. 한국은 서머타임이 없어 두 계산이 항상 같습니다. 하지만 이 앱은 다섯 언어를 지원하고 시간대는 기기에서 가져오므로, 유럽·미국에서 쓰시는 분께는 해마다 두 번 어긋났습니다.
  • 검사는 런던·뉴욕의 봄·가을 전환일 48시간을 한 시간씩 훑어 확인합니다. 옛 계산이 실제로 틀렸다는 것도 함께 확인합니다 - 그게 없으면 「고쳤다」와 「원래 같았다」를 구분할 수 없습니다.
  • 함께 살펴본 다른 시각 계산(조용시간의 자정 넘김, 위젯의 날짜 표시)은 이상이 없었습니다.
  • 내부 검증 1191건 · 화면 기준선 206장. versionCode 320.
v3.2.72026-07-29
기사를 담지 못했을 때 알려 드립니다
  • 뉴스의 별(★)을 눌러 담을 때, 저장이 실패하면 아무 말도 하지 않았습니다. 별도 안 켜지니 잘못 알려 드리지는 않았지만, 사용자에게는 「눌렀는데 아무 일도 안 일어남」만 남습니다. 지난 판에서 고친 바깥으로 여는 버튼과 똑같은 고장이 앱 안에도 있었습니다.
  • 이제 「담아 두지 못했습니다」라고 알려 드립니다. 담는 자리 둘 다(뉴스 목록, 담아 둔 목록) 붙였습니다 - 한쪽만 고치면 다른 쪽은 여전히 조용합니다.
  • 저장이 안 되는 이유(저장 공간 부족 등)는 사용자가 알 수 없는 것이라 더더욱 말해 드려야 합니다.
  • 배경에서 조용히 쌓는 것들(시세 캐시·뉴스 보관·시장 기록)은 그대로 조용합니다. 그건 실패해도 앱이 네트워크로 계속 동작하고, 사용자가 시킨 일이 아니기 때문입니다. 누른 것과 알아서 하는 것은 다릅니다.
  • 내부 검증 1186건 · 화면 기준선 206장. versionCode 319.
v3.2.62026-07-29
눌렀는데 아무 일도 안 일어나던 자리를 없앴습니다
  • 브라우저나 설정 화면을 여는 버튼들이, 열 수 없을 때 아무 말도 하지 않았습니다. 눌러도 반응이 없으니 고장인지 잘못 누른 건지 알 수 없어 같은 자리를 몇 번씩 누르게 됩니다. 안 된다고 말하는 편이 낫습니다.
  • 이제 열 수 없으면 「열 수 있는 앱이 없습니다」라고 알려 드립니다. 여섯 자리 모두 (기사 열기, 앱스토어, 업데이트 링크, 앱 상세설정, 배터리 최적화 예외, 정보 화면 링크) 다섯 언어로 넣었습니다.
  • 실제로 걸리는 자리입니다. 「배터리 최적화 예외」 화면은 일부 기기에 아예 없고, 브라우저가 하나도 없는 기기도 있습니다. 하필 절전 안내 화면이 그런 기기를 위해 있는 것이라, 알림이 안 와서 들어오신 분께 그 버튼이 조용히 아무 일도 안 하면 앱이 두 번 실망시키는 셈입니다.
  • 기사 열기처럼 두 번 시도하는 자리는 첫 시도에서 말하지 않습니다. 잘 열릴 텐데도 「열 수 없다」가 뜨면 그게 더 이상합니다 - 마지막 시도까지 실패했을 때만 알립니다.
  • 여는 일을 한 곳으로 모았습니다. 자리마다 각자 처리하면 「이번엔 알릴까 말까」가 부르는 사람 마음이 되고, 다음 자리에서 또 빠뜨립니다 - 실제로 여섯 곳이 똑같이 빠뜨리고 있었습니다.
  • 내부 검증 1184건 · 화면 기준선 206장. versionCode 318.
v3.2.52026-07-29
「접속하는 곳을 모두 밝힌다」를 지키는 장치를 넓혔습니다
  • 앱 동작은 이번 판에서 바뀌지 않았습니다. 다음 판에서 약속이 깨지지 않도록 하는 장치입니다.
  • 이 앱은 광고도 로그인도 추적도 없고, 어디에 접속하는지를 전부 밝히는 것이 정체성 입니다. 그걸 지키는 검사가 있었는데, 코틀린 코드만 훑고 있었습니다.
  • 주소는 문자열 자원이나 매니페스트에도 들어갈 수 있습니다. 예를 들어 링크 하나를 문자열 자원에 넣고 눌러서 열게 만들면, 그 검사는 아무 말도 하지 않았습니다. 규칙보다 훑는 범위가 좁았던 것입니다.
  • 이제 자원과 매니페스트까지 봅니다. 지금 위반은 없습니다 - 확인 결과 자원에 있는 주소는 둘뿐이고, 하나는 XML 표식(접속하지 않음), 하나는 라이선스 전문 주소를 글자로만 적어 둔 것(눌러서 열지 않음)이었습니다.
  • 그 두 면제에는 이유를 함께 적었습니다. 그리고 라이선스 주소가 나중에 눌리는 링크가 되면 면제도 무효가 되도록, 「이건 링크가 아니다」를 검사가 직접 확인합니다 - 면제 목록이 「한때 사실이었던 말」로 남지 않게요.
  • 내부 검증 1179건 · 화면 기준선 206장. versionCode 317.
v3.2.42026-07-29
「차트 기법 더 배우기」의 넷째 칩이 화면 밖에 있었습니다
  • 차트 화면 아래 「차트 기법 더 배우기」 칩 넷 중 넷째(「거래량」)가 화면 밖으로 나가 있었습니다. 한국어·보통 글씨에서도 그랬습니다. 셋째 칩은 안에서 두 줄로 접혀 있었고요.
  • 이제 자리가 모자라면 아랫줄로 넘어갑니다. 넷 다 보입니다. 시장 맥박 신호 칩과 7일 성과 비교 칩은 이미 그렇게 그리고 있었는데, 이 줄만 빠져 있었습니다.
  • 지표 머리줄의 값이 숫자 한가운데서 줄바꿈되고 있었습니다. 글씨를 크게 쓰시는 좁은 화면에서 스퀴즈 모멘텀의 `-2,908,476` 이 `-2,90` / `8,476` 두 줄로 쪼개졌습니다. 자릿수 한가운데서 끊긴 숫자는 두 개의 다른 숫자로 읽힙니다 - 말줄임과 달리 「이어진다」는 표시조차 없어 더 나쁩니다.
  • 이제 값은 한 줄에 고정하고, 좁으면 제목이 먼저 양보합니다. 제목은 줄어도 뜻이 남지만 숫자는 그렇지 않습니다.
  • 보통 글씨 크기의 지표 머리줄은 한 화소도 바뀌지 않았습니다 - 그림으로 대조해 확인했습니다.
  • 화면 기준선 셋을 더 세웠습니다(지표 차트 묶음·코인 비교·칩 줄). 비교 절은 이상이 없었고, 나머지 둘에서 위 결함이 나왔습니다.
  • 이번에 배운 것 하나를 적어 둡니다. 화면 기준선은 「달라졌는가」를 지키는 장치이지 「옳은가」를 지키는 장치가 아닙니다. 칩이 화면 밖으로 나간 그림이 기준선으로 들어가 있었고, 검사는 그 틀린 모습을 충실히 지키고 있었습니다. 사람이 한 번 눈으로 보기 전에는 알 수 없습니다.
  • 내부 검증 1177건 · 화면 기준선 206장. versionCode 316.
v3.2.32026-07-29
글씨를 키우셔도 「상승 스윙」이 세로로 부서지지 않습니다
  • 피보나치 되돌림 제목 옆의 곁말이, 글씨를 크게 쓰시는 좁은 화면에서 한 글자씩 세로로 쌓이고 있었습니다. 영어에서 `Uptrend swing` 이 `Upt / re / nd / sw / ing` 이 됐습니다. 글자는 다 있는데 읽을 수가 없습니다.
  • 이런 고장은 잘린 것도 감춰진 것도 아니라서 어떤 검사도 위반이라 부르지 않습니다. 한국어(「상승 스윙」)로 보면 짧아서 멀쩡해 보이기까지 합니다. 그림으로 세워 보기 전에는 알 수 없습니다.
  • 이제 곁말이 제 줄을 받습니다. 이 앱이 위젯 머리글·코인 줄·공포지수·뉴스 줄·손익 줄에서 이미 쓰던 방식과 같습니다 - 감추지 말고 줄을 늘린다.
  • 화면 기준선 셋을 새로 세웠습니다. 절전 안내(「알림이 안 온다」에서 들어오는 화면), 무효화 줄, 피보나치 표 - 셋 다 기본 글씨 크기에서만 확인되고 있었습니다. 절전 안내와 무효화 줄은 확인 결과 이상이 없었고, 피보나치에서 위 결함이 나왔습니다.
  • 오늘 찾은 세 결함(뉴스 출처 `Co…`, 손익 금액 잘림, 곁말 부서짐)은 원인이 같습니다. 한 줄에 둘을 나란히 두면 앞의 것이 폭을 먼저 가져가고 뒤엣것이 남는 것으로 버팁니다. 그 자리들을 한 검사로 묶어 다시 생기지 않게 했습니다.
  • 내부 검증 1174건 · 화면 기준선 203장. versionCode 315.
v3.2.22026-07-29
글씨를 키우셔도 손익 금액이 잘리지 않습니다
  • 자금 요약 카드에서 손익 금액이 잘리고 있었습니다. 글씨를 크게 쓰시는 분의 좁은 화면에서 `+₩84,500,000…` 처럼 뒷자리가 사라졌습니다. 잘린 금액은 다른 금액으로 읽힙니다 - 8,450만 원인지 845억 원인지 구분할 수 없습니다.
  • 「돈은 잘리지 않는다」는 이 앱이 지켜 온 규칙이고 검사도 있었습니다. 그런데 그 검사는 「말줄임으로 자르지 마라」만 보았지, 자동 축소가 하한(9~10pt)에 닿은 뒤에는 결국 잘린다는 것까지는 묻지 않았습니다. 규칙은 있었는데 그림으로 한 번도 확인하지 않았던 것입니다.
  • 원인은 양보 순서가 거꾸로였다는 것입니다. 라벨이 먼저 자리를 잡고 금액이 남은 폭을 받고 있었습니다. 이 화면의 결론은 금액인데 말입니다.
  • 라벨이 먼저 양보하도록 뒤집고, 그래도 한 줄에 안 들어가면 줄을 늘립니다. 뒤집기만 했을 때는 이번엔 라벨이 「…」 하나로 줄어, 그 금액이 실현손익인지 합계인지 알 수 없는 화면이 됐습니다 - 잘린 금액만큼이나 못 쓸 화면입니다.
  • 손익률 줄도 같습니다. `+51.59% (+₩681,000,000,000)` 은 한 줄에 담기지 않아 금액이 잘렸는데, 이제 수익률과 금액이 각자 줄을 갖습니다.
  • 보통 글씨 크기에서는 한 픽셀도 바뀌지 않았습니다 - 기준선으로 확인했습니다.
  • 찾은 방법도 적어 둡니다. 화면 기준선 200장을 (글씨 배율 × 테마 × 언어)로 교차표를 세워 빈 칸을 찾았습니다. 요약 카드는 기준선이 넷 있었는데 전부 기본 배율이었습니다. 돈을 적는 카드가 가장 자주 깨지는 축에서 한 번도 검사받지 않고 있었습니다.
  • 내부 검증 1170건 · 화면 기준선 200장. versionCode 314.
v3.2.12026-07-29
글씨를 키우셔도 뉴스 출처가 「Co…」로 줄지 않습니다
  • 글씨 크기를 크게 쓰시는 분의 좁은 화면에서, 외국 기사 줄의 출처가 「Co…」 까지 줄어 있었습니다. 두 글자로는 어디서 온 기사인지 알 수 없습니다.
  • 뉴스에서 출처는 신뢰의 근거입니다. 이 앱이 광고도 로그인도 없이 지키려는 것이 바로 그 신뢰인데, 정작 그 근거만 조용히 지워지고 있었습니다.
  • 이제 「번역해서 보기」 버튼이 붙는 줄은 줄을 하나 늘려 출처·분류·시각을 온전히 보여 드립니다. 감추거나 줄이지 않습니다 - 이 앱이 위젯 머리글·코인 줄·공포지수에서 이미 쓰던 방식과 같습니다.
  • 그동안 함께 사라졌던 분류(예: Markets) 도 다시 보입니다.
  • 별만 있는 줄은 그대로 둡니다. 재 보니 여유 있게 들어가는데, 필요 없이 줄을 늘리면 한 화면에 담기는 기사가 줄어 그것대로 손해입니다.
  • 「글씨가 크다」고 볼 기준을 앱과 위젯이 같은 곳에서 읽도록 모았습니다. 두 곳에 적힌 기준은 반드시 한쪽만 바뀝니다.
  • 담아 둔 별(★)이 켜진 모습을 큰 글씨 화면 기준선에도 넣었습니다. 그동안 보통 크기에서만 확인하고 있었는데, 이 앱에서 가장 자주 깨지는 축이 「큰 글씨 × 좁은 폭」입니다. 이번 결함도 정확히 그 자리에서 나왔습니다.
  • 내부 검증 1168건 · 화면 기준선 199장. versionCode 313.
v3.2.02026-07-29
「망치형」이 흔한 일인지 드문 일인지 알려 드립니다
  • 캔들 모양을 읽어 「망치형」이라고 알려 드리고 있었습니다. 그런데 캔들을 처음 보시는 분께 그 이름은 아무 크기도 갖지 않습니다 - 열흘에 한 번 있는 일인지 매일 있는 일인지 알 수 없기 때문입니다.
  • 같은 「망치형」이라도 200봉에 세 번이면 눈여겨볼 만하고, 마흔 번이면 그냥 그 종목이 늘 그렇게 생긴 것입니다. 이제 최근 몇 봉에서 몇 번 나온 모양인지 함께 적습니다.
  • 「이 종목에서는 드문 모양입니다」 / 「이따금 나옵니다」 / 「자주 이렇게 생깁니다」로 뜻도 풀어 드립니다. 흔한 모양이면 한 번 더 나왔다고 새로운 소식이 아니라고 분명히 적습니다.
  • 드물다고 더 잘 맞는다는 뜻이 아닙니다. 초보자가 가장 하기 쉬운 오독이라, 그 문장을 안내에 직접 넣었습니다. 드문 것은 「늘 있는 일은 아니다」라는 뜻일 뿐입니다.
  • 세는 방식은 화면이 부르는 이름과 똑같은 조건입니다. 모양만 세면 「오르는 중의 망치」까지 섞이는데, 그건 이 앱이 망치형이라고 부르지 않는 봉입니다. 봉마다 같은 판정을 다시 돌려서 셉니다.
  • 앞으로 어떻게 될지는 한 글자도 말하지 않습니다. 세어 놓은 사실만 드립니다.
  • 자료가 60봉보다 짧으면 아무 말도 하지 않습니다. 세 번 중 한 번은 33%가 아닙니다.
  • 새 시세는 받지 않습니다 - 차트에 이미 있는 봉으로만 셉니다.
  • 내부 검증 1166건 · 화면 기준선 199장. versionCode 312.
v3.1.22026-07-29
화면을 못 보셔도 무엇이 일어날지 알 수 있습니다
  • 화면 읽기(TalkBack)를 쓰시는 분께, 이 앱은 카드나 줄을 통째로 누르게 만든 자리에서 「두 번 탭하여 활성화」라고만 말했습니다. 무엇이 활성화되는지는 말하지 않았습니다.
  • 뉴스 카드가 그 차이를 잘 보여 줍니다. 카드 안에는 기사 제목 몇 개가 들어 있는데, 카드를 누르면 뉴스 목록이 열립니다. 제목을 방금 들으신 분은 당연히 그 기사가 열릴 거라고 생각하십니다 - 이건 불편이 아니라 틀린 안내입니다.
  • 그런 자리 아홉 곳에 무엇이 일어나는지를 붙였습니다. 코인 행(상세 보기), 뉴스 카드 (목록 열기 / 출처 선택), 뉴스 기사(브라우저에서 열기), 시장 개요(도미넌스 자세히 보기), 종목 추가, 계산기 열기, 다시 불러오기, 절전 해결 방법 - 다섯 언어 모두 넣었습니다.
  • 반대로 줄에 적힌 글자가 곧 그 동작인 자리(설정의 이동 줄, 링크 줄)에는 이름을 또 붙이지 않았습니다. 그러면 같은 말을 두 번 읽게 됩니다. 「누를 수 있다」만 알립니다.
  • 구간 선택(1시간·1일·1주…)에서 고른 칸을 색으로만 알리고 있었습니다. 「1시간」이라고 읽어 주긴 했지만 그게 지금 골라진 것인지는 아무도 말하지 않아서, 화면을 못 보시면 어느 구간을 보고 있는지 알 수 없었습니다. 이제 「선택됨」을 함께 알립니다.
  • 색만으로 뜻을 나르지 않는 것은 이 앱이 등락 표시에서 이미 지키던 규칙입니다(색과 함께 `+`/`-` 부호를 글자로 냅니다). 같은 규칙이 구간 선택에만 빠져 있었습니다.
  • 보이는 화면은 한 픽셀도 바뀌지 않았습니다 - 기준선 199장이 그대로인 것으로 확인했습니다.
  • 내부 검증 1160건 · 화면 기준선 199장. versionCode 311.
v3.1.12026-07-29
정리를 막고 있던 검사들을 고쳤습니다
  • 앱 동작은 이번 판에서 바뀌지 않았습니다. 다음 판을 안전하게 만들기 위한 정리입니다.
  • 이 앱의 검사 1,150여 건 중 일부는 소스 코드를 글자로 훑어 규칙을 지킵니다. 그런데 그중 일곱 개가 특정 파일 이름에 매달려 있었습니다. 그 파일이 1,290줄까지 자라 한 번 쪼갰을 때, 규칙은 하나도 안 바뀌었는데 검사 셋이 엉뚱한 이유로 무너졌습니다.
  • 그러면 고치기 싫어서 파일을 안 쪼개게 됩니다. 검사가 정리를 막는 쪽으로 작용하는 것입니다. 일곱 개 모두 파일이 아니라 폴더를 훑도록 바꿨습니다.
  • 그리고 실제로 쪼개서 확인했습니다. 근거 줄 다섯(장세·무효화·다중시간대·거래량·가격구조)을 별도 파일로 떼어 냈는데, 이번에는 깨진 검사가 하나도 없었습니다. 화면 기준선 199장도 한 장도 달라지지 않았습니다 - 코드가 옮겨졌을 뿐 화면은 그대로라는 뜻입니다.
  • 검사 30곳에 똑같이 복사돼 있던 「소스 폴더 찾기」를 한 곳으로 모았습니다. 그중 넷은 다른 넷과 미묘하게 달라서, 실행 위치가 바뀌면 그 넷만 깨질 상태였습니다.
  • 순서를 보는 검사 둘에는 「그 호출이 한 번만 나온다」는 확인을 더했습니다. 폴더를 통째로 이어 붙여 보게 되었으니, 같은 호출이 두 곳에 있으면 순서 비교가 통과하든 실패하든 근거를 잃습니다.
  • 내부 검증 1156건 · 화면 기준선 199장. versionCode 310.
v3.1.02026-07-29
위젯도 앱과 같은 테마를 입습니다
  • 위젯은 그동안 테마와 상관없이 늘 어두운 남색 카드였습니다. 배경화면 위에 얹히는 물건이라 그것대로 읽히기는 했지만, 앱을 밝게 써 오신 분의 홈 화면에는 이 앱만 검게 남았습니다. 설정에 「밝게」라고 적어 두었는데 안 지켜지는 자리가 하나 있었던 셈입니다.
  • 이제 위젯이 앱의 테마 설정을 그대로 따릅니다. 「시스템 설정 따름」이면 기기의 야간 모드를 따라갑니다 - 앱 화면과 같은 판단이라, 앱은 밝은데 위젯만 어두운 일이 없습니다.
  • 밝은 위젯에는 밝은 배경용 색을 따로 골랐습니다. 어두운 배경에서 또렷하라고 고른 파스텔은 흰 배경에서 거의 안 보입니다 - 특히 공포·탐욕 중립의 노랑은 대비가 1.2:1 정도라 사실상 「없는 글자」가 됩니다. 본문·보조·강조·상승·하락·공포탐욕 5단계까지 열두 가지 색 전부 밝은 배경에서 4.5:1 이상을 넘는지 숫자로 확인했습니다.
  • 공포·탐욕 5단계는 색이 뜻을 나르는 자리라, 빨강→초록으로 넘어가는 자리가 어두운 벌과 밝은 벌에서 같은 단계인지도 함께 고정했습니다. 테마를 바꿔도 같은 지수가 같은 인상으로 보여야 합니다.
  • 갱신에 실패해 마지막 값을 되살릴 때 테마는 되살리지 않습니다. 옛 시세는 뜻이 있지만 옛 테마는 아무 뜻이 없습니다 - 그대로 뒀다면 설정을 밝게 바꾼 뒤 갱신이 한 번 실패하는 순간 어두운 위젯이 돌아왔을 겁니다.
  • 위젯은 Glance 라 화면 기준선(스크린샷)이 닿지 않습니다. 색 대비는 위와 같이 숫자로 고정했지만 실기기에 얹은 모습은 아직 확인하지 못했습니다.
  • 내부 검증 1156건 · 화면 기준선 199장. versionCode 309.
v3.0.92026-07-29
알림이 왜 안 오는지 앱이 먼저 말합니다
  • 안드로이드에서 「알림이 안 온다」는 대부분 기기의 절전 설정이 앱을 재우기 때문입니다. 이 앱은 그 해결 방법 안내를 이미 갖고 있었지만, 설정 안쪽에 가만히 있었습니다. 알림이 안 와서 답답한 분이 그게 있는 줄 알기는 어렵습니다.
  • 이제 앱이 백그라운드 확인이 실제로 돌고 있는지 기록합니다. 한참 멈춰 있으면 알림 화면에 「백그라운드 확인이 N시간째 돌지 않았습니다」라고 몇 시간째인지 숫자로 알려 드리고, 해결 방법으로 바로 갑니다.
  • 잘 돌고 있으면 아무 말도 하지 않습니다. 켜자마자 「절전 설정을 확인하세요」를 띄우는 것은 잔소리입니다 - 대부분의 기기는 멀쩡히 돌고, 문제 없는 분께 문제를 암시하면 없는 문제를 고치려고 설정을 헤매게 됩니다. 근거가 있을 때만 말합니다.
  • 안 도는 기준을 세 시간으로 넉넉히 잡았습니다. 화면이 꺼져 있으면 안드로이드가 작업을 뭉쳐서 미루기 때문에(정상 동작), 밤새 안 만진 폰이 두 시간쯤 건너뛰는 것은 고장이 아닙니다. 진짜로 막는 절전 정책은 세 시간이 아니라 영영 안 돌게 만들기 때문에 넉넉히 잡아도 잡을 것은 잡힙니다.
  • 안내 카드가 뜨면 그 위의 「알림이 늦거나 오지 않나요?」 줄은 감춥니다. 같은 곳으로 가는 링크가 둘 겹치면 근거 있는 쪽이 오히려 흐려집니다.
  • 내부 검증 1142건 · 화면 기준선 199장. versionCode 308.
v3.0.82026-07-29
앱을 보고 있는 동안에는 알림이 빨리 옵니다
  • 가격·김프 알림은 최대 15분까지 늦게 올 수 있었습니다. 안드로이드가 배터리를 위해 주기 작업을 15분보다 자주 돌리지 못하게 막아 두었기 때문입니다. 더 빠르게 하려면 화면을 끈 동안에도 계속 도는 서비스가 필요한데, 그건 이 앱이 드린 「배터리를 쓰지 않는다」는 약속과 반대라서 하지 않았습니다.
  • 그런데 앱을 열어 두고 있을 때는 사정이 다릅니다. 그때는 앱이 이미 몇 초마다 시세를 받고 있습니다. 그 값이 정해 두신 기준을 넘으면 다음 주기를 기다리지 않고 바로 확인합니다. 시세를 더 받는 것이 아니라 이미 받은 값을 한 번 더 보는 것이라 배터리를 더 쓰지 않습니다.
  • 알림을 낼지 말지는 여전히 한 곳에서만 정합니다. 화면과 백그라운드가 각자 알림을 내면 같은 알림이 두 번 가거나, 「이미 울렸다」는 기록이 서로 덮여 영영 안 울리게 됩니다. 화면은 「지금 봐 달라」고 깨우기만 합니다.
  • 기준을 넘어선 상태는 몇 분씩 이어지므로, 깨우는 것은 1분에 한 번까지입니다. 배터리를 아끼려고 15분을 받아들인 마당에 매초 깨우면 앞뒤가 맞지 않습니다.
  • 급등락·기술적 신호 알림은 기준가와 캔들이 있어야 판정할 수 있어 예전처럼 백그라운드가 맡습니다. 이 판에서 달라지는 것은 가격·김프 알림입니다.
  • 내부 검증 1128건 · 화면 기준선 198장. versionCode 307.
v3.0.72026-07-29
「망이 끊겨도 빈 화면이 아니다」를 지키는 장치
  • 이 앱이 경쟁 앱과 갈리는 지점 하나가 연결이 끊겼을 때 빈 화면 대신 마지막 값을 보여 준다는 것입니다. 그 약속을 지키는 규칙은 한 줄입니다 - 「실패한 응답으로 좋은 값을 덮지 않는다」.
  • 그 규칙을 확인하는 검사가 지금 있는 저장소 두 개만 알고 있었습니다. 세 번째가 생기면 아무도 모르게 그 약속 밖에 놓입니다. 이제 저장소가 늘면 검사가 먼저 멈추고, 「이것도 캐시를 지키는가」를 정하게 합니다.
  • 검사 전체(69개)의 훑는 범위를 한 번에 점검했습니다. 파일 이름에 매달린 것이 하나뿐이고 나머지는 폴더 단위로 봅니다. 뉴스 링크를 여는 자리처럼 바깥에서 들어온 값을 다루는 경계도 검사가 붙어 있는 것을 확인했습니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1121건 · 화면 기준선 198장. versionCode 306.
v3.0.62026-07-29
담아 둔 개수가 별 옆에 보입니다
  • 뉴스 화면의 ★ 옆에 담아 둔 개수가 붙습니다. 들어가 보지 않고도 담아 둔 것이 있는지 알 수 있습니다. 0이면 숫자를 붙이지 않습니다 - 「0」은 알려 주는 것이 없는데 자리만 차지하고, 비어 있다는 것을 굳이 강조하게 됩니다.
  • 스크랩을 만들면서 쓰지도 않을 조회 두 개를 남겨 뒀던 것을 찾아 지웠습니다. 개수는 이미 화면이 갖고 있는 목록의 크기라서, 따로 물어볼 필요가 없었습니다.
  • 시세 차트를 다시 받을지 정하는 판단이 두 곳에 똑같이 적혀 있었습니다. 한쪽만 고치면 「검사는 통과하는데 앱은 다르게 도는」 상태가 됩니다. 검사가 붙어 있는 쪽을 살리고 나머지는 그것을 부르게 했습니다.
  • 「만들어 놓고 안 쓰는 것」을 잡는 검사의 범위를 넓혔습니다. 계산은 저장소 쪽에도 있는데 그동안 분석 쪽만 보고 있었습니다. 넓히자마자 위의 셋이 나왔습니다.
  • 앱 동작(계산 결과)은 바뀌지 않았습니다.
  • 내부 검증 1120건 · 화면 기준선 198장. versionCode 305.
v3.0.52026-07-29
업데이트에서 제가 만든 구멍 두 개를 막았습니다

지난 판에서 다운로드를 직접 받도록 바꿨습니다. 그 코드를 다시 읽어 보니 **두 가지가

빠져 있었습니다.**

  • 잠금이 영영 걸릴 수 있었습니다. 다운로드는 「한 번에 하나」로 묶여 있는데, 파일 이름 바꾸기나 설치 호출이 예외를 던지면 그 잠금이 풀리지 않았습니다. 그러면 사용자가 「지금 업데이트」를 눌러도 아무 일도 일어나지 않고, 앱을 껐다 켜기 전에는 되돌릴 방법이 없습니다. 실패보다 나쁜 것은 아무 반응이 없는 상태입니다. 이제 어느 경로로 끝나든 잠금이 풀립니다.
  • 주소 이동(리다이렉트)을 그냥 따라가고 있었습니다. 허용된 주소인지는 처음 한 번만 확인하고, 그 뒤로 어디로 가든 앱은 몰랐습니다. 받은 파일이 다르면 검증에서 걸리니 엉뚱한 앱이 설치될 수는 없었지만, 「어디에 접속하는가」는 그것과 별개의 약속입니다. 이 앱은 접속하는 곳을 전부 밝히고 있고, 그 목록 밖으로 나가면 안 됩니다. 이제 이동할 때마다 확인하고, 무한히 돌지 않도록 걸음 수도 셉니다.
  • 앱 동작(사용자가 보는 화면)은 바뀌지 않았습니다.
  • 내부 검증 1120건 · 화면 기준선 198장. versionCode 304.
v3.0.42026-07-29
정리 3단계(앱 동작은 바뀌지 않았습니다)
  • 프리뷰가 함께 쓰는 표본 자료를 따로 뒀습니다. 화면을 그리는 코드와 「무엇을 그릴 것인가」는 바뀌는 이유가 다릅니다 - 표본은 새 사례를 담으려고 늘고(네 자리 퍼센트 코인, 조 단위 보유, 되풀이해 닿은 레벨), 프리뷰는 새 축을 확인하려고 늡니다 (큰 글씨·다른 언어·밝은 테마).
  • 표본에는 시각이 박혀 있습니다. 흐르는 시계를 쓰면 「12초 전」이 그릴 때마다 달라져 기준선이 매번 어긋납니다 - 그 규약이 한곳에 모여 있어야 다음에 표본을 더할 때 같은 방식을 따르게 됩니다.
  • 표본은 프리뷰가 아니라서 기준선 경로가 하나도 바뀌지 않았고, 200장 그대로입니다.
  • 세 판에 걸친 정리로 가장 긴 두 파일이 1,290 → 1,057줄, 3,475 → 3,155줄이 됐습니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1118건 · 화면 기준선 198장. versionCode 303.
v3.0.32026-07-29
정리 2단계(앱 동작은 바뀌지 않았습니다)
  • 프리뷰 파일이 3,475줄이었습니다. 그중 위젯 거울 구역은 성격이 뚜렷이 다릅니다 - 다른 프리뷰는 앱 화면을 그대로 그리는데, 이것은 그릴 수 없는 것(위젯)을 재려고 같은 치수를 손으로 세운 모형입니다. 따로 뒀습니다.
  • 화소가 한 점도 바뀌지 않았다는 것을 확인했습니다. 옮기기 전 200장의 내용 해시를 떠 두고 옮긴 뒤 대조했더니, 이름도 내용도 전부 같고 17장만 새 자리로 갔습니다.
  • 옮기면서 검사 하나가 또 「엉뚱한 이유로」 깨졌습니다. 이번 주에만 세 번째입니다 - 규칙은 그대로인데 파일 이름을 집고 있었기 때문입니다. 셋 다 디렉터리 전체를 보도록 고쳤습니다. 파일 이름에 매달린 검사는 정리를 막는 쪽으로 작용합니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1118건 · 화면 기준선 198장. versionCode 302.
v3.0.22026-07-29
확인하지 않았던 조합 두 개를 채웠습니다
  • 화면 기준선을 (글씨 크기 × 언어 × 테마) 조합으로 세어 봤더니, 각 축은 잘 덮여 있는데 겹치는 자리가 비어 있었습니다. 큰 글씨 48장, 밝은 테마 44장인데 둘 다인 것은 없었습니다.
  • 채워서 확인한 결과 밝은 테마 + 큰 글씨는 깨끗했습니다. 넘치는 곳도, 읽기 어려운 곳도 없었습니다. 이제 그 상태가 기준선으로 굳었으니, 다음 변경이 이 조합을 깨뜨리면 잡힙니다.
  • 결함이 안 나온 확인도 값이 있습니다. 「확인해 보니 괜찮았다」와 「확인한 적이 없다」는 전혀 다른 상태입니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1118건 · 화면 기준선 198장. versionCode 301.
v3.0.12026-07-29
정리(앱 동작은 바뀌지 않았습니다)
  • 분석 화면 코드가 한 파일에 1,290줄이었습니다. 화면 배치·판독 계산·문구 매핑이 섞여 있었는데, 셋은 서로 다른 이유로 바뀝니다 - 배치는 폭과 글꼴 때문에, 판독은 규칙 때문에, 문구는 번역과 표현 때문에. 한 파일에 두면 어느 것을 고치러 와도 나머지 둘을 지나쳐야 하고, 파일이 길수록 그 값이 커집니다.
  • 세 자리로 나눴습니다: 문구 매핑 · 가격의 「자리」를 말하는 절들(지지·저항, 피보나치) · 나머지. 1,290줄 → 1,057줄입니다.
  • 동작이 그대로라는 증명: 화면 기준선 198장이 한 장도 바뀌지 않았습니다. 옮기기만 하고 아무것도 고치지 않았다는 뜻입니다.
  • 옮기면서 검사 두 개가 «엉뚱한 이유로» 깨졌습니다 - 규칙은 그대로인데 파일 이름을 집고 있었기 때문입니다. 이제 파일이 아니라 그 패키지 전체를 봅니다. 파일 이름에 매달린 검사는 정리를 막는 쪽으로 작용합니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1118건 · 화면 기준선 196장. versionCode 300.
v3.0.02026-07-29
「어디부터 봐야 하나」에 답합니다
  • 분석 화면은 이미 결론 → 그 근거 → 언제 그 말을 거둬야 하는지 순서로 놓여 있었습니다. 그런데 그 순서를 아무 데서도 말하지 않았습니다. 초보자에게는 여덟 개의 절이 평평하게 보여서 어디부터 봐야 할지 알 수 없었습니다.
  • 이제 맨 위에 한 줄로 알려 드립니다. 절을 더하지 않고 이미 있는 순서를 읽히게 했습니다 - 기능을 더할수록 화면이 어수선해지는 것이 경쟁 앱들이 가장 많이 지적받는 실패 방식입니다.
  • 「급하시면 맨 위 한 줄만」이라고 덧붙였습니다. 전부 읽어야 한다고 느끼면 아예 안 읽습니다. 이번 판으로 기술적 분석 개선 네 가지가 모두 들어갔습니다: ① 지표마다 「이 숫자가 무엇을 견준 결과인지」 (v2.97.0) ② 지지·저항을 차트 위에 직접 그리기 (v2.98.0) ③ 「몇 번 닿았는지」로 그 선의 힘을 말하기 (v2.94.0) ④ 자료가 적으면 「신뢰도 높음」이라고 말하지 않기 (v2.95.0)
  • 내부 검증 1118건 · 화면 기준선 196장. versionCode 299.
v2.99.02026-07-29
업데이트가 몇 %인지 말하고, 끊겨도 이어받습니다
  • 지금까지 업데이트는 안드로이드의 다운로드 관리자에 맡기고 끝이었습니다. 앱이 아는 것은 「시작했다」와 「끝났다/실패했다」뿐이라, 3MB를 받는 동안 화면에는 아무 변화가 없었고 지하철에서 연결이 끊기면 처음부터 다시 받았습니다.
  • 이제 직접 받습니다:
  • 진행률 — 배너 안에 막대와 퍼센트가 나옵니다. 서버가 크기를 안 알려 주면 퍼센트 대신 받은 양을 보여 줍니다(모르는 것을 0%나 100%로 꾸미지 않습니다).
  • 이어받기 — 끊긴 지점부터 이어 받습니다. 실패해도 받다 만 부분을 지우지 않아서, 다시 누르면 거기서부터 계속됩니다.
  • 재시도 — 1초에서 시작해 두 배씩, 8초에서 멈춥니다. 상한이 없으면 다시 연결된 뒤에도 한참 기다리게 되고, 사용자는 그 침묵을 「멈췄다」로 읽습니다.
  • 다시 붙는 중일 때는 그렇다고 말합니다(「연결이 끊겨 이어받는 중 (3번째 시도)」). 이 줄이 없으면 진행이 멈춘 것과 구분되지 않습니다.
  • 크기를 모르면 이어받지 않습니다. 이어 붙이면 엉뚱한 지점부터 붙어 파일이 깨집니다. 시간이 아까운 것보다 깨진 파일을 설치하는 것이 훨씬 나쁩니다.
  • 다른 판의 조각이 남아 있으면 버립니다. 이어 붙이면 두 판이 섞인 파일이 됩니다.
  • 설치 전 무결성 확인 단계를 화면에 드러냈습니다(「내려받은 파일을 확인하는 중」). 검증에 실패한 파일은 지웁니다 — 남겨 두면 다음에 이어받기로 되살아납니다.
  • 내부 검증 1117건 · 화면 기준선 196장. versionCode 298.
v2.98.02026-07-29
글로 말하던 지지·저항을 차트 위에 긋습니다
  • 화면은 「저항 ₩98,000,000 · 3번 닿음」이라고 글로 말하면서, 정작 차트에서는 그 값을 한 번도 보여 주지 않았습니다. 초보자는 글이 아니라 그림에서 배웁니다.
  • 이제 지지·저항이 차트 위에 가로선으로 그려집니다. 기본으로 켜져 있습니다 - 판독이 실제로 근거로 삼는 값이라 차트를 열었을 때 가장 먼저 보여야 할 것입니다.
  • 선의 값은 아래 글과 같은 곳에서 옵니다. 따로 계산하면 언젠가 차트의 선과 문장이 다른 값을 가리키게 됩니다.
  • 차트 도구의 「S/R」 버튼이 실제로는 대각선 추세선을 켜고 있었습니다. 이름과 그림이 달랐던 것입니다. 이제 「S/R」은 지지·저항선을, 「TL」은 추세선을 켭니다. 이름과 그림이 다르면 앱이 말하는 다른 것도 의심하게 됩니다.
  • 선은 가격선보다 옅게 그립니다. 이 선은 「어디서 되밀렸나」를 알려 주는 배경이지 가격 자체가 아니라서, 진하게 그리면 정작 읽어야 할 움직임을 가립니다.
  • 내부 검증 1105건 · 화면 기준선 195장. versionCode 297.
v2.97.02026-07-29
「그래서 그 숫자는 무엇을 비교한 것인가」
  • 지금까지 앱에는 두 가지가 있었습니다. 지표가 무엇인지 설명하는 학습 글(63개)과, 지금 상태를 한 줄로 말하는 판독("강세 구간에 위치")입니다. 그런데 그 사이가 비어 있었습니다 — 왜 62.4인지를 말하는 곳이 없었습니다.
  • 초보자가 막히는 자리가 정확히 거기입니다. 일반론은 읽었고 결론도 들었는데, 이 코인의 이 숫자가 어디서 나왔는지를 모르니 다음에 혼자 볼 때 남는 것이 없습니다. 결론을 외우게 될 뿐입니다.
  • 이제 지표를 눌러 열면 계산이 실제로 견준 두 값을 그대로 보여 줍니다: 「최근 14봉에서 오른 날의 평균 상승폭 1.82%, 내린 날의 평균 하락폭 1.13% — 오른 쪽이 1.6배 큽니다.」
  • 지어내는 말이 아니라 계산 과정을 꺼내 놓은 것이라, 「앱이 그렇다니까」가 아니라 직접 세어서 확인할 수 있는 근거가 됩니다.
  • 다섯 지표에 붙였습니다 — RSI(오른 폭 대 내린 폭) · 이동평균(평균에서 몇 % 떨어져 있나) · MACD(두 평균의 간격이 벌어지는 중인지 좁아지는 중인지) · ADX(힘이 얼마이고, 이 값은 방향을 말하지 않는다는 것) · 거래량(평소의 몇 배인가).
  • 자료가 모자라면 아무 말도 하지 않습니다. 없는 근거를 만드는 것이 가장 나쁩니다.
  • 내부 검증 1105건 · 화면 기준선 194장. versionCode 296.
v2.96.02026-07-29
뉴스를 담아 두고 다시 볼 수 있습니다
  • 기사 오른쪽의 를 누르면 담깁니다. 뉴스 화면 오른쪽 위의 ★ 로 담아 둔 목록을 봅니다. 담는 곳과 보는 곳이 같은 화면에 있습니다 - 설정 어딘가에 두면 담아 놓고 못 찾습니다.
  • 담아 둔 기사는 앱을 업데이트해도 사라지지 않습니다. 시세·차트 같은 캐시는 갱신 때 비우지만, 담은 것은 사람이 고른 것이라 그렇게 다루지 않습니다.
  • 제목·출처·발행시각을 함께 복사해 둡니다. 링크만 저장하면 뉴스 보관함이 정리될 때 담아 둔 기사가 «제목 없는 링크»가 됩니다 - 그러면 담지 않은 것과 같습니다.
  • 목록은 담은 순입니다. 발행순으로 두면 방금 담은 오래된 기사가 아래로 사라집니다. 같은 기사를 다시 담아도 순서가 튀지 않습니다.
  • 저장이 안 되는 상황에서는 «담았다»고 말하지 않습니다. 담았다고 해 놓고 사라지는 것이 가장 나쁩니다 - 그 기사를 다시 찾을 방법이 없으니까요.
  • 아직 담은 것이 없으면 어떻게 담는지를 알려 줍니다. 빈 화면에 "없습니다"만 있으면 고장인지 안 한 것인지 알 수 없습니다.
  • 내부 검증 1094건 · 화면 기준선 194장. versionCode 295.
v2.95.02026-07-29
자료가 적을 때 «신뢰도 높음»이라고 말하지 않습니다
  • 종합 판독 옆의 «신뢰도»는 몇 개 지표가 같은 쪽을 보는지로 정했습니다. 그런데 갓 상장한 코인은 계산되는 지표 자체가 적습니다 - 셋이 전부 같은 방향이면 «신뢰도 높음»이 붙었습니다. 여덟 중 여섯이 동의한 것과 셋 중 셋이 같은 말을 하고 있었던 것입니다.
  • 사람이라면 "자료가 얼마 없어서 확실치 않다"고 말합니다. 앱이 그 말을 못 하면 가장 모르는 상황에서 가장 자신 있게 말하게 됩니다.
  • 이제 방향을 낸 지표가 다섯 개 미만이면 «높음»을 주지 않고, 왜 그런지도 함께 적습니다("판단에 쓴 지표가 3개뿐입니다 — 자료가 쌓이면 달라질 수 있습니다").
  • 판정을 «낮음»으로 내리지는 않습니다. 그건 "틀렸을 것 같다"는 뜻이 되는데 사실은 "아직 모른다"입니다. 방향은 그대로 두고 말의 세기만 한 칸 낮춥니다.
  • 이 판정이 화면 코드 안에 있어서 시험할 수 없었고, 그래서 빠진 조건을 아무도 못 봤습니다. 이제 따로 떼어 내 어떤 조합에서도 규칙이 지켜지는지 전수로 확인합니다.
  • 내부 검증 1086건 · 화면 기준선 190장. versionCode 294.
v2.94.02026-07-29
지지·저항이 «몇 번 닿았는지»를 말합니다
  • 지지·저항 선은 스윙 고·저점을 모아 가까운 것끼리 묶어 만듭니다. 그런데 묶고 나서 묶인 개수를 버리고 있었습니다. 그래서 다섯 번 되밀린 벽과 한 번 스친 꼬리가 화면에서 똑같이 «저항 ₩98,000,000»으로 보였습니다 - 그 선을 믿을지 말지 정하는 바로 그 정보가 계산 도중에 사라지고 있었던 것입니다.
  • 이제 «3번 닿음»처럼 함께 적습니다. 세는 것이라 지어낼 여지가 없습니다 - 판단을 더하는 대신 사실을 하나 더 드리는 쪽입니다.
  • 한 번뿐이면 적지 않습니다. «1번 닿음»은 알려 주는 것이 없는데, 세었다는 사실 때문에 근거처럼 보입니다. 두 번부터가 «되풀이»입니다.
  • 만들면서 한 번 틀렸습니다. 값이 평평하게 이어지는 구간에서는 봉마다 저점이 잡혀 «11번 닿음»이 나왔는데, 그건 열한 번 되밀린 벽이 아니라 한 번 머문 자리입니다. 붙어 있는 것은 같은 방문으로 셉니다 - 사람이 차트에서 세는 방식과 같게.
  • 가격 자체는 예전과 한 글자도 다르지 않습니다. 기능을 더하면서 기존 값이 조용히 달라지면 그건 더한 것이 아니라 바꾼 것이니까요.
  • 내부 검증 1078건 · 화면 기준선 190장. versionCode 293.
v2.93.02026-07-29
위젯은 이 계열에서 깨끗했습니다
  • 최근 판들에서 «자리가 모자라면 무엇부터 내려놓는가» 문제를 화면 네 곳에서 찾아 고쳤습니다. 마지막 남은 표시 자리인 위젯도 같은 압박에 걸어 봤습니다.
  • 위젯은 글씨가 1.2배를 넘으면 고정 폭 칸이 하나도 없는 두 줄 배치로 바꿉니다. 문제는 그 바로 아래 — 안드로이드의 실제 글꼴 설정에 있는 1.15배입니다. 이때는 고정 폭 칸이 있는 한 줄 배치가 그대로 쓰이는데, 그 조합의 폭을 훑어 본 적이 없었습니다.
  • 훑어 보니 깨끗했습니다. 가장 좁은 위젯(250dp)부터 340dp까지 전부 한 줄에 들어가고, 가격·등락률·김프 어느 것도 접히지 않습니다. 새 기준선이 그 상태를 지킵니다.
  • 위젯이 괜찮았던 이유는 운이 아니라 구조입니다. 글씨가 커지면 배치 자체를 바꾸고, 등락률은 자릿수가 늘면 소수를 줄여 폭을 묶습니다. 화면 쪽 네 곳도 이제 같은 방식입니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1070건 · 화면 기준선 189장. versionCode 292.
v2.92.02026-07-29
같은 결함이 네 곳에 있었습니다
  • 시세 화면에서 시작한 «자리가 모자라면 무엇부터 내려놓는가» 문제가 자금 → 탐색 → 코인 상세까지 이어졌습니다. 같은 구조를 쓰는 화면이면 같은 결함이 있습니다.
  • 탐색 화면: 배율 120% + 큰 글씨에서 `₩4,820,…` · `+18.6…` 로 가격과 등락률이 둘 다 잘렸습니다. 이 행은 예전에 한 번 손봤는데 그때는 «화면 배율» 축을 걸어 보지 않았습니다.
  • 코인 상세 화면: 가장 좁은 폭 + 큰 글씨에서 큰 가격이 잘렸습니다. 이 자리는 코드에 «구조를 바꿔야 하는데 여기서 하지 않는다»고 스스로 미뤄 둔 기록이 남아 있었습니다. 이제 그때 24h 변동 배지가 아랫줄로 내려가고 가격이 한 줄을 통째로 씁니다.
  • 네 화면이 이제 같은 판단기를 씁니다. 자리가 모자라면 ① 장식(코인 로고·미니 차트) ② 부차 정보(보조 가격·손익률 칸·변동 배지) 순으로 물러나고 ③ 금액은 끝까지 지킵니다.
  • 네 번째는 우연히 찾은 것이 아니라 훑어서 찾았습니다. «금액을 줄여 그리면서 옆에 고정 폭 칸을 둔 화면»을 모으는 검사를 넣었더니 한 곳이 남아 있었습니다. 다섯 번째가 생기면 이제 배포 전에 멈춥니다.
  • 내부 검증 1070건 · 화면 기준선 188장. versionCode 291.
v2.91.02026-07-29
두 축이 겹치는 자리를 마저 채웠습니다
  • 지난 판에서 «큰 글씨 × 다른 언어»의 교차점이 비어 있다는 것을 세어 확인했고, 채우자마자 시세 화면 제목이 «Price…»로 잘리는 것이 나왔습니다.
  • 이번에는 라벨이 가장 긴 두 화면 — 설정자금 — 을 영어 · 큰 글씨로 담았습니다. 결과는 깨끗했습니다. 새 결함은 나오지 않았고, 이제 기준선이 그 상태를 지킵니다. (축을 채운다고 늘 결함이 나오는 것은 아닙니다. 안 나온 것도 굳혀 두면 값이 있습니다.)
  • 등락색 선택 칩(«빨강=상승» / «초록=상승»)의 글자에 경계를 뒀습니다. 두 칩이 폭을 반씩 나눠 갖는 구조라, 안쪽 글자가 제 칸보다 커지면 카드 밖으로 그려질 수 있는 모양입니다. 지금 넘치고 있지는 않지만(재 보니 두 카드가 438·439px로 나란합니다) 구조상 막아 두었습니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1069건 · 화면 기준선 187장. versionCode 290.
v2.90.02026-07-29
자금 화면에서 내 평가액이 잘리던 문제
  • 배율 120% + 큰 글씨에서 보유 목록의 평가액이 `₩14,436,…`로 잘렸습니다. 내 돈이 얼마인지가 잘리는 자리입니다.
  • 새로 생긴 문제가 아니었습니다. 예전에도 잘리고 있었는데 «잘렸다»는 표시가 없어 눈에 띄지 않았습니다. 지난 판에서 비중(%)에 말줄임을 붙이자(«비중 70.» → «비중 70.…») 바로 옆의 평가액 잘림도 함께 드러났습니다. 잘린 티를 내는 것의 값어치가 이것입니다.
  • 원인을 두 번 어림했고 두 번 다 빗나갔습니다. 재려면 행만 따로 세워야 하는데 행이 화면 안에 묻혀 있었습니다. 떼어 내서 폭을 바꿔 가며 찍어 보니, 평가액은 이미 글자를 최소까지 줄인 상태였고 칸 자체가 모자랐습니다 — 더 줄여서는 풀 수 없는 문제였습니다.
  • 그래서 시세 화면과 같은 규칙을 적용했습니다. 자리가 모자라면 ① 코인 로고(옆의 심볼이 같은 것을 말하는 장식) ② 손익률 칸(아랫줄 비중 옆으로 내려갑니다) 순으로 물러나고, ③ 평가액은 끝까지 지킵니다. 손익률은 평가액과 매수금액에서 다시 구할 수 있지만, 잘린 평가액은 다른 금액으로 읽힙니다.
  • 이제 260~330dp 전 구간에서 평가액이 온전합니다. 실제 화면(120%)에서도 평가액·비중· 손익률 셋 다 온전합니다.
  • 남은 것 하나: 가장 좁은 조건(320dp 폰 × 120%)에서 «비중 70.4%»가 «비중 7…»로 줄어듭니다. 라벨을 접으면 들어가지만 바로 옆 손익률과 헷갈릴 수 있어 그대로 두었습니다. 세 숫자 중 가장 덜 중요하고, 잘렸다는 표시는 남습니다.
  • 내부 검증 1069건 · 화면 기준선 185장. versionCode 289.
v2.89.02026-07-29
영어에서 화면 제목이 «Price…»로 잘리던 문제
  • 기준선 182장 중 큰 글씨(1.3배 이상)가 41장인데 그중 40장이 한국어였습니다. «큰 글씨»와 «다른 언어»는 각각 잘 확인해 왔는데 겹치는 자리가 비어 있었습니다. 두 축은 같은 방향으로 밀기 때문에, 어느 한쪽만으로는 안 넘치던 칸이 함께 오면 넘칩니다.
  • 채우자마자 나왔습니다. 영어 + 글씨 1.5배에서 시세 화면 제목이 «Price…»로 잘렸습니다. 옆의 «Live · 12 sec ago» 배지가 자리를 먼저 가져갔기 때문입니다(영어는 한국어 «12초 전» 보다 훨씬 깁니다). 코드에는 «큰 글꼴에서도 제목이 잘리지 않음»이라고 적혀 있었습니다.
  • 배지를 짧은 표기(«Live · 12s»)로 바꿔 둘 다 온전히 보이게 했습니다. 몇 초까지 «초»인지 같은 판정은 그대로이고 표기만 줄였습니다 - 판정이 두 벌이 되면 언젠가 갈립니다.
  • 표시 없이 잘릴 수 있던 숫자 네 곳을 더 고쳤습니다: 시세 머리글의 갱신 시각, 자금 화면의 비중(%), «전량 매도 (수량)» 버튼, 탐색 화면의 갱신 시각.
  • 그 과정에서 잘린 티를 내는 것의 값어치가 드러났습니다. 자금 화면 비중에 말줄임을 붙이자(«비중 70.» → «비중 70.…») 바로 옆 평가액도 잘리고 있었다는 것이 함께 보였습니다. 그쪽은 아직 고치지 못했고, 무엇을 양보시킬지 재서 정해야 해서 과제로 적어 두었습니다.
  • 내부 검증 1068건 · 화면 기준선 184장. versionCode 288.
v2.88.02026-07-29
사용자에게 하는 말이 참인지 배포 때 검산합니다
  • 릴리즈 노트 맨 아래 «내부 검증 N건 · 화면 기준선 M장» 줄은 지금까지 손으로 적었습니다. 자동으로 채우는 장치가 있긴 했지만, 자리표(…)를 둔 줄만 채우도록 일부러 좁혀 놓았습니다 - 이미 나간 노트의 숫자를 조용히 고쳐 스토어와 어긋난 적이 있었기 때문입니다.
  • 그런데 그 규칙에는 반대편 구멍이 있었습니다. 손으로 적으면 아무도 검산하지 않습니다. 실제로 지난 판 노트는 «화면 기준선 181장»이라고 적혀 있는데 그 시점 실제 값은 182였습니다.
  • 이제 배포 게이트가 맨 위 노트의 숫자를 실제와 대조합니다. 다르면 배포가 멈춥니다. 만들자마자 위의 어긋남을 그대로 잡아냈습니다. (개발 중에는 묻지 않습니다 - 시험을 하나 더할 때마다 «노트가 틀렸다»고 하면 소음이 되고, 소음이 되는 검사는 결국 꺼집니다.)
  • 판독 화면을 일본어 · 큰 글씨로 담은 기준선을 추가했습니다. 최근 판에서 이 화면에 문장이 가장 많이 늘었는데 그 문장을 담은 기준선은 전부 한국어였습니다. 확인 결과 일본어에서도 잘림 없이 접힙니다.
  • 글자 크기 자동 축소를 이분 탐색으로 바꿔 보았다가 되돌렸습니다. 재는 횟수를 세어 보니 이 앱이 쓰는 좁은 범위(12→8sp)에서는 오히려 손해였습니다. 재 보지 않았다면 «최적화했다»고 적어 둔 채 더 느려졌을 것입니다. 그 근거를 코드에 남겼습니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1068건 · 화면 기준선 182장. versionCode 287.
v2.87.02026-07-29
늘어난 것이 정보가 아니라 제목이었습니다
  • 최근 두 판에서 차트 판독에 변동성최근 봉의 모양을 더했습니다. 그런데 각각 금색 제목을 달아 따로 놓다 보니, 두 줄짜리 곁가지가 아래의 «추세»·«모멘텀·과열» 같은 큰 절과 같은 무게로 보였습니다. 화면이 길어 보이는 만큼 정보가 늘지는 않았습니다.
  • 둘을 «지금 이 봉» 한 묶음으로 합쳤습니다. 각 줄은 굵은 라벨과 사실, 그 아래 한 문장 해설입니다. 제목이 둘에서 하나로 줄고, 변동성이 세 줄에서 두 줄이 됐습니다.
  • 큰 글씨에서 «평소 하루 폭 2.4% · 이번 봉 1.8배»가 접히며 가운뎃점이 아랫줄 맨 앞에 남던 것도 함께 없앴습니다. 가운뎃점 대신 쉼표로 이으면 앞 낱말에 붙어 따라갑니다.
  • 기능을 더할 때 화면이 어수선해지는 것은 경쟁 앱들이 사용자에게 가장 많이 지적받는 실패 방식입니다. 더한 것을 도로 빼지 않으면서 자리와 무게만 바로잡았습니다.
  • 내부 검증 1068건 · 화면 기준선 181장. versionCode 286.
v2.86.02026-07-29
큰 등락률이 표시 없이 잘리던 문제
  • 갓 상장한 코인이 하루에 네 자리 퍼센트를 찍는 일이 있습니다. 그때 `+1234.56%` 가 좁은 화면에서 `+1234.56` 으로 잘렸습니다 - 퍼센트 기호가 사라져 아예 다른 값으로 읽힙니다. 게다가 «잘렸다»는 표시(…)조차 없었습니다.
  • 위젯은 같은 이유로 이미 자릿수가 늘면 소수를 줄여 폭을 묶는 표기를 쓰고 있었는데, 정작 홈 시세와 지수 줄에는 적용돼 있지 않았습니다. 이제 `+1235%` 처럼 폭을 묶습니다. (읽어 주는 문장에는 전체 자릿수를 그대로 씁니다 - 화면 폭 때문에 줄인 것이지 값이 그런 것이 아니니까요.)
  • 폭이 묶이면서 부수 효과로 좁은 화면에서 보조 가격($)이 다시 보입니다.
  • 자금 화면의 실현손익·총손익 금액도 같이 고쳤습니다. 라벨과 금액이 폭을 다 쓰면 둘을 벌려 주던 여백이 0이 되면서 금액이 조용히 잘릴 수 있었습니다. 조 단위 보유에서도 온전히 보입니다.
  • 규칙도 넓혔습니다. 이제 숫자가 잘렸다는 표시 없이 잘리는 코드가 있으면 배포 전에 멈춥니다. 만들면서 네 곳을 더 찾아냈습니다 - 김프 배지, 비중(%), 성과 비교 범례, 보유 종목의 실현손익.
  • 내부 검증 1068건 · 화면 기준선 181장. versionCode 285.
v2.85.02026-07-29
잘릴 수 있던 나머지 금액 두 곳
  • 지난 판에서 홈 시세의 주 가격이 잘리던 문제를 고쳤는데, 같은 화면 바로 아랫줄의 보조 가격($)은 그대로였습니다. 좁은 폭에서 `$66,…` 로 잘렸습니다.
  • 거래(매수/매도) 화면 맨 위의 평단가도 마찬가지였습니다. `BTC 0.15 @ ₩96,98…` - 매수/매도를 결정하는 화면에서 기준이 되는 숫자입니다.
  • 둘 다 이제 폭이 모자라면 글자를 줄여서 온전히 보여 줍니다.
  • 두 곳 모두 주 가격은 이미 제대로 지켜 두었던 같은 화면이었습니다. 규칙을 아는 사람이 만들었는데도 한 줄 아래에서 빠진 것입니다. 그래서 이번엔 규칙을 글이 아니라 검사로 만들었습니다 - 금액을 말줄임으로 자르는 코드가 있으면 배포 전에 멈춥니다. (코인 이름이나 제목이 잘리는 것은 그대로 둡니다. 라벨은 잘려도 다른 뜻이 되지 않습니다.)
  • 내부 검증 1067건 · 화면 기준선 181장. versionCode 284.
v2.84.02026-07-29
글씨를 키우면 가격이 잘리던 문제
  • 글씨 크기를 크게(1.5배) 쓰시는 분에게 홈 시세의 가격이 `₩96,985,…` 처럼 잘려서 보이고 있었습니다. 잘린 숫자는 안 보이는 것보다 나쁩니다 - 96백만인지 96십억인지 알 수 없는데 그대로 가격으로 읽게 되니까요. 이 화면에서 가장 중요한 숫자였습니다.
  • 무엇이 자리를 먹고 있었는지 재 보니 7일 미니 차트(작은 꺾은선) 였습니다. 그 그림은 바로 옆 등락률이 숫자로 말하는 것과 같은 정보라, 앱 안에서도 «장식»으로 다루고 있었습니다. 장식을 지키느라 가장 중요한 숫자를 자르고 있었던 것입니다.
  • 이제 폭이 모자라면 덜 중요한 것부터 내려놓습니다. ① 미니 차트를 접고 ② 그래도 모자라면 보조 가격($)을 접으면서 등락률을 아랫줄로 내려 가격이 한 줄을 통째로 씁니다. ③ 주 가격은 마지막까지 지킵니다.
  • 접는 기준은 정해 둔 숫자가 아니라 그때그때 잽니다. 필요한 폭은 금액의 자릿수·글꼴 배율·언어에 따라 달라져서, 고정된 기준으로는 어딘가에서 반드시 틀립니다.
  • 앞서 이 문제를 «화면 배율 120%에서만 난다»고 적었는데, 다시 재 보니 평범한 화면에서 글씨만 크게 해도 나고 있었습니다. 범위를 좁게 본 것을 바로잡습니다.
  • 내부 검증 1064건 · 화면 기준선 181장. versionCode 283.
v2.83.02026-07-29
봉의 «생김새»를 읽습니다
  • 이 앱의 지표는 전부 종가에서 나옵니다. 이동평균도 RSI도 MACD도 마찬가지입니다. 그런데 차트를 보는 사람이 가장 먼저 보는 것은 종가가 아니라 봉 하나의 생김새입니다 - 어디까지 밀렸다가 어디로 돌아왔는지. 위에서 눌려 내려온 봉과 아래에서 밀어 올린 봉은 전혀 다른 하루인데, 종가만 보는 지표에게는 둘이 똑같이 보입니다.
  • 이제 마지막 봉의 모양을 읽습니다: 망치형 / 유성형 / 상승·하락 장악형 / 도지.
  • 모양만으로는 아무 말도 하지 않습니다. 망치형은 «내림 뒤에 아래에서 되밀린 자리»일 때 뜻이 있습니다. 오르는 중에 나온 같은 모양은 그냥 아래꼬리가 긴 봉입니다. 패턴 이름을 아무 데나 갖다 붙이는 것이 캔들을 배우고도 지는 이유라, 앞선 흐름을 확인하고 안 맞으면 입을 다뭅니다. 도지는 방향을 말하지 않으므로 방향도 붙이지 않습니다.
  • 캔들은 강세/약세 표에 넣지 않았습니다. 봉 하나는 약한 근거라, 지표 여덟 개와 나란히 한 표를 주면 노이즈가 결론을 흔듭니다. 변동성과 마찬가지로 판정이 아니라 관찰입니다.
  • 도미넌스 화면에 «흐름 강도»가 붙었습니다. 지금까지 «+2.40%p 변동»이라고만 적혀 있어 그게 큰 값인지 알 수 없었습니다. 이 값을 판정하는 계산은 예전부터 있었는데 화면에 연결되어 있지 않았습니다 - 지난 판에 만든 검사가 그걸 찾아냈습니다.
  • 지난 판의 검사를 `domain` 전체로 넓혔습니다. 계산해 놓고 화면에 안 붙인 것이 있으면 이제 배포 전에 멈춥니다.
  • 내부 검증 1055건 · 화면 기준선 179장. versionCode 282.
v2.82.02026-07-29
변동성이 이제 화면에 실제로 나옵니다 (앞선 설명 정정)
  • 지난 판에서 "변동성(ATR)을 봅니다" 라고 말씀드렸습니다. 계산은 만들어져 있었고 검증도 통과했지만, 그 값을 화면에 내보내는 코드가 없었습니다. 계산만 하고 아무 데도 쓰지 않은 것입니다. 없는 기능을 있다고 말씀드린 셈이라 바로잡습니다.
  • 이제 종합 판독 아래에 변동성 한 줄이 나옵니다. "평소 하루 폭 2.4% / 이번 봉 1.8배" 처럼 숫자를 보여 주고, 그것이 이 코인 기준으로 큰 움직임인지 조용한 움직임인지 한 문장으로 말합니다.
  • 변동성은 지표 표에 넣지 않았습니다. 변동성은 오를지 내릴지를 말하지 않기 때문입니다. 강세/약세 표에 섞으면 "변동성이 크니 상승" 같은, 원래 없는 뜻이 생깁니다. 방향을 정하는 값이 아니라 방향의 크기를 재는 자라서 판독 아래에 따로 둡니다.
  • 같은 일이 다시 일어나지 않게 규칙으로 못 박았습니다. 계산해 놓고 화면에 연결하지 않은 값이 있으면 이제 검증이 실패합니다. 만들자마자 이번 것을 정확히 집어냈습니다.
  • 큰 글씨에서 "2.4% / 1.8배" 를 한 줄에 붙였더니 줄이 접히며 가운뎃점이 아랫줄 맨 앞에 남았습니다. 처음부터 두 줄로 나눴고, 가장 가혹한 조건(화면 120% + 글씨 1.5배)을 화면 기준선으로 박아 두었습니다.
  • 내부 검증 1040건 · 화면 기준선 179장. versionCode 281.
v2.81.02026-07-29
차트 판독이 «세는 것»에서 «읽는 것»으로
  • 지금까지 종합 판정은 지표 표를 세기만 했습니다. 그래서 강한 추세장에서도 RSI 과매수 한 표가 정배열 한 표와 같은 무게였습니다 — 초보자가 가장 자주 손해 보는 자리인데, 앱이 그 실수를 그대로 하고 있었습니다.
  • 이제 지금이 추세장인지 횡보장인지 보고 무게를 답니다. 추세장에서는 이동평균·MACD가, 횡보장에서는 RSI·스토캐스틱이 더 무겁습니다. 애매하면 무게를 두지 않습니다. 다만 다수를 소수가 뒤집지는 못합니다 — 무게는 세기를 조절할 뿐 방향은 여러 지표가 함께 정합니다.
  • 변동성(ATR)을 봅니다. 같은 3%도 조용한 코인에겐 큰 사건이고 요동치는 코인에겐 평범한 날입니다. 이제 그 코인 기준으로 큰 움직임인지 잽니다.
  • 자금 흐름(MFI)이 더해졌습니다. 가격만 오른 것인지, 돈이 실려 오른 것인지 갈라 봅니다. 거래량을 주지 않는 거래소에서는 아무 말도 하지 않습니다 — 0을 «돈이 없다»로 읽으면 거짓말이 되니까요.
  • 내부 검증 1035건 · 화면 기준선 178장. versionCode 280.
v2.80.02026-07-29
확인 도구가 스스로를 속이지 않게
  • 지난 판에서 위젯 확인용 도구가 글자를 12% 크게 그리고 있었다는 걸 발견했습니다. 그 결과 잘못된 결론이 나왔고 릴리스 노트에도 그대로 나갔습니다.
  • 이번에는 같은 일이 다시 일어나지 않도록 규칙으로 못 박았습니다. 확인용 도구가 실제 위젯과 다른 조건으로 그려지면 검증이 실패합니다. 만들자마자 남아 있던 같은 실수 하나를 더 찾아냈습니다.
  • 다시 잰 결과, 위젯 높이를 줄였을 때의 잘림도 제가 앞서 말씀드린 것보다 덜했습니다 — 기본 크기(2칸)에서는 코인 다섯 개와 공포지수가 모두 보입니다. 가장 작게 줄였을 때만 마지막 줄이 잘립니다.
  • 앱 동작은 이번 판에서 바뀌지 않았습니다.
  • 내부 검증 1020건 · 화면 기준선 175장. versionCode 279.
v2.79.02026-07-29
글씨 ‘크게’ 구간의 위젯을 다시 쟀습니다 (앞선 설명 정정)
  • 먼저 정정합니다. v2.74.0 노트에 위젯 등락률 문제가 “기본 글꼴 크기에서도” 생긴다고 적었는데 사실이 아니었습니다. 확인에 쓰던 도구가 글자를 실제보다 12% 크게 그리고 있었고, 그 상태로 잰 결과를 그대로 적었습니다. 기본 크기에서는 원래 정상이었습니다.
  • 다시 재서 실제로 깨지는 곳을 찾았습니다. 글꼴 ‘크게’(1.15배)에서 가격의 마지막 한 자리가 다음 줄로 넘어가고(`₩96,985,00` / `0`), 그보다 조금 더 키우면 코인 이름이 갈라졌습니다(`MATI` / `C`).
  • 가격 쪽은 v2.74.0 의 칸 조정으로 이미 해결돼 있었고, 이름이 갈라지던 구간은 이번에 두 줄 배치가 시작되는 기준을 낮춰 덮었습니다. 이제 1.0 · 1.15 · 1.25 · 1.3 · 1.5배 모두 확인했습니다.
  • 내부 검증 1019건 · 화면 기준선 175장. versionCode 278.
v2.78.02026-07-29
알림을 펼치면 기준값까지 보입니다
  • 알림 본문에는 숫자가 둘 들어갑니다 — `현재 ₩96,985,000 (기준 ₩96,000,000 도달)`. 접힌 알림은 한 줄이라 화면이 좁거나 글씨가 크면 뒤쪽 기준값이 잘렸는데, 펼쳐도 더 보이지 않았습니다. 잘린 값은 그대로 사라졌습니다.
  • 이제 알림을 펼치면 본문 전체가 보입니다. 접힌 상태에서 잘리더라도 한 번 펼치면 현재가와 기준값을 모두 확인할 수 있습니다.
  • 내부 검증 1019건 · 화면 기준선 170장. versionCode 277.
v2.77.02026-07-29
위젯 공포지수 줄이 영어에서 두 동강 났습니다
  • 영어로 쓰면서 글씨를 크게 두면 위젯 맨 아랫줄이 `17 Extreme` / `Greed` 로 쪼개지고 그 사이에 `Fear Index` 라벨이 끼어 있었습니다. 영어 라벨이 한국어보다 길어서 한 줄에 들어가지 않았습니다.
  • 이제 앞의 두 줄(맨 윗줄·코인 줄)과 같은 기준으로 나눕니다. 값은 그대로 다 보입니다.
  • 이로써 위젯의 세 줄이 모두 같은 규칙을 따릅니다. 큰 글씨로 쓰셔도 숫자가 쪼개지거나 이름이 갈라지지 않습니다.
  • 내부 검증 1018건 · 화면 기준선 170장. versionCode 276.
v2.76.02026-07-29
위젯 맨 윗줄도 큰 글씨에서 흩어졌습니다
  • 지난 판에서 코인 줄을 고쳤는데, 맨 윗줄(앱 이름·갱신 시각·⟳)이 그대로였습니다. 글씨를 크게 쓰면 시각이 앱 이름을 사이에 두고 세 줄로 흩어져서 `⚠ 7/29` / `오두막 코인시세` / `14:30` 처럼 읽을 수 없는 모양이 됐습니다.
  • 이제 코인 줄과 같은 기준으로 두 줄로 나눕니다 — 이름 한 줄, 시각과 ⟳ 한 줄.
  • 영어로 쓰실 때는 기본 글씨에서도 이름과 시각 사이에 여유가 거의 없었습니다 (`Hut Coin Prices` 가 한국어 이름보다 깁니다). 그 자리도 함께 풀렸습니다.
  • 내부 검증 1017건 · 화면 기준선 169장. versionCode 275.
v2.75.02026-07-29
글씨를 크게 쓰면 위젯이 두 줄로 나뉩니다
  • 글꼴 크기를 ‘크게’ 이상으로 두면 위젯 한 줄에 심볼·가격·등락·김프가 다 들어가지 않습니다. 지금까지는 여러 칸이 제각각 접혀서 가격이 `₩96,9` / `85,000` 으로 쪼개지고 코인 이름까지 `MA` / `TIC` 로 갈라졌습니다.
  • 이제 그럴 때는 일부러 두 줄로 나눠 그립니다. 첫 줄에 이름과 가격, 둘째 줄에 등락과 김프. 값을 감추거나 반올림해서 줄이지 않으므로 보이는 숫자는 전부 온전합니다. 대신 위젯에 담기는 코인 수가 줄어듭니다 — 위젯을 세로로 늘리면 더 보입니다.
  • 기본 글꼴 크기에서는 지금까지처럼 한 줄입니다.
  • 내부 검증 1016건 · 화면 기준선 169장. versionCode 274.
v2.74.02026-07-29
위젯에서 크게 움직인 코인의 등락률이 두 줄로 접혔습니다
  • 홈 화면 위젯의 등락률 칸은 폭이 고정인데 글자는 설정 글꼴 크기를 따릅니다. 그래서 하루 100% 넘게 움직인 코인은 `+123.45%` 가 칸을 넘어 `+123.` / `45%` 두 줄로 접혔습니다. 줄이 늘어나 행이 어긋나고, 무엇보다 접힌 숫자는 다른 숫자로 읽힙니다. 기본 글꼴 크기에서도, 위젯을 아무리 크게 놓아도 일어나던 일입니다.
  • 이제 크게 움직인 값은 소수를 줄여 `+123%` 로 보여 줍니다. 어떤 값이 와도 칸을 넘지 않습니다. 작게 움직인 값은 지금처럼 `+1.82%` 그대로입니다.
  • 남은 폭으로 가격 칸을 넓혔습니다. 4×2 위젯에서 `₩96,985,000` 이 두 줄로 접히던 것도 함께 풀렸습니다. 김프도 `-0.6%` 대신 `-0.57%` 로 한 자리 더 보입니다.
  • 위젯은 화면 검증을 만들 수 없는 자리라 그동안 이 형태가 확인되지 않았습니다. 같은 치수를 따로 세워 재는 방법을 만들어 두었으니, 앞으로는 접히면 바로 드러납니다.
  • 내부 검증 1014건 · 화면 기준선 163장. versionCode 273.
v2.73.02026-07-29
폰을 눕히면 앱 소개 창의 아래쪽이 사라졌습니다
  • 앱 소개 창(홈 하단 → 앱 이름)은 내용이 창보다 길면 스크롤되지 않고 잘렸습니다. 세로로 볼 때는 티가 나지 않지만 폰을 눕히면 맨 아래 주소 줄이 없어졌고, 큰 글씨까지 겹치면 글자 중간에서 잘린 뒤 ‘BS Planet 앱스토어에서 더 많은 앱 보기’ 링크가 통째로 사라졌습니다 — 그 창에서 닫기 말고 할 수 있는 유일한 일인데 닿을 방법이 없었습니다.
  • 이제 창 안에서 스크롤됩니다.
  • 화면을 눕힌 상태는 지금까지 한 번도 확인한 적이 없었습니다. 가로가 더 긴 검증 화면이 넷 있었지만 전부 태블릿 폭이었고, 폰을 눕힌 크기(740×360)는 한 장도 없었습니다. 이 축을 만들자마자 위 결함이 나왔습니다. 다른 화면들은 모두 스크롤이 있어 괜찮았습니다.
  • 내부 검증 990건 · 화면 기준선 151장. versionCode 272.
v2.72.02026-07-29
밝은 모드에서 첫 화면만 어두웠습니다
  • 밝은 모드 기기에서 앱을 처음 열면 동의 화면(밝음) → 시작 화면(어두움) → 앱(밝음) 으로 가운데 한 장만 튀었습니다. 시작 화면이 테마를 보지 않고 어두운 색을 직접 갖고 있었습니다. 이제 밝은 모드에서는 밝게 뜹니다. 어두운 모드의 모양은 그대로입니다.
  • 보합(0.00%) 색이 옅었습니다. 흰 배경에서 대비가 기준(4.5:1)에 조금 못 미치는 4.45:1 이었습니다 — 오르지도 내리지도 않은 값이 가장 흐리게 보였던 셈입니다. 이제 4.5 를 넉넉히 넘습니다.
  • 두 가지 모두 검사가 못 보던 자리였습니다. 대비 검사는 순백 배경만 재고 있었는데 실제 카드는 아래로 갈수록 살짝 회색이라 수치가 후하게 나왔고, 색 목록이 손으로 적혀 있어 나중에 추가된 보합 색은 아예 검사를 받지 않았습니다. 목록 대신 팔레트를 훑도록 바꿔 새 색이 빠질 수 없게 했습니다.
  • 밝은 테마 화면 기준선을 여덟 장 늘렸습니다(21장 → 29장). 기기 대부분이 밝은 모드인데 그쪽이 덜 확인되고 있었습니다.
  • 내부 검증 986건 · 화면 기준선 149장. versionCode 271.
v2.71.02026-07-29
위젯을 고르는 화면과 알림 설정에도 같은 자리가 남아 있었습니다
  • 지난 판에서 아이콘 밑 앱 이름을 고쳤는데, 시스템이 직접 읽는 글자는 그 하나가 아니었습니다. 위젯을 고르는 화면의 설명(`시세·김치 프리미엄·공포지수 요약`)이 번역 없는 언어의 기기에서 그대로 한국어였습니다.
  • 이제 그 기기들은 영어 설명을 봅니다. 한국어·영어·일본어·중국어 기기는 그대로입니다.
  • 알림 채널 이름(설정 > 앱 > 알림)도 고쳤습니다. 이 글자는 만들 때 시스템에 저장돼서, 앱에서 언어를 바꿔도 앱을 완전히 껐다 켜기 전까지 이전 언어로 남아 있었습니다. 이제 언어를 바꾸는 즉시 따라옵니다.
  • 한 자리를 고치고 규칙으로 만들지 않으면 옆자리가 남습니다. 그래서 이번엔 자리마다가 아니라 자리를 찾아서 확인하도록 검증을 바꿨습니다 — 시스템이 읽는 글자가 새로 생기면 먼저 걸립니다.
  • 내부 검증 983건 · 화면 기준선 141장. versionCode 270.
v2.70.02026-07-29
홈 화면 아이콘 밑에 읽을 수 없는 이름이 떠 있었습니다
  • 번역이 없는 언어(독일어·스페인어·프랑스어…)의 기기에서는 아이콘 밑 앱 이름이 `오두막 코인시세` 였습니다. 앱 안쪽은 v2.64.0 부터 영어로 뜨는데, 런처 라벨은 시스템이 직접 읽어서 앱이 손댈 수 없는 자리였습니다.
  • 앱을 여는 첫 자리라 더 나빴습니다 — 이름을 못 읽으면 그 앱을 열지 않습니다.
  • 이제 그 기기들은 `Hut Coin Prices` 로 봅니다. 한국어·영어·일본어·중국어 기기는 지금까지처럼 각자의 이름 그대로입니다.
  • 내부 검증 978건 · 화면 기준선 141장. versionCode 269.
v2.69.02026-07-29
업데이트 배너가 모두에게 한국어로 말했습니다
  • 새 버전 안내 배너는 제목과 버튼이 현지화돼 있는데, 가운데 한 줄만 서버에서 옵니다. 그 값이 한국어뿐이라, 영어로 앱을 쓰는 분에게는 배너 한가운데에 읽을 수 없는 문장이 놓였습니다. 앱이 고장 난 것처럼 보이는 자리입니다.
  • 이제 언어별로 안내를 담고 각자 자기 언어의 것을 봅니다. 준비된 번역이 없으면 아무것도 보여 주지 않습니다 — 못 읽는 글보다 낫고, 제목과 버튼만으로도 통합니다.
  • 예전 버전의 앱은 지금까지처럼 동작합니다.
  • 내부 검증 973건 · 화면 기준선 141장. versionCode 268.
v2.68.02026-07-29
세금 계산기가 어느 나라 세금인지 말하지 않았습니다
  • 계산기의 세금 카드는 한국 기준입니다(기본공제 250만원 · 세율 22%). 한국어 화면에서는 문맥으로 자명하지만, 영어로는 `Capital gains tax` 라고만 적혀 있었습니다.
  • v2.64.0 부터 번역이 없는 언어의 기기가 전부 영어로 뜨므로, 이제 이 카드를 한국과 무관한 분들이 읽습니다. 세액은 보고 행동하는 숫자라 어느 나라 것인지 분명해야 합니다.
  • 제목과 안내에 한국 기준임을 넣고, 시행 시기·세부 규정은 확인하시라는 문장을 더했습니다. 5개 언어 모두에 반영했습니다.
  • 계산식 자체(청산가 · 손익분기 매도가 · 김프 실수익 · 세액)는 다시 검산했고 전부 맞았습니다.
  • 내부 검증 968건 · 화면 기준선 141장. versionCode 267.
v2.67.02026-07-29
매수/매도 시트가 열린 채로 돌리면 닫혔습니다
  • 지난 판에 입력값이 회전에 사라지던 것을 고쳤는데, 열려 있던 화면 자체가 닫히는 자리가 둘 남아 있었습니다.
  • 보유 항목의 매수/매도 시트를 열어 두고 폰을 돌리면 시트가 닫혔습니다. 수량을 치던 중이었다면 다시 찾아 들어가야 했습니다.
  • 알림 추가에서 고른 코인도 첫 코인으로 되돌아갔습니다.
  • 이제 둘 다 그대로 남습니다. 코인 상세 시트를 같은 이유로 고쳐 둔 방식을 그대로 썼습니다.
  • 내부 검증 968건 · 화면 기준선 141장. versionCode 266.
v2.66.02026-07-28
화면을 돌리면 입력한 값이 사라졌습니다
  • 계산기에 매수가·수수료를 치고 폰을 가로로 돌리면 입력이 통째로 지워졌습니다. 안드로이드가 화면을 다시 만들 때(회전·언어 변경·다크모드 전환) 값을 붙잡아 두지 않았습니다.
  • 같은 일이 여러 곳에 있었습니다 — 보유 추가 폼, 매수/매도 계산, 알림 임계값과 종류, 코인 검색어, 탐색 화면의 급등/급락 탭, 시세의 ₩/$ 선택.
  • 스무 곳을 고쳤습니다. 이제 돌려도 그대로 남습니다.
  • 크래시가 아니라 조용한 리셋이라 "원래 그런가 보다" 하고 넘어가기 쉬운 종류였습니다.
  • 내부 검증 968건 · 화면 기준선 141장. versionCode 265.
v2.65.02026-07-28
통화 이름이 화면 언어를 따르지 않던 경로
  • 지난 판부터 번역이 없는 언어의 기기는 영어로 뜹니다. 그래서 영어 화면을 주요 화면마다 그려 보고 확인했습니다(설정 · 알림 · 시세 · 신뢰 시트).
  • 통화 이름(`US Dollar`·`Japanese Yen`)과 코인 이름(`Bitcoin`)을 고르는 자리가 화면이 그리는 언어가 아니라 프로세스 기본 언어를 보고 있었습니다. 앱에서는 둘이 같아 겉으로 드러나지 않지만, 언어가 바뀌는 순간의 기준으로는 화면 쪽이 옳습니다.
  • 이제 화면 언어를 따릅니다. 한국어 화면은 한 픽셀도 달라지지 않았습니다.
  • 영어 화면에서 글자가 길어져 깨지는 곳은 없었습니다.
  • 내부 검증 965건 · 화면 기준선 141장. versionCode 264.
v2.64.02026-07-28
번역이 없는 언어의 기기에서 앱이 한국어로 떴습니다
  • 앱은 한국어·영어·일본어·중국어(간체·번체) 다섯 언어로 번역돼 있습니다. 그 밖의 언어로 설정된 기기에서는 안드로이드가 기본 자원으로 떨어지는데, 이 앱의 기본 자원이 한국어였습니다. 그래서 스페인어·독일어·프랑스어 기기에서는 화면이 통째로 한국어였습니다.
  • 스토어 소개는 이미 열 개 언어로 나가고 있습니다 — 독일어 소개를 읽고 설치한 분이 한국어 앱을 받고 있었던 셈입니다.
  • 이제 번역이 없는 언어에서는 영어로 뜹니다. 다섯 언어 기기는 달라지는 것이 없고, 설정에서 언어를 직접 고르신 경우도 그대로입니다.
  • 중국어는 지역까지 봐서 간체/번체를 그대로 가립니다.
  • 내부 검증 965건 · 화면 기준선 137장. versionCode 263.
v2.63.02026-07-28
위젯이 하루를 넘겨 멈추면 시각을 잘못 읽게 됩니다
  • 홈 위젯은 받은 시각을 `09:00` 처럼 절대 시각으로 적습니다. 위젯은 스스로 다시 그리지 않아서 "3분 전" 같은 표기는 그 자리에 굳어 버리기 때문입니다.
  • 그런데 시:분만으로는 하루를 넘기면 뜻이 무너집니다. 기기 절전 정책이 위젯 갱신을 막은 채 하루가 지나면, 다음 날 10시에 `09:00` 이 떠 있고 한 시간 전 값으로 읽게 됩니다 — 실제로는 스물다섯 시간 전 값입니다.
  • 이제 날이 바뀌었으면 날짜를 함께 적습니다 — `7/27 09:00`. 같은 날이면 예전 그대로입니다.
  • 샤오미·삼성 등에서 위젯이 오래 멈춰 있을 때 가장 크게 어긋나던 자리입니다.
  • 내부 검증 960건 · 화면 기준선 137장. versionCode 262.
v2.62.02026-07-28
5분 주기로 쓰면 초록 점이 늘 회색이었습니다
  • 시세 카드의 `● 실시간` 초록 점은 자료가 90초보다 오래되면 회색으로 바뀌었습니다. 그런데 갱신 주기는 설정에서 고르실 수 있습니다 — 10초 · 30초 · 1분 · 5분.
  • 5분을 고르면 점이 대부분의 시간 동안 회색이었습니다. 앱이 시킨 대로 돌고 있는데 "오래됐다" 고 말한 셈입니다. 늘 회색인 신호등은 보지 않게 되고, 그러면 진짜로 끊겼을 때도 안 보입니다.
  • 이제 고른 주기를 기준으로 판단합니다 — 한 주기에 절반(최소 15초)의 여유.
  • 기본값(1분)에서는 문턱이 90초로 예전과 정확히 같습니다. 달라지는 것은 10·30초(조금 더 엄격)와 5분(주기에 맞게 너그러움)뿐입니다.
  • 내부 검증 954건 · 화면 기준선 137장. versionCode 261.
v2.61.02026-07-28
광고 없다는 말을, 정작 첫 화면에서 안 하고 있었습니다
  • 지난 판에 앱 정보의 "광고 최소" 를 "광고 없음" 으로 고쳤는데, 같은 한 줄이 네 곳에 있습니다 — 앱 정보 · 온보딩 첫 화면 · 홈 맨 아래 · 신뢰성 시트.
  • 그중 온보딩과 홈 푸터는 광고 이야기를 아예 하지 않았습니다. 앱을 처음 켰을 때 보이는 자리인데, 이 앱을 고르는 이유 하나가 거기서 빠져 있었던 셈입니다.
  • 네 자리를 같은 말로 맞췄습니다 — 무료 · 로그인 없음 · 수집 없음 · 광고 없음. 5개 언어.
  • 큰 글씨(1.5배)·좁은 폭에서도, 일본어·중국어에서도 줄이 깨지지 않는 것을 확인했습니다.
  • 내부 검증 947건 · 화면 기준선 137장. versionCode 260.
v2.60.02026-07-28
광고가 없는데 "광고 최소" 라고 적혀 있었습니다
  • 홈 화면의 앱 정보에 "· 무료 · 로그인 없음 · 수집 없음 · 광고 최소" 라고 있었습니다. 이 앱에는 광고가 하나도 없습니다 — 광고 SDK 자체가 들어 있지 않습니다.
  • 같은 앱의 신뢰성 시트는 "광고 없음" 이라고 말합니다. 두 자리가 서로 어긋나 있었고, 하필 이 앱을 고르는 이유가 되는 문장이었습니다. 5개 언어 모두 "광고 없음" 으로 맞췄습니다.
  • 앱 정보 대화상자는 홈 화면 안에 묻혀 있어 화면 기준선이 하나도 없었습니다. 꺼내서 기준선을 만들었습니다 — 정체성 문구가 조용히 달라지지 않도록.
  • 내부 검증 947건 · 화면 기준선 137장. versionCode 259.
v2.59.02026-07-28
VWAP 설명이 앱이 하지 않는 일을 가르치고 있었습니다
  • 지표 해설 열여섯 가지가 말하는 숫자와 동작이 실제 계산과 같은지 대조했습니다.
  • VWAP 설명이 틀려 있었습니다. 5개 언어 모두에서 "하루를 기준으로 다시 시작하는 값이라 긴 흐름을 보는 데는 맞지 않습니다" 라고 했는데, 앱은 보고 있는 구간 전체를 누적할 뿐 하루마다 초기화하지 않습니다. 초보자를 위해 쓴 글이라 그대로 믿게 되는 자리였습니다.
  • 설명을 실제 계산에 맞췄습니다 — 구간을 바꾸면 기준도 함께 바뀐다는 것, 그리고 증권사· 트레이딩뷰의 VWAP 과는 기준이 다르니 숫자를 그대로 견주지 말라는 것을 함께 적었습니다.
  • 계산은 바꾸지 않았습니다. 일봉·주봉에서는 하루 초기화가 의미를 잃고, 거래소마다 봉 시각의 기준 시간대가 달라(업비트 KST · 바이낸스 UTC) 틀려도 확인할 방법이 없기 때문입니다.
  • 나머지 해설의 숫자는 전부 코드와 일치했습니다 — RSI 14·70·30, 스토캐스틱 80·20, ADX 25·20, 이동평균 5·10·20.
  • 내부 검증 946건 · 화면 기준선 135장. versionCode 258.
v2.58.02026-07-28
눈에는 제목인데 화면 낭독기에는 본문이었습니다
  • 화면 낭독기(TalkBack)에는 제목 단위로 건너뛰기가 있습니다. 그게 없으면 원하는 자리까지 요소를 하나하나 훑어야 합니다 — 코인 상세는 차트·기술적 분석·지표·코인 정보·김프까지 이어지는 긴 화면이라 차이가 큽니다.
  • 앱에는 제목 표시가 딱 한 곳(뉴스 날짜 머리글)에만 있었습니다. 카드 제목·시트 제목· 섹션 이름은 전부 그냥 굵은 글자여서, 보는 사람에게는 제목이고 듣는 사람에게는 아니었습니다.
  • 이제 스무 곳이 제목이라고 말합니다 — 시세·공포지수·시장 개요·시장 맥박·뉴스·비교 카드, 코인 상세의 각 구획, 도미넌스·신뢰 시트, 설정·알림의 구획 이름.
  • 섹션 제목을 그리는 코드가 네 파일에 따로 있었습니다(둘은 글자 하나까지 같았습니다). 한 곳으로 모았습니다 — 흩어져 있으면 한 곳을 고쳐도 나머지가 남습니다.
  • 눈으로 보는 화면은 한 픽셀도 바뀌지 않았습니다.
  • 내부 검증 937건 · 화면 기준선 135장. versionCode 257.
v2.57.02026-07-28
화면 낭독기로는 비어 있던 자리
  • 공포·탐욕 카드에 `최근 30일` 이라고 써 놓고, 그 아래 30일 추이 그림은 화면 낭독기에 아무 말도 하지 않았습니다. 30일이 어떻게 움직였는지는 카드 어디에도 글자로 없습니다 (현재 값·등급·어제 대비뿐). 제목만 있고 내용이 없는 자리였습니다.
  • 이제 시세 차트와 같은 형식으로 말합니다 — 어디서 어디로, 어느 쪽으로, 그 사이 최고·최저.
  • BTC 시가총액 90일 추이, 관측된 도미넌스 흐름도 같이 붙였습니다.
  • 5개 언어 모두에 넣었습니다. 접근성 문구는 화면에 안 보여서 번역이 빠져도 눈치채기 어렵습니다.
  • 시세 목록의 작은 추이 그림은 일부러 말하지 않습니다 — 바로 옆 등락률이 같은 값을 숫자로 말하기 때문입니다. 그 판단을 이제 코드에 남겨, 빠뜨린 것과 구분됩니다.
  • 눈으로 보는 화면은 달라진 것이 없습니다.
  • 내부 검증 934건 · 화면 기준선 135장. versionCode 256.
v2.56.02026-07-28
어느 매체 기사인지가 `C…` 로 사라졌습니다
  • 지난 판에 못 고쳤다고 적어 둔 자리입니다. 다시 봤고, 고쳤습니다.
  • 글씨를 키우고 화면이 좁으면 기사 아래 줄이 `C… · … · 26분 전` 이었습니다. 분류는 `…` 한 글자만 남아 아무것도 알려 주지 않으면서 자리만 먹었고, 출처는 `C…` 라 어느 매체 기사인지 사라졌습니다. 여러 매체를 합쳐 보여 주는 목록이라 출처는 기사의 신원입니다.
  • 이제 셋이 자리를 나눠 갖지 않습니다. 들어갈 자리가 있을 때만 분류를 그리고, 없으면 통째로 뺍니다 — 그만큼 출처가 온전히 남습니다.
  • 홈 카드와 뉴스 화면이 같은 줄을 각자 그리고 있었습니다. 한 곳으로 합쳤습니다.
  • 자리가 넉넉한 평소에는 분류가 그대로 보입니다 — 기본 글씨 크기에서는 달라진 것이 없습니다.
  • 내부 검증 928건 · 화면 기준선 129장. versionCode 255.
v2.55.02026-07-28
내 돈이 얼마인지가 잘려 있었습니다
  • 자금(포트폴리오) 화면을 큰 글씨로 살폈습니다.
  • 보유 평가액이 잘렸습니다 — `₩19,72…`. 옆의 손익률 칸이 글씨를 따라 넓어지면서 평가액 몫을 먹었습니다. 손익률보다 내 돈이 얼마인지가 먼저입니다.
  • 요약 카드의 손익 금액도 잘렸습니다 — `손익 +31.22% (+₩6,1…`. 수익률은 살았지만 얼마를 벌었는지가 사라진 셈입니다. 이제 자르기 전에 글씨를 줄여 둘 다 남깁니다.
  • 기본 글씨 크기에서는 바뀌는 것이 없습니다. 기존 화면 기준선이 전부 그대로입니다.
  • 시장 맥박 카드 · 지지저항 줄 · 도미넌스 시트 · 비교 카드는 큰 글씨에서도 멀쩡했습니다. 확인만 하고 손대지 않았습니다.
  • 뉴스 카드 메타 줄(`출처 · 분류 · 시각`)은 가장 좁은 폭에서 아직 눌립니다. 고치려던 방법이 오히려 시각을 통째로 지워서 되돌렸습니다 — 다음에 다시 봅니다.
  • 내부 검증 927건 · 화면 기준선 128장. versionCode 254.
v2.54.02026-07-28
이름과 숫자가 붙어 한 덩어리로 보이던 자리들
  • 지난 판에 이어 글씨를 키워 쓰는 화면을 계속 살폈습니다. 이번엔 코인 상세 시트입니다.
  • 이름과 값이 딱 붙어 있었습니다 — `한국 거래소upbit`, `글로벌 가격$96,324`, `사상 최고가₩177,854,395`. 사이를 벌려 주던 것이 하필 가장 좁을 때 0 이 되는 구조였습니다. 이제 간격은 어떤 폭에서도 남습니다.
  • 큰 가격이 잘려 있었습니다 — 글씨 1.3배 · 폭 360dp 라는 드물지 않은 조합에서 `₩131,500,000` 이 `₩131,500,…` 로 보였습니다. 이 화면에서 가장 중요한 숫자이고, 여기가 이미 상세라 더 들어가 볼 곳도 없습니다. 크기보다 온전함을 앞에 뒀습니다.
  • 김프 근거 줄은 이름 칸이 글씨를 따라 넓어지되 줄의 절반 가까이에서 멈춥니다. 그 균형이 무너지면 이번엔 값이 `₩131,5` / `00,000` 으로 접히기 때문입니다.
  • 기본 글씨 크기에서는 값 위치가 8dp 오른쪽으로 옮겨진 것 말고 달라진 것이 없습니다.
  • 내부 검증 927건 · 화면 기준선 124장. versionCode 253.
v2.53.02026-07-28
글씨를 키워 쓰시면 숫자와 제목이 깨져 있었습니다
  • 안드로이드 접근성에서 글씨 크기를 키워 쓰시는 분들 화면이 여러 군데 깨져 있었습니다. 이번에 그 조건으로 화면을 하나씩 그려 보고 찾은 것들입니다.
  • 화면 제목이 반토막: `코인·환율 설정` 의 `설정` 이 상단 바 밑단에서 글자 한가운데로 잘려 있었습니다. 이제 폭에 맞춰 글씨를 조금 줄여 한 줄에 온전히 담습니다. 설정·알림·계산기·포트폴리오·탐색·뉴스·출처·약관 여덟 화면 모두에 적용했습니다.
  • 가격과 등락률이 두 줄로 접힘: 탐색 목록에서 `₩131,500,000` 이 `₩131,5` / `00,000` 으로, `+3.42%` 가 `+3.` / `42%` 로 접혔습니다. 안 보이는 것보다 나쁩니다 — 다른 숫자로 읽힙니다. 이제 칸에 맞춰 글자를 줄여서라도 한 줄에 담습니다.
  • 조절 중인 값이 접힘: 설정의 화면 배율에서 `100%` 가 `10` / `0%` 로 보였습니다. 10% 로 읽고 슬라이더를 잘못 움직이기 딱 좋았습니다.
  • 영어에서 지지·저항 라벨이 쪼개짐: `Resistance` 가 `Resis` / `tance` 로 접히면서 두 조각이 각각 다른 줄 옆에 놓여 서로 다른 두 라벨처럼 보였습니다.
  • 기본 글씨 크기·한국어에서는 바뀌는 것이 없습니다. 기존 화면 기준선 110장이 그대로입니다.
  • 내부 검증 927건 · 화면 기준선 118장. versionCode 252.
v2.52.02026-07-28
옛 자료로 계산한 판독이면 그렇다고 말합니다
  • 연결이 끊기면 앱은 직전에 받아 둔 캔들로 화면을 채웁니다. 빈 화면보다 낫다는 판단이고 그건 맞습니다. 문제는 기술적 분석이 그 사실을 모른 채 "추세가 뚜렷합니다", "이 선이 깨지면…" 같은 문장을 확신 있게 내놓았다는 점입니다.
  • 이제 자료가 3분 넘게 오래됐으면 판독 위에 한 줄이 붙습니다 — "이 판독은 12분 전 받은 자료로 계산했습니다. 지금 시세와 다를 수 있어요."
  • 판독을 감추지는 않습니다. 무엇으로 계산했는지만 밝힙니다.
  • 평소(연결이 정상일 때)에는 아무것도 나오지 않습니다. 늘 떠 있는 경고는 읽히지 않으니까요.
  • 5개 언어 모두에 넣었습니다.
  • 내부 검증 923건 · 화면 기준선 113장. versionCode 251.
v2.51.02026-07-28
켜 둔 채 지내도 새 버전을 알려 드립니다
  • 새 버전 확인이 앱을 켤 때 딱 한 번이었습니다. 시세 앱은 열어 둔 채 지내는 일이 많아, 며칠을 그대로 두면 새 버전이 나와도 모른 채 지나갔습니다. 앱을 완전히 껐다 켜야 알게 되는데, 그건 "바로 받을 수 있다" 가 아니죠.
  • 이제 다른 앱을 보다 돌아올 때마다 다시 확인합니다.
  • 다만 앱을 잠깐 오갈 때마다 조회하면 데이터와 배터리가 낭비되니, 30분 안에 이미 확인했으면 건너뜁니다. 하루에 몇 번 켜는 분이면 그날 나온 버전을 그날 보게 됩니다.
  • 업그레이드 알림을 꺼 두셨다면 예전처럼 아무것도 조회하지 않습니다.
  • 내부 검증 920건 · 화면 기준선 112장. versionCode 250.
v2.50.22026-07-28
설치할 수 없는 업데이트는 권하지 않습니다
  • 업데이트 안내가 기기의 안드로이드 버전을 보지 않고 있었습니다. 지금은 요구 사양이 낮아(안드로이드 8) 아무 문제가 없지만, 언젠가 올리는 날 옛 기기에서는 다운로드를 다 마친 뒤 "앱이 설치되지 않았습니다" 만 뜨고 이유를 알 수 없었을 겁니다.
  • 이제 기기가 설치할 수 없는 버전은 애초에 권하지 않습니다.
  • 업그레이드 경로 전체를 점검했습니다 — 앱이 조회하는 주소, 내려받는 파일의 지문(sha256), APK 안의 실제 버전, 설치 권한과 파일 공유 설정까지. 모두 정상입니다.
  • 배포할 때마다 앱이 실제로 쓸 수 있는 것을 올렸는지 확인하는 검사를 추가했습니다. 주소나 허용 도메인이 어긋나면 오류 없이 조용히 아무 일도 안 일어나는데, 그게 이 앱에서 예전에 몇 달간 업그레이드 알림이 죽어 있던 이유였습니다.
  • 내부 검증 918건 · 화면 기준선 112장. versionCode 249.
v2.50.12026-07-28
화면 낭독기가 장식 기호를 읽지 않습니다
  • 목록 글머리(·)와 체크 표시(✓)를 화면 낭독기가 그대로 읽고 있었습니다 — 항목마다 "가운뎃점", 줄마다 "체크 표시" 가 붙었습니다. 눈으로는 힌트인 기호가 귀로는 잡음입니다.
  • 동의 화면, 기술적 분석의 주의 문구, 신뢰 안내 세 곳을 고쳤습니다.
  • 이런 기호를 걸러 내는 검사는 원래 있었는데 뒤에 공백이 붙은 형태(`"· "`)를 놓치고 있었습니다. 글머리는 대개 그렇게 씁니다. `✓` 는 아예 목록에 없었습니다.
  • 내부 검증 915건 · 화면 기준선 112장. versionCode 248.
v2.50.02026-07-28
"이 판독이 언제 틀린 건지"를 함께 알려 줍니다
  • 지금까지 화면은 무엇이 보이는지(사실)와 그래서 무슨 뜻인지(결론)를 말했습니다. 전문가가 늘 하나 더 갖고 있는 것이 무효화 기준입니다 — "이 선이 깨지면 내 판단이 틀린 것" 을 미리 정해 두는 일이죠.
  • 종합 판독 바로 아래에 깨지는 선 한 줄이 생겼습니다 — "₩93,100,000(3.3% 아래)가 무너지면 지금 판독은 흔들립니다. 그 아래에서 봉이 마감하면 다시 보세요."
  • 정해 두지 않으면 값이 반대로 가도 계속 이유를 붙이게 됩니다. 앱이 "강세"라고 말해 주면 그 말을 붙잡고 버티기 쉽거든요. 언제 그 말을 거둬야 하는지를 함께 알려 드립니다.
  • 말하지 않아야 할 때는 말하지 않습니다 — 판독이 중립이면 무효화할 판단 자체가 없고, 그쪽에 선이 없거나(신규 상장·신고가) 너무 멀면(20% 넘게) 기준이 되지 못합니다.
  • 이 줄은 등락색을 쓰지 않습니다. 오름·내림이 아니라 경계라서, 색이 붙으면 지금 판독을 강화하는 것처럼 읽히는데 뜻은 정반대입니다.
  • 5개 언어 모두에 넣었습니다.
  • 내부 검증 914건 · 화면 기준선 112장. versionCode 247.
v2.49.12026-07-28
나머지 작은 버튼도 키웠습니다
  • 알림 화면의 "기기 절전 설정 확인하기" 줄이 23dp 였습니다. 알림이 안 와서 답답한 사람에게 해결책으로 가는 길인데, 정작 손가락으로 짚기 어려웠습니다.
  • 매수/매도 알약은 47.2dp 로 아슬아슬하게 모자랐습니다. 잘못 눌리면 바로 금액을 반대로 적게 되는 자리라 여유를 뒀습니다.
  • 둘 다 렌더된 화면을 재서 확인했습니다. 계산으로는 40dp 라고 짐작했는데 실제로는 47.2dp 였습니다 — 재 보기 전엔 모릅니다.
  • 내부 검증 901건 · 화면 기준선 111장. versionCode 246.
v2.49.02026-07-28
눌러야 하는 곳이 손가락만큼 커졌습니다
  • "주요 지지·저항 ⓘ" 같은 제목은 눌러서 설명을 볼 수 있는 자리인데, 실제 높이가 16dp 남짓이었습니다. 초보자에게 "눌러서 읽어 보세요" 라고 권해 놓고 정작 글자 높이만큼만 눌렸습니다. 이제 48dp 를 채웁니다(안드로이드 권장 최소치).
  • 근거 줄(다이버전스·장세 등)과 '차트 기법 더 배우기' 칩도 같은 기준으로 키웠습니다.
  • 화면은 오히려 여유로워졌습니다 — 줄 사이가 답답하던 부분이 함께 풀렸습니다.
  • 크기는 렌더된 화면을 재서 확인합니다. 여백만 봐서는 알 수 없어(안에 든 내용이 정하니까요) 요소 하나만 그린 그림의 높이를 직접 잽니다.
  • 내부 검증 901건 · 화면 기준선 109장. versionCode 245.
v2.48.32026-07-28
밝은 화면의 색 있는 칩·아이콘을 모두 또렷하게
  • 색을 옅게 깔고 그 위에 같은 색으로 글자를 쓰는 자리가 앱에 여러 곳 있습니다 — 번역 칩, 거래소 칩, 구간 칩, 24h 등락 칩, 기술적 신호 칩, 알림 칩, 업데이트 안내 아이콘, 해외 코인 추가 줄, 근거 줄의 ⓘ.
  • 밝은 화면에서는 이런 자리의 대비가 4.2~4.5:1 로 접근성 기준 언저리였습니다. 지난 버전에서 만든 규칙을 전부에 적용해 7:1 이상으로 올렸습니다.
  • 한 곳씩 찾는 대신 "자기 색 위에 같은 색으로 글자를 쓰는 자리"를 전부 훑는 검사를 넣었습니다. 손으로 훑었을 때 놓친 여섯 곳을 그 검사가 찾아냈습니다.
  • 내부 검증 898건 · 화면 기준선 106장. versionCode 244.
v2.48.22026-07-28
김치 프리미엄 뱃지 글자가 배경에 묻히던 것을 고쳤습니다
  • 프리미엄이 마이너스일 때 파란 뱃지의 숫자가 배경과 거의 같은 색이었습니다 — 대비 1.94:1. 어두운 화면(기본)에서, 시세 목록(가장 많이 보는 화면)에서 그랬습니다.
  • 원인은 비대칭이었습니다. 플러스(골드) 쪽은 배경보다 밝은 글자색을 따로 갖고 있었는데, 마이너스 쪽만 배경과 똑같은 색을 쓰고 있었습니다. 밝은 파랑을 따로 두어 5.6:1 이 됐습니다.
  • 밝은 화면에서도 뱃지 글자가 4.34:1 로 기준(4.5:1) 바로 아래였습니다. 지난 버전에서 만든 '틴트 위 글자' 규칙을 여기에도 적용해 7.2:1 이 됐습니다.
  • 이 색은 등락색 설정(상승 빨강/초록)을 따라가지 않습니다 — 프리미엄의 부호를 뜻하는 색이라 그대로 두는 것이 맞습니다.
  • 내부 검증 898건 · 화면 기준선 106장. versionCode 243.
v2.48.12026-07-28
라이트 테마에서 지표 차트 눈금이 보입니다
  • RSI 의 70·30, 스토캐스틱의 80·20 같은 눈금 숫자가 밝은 화면에서 거의 보이지 않았습니다 — 대비 2.10:1 로, 글자에 필요한 기준(4.5:1)의 절반도 안 됐습니다.
  • 원인은 점선과 숫자가 같은 색을 쓰고 있었기 때문입니다. 점선은 배경이라 옅어야 하지만 숫자는 글자라 기준이 다릅니다. 이제 숫자에서는 투명도를 걷어냅니다(7.1:1).
  • 점선 자체는 일부러 옅게 두었습니다. 눈금이 몇인지는 이제 숫자가 또렷이 알려 주니, 선까지 진해지면 정작 지표 선을 읽기 어려워집니다.
  • 어두운 화면에서는 그럭저럭 읽혀서 오래 지나쳤습니다. 지표 차트에 밝은 화면 기준선이 없었기 때문입니다 — 이번에 함께 넣었습니다.
  • 내부 검증 897건 · 화면 기준선 106장. versionCode 242.
v2.48.02026-07-28
라이트 테마에서 근거 줄 글자가 또렷해졌습니다
  • 다이버전스·기간 정렬·거래량 확증·장세 같은 근거 줄은 자기 색으로 배경을 옅게 깔고 같은 색으로 글자를 씁니다. 다크에서는 잘 보이는데 라이트에서는 배경이 흰색보다 어두워져 대비가 떨어졌습니다 — 실측 3.7~4.1:1 로 접근성 기준(4.5:1) 아래였습니다.
  • 배경을 더 옅게 만드는 대신 글자를 어둡게 했습니다. 색이 무슨 뜻인지는 그대로 남고 대비만 오릅니다. 이제 7.7:1 이상입니다.
  • 같은 문제가 기간 칩·번역 칩·차트 겹치기 토글에도 있었습니다. 한 곳에서만 풀려 있던 해법을 규칙으로 올려 전부 같은 방식으로 맞췄습니다.
  • 색 대비 검사가 지금까지 카드 배경 기준으로만 봤습니다. 토큰 자체는 흰 카드에서 4.8~5.2:1 이라 통과하고 있었죠. 이제 실제로 쓰이는 배경 위에서 확인합니다.
  • 내부 검증 896건 · 화면 기준선 105장. versionCode 241.
v2.47.22026-07-28
큰 글씨에서 판독 목록이 읽기 쉬워졌습니다
  • 사실 목록("· 값 84.3 — 최근 60봉 범위에서 100% 지점입니다")이 두 줄로 접힐 때 둘째 줄이 점 자리에서 시작해 새 항목처럼 보였습니다. 항목이 몇 개인지 세는 것부터 틀리게 되죠. 이제 점과 본문을 따로 놓아 내어쓰기가 됩니다.
  • 글씨 크기를 키운 분들에게는 매 항목이 두 줄이라 늘 그랬습니다. 지표 상세와 가격 구조 절 양쪽을 같은 모양으로 맞췄습니다.
  • 화면 낭독기가 점을 "가운뎃점"이라고 읽던 것도 함께 사라집니다(점은 장식으로 표시).
  • 이 결함은 큰 글씨(1.5배) 기준선을 만들자마자 드러났습니다. 이번에 만든 판독 화면들은 가장 글자가 많은데 큰 글씨 기준선이 없었습니다. 두 장을 새로 넣었습니다.
  • 내부 검증 893건 · 화면 기준선 103장. versionCode 240.
v2.47.12026-07-28
지지·저항 칩이 접히던 것을 고쳤습니다
  • 레벨 금액 옆에 거리(%)를 붙이면서 칩이 길어졌는데, 폭이 모자라면 마지막 칩만 눌려 그 안에서 글자가 두 줄로 접혔습니다. 옆 칩은 한 줄이라 높이가 어긋나고 라벨이 아래로 밀려 행이 깨져 보였습니다.
  • 이제 칩이 줄바꿈으로 넘어갑니다 — 각 칩은 언제나 한 줄이고, 라벨은 위쪽에 붙습니다.
  • 이 결함은 화면 기준선을 만들자마자 드러났습니다. 기술적 분석 절의 세 줄(여러 기간 흐름· 주요 지지저항·가격 구조)에는 그동안 시각 회귀 보호가 없었습니다. 화면에서 가장 말이 많은 자리인데도요. 두 장(한국어·일본어 좁은 폭)을 새로 넣었습니다.
  • 내부 검증 891건 · 화면 기준선 101장. versionCode 239.
v2.47.02026-07-28
지금이 추세장인지 횡보장인지, 맨 위에서 알려 줍니다
  • 기술적 분석에서 가장 먼저 알아야 할 것은 개별 지표가 아니라 지금이 어떤 장세인가 입니다. 추세장의 과매수와 횡보장의 과매수는 정반대 뜻이기 때문입니다.
  • 종합 판독 바로 아래에 장세 한 줄이 생겼습니다 — "추세장 · ADX 31.2 — 추세추종 신호가 잘 맞습니다. 과매수·과매도는 참고만 하세요." 또는 "횡보장 · ADX 14.8 — 과매수·과매도가 잘 맞습니다. 추세 신호는 속기 쉬워요."
  • 지난 버전에서는 이 판단을 지표를 눌러야만 볼 수 있었습니다. 정작 아래의 모든 근거를 어떻게 읽을지 정하는 문장이라 맨 위로 올렸습니다.
  • 25 이상 추세, 20 미만 횡보, 그 사이는 ‘경계’ 라고 그대로 말합니다.
  • 이 줄만 등락색(빨강·초록)을 쓰지 않습니다. 장세는 오른다·내린다가 아니라 ‘어떻게 읽을 것인가’ 라서, 방향색을 쓰면 없는 뜻이 생깁니다.
  • 눌러서 장세가 무엇인지, 왜 지표마다 맞는 구간이 다른지 읽을 수 있습니다.
  • 5개 언어 모두에 넣었습니다.
  • ADX·스퀴즈 계산의 정확값 검증을 함께 넣었습니다 — 이 조언의 근거가 되는 수라서, 조용히 틀리면 조언도 조용히 틀립니다.
  • 내부 검증 891건 · 화면 기준선 99장. versionCode 238.
v2.46.02026-07-28
알림이 안 올 때, 내 기기에 맞는 해결책을 바로 보여 줍니다
  • 안드로이드에서 가장 흔한 불만이 "알림이 안 와요 · 위젯이 멈췄어요" 이고, 원인은 거의 항상 제조사의 절전 정책입니다. 표준 배터리 설정만으로는 모자라고, 제조사마다 다른 화면에 다른 이름으로 스위치가 하나 더 있습니다.
  • 안내는 원래 있었지만 네 항목을 전부 나란히 보여 줬습니다. 삼성 사용자가 샤오미 안내를 읽고, 샤오미 사용자가 삼성 안내를 읽었습니다. 이제 내 기기에 해당하는 항목에 표시가 붙습니다 (삼성 · 샤오미/오포/비보/원플러스 · 화웨이/아너). 화웨이·아너 안내는 새로 넣었습니다.
  • 다른 항목을 지우지는 않았습니다 — 판정이 틀릴 수도 있고, 같은 회사가 기기마다 다른 화면을 쓰기도 합니다. 찾을 길은 남겨 둡니다.
  • 알림 화면에서 바로 갈 수 있습니다. "기기 절전 설정에 따라 더 늦어질 수 있습니다" 라고 적어 놓고 고칠 방법은 설정 안쪽에만 뒀었습니다. 문제를 말한 자리에 해결책을 뒀습니다.
  • 안내 화면에서 배터리 최적화 예외를 그 자리에서 켤 수 있습니다. 예전 문구는 "위의 스위치를 켜세요" 였는데 그 스위치는 그 화면에 없었습니다.
  • 안내 화면이 통째로 빈 화면이 되는 결함을 함께 고쳤습니다.
  • 5개 언어 모두에 넣었습니다.
  • 내부 검증 887건 · 화면 기준선 99장. versionCode 237.
v2.45.02026-07-28
지표를 지금 믿어도 되는지까지 말해 줍니다
  • 지표를 눌러 펼치면 지금까지는 관찰만 나왔습니다 — "값 84.3, 최근 60봉의 100% 지점, 4봉 전 70선 돌파, 과매수 5봉째". 정확하지만 그것만으로는 아무 판단도 되지 않습니다.
  • 이제 그 아래 "그래서 지금은" 한 줄이 붙습니다. 같은 관찰이라도 추세가 뚜렷한 구간에서는 "과매수는 되돌림 신호가 아니라 추세가 살아 있다는 뜻" 이고, 방향성이 약한 구간에서는 "과매수가 실제로 되돌림으로 이어지는 편" 입니다. 정반대입니다.
  • 초보자가 지표를 배우고도 지는 가장 흔한 이유가 여기 있습니다. "RSI 70이면 판다" 를 그대로 따르면 강한 상승 초입에서 팔고 남은 구간을 통째로 놓칩니다. 반대로 횡보 구간에서 MACD 교차를 따라가면 위아래로 계속 속습니다.
  • 구분은 ADX 로 합니다 — 방향이 아니라 방향성의 세기를 재는 지표입니다. 25 이상이면 추세, 20 미만이면 횡보, 그 사이는 "경계" 라고 그대로 말합니다. 둘로만 나누면 24.9와 25.1이 정반대 조언이 되는데, 그건 지표가 아니라 반올림을 따르는 것입니다.
  • 지표마다 결론이 다릅니다. RSI·스토캐스틱은 횡보장에서, MACD는 추세장에서 잘 맞습니다. 스퀴즈는 눌려 있는 동안 방향을 말하지 않습니다(풀리는 쪽이 방향입니다). OBV는 가격과 거래 흐름이 같은 방향인지를 말하되, 다이버전스가 이미 떠 있으면 비켜섭니다 — 같은 이야기를 두 번 하지 않기 위해서입니다.
  • 5개 언어 모두에 넣었습니다.
  • 내부 검증 876건 · 화면 기준선 98장. versionCode 236.
v2.44.22026-07-28
알림을 얼마나 자주 확인하는지 밝힙니다
  • 알림 화면에 "약 15분마다 확인합니다 — 그 사이에 잠깐 스쳐 간 값은 놓칠 수 있어요. 기기 절전 설정에 따라 더 늦어질 수 있습니다." 를 넣었습니다.
  • 예전 안내는 "임계값 도달 시 한 번 알립니다" 뿐이라 실시간으로 읽히기 쉬웠습니다. 15분 사이에 스쳐 간 값은 놓치는데, 차트에는 그 자국이 남아 있어 앱이 고장 난 것처럼 보입니다.
  • 화면에 적힌 주기와 실제 확인 주기가 어긋나지 않도록 내부 검사도 함께 넣었습니다.
  • 내부 검증 861건 · 화면 기준선 98장. versionCode 235.
v2.44.12026-07-28
알림이 무엇을 기준으로 재는지 밝힙니다
  • 기술적 신호·RSI 알림은 일봉으로 판단합니다. 화면의 기술적 분석은 여러분이 고른 기간(15분·1시간·4시간…)을 쓰기 때문에, 같은 RSI라도 값이 다릅니다. 화면엔 75인데 알림이 오지 않으면 고장으로 읽히기 쉬워서, 알림을 만들 때 그 사실을 적어 두었습니다.
  • 급등락 알림에 이미 같은 이유의 안내가 있었는데(직전 확인 대비 vs 24시간 등락률), 기술적 신호·RSI 쪽만 비어 있었습니다.
  • 내부 검증 859건 · 화면 기준선 98장. versionCode 234.
v2.44.02026-07-28
해외 코인 알림이 울리지 않던 문제
  • 업비트에 없는 코인(해외 전용)에 걸어 둔 RSI·기술적 신호 알림이 조용히 울리지 않았습니다. 알림이 시세 데이터를 업비트에서만 받아오고 있었기 때문입니다. 규칙은 켜져 있고 화면에도 정상으로 보여서, 알아챌 방법이 없었습니다.
  • 이제 알림도 화면과 같은 경로로 받아옵니다(업비트 → 바이낸스 → 비트겟 순으로 시도). 화면은 진작 그렇게 하고 있었는데 알림만 옛 방식이었습니다.
  • 가격·김프 알림은 영향이 없었습니다(다른 경로를 씁니다).
  • 내부 검증 857건 · 화면 기준선 98장. versionCode 233.
v2.43.22026-07-28
다이버전스 판정을 하나로 통일했습니다
  • 같은 화면이 두 가지 방법으로 다이버전스를 판정하고 있었습니다. 종합 판독은 옛 방식 (거래량 지표를 14봉 전과 단순 비교), 전용 줄은 새 방식(가격의 스윙 고점·저점을 짚어 비교). 서로 다른 답을 낼 수 있었고, 실제로 "다이버전스 감지"와 "없음"이 함께 뜰 수 있었습니다.
  • 이제 앱 전체가 같은 방법을 씁니다. 알림도 같은 함수를 쓰므로 알림 정확도도 함께 올라갑니다.
  • 종합 판독에서 기간 정렬·다이버전스 문장을 뺐습니다. 바로 아래 전용 줄이 같은 이야기를 더 구체적으로 하고 있어, 한 화면에서 두 번 읽게 되던 것입니다. (판단 자체는 그대로 신뢰도 계산에 쓰입니다.)
  • 내부 검증 856건 · 화면 기준선 98장. versionCode 232.
v2.43.12026-07-28
같은 말을 세 번 하지 않도록
  • 방금 넣은 「가격 구조」가 지지·저항과 피보나치를 다시 말하고 있었습니다. 같은 화면에 이미 두 곳(종합 판독 한 줄, 전용 레벨 행)이 같은 이야기를 하고 있어서, 읽는 사람은 같은 내용을 세 번 보게 됩니다.
  • 새 절을 쌓는 대신 기존 지지·저항 행의 값에 거리(%)를 붙였습니다.
  • *₩95,000 +2.1%* — 금액만으로는 코앞인지 한참인지 알 수 없었습니다 (코인마다 자릿수가 달라 ₩93,000,000 과 ₩1,051 을 같은 감각으로 볼 수 없습니다).
  • 「가격 구조」는 다른 곳이 말하지 않는 것만 남겼습니다 — 이동평균 배열·위치, 볼린저 상태, 최근 고저 대비.
  • 내부 검증 854건 · 화면 기준선 98장. versionCode 231.
v2.43.02026-07-28
가격 차트 자체도 읽어 드립니다
  • 코인 상세의 기술적 분석 맨 위에 「가격 구조는 이렇습니다」 가 나옵니다.
  • *5·10·20선이 위에서부터 차례로 놓였습니다(정배열)*
  • *20선 위 11.4% 지점입니다*
  • *가장 가까운 저항 ₩95,000까지 2.1% 남았습니다*
  • *볼린저 위쪽 띠에 붙어 있습니다*
  • 이동평균·볼린저·지지저항·피보나치는 예전부터 차트에 겹쳐 그리고 있었습니다. 하지만 겹쳐 그리는 것과 읽어 주는 것은 다릅니다 — 그 선들에서 문장을 뽑아내는 건 차트를 볼 줄 아는 사람만 할 수 있었습니다. 그 문장을 대신 만들어 드립니다.
  • 거리는 항상 %로 말합니다. 코인마다 가격 자릿수가 달라서 금액만으로는 가까운지 알 수 없습니다.
  • v2.42.0의 지표별 분석과 함께, 이제 가격 구조 → 근거(다이버전스·기간정렬·거래량) → 지표 하나하나 순서로 읽을 수 있습니다.
  • 5개 언어 모두 지원합니다. 내부 검증 854건 · 화면 기준선 98장. versionCode 230.
v2.42.02026-07-28
지표를 열면 "지금 이 차트가 무슨 상태인지" 읽어 드립니다
  • 지표를 눌러 펼치면 맨 위에 「지금 이 차트는」 이 나옵니다. 그 코인의 그 차트에서 실제로 읽어낸 사실을, 숫자와 함께 보여 줍니다.
  • *값 84.3 — 최근 60봉 범위에서 100% 지점입니다*
  • *최근 5봉 동안 14.7 올랐습니다*
  • *4봉 전 70선 위로 올라섰습니다*
  • *과매수 구간에 5봉째 머무는 중입니다*
  • 전문가가 차트를 볼 때 읽는 것을 그대로 담았습니다 — 어디에 있고 · 어디서 왔고 · 무엇을 언제 뚫었고 · 얼마나 오래 그 자리에 있고 · 속도가 붙는 중인지 빠지는 중인지. 지표마다 의미 있는 사건이 달라서(RSI는 70·30선, MACD는 신호선과 0선, 스토캐스틱은 %K·%D 교차, ADX는 25선과 +DI/−DI, 스퀴즈는 눌림이 이어진 길이, OBV는 신호선 대비) 각각 골라 읽습니다.
  • 모르면 말하지 않습니다. 자료가 모자라거나 사건이 오래됐으면 그 줄은 아예 나오지 않습니다. 빈칸을 채우려고 "특별한 신호 없음" 같은 말을 넣지 않았습니다.
  • 기존 해설(무엇을 보는 지표인가 / 어떻게 읽나 / 흔히 놓치는 점)은 그 아래에 그대로 있습니다.
  • 5개 언어 모두 지원합니다. 내부 검증 845건 · 화면 기준선 98장. versionCode 229.
v2.41.12026-07-28
차트를 어떻게 만지는지 알려 드립니다
  • 가격 차트 아래에 "두 손가락으로 확대 · 좌우로 밀어 이동 · 길게 누르면 그 시점의 시가·고가·저가·종가를 볼 수 있어요" 안내를 넣었습니다.
  • 세 가지 모두 예전부터 되던 기능인데 화면에 아무 표시가 없어서, 아는 사람만 쓰는 기능 이었습니다. 특히 길게 눌러 그 시점 값을 보는 기능은 차트에서 가장 쓸모 있는 조작입니다.
  • 내부 검증 832건 · 화면 기준선 98장. versionCode 228.
v2.41.02026-07-28
지표를 눌러 볼 수 있다는 걸 알려 드립니다
  • 코인 상세의 지표 그래프 위에 "지표를 누르면 크게 보고, 무슨 뜻인지 읽을 수 있어요" 안내를 넣었습니다. 12가지 기법의 초보자 해설을 v2.36.0~2.37.0에서 만들어 두었는데, 누를 수 있다는 표시가 작은 화살표 하나뿐이라 알아채기 어려웠습니다.
  • 아무리 잘 써 둔 설명도 닿지 않으면 없는 것과 같아서, 말로 알리는 쪽으로 바꿨습니다.
  • 내부 검증 831건 · 화면 기준선 98장. versionCode 227.
v2.40.82026-07-28
내부 점검 정확도 개선
  • 앱 동작에는 변화가 없습니다. 화면 갱신 성능과 관련된 내부 점검이 실제로는 일부만 보고 있으면서 통과하고 있던 것을 바로잡았습니다. 이제 얼마나 확인했는지 함께 알려 줍니다.
  • 확인 결과 화면으로 전달되는 모델 26개 전부가 정상 판정입니다.
  • 내부 검증 831건 · 화면 기준선 98장. versionCode 226.
v2.40.72026-07-28
오래 켜 둬도 메모리가 늘지 않도록
  • 코인·기간을 여러 개 오가며 오래 쓸 때 앱 안에 작은 항목이 계속 쌓이던 것을 막았습니다. (v2.39.0에서 통신 중복을 줄이며 들어간 부분입니다.) 상한을 두어 일정 개수를 넘지 않습니다.
  • 내부 검증 829건 · 화면 기준선 98장. versionCode 225.
v2.40.62026-07-28
숫자 자리에 이상한 글자가 뜨지 않도록
  • 앱 화면에 보이는 변화는 없습니다. 가격·등락률을 화면에 적는 함수 11개 전부에 대해, 비정상 수치가 들어와도 화면에 그대로 새어 나오지 않는지 자동으로 검사하도록 했습니다. (지금은 모두 정상입니다 — 새 표시 함수를 만들 때 빠뜨리는 것을 막기 위한 검사입니다.)
  • 내부 검증 827건 · 화면 기준선 98장. versionCode 224.
v2.40.52026-07-28
이상한 값으로 단정하지 않습니다
  • 거래소 응답에 비정상 수치가 섞였을 때, 거래량 확증이 *"거래량 없이 움직였습니다 (평소의 0.0배)"* 처럼 틀린 판정을 확신 있게 내놓을 수 있었습니다. 이제 그런 값이 섞이면 판정 자체를 하지 않습니다(줄이 아예 뜨지 않습니다).
  • 다이버전스도 같은 기준으로 맞췄습니다.
  • 판정을 못 하는 것과 틀린 판정은 다릅니다. 참고하시라고 만든 화면이라 후자를 막는 쪽을 택했습니다.
  • 내부 검증 825건 · 화면 기준선 98장. versionCode 223.
v2.40.42026-07-28
쓰지 않는 문구 정리
  • 화면에 쓰이지 않는 문구가 5개 언어에 남아 있던 것을 지웠습니다. 앱 동작에는 변화가 없습니다.
  • 앞으로 그런 문구가 남으면 배포 전에 걸리도록 내부 검사를 추가했습니다. 문구 하나는 곧 번역 다섯 벌이라, 남아 있으면 비용이자 "연결하는 것을 잊었다"는 신호이기도 합니다.
  • 내부 검증 822건 · 화면 기준선 98장. versionCode 222.
v2.40.32026-07-28
코인 상세가 조금 더 빨리 열립니다
  • 코인 상세를 열 때 같은 지표 계산이 두 번씩 돌고 있던 것을 한 번으로 줄였습니다. 화면에 보이는 내용은 같고, 여는 순간이 조금 가벼워집니다.
  • 내부 검증 820건 · 화면 기준선 98장. versionCode 221.
v2.40.22026-07-28
화면 읽어주기(스크린리더) 개선
  • 화살표(›)·구분점(·)·안내 표시(ⓘ) 처럼 눈으로만 의미가 있는 기호를 화면 읽어주기가 그대로 읽고 있었습니다. 목록을 훑을 때마다 항목 끝에 "동그라미 친 라틴 소문자 i" 같은 말이 붙어 나왔습니다.
  • 이제 이런 기호는 읽지 않고 건너뜁니다. 눈으로 보는 화면은 그대로입니다.
  • 뉴스 목록, 설정 목록, 지표 그래프, 근거 줄 등 앱 전체에 적용했습니다.
  • 내부 검증 819건 · 화면 기준선 98장. versionCode 220.
v2.40.12026-07-28
차트 위에서도 화면이 넘어갑니다
  • 앱 화면에 보이는 변화는 없습니다. 지표를 펼쳐 해설을 읽는 화면에서 차트 위에 손을 대고 위아래로 밀어도 화면이 넘어가야 한다는 동작을, 내부 검사로 고정했습니다. 차트가 세로 움직임까지 가져가면 정작 읽으라고 만든 글로 내려갈 수 없게 됩니다.
  • 내부 검증 816건 · 화면 기준선 98장. versionCode 219.
v2.40.02026-07-28
등락 색을 고를 수 있습니다
  • 설정 ▸ 등락 색에서 '상승 빨강'(기본)과 '상승 초록' 중에 고를 수 있습니다. 한국·일본·중국은 오르면 빨강, 미국·유럽은 오르면 초록으로 봅니다. 같은 화면이 나라에 따라 정반대로 읽히는 자리였습니다.
  • 기존에 쓰시던 색이 기본값이라, 아무것도 하지 않으면 화면은 그대로입니다.
  • 앱 화면과 홈 위젯이 함께 바뀝니다. 한쪽만 바뀌면 같은 코인이 두 곳에서 반대 색으로 보이게 됩니다.
  • 고를 때 실제 색을 함께 보여 줍니다(▲▼ 미리보기).
  • 내부 검증 810건 · 화면 기준선 98장. versionCode 218.
v2.39.22026-07-28
내부 검사가 헛돌지 않도록 했습니다
  • 앱 화면에 보이는 변화는 없습니다. 배포 전에 도는 자동 검사 중 소스를 훑어 "문제 없음"을 확인하는 검사 스물네 개가, 경로가 어긋나 아무 파일도 못 찾았을 때에도 똑같이 통과하는 구조였습니다. 실제로 그런 이유로 검사 하나가 한동안 아무것도 확인하지 않고 있었습니다.
  • 이제 훑는 동작 자체가 "볼 것이 실제로 있었는지"를 확인합니다. 새 검사를 추가할 때 깜빡할 여지를 없앴습니다.
  • 내부 검증 804건 · 화면 기준선 93장. versionCode 217.
v2.39.12026-07-28
판정 기준을 한 곳으로 모았습니다
  • 앱 화면에 보이는 변화는 없습니다. 같은 판정 기준이 코드 네 곳에 흩어져 있던 것을 한 곳으로 모았습니다. 그대로 두면 한 곳만 고쳤을 때 같은 화면에서 "1시간·4시간·일봉이 모두 위를 봅니다"와 "정렬 아님"이 함께 뜰 수 있었습니다.
  • 내부 검증을 두 건 늘렸습니다. 하나는 그 기준이 다시 흩어지는 것을 막고, 다른 하나는 소스에 보이지 않는 제어문자가 섞이는 것을 막습니다(그런 문자가 검사식에 들어가면 그 검사가 아무것도 확인하지 않으면서 통과합니다).
  • 내부 검증 802건 · 화면 기준선 93장. versionCode 216.
v2.39.02026-07-28
여러 근거가 같은 말을 하는지 확인해 드립니다
  • 기간 정렬 — 1시간·4시간·일봉을 각각 판정해 세 기간이 같은 방향을 보는지 알려 줍니다. 세 칩은 예전부터 있었지만 "다 위를 보는가"를 세는 건 보는 사람 몫이었습니다.
  • *"1시간·4시간·일봉이 모두 위를 봅니다"* / *"기간마다 방향이 엇갈립니다"*
  • 엇갈릴 때도 알립니다. 엇갈린다는 사실 자체가 "지금은 크게 기울일 때가 아니다"라는 쓸모 있는 판단이기 때문입니다.
  • 거래량 확증 — 최근 움직임에 평소보다 많은 거래량이 실렸는지 판정합니다.
  • *"최근 움직임에 거래량이 실렸습니다 (평소의 1.8배)"* / *"거래량 없이 움직였습니다"*
  • 절대 수치가 아니라 그 코인의 평소 거래량과 견줍니다 — 거래소마다 집계 기준이 다릅니다.
  • 다이버전스(v2.38.0)를 포함해 세 가지 근거 줄의 생김새를 통일했습니다. 모두 옆의 ⓘ 를 누르면 무슨 뜻인지, 그리고 어떻게 잘못 읽기 쉬운지를 읽을 수 있습니다.
  • 내부 검증 799건 · 화면 기준선 93장. versionCode 215.
v2.38.02026-07-28
다이버전스를 찾아서 알려 드립니다
  • 가격과 지표가 서로 다른 말을 하는 구간(다이버전스)을 자동으로 찾아 알려 줍니다. 전문가들이 지표에서 가장 신뢰하는 신호 중 하나인데, 초보자는 거의 보지 않는 것입니다.
  • 예) *"가격은 새 고점인데 RSI는 못 따라왔습니다"* — 가격은 올랐지만 밀어 올린 힘은 줄었다는 뜻입니다.
  • 발견됐을 때만 코인 상세에 표시되고, 옆의 ⓘ 를 누르면 무슨 뜻인지 읽을 수 있습니다.
  • 판정 방식을 바로잡았습니다. 이전에는 거래량 지표(OBV)에 대해서만, 그것도 "14봉 전과 지금"을 단순 비교하는 방식이었습니다. 두 시점이 우연히 어디에 걸리느냐에 따라 흐름이 이어지는 중에도 신호가 뜨고, 정작 뚜렷한 고점 대비 고점에서는 놓쳤습니다. 이제 가격의 스윙 고점끼리·저점끼리를 짚어 지표의 같은 자리와 견줍니다(RSI·MACD).
  • 해설에 이런 문장을 넣었습니다 — *"곧 방향이 뒤집힌다는 뜻이 아닙니다. 다이버전스만 보고 반대로 베팅하는 것이 초보자가 가장 크게 다치는 길입니다."*
  • 내부 검증 786건 · 화면 기준선 93장. versionCode 214.
v2.37.02026-07-28
차트 기법 12가지에 초보자 해설을 붙였습니다
  • v2.36.0 의 지표 해설(RSI·스토캐스틱·MACD·스퀴즈·ADX·OBV)에 이어, 앱이 화면에 그리는 나머지 기법에도 해설을 붙였습니다. 이제 12가지 전부입니다.
  • 이동평균 5·10·20 · 볼린저 밴드 · VWAP · 거래량 — 지표 그래프 아래 '차트 기법 더 배우기' 칩에서 열립니다.
  • 주요 지지·저항 · 피보나치 되돌림 — 제목 옆의 ⓘ 를 누르면 열립니다.
  • 모두 같은 형식입니다 — 무엇을 보는 지표인가 / 어떻게 읽나 / 초보자가 흔히 놓치는 점. 5개 언어 모두 지원합니다.
  • 내용은 "이 선이 이러면 사라"가 아니라 왜 그렇게 읽으면 안 되는지를 함께 적었습니다. 예를 들어 피보나치는 "숫자에 특별한 힘이 있는 것이 아니라 많은 사람이 같은 자리를 보기 때문에 반응이 생긴다", 거래량은 "초보자가 가장 자주 빠뜨리는 확인" 이라는 식입니다.
  • 내부 검증 777건 · 화면 기준선 92장. versionCode 213.
v2.36.02026-07-28
지표 차트를 눌러 크게 보고, 뜻까지 읽습니다
  • 코인 상세의 지표 그래프(RSI·스토캐스틱·MACD·스퀴즈·ADX·OBV)를 누르면 크게 펼쳐집니다.
  • 두 손가락으로 벌려 확대하고 좌우로 밀어 지난 구간을 볼 수 있습니다. 목록에서는 최근 구간만 보여 주지만, 펼친 화면에서는 전체 구간을 훑을 수 있습니다.
  • 각 지표마다 무엇을 보는 지표인지 · 어떻게 읽는지 · 초보자가 흔히 놓치는 점을 쉬운 말로 함께 실었습니다. 5개 언어 모두 지원합니다.
  • 맨 위에는 지금 그 지표가 어떤 상태인지를 요약해 보여 줍니다(목록과 같은 판정입니다).
  • 같은 자료를 두 번 받아오던 문제를 고쳤습니다. 코인 상세를 열 때 1시간·4시간·일봉 캔들을 화면 두 곳에서 따로 요청해, 3번이면 될 통신이 6번 나가고 있었습니다. 이제 한 번만 받아 나눠 씁니다 — 상세 화면이 더 빨리 뜨고 데이터도 덜 씁니다.
  • 계산기 청산가에서 레버리지 1배 미만 입력 방어(v2.35.2)에 이어, 내부 검사에 접속처 고지 누락 방지를 추가했습니다. 앱이 접속하는 모든 곳은 '데이터 출처'에 적혀 있어야 하며, 빠지면 빌드가 실패합니다.
  • 내부 검증 774건 · 화면 기준선 91장. versionCode 212.
v2.35.22026-07-28
김프 실수익 계산기가 수수료를 두 번 반영합니다
  • 김프 실수익 계산기가 수수료를 실제보다 적게 빼고 있었습니다. 결과에는 "수수료(왕복)"이라고 적혀 있었지만 계산은 한 번만 하고 있었습니다. 차익거래는 해외에서 사고 국내에서 파는 두 번의 거래이고, 거래소 수수료는 어디서나 편도(한 번 체결) 기준으로 안내되기 때문에 실제 비용의 절반만 반영된 셈이었습니다. 이제 매수·매도 양쪽에 적용합니다. 매도 수수료는 프리미엄이 붙어 커진 금액에 붙으므로 매수 쪽보다 조금 더 큽니다.
  • 예) 투자금 100만 · 김프 3% · 편도 수수료 0.2% → 이전 실수익 +₩28,000 → +₩25,884 (실제에 가깝습니다)
  • 입력칸 이름을 '편도 수수료 %' 로 바꿔 무엇을 넣는 값인지 분명히 했습니다(5개 언어).
  • 결과 아래에 계산에 빠진 항목을 밝혔습니다 — 출금(송금) 수수료, 전송 중 시세 변동, 환전 스프레드. 이 항목들은 프리미엄보다 클 수 있습니다.
  • 청산가 계산기에서 레버리지에 1배 미만(예: 0.5)을 넣으면 음수 청산가가 나오던 것을 막았습니다. 계산이 성립하지 않는 입력이라 결과를 비웁니다.
  • 내부 검증 763건 · 화면 기준선 89장. versionCode 211.
v2.35.12026-07-28
첫 실행 동의 화면이 시스템 표시줄에 가리지 않습니다
  • 앱을 처음 켰을 때 나오는 이용약관 동의 화면이 위쪽 상태 표시줄과 아래쪽 내비게이션 버튼 영역까지 내용을 그리고 있었습니다. 글이 길어 스크롤되는 경우(주로 세로 화면 휴대폰) 맨 아래 '동의하고 시작' 버튼이 내비게이션 바에 가릴 수 있었습니다. 앱에 처음 들어오는 관문이라 여기서 막히면 다른 길이 없어 우선 고쳤습니다.
  • 내부 검증 760건 · 화면 기준선 89장. versionCode 210.
v2.35.02026-07-28
키보드가 화면을 가리지 않습니다
  • 키보드를 올린 채로 입력할 때 화면 아래쪽이 가려지던 문제를 고쳤습니다. 특히 뉴스에서 제목을 검색해 결과가 없을 때, "검색 결과가 없습니다." 안내가 키보드 뒤에 숨어 화면이 그냥 비어 보였습니다. 로딩 중인지 고장인지 결과가 없는 건지 알 수 없었습니다.
  • 검색·알림·보유자산·계산기 등 입력이 있는 모든 화면(6개 화면, 입력칸 17개)에 함께 적용했습니다. 화면마다 따로 손대지 않고 한 곳에서 처리해, 앞으로 새 입력 화면이 생겨도 같은 문제가 반복되지 않습니다.
  • 내부 검증 758건 · 화면 기준선 89장. versionCode 209.
v2.34.12026-07-28
배포 검증 도구 보완
  • 앱 동작 변경은 없습니다. 배포 후 자동 검증이 스토어의 다운로드 제한(429)에 걸렸을 때 "실패"가 아니라 "확인 못 함"으로 구분해 보고하도록 고쳤습니다. 확인한 부분과 못 한 부분을 나눠 알려 줍니다.
  • 내부 검증 755건 · 화면 기준선 89장. versionCode 208.
v2.34.02026-07-28
새 스토어 주소(bsplanet.app) 대응
  • 앱스토어 주소가 bsplanet.app으로 바뀌었습니다. 앱 안의 스토어 링크와 업데이트 확인이 새 주소를 쓰도록 맞췄습니다.
  • 이전 주소도 계속 허용합니다. 예전 버전을 쓰는 분들의 업데이트가 끊기지 않도록 한 안전장치이며, 새 주소로 옮겨 가는 동안 둘 다 동작합니다.
  • 이 버전부터 '지금 업데이트'가 새 주소에서 내려받습니다(무결성 검증·서명 확인은 그대로).
  • 내부 검증 755건 · 화면 기준선 89장. versionCode 207.
v2.33.62026-07-28
스토어 설명에 뉴스 안내 추가
  • 앱 동작 변경은 없습니다. 스토어의 앱 소개에 뉴스 기능이 빠져 있던 것을 10개 언어에 모두 채웠습니다(공식 RSS 13곳 선택 · 30일 보관 · 제목 검색 · 원문은 브라우저).
  • 내부 검증 755건 · 화면 기준선 89장. versionCode 206.
v2.33.52026-07-28
5개 언어 화면 검증 완성
  • 앱 동작 변경은 없습니다. 번체 중국어까지 화면 검증 기준을 추가해 출시 언어 5종이 모두 덮였습니다.
  • 앞으로 언어를 새로 지원하면 화면 기준이 없을 때 빌드가 실패합니다. 언어 추가는 번역 파일만 늘리면 되는 것처럼 보이지만, 그 언어에서만 깨지는 화면이 따라옵니다.
  • 내부 검증 755건 · 화면 기준선 89장. versionCode 205.
v2.33.42026-07-28
영어 화면 자동 검증 추가
  • 앱 동작 변경은 없습니다. 출시 언어 5종 중 영어만 화면 검증 기준이 없었습니다. 뉴스 화면의 영어 표시(검색란·날짜·목록 끝 안내)를 기준으로 잡았습니다.
  • 내부 검증 754건 · 화면 기준선 88장. versionCode 204.
v2.33.32026-07-28
품질 문서의 숫자 정정
  • 앱 동작 변경은 없습니다. 테스트 계획서가 검증 수를 실제의 1/5로 적고 있던 것을 고쳤습니다 (단위 140 → 754, 화면 38 → 87). 이제 이 숫자도 자동으로 대조됩니다.
  • 내부 검증 754건 · 화면 기준선 87장. versionCode 203.
v2.33.22026-07-28
번역 누락 자동 검사
  • 앱 동작 변경은 없습니다. 5개 언어 중 하나라도 번역이 빠지면 빌드가 실패하도록 했습니다. 안드로이드는 번역이 없으면 조용히 한국어를 보여 주기 때문에, 그동안은 해당 언어를 쓰는 사람만 알 수 있었습니다(현재 상태는 488개 전부 정상).
  • 내부 검증 753건 · 화면 기준선 87장. versionCode 202.
v2.33.12026-07-28
점검 기록 보완
  • 앱 동작 변경은 없습니다. 네트워크가 끊겼을 때의 동작은 현재 장비 구성으로는 확인할 수 없다는 사실과 그 이유를 기록했습니다(무선 디버깅이라 WiFi 를 끄면 점검 채널도 끊깁니다).
  • 내부 검증 751건 · 화면 기준선 87장. versionCode 201.
v2.33.02026-07-28
코인 정보의 출처를 밝힙니다
  • 코인 상세의 '코인 정보'(시가총액·유통량·사상 최고가)에 출처 표기를 넣었습니다. 이 값들은 CoinGecko 글로벌 집계라 시트 위쪽의 거래소 시세와 기준이 다릅니다. 그래서 `사상 최고가 (-46.4%)`를 위의 원화 시세로 직접 계산하면 조금 어긋나는데, 그 차이가 바로 같은 화면에 있는 김치 프리미엄입니다.
  • 공포지수 카드와 김프 패널은 이미 출처를 적고 있었는데 여기만 빠져 있었습니다.
  • 내부 검증 751건 · 화면 기준선 87장. versionCode 200.
v2.32.72026-07-28
코인 상세 화면 전체 점검
  • 앱 동작 변경은 없습니다. 코인을 탭해 여는 상세 화면을 끝까지 훑어 기술적 분석·코인 정보· 김치 프리미엄·코인 비교가 모두 정상 표시되는지 확인했습니다(글자 잘림·크래시 없음).
  • 김치 프리미엄 화면에 적힌 계산 근거(한국가·글로벌가·환율)가 실제 값과 맞는지도 검산했습니다.
  • 내부 검증 751건 · 화면 기준선 87장. versionCode 199.
v2.32.62026-07-28
뒤로가기 동작 실기기 확인
  • 앱 동작 변경은 없습니다. 시스템 뒤로가기가 앱을 끄지 않고 이전 화면으로 돌아가는지를 실기기에서 확인했습니다. 특히 뉴스 출처 화면은 어디서 들어왔는지에 따라 설정 또는 뉴스로 되돌아갑니다.
  • 내부 검증 751건 · 화면 기준선 87장. versionCode 198.
v2.32.52026-07-28
인수인계 문서 정리
  • 앱 동작 변경은 없습니다. 오늘 새로 생긴 규칙·점검 도구 14가지를 "무엇을 고정하나 / 어겼을 때 무슨 일이 생기나" 표로 정리했습니다.
  • 내부 검증 751건 · 화면 기준선 87장. versionCode 197.
v2.32.42026-07-28
모아 둔 기사가 앱 업데이트에도 남는지 확인
  • 앱 동작 변경은 없습니다. 뉴스 기능의 핵심 약속을 실제로 확인했습니다 — 어제 385건이던 보관 기사가 오늘 507건이 됐고, 가장 오래된 기사는 5일 전 것입니다. 그 사이 앱을 25번 업데이트했는데도 지워지지 않았습니다.
  • 내부 검증 751건 · 화면 기준선 87장. versionCode 196.
v2.32.32026-07-28
표시 값 정확도 재확인
  • 앱 동작 변경은 없습니다. 화면에 뜨는 숫자가 실제 거래소 값과 맞는지 다시 대조했습니다. 시세·등락률 6종 모두 업비트와 정확히 일치했고, 김치 프리미엄 계산에 쓰는 환율도 ECB 공시와 0.002% 차이로 일치했습니다.
  • 확인 방법도 함께 기록했습니다(잘못된 방법으로 재면 멀쩡한 값이 틀려 보입니다).
  • 내부 검증 751건 · 화면 기준선 87장. versionCode 195.
v2.32.22026-07-28
코인 비교 화면 자동 검증 추가
  • 앱 동작 변경은 없습니다. 코인 상세의 '다른 코인과 비교'를 열었을 때 보이는 첫 화면에 자동 검증이 없었습니다(후보 코인 칩과 안내 문구). 이제 검증합니다.
  • 내부 검증 751건 · 화면 기준선 87장. versionCode 194.
v2.32.12026-07-28
줄바꿈 변경 검증 마무리
  • 앱 동작 변경은 없습니다. 직전 버전의 줄바꿈 개선이 큰 글꼴·긴 문장·실제 뉴스 제목에서도 문제없는지 확인하고 기록했습니다(잘림 없음, 실행 속도·스크롤 영향 없음).
  • 내부 검증 751건 · 화면 기준선 86장. versionCode 193.
v2.32.02026-07-28
글이 단어 한가운데서 끊기지 않습니다
  • 앱 전체에서 줄바꿈이 단어 경계에서 일어납니다. 지금까지는 한국어에서도 `배|터리`, `그|래서`, `바이낸|스`처럼 단어 한가운데가 갈라져, 읽다가 되돌아가 단어를 잇게 됐습니다. 약관·신뢰 안내·알림 설명처럼 문장이 긴 화면에서 특히 눈에 띕니다.
  • 일본어·중국어도 같이 좋아집니다(`キムチプレミ|アム` 같은 갈라짐).
  • 글자가 잘리거나 사라지는 곳은 없습니다(화면 기준선 86장 전수 확인 — 26장이 배치만 바뀜).
  • 내부 검증 751건 · 화면 기준선 86장. versionCode 192.
v2.31.52026-07-28
일본어 시작 화면 다듬기
  • 일본어 표기를 앱 안에서 통일했습니다. 시작 화면만 `恐怖強欲`으로 붙여 쓰고 다른 화면은 `恐怖・強欲`이었습니다(신규 사용자가 처음 보는 화면이 비표준 표기였습니다).
  • 일본어·중국어에서 단어 한가운데가 갈라지던 줄바꿈을 고쳤습니다 (`一画|面に。`, `キムチプレミ|アム`). 한중일은 단어 사이에 공백이 없어 아무 데서나 끊기는데, 이제 구(句) 단위로 끊습니다.
  • 한국어·영어 화면은 그대로입니다.
  • 내부 검증 751건 · 화면 기준선 86장. versionCode 191.
v2.31.42026-07-28
뉴스 화면 성능 실측 기록
  • 앱 동작 변경은 없습니다. 30일치를 쌓는 뉴스 목록이 실제로 부드러운지 재서 기록했습니다. 스크롤 끊김 0.00%(647프레임), 150회 연속 스크롤 후에도 메모리 증가는 2MB 수준입니다.
  • 스크롤 끊김도 버전마다 자동으로 대조하도록 점검 도구를 넓혔습니다.
  • 내부 검증 751건 · 화면 기준선 84장. versionCode 190.
v2.31.32026-07-28
앱이 더 빨리 열립니다
  • 앱 실행 시간이 0.52초 → 0.43초로 빨라졌습니다(17% 단축, 8회 측정 중앙값). 홈 화면이 화면 밖 카드까지 한꺼번에 그린 뒤에야 첫 화면이 나왔습니다. 이제 보이는 카드부터 그리고 나머지는 스크롤할 때 만듭니다.
  • 스크롤도 조금 더 부드러워졌습니다(끊김 0.67% → 0.46%).
  • 카드 구성·순서·모양은 그대로입니다.
  • 내부 검증 751건 · 화면 기준선 84장. versionCode 189.
v2.31.22026-07-28
시작 속도를 릴리스마다 재도록
  • 앱 동작 변경은 없습니다. 앱 실행 속도를 버전마다 자동으로 재고 이전 값과 대조하는 점검을 넣었습니다.
  • 다시 재 보니 실행 시간이 예전 기록(0.44초)보다 느려져 있었습니다(0.52초). 스크롤은 그대로입니다. 언제부터인지 특정하지 못해, 원인 대신 다음부터는 바로 알아채도록 하는 쪽을 먼저 했습니다.
  • 내부 검증 751건 · 화면 기준선 84장. versionCode 188.
v2.31.12026-07-28
뉴스의 "N분 전"이 화면을 열어 두면 멈추던 문제
  • 뉴스 목록과 홈 뉴스 카드의 시각 표시가 그 자리에 멈춰 있던 문제를 고쳤습니다. 화면을 열어 둔 채 두면 "18분 전"이 계속 "18분 전"이었습니다(실제로는 40분 전인데). 시세·급등락 화면은 이미 흘렀는데 뉴스만 빠져 있었습니다.
  • 자정을 넘기면 날짜 머리글도 "오늘"에서 "어제"로 바뀝니다.
  • 시각을 그리는 가장 작은 부분만 다시 그리게 해서 목록이 길어도 부드럽습니다.
  • 내부 검증 751건 · 화면 기준선 84장. versionCode 187.
v2.31.02026-07-28
잘못된 발행 날짜가 목록 맨 위에 영구히 남던 문제
  • 뉴스 매체가 발행 시각을 미래로 잘못 보내면(예: 2099년 — 흔한 오타) 그 기사가 최신순 맨 위를 영원히 차지하고, 30일 보관 기한에도 걸리지 않아 지워지지도 않았습니다. 이제 한 시간 넘게 앞선 시각은 받은 시각으로 맞춥니다. 기사를 버리지는 않습니다 (발행사 시계가 어긋난 진짜 기사일 수 있어, 한 번 위에 왔다가 정상적으로 밀려납니다).
  • 이미 저장된 그런 기사도 다음 새로고침 때 자동으로 정리됩니다.
  • 내부 검증 749건 · 화면 기준선 84장. versionCode 186.
v2.30.122026-07-28
나중에 되돌리기 쉬운 판단 두 가지를 고정
  • 앱 동작 변경은 없습니다. 바꾸면 조용히 나빠지는 두 가지를 자동 검증으로 못 박았습니다.
  • 위젯의 시각은 `09:00` 같은 절대 시각입니다. 위젯은 스스로 다시 그리지 않아서 "3분 전"으로 바꾸면 그 문구가 그 자리에 굳습니다(09:45에도 "3분 전").
  • 유통량 표시(`1.2억 개`)와 금액 표시(`1억`)는 소수 자릿수가 일부러 다릅니다. 코드가 닮아 합치기 쉬운데, 합치면 화면 숫자가 조용히 바뀝니다.
  • 내부 검증 746건 · 화면 기준선 84장. versionCode 185.
v2.30.112026-07-27
목록이 길어져도 화면이 끊기지 않도록
  • 앱 동작 변경은 없습니다. 뉴스를 30일간 모아 두면서 화면에서 저장소를 읽는 경로가 늘었는데, 그 읽기가 화면 그리는 흐름을 막지 않는지를 자동 검증에 넣었습니다(막으면 목록이 길수록 스크롤이 끊깁니다).
  • 내부 검증 741건 · 화면 기준선 84장. versionCode 184.
v2.30.102026-07-27
기기 점검 도구 추가
  • 앱 동작 변경은 없습니다. 실기기 화면 점검이 연결이 끊겨도 조용히 옛 결과를 읽던 문제를 없앤 점검 도구를 추가했습니다(끊기면 그 자리에서 중단합니다).
  • 업데이트 배너 '닫기' 동작을 실기기에서 확인해 기록했습니다.
  • 내부 검증 739건 · 화면 기준선 84장. versionCode 183.
v2.30.92026-07-27
점검 문서를 새 뉴스 기능에 맞춤
  • 앱 동작 변경은 없습니다. 품질 점검 문서가 옛 동작을 적고 있던 것을 고쳤습니다 (뉴스 전체 화면이 "20건"으로 적혀 있었는데, 지금은 30일치를 페이지 단위로 보여 줍니다).
  • 검색·페이지 로딩·날짜 머리글·30일 보관·중복 방지에 대한 점검 항목을 추가하고, 오늘 실기기에서 확인한 결과를 근거와 함께 기록했습니다.
  • 내부 검증 739건 · 화면 기준선 84장. versionCode 182.
v2.30.82026-07-27
언어를 바꿔도 알림 제목이 옛 언어로 오던 문제
  • 알림 제목의 코인 이름이 알림을 만든 시점의 언어로 굳어 있던 문제를 고쳤습니다. 한국어로 알림을 만든 뒤 앱 언어를 영어로 바꾸면, 앱은 전부 영어인데 알림만 `BTC 비트코인 · Price above` 처럼 섞여 왔습니다. 이제 알림을 보낼 때의 언어로 표시됩니다.
  • 설정에서 뺀 코인의 알림은 저장된 이름을 그대로 씁니다(이름이 비지 않도록).
  • 내부 검증 739건 · 화면 기준선 84장. versionCode 181.
v2.30.72026-07-27
코인 이름 표기 규칙 일원화
  • 화면마다 따로 적혀 있던 코인 이름 표기 규칙(한국어는 한글명, 그 외 언어는 영문명)을 한 곳으로 모았습니다. 한 곳만 고쳐도 시세 화면과 급등락 화면의 이름이 달라질 수 있는 구조였습니다.
  • 영문명이 없는 코인은 한글명을 그대로 보여 줍니다(이름이 비는 일 없음).
  • 표시 결과는 이전과 같습니다.
  • 내부 검증 736건 · 화면 기준선 84장. versionCode 180.
v2.30.62026-07-27
일본어·중국어 화면 자동 검증 추가
  • 지금까지 화면 검증 그림 81장이 모두 한국어였습니다. 이 앱은 예전에 일본어에서만 나는 잘림 결함을 겪은 적이 있어(번역 버튼이 카드 밖으로 밀림), 언어별로도 확인이 필요합니다. 뉴스 화면의 일본어·중국어(간체) 기준을 추가했습니다.
  • 날짜 머리글이 언어별 형식으로 나오는지(`2023. 11. 13.` · `2023/11/13` · `2023年11月13日` · `Nov 13, 2023`) 자동 검증에 넣었습니다.
  • 앱 동작·표시에는 변화가 없습니다.
  • 내부 검증 732건 · 화면 기준선 84장. versionCode 179.
v2.30.52026-07-27
기사가 조용히 잘리던 상한 제거
  • 한 번에 받은 기사가 800건을 넘으면 나머지를 버리던 상한을 없앴습니다. 최신순으로 정렬한 뒤에 자르기 때문에 오래된 기사부터 사라졌습니다 — 기사를 모아 두는 기능이 막으려던 바로 그 누락이었습니다. 이제 출처별 상한(100건)만 두고, 받은 것은 모두 보관합니다.
  • 앱 동작·표시에는 다른 변화가 없습니다.
  • 내부 검증 730건 · 화면 기준선 81장. versionCode 178.
v2.30.42026-07-27
뉴스 날짜 머리글 접근성 + 포트폴리오 화면 검증 복구
  • 스크린리더에서 뉴스의 날짜(오늘·어제·날짜)를 제목으로 읽습니다. 30일치를 모아 두면 목록이 수백 건이 되는데, 지금까지는 어제 기사로 가려면 오늘 기사를 전부 넘겨야 했습니다. 이제 "다음 제목으로 이동"으로 날짜 단위로 건너뜁니다.
  • 포트폴리오 화면의 자동 검증이 합계 카드를 보지 못하고 있었습니다. 검증용 그림이 "손익 불러오는 중…" 상태로 저장돼, 평가액·손익·자산 배분 원그래프·비중이 하나도 확인되지 않았습니다. 이제 시세가 들어온 화면이 저장돼 검증됩니다.
  • 앱 동작에는 변화가 없습니다.
  • 내부 검증 726건 · 화면 기준선 81장. versionCode 177.
v2.30.32026-07-27
넓은 화면 정리 마무리 + 첫 화면 검증 복구
  • 급등락 화면·시작 화면·동의 화면도 넓은 화면에서 읽기 좋은 폭으로 묶었습니다. 지난 버전에서 "표는 넓을수록 낫다", "가운데 정렬이니 괜찮다"고 판단해 빼 뒀는데, 실제로 그려 보니 급등락 목록은 코인 이름과 가격 사이가 700px 넘게 벌어졌고 시작 버튼은 화면 폭만큼 늘어나 있었습니다.
  • 시작 화면(첫 실행 시 보이는 소개 화면)의 자동 검증이 사실은 비어 있었습니다. 등장 애니메이션 때문에 검증용 그림이 빈 배경으로 저장되고 있었습니다. 이제 실제 화면이 저장돼 검증됩니다.
  • 앱 동작에는 변화가 없습니다(휴대폰 화면 기준 표시도 그대로).
  • 내부 검증 726건 · 화면 기준선 81장. versionCode 176.
v2.30.22026-07-27
태블릿·폴더블 가로에서 글이 흩어지던 문제
  • 넓은 화면에서 목록·설정이 화면 끝까지 늘어나던 것을 읽기 좋은 폭으로 묶고 가운데 정렬했습니다. 기사 제목은 왼쪽 끝, 번역 버튼은 오른쪽 끝에 떨어져 있어 같은 기사에 속한 것으로 보이지 않았습니다(알림의 켜기 스위치·삭제 버튼도 마찬가지).
  • 뉴스 · 알림 · 포트폴리오 · 설정 · 계산기 · 뉴스 출처 · 약관 화면에 적용했습니다.
  • 휴대폰 화면에서는 아무것도 바뀌지 않습니다(기준선 78장이 한 픽셀도 다르지 않음).
  • 내부 검증 723건 · 화면 기준선 80장. versionCode 175.
v2.30.12026-07-27
뉴스 검색이 새로고침 때 풀리던 문제
  • 검색 결과가 없을 때 새로고침하면 검색이 풀린 채 전체 목록이 나오던 문제를 고쳤습니다. "결과가 없음"과 "저장소를 못 읽음"을 앱이 같게 보고 있었습니다.
  • 저장소를 못 읽는 상황에서도 입력한 검색어는 계속 적용됩니다.
  • 새로고침과 다음 장 읽기가 겹칠 때 같은 기사가 두 번 들어가 목록이 죽을 수 있던 경로를 막았습니다.
  • 기사를 보관하지 못하는 상황에서는 "30일간 보관합니다" 안내를 띄우지 않습니다(못 지킬 약속).
  • 내부 검증 721건 · 화면 기준선 78장. versionCode 174.
v2.30.02026-07-27
뉴스: 받은 기사를 쌓아 두고, 찾을 수 있게
  • 한 페이지가 전부였던 뉴스 목록이 계속 이어집니다. 예전에는 최근 40건만 보였고 그마저 앱을 껐다 켜면 다시 받아 온 것만 남았습니다. 이제 받은 기사를 기기에 30일간 모아 두고 목록 끝에 닿으면 다음 장이 자동으로 이어집니다(실측: 한 번 조회에 385건 · 5일치).
  • 하루라도 앱을 안 켜서 생기던 누락이 없어졌습니다. RSS 는 최근 몇십 건만 주기 때문에 그 사이 올라온 기사는 그냥 사라졌습니다. 출처당 읽는 양도 20건 → 100건으로 늘렸습니다.
  • 제목으로 검색할 수 있습니다. 여러 단어를 넣으면 모두 포함된 기사만 찾습니다.
  • 날짜별로 묶어 보여 줍니다(오늘 · 어제 · 날짜) — 어느 날 기사인지, 빠진 날은 없는지 바로 보입니다.
  • 검색 결과가 없을 때와 불러오지 못했을 때를 다른 문구로 구분합니다(예전엔 둘 다 "불러오지 못했습니다").
  • 앱을 업데이트해도 모아 둔 기사는 지워지지 않습니다.
  • 내부 검증 715건 · 화면 기준선 77장. versionCode 173.
v2.29.72026-07-27
시장 맥박이 실패를 "수집 중"이라고 말하던 문제
  • 모든 지표를 못 받았을 때 "데이터 수집 중…"이라고 표시되던 문제를 고쳤습니다. 실제로는 불러오기에 실패한 상태인데 아직 일하는 중인 것처럼 보였습니다. 이제 "네트워크를 확인하고 다시 시도해 주세요."로 표시됩니다(첫 조회 중일 때는 지금처럼 "수집 중"입니다).
  • 포트폴리오 빈 화면·뉴스 불러오기 실패 화면도 자동 검증 대상에 넣었습니다.
  • 내부 검증 704건 · 화면 기준선 74장. versionCode 172.
v2.29.62026-07-27
오류·로딩 화면 회귀 검증 추가 (화면 변화 없음)
  • 시세 카드가 비어 있을 때 나오는 세 화면(불러오는 중 · 통신 실패 · 코인 미선택)을 자동 검증 대상에 넣었습니다. 지금까지는 정상 목록만 검증하고 있어서, 문제 상황에서 실제로 보시는 화면이 깨져도 알 수 없었습니다.
  • 이번 버전은 보이는 변화가 없는 정비 릴리스입니다.
  • 내부 검증 704건 · 화면 기준선 70장. versionCode 171.
v2.29.52026-07-27
탐색 화면이 실패했을 때 조회 시각을 지웁니다
  • 탐색(급등락) 화면에서 불러오기에 실패했는데 "0초 전"이 함께 뜨던 문제를 고쳤습니다. 목록이 없는 화면에서 조회 시각을 보여 주면 없는 자료의 신선도를 말하는 셈이었습니다. 이제 목록이 실제로 있을 때만 표시됩니다.
  • 내부 검증 704건. versionCode 170.
v2.29.42026-07-27
배포 절차 정비 (화면 변화 없음)
  • 앱을 내보내는 과정에서 예전 파일이 새 버전으로 올라가는 일이 없도록 자동 확인을 넣었습니다. 실제로 그런 일이 한 번 있었고(몇 분 내 정정), 사람이 눈으로 확인하던 단계를 전부 자동 대조로 바꿨습니다.
  • 이번 버전은 보이는 변화가 없는 정비 릴리스입니다.
  • 내부 검증 704건. versionCode 169.
v2.29.32026-07-27
화면을 켜 둘 때 불필요한 다시 그리기 제거
  • "N분 전" 표시가 1초마다 화면을 다시 그리던 것을 고쳤습니다. 글자는 1분에 한 번만 바뀌는데 그 사이 59번은 아무것도 바꾸지 않는 다시 그리기였습니다. 탐색(급등락) 화면을 켜 둔 채로 두면 30초에 30번 그리던 것이 0번이 됐습니다. 눈에 보이던 문제는 아니지만 배터리를 쓰던 동작입니다.
  • 1분 미만일 때는 지금처럼 1초마다 갱신됩니다(초 단위로 보여야 하니까요).
  • 내부 검증 704건. versionCode 168.
v2.29.22026-07-27
뉴스 출처 선택 화면 개선
  • 뉴스 출처 목록에서 한 줄에 누를 곳이 두 군데였던 것을 하나로 합쳤습니다. 줄 전체를 누르나 체크박스를 누르나 같은 동작인데 따로 취급되고 있었습니다.
  • 화면 낭독에서 매체 이름과 선택 여부를 함께 알려 줍니다. 지금까지는 줄에서는 이름만, 체크박스에서는 선택 여부만 읽혀서 둘을 오가야 알 수 있었습니다.
  • 내부 검증 703건. versionCode 167.
v2.29.12026-07-27
시세 카드의 "N초 전"이 실제 시각을 보여 줍니다
  • 시세 카드의 "실시간 · 0초 전" 표시가 항상 "0초 전"에 멈춰 있던 문제를 고쳤습니다. 데이터 나이가 받아올 때 한 번 기록되고 그 뒤로 갱신되지 않아서, 갱신 주기를 5분으로 두셨어도 5분 지난 자료가 "0초 전"으로 보였습니다. 이제 실제로 흘러갑니다(`12초 전` → `36초 전` → …).
  • 오래된 자료일 때 옆의 초록 점이 회색으로 바뀝니다. 지금까지는 항상 초록이라 신선한지 아닌지 구분할 수 없었습니다.
  • 네트워크가 끊긴 채로 오래 두거나 저장된 자료로 시작하면 `3시간 전`·`2일 전` 처럼 표시됩니다(예전에는 분 단위로만 세어 이상한 숫자가 나올 수 있었습니다).
  • 내부 검증 702건. versionCode 166.
v2.29.02026-07-27
탐색 화면에 조회 시각 표시 · 다시 받기
  • 탐색(급등락) 화면이 언제 받은 자료인지 보여 줍니다. 이 화면은 열 때 한 번만 조회하는데, "지금 뭐가 급등 중인가"를 보는 화면이라 켜 둔 채로 시간이 지나면 옛 순위를 지금 것으로 읽게 됩니다. 이제 칩 옆에 `↻ 20초 전` 처럼 표시되고, 눌러서 바로 다시 받을 수 있습니다.
  • 내부 검증 700건. versionCode 165.
v2.28.72026-07-27
로고 없는 코인의 줄 맞춤
  • 로고가 없는 코인만 한 줄이 왼쪽으로 밀려 목록이 들쭉날쭉하던 문제를 고쳤습니다. 탐색(급등락) 화면에서 로고를 제공하지 않는 코인이 있을 때 눈에 띄었습니다. 이제 로고가 없어도 자리를 비워 두어 모든 줄이 같은 위치에서 시작합니다(시세 목록·탐색 화면 모두).
  • 내부 검증 700건. versionCode 164.
v2.28.62026-07-27
포트폴리오 심볼 입력·로딩 표시 수정
  • 한글 키보드로 코인 심볼을 입력하면 자모가 그대로 들어가던 문제를 고쳤습니다. 한글 입력 상태에서 `BTC`를 치면 `ㅠㅆㅊ`가 입력되고, 그대로 보유로 저장돼 시세가 영영 붙지 않는 항목이 만들어졌습니다(매수금액에는 잡히는데 평가액에는 안 잡혀 손익이 -100%로 보임). 이제 영문·숫자만 입력되고, 키보드도 영문 상태로 열립니다.
  • 보유를 추가한 직후 "시세를 불러오지 못했습니다"가 잠깐 뜨던 문제를 고쳤습니다. 실제로는 조회 중이었는데 실패한 것처럼 보였습니다. 이제 `평가액 —` · `손익 불러오는 중…` 으로 표시되고, 매수금액도 조회가 끝난 뒤에 나옵니다.
  • 내부 검증 700건. versionCode 163.
v2.28.52026-07-27
김치 프리미엄 계산을 한 곳으로
  • 김치 프리미엄 계산이 두 곳에 나뉘어 있던 것을 하나로 모았습니다. 화면을 새로 불러올 때와 실시간으로 갱신될 때가 각각 따로 계산하고 있었고, 두 계산의 비정상 값 방어가 서로 달랐습니다. 이제 한 곳에서만 계산합니다.
  • 시세에 비정상 값이 섞여 들어와도 김치 프리미엄이 깨지지 않습니다. 예전 방어 방식은 특정 비정상 값을 그냥 통과시켜, 앱의 대표 지표가 화면에서 사라질 수 있었습니다.
  • 표시되는 값은 지금과 같습니다(기존 검증 20건 그대로 통과).
  • 내부 검증 696건. versionCode 162.
v2.28.42026-07-27
내부 점검 정비 (화면 변화 없음)
  • 자동 점검이 놓치던 사각지대를 없앴습니다. 코드에서 같은 것을 두 가지 방식으로 적어 두면 자동 점검이 한쪽만 보게 되는데, 실제로 홈 위젯의 일부가 그렇게 점검에서 빠져 있었습니다. 표기를 한 가지로 통일하고, 다시 갈라지면 바로 걸리도록 검사를 추가했습니다.
  • 이번 버전도 보이는 변화가 없는 정비 릴리스입니다.
  • 내부 검증 694건. versionCode 161.
v2.28.32026-07-27
다국어 안전장치 보강 (화면 변화 없음)
  • 화면에 한국어가 새지 않도록 하는 내부 검사의 범위를 넓혔습니다. 지금까지는 화면 코드만 검사하고 홈 위젯·요약문 계산 부분은 보지 않았습니다. 이번 점검에서 새어 나온 문구는 없었지만, 앞으로 생기면 바로 잡힙니다.
  • 언어 선택 목록의 "시스템 기본" 표기를 구조적으로 안전하게 바꿨습니다. 화면에 보이는 결과는 지금과 같습니다.
  • 이번 버전은 보이는 변화가 없는 정비 릴리스입니다.
  • 내부 검증 691건. versionCode 160.
v2.28.22026-07-27
0%에 붙던 부호와 색 정리
  • 같은 숫자가 화면마다 다르게 보이던 문제를 고쳤습니다. 시가총액 24시간 변동률이 시장 카드에서는 "0.03%"(회색)인데 도미넌스 화면에서는 "+0.03%"(빨강)로 보였습니다. 이제 어느 화면에서든 같습니다.
  • `+0.00%`·`-0.00%` 처럼 0에 부호가 붙던 표기를 정리했습니다. 공포지수 요약문의 코스피 변동률, 시장 신호 수치가 그랬습니다. 반올림해서 0이 되는 값도 이제 부호 없이 "0.00%"로 표시됩니다 — 움직이지 않은 값을 올랐다고 말하지 않습니다.
  • BTC 시가총액 추이 그래프가 시작과 끝이 같을 때 상승색으로 보이던 것을 보합색으로 바꿨습니다.
  • 내부 검증 689건. versionCode 159.
v2.28.12026-07-27
뉴스 번역 버튼이 언어에 맞게 뜹니다
  • 한국어 외의 언어로 쓰실 때 번역 버튼이 제대로 뜹니다. 지금까지는 "번역해서 보기"가 해외 매체 기사에만 붙었습니다. 그래서 일본어·중국어로 앱을 쓰시는 분은 정작 읽을 수 없는 국내 매체 기사에 번역 버튼이 없었고, 영어로 쓰시는 분은 이미 영어인 기사에 번역 버튼이 떴습니다. 이제 읽으시는 언어와 다른 기사에만 붙습니다(한국어 사용 시 동작은 그대로입니다).
  • 번역 버튼이 화면 밖으로 밀려 사라지던 문제를 고쳤습니다. 매체 이름과 분류가 길면 버튼이 카드 밖으로 밀려나 아예 보이지 않았습니다. 이제 버튼이 먼저 자리를 잡고, 폭이 모자라면 분류 → 매체 이름 순으로 줄어듭니다.
  • 내부 검증 687건. versionCode 158.
v2.28.02026-07-27
알림 화면 스위치 개선
  • 알림 화면의 켜기/끄기 스위치를 제목까지 눌러 바꿀 수 있습니다. 지금까지는 작은 스위치만 정확히 눌러야 했습니다. 이제 "통知 오프 시간" 제목 줄 어디를 눌러도 켜지고, 알림 규칙도 규칙 이름을 눌러 켜고 끌 수 있습니다.
  • 화면 낭독에서 "무엇을" 켜는지 알려 줍니다. 그동안 스위치 위에서는 "켜짐, 스위치"라고만 읽혀서 무엇을 켜는 스위치인지 알 수 없었습니다. 이제 "통知 오프 시간, 이 시간대는 알림을 보내지 않습니다, 스위치, 켜짐"처럼 읽어 줍니다. 설정 화면은 이미 그렇게 동작하고 있었고 알림 화면 두 곳만 빠져 있었습니다.
  • 내부 검증 679건. versionCode 157.
v2.27.92026-07-27
화면 낭독(스크린리더) 개선
  • 시세 목록을 화면 낭독으로 들을 때 코인 하나가 여섯 번 읽히던 문제를 고쳤습니다. 심볼·이름·원화·등락률·달러·김프가 각각 따로 읽혀서, 코인 20개 목록을 끝까지 넘기려면 120번을 넘겨야 했습니다. 이제 한 번에 "BTC 비트코인, ₩95,024,000, -0.05% 보합, 김치 프리미엄 -0.47% 하락" 처럼 한 문장으로 읽어 줍니다.
  • 색으로만 알려 주던 정보를 말로도 알려 줍니다. 등락은 빨강/파랑, 김치 프리미엄은 금색/파랑 배지로 표시되는데, 색을 구분하기 어려운 분에게는 그 뜻이 전달되지 않았습니다. 이제 "상승·하락·보합"이 글자로 함께 들어갑니다.
  • 내부 검증 675건. versionCode 156.
v2.27.82026-07-27
시세 목록에서 가격이 잘리던 문제(재수정)
  • 시세 목록의 가격이 잘리던 문제를 제대로 고쳤습니다. 지난 v2.27.5에서 "폭이 모자라면 글자를 줄여서 온전히 보여 준다"고 바꿨는데, 글자 크기를 재는 방식에 오차가 있어 실제로는 줄이지 않은 채 그대로 잘리고 있었습니다. 배율 120%·일본어에서 비트코인 가격이 `₩94,905,0…` 로 잘렸습니다. 이제 `₩94,900,000` 이 온전히 보입니다.
  • 이 문제는 직전 버전에서 "잘렸다는 표시"를 넣은 덕에 드러났습니다. 그전에는 표시 없이 잘려서 완전한 숫자처럼 보였습니다.
  • 내부 검증 670건. versionCode 155.
v2.27.72026-07-27
큰 금액이 표시 없이 잘리던 문제
  • 가격이 잘렸는데 잘린 표시가 없던 문제를 고쳤습니다. 칸이 좁으면 글자를 줄여서 보여 주는데, 가장 작은 크기로도 안 맞으면 말줄임표 없이 그냥 잘려 `₩95,000,00` 처럼 보였습니다. 잘린 줄 모르면 그 숫자를 그대로 믿게 됩니다. 이제 `…` 로 잘렸다는 것이 보입니다.
  • 입력칸 이름이 넘칠 때의 처리를 한 곳으로 모았습니다. 지난 버전에서 15곳을 고쳤는데, 알림 화면의 시간 입력칸과 설정 화면의 검색칸 두 곳이 빠져 있었습니다(설정 검색칸은 처리가 아예 없었습니다). 이제 새 입력칸이 생겨도 같은 규칙이 자동으로 적용됩니다.
  • 내부 검증 666건. versionCode 154.
v2.27.62026-07-27
손익 0원이 빨강으로 보이던 문제 · 입력칸 라벨 잘림
  • 아무것도 안 샀는데 "수익"으로 보이던 문제를 고쳤습니다. 보유 코인이 하나도 없는 포트폴리오가 `손익 +0.00% (+₩0)` 을 상승 색(빨강) 으로 띄우고 있었습니다. 이제 0은 `0.00% (₩0)` 으로, 오르지도 내리지도 않은 색으로 표시됩니다. 같은 문제가 시장 요약·코인 상세·차트 툴팁·도미넌스 화면에도 있어 모두 함께 고쳤습니다.
  • `+0.00%` 처럼 0에 붙던 더하기 기호를 없앴습니다. 화면마다 표기가 달라 같은 0이 어디선 `0.00%`, 어디선 `+0.00%` 로 나오고 있었습니다.
  • 화면 배율을 키웠을 때 입력칸 이름이 테두리를 넘던 문제를 고쳤습니다. 배율 120%에서 계산기의 "김치 프리미엄"·"레버리지 (배)" 가 두 줄로 감기며 칸 밖으로 삐져나왔습니다. 이제 폭이 모자라면 한 줄로 줄여서 보여 줍니다(계산기·포트폴리오·설정·알림 화면 13곳).
  • 내부 검증 664건. versionCode 153.
v2.27.52026-07-27
큰 글씨에서 가격 잘림 수정
  • 화면 배율을 키웠을 때 시세 목록의 가격이 잘리던 문제를 고쳤습니다. 배율 120%에서 비트코인 가격이 "₩95,000, …" 처럼 뒷자리가 사라져 정작 가장 중요한 숫자를 읽을 수 없었습니다. 이제 폭이 모자라면 글자 크기를 조금 줄여서라도 가격 전체를 보여 줍니다(포트폴리오·상세 화면은 이미 그렇게 동작하고 있었고, 목록만 빠져 있었습니다).
  • 내부 검증 652건. versionCode 152.
v2.27.42026-07-27
메모리 사용 개선
  • 여러 코인을 오래 둘러봐도 앱이 무거워지지 않습니다. 차트 데이터를 담아 두는 임시 저장소에 상한이 없어, 코인과 기간을 바꿔 볼수록 메모리 사용량이 계속 늘어나고 있었습니다. 최근에 본 것만 보관하도록 바꿨습니다(다시 열 때 빠른 것은 그대로입니다).
  • 설정 ▸ 알림 안정성 가이드의 "테스트 알림"이 실제 알림과 완전히 같은 방식으로 발송됩니다. 그동안 테스트 알림만 별도 코드로 만들어져 있어서, 기기 설정을 점검하려는 이 기능이 실제 알림과 다르게 동작할 여지가 있었습니다.
  • 내부 검증 649건. versionCode 151.
v2.27.32026-07-27
한국어 외 언어 표시 수정
  • 영어·일본어·중국어에서 한국어가 그대로 보이던 문구를 고쳤습니다. 홈 시세 카드 맨 아래의 데이터 출처 한 줄("… 외 5개 거래소 …")이 언어 설정과 무관하게 한국어로 표시되고 있었습니다. 항상 보이는 줄이라 비한국어 사용자에게는 계속 눈에 띄던 부분입니다.
  • 설정 ▸ 권한 안내 목록의 마지막 항목 이름도 언어에 맞게 표시됩니다.
  • 개수 표기가 자연스러워졌습니다. 영어에서 "1 samples" 처럼 어색하게 나오던 수량 표현을 단수·복수에 맞게 정리했습니다(도미넌스 관측 횟수, 거래소 개수). 앱을 막 설치한 직후에 실제로 보이던 표기입니다.
  • 내부 정리: 화면에 쓰이지 않으면서 남아 있던 한국어 문구들을 제거했습니다.
  • 내부 검증 635건. versionCode 150.
v2.27.22026-07-27
급등락 알림 안내 명확화
  • 급등/급락 알림에 비교 기준 안내가 추가되었습니다. 이 알림은 24시간 등락률이 아니라 직전 확인 시점(약 15분 전)과 비교해 판단합니다. 그동안 화면에 그 설명이 없어 24시간 기준으로 오해하기 쉬웠습니다. 알림 종류로 급등·급락을 고르면 임계값 아래에 안내가 표시됩니다(5개 언어 모두).
  • 계산 방식 자체는 바뀌지 않았습니다. 기존에 만들어 둔 급등락 알림은 그대로 동작합니다.
  • 내부 정리: 앱 화면과 홈 위젯이 단계 라벨·등락색·보합 기준을 같은 곳에서 가져오도록 모았습니다. 지금까지도 값은 같았지만, 앞으로 한쪽만 바뀌어 어긋나는 일이 없습니다.
  • 내부 검증 631건. versionCode 149.
v2.27.12026-07-27
차트 정확도·수량 입력
  • 캔들 차트에서 손가락으로 짚은 캔들의 값이 정확하게 표시됩니다. 그동안 차트의 좌우 가장자리 쪽을 짚으면 바로 옆 캔들의 시가·고가·저가·종가가 뜨는 경우가 있었습니다(라인 차트는 정상이었습니다).
  • 포트폴리오 전량 매도 시 잔량이 남지 않습니다. 부분 매도나 물타기를 한 뒤 전량 매도 버튼으로 채운 수량을 손으로 수정하면 뒷자리가 잘려 아주 작은 잔량이 남을 수 있었습니다.
  • 기술적 분석의 스퀴즈 지표가 차트와 분석 패널에서 같은 시점부터 표시됩니다. 봉 개수가 딱 맞는 경계에서 한쪽만 "데이터 없음"으로 뜨던 것을 맞췄습니다.
  • 코인 상세의 기술적 분석 화면이 더 가볍게 동작합니다. 같은 계산을 화면 갱신마다 반복하던 것을 한 번만 하도록 정리했습니다.
  • 내부 검증 590건. versionCode 148.
v2.27.02026-07-27
지표 정확도·입력 안정성
  • VIX 변동률이 어제 대비로 정확히 표시됩니다. 그동안 VIX 만 하루 이틀 전 종가와 비교돼 값과 부호가 어긋날 수 있었습니다(코스피·주가지수는 이미 정상이었습니다). 세 지표가 이제 같은 방식으로 계산됩니다.
  • 시세·지수 값이 비정상일 때 화면에 이상한 숫자가 뜨지 않습니다. 서버 응답이 깨져 들어오면 `∞` 같은 값이 표시되거나 지수 값이 0 으로 보이던 경우가 있었는데, 값을 받아들이는 단계에서 걸러 냅니다.
  • 숫자 입력칸이 모든 화면에서 똑같이 동작합니다. 소수점을 두 번 찍으면 두 번째는 무시되고(예전엔 입력은 남는데 계산 결과만 사라졌습니다), 입력 길이에 상한이 생겨 계산기·알림 임계값에 비정상적으로 큰 값이 들어가지 않습니다.
  • 알림 임계값에 지나치게 큰 값을 넣어 '저장은 되지만 영영 울리지 않는 알림'이 만들어지던 문제를 고쳤습니다.
  • 내부 정리: 같은 일을 하던 코드를 한 곳으로 모아 앞으로 한쪽만 고쳐지는 일이 없게 했습니다. 자동 검증 546 건. versionCode 147.
v2.26.42026-07-25
보조 문구 가독성 (라이트)
  • 밝은(라이트) 화면에서 작은 보조 문구(데이터 출처 표기, 시세 없음·네트워크 오류 안내, 공포지수의 어제 대비·시각 표시 등)가 흰 배경에서 다소 흐릿하던 것을 또렷하게 다듬었습니다. 투명도로 흐리게 처리하던 방식 대신 앱 표준 보조 텍스트 색을 사용해 대비를 높였습니다.
  • 여전히 본문보다 은은한 보조 문구로 보이되, 읽기 어렵지 않도록 개선했습니다(어두운 화면도 동일 기준으로 일관 적용). 정성적 개선. versionCode 146.
v2.26.32026-07-25
비교 차트 색 가독성 (라이트)
  • 밝은(라이트) 화면에서 여러 코인을 겹쳐 보는 비교 차트의 선 색을 또렷하게 다듬었습니다: "7일 성과 비교" 카드의 코인별 선(초록·청록·연두·주황 등)이 흰 배경에서 다소 옅어 구분이 어렵던 것을 한 단계 진한 톤으로 낮춰 잘 보이도록 했고, 코인 1:1 비교의 주황색 선도 더 또렷하게 했습니다.
  • 어두운(다크) 화면은 기존의 선명한 색을 그대로 유지합니다. 색상 구분(어느 선이 어느 코인인지)은 그대로 두면서 대비만 높인, 라이트 화면 그래프 가독성 마무리입니다. 정성적 개선. versionCode 145.
v2.26.22026-07-25
카드 디자인 통일감 다듬기
  • 홈 화면 카드들의 입체감·모서리·여백을 하나의 기준으로 정돈했습니다: 뉴스·포트폴리오 카드에도 다른 카드와 동일한 그림자(입체감)를 넣어 홀로 납작해 보이던 것을 없앴고, 포트폴리오 카드 모서리를 앱 전체 기준(둥근 정도)에 맞췄습니다.
  • 카드 안쪽 좌우 여백을 통일해 화면을 내릴 때 글의 시작 위치가 가지런히 정렬되도록 했고, 상세 화면의 섹션 제목 글자 크기(가격 추이·24시간 범위·김프 등)를 일관되게 맞췄습니다. 눈에 잘 띄지 않던 미세한 어긋남을 정리한 디자인 완성도(통일감) 개선입니다. 정성적 개선. versionCode 144.
v2.26.12026-07-25
라이트 모드 색 가독성 (차트·지표 마무리)
  • 앞선 등락률 색 개선(2.26.0)에 이어, 밝은(라이트) 화면에서 차트와 지표의 색까지 또렷하게 다듬었습니다: 상세 화면의 가격 선·캔들·거래량 막대, 기술적 분석의 보조 지표 차트(스토캐스틱·MACD·스퀴즈·ADX·OBV)와 편향 게이지가 흰 배경에서도 선명하게 보이도록 진한 톤을 적용했습니다.
  • 공포·탐욕 지수 카드의 VIX·KOSPI 숫자와 상태 막대, 화면 곳곳의 초록 체크 표시도 라이트 화면에서 대비를 높였습니다(특히 밝은 초록이 흰 배경에서 잘 안 보이던 문제 해소). 어두운(다크) 화면은 기존 색을 그대로 유지합니다. 디자인 가독성(색 대비) 마무리. 정성적 개선. versionCode 143.
v2.26.02026-07-25
라이트 모드 등락률 색 가독성
  • 밝은(라이트) 화면에서 등락률·손익 숫자의 색이 흰 배경에 다소 옅게 보이던 것을 개선했습니다. 상승(빨강)·하락(파랑)·손익 표시를 라이트 화면에서는 더 또렷한 진한 톤으로, 어두운(다크) 화면에서는 기존의 밝은 톤을 그대로 유지하도록 화면 밝기에 맞춰 색을 다르게 적용했습니다.
  • 홈 시세, 지수, 스크리너, 포트폴리오 손익, 김치 프리미엄, 코인 비교, 시가총액 흐름, 기술적 분석의 신호·지지저항 라벨 등 앱 전반의 등락 표시가 라이트 화면에서 한눈에 더 잘 들어옵니다(색 대비 기준 충족). 오래 봐도 눈이 편한 식별성을 목표로 한 디자인 가독성 개선입니다. 정성적 개선. versionCode 142.
v2.25.92026-07-25
정렬 버튼 가독성
  • 시세 화면 상단의 정렬 버튼(기본·등락순·거래량순·김프순·이름순) 글자를 조금 더 크게, 여백을 넉넉하게 다듬어 눈에 더 잘 들어오고 누르기 편하도록 개선했습니다. 정성적 개선(patch). versionCode 141.
v2.25.82026-07-25
가독성 다듬기 (줄 간격)
  • 기술적 분석의 문장 해설(종합 판독·지표 설명·전망)과 뉴스 제목처럼 여러 줄로 이어지는 글의 줄 간격을 조금 더 넓혀, 오래 읽어도 편하게 눈에 들어오도록 다듬었습니다. 디자인 가독성 기준(본문 줄높이) 적용. 정성적 개선(patch). versionCode 140.
v2.25.72026-07-25
알림 내부 상태 정리
  • 삭제한 알림 규칙의 잔여 내부 데이터(기술적 신호 레벨)를 정리해, 앱을 오래 쓰며 알림을 많이 만들고 지워도 저장소가 깔끔하게 유지되도록 했습니다. (적대적 코드 리뷰로 조용시간 '지연' 로직 등 알림 동작 전반이 정확함을 재확인하고, 확인된 저장소 위생 항목만 반영.) 정량적 수정(patch). versionCode 139.
v2.25.62026-07-25
화면 전환 부드럽게 (감성)
  • 홈·상세·포트폴리오·알림·뉴스·설정 등 화면을 오갈 때 딱딱하게 바뀌던 것을 부드러운 크로스페이드로 다듬어 이동감을 매끄럽게 했습니다. 휴대폰의 '애니메이션 끄기(배율 0)' 설정을 켠 경우에는 즉시 전환되어 선호도를 존중합니다. 정성적 개선(patch). versionCode 138.
v2.25.52026-07-25
첫 화면 등장 애니메이션 (감성)
  • 앱을 처음 열 때 보이는 소개 화면에서, 아이콘·제목·기능·시작 버튼이 아래에서 부드럽게 순차적으로 나타나도록 다듬어 첫인상의 완성도를 높였습니다. 휴대폰의 '애니메이션 끄기(배율 0)' 설정을 켠 경우에는 즉시 표시되어 접근성 선호도 존중합니다. 정성적 개선(patch). versionCode 137.
v2.25.42026-07-25
뉴스 출처 표시 정확화
  • 여러 매체를 합쳐 보여주는 뉴스 목록에서, 각 기사마다 어느 매체 기사인지(출처)를 표시하도록 했습니다. 이전에는 화면 상단에 가장 최근 기사 1건의 매체 이름만 붙어 마치 한 곳의 뉴스처럼 보였는데, 이제 상단 오인 표시를 없애고 기사별로 출처를 정확히 보여줍니다. 정성적 개선(patch). versionCode 136.
v2.25.32026-07-25
접근성(스크린리더) 개선
  • 화면 읽기(TalkBack) 사용자를 위해 차트 도구들의 안내를 보완했습니다: 이동평균·VWAP·볼린저·지지저항 표시 켬/끔 상태, 선 굵기(얇게·보통·굵게), 라인/캔들 선택 상태, 기준 통화(₩/$) 전환·데이터 출처 버튼이 이제 상태와 역할까지 또렷하게 안내됩니다.
  • 알림 화면의 빠른 입력 칩 터치 영역을 키워 누르기 쉽게 했고, 코인 로고가 심볼과 중복해서 읽히던 것을 정리했습니다. 정성적 개선(patch). versionCode 135.
v2.25.22026-07-25
업데이트 보안 강화 + 가격 표시 안정화
  • 자동 업데이트를 더 안전하게: 내려받은 설치 파일이 정품(같은 서명·같은 앱)인지까지 확인한 뒤에만 설치하도록 강화했습니다. 파일이 올바르지 않으면 설치하지 않고 스토어로 안내합니다. (내부적으로 해시 필수화·안전한 주소만 허용·중복 다운로드 방지·검증을 백그라운드 처리해 멈춤 방지 등도 보완.)
  • 상세 화면 가격 깜빡임 수정: 비트코인처럼 자릿수가 큰 가격이 실시간으로 갱신될 때 큰 숫자가 잠깐씩 사라졌다 나타나던 현상을 없앴습니다(한 번에 정확한 크기로 표시). 정량적 수정(patch). versionCode 134.
v2.25.12026-07-25
업데이트 무결성 검증 (더 안전한 자동 설치)
  • 앱 안에서 업데이트를 받을 때, 내려받은 파일이 올바른 파일이 맞는지(무결성) 확인한 뒤에만 설치하도록 했습니다. 다운로드가 중간에 손상되었거나 파일이 이상하면 설치하지 않고 안전하게 스토어로 안내합니다. 자체 업데이트 기능의 안전성 보완. 정량적 개선(patch). versionCode 133.
v2.25.02026-07-25
인앱 자동 업데이트 (다운로드·설치)
  • 새 버전이 나오면 상단 안내의 '지금 업데이트' 버튼으로 앱을 벗어나지 않고 바로 내려받고 설치할 수 있습니다. 이전에는 스토어 페이지를 열어 직접 받아야 했는데, 이제 버튼 한 번이면 다운로드부터 설치까지 이어집니다.
  • 최초 1회는 '알 수 없는 앱 설치 허용'이 필요하며, 허용 화면으로 안내한 뒤 다시 누르면 진행됩니다. 다운로드가 어려우면 자동으로 스토어로 이동합니다(폴백). 정성적 개선(minor). versionCode 132.
v2.24.72026-07-25
포트폴리오 큰 금액 잘림 방지
  • 포트폴리오의 총자산·보유 평가액이 금액이 클 때(₩10억·₩1조+) 끝이 잘리던 문제를 고쳤습니다. 상세 화면과 동일하게 폭에 맞춰 글자 크기가 자동 조절되어 큰 금액도 온전히 표시됩니다.
  • 손익 줄에서 폭이 넘칠 때 더 중요한 수익률(%)이 먼저 보이도록 배치를 바꿨습니다(금액이 뒤로).
  • 코인 설정·검색 목록에서 긴 심볼(예: 1000SATS)이 큰 글자에서 두 줄로 접히던 것을 한 줄로 다듬었습니다. 큰 글자 리디자인 마감 보완. 정량적 수정(patch). versionCode 131.
v2.24.62026-07-25
상세 화면 큰 가격 잘림 수정
  • 코인 상세 화면 상단의 큰 가격이 자릿수가 많을 때(예: ₩120,000,000) 끝이 "…"로 잘리던 문제를 고쳤습니다. 이제 폭에 맞춰 글자 크기가 자동으로 조절되어 어떤 가격이든 온전히 표시됩니다. 큰 글자 리디자인 이후의 마감 보완. 정량적 수정(patch). versionCode 130.
v2.24.52026-07-25
조용시간 시각 표시 일치
  • 조용시간 시각 필드에 24를 넘는 숫자를 입력하면 화면 표시와 실제 저장값이 어긋나던 미세한 문제를 고쳤습니다. 이제 범위를 넘는 입력은 즉시 유효한 값(23시)으로 표시되어 보이는 값과 저장값이 항상 일치합니다. 정량적 수정(patch). versionCode 129.
v2.24.42026-07-25
조용시간 시각 입력 수정
  • 조용시간의 시작/종료 시각(시)을 바꾸기 어렵던 문제를 고쳤습니다. 이전에는 숫자를 지우면 이전 값으로 되돌아가 원하는 시각으로 바꾸기 힘들었는데, 이제 자유롭게 지우고 다시 입력할 수 있습니다. 정량적 수정(patch). versionCode 128.
v2.24.32026-07-25
시각 폴리시 (모서리 다듬기)
  • 코인 목록의 김프 배지와 행 모서리를 조금 더 둥글게 다듬어 현대적이고 응집된 느낌을 강화했습니다. 정성적 개선(patch). versionCode 127.
v2.24.22026-07-25
헤더 정렬 다듬기
  • 큰 글자 적용 후 시세 카드 제목("코인·환율 시세")이 끝이 잘려 보이던 문제를 고쳐, 제목이 온전히 표시되도록 정렬을 다듬었습니다. 정성적 개선(patch). versionCode 126.
v2.24.12026-07-25
가독성 리디자인 2단계 (코인 목록 또렷하게)
  • 코인 목록에서 코인 이름과 보조 가격(달러 등)을 더 또렷하게 바꿨습니다. 이전에는 흐릿한 반투명 회색이라 잘 안 보였는데, 대비를 강화한 색과 조금 더 큰 글자로 표시해 한눈에 읽힙니다.
  • 애플 감성 리디자인의 연속 단계입니다(가독성 우선). 정성적 개선(patch). versionCode 125.
v2.24.02026-07-25
가독성 리디자인 1단계 (큰 글자·강한 대비)
  • 글자를 전반적으로 키웠습니다. 앱 전체 텍스트를 더 크게 표시해 한눈에 읽기 편하도록 개선했습니다(화면 배율 설정과 별개로 기본 글자 크기 상향).
  • 색상 대비를 강화했습니다. 보조 설명 글자와 구분선을 더 또렷한 색으로 바꿔, 밝은 배경에 밝은 글자처럼 잘 안 보이던 부분을 없앴습니다. 오래 봐도 눈이 편하도록 순검정 대신 짙은 회색 계열을 사용합니다.
  • 라이트 모드 강조색을 더 진한 앰버로 조정해 흰 배경에서 또렷하게 보이게 했습니다.
  • 애플 감성의 현대적 디자인을 목표로 한 리디자인의 첫 단계입니다. 정성적 개선(minor). versionCode 124.
v2.23.62026-07-25
조용시간 알림 유실 수정 (중요)
  • 조용시간 중에 조건을 처음 만족한 알림이 사라지던 문제를 바로잡았습니다. 이전에는 조용시간(예: 밤 22시~아침 7시) 동안 가격·김프·RSI·기술신호 알림이 조건을 넘어도, 그 알림이 ‘이미 보낸 것’으로 처리되어 조용시간이 끝난 뒤에도 오지 않았습니다. 이제 조용시간에는 보류했다가, 조용시간이 끝나고도 조건이 유지되면 그때 알려드립니다(삭제가 아니라 지연).
  • 예: 새벽 3시에 BTC가 목표가를 돌파 → 조용시간이라 소리 없이 보류 → 아침 7시 이후 여전히 목표가 위면 그때 알림. 정량적 수정(patch, 중요). versionCode 123.
v2.23.52026-07-25
포트폴리오 안정성 (전량 매도 표기 수정)
  • ‘전량 매도’를 누르면 수량이 0.1 대신 ‘0.1000…0555’처럼 아주 긴 숫자로 채워지던 문제를 고쳤습니다. 이제 입력한 값 그대로 깔끔하게 표시됩니다(매도 결과 금액은 이전에도 정확했습니다).
  • [안정화] 자금 화면 크래시 방어 — 저장값이 손상돼 보유 수량이 비정상(음수)이 되어도 매도·자산배분 도넛이 앱을 멈추지 않도록 방어 코드를 추가했습니다.
  • 내부적으로 지수 변동률·알림 조건·전량매도 계산에 회귀 테스트를 추가해, 앞으로 코드 변경 시 오작동을 즉시 잡습니다. 정량적 수정(patch). versionCode 122.
v2.23.42026-07-25
뉴스 출처 정비 (암호화폐 전용)
  • 뉴스 출처에서 ‘디지털투데이’를 제외했습니다. 해당 매체의 전체 기사 RSS가 인공지능·반도체 등 일반 IT 뉴스 위주로, 암호화폐 기사가 거의 없어 ‘공식 암호화폐 뉴스만 제공’ 원칙에 맞지 않았습니다. 남은 출처(토큰포스트·블록미디어·블록체인투데이 등 국내 + Cointelegraph·CoinDesk 등 해외)는 모두 암호화폐·블록체인 전문 매체입니다.
  • 이미 해당 출처를 선택해 두었더라도 자동으로 안전하게 제외됩니다(오류 없음). 정량적 정비(patch). versionCode 121.
v2.23.32026-07-25
지수 변동률 정확도 수정 (중요)
  • KOSPI·KOSDAQ·다우·S&P500 등 지수의 변동률이 부정확하게 표시되던 문제를 바로잡았습니다. 변동률을 전 거래일 종가가 아니라 그보다 하루 더 이전 종가와 비교해, 실제 하루 등락과 다른 값(예: KOSPI 실제 -5.72%인데 -1.58%로 표시)이 나올 수 있었습니다. 이제 정확한 전 거래일 종가 기준으로 계산합니다.
  • 같은 지수가 시세 목록과 공포지수 카드에서 서로 다르게 보이던 불일치도 함께 해소되었습니다(두 화면 값 일치).
  • 실측 대조(Yahoo Finance 원본 종가)로 검증. 정량적 수정(patch). versionCode 120.
v2.23.22026-07-25
라이트 모드 가독성 개선
  • 라이트 모드에서 글자가 잘 안 보이던 문제를 고쳤습니다. 선택된 정렬 칩(기본·등락순 등)과 차트 지표 토글(MA 등)에서 노란 배경 위에 옅은 글자가 겹쳐 식별이 어려웠습니다. 이제 라이트 모드에선 진한 앰버/짙은 색 글자로 표시해 또렷하게 보입니다(다크 모드는 기존 유지).
  • [안정화] 코인 비교 — 다른 비교 코인으로 바꾸는 순간, 새 코인 정보를 불러오는 동안 이전 코인의 선·수치가 잠깐 남던 현상을 없앴습니다(전환 즉시 로딩 표시).
  • [안정화] 업데이트 배너 ‘닫음’ 저장 — 배너를 닫은 직후 앱을 곧바로 종료해도 ‘닫음’ 기록이 확실히 저장되도록 개선(닫은 버전이 다시 뜨지 않게).
  • [안정화] 업데이트 배너 — 안내 문구가 길어도 화면을 과하게 밀지 않도록 표시 줄 수를 제한.
  • 정량적 수정(patch). versionCode 119.
v2.23.12026-07-25
업데이트 배너 ‘닫음’ 기억
  • 업데이트 배너를 닫으면 그 버전은 다시 표시하지 않습니다. 이전에는 새 버전 안내 배너를 닫아도 앱을 다시 열 때마다 또 나타났습니다. 이제 한 번 닫은 버전은 기억해, 더 새로운 버전이 나올 때만 다시 안내합니다(불필요한 반복 알림 제거).
  • 정량적 수정(patch). versionCode 118.
v2.23.02026-07-25
코인 1:1 비교 + 테마 버튼 개선 + 문구 정확화 (신기능)
  • 코인 상세 화면에 "다른 코인과 비교" 기능을 추가했습니다. 보고 있는 코인의 차트 아래에서 비교할 코인을 하나 고르면, 두 코인의 같은 기간·같은 봉 간격(15분~1주) 수익률을 시작점 0% 기준으로 정규화해 한 차트에 겹쳐 보여줍니다. 어느 쪽이 더 올랐는지(우위 %p)와 각 코인의 기간 수익률을 한눈에 확인할 수 있습니다.
  • 원화 시세가 없는 해외 전용 코인과도 % 기준이라 공정하게 비교됩니다. 이미 불러온 캔들을 재사용해 추가 통신을 최소화하고, 라이트·다크 모두 대비를 확보한 색(바이올렛·오렌지)으로 표시합니다. 스크린리더에는 두 코인 수익률을 설명합니다.
  • 기존 홈 화면의 "7일 성과 비교"(관심 코인 전체)와 상호 보완: 이쪽은 상세에서 원하는 코인과 원하는 기간으로 1:1 정밀 비교.
  • 테마 선택(시스템·라이트·다크)을 아이콘 버튼으로 다듬었습니다. 밋밋한 텍스트 칩 대신 각 모드에 맞는 아이콘(자동·해·달)과 또렷한 선택 표시(채움+테두리)를 갖춘 버튼으로 바꿔, 지금 어떤 테마인지 한눈에 보이고 누르기 편해졌습니다(터치 영역 확대, 스크린리더 지원).
  • 개인정보 문구를 더 정확하게 다듬었습니다. ‘추적 없음’ → ‘수집 없음’. 이 앱은 이용자를 추적하지 않을 뿐 아니라, 애초에 수집하는 정보 자체가 없습니다. 이 사실을 더 정확히 전하도록 배지·약관 문구를 통일했습니다(5개 언어).
  • 새 버전 알림을 화면 최상단에 고정했습니다. 업그레이드 알림이 켜져 있으면 앱 실행 시 새 버전 여부를 확인해, 최신 버전이 있을 때 상단에 안내 배너(무엇이 바뀌었는지 + ‘업데이트’ 버튼)를 스크롤과 무관하게 항상 보이도록 표시합니다(닫기 가능).
  • 5개 언어 지원. 정성적 신기능(minor). versionCode 117.
v2.22.02026-07-25
테스트 알림 (신기능)
  • ‘알림·위젯 안정성’ 가이드에 "테스트 알림 보내기" 버튼을 추가했습니다. 배터리 설정을 조정한 뒤 실제로 알림이 잘 오는지 즉시 확인할 수 있어, 알림이 안정적으로 동작하는지 스스로 점검할 수 있습니다.
  • 알림 권한이 꺼져 있으면 안내 메시지를 표시합니다. 5개 언어 지원. 정성적 신기능(minor). versionCode 116.
v2.21.02026-07-25
포트폴리오 자산 배분 도넛 (신기능)
  • 포트폴리오에 자산 배분 도넛 차트를 추가했습니다. 보유 코인이 2개 이상이면, 각 코인이 전체 평가액에서 차지하는 비중을 도넛 그래프와 범례(코인·비율)로 한눈에 볼 수 있습니다. 코인이 많으면 상위 7개 + ‘기타’로 묶어 깔끔하게 표시합니다.
  • 이미 계산된 값만 사용하며(추가 통신 없음), 라이트·다크 모두 대비를 확보한 색으로 표시합니다. 스크린리더에는 최대 비중 코인을 설명합니다. 정성적 신기능(minor). versionCode 115.
v2.20.02026-07-25
알림·위젯 안정성 가이드 (신기능)
  • "알림·위젯이 자꾸 멈추나요?" 가이드를 추가했습니다. 샤오미·삼성 등 일부 기기의 강한 배터리 절약 정책이 백그라운드 알림·위젯 갱신을 막는 문제(안드로이드 사용자 최다 불만)를, 기기별(MIUI 자동시작·삼성 절전 예외·최근앱 잠금) 단계로 안내합니다.
  • 설정 › 배터리 최적화 아래에서 바로 접근하며, ‘앱 설정 열기’ 버튼으로 관련 시스템 설정으로 바로 이동할 수 있습니다.
  • 앱이 화면에서만 실시간 갱신하고 알림은 15분 주기로 확인한다는 동작 원리도 투명하게 설명(배터리 절약). 5개 언어 지원. 정성적 신기능(minor). versionCode 114.
v2.19.102026-07-25
환율·김치 프리미엄 정확도 수정(중요)
  • 원/달러 환율과 김치 프리미엄이 부정확하게 계산되던 문제를 바로잡았습니다. 환율 소스(Frankfurter)의 주소가 바뀌어 앱이 대체 소스로만 동작하고 있었고, 계산 방식의 반올림으로 원/달러가 실제보다 높게 나와 김치 프리미엄 부호까지 뒤바뀔 수 있었습니다. 이제 ECB 기준 환율을 정밀하게 조회해 정확한 환율·김프를 표시합니다(해외 코인의 원화 환산도 동일하게 정확).
  • 환율 표시(USD·JPY·EUR·CNY)도 같은 개선으로 정확해집니다.
  • 실측 대조로 검증(원/달러 1,461, BTC 김프 정상). 정량적 patch. versionCode 113.
v2.19.92026-07-25
접근성 마무리
  • 차트 지표 토글·세그먼트 버튼의 터치 영역을 표준 크기(48dp)로 통일해 더 편하게 누를 수 있습니다.
  • 지수(KOSPI·KOSDAQ 등) 행이 큰 글꼴에서 잘리지 않고 깔끔하게 표시되도록 정리.
  • 공포·탐욕 5단계 표시에서 현재 단계를 스크린리더가 함께 읽어주도록 보완. 정량적 patch. versionCode 112.
v2.19.82026-07-25
데이터 안정성·권한 고지 보완(데이터/라이프사이클 감사 반영)
  • 설정 파일이 손상돼도 앱이 켜지도록 방어를 강화. 드문 파일 손상(디스크 꽉 참·비정상 종료) 시 앱이 시작에서 반복 중단되던 최악의 경우를, 손상 감지 시 기본값으로 안전하게 복구하도록 바꿨습니다(보유·알림 데이터 보호).
  • 저장된 알림·보유·코인 목록 중 한 항목이 깨져도 나머지는 보존. 예전엔 한 항목이라도 문제가 있으면 목록 전체가 사라질 수 있었는데, 이제 정상 항목만 남깁니다.
  • 권한 고지 화면에 백그라운드 알림용 권한(WAKE_LOCK 등)을 추가로 명시 — 알림 라이브러리가 자동 추가하는 표준 권한임을 투명하게 안내(개인정보 접근 아님).
  • 캐시 DB 버전 롤백 시 자가치유 등 내부 견고성 개선. 정량적 patch. versionCode 111.
v2.19.72026-07-25
접근성·큰 글꼴 개선(a11y 감사 반영)
  • 시스템 글꼴을 크게 설정해도 레이아웃이 깨지지 않도록 개선. 시세 카드의 통화 표시(₩ KRW)가 큰 글꼴에서 여러 줄로 깨지던 문제, 코인 심볼이 글자 중간에서 잘리던 문제를 정리했습니다.
  • 작은 버튼도 확실히 누를 수 있도록 터치 영역을 넓혔습니다 — 시세 헤더의 실시간 배지·통화 전환·정렬 칩, 업데이트 알림 닫기 버튼의 터치 영역을 표준 크기로 확대.
  • 스크린리더(TalkBack) 지원 강화 — 정렬 칩·매수/매도 전환의 선택 상태, 설정 스위치(제목+켬/끔)를 한 번에 읽어주도록 하고, 7일 성과 비교 차트에 요약 설명(최고/최저 코인)을 추가했습니다.
  • 정량적 patch. versionCode 110.
v2.19.62026-07-25
위젯·알림 안정성 마무리
  • 위젯이 네트워크가 잠깐 끊겨도 마지막 시세를 유지합니다. 자동 갱신 중 일시적 실패 시 빈 "로딩" 화면으로 바뀌던 것을, 마지막 정상 시세를 ⚠ 표시와 함께 그대로 보여주도록 개선했습니다.
  • 알림 권한을 나중에 허용해도 알림이 정상 동작. 권한이 꺼진 동안 조건이 충족돼 알림을 못 보낸 경우, 권한을 켜면 다시 알려주도록 수정(이전엔 한 번 놓치면 재알림이 안 됐음).
  • 일시적으로 시세를 못 받은 코인의 급등/급락도 놓치지 않도록 기준가 유지 로직을 개선.
  • 앱 시작 시 알림 예약을 재점검해 백그라운드 알림이 더 안정적으로 동작하도록 보완. 정량적 patch. versionCode 109.
v2.19.52026-07-25
포트폴리오·알림 정확도 개선(적대적 코드 감사 반영)
  • 포트폴리오에서 시세를 못 불러온 코인 때문에 손익이 −100%처럼 잘못 표시되던 문제 수정. 시세가 확보된 코인만 평가액·매수금액에 합산하고, 제외된 코인이 있으면 안내합니다(각 코인 행은 그대로 "—" 표시).
  • 보유 코인을 다시 추가할 때 그동안 쌓인 실현손익이 사라지던 문제 수정 — 재입력해도 실현손익이 보존됩니다.
  • "전량 매도"가 소수점 반올림 때문에 매도가 안 되거나 먼지 수량이 남던 문제 수정 — 정확한 보유 수량으로 전량 매도됩니다. 아주 작은 수량도 "0"으로 뭉개지지 않게 표시를 개선했습니다.
  • 가격 알림·위젯이 설정한 거래소가 아닌 기본 거래소로 판정하던 문제 수정 — 이제 사용자가 고른 시세 거래소·김프 기준으로 알림을 판정하고 위젯을 표시합니다.
  • 알림 문구가 앱에서 고른 언어가 아닌 시스템 언어로 나오던 문제 수정 — 알림도 앱 언어를 따릅니다.
  • 극단적으로 큰 값 입력 시 손익률에 비정상 표시가 나지 않도록 입력 길이를 제한. 정량적 patch. versionCode 108.
v2.19.42026-07-25
코인 이름 다국어 표시
  • 영어·일본어·중국어 화면에서 코인 이름을 영문으로 표시. 그동안 코인 이름(비트코인·이더리움 등)이 외국어 화면에서도 한국어로만 나오던 것을, 한국어에서는 한글 이름, 그 외 언어에서는 영문 이름(Bitcoin·Ethereum 등)으로 표시합니다. 심볼(BTC·ETH)은 항상 함께 표시됩니다. — 시세 목록·상세·스크리너·코인 관리·알림에 모두 적용.
  • 코인 검색에 영문 이름 검색 추가 — "bitcoin"처럼 영문 이름으로도 코인을 찾을 수 있습니다(기존 심볼·한글 검색은 그대로).
  • 코인 이름은 Upbit이 제공하는 공식 한글·영문 명칭을 사용합니다. 정량적 patch. versionCode 107.
v2.19.32026-07-25
다국어 표기 마무리(전 앱 하드코딩 한글 점검)
  • 홈 공포지수 요약 한 줄이 영어·일본어·중국어 화면에서도 그대로 한국어로 나오던 문제 수정. "평상 · F&G 28 공포 · VIX 18.6 보통 · KOSPI …" 같은 요약을 각 언어로 표시합니다(이미 있던 단계·VIX·KOSPI 번역 재사용 + 시장 분위기 문구 신규 번역).
  • 거래대금·시가총액의 조/억/만 단위가 외국어 화면에도 한국어로 나오던 문제 수정 → 한국어는 조/억/만, 그 외 언어는 K/M/B/T로 표시(가격 축약과 동일 정책).
  • 설정 언어 선택의 "시스템 기본"이 모든 언어에서 한국어로 나오던 문제 수정(각 언어로 표시). 나머지 언어명(한국어/English/日本語/简体中文/繁體中文)은 원어 표기 유지.
  • 앱 전체 하드코딩 문자열을 코드 감사로 전수 점검 — 위 3건 외에는 표시 문자열이 모두 5개 언어로 올바로 현지화됨을 확인. 정량적 patch. versionCode 106.
v2.19.22026-07-25
뉴스·동의화면 품질 보완(적대적 코드 감사 반영)
  • 라이트(밝은) 모드에서 이용약관 동의 화면 글자가 안 보이던 문제 수정. 밝은 테마일 때 동의 화면의 안내·고지 문구가 배경과 겹쳐 거의 보이지 않던 결함을 바로잡았습니다(테마에 맞는 배경 적용). 법적 고지를 어떤 테마에서도 또렷하게 확인할 수 있습니다.
  • 동의 화면에서 약관/데이터출처를 연 뒤 뒤로가기 시 앱이 종료되던 문제 수정 → 이제 동의 화면으로 정상 복귀합니다.
  • ‘뉴스 출처’ 화면 뒤로가기가 항상 설정으로 가던 문제 수정 → 홈·뉴스·설정 중 열었던 원래 화면으로 되돌아갑니다.
  • 뉴스 출처 품질 정리: 도메인이 잡다한 비(非)코인 콘텐츠로 바뀐 ‘코인데스크 코리아’ 피드를 제거하고, 검증된 국내 4곳(토큰포스트·블록미디어·블록체인투데이·디지털투데이) + 해외 10곳으로 정비했습니다.
  • 디지털투데이 기사의 시간 표시가 비어 보이고 목록에서 밀려나던 문제 수정(날짜 형식 인식 보강).
  • 뉴스 제목에 `&#8220;` 같은 기호 코드가 그대로 보이던 문제 수정 — 곡선따옴표·말줄임표 등 모든 기호를 올바로 표시합니다.
  • 이용약관 동의 전에는 어떤 네트워크 요청도 나가지 않도록 정비(동의 후 진행 원칙 강화). 뉴스 출처를 바꿀 때 불필요하게 두 번 새로고침하던 것도 1회로 정리.
  • 뉴스를 일시적으로 못 불러왔을 때 “출처를 선택하세요”라고 잘못 안내하던 문구를 상황에 맞게 구분(‘불러오지 못했어요·당겨서 새로고침’). 설정 하단 문구도 5개 언어 현지화. 정량적 patch. versionCode 105.
v2.19.12026-07-25
이용약관·데이터출처 화면 4개 언어 완성
  • 동의·이용약관·데이터 출처·오픈소스·권한·뉴스 출처 화면을 일본어·중국어(간체/번체)까지 완전 번역. 그동안 이 신규 화면들은 한국어·영어만 있어 일본어·중국어 사용 기기에서 한국어로 표시되던 것을, 이용약관 본문을 포함해 5개 언어 전부 현지화했습니다.
  • 표시 문자열 정합성 100%(5개 언어 각 439개 동일). 기능 변화 없음, 문구 표기만 개선. 정량적 패치. versionCode 104.
v2.19.02026-07-25
뉴스 출처 선택 · 이용약관 동의 · 정보/법적 고지
  • 뉴스 출처를 직접 선택. 설정 › 뉴스 출처에서 공식 RSS를 제공하는 언론사만 골라 볼 수 있습니다 — 국내 5곳(토큰포스트·블록미디어·블록체인투데이·코인데스크 코리아·디지털투데이) + 해외 10곳(Cointelegraph·CoinDesk·Decrypt·CryptoSlate·CryptoPotato·Bitcoinist·NewsBTC·BeInCrypto·U.Today·AMBCrypto). 기본값은 선택 없음(비활성) 이며, 선택 전까지 뉴스가 표시되지 않습니다. 선택한 출처들의 최신 기사를 합쳐 최신순으로 보여줍니다.
  • 공식 RSS 제공 명시 · 저작권 고지. 모든 뉴스는 각 언론사의 공식 RSS로 제공되며, 제목·링크만 표시하고 저작권은 원 출처에 귀속됩니다(본문은 원문에서).
  • 앱 최초 실행 시 이용약관 동의. 데이터 출처·투자 유의·개인정보 등 핵심 고지를 확인하고 동의해야 시작합니다.
  • 설정 하단에 정보/법적 고지 추가: 이 앱이 사용하는 권한 · 버전 · 최신 버전 확인 · 이용약관 · 오픈소스 라이선스 · 데이터 출처(모든 제공처 명시) · 문의하기.
  • 무료 · 로그인 없음 · 추적 없음. 신규 기능(정성적 마이너 업데이트). versionCode 103.
v2.18.72026-07-25
차트 다듬기 · 김프 계산 검증
  • 차트 현재가 색이 줌해도 일관되게. 차트를 확대해 과거 저점 구간으로 이동해도 현재가 태그 색이 뒤집히지 않고, 전체 기간 등락(‘가격 추이 %’)과 일치하도록 정정했습니다.
  • 좁은 화면(분할 등)에서 차트 핀치줌 초점이 살짝 어긋나던 문제를 렌더링과 계산 기준을 통일해 해결.
  • 시그니처 지표인 김치 프리미엄 계산을 단위테스트로 검증(동작 변화 없음, 회귀 안전). 차트 렌더링 전반은 적대적 코드 감사 결과 크래시·오렌더 결함 0으로 확인. versionCode 102.
v2.18.62026-07-24
숫자 표시 방어 강화
  • 혹시 모를 계산 오류가 화면에 "NaN"으로 새지 않도록. 가격·거래대금·지수·등락률 표시 함수가 비정상 값(0으로 나누기 등으로 생길 수 있는 NaN·무한대)을 만나면 "−"로 안전하게 표시하도록 방어를 넣었습니다(정상 값 표시는 그대로).
  • 그동안 테스트가 없던 숫자 축약(조/억/만·K/M/B/T)·거래대금·등락률 포맷을 단위테스트로 검증해 회귀를 막습니다. versionCode 101.
v2.18.52026-07-24
손익분기 계산 정밀화 · 계산기 검증 강화
  • 손익분기 매도가를 정확식으로. 매도 수수료가 (더 높은) 매도가에 붙는 점을 반영해 `매수가×(1+수수료)/(1−수수료)`로 계산합니다(기존 근사식은 수수료가 클수록 살짝 낮게 나왔음). 일반 수수료(0.1%)에선 차이가 미미하지만 더 정확해집니다.
  • 청산가(롱/숏)·손익분기·양도소득세 3종 계산기 로직을 순수 함수로 분리해 단위테스트로 검증(회귀 안전). 계산 결과는 청산가·양도세는 동일, 손익분기만 정밀화. versionCode 100.
v2.18.42026-07-24
정밀 다듬기 (신규 코드 감사 반영)
  • 코인 상세가 저절로 다시 열리던 문제 수정. 열어둔 코인이 시세 소스 일시 장애로 잠깐 목록에서 빠지면, 이후 다시 들어올 때 상세 창이 혼자 열리던 현상을 고쳤습니다(이제 깔끔히 닫힘).
  • 7일 성과 비교, 서로 다른 기간이 섞이지 않게. 상장 기간이 짧아 데이터가 적은 코인이 있어도 모든 선을 공통 최근 구간에 맞춰 겹치도록 정정(비교 왜곡 방지). 관심 코인이 9개 이상이어도 선 색이 겹치지 않게 색상을 늘렸습니다.
  • 시장 맥박에 지연 표시. 데이터가 지연되면 ‘맥박’ 판정이 흐려지고 ‘⚠ 지연’을 함께 표기합니다. 또 신호가 3개 이상 있을 때만 위험선호/회피로 단정하도록 보수적으로 조정, ‘−0.0%’ 같은 표기도 정리.
  • 언어를 ‘시스템 기본’으로 되돌릴 때 뉴스 언어도 함께 복원되도록 수정.
  • 신규 코드(v2.17~v2.18) 적대적 감사 2건에서 발견·수정. versionCode 99.
v2.18.32026-07-24
코인 상세, 화면 회전에도 유지
  • 코인 상세를 연 채로 화면을 돌려도 그대로. 태블릿·폴더블·가로 모드에서 코인 상세 시트를 열어둔 상태로 회전하면(1열↔2열↔3열 레이아웃 전환) 시트가 잠깐 닫혔다가 다시 나타나던 문제를, 상세 상태를 안정적인 위치로 옮겨 근본 수정했습니다. 이제 회전해도 상세와 차트 설정이 끊김 없이 유지됩니다.
  • 다기기 실기기 QA(회전 검증) 중 발견·근본 수정. versionCode 98.
v2.18.22026-07-24
뉴스 언어가 앱 언어를 따르도록 수정
  • 앱 언어를 바꾸면 뉴스 출처도 그 언어로. 기기 언어가 한국어여도 앱에서 영어(또는 다른 언어)를 선택하면 이제 뉴스도 해당 언어 소스(한국어→토큰포스트, 그 외→Cointelegraph)로 나옵니다. 이전에는 앱 언어와 무관하게 기기 언어를 따라 한국어 뉴스가 나오던 문제를 고쳤습니다.
  • 다기기 실기기 QA(영어 전환 검증) 중 발견·수정. versionCode 97.
v2.18.12026-07-24
7일 성과 비교 (관심 코인 상대 성과 한눈에)
  • 어떤 코인이 더 올랐나, 한 차트로. 홈에 7일 성과 비교 카드가 생겼습니다. 관심 코인들의 최근 7일 흐름을 ‘첫날 대비 %’로 정규화해 한 차트에 겹쳐 보여줘, 가격 크기가 달라도(₩1 vs ₩1억) 상대 성과를 바로 비교할 수 있습니다.
  • 각 코인은 고유 색 선 + 범례에 7일 등락률(상승 빨강/하락 파랑)을 함께 표시합니다.
  • 이미 받아온 스파크라인 데이터를 재사용 — 추가 통신·서버 없음. 순수 로직은 단위테스트로 검증. versionCode 96.
v2.18.02026-07-24
시장 맥박 (한눈에 보는 시장 분위기)
  • 지금 시장 분위기를 한 카드로. 홈에 시장 맥박 카드가 새로 생겼습니다. 공포·탐욕 심리, 총 시가총액 24시간 변동, VIX, BTC 대 알트코인 흐름을 종합해 위험 선호 / 중립 / 위험 회피를 한눈에 보여줍니다.
  • 근거를 투명하게. 각 신호의 실제 수치와 방향(▲/―/▼)을 칩으로 함께 표시합니다(예: 심리 75 ▲, 시총 24h +1.1% ▲, VIX 17 ▲, BTC/알트 −0.7%p). 이미 받아온 데이터만 사용 — 추가 통신·서버 없음.
  • 공포·탐욕 지수와 같은 객관적 시장 상태 설명이며, 매수/매도 조언이 아닙니다(참고용).
  • 5개 언어 지원, 라이트/다크 대비 확보. 순수 로직은 단위테스트로 검증. versionCode 95.
v2.17.42026-07-24
화면 회전 시 상태 유지
  • 화면을 돌려도 보던 상세·설정 그대로. 태블릿·폴더블 등에서 화면을 회전할 때 열어둔 코인 상세 시트차트 설정(기간·캔들/라인·이동평균·볼린저·추세선·선 굵기), BTC 도미넌스·앱 정보 창이 닫히거나 초기화되던 문제를 고쳤습니다. 이제 회전해도 그대로 유지됩니다.
  • 실시간 시세 갱신을 원자적으로 처리해, 드물게 갱신이 서로 덮어써 잠깐 옛 값이 보이던 경합도 제거했습니다.
  • 코드 감사 마무리(모든 발견 결함 처리 완료). versionCode 94.
v2.17.32026-07-24
배터리 절약 · 라이트 모드 가독성 · 알림/시세 정확도
  • 백그라운드 배터리·데이터 절약. 앱이 화면에 보이지 않을 때는 실시간 시세 연결과 주기적 갱신을 멈추고, 다시 열면 즉시 재개하도록 했습니다(이전엔 백그라운드에서도 계속 통신).
  • 라이트 모드에서 안 읽히던 글자 수정. 흰 배경에서 김치 프리미엄 배지(+수치)공포·탐욕 지수 큰 숫자·단계 이름이 옅은 노랑/라임이라 안 보이던 것을, 진한 색으로 바꿔 또렷하게(“흰 배경 노란 글자” 이슈).
  • 알림 중복 방지 강화. 시세·캔들 데이터가 잠깐 안 들어온 사이 이미 울린 알림이 다시 울리던 경우를 막았습니다.
  • 빗썸 24시간 등락률 정정. 빗썸 시세의 변동률을 ‘당일 0시 대비’가 아니라 진짜 24시간 기준으로 계산해 다른 거래소와 일치시켰습니다.
  • 실시간 연결 안정화(끊은 뒤 소켓이 되살아나는 경합 제거), 공포지수 ‘출처’ 문구 다국어화, 백그라운드 통신 스레드 정리 등 내부 개선.
  • 3-에이전트 코드 감사로 발견·수정. versionCode 93.
v2.17.22026-07-24
다국어 마무리 (영어·일본어·중국어)
  • 한국어가 아닌 언어에서 새던 한글 표기를 정리했습니다. 큰 숫자 표기(공급량 등)가 다른 언어에서도 그 언어 방식(K·M·B·T)으로, 한국어는 그대로 조·억·만으로 나옵니다.
  • 환율 통화 이름을 각 언어로. ‘미국 달러’가 영어에선 US Dollar, 일본어 米ドル, 중국어 美元처럼 표시됩니다(시스템 통화명 사용).
  • 알림 채널 이름·설명, 앱 정보(About)의 안내 문구도 앱에서 선택한 언어를 따르도록 고쳤습니다.
  • 다기기 QA·코드 감사 마무리. versionCode 92.
v2.17.12026-07-24
라이트 모드 가독성 & 입력 검증
  • 라이트 모드에서 안 보이던 선·트랙·칩 배경을 또렷하게. 흰 배경에서 흰색 위 흰색이 되어 사라지던 구분선·VIX 막대 트랙·공포지수 소패널·정렬 칩·로딩 스켈레톤을 테마에 맞춰(라이트=진한 회색, 다크=기존 그대로) 보이도록 고쳤습니다.
  • 잘못된 알림·보유 입력 차단. 가격 알림에 음수/0, RSI 알림에 0~100 범위 밖 값, 급등·급락에 0%를 넣으면 ‘추가’가 비활성화됩니다. 포트폴리오도 수량·평단이 0이면 추가되지 않도록 검증을 강화했습니다(김치 프리미엄은 역프 음수 허용).
  • 다기기 QA·코드 감사로 발견·수정. versionCode 91.
v2.17.02026-07-24
QA 안정화 묶음 (튕김·크래시·알림·다국어)
  • 회전하거나 언어를 바꿔도 보던 화면 그대로. 기기를 돌리거나 앱 언어를 변경할 때 홈으로 튕기던 문제를 고쳤습니다. 뉴스·설정·포트폴리오 등 어느 화면에 있든 그 화면이 유지됩니다.
  • 차트가 순간적으로 앱을 닫히게 하던 잠재 결함 제거. 화면이 아주 얕게 그려지는 첫 순간에 고가/저가·가격축 라벨 계산이 튕기며 크래시할 수 있던 부분에 안전장치를 넣었습니다.
  • 가격 알림이 서로 덮어쓰던 문제 수정. 여러 알림이 울릴 때, 알림 식별번호가 회차마다 뒤섞여 한 알림이 다른 알림을 조용히 지우던 결함을 규칙별 고정 번호로 바꿔 각각 제대로 남도록 했습니다.
  • 코인 상세 큰 가격이 24h 변동 배지를 밀어내던 문제 수정. 비트코인처럼 자릿수가 큰 가격에서 변동률 배지가 줄바꿈되거나 눌리던 것을, 배지 자리를 먼저 확보하도록 정렬을 바로잡았습니다.
  • 영어·일본어·중국어에서 새던 한국어 표기 정리. 시세 카드 ‘실시간 · N초 전’ 배지와 위젯의 공포·탐욕 단계 라벨이 다른 언어에서도 해당 언어로 나오도록 정정했습니다.
  • 뉴스 날짜 처리 안정화. 뉴스를 동시에 불러올 때 발생할 수 있던 날짜 파싱 오류를 스레드 안전 방식으로 바꿨고, 실시간 시세 연결이 드물게 이중으로 열리던 경합도 정리했습니다.
  • 다기기 QA·코드 감사로 발견·수정. versionCode 90.
v2.16.22026-07-24
QA 정확도·라이트모드 수정 묶음
  • 초저가 코인 달러 가격이 "$0"으로 뭉개지던 문제 수정. 시바이누·페페 등 아주 작은 가격의 코인이 원화 소스(업비트 등)에서 달러 환산 시 "$0"으로 보이던 결함을 고쳐 정확히 표시합니다.
  • 라이트 모드에서 기술적 분석 지표 차트가 안 보이던 문제 수정. RSI·스토캐스틱·MACD·스퀴즈·ADX·OBV 선이 흰 배경에서 밝은 노랑이라 안 보이던 것을 딥 앰버로 바꿔 또렷하게.
  • 포트폴리오 로딩 중 "−100%" 오표시 수정. 시세를 불러오는 동안(또는 오프라인) 모든 보유가 ₩0·−100%로 잘못 보이던 것을, 불러오기 전엔 "—"·"불러오는 중"으로 표시하도록 개선.
  • 설정 ‘표시할 환율’ 칩이 잘리던 문제 수정(가로 스크롤). RSI 무변동 구간을 과매수(100)가 아닌 중립(50)으로 정정.
  • 코드 감사(QA)로 발견·수정. versionCode 89.
v2.16.12026-07-24
온보딩 화면 스크롤 수정 (가로·폴더블 대응)
  • 소개 화면이 잘리지 않게. 화면이 짧거나(가로 모드·폴더블 커버 화면 등) 큰 글씨에서 시작 화면의 ‘시작하기’ 버튼이 화면 밖으로 밀려 안 보이던 문제를 고쳤습니다. 이제 소개 화면이 스크롤되어 어떤 화면 비율에서도 시작할 수 있습니다.
  • 멀티기기 QA(갤럭시 Z Fold5)에서 발견·수정. versionCode 88.
v2.16.02026-07-24
뉴스 전체 화면 (더 많은 소식, 당겨서 새로고침)
  • 뉴스를 더 넓게. 홈의 뉴스 속보 카드 오른쪽 더보기 › 를 누르면 전체 뉴스 화면이 열립니다. 최신 헤드라인을 20건까지 한눈에 보고, 제목을 누르면 원문이 열려요.
  • 당겨서 새로고침. 화면을 아래로 당기면 최신 소식을 곧바로 다시 불러옵니다(캐시 우회).
  • 언어에 맞춰 출처 자동 전환(한국어→토큰포스트, 그 외→Cointelegraph). 무료 · 로그인 없음 · 추적 없음.
  • versionCode 87. R8 난독화·서명.
v2.15.02026-07-24
뉴스 속보 (시세 보면서 소식까지)
  • 홈에서 최신 코인 뉴스를 바로. 시세·공포지수 아래에 뉴스 속보 카드가 생겼습니다. 한국어는 토큰포스트, 그 외 언어는 Cointelegraph의 최신 헤드라인을 보여드리고, 제목을 누르면 원문이 열립니다.
  • 가볍고 정직하게. 자체 서버 없이 공개 뉴스 피드를 직접 가져오며(로그인·추적 없음), 한 번 받은 목록은 10분간 재사용해 데이터를 아낍니다. 카테고리·발행 시각도 함께 표시.
  • 언어 설정에 맞춰 뉴스 출처가 자동으로 바뀝니다(한국어→토큰포스트).
  • 무료 · 로그인 없음 · 추적 없음. versionCode 86. R8 난독화·서명.
v2.14.02026-07-24
위젯 수동 새로고침 (안 갱신될 때 톡 한 번)
  • 위젯이 멈춘 것 같을 때, 톡 한 번이면 최신화. 홈 위젯 우측 상단에 새로고침(⟳) 버튼이 생겼습니다. 일부 기기(특히 샤오미·삼성 등)는 배터리 절약 때문에 위젯 자동 갱신이 지연되곤 하는데, 이제 ⟳만 누르면 그 자리에서 시세·김프·공포지수를 다시 불러옵니다.
  • 위젯 본체를 누르면 앱 열기, ⟳만 누르면 새로고침 — 따로 동작합니다.
  • 참고: 자동 갱신이 계속 늦다면 설정 › ‘백그라운드 갱신 허용(배터리 최적화 제외)’을 켜두시면 도움이 됩니다.
  • 무료 · 로그인 없음 · 추적 없음. versionCode 85. R8 난독화·서명.
v2.13.02026-07-24
실시간 배지 & 데이터 신뢰·투명성
  • 이 가격이 왜 정확한지, 이제 눈에 보여요. 시세 카드 상단의 ‘● 실시간’ 배지를 누르면 데이터 신뢰 화면이 열립니다. 오두막의 가격은 여러 거래소를 평균낸 지연된 집계값이 아니라, 각 거래소에서 직접·실시간으로 가져온 실제 체결가입니다. 그래서 앱 가격이 실제 거래소와 일치합니다.
  • 출처를 투명하게. 업비트(실시간 WebSocket)·빗썸·바이낸스·비트겟·코인베이스·환율(ECB)·지수(Yahoo)·공포지수(alternative.me)를 모두 공개 API로 직접 호출 — 자체 서버가 없습니다.
  • 약속을 한 화면에. 완전 무료(구독·페이월 없음) · 로그인·KYC 없음 · 광고 없음 · 추적 없음(데이터를 팔지 않음) · 설정·보유내역은 이 기기에만 저장.
  • 5개 언어. versionCode 84. R8 난독화·서명.
v2.12.02026-07-24
RSI 과매수·과매도 알림
  • 지표로 알림 받으세요. 알림 종류에 RSI 과매수(↑)·과매도(↓) 가 추가됐습니다. 예를 들어 ‘RSI 70 이상’을 설정하면 코인이 과열(과매수) 구간에 들어설 때, ‘RSI 30 이하’는 과매도 구간에 들어설 때 한 번 알려드립니다. 가격만이 아니라 흐름의 세기로 신호를 받는 셈이에요.
  • 감으로 넣지 않게. 임계값 빠른 채우기(과매수 70·75·80 / 과매도 30·25·20)로 한 번에 설정.
  • 똑똑하고 조용하게. 조건에 처음 진입할 때만 1회 알림(계속 울리지 않음), 조용시간 존중 — 기존 알림 원칙 그대로. 참고용 기술 지표이며 투자 권유가 아닙니다.
  • 무료 · 로그인 없음 · 추적 없음. 5개 언어.
  • versionCode 83. R8 난독화·서명.
v2.11.02026-07-24
실현손익 (팔았을 때 확정 수익까지)
  • 이제 판 것도 계산해 드려요. 포트폴리오에서 코인 행의 매도 버튼으로 매도 수량·가격을 넣으면, 실현손익(확정된 수익·손실) 이 자동 계산·누적됩니다. 평단가는 평균원가법으로 유지되고, 남은 수량도 바로 보여줍니다. ‘전량’ 한 번이면 전체 매도.
  • 총손익을 한눈에. 요약 카드에 평가손익(안 판 것) + 실현손익(판 것) = 총손익을 함께 표시합니다. 업비트에서도 직접 손계산하던 실현손익을, 로그인 없이 이 기기에서 바로.
  • 무료 · 로그인 없음 · 추적 없음. 보유·거래 내역은 이 기기에만 저장됩니다. 5개 언어.
  • versionCode 82. R8 난독화·서명.
v2.10.02026-07-23
업그레이드 알림 (앱 시작 시 새 버전 안내)
  • 새 버전이 나오면 앱을 켤 때 바로 알려드려요. 설정에 '업그레이드 알림' 스위치가 생겼습니다. 켜 두면(기본 켜짐) 앱을 시작할 때 최신 버전이 있는지 확인해 상단에 안내해 드립니다. 원치 않으면 언제든 끌 수 있어요.
  • 알림이 실제로 뜨도록 바로잡았습니다. 그동안 최신 버전 정보가 갱신되지 않아 업데이트 안내가 뜨지 않던 문제를 고쳐, 앞으로는 새 버전 출시 때마다 정확히 안내됩니다.
  • 무료 · 로그인 없음 · 추적 없음. 5개 언어(한국어·English·日本語·中文 简·繁).
  • versionCode 81. R8 난독화·서명.
v2.9.02026-07-23
BTC 도미넌스 흐름 읽기 + 데이터 아끼는 로컬 캐시
  • BTC 도미넌스를 누르면 흐름이 보여요. 시장 개요의 'BTC 도미넌스'를 탭하면 상세 화면이 열립니다. 비트코인 시가총액 90일 추이 차트와 함께, 지금 자금이 BTC로 모이는지(도미넌스 상승) 알트코인으로 흩어지는지(도미넌스 하락) 를 한 문장으로 읽어줍니다.
  • 모든 판단에 근거를. 흐름은 지어낸 이야기가 아니라 실제 수치에서 나옵니다 — 최근 24시간 BTC 성과와 전체 시장 성과를 나란히 비교(예: BTC +3.2% vs 전체 +1.1% → 상대 +2.1%p, 도미넌스 상승)해 근거를 그대로 보여줍니다. 앱을 켜 둔 동안 관측한 도미넌스 값도 로컬에 쌓아 추이로 함께 보여줍니다.
  • 정직한 데이터. 정밀한 과거 도미넌스는 유료 데이터라, 무료로 얻는 실제 BTC 시총 추이와 앱이 직접 관측한 값만으로 계산합니다 — 그 사실도 화면에 투명하게 밝힙니다.
  • 한 번 받은 데이터는 다시 받지 않아요. 새로 도입한 로컬 데이터베이스가 이미 받은 시세·정보를 저장해 불필요한 재요청을 없앴습니다. 데이터·배터리를 아끼고, 앱을 다시 열어도 더 빠르게 뜹니다(중복 없이 관리).
  • 한국어·English·日本語·中文(简·繁) 5개 언어. 무료 · 로그인 없음 · 추적 없음. (투자 권유가 아니라 기술적 참고 정보입니다.)
  • versionCode 80. R8 난독화·서명.
v2.8.02026-07-23
손끝으로 보는 프로 차트 + 훨씬 똑똑해진 기술적 분석
  • 차트를 손끝으로 자유롭게. 두 손가락으로 확대·축소하고, 밀어서 원하는 구간으로 이동하세요. 길게 누르면 그 시점의 시가·고가·저가·종가가 뜹니다. 보고 싶은 구간을 크게 키워 자세히 볼 수 있습니다.
  • 가격을 한눈에. 트레이딩뷰처럼 오른쪽에 가격 눈금과 현재가를 또렷하게 표시하고, 표시 구간의 최고가·최저가를 차트 위에 바로 찍어줍니다.
  • 원하는 대로 꾸미는 차트. 이동평균선을 켜고 끄고, 선 굵기를 얇게·보통·굵게 고르고, 지지·저항 추세선을 자동으로 그려줍니다.
  • 각 지표가 무슨 뜻인지, 문장으로 설명. RSI·스토캐스틱·MACD·스퀴즈·ADX·OBV·이동평균이 지금 어떤 상태인지 한 문장으로 쉽게 풀어줍니다.
  • 냉정한 종합 판독. 여러 지표와 1시간·4시간·일봉 흐름, 지지·저항, 피보나치까지 종합해 '지금 흐름'을 신뢰도(높음/중간/낮음)와 함께 알려줍니다. 신호가 엇갈리면 솔직하게 신뢰도를 낮춰 표시합니다. (투자 권유가 아니라 기술적 참고 정보입니다.)
  • 공포·탐욕 지수 새 단장. 더 선명하고 입체적인 게이지로 시장 심리를 한눈에.
  • 라이트 모드가 진짜 밝아졌어요. 밝은 배경에 어두운 카드가 남던 문제를 고쳐, 낮에도 눈이 편한 화면으로. 밝은 화면에서 흐릿하던 글자 색도 또렷하게.
  • 화면 배율 조절(80~120%). 설정에서 글자·요소 크기를 취향대로. 크게 키워도 가격이 잘리지 않습니다.
  • 언어 설정을 깔끔한 선택 박스로. 해외 거래소 코인 검색도 개선 — 심볼만 입력해도 바로 찾습니다.
  • 한국어·English·日本語·中文(简·繁) 5개 언어. 무료 · 로그인 없음 · 추적 없음.
  • versionCode 79. R8 난독화·서명.
v2.7.02026-07-22
가격 알림 빠른 채우기(현재가·±%)
  • 가격 알림 임계값을 감으로 넣지 않도록 빠른 채우기 추가 — 가격 알림(가격↑이상·가격↓이하) 설정 시, 임계값 입력칸 아래에 [현재 ₩현재가] · [+5% / -5%] · [+10% / -10%] 칩이 나타나 탭 한 번으로 임계값을 채웁니다(이상은 +%, 이하는 -% 방향). 현재가를 몰라도 합리적인 목표가를 바로 설정.
  • 선택한 코인의 실시간 원화가를 반영(가격 데이터가 있는 코인·가격 알림에서만 노출). 5개 언어 지원. 스크린샷 회귀 검증.
  • versionCode 78. R8 난독화·서명.
v2.6.22026-07-22
24시간 범위 막대 예외 처리
  • 고가=저가(무변동·신규상장·거래 없음) 코인의 24시간 범위 막대가 빈(0%) 상태로 잘못 보이던 문제 수정 — 범위가 0일 때 위치를 중앙(50%)으로 표시해 "24h 최저에 붙어 있음"으로 오인되지 않게 했습니다.
  • 전반 안정성 점검(김프 계산·차트·스파크라인·격자선의 0나눗셈/평탄 데이터 방어를 재확인 — 모두 정상).
  • versionCode 77. R8 난독화·서명.
v2.6.12026-07-22
초저가 코인(밈코인) 가격 표시 정확도
  • 아주 작은 가격이 "0.0000"(0처럼)으로 뭉개지던 문제 해결 — 시바이누·페페 등 $0.00001234 같은 초저가 코인의 가격이 기존엔 소수 4자리 고정이라 0으로 보였습니다. 이제 값 크기에 맞춰 유효숫자 4자리가 보이도록 소수 자릿수를 자동 확대해 실제 가격이 정확히 표시됩니다(예: 0.00001234). 일반가(BTC·XRP 등) 표시는 그대로.
  • 가격 포맷 단위 테스트 추가(대형가·일반가·초저가·0·null).
  • versionCode 76. R8 난독화·서명.
v2.6.02026-07-22
라인 차트 크로스헤어 통일(가격+변동률)
  • 라인 차트 크로스헤어 툴팁 강화 — 가로로 드래그하면 해당 시점의 가격 + 시작 대비 변동률(%) 을 함께 표시(상승=빨강·하락=파랑). 기존엔 가격만 나왔는데, 이제 캔들 차트의 OHLC 툴팁과 동일한 스타일·위치(손가락 반대편, 테마 배경 대응)로 통일되어 흐름을 더 쉽게 파악할 수 있습니다.
  • 다크·라이트 테마 모두 스크린샷 회귀 검증. 내부적으로 중복 크로스헤어 코드 제거(정리).
  • versionCode 75. R8 난독화·서명. 투자 권유 아님(기술적 참고).
v2.5.32026-07-22
스크리너 행 정렬 보강
  • 스크리너(코인 탐색) 목록에서 긴 심볼(예: PENDLE·STORJ) 정렬 개선 — 심볼·이름이 한 줄로 고정되도록 줄바꿈 대신 말줄임(…) 처리하고 열 폭을 소폭 넓혀, 6자 이상 심볼에서도 가격·등락률·추가 버튼이 어긋나지 않게 정렬됩니다.
  • 폰·폴더블(2단)·태블릿(3단) 반응형 레이아웃과 계산기 도구 화면을 전 폼팩터에서 재검증(스크린샷 회귀).
  • versionCode 74. R8 난독화·서명.
v2.5.22026-07-22
라이트 테마 피보나치 가독성
  • 라이트 테마에서 피보나치 되돌림 비율(0.236·0.382…) 글자가 흰 배경에 잘 안 보이던 문제 개선 — 밝은 골드 대신 진한 앰버로 자동 전환(테마별 자동 적용). 다크 테마는 기존 밝은 골드 유지. 대비(가독성) 확보.
  • 피보나치 되돌림 컴포넌트에 라이트·다크 스크린샷 회귀 테스트 2종 추가.
  • versionCode 73. R8 난독화·서명.
v2.5.12026-07-22
뒤로가기·여백 UX 수정
  • 뒤로가기 버튼 수정 — 포트폴리오·알림·설정·스크리너·도구 화면에서 시스템 뒤로가기(제스처/버튼) 를 누르면 앱이 종료되던 문제를 고쳐, 이제 시세 목록(홈)으로 정상 복귀합니다(도구는 설정으로). 인앱 '←' 화살표와 동작 일치.
  • 소개 화면 여백 수정 — 하단 'Powered by BS Planet' 문구가 시스템 내비게이션 바에 가려지던 문제를 시스템 바 여백 적용으로 해결. 상·하단 여백 정돈.
  • 실기기(갤럭시, 라이트 테마) 검증 완료.
  • versionCode 72. R8 난독화·서명.
v2.5.02026-07-22
피보나치 되돌림
  • 피보나치 되돌림 레벨 — 기술적 분석에 최근 스윙 고·저점 기준 0.236·0.382·0.5·0.618·0.786 되돌림 가격대를 세로 표로 표시. 상승/하락 스윙을 자동 판별하고, 현재가에 가장 가까운 레벨을 골드로 강조해 눈에 바로 들어옵니다. 지지·저항과 함께 핵심 가격대를 보완하는 대표 트레이더 도구.
  • 피보나치 계산 단위 테스트 3종 추가(상승/하락 스윙, 짧은 데이터). 실기기 검증 완료.
  • 여전히 투자 권유가 아니라 기술적 지표(과거 가격 기반).
  • versionCode 71. R8 난독화·서명.
v2.4.02026-07-22
캔들 OHLC 툴팁 + 더 큰 차트
  • 캔들 OHLC 툴팁(트레이딩뷰식) — 캔들 차트를 손가락으로 가로로 드래그하면 해당 봉의 날짜·변동률 + 시가(O)·고가(H)·저가(L)·종가(C) 를 한 상자로 표시. 손가락 반대편에 배치돼 봉을 가리지 않고, 고가=상승색·저가=하락색·종가=변동색으로 즉시 읽힘. 기존 단일 종가 알약을 대체.
  • 차트 높이 확대(120→168dp) — 가격 흐름과 이동평균의 정렬을 훨씬 크게, 화면을 꽉 채워 읽기 쉽게. 라인·캔들 공통.
  • 다크·라이트 테마 모두 툴팁 배경이 표면색을 따라 대비 유지. 실기기 검증(좌/우 드래그, 색상, 무크래시) 완료.
  • versionCode 70. R8 난독화·서명. 투자 권유 아님(기술적 참고).
v2.3.02026-07-22
VWAP(거래량 가중 평균가) 오버레이
  • VWAP 오버레이 추가 — 가격 차트에 거래량 가중 평균가(VWAP) 를 토글로 표시(시안 라인). 세션 기준 누적 VWAP로, 현재가가 평균 매수단가 위/아래 어디인지 한눈에 파악 — 기관·데이트레이더가 가장 많이 쓰는 핵심 기준선. 거래량 데이터가 있을 때만 노출.
  • 볼린저(BB)와 동일하게 토글 방식(기본 꺼짐)으로 차트 혼잡 최소화. 범례에 VWAP 표시. 실기기 검증 완료.
  • 여전히 투자 권유가 아니라 기술적 지표(과거 가격·거래량 기반).
  • versionCode 69. R8 난독화·서명.
v2.2.02026-07-22
지지·저항 레벨
  • 주요 지지·저항 표시 — 기술적 분석에 현재가 기준 가까운 저항(위)·지지(아래) 가격대를 표시(최근 스윙 고점·저점 기반). 트레이더가 가장 많이 보는 핵심 가격대. 해외 코인은 $, 국내는 ₩.
  • 지지·저항 계산 단위 테스트 추가. 투자 권유 아님(기술적 참고).
  • versionCode 68. R8 난독화·서명.
v2.1.02026-07-22
여러 기간 흐름(멀티 타임프레임) 종합
  • 멀티 타임프레임 컨플루언스 — 기술적 분석에 1시간·4시간·1일봉 종합 편향을 한 줄로 표시(1h ▼ · 4h ― · 1D ▲). 여러 기간의 흐름이 정렬됐는지(강세/약세/중립) 한눈에 파악 — 추세 신뢰도를 판단하는 프로 기능. 병렬·캐시로 성능 부담 최소화.
  • 여전히 투자 권유가 아니라 기술적 상태(강세/약세) 표시.
  • versionCode 67. R8 난독화·서명.
v2.0.22026-07-22
전 화면 꽉 채우기 일관성
  • 모든 화면 여백 축소 일관 적용 — 포트폴리오·알림·스크리너·설정·도구 화면의 바깥 여백(16→8dp)을 줄여 홈/상세와 동일하게 갤럭시 화면을 꽉 채웁니다.
  • 포트폴리오 물타기 계산 시트에 세로 스크롤·전체 높이 적용(하단 내용이 잘리지 않도록) — 상세 시트와 동일.
  • versionCode 66. R8 난독화·서명.
v2.0.12026-07-22
화면 꽉 채우기(여백 축소)
  • 갤럭시 화면을 꽉 채우도록 여백 축소 — 카드 바깥 여백(12→6dp)과 카드 안쪽 여백(18→13dp), 상세 시트 여백(20→16dp)을 줄여 콘텐츠가 화면을 더 넓게 채웁니다.
  • 덕분에 코인 가격(예: ₩96,400,000)이 잘리지 않고 완전히 표시되고, 스파크라인·차트도 더 넓게 보입니다.
  • versionCode 65. R8 난독화·서명.
v2.0.02026-07-22
차트 완성 + 새 앱 아이콘 (메이저 업데이트)
  • 차트 완성(트레이딩뷰급) — 가격 차트에 가격 축 눈금(우측 가격 라벨) + 수평 격자선을 추가해 가격 레벨을 바로 읽을 수 있게 했고, 크로스헤어를 풀 십자선(세로+가로)으로 강화. 라인·캔들 차트 모두 적용. 기존 이동평균·볼린저·거래량·6개 기간(15m~1W)·6개 지표 차트·시간축과 함께 완성도 극대화.
  • 앱 아이콘 완전 새 디자인 — 기존 작은 코인(여백 많음)을 버리고, 캔버스를 꽉 채우는 굵은 상승 차트 + 리치 블루→바이올렛 그라디언트(검정 배경 아님)로 프리미엄하게 재설계. 어댑티브·모노크롬 모두 갱신.
  • versionCode 64. R8 난독화·서명.
v1.62.02026-07-22
[중요] 코인 상세 스크롤 수정(기술적 분석 전체 표시)
  • [중요 수정] 기술적 분석·시그널·스퀴즈 모멘텀이 안 보이던 문제 해결 — 코인 상세 시트에 세로 스크롤이 없어 화면보다 긴 하단 내용(7개 지표 시그널, 전망 안내, 스퀴즈 모멘텀 등 6개 지표 차트, 코인 정보, 김치 프리미엄)이 잘려 보이지 않던 문제를 수정. 이제 전부 스크롤로 볼 수 있습니다. 시트도 처음부터 크게 펼쳐 열립니다.
  • 실기기에서 스크롤·전체 지표 표시 검증 완료.
  • versionCode 63. R8 난독화·서명.
v1.61.02026-07-22
[중요] 코인 상세 크래시 수정 + 차트 시간축
  • [긴급 수정] 코인을 눌렀을 때 앱이 종료되던 문제 해결 — RSI/스토캐스틱 기준선 눈금(v1.59) 그리기에서 차트 높이가 순간적으로 0이 되는 프레임에 크래시가 발생하던 문제를 수정. 이제 어떤 코인이든 안전하게 상세가 열립니다. (실기기에서 재현·검증 완료)
  • 차트 시간축 추가 — 가격/캔들 차트 아래에 봉의 시각(시작·중간·끝) 표시. 기간에 맞춰 자동 형식(인트라데이 시:분 · 일봉 월/일 · 주봉 년/월). Candle 모델에 시각(epoch) 추가, 업비트·바이낸스·비트겟에서 파싱.
  • versionCode 62. R8 난독화·서명.
v1.60.02026-07-22
데이터 부족 안내 + 검색 견고성
  • "다른 기간 선택" 안내 — 신규 상장 등으로 선택한 기간에 캔들이 부족할 때, 빈 화면 대신 다른 기간을 선택하라는 안내를 표시(앱 고장 오해 방지).
  • 해외거래소 심볼 검색 카탈로그(Bitget/Binance/Coinbase USDT·USDC) 회귀 테스트 추가로 견고성 강화.
  • versionCode 61. R8 난독화·서명.
v1.59.02026-07-22
지표 차트 기준선 눈금(RSI 70/30·스토캐스틱 80/20)
  • 기준선 숫자 라벨 추가 — RSI 차트에 70/30, 스토캐스틱 차트에 80/20 눈금 표시. 선이 과매수·과매도에 얼마나 가까운지 한눈에 읽혀 흐름 파악이 쉬워집니다(트레이딩뷰식).
  • versionCode 60. R8 난독화·서명.
v1.58.02026-07-22
상세 화면 재배치(차트+기술적 분석 나란히)
  • 흐름 파악 쉽게 재배치 — 코인 상세에서 기술적 분석을 가격 차트 바로 다음으로 이동(기존엔 시가총액·ATH 등 기본정보 뒤에 묻혀 있었음). 차트로 흐름을 보고 곧바로 기술적 판독을 확인 → 시가총액 등 기본정보는 그 아래로.
  • versionCode 59. R8 난독화·서명.
v1.57.02026-07-22
거래량순 정렬 추가
  • 거래량순 정렬 — 코인 목록을 24시간 거래대금 기준으로 정렬(기본/등락순/거래량순/김프순/이름순). 내 목록에서 가장 활발한 코인을 바로 확인.
  • 정렬 칩을 가로 스크롤로 — 좁은 화면·큰 글꼴에서도 안전.
  • 해외거래소 인트라데이 캔들(Bitget 15m~1W) 유효성 회귀 테스트 추가.
  • versionCode 58. R8 난독화·서명.
v1.56.02026-07-22
기간 전환 부드럽게(깜빡임 제거)
  • 기간 전환 매끄럽게 — 차트 기간(15m/1h/1D 등)을 바꿀 때 이전 차트를 유지한 채 갱신해 빈 화면 깜빡임 제거. 캐시된 기간은 즉시 전환. 인트라데이 150봉 캔들 표시 밀도도 회귀 테스트로 검증.
  • versionCode 57. R8 난독화·서명.
v1.55.02026-07-22
기술적 분석 표현 정정(투자 권유 아님 명확화)
  • "매수/매도 신호" → "강세/약세"로 정정 — 기술적 분석 종합 판정 문구가 매수·매도 권유처럼 읽히던 것을 강한 강세 / 강세 우위 / 중립 / 약세 우위 / 강한 약세(기술적 지표 상태 서술)로 변경. 알림 문구도 동일하게 정정. 5개 언어. "투자 권유가 아니라 기술적 지표 분석"임을 표현에서도 일관되게.
  • versionCode 56. R8 난독화·서명.
v1.54.02026-07-22
성능 추가 최적화(스파크라인 병렬·캐시)
  • 목록 스파크라인 병렬 로딩 — 코인별 미니 차트를 순차→병렬(상한 8) 로딩 + 캔들 캐시 적용. 코인 추가·거래소 변경 시 목록 차트가 훨씬 빨리 채워집니다(거래소 레이트리밋 보호 포함).
  • 코인 카탈로그 세션 캐시 — 검색용 코인 목록을 반복 재요청하지 않도록 캐시.
  • versionCode 55. R8 난독화·서명.
v1.53.02026-07-22
인트라데이 차트·지표 정확도·검색·성능 대개선
  • 인트라데이 기간 추가 — 차트 기간에 15분·30분·1시간·4시간봉 추가(+ 1D·1W). iOS 스타일 세그먼트 컨트롤로 전환.
  • 지표 제대로 표시 — 각 기간 150봉을 불러와 스퀴즈 모멘텀·스토캐스틱 등 지표 그래프가 촘촘하고 의미있게 그려집니다(기존엔 봉이 적어 짧게 끊겼음). 기술적 분석이 지금 보는 기간과 동일한 캔들을 분석(기간 배지 표시).
  • 이동평균선 선명하게 — MA5·10·20 라인을 더 굵게(잘 보이도록).
  • 성능 최적화 — 캔들 캐시(45초) 도입 + 가격 차트와 기술적 분석이 같은 캔들 공유 → 중복 요청 제거. 기간 전환·상세 재오픈이 빨라집니다.
  • 검색 개선 — 시세 기준 거래소가 해외(바이낸스/비트겟/코인베이스)면 그 거래소 상장 심볼을 검색. M/USDT·MUSDT·MUSDC 같은 USDT·USDC 페어도 쉽게 검색·추가.
  • versionCode 54. R8 난독화·서명.
v1.52.02026-07-22
아이콘 버튼 접근성 라벨
  • 아이콘 버튼 스크린리더 라벨 — 라벨이 없어 TalkBack이 용도를 못 읽던 아이콘 전용 버튼에 설명 추가: 라인/캔들 차트 전환, 포트폴리오 코인 제거, 스크리너 추가/추가됨. 5개 언어 지원.
  • versionCode 53. R8 난독화·서명.
v1.51.02026-07-22
차트 접근성(스크린리더 지원)
  • 차트 스크린리더 지원 — 그동안 TalkBack에 아무 정보도 주지 못하던 가격/캔들 차트에 추세 요약 설명 추가. 예: "상승 가격 차트. 현재 ₩92,345,678, +5.20%. 최고 …, 최저 …" — 시각장애 사용자도 차트 흐름을 파악. 5개 언어 지원.
  • 해외 코인은 $, 국내 코인은 ₩로 통화 자동 일치.
  • versionCode 52. R8 난독화·서명.
v1.50.02026-07-22
라이트 테마 크로스헤어 정확성
  • 라이트 테마 버그 수정 — 크로스헤어 색이 거의 흰색으로 고정돼 있어 밝은 테마에서 선·글자가 보이지 않던 문제 수정. 이제 테마에 맞춰(밝은 테마=어두운 색, 어두운 테마=밝은 색) 조회선·값 알약이 항상 또렷하게 보입니다.
  • 라이트 테마에서 볼린저 밴드·거래량 막대 표시 검증(스크린샷 회귀 테스트 추가).
  • versionCode 51. R8 난독화·서명.
v1.49.02026-07-22
차트 크로스헤어(트레이딩뷰식 값 조회)
  • 크로스헤어 추가 — 가격/캔들 차트를 좌우로 드래그하면 세로 조회선 + 해당 시점의 정확한 가격이 상단 알약으로 표시. 트레이딩뷰식 시그니처 인터랙션. 세로 스크롤과 충돌하지 않도록 가로 드래그 전용 제스처 사용.
  • 해외 전용 코인(USDT 캔들)은 $, 국내 코인은 로 통화 자동 일치 — 차트 고저 표기도 동일하게 정정.
  • versionCode 50. R8 난독화·서명.
v1.48.02026-07-22
OBV(누적 거래량) 지표 + 다이버전스
  • OBV 지표 추가 — 기술적 분석에 OBV(On-Balance Volume, 누적 거래량) 추가. 거래량이 매수 쪽에 실리는지(매집) 매도 쪽인지(분산)를 누적으로 추적. 가격은 오르는데 OBV는 내리면 약세 다이버전스(상승 동력 약화), 반대면 강세 다이버전스 — 추세 반전을 미리 알리는 신뢰도 높은 신호.
  • OBV 실제 그래프(OBV 라인 + 신호선)를 지표 차트에 추가 — 이제 7개 신호·6개 시각 차트.
  • OBV 계산·다이버전스 단위 테스트 2종 추가.
  • versionCode 49. R8 난독화·서명.
v1.47.02026-07-22
거래량 막대(차트)
  • 거래량 표시 추가 — 코인 상세 차트 아래에 거래량 막대를 표시. 캔들 방향(상승=빨강·하락=파랑)으로 색칠해 "가격 움직임에 거래가 실렸는지"를 한눈에 — 추세의 신뢰도를 판단하는 핵심 정보. TradingView 스타일 정렬.
  • 거래량 데이터를 업비트·바이낸스·비트겟 캔들 파서 전부에서 파싱(기준자산 거래량). Candle 모델에 volume 필드 추가.
  • 실데이터 거래량 파싱 검증 테스트 추가.
  • versionCode 48. R8 난독화·서명.
v1.46.02026-07-22
볼린저 밴드(가격 차트 오버레이)
  • 볼린저 밴드 추가 — 가격 차트에 BB(20, 2σ) 밴드 엔벨로프를 오버레이(상단·중심·하단 + 연한 채움). 차트 우측 상단 BB 토글로 켜고 끕니다. 밴드가 좁아지면 변동성 응축(스퀴즈, 큰 움직임 임박 신호), 넓어지면 변동성 확대 — 이미 있는 스퀴즈 모멘텀 지표를 "눈으로" 확인.
  • 밴드가 가격 범위를 벗어나도 잘리지 않도록 차트 Y축 스케일에 밴드를 포함. 라인·캔들 차트 모두 지원.
  • 볼린저 밴드 계산 단위 테스트 2종 추가(정렬·순서·변동성 0).
  • versionCode 47. R8 난독화·서명.
v1.45.02026-07-22
ADX/DMI 시각 그래프 추가(6개 지표 전부 시각화)
  • ADX 그래프 추가 — 기술적 분석 차트 영역에 ADX(추세 강도) + +DI/-DI 라인을 25 기준선과 함께 표시. 추세가 강해지는지·약해지는지, +DI/-DI 교차(방향 전환)를 눈으로 확인. 이제 6개 지표 전부(이동평균 오버레이 · RSI · 스토캐스틱 · MACD · 스퀴즈 모멘텀 · ADX)가 실제 그래프로 보입니다.
  • ADX 계산을 시계열(adxSeries)로 리팩터해 그래프·판정값을 단일 로직으로 공유.
  • versionCode 46. R8 난독화·서명.
v1.44.02026-07-22
기술적 분석 ADX(추세 강도) 추가
  • ADX 지표 추가 — 기술적 분석에 ADX(14, Wilder) + DMI(+DI/-DI) 추가. 추세의 강도(ADX≥25 강한 추세, <20 횡보)와 방향(+DI vs -DI)을 판정 — "지금이 추세장인지 횡보장인지"를 알려주는 트레이더 필수 지표. 이제 6개 지표(이동평균·RSI·스토캐스틱·MACD·스퀴즈 모멘텀·ADX) 종합.
  • ADX 계산 단위 테스트 추가.
  • versionCode 45. R8 난독화·서명.
v1.43.02026-07-22
코인 로고 디스크 캐시(성능·오프라인)
  • 로고 디스크 캐시 — 코인 로고를 기기 캐시에 저장(로고는 불변). 앱 재시작 시 즉시 표시, 오프라인에서도 표시, CoinGecko 재요청·레이트리밋 감소. 3단 캐시(메모리 → 디스크 → 네트워크).
  • versionCode 44. R8 난독화·서명.
v1.42.02026-07-22
기술적 분석 전망 요약
  • 전망 한 줄 요약 — 기술적 분석에 지표 종합 기반 전망 문장 추가(예: "다수 지표가 강세로 정렬 — 상승 추세 지속에 무게"). 스퀴즈(변동성 응축) 감지 시 "큰 움직임 임박 가능" 안내. "현재 흐름 + 향후 방향"을 한눈에.
  • 여전히 투자 권유가 아니라 기술적 지표 해석임을 섹션 상단에 상시 고지.
  • versionCode 43. R8 난독화·서명.
v1.41.02026-07-22
스크리너 코인 로고(전 화면 일관)
  • 스크리너 코인 로고 — 급등/급락/거래량 탐색 목록에도 코인 로고 표시. 이제 티커·상세·포트폴리오·스크리너 전 화면에서 코인 로고가 일관되게 표시됩니다.
  • versionCode 42. R8 난독화·서명.
v1.40.02026-07-22
포트폴리오 로고·카드 리디자인 통일
  • 포트폴리오 코인 로고 — 보유 코인 행에 로고 표시(티커·상세와 일관된 시각 아이덴티티).
  • 포트폴리오 요약 카드 리디자인 — 리디자인된 뉴트럴 다크 서피스(둥근 22dp·헤어라인 테두리)로 전 화면 카드 스타일 통일.
  • 코인 로고 이미지 파이프라인 검증 테스트 추가(응답이 유효 PNG인지 확인).
  • versionCode 41. R8 난독화·서명.
v1.39.02026-07-22
코인 로고(목록)
  • 티커 목록 코인 로고 — 메인 코인 목록 각 행에 실제 코인 로고 표시(CoinGecko 배치 1회 조회·캐시). 어떤 코인인지 한눈에 알아보는 프리미엄 시각 아이덴티티. 로드 실패 시 자동 생략.
  • versionCode 40. R8 난독화·서명.
v1.38.02026-07-22
코인 로고(상세 헤더)
  • 코인 로고 표시 — 코인 상세 헤더에 실제 코인 로고를 표시(CoinGecko). 새 의존성 없는 경량 자체 이미지 로더 + 인메모리 캐시, 로드 실패 시 자동 생략(우아한 폴백).
  • versionCode 39. R8 난독화·서명.
v1.37.02026-07-22
디자인 대개편 ④: 라이트 테마 정제
  • 라이트 테마 Apple 감성 정제 — 배경을 Apple 라이트 그레이(#F5F5F7)로, 텍스트·서피스·구분선을 Apple 뉴트럴 팔레트(니어블랙 #1D1D1F, 세컨더리 #6E6E73)로 재조정. 다크 데이터 타일이 밝은 캔버스 위에 프리미엄하게 안착.
  • 해외 코인이 티커에 정상 포함되는지 리포지토리 회귀 테스트 추가.
  • versionCode 38. R8 난독화·서명.
v1.36.02026-07-22
해외 코인 검색·스파크라인 보완
개선
  • 해외 코인 검색 보완 — 페어명(예: MUSDT)을 입력하면 USDT 접미를 자동 인식해 기본 심볼(M)로 추가. 단일 문자 심볼도 검색·추가 가능. 한글 이름 검색 시 해외추가 오탐 방지.
  • 해외 코인 리스트 스파크라인 — 코인 목록의 7일 미니차트도 Upbit → Binance/Bitget 폴백으로 해외 코인까지 표시.
기술
  • versionCode 37. R8 난독화·서명.
v1.35.02026-07-22
시세 거래소 선택(업비트·빗썸·바이낸스·비트겟·코인베이스)
새 기능
  • 시세 거래소 선택 — 설정에서 시세를 가져올 거래소를 업비트·빗썸·바이낸스·비트겟·코인베이스 중 선택. 선택 소스 실패 시 자동 폴백.
  • 해외거래소 USDT 기준 — 바이낸스·비트겟·코인베이스 선택 시 USDT/USD 기준가로 표시(₩/$ 토글 가능). 김치 프리미엄은 한국 거래소(업비트·빗썸) 시세일 때만 계산.
  • 기준 코인 목록은 거래소 선택과 무관하게 동일하게 유지.
기술
  • 코인별 소스-우선 병렬 조회로 리팩터. 시세 소스 선택 회귀 테스트 추가. versionCode 36. R8 난독화·서명.
v1.34.02026-07-22
디자인 대개편 ③: 코인 상세 헤더 프리미엄
  • 코인 상세 헤더 리디자인 — 큰 가격(34sp Black) + "24h 변동" 컬러 pill + 거래소 배지(pill) + 근사 달러가(≈ $). Apple 감성의 명확한 위계로 정보를 한눈에.
  • versionCode 35. R8 난독화·서명.
v1.33.02026-07-22
디자인 대개편 ②: 태블릿·폴더블 3열 반응형
  • 반응형 3-tier 레이아웃 — 폰(1열) / 폴더블(2열: 시세 | 시장개요·공포지수) / 태블릿·초광폭(3열: 시세 | 공포지수 | 시장개요). 갤럭시 폴드7·태블릿의 넓은 화면을 효율적으로 활용, 초광폭에서 내용 폭을 1480dp까지 확대.
  • versionCode 34. R8 난독화·서명.
v1.32.02026-07-22
해외거래소 코인 지원(Binance·Bitget)
새 기능
  • 해외 전용 코인 추가 — Upbit 미상장 코인(예: M/USDT)도 설정 ▸ 코인 추가에서 심볼을 검색하면 "해외거래소에서 추가"로 등록 가능. 시세는 Binance → Bitget(USDT) 폴백으로 표시.
  • 해외 코인 차트·기술적 분석 — 가격 차트·이동평균선·지표(RSI·스토캐스틱·MACD·스퀴즈 모멘텀)를 Binance klines·Bitget 캔들로 자동 폴백 조회. Upbit 상장 코인은 기존대로 Upbit(원화) 우선.
기술
  • 캔들 통합 폴백(Upbit KRW → Binance USDT → Bitget USDT), Bitget 시세·캔들 연동 회귀 테스트 추가. versionCode 33. R8 난독화·서명.
v1.31.02026-07-22
디자인 대개편 ①: 프리미엄 뉴트럴 다크(Apple·TradingView)
디자인 혁신
  • 뉴트럴 프리미엄 다크 — 네이비 대신 뉴트럴 니어블랙(#0A0B0F) 배경 + 레이어드 카드 서피스로 Apple 감성의 정제된 색조.
  • 카드 전면 리디자인 — 더 큰 둥근 모서리(22dp) · 헤어라인 테두리 · 부드러운 그림자 · 넉넉한 여백. 티커·시장개요·공포지수 카드 통일.
  • 타이포그래피 정제 — 카드 제목을 더 크고 깔끔한 화이트 + 타이트 트래킹, 골드 액센트 아이콘.
  • 공포지수 카드 — 과채도 배경을 은은한 단계 틴트로 정제(색은 속삭임처럼).
기술
  • versionCode 32. R8 난독화·서명. (다음 편: 폴더블/태블릿 공간 활용 고도화·라이트 테마 정제 예정)
v1.30.02026-07-22
가격 차트 이동평균선(5·10·20) 오버레이
  • 이동평균선 오버레이 — 라인·캔들 차트 위에 MA5(골드)·MA10(에메랄드)·MA20(퍼플) 이동평균선을 겹쳐 표시. 정배열/역배열·골든/데드크로스를 가격 차트에서 바로 확인(범례 포함).
  • versionCode 31. R8 난독화·서명.
v1.29.02026-07-22
기술적 분석 대폭 강화(지표 시각화 차트)
개선
  • 지표 시각화 차트 — 코인 상세의 기술적 분석에 실제 그래프 추가: RSI(14)(70/30 밴드), 스토캐스틱 %K/%D(80/20 밴드), MACD(히스토그램+라인+0선), 스퀴즈 모멘텀(LazyBear)(강/약 밝기 히스토그램 + 스퀴즈 온/오프 점). 숫자·신호에 더해 추세를 눈으로 확인. 최근 64봉 기준.
  • 상세 시트 정리 — 하단의 용도가 모호하던 입력 박스 2개(김프 실수익 계산기)를 제거. 계산기는 설정 ▸ 계산기 도구에 그대로 제공.
기술
  • 지표 시계열 계산 단위 테스트 추가. versionCode 30. R8 난독화·서명.
v1.28.02026-07-22
코인 정보 캐시(성능·레이트리밋 완화)
  • 코인 기본정보 캐시(2분 TTL) — 코인 상세를 다시 열 때 CoinGecko 재요청 없이 즉시 표시. API 부하·레이트리밋(429) 완화, 페치 실패 시 직전 값이라도 표시해 빈 화면 방지.
  • versionCode 29. R8 난독화·서명.
v1.27.02026-07-22
다국어 완성도(미현지화 문구 보완)
  • 미현지화 문구 현지화 — 앱 소개(About) 대화상자, 설정의 "코인 없음/검색 결과 없음" 안내, 코인 상세 24h 범위의 저/고 라벨, 홈스크린 위젯의 제목·로딩·공포지수 라벨을 5개 언어로 현지화. 비한국어 사용자에게 한국어로 노출되던 잔여 문구를 제거.
  • versionCode 28. R8 난독화·서명.
v1.26.02026-07-22
실시간 연결 자동 복구
  • WebSocket 자동 재연결 — 실시간 시세 연결이 끊기면(네트워크 blip·서버 종료 등) 지수 백오프(1→2→4→…→최대 30초)로 자동 재연결하고, 성공 시 백오프를 리셋. 기존에는 한 번 끊기면 앱을 재시작하거나 코인을 바꾸기 전까지 실시간 갱신이 조용히 멈추던 문제를 해결. (의도적 종료 시엔 재연결 안 함)
  • 실시간 WebSocket 수신 회귀 테스트 추가.
  • versionCode 27. R8 난독화·서명.
v1.25.02026-07-22
큰 글꼴 접근성(레이아웃 견고성)
  • 큰 글꼴에서 김프·등락률 잘림 수정 — 시스템 글꼴을 크게 설정(fontScale)했을 때 김치 프리미엄 배지와 등락률의 "%"가 고정폭에 잘리던 문제를, 내용에 맞춰 늘어나도록 수정. 큰 글꼴 접근성 사용자도 전체 값이 온전히 표시됩니다.
  • versionCode 26. R8 난독화·서명.
v1.24.02026-07-22
가격 변동 플래시(마이크로 인터랙션)
  • 가격 변동 플래시 — 실시간 시세가 갱신되면 해당 코인 행이 상승 빨강/하락 파랑으로 잠깐 비쳤다 사라져 움직임을 즉각 체감(560ms 페이드). 프리미엄 트레이딩 앱 감성. 애니메이션 최소화(reduced-motion) 접근성 설정 존중.
  • versionCode 25. R8 난독화·서명.
v1.23.02026-07-22
접근성(스크린리더) 개선
  • 접근성 라벨 현지화·보완 — 뒤로·삭제·위/아래 이동·제거·추가 아이콘 버튼의 스크린리더(TalkBack) 라벨을 5개 언어로 현지화. 라벨이 없던 뒤로가기 버튼(계산기·스크리너·포트폴리오)에도 라벨 추가.
  • versionCode 24. R8 난독화·서명.
v1.22.02026-07-22
코인 기본정보(시가총액·순위·ATH)
  • 코인 기본정보 — 코인 상세 시트에 시가총액·시총 순위·24h 거래량·유통량/최대발행량·사상 최고가(ATH) 및 ATH 대비 등락률을 추가(CoinGecko). 미지원 코인·응답 실패 시 섹션 자동 숨김.
  • 실거래소 CoinGecko 연동 회귀 테스트 추가.
  • versionCode 23. R8 난독화·서명.
v1.21.02026-07-22
원화 금액 표기 정리 · 전 화면 회귀 테스트
  • 원화 금액 표기 정리 — 포트폴리오 평가액·손익·매수금액·코인별 평가액과 세금 계산기 결과를 원화 정수(소수점 없음, 천단위 콤마)로 통일. 0/소액에서 "₩0.0000"으로 보이던 표기 수정.
  • 전 화면 디자인 회귀 테스트 — 온보딩·계산기·포트폴리오 화면 스크린샷 회귀 테스트 추가(설정·알림 포함 앱 전 화면 상시 검증).
  • versionCode 22. R8 난독화·서명.
v1.20.02026-07-22
알림 코인 전체 선택 · 화면 회귀 테스트
  • 알림 코인 전체 선택 — 알림 추가 시 상위 8개로 제한되던 코인 목록을 전체 코인 가로 스크롤로 개선. 코인을 많이 담은 사용자도 모든 코인에 알림 설정 가능.
  • 설정·알림 화면 스크린샷 회귀 테스트 추가(언어 메뉴·기술적 신호 알림 포함 디자인 상시 검증).
  • versionCode 21. R8 난독화·서명.
v1.19.02026-07-22
기술적 신호 알림
새 기능
  • 기술적 신호 알림 — 코인별로 켜두면, 다지표 종합 편향이 강한 매수/강한 매도 신호로 전환될 때 푸시 알림. 상태 전이에서만 1회 발화(스팸 방지), 조용시간 존중. 임계값 입력 불필요.
개선
  • 알림 종류가 7종으로 늘어 종류 선택을 가로 스크롤로 정리.
  • 알림 문구·설명 5개 언어 현지화.
기술
  • versionCode 20. R8 난독화·서명. (배경 워커 15분 주기에서 일봉 기반 분석·상태 비교)
v1.18.02026-07-22
캔들차트 · 와이드(폴더블) 레이아웃 · 분석 안정화
새 기능
  • 캔들스틱 차트 — 코인 상세 차트에 라인/캔들 토글 추가. 심지(고저)+몸통(시가·종가), 한국식 상승 빨강·하락 파랑.
  • 와이드 화면 최적화 — 갤럭시 폴드7 등 폴더블·태블릿의 넓은 화면에서 2열 레이아웃(시세 / 시장개요·공포지수)으로 공간 활용, 초광폭에서 내용 폭 제한·중앙정렬.
개선
  • 기술적 분석 안정화 — 캔들 응답 실패/부족 시 "계산 중" 무한 대기 제거(로딩/실패 구분, 다시 시도 버튼). 일봉 부족(신규상장 등) 시 4시간봉 자동 폴백.
  • 캔들차트·와이드 레이아웃 스크린샷 회귀 테스트 추가.
기술
  • versionCode 19. R8 난독화·서명.
v1.17.02026-07-22
기술적 분석 신뢰도·고지 강화
  • 면책 고지 강화 — 기술적 분석 상단의 "투자 권유 아님" 안내를 정보 아이콘 + 테두리 + 확대 글자로 명확히 표기.
  • 지표 신뢰도 검증 — 실거래소(Upbit) 라이브 캔들로 RSI·스토캐스틱·MACD·스퀴즈 모멘텀·이동평균의 정확성을 상시 검증하는 회귀 테스트 추가.
  • versionCode 18. R8 난독화·서명.
v1.16.02026-07-22
기술적 분석 (다지표 자동 진단)
새 기능
  • 코인 기술적 분석 — 상세 시트에 다지표 자동 진단. 이동평균(5·10·20 정배열/역배열)·RSI(14)·스토캐스틱(14,3,3)·MACD(12,26,9)·스퀴즈 모멘텀(LazyBear)을 종합해 현재 흐름과 매수/매도 편향을 게이지로 표시하고, 강세/약세 신호 수를 집계합니다.
  • 명확한 고지 — "투자 권유가 아니라 과거 가격 기반 기술적 지표를 자동 계산한 참고 정보"임을 분석 섹션 상단에 상시 표기.
개선
  • 지표 계산 단위 테스트 12종(정확성·경계값)과 분석 UI 스크린샷 회귀 테스트 추가.
  • 지표명·신호·상태 라벨 5개 언어 전체 현지화.
기술
  • versionCode 17. R8 난독화·서명.
v1.15.02026-07-22
코인 상세 가격 차트 · 인앱 언어 선택
새 기능
  • 코인 상세 가격 차트 — 상세 시트에 기간 선택형 차트(1D/1W/1M/3M). Upbit 캔들 기반 영역형 라인차트에 최저·최고·현재가 마커와 시작가 기준선(점선), 기간별 등락률·고저가 표기. 기존 14일 스파크라인 대체.
  • 인앱 언어 선택 메뉴 — 설정에서 시스템/한국어/English/日本語/简体中文/繁體中文 직접 선택(즉시 적용, minSdk 26 전 버전 지원).
개선
  • 다국어 보완 — 일부 미번역 문자열(테마 제목·VIX/KOSPI 보조 라벨)을 영어·일본어·중국어(간체·번체)로 추가.
  • 상세 차트 렌더 스크린샷 회귀 테스트 추가.
기술
  • versionCode 16. R8 난독화·서명.
v1.14.02026-07-22
이모지 완전 제거(SVG 아이콘화) · 시각 회귀 테스트
  • 모든 픽토그램 이모지 → SVG 아이콘 — 공포지수 KOSPI(🇰🇷→깃발 아이콘), 종합 분위기(👀🔥🥶🌤️→감정별 Material 아이콘: 불꽃/눈송이/해/눈), 홈 About의 앱스토어 링크(🌐→지구 아이콘), 홈위젯 헤더 이모지 제거. "클로드 디자인·SVG 아이콘 통일" 지시 완전 이행.
  • Compose Preview 스크린샷 테스트 도입 — 티커·공포지수·시장개요 화면을 JVM에서 렌더→PNG 회귀 테스트(AGP 공식 플러그인). 실기기 없이 디자인 시각 검증·회귀 방지.
  • versionCode 15. R8 난독화·서명.
v1.13.02026-07-22
김프 기준 거래소 선택
  • 김프 기준 거래소 선택 — 글로벌 기준을 Binance/Coinbase/Bybit 중 선택(설정). 후기 "김프 기준이 뭔지 선택하고 싶다" 대응.
  • versionCode 14. R8 난독화·서명.
v1.12.02026-07-22
백그라운드 갱신 안정화
  • 백그라운드 갱신 허용(배터리 최적화 제외) — 설정에서 위젯·알림이 안정적으로 갱신되도록 배터리 최적화 예외 요청. 후기 "배터리세이버가 위젯/알림을 죽임" 대응.
  • versionCode 13. R8 난독화·서명.
v1.11.02026-07-22
실시간 시세 (WebSocket)
  • Upbit WebSocket 실시간 갱신 — 포그라운드에서 원화가·등락·김프를 서브초 단위로 즉시 갱신(60초 REST 폴링과 병행). 후기 최다 감정 불만 "갱신 느림" 대응.
  • versionCode 12. R8 난독화·서명.
v1.10.02026-07-22
세금 간이 계산기
  • 양도소득세 간이 계산기 — 계산기 도구에 추가(기본공제·세율 가정 추정치).
  • versionCode 11. R8 난독화·서명.
v1.9.02026-07-22
리스트 스파크라인
  • 코인 목록 7일 스파크라인 — 각 코인 행에 추세 미니차트(저비용 캐시).
  • versionCode 10. R8 난독화·서명.
v1.8.02026-07-22
계산기 도구
  • 물타기(평단가) 계산기 — 포트폴리오에서 추가 매수 시 새 평단가 계산·적용.
  • 계산기 도구 화면 — 청산가(격리)·손익분기 매도가.
  • versionCode 9. R8 난독화·서명.
v1.7.02026-07-22
급등/급락 알림 · 알림 다국어
  • 급등/급락(모멘텀) 알림 — 지난 주기 대비 %변동 감지(스팸 방지·조용시간 존중).
  • 알림 문구 완전 다국어화 — 백그라운드 알림까지 5개 언어.
  • versionCode 8. R8 난독화·서명.
v1.6.02026-07-22
온보딩 · 마무리
  • 첫 실행 온보딩 — 핵심 기능 소개 + 시작 화면.
  • 전반 폴리싱. versionCode 7. R8 난독화·서명.
v1.5.02026-07-22
스크리너 · 알림 조용시간
  • 스크리너(탐색) — 전체 KRW 마켓 급등/급락/거래량 Top, 탭하면 내 목록에 추가.
  • 알림 조용시간 — 정한 시간대에는 알림 억제(자정 넘김 지원), 스팸 방지.
  • versionCode 6. R8 난독화·서명.
v1.4.02026-07-22
포트폴리오 · F&G 히스토리 · 디자인 폴리싱
새 기능
  • 포트폴리오(무로그인·로컬) — 보유내역(코인·수량·평균매수가) 기기 저장, 실시간 평가액·총손익(₩·%)· 코인별 손익%·비중. 서버 전송 없음.
  • 공포·탐욕 30일 히스토리 스파크라인 — 심리 추세를 한눈에.
디자인·접근성
  • 햅틱 피드백(통화 토글·코인 탭·정렬), reduced-motion(애니메이션 제거 설정 존중), 게이지 스크린리더 라벨.
  • 헤더/공포지수 이모지 → Material SVG 아이콘.
기술
  • versionCode 5. R8 난독화·서명.
v1.3.02026-07-22
완전한 다국어(5개 언어)
  • 전체 UI 5개 언어 현지화 — 한국어·영어·일본어·중국어(간체·번체). 홈·티커·공포지수(단계/VIX/KOSPI)· 설정·알림·코인 상세·실수익 계산기·시장 개요까지 전 화면. 시스템 언어 자동 적용 + Android 13 앱별 언어.
  • versionCode 4. R8 난독화·서명.
v1.2.02026-07-22
다국어 · 시장개요 · 인앱 업데이트 · 리디자인
새 기능
  • 앱 이름 변경: "오두막 코인시세" (BS Planet).
  • 다국어 지원(5개 언어) — 한국어·영어·일본어·중국어(간체·번체). Android 13 앱별 언어.
  • 시장 개요 카드 — BTC 도미넌스·총 시가총액·24h 거래량·시총 변동(CoinGecko).
  • 김프 실수익 계산기 — 투자금·수수료로 실제 원화 손익 추정.
  • 인앱 업데이트 안내 — BS Planet 앱스토어 최신 버전 확인·안내.
  • 새로고침 주기 선택(10초/30초/1분/5분).
디자인
  • 입체(3D) 런처 아이콘 — 방사형 그라디언트 금화 + 상승 화살표 + 그림자 + 모노크롬 테마 아이콘.
  • 헤더 이모지 → Material SVG 아이콘(시세·공포지수·시장개요).
기술
  • versionCode 3. 5개 로케일 리소스 + localeConfig. R8 난독화·서명.
v1.1.02026-07-22
기능 대확장 (경쟁 앱 후기 반영)

Play Store·한국 커뮤니티 리뷰 심층 분석으로 도출한 "사용자가 열광하는 기능"을 대거 반영.

새 기능
  • 홈스크린 위젯(Glance) — 코인 시세·김프·공포지수 요약, 무료 자동 갱신(경쟁사가 유료로 가두는 기능).
  • 가격·김프 알림 — 목표가/김프 임계 도달 시 알림. 상태 전이 기반으로 스팸 방지, 한 화면 일괄 관리, 기본 OFF.
  • 코인 상세 시트 — 큰 가격·24h 등락·14일 스파크라인·24h 고저 범위 바·24h 거래대금(억/조)·김프 투명성.
  • 정렬 — 등락순/김프순/이름순.
  • 다통화 토글 — ₩/$ 원탭 전환.
  • 당겨서 새로고침 + 로딩 스켈레톤 + 에러 재시도(빈 화면 방지).
  • BS Planet 앱스토어 바로가기.
개선
  • 카드 elevation 그림자, 클로드 디자인 원칙(계층·상태·전환) 반영.
  • 오프라인 회귀 테스트 확대(라벨·수학 경계값).
기술
  • versionCode 2. WorkManager(알림)·Glance(위젯) 추가. R8 난독화·서명 유지.
v1.0.02026-07-22
최초 배포

Powered by BS Planet · 무료 · 로그인 없음 · 추적 없음

`hutsori-app` 웹 위젯을 코틀린 + Jetpack Compose 네이티브 앱으로 이식한 첫 정식 배포.

새 기능
  • 암호화폐 시세 위젯 — 원화/달러 동시 표기, 24h 등락률(상승 빨강·하락 파랑), 다거래소 폴백 (Upbit → Bithumb → Binance → Coinbase).
  • 김치 프리미엄 — 자동 계산 + 골드/블루 배지. 탭 시 계산식·거래소·환율·기준시각 공개.
  • 공포·탐욕 지수 위젯 — 암호화폐 F&G 반원 게이지(5단계·바늘·전일 대비), VIX 막대, KOSPI 양극 막대, 종합 인사이트.
  • 환율(USD·JPY·EUR·CNY) 및 주가지수(코스피·코스닥·다우·S&P500).
  • 원하는 모든 코인 — Upbit KRW 269종 검색·추가, 순서 변경(즐겨찾기 상단).
  • 테마 — 시스템/라이트/다크.
시장조사 반영 (경쟁 앱 리뷰 기반)
  • 빈 스피너 대신 마지막 성공값 캐시 렌더 + "⚠ 지연" 표시(경쟁사 최다 불만: "정작 필요할 때 로딩만 됨").
  • 다거래소 폴백으로 단일 거래소 장애 시에도 값 유지.
  • 김프 투명성(계산식·소스·환율·시각 공개).
  • 광고·로그인·추적 없음을 명시적 차별점으로.
  • 코인 즉시 검색 + 즐겨찾기 상단 고정(김프 앱 최다 UX 불만 대응).
  • 다크 모드 기본(시스템), 한국식 등락 색상, 로케일 천단위 포맷.
  • 공포지수 전일 대비 표시(위젯이 멈춘 것처럼 보이지 않게).
기술
  • minSdk 26 / target 35, Kotlin 2.0.21, Compose BOM 2024.10.01.
  • 릴리즈 R8 난독화 + 리소스 축소(APK ≈1.4MB), BS Planet 키 서명.
  • 공개 API만 사용(키 불필요). 권한 INTERNET·ACCESS_NETWORK_STATE 뿐.
검증
  • 디버그·릴리즈 빌드 성공.
  • 실거래소 라이브 데이터 스모크 테스트 통과(김프·공포지수·269종 카탈로그 확인).
  • 실기기(안드로이드) 설치·실행 크래시 없음 확인.
알려진 제한
  • 홈스크린 위젯(Glance)·가격/김프 알림은 다음 버전 예정.
  • 김프 기준 거래소 선택(현재 Binance 고정, Coinbase 폴백)은 향후 옵션화 예정.