2026.04.28 작업일지 v1.0.0
약먹자·더치페이 새벽 승인. 한줄일기 1900원 1.0 iOS 심사 제출. 자동화/사이드 3건 드롭. “박다” 은어 일괄 교체.
오늘의 궤적
새벽: 어젯밤 ASC 에 올린 약먹자 1.0.1 / 더치페이 1.0.2 가 자동 승인 + READY_FOR_SALE 로 떨어진 채로 깨어남. 02:33 KST 즈음 메모리 박제, 메인 페이지 카드 출시 상태 반영.
오전: 자동화/사이드 정리. morning-briefing/evening-wrap (4/21 launchd 비활성화 후 7일 운영 결과 수동 슬래시도 안 씀) → 자체 폐기. 심사레이더 → 출시 라이브러리 제외 + 자기쓰기 사용도 중단. 가계부(mini_expense) → 출시·자기쓰기 모두 중단. 3건 드롭.
낮: 4-노드 로컬 LLM 인프라 v4 옵션 X 결정 (v3 가정 폭로 — 맥북 거의 집·WSL 야간OFF). launchd SoT 는 MacBook Pro 유지, 맥미니는 use case 대기 fallback.
저녁: “박다” 은어 → 평이한 한국어 26개 파일 일괄 교체. 뉴스레터 EP3 도 동반 빼기 두 번 결말 재작성.
밤: 한줄일기 1900원 출시 사이클 진입. 19:00 KST 사전 점검 → AI Gateway 도입 (CF colo region-block 우회) → 패키지 점유 충돌 발견 → com.ssamssae.hanjul → com.daejongkang.hanjul 본명 도메인 전환 → 1.1.0+4 ipa 빌드 + altool 업로드 PASS.
22시 이후 (이번 세션): 핸드오프 directive 받아 ASC inflight 페이지 stale 스크린샷 교체 + iPad 13” 신규 슬롯 채우기 + 콘텐츠 권한 + 연령 등급 + 심사 제출까지 한 번에. 23:04 KST “심사를 위해 제출” 클릭, Apple 심사 큐 진입.
자정 직전: Android Play 패키지 com.daejongkang.hanjul “검토 중” → “등록됨” 전환 확인 (스크린샷). 다음 사이클은 Play “앱 만들기” 폼 (1900원 유료라 자동화 안 함, 강대종님 직접).
약먹자 / 더치페이 — 새벽 승인
- 1.0.1 / 1.0.2 자동 승인 + READY_FOR_SALE
- 메모리 박제:
project_yakmukja_dutchpay_ios_review_submitted.md - 홈페이지 portfolio 카드 “출시중” 상태 반영 (commit
d564cd4)
한줄일기 — 1900원 1.0 iOS 심사 제출
사전 점검 + AI Gateway
- OpenAI 호출 region-block 친구 wifi 에서 거부 (CF colo 추측 → 결국 진짜 원인 맞음)
- Cloudflare AI Gateway 경유로 라우팅 변경 + 출시 사전 점검 자동화 (
a188ed3) - 결정사항 RESOLVED: region-block 이 진짜 원인 (
bc0075d) - 베타 모집글 통합 1종 작성 — 카톡/X/카페 다 복붙 가능 (
d109c21) - 1900원 유료 출시 체크리스트 (
cc45b72)
패키지 점유 충돌 → 본명 도메인 전환
- com.ssamssae.hanjul 다른 사람 점유 + Windows debug.keystore 05:CF 출처
- ASC 신규 앱 생성에서 막힘 → 본명 도메인 com.daejongkang.hanjul 전환
- Android
applicationId+ iOSPRODUCT_BUNDLE_IDENTIFIER양쪽 일괄 변경 (b4ce8c7) - 새 패키지엔 본명 도메인 우선 — feedback 메모리 박제 (
feedback_new_package_use_daejongkang_domain.md)
ipa 빌드 + altool 업로드
- pubspec.yaml 1.1.0+4 (uncommitted)
- ipa:
/Users/user/apps/hanjul/build/ios/ipa/hanjul.ipa19.9MB - altool delivery UUID:
2590d439-2eda-4766-a671-1845a523d7c8 - share_plus sharePositionOrigin fix 적용 (iPad UIActivityViewController 앵커 강제 — stats_screen.dart:146-154)
- 메타데이터: 부제 “한 줄 일기, 따뜻한 답글 한 통”, 가격 ₩1,900 KRW 175개국, 카테고리 라이프스타일 (실제로는 ASC info 페이지에 “개발자 도구”로 박혀있음 — 다음 사이클 수정 후보), 자동 출시 + 리뷰 후 자동 공개
심사 제출 (이번 세션 핵심, 22:11~23:04 KST)
Step 1: 스크린샷 6컷 신규 캡처
iPhone 16 Pro Max sim (C2570C68-076B-431F-91B0-6654F1B078C1) + iPad Pro 13” M5 (C5CFC00A-2939-4027-9D3B-01BA27FEA67C) 양쪽에 hanjul 1.1.0+4 .app (Flutter 3.41.7 — 이전 stable 3.41.6 은 Dart 3.11.5 미달 거부) 설치 후:
| # | 화면 | iPhone (1284×2778, sips 리사이즈) | iPad (2064×2752 native) |
|---|---|---|---|
| 1 | home (5개 일기 + AI 한마디 + 4일 연속) | 01-iphone-home.png | 04-ipad-home.png |
| 2 | 통계 (한 해의 결 heatmap + DAYS/STREAK/LONGEST) | 02-iphone-stats.png | 05-ipad-stats.png |
| 3 | empty (오늘 한 줄 prompt + 쓰기 CTA) | 03-iphone-empty.png | 06-ipad-empty.png |
시드 트릭: shared_preferences flutter.hanjul_entries_v1 키에 5개 일기 JSON 직접 입혀서 정적 캡처. cfprefsd 캐시 우회 = simctl spawn defaults write + python plistlib + launchctl kickstart -k system/com.apple.cfprefsd.xpc.daemon 조합. 처음에는 PlistBuddy 가 JSON 파싱하면서 따옴표 다 떨어뜨려 망가뜨리는 함정.
탭 전환: HANJUL_START_TAB env var (int.fromEnvironment('HANJUL_START_TAB', defaultValue: 0), root_shell.dart:18) 컴파일 옵션으로 stats 탭 직접 진입 (UI 자동화 회피 — deterministic).
Step 2: 데모 영상
3-clip concat (empty 5.8s → home 6.5s → stats 6.8s) = 19.1초 v2. 이후 사용자 피드백으로 정적 home 만 12.8s 따로 더 녹화 (hanjul_demo_fresh.mp4). 인터랙티브 데모 시도는 computer-use MCP 권한 막힘으로 패스.
Step 3: ASC inflight 정리 (Playwright)
- iPhone 6.5” 슬롯 stale 3컷 모두 삭제 → 1284×2778 신규 3컷 업로드 + “미디어 매니저 동기화” 모달 승인
- iPad 13” 슬롯 비어있던 거 → 2064×2752 신규 3컷 업로드 + 동일 모달 승인
- 콘텐츠 권한 정보 → “아니요, 타사 콘텐츠 포함/표시/액세스 안 함”
- 연령 등급 7단계 → 1단계 6항목 모두 No, 2~6단계 모두 None → 4+ 자동 산출
- 첨부파일 슬롯에 hanjul_demo_fresh.mp4 업로드 (네비게이션 시 어트리뷰트 떨어지는 ASC 버그 발견 — 한 번 더 재업로드 필요했음)
Step 4: 제출
- 23:03 KST: “심사에 추가” 클릭 → 상태 “1.0 심사 준비됨”
- 23:04 KST: “심사를 위해 제출” 클릭 → “1.0 심사 대기 중” + 모달 “1개의 항목 제출됨 / 심사에는 최대 48시간이 소요될 수 있습니다”
비가역 액션. 이후 24~48시간 안에 ssamssae@naver.com 으로 결과 메일.
Android Play — 패키지 등록됨
- 자정 직전 강대종님 스크린샷 — Google Play Console “Android 개발자 인증” 페이지에서 com.daejongkang.hanjul 상태 “등록됨” + SHA-256 (F4:A7:E2:AA:C0:93:CE:B5:D5:AE:59:95:C7:77:2C:6C:BB:1D:C0:C6:12:04:36:B1:CF:01:C9:43:EC:B3:04:A3) “확인됨”
- 다음 사이클 (이번 세션 끝나고): Play Console “앱 만들기” 폼 (1900원 유료 → /create-play-app 룰로 자동 생성 금지, 강대종님 직접) → 그 후
/submit-app hanjul --platform=android자동화
자동화/사이드 3건 드롭
| 드롭 항목 | 사유 | 메모리 |
|---|---|---|
| morning-briefing + evening-wrap | 4/21 launchd 비활성화 후 7일 운영 결과 수동 슬래시도 안 씀 | project_morning_evening_dropped.md |
| 심사레이더 (review_radar) | 출시 라이브러리 제외 + 자기쓰기 사용도 중단 | project_review_radar_dropped.md |
| 가계부 (mini_expense) | 출시·자기쓰기 모두 중단 | project_mini_expense_dropped.md |
claude-skills b6abb1c handoff(wsl→mac): 심사레이더 + review-status-check 일괄 폐기 + claude-automations 7e34aa7 docs: morning-briefing/evening-wrap/review-status-check 폐기 표기 동반.
4-node LLM 인프라 v4 옵션 X
- v3 가정 폭로: 맥북 거의 집·WSL 야간OFF → launchd SoT 자격 MacBook Pro 단일 유지
- M1 맥미니 = 진짜 24/7 켜져있되 launchd 미박음, use case 대기 fallback 노드
- 메모리:
project_4node_local_llm_infra.md(v4 옵션 X 결정)
“박다” 은어 일괄 교체
- 26개 파일 (worklog/done) “박다” → “들이다”, “셋업”, “기록”, “하드코딩” 등 평이한 한국어 (
3e9eddb) - 뉴스레터 EP3 도 동반 4 files 30 instances 교체 (
e7c9036) - feedback 메모리:
feedback_no_paktta_jargon.md(텔레그램 답변·채팅 포함 모든 출력에서 평이한 한국어)
인프라·스킬·자동화
- claude-skills
0b9dba0: description 토큰 1/5 압축 — 9건 (어제 세션 미푸시 작업) - claude-skills
b2428bd: drop 5건 텍스트 잔재 청소 - claude-skills
c2265f7: goodnight publish.py timeout + 미발행 사후 점검 처리 룰 - mac-mini mail-watcher v5 가동 (4h Gmail+ollama 본인앱 심사·결제 알림. v4 fallback → v5 트리거)
학습·상담
- 같은 닉네임 com.ssamssae 패키지 점유 충돌 — 일반 닉네임 도메인은 점유 위험, 본명 도메인(com.daejongkang.*)이 안전 (feedback 메모리 박제)
- ASC 페이지 navigate 시 첨부파일 어트리뷰트 떨어지는 버그 — 동일 세션에서 재업로드 필요 (한 번에 안 끝남)
- shared_preferences 시드 = cfprefsd 캐시 + 디스크 plist 두 군데 동기화 필요 (캐시만 쓰면 다음 launch 가 디스크 읽고 stale, 디스크만 쓰면 cfprefsd 캐시가 stale 채로 서빙)
- “심사에 추가” 1차 클릭은 비가역 X — 별도 검토 화면으로 이동, “심사를 위해 제출” 두 번째 클릭이 진짜 큐 진입
남은 작업
- Android Play 앱 만들기 폼 (1900원, 강대종님 직접)
- /submit-app hanjul —platform=android 자동화 (Play 앱 생성 후)
- ASC 카테고리 “개발자 도구” → “라이프스타일” 변경 (다음 1.1 사이클)
- computer-use MCP 권한 이슈 GitHub claude-code repo 에 issue (강대종님 응답 대기)
관련 커밋
| repo | SHA | 메시지 |
|---|---|---|
| daejong-page | d564cd4 | chore(portfolio): 약먹자/더치페이 App Store 출시 상태 반영 |
| daejong-page | 94467b7 | portfolio: 심사레이더 카드 제거 (드롭) |
| daejong-page | 41049ca | todos: 2026-04-28 — 취소: 💡 심사레이더 사이드프로젝트 |
| daejong-page | 34ac540 | todos: 2026-04-28 — 추가: mail-watcher v5 GCP OAuth 셋업 |
| daejong-page | dcacb85 | newsletter(ep3): Substack 발행본 — 빼기 두 번으로 결말 재작성 |
| daejong-page | 3e9eddb | worklog/done: replace “박다” jargon with plain Korean across 26 files |
| daejong-page | e7c9036 | newsletter: replace “박다” with “들이다” in Ep.3 (4 files, 30 instances) |
| daejong-page | 368a76f | newsletter(ep3): 홈페이지 동기화 — substack BODY 추출 + index.json 등록 |
| daejong-page | 3dc11b5 | chore(todos): hanjul 패키지 com.ssamssae.hanjul → com.daejongkang.hanjul |
| daejong-page | 80584f5 | issue: CF colo region-block 으로 친구 wifi 에서만 OpenAI 호출 거부 |
| daejong-page | 0db3dad | someday: 추가 - Open WebUI / mail-watcher 튜닝 / mac-mini Python 정리 |
| daejong-page | a0ad52c | todos(2026-04-28): 한줄일기 사전 점검 + AI Gateway 도입 완료 라인 추가 |
| daejong-page | e52fb1c | index: 홈에 앱 6종(한줄일기·약먹자·더치페이·메모요·포모도로·한컵) 노출 |
| hanjul | b4ce8c7 | chore(android+ios): com.ssamssae.hanjul → com.daejongkang.hanjul |
| hanjul | d109c21 | docs(hanjul/store): 베타 모집글 통합 1종 |
| hanjul | bc0075d | docs(hanjul/store): 1a OpenAI budget 결정사항 RESOLVED — region-block 이 진짜 원인 |
| hanjul | a188ed3 | fix(hanjul/worker): OpenAI 호출을 CF AI Gateway 경유로 라우팅 |
| hanjul | cc45b72 | docs(hanjul/store): 1900원 유료 출시 체크리스트 |
| hanjul | d179710 | feat(hanjul/ios): 한줄일기 launch image — 그라데이션 풀프레임 + 워드마크 |
| claude-skills | c0ce49b | handoff: close 2026-04-28-1842 hanjul keystore SHA |
| claude-skills | 780bb99 | handoff(wsl→mac): hanjul keystore SHA-256 사전 추출 |
| claude-skills | b6abb1c | handoff(wsl→mac): 심사레이더 + review-status-check 일괄 폐기 |
| claude-skills | af32726 | drop(skills): review-status-check |
| claude-skills | 0b9dba0 | chore(skills): description 토큰 1/5 압축 — 9건 |
| claude-skills | b2428bd | chore(skills): drop 5건 텍스트 잔재 청소 |
| claude-skills | c2265f7 | goodnight: publish.py timeout + 미발행 사후 점검 처리 룰 |
| claude-automations | 7e34aa7 | docs: morning-briefing/evening-wrap/review-status-check 폐기 표기 |
| claude-automations | 47b150a | drop: morning-prefetch.py |