2026.05.05 작업일지 v1.0.0
Apple이 두 번 리젝했고, 코레일 봇은 PerimeterX에 막혔다. 오늘은 막힌 길을 기록하면서 다음 길을 찾은 날이다.
오늘의 궤적
어린이날 새벽 자정 직후부터 저녁까지 4개 영역이 동시에 움직였다. 로또번호 계산기가 Apple Guideline 2.3.6에 두 번 걸리면서 앱 이름까지 바꾸는 큰 방향 전환이 있었고, 코레일 자동예매 봇은 PerimeterX에 막혀 dead-ends 섹션으로 사례를 기록하는 것으로 마무리됐다. 그 사이 단어요(wordyo) WSL 작업 PR 3건이 조용히 완료됐고, AI 카톡방 인사이트 3번째 분석도 메모리에 저장됐다.
로또번호 계산기 — Apple 리젝 2연속 + 앱 전면 재포장
새벽 00:04~00:27 — 카지노 애니메이션 추가 + 통계 제거 결정
WSL이 밤새 처리한 PR 3개(#10 시드 업데이트, #11 iOS 흰화면 수정, #12 레이블 개선)를 squash 머지하고, “다시 뽑기 버튼이 너무 심심하다”는 피드백에 따라 카지노 슬롯머신 애니메이션을 추가했다 (PR #13). 번호가 고속 롤링 후 감속 정착, scaleIn 효과, 롤링 중 카드 색상 변화.
그런데 /irun으로 실기기 테스트 후 “통계 검증됐냐?” 질문이 나왔다. 1회~1222회 데이터 포함, 로직 6가지 검증 PASS였지만 “제대로 운영 못할 거면 빼는 게 맞다”는 결론이 나왔다. 통계 탭 전면 제거(PR #14, main 반영).
07:56 — 통계 제거 PR #14 merge + v1.1.0+2 bump
09:09~09:17 — parallel-cycle: 지원URL ASC API 수정
lotto-calc가 ASC에 등록할 때 지원URL을 daejongkang.com으로 잘못 입력. ASC API(JWT 인증 + PATCH appStoreVersionLocalizations)로 ssamssae.github.io/daejong-page로 수정. 개인정보처리방침URL도 동시 수정. usesNonExemptEncryption=false 설정 후 심사 제출.
10:25~11:36 — Apple 리젝 메일 확인 + Gambling=Yes 재제출
ASC 메일: Guideline 2.3.6 — Age Rating “Gambling and Contests” 항목을 Yes로 설정해야 한다는 요구. Playwright로 ASC 들어가 Age Rating 변경 + 재제출 (제출 ID: c079dc78).
11:43~12:01 — WSL 자문: Gambling=No + 반론이 더 낫다
WSL 분석: “로또 AI매니저”, “복똑방”, “로또라이브” — 국내 동일 기능 앱들이 생산성/엔터테인먼트 카테고리로 Gambling 없이 판매 중. Apple 2.3.6의 핵심어는 “facilitate gambling”인데 번호 생성기는 실제 도박을 촉진하지 않음. 성공률 50~60% 추정.
→ Gambling=Yes 심사 취소 → Gambling=No + 반론 메모 재제출 (제출 ID: 0358b1ac, 심사 메모에 경쟁 앱 비교 근거 포함).
15:08~16:45 — 앱 전면 재포장 (lottocalc → randompick)
2.3.6 거절이 반복될 가능성에 대비해 패키지명부터 뜯어고침:
- 앱 이름: 로또번호 생성기 → 행운번호 생성기
- 패키지: com.daejongkang.lottocalc →
com.daejongkang.randompick - 슬롯머신 애니메이션 제거 (카지노 연상 우려)
- v1.1.0+3 (아이콘 교체 포함)
커밋 e5ac8b0 refactor: lottocalc → randompick 재포장 (2.3.6 거절 대응)
코레일 자동예매 봇 — PerimeterX 차단 + dead-ends 기록
14:52~17:08 — korail_bot.py v3 작성 + 봇 탐지 원리 분석
| 시도 | 결과 |
|---|---|
| headed 모드 | 탐지됨 |
| Device=BH→WB 변환 | 탐지됨 |
| playwright-stealth + 랜덤 딜레이 | 탐지됨 |
PerimeterX(현 HUMAN Security): 브라우저 핑거프린트 + 행동 패턴(클릭 간격, 스크롤 여부) + 요청 빈도 복합 분석. navigator.webdriver, plugins 배열 등. “다량 구매 후 취소 반복”이 주 타깃. 1매 예매용이면 구매 행태 탐지는 해당 없지만 세션 기반 차단이 일어남.
결론: 현재 방법으로는 지속적 우회 불가. dead-ends 사례로 기록 (daejong-page/dead-ends.html). 후속안: 코레일 앱 API 스니핑 + Appium 자동화.
WSL 작업 — 단어요 + 로또 자문
- wordyo PR #26: 학습 통계 배너 (오늘 N개 · N일 연속) — WSL 완성, 본진 merge
- wordyo PR #27: swipe 속도 임계값 상수화 + 다이어리 잔재 확인 — merge
- wordyo seed null 수정: 6개 카테고리 level null 31~50번 항목 (5551c66)
- 로또 방향 자문: Gambling=No + 반론 권장 보고서 → mac-report.sh로 본진 수신
AI 카톡방 인사이트 분석 (00:xx~01:40)
어제 이어 3번째 카톡방(내코드를부탁해, 1789줄) 분석 완료:
reference_naecoderequest_kakao_insights.md저장- 도구 현황 표, 핵심 워크플로우 8개, 피해야 할 것 목록
- rtk/superpowers/secall 3개 도구 → parking-lot 추가
인프라·스킬·노하우
- WSL alias 누락 —
malias가 ~/.bashrc에 없었음.m1/mb는 있는데m(자신 tmux) 빠짐. 즉시 추가 + 노하우 기록:knowhow/2026-05-05-wsl-alias-mesh-m-missing.md - 코레일 PerimeterX 노하우 —
knowhow/2026-05-05-korail-perimeter-x-bot-detection.md - dead-ends 섹션 신설 — 막다른 실패 사례 모음 페이지. 코레일 봇 첫 번째 사례.
- RTK 참조 — CLAUDE.md에 @RTK.md 추가 (claude-skills 4076018)
- submit-app territory cache — 174개 territory_ids.json 추가 (6bf9064)
- session-clear 트리거 확장 — goodnight 발화 금지 명시 (16b71a0)
- STT 연결 — macOS 받아쓰기(Fn×2) 방법 안내 + parking-lot 추가
- 통신판매업 신고 관련 — Apple/Google이 merchant of record 역할, 즉각적 위험 낮음. 다만 접수 권장.
- 병렬 사이클 — parallel-cycle v0.5로 Mac 3개 + WSL 3개 동시 작업
남은 작업
- 행운번호 생성기 App Store 심사 결과 대기
- 로또 Gambling=No 반론 심사 결과 대기
- 코레일 봇 대안 — 앱 API 스니핑 / Appium 경로 탐색
- wordyo 다음 단계 (swipe/next + 학습 게임화)
- 포모도로/한컵 심사 결과 대기
관련 커밋
| repo | SHA | 메시지 |
|---|---|---|
| lottocalc | e5ac8b0 | refactor: lottocalc → randompick 재포장 |
| lottocalc | daf258c | fix: 슬롯머신 애니메이션 제거 + 앱 이름 변경 |
| lottocalc | 1f03751 | chore: 아이콘 교체 + 버전 bump 1.1.0+3 |
| lottocalc | bf3ca06 | Remove stats screen (#14) |
| lottocalc | e529383 | feat(home): 카지노 슬롯머신 애니메이션 (#13) |
| wordyo | e793150 | feat: 학습 통계 배너 추가 (#26) |
| wordyo | 5551c66 | fix(seeds): level null 수정 |
| daejong-page | bd2c694 | add dead-ends section |
| daejong-page | f52087c | knowhow: 코레일 PerimeterX 봇 탐지 우회 패턴 |
| daejong-page | 5944ee2 | knowhow: WSL alias mesh m 누락 점검 패턴 |
| claude-skills | 4076018 | chore: add @RTK.md reference |
| claude-skills | 6bf9064 | feat(submit-app): territory_ids.json cache |