← 작업일지

2026-04-28 · v1.0.0

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 + iOS PRODUCT_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.ipa 19.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)
1home (5개 일기 + AI 한마디 + 4일 연속)01-iphone-home.png04-ipad-home.png
2통계 (한 해의 결 heatmap + DAYS/STREAK/LONGEST)02-iphone-stats.png05-ipad-stats.png
3empty (오늘 한 줄 prompt + 쓰기 CTA)03-iphone-empty.png06-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-wrap4/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 (강대종님 응답 대기)

관련 커밋

repoSHA메시지
daejong-paged564cd4chore(portfolio): 약먹자/더치페이 App Store 출시 상태 반영
daejong-page94467b7portfolio: 심사레이더 카드 제거 (드롭)
daejong-page41049catodos: 2026-04-28 — 취소: 💡 심사레이더 사이드프로젝트
daejong-page34ac540todos: 2026-04-28 — 추가: mail-watcher v5 GCP OAuth 셋업
daejong-pagedcacb85newsletter(ep3): Substack 발행본 — 빼기 두 번으로 결말 재작성
daejong-page3e9eddbworklog/done: replace “박다” jargon with plain Korean across 26 files
daejong-pagee7c9036newsletter: replace “박다” with “들이다” in Ep.3 (4 files, 30 instances)
daejong-page368a76fnewsletter(ep3): 홈페이지 동기화 — substack BODY 추출 + index.json 등록
daejong-page3dc11b5chore(todos): hanjul 패키지 com.ssamssae.hanjul → com.daejongkang.hanjul
daejong-page80584f5issue: CF colo region-block 으로 친구 wifi 에서만 OpenAI 호출 거부
daejong-page0db3dadsomeday: 추가 - Open WebUI / mail-watcher 튜닝 / mac-mini Python 정리
daejong-pagea0ad52ctodos(2026-04-28): 한줄일기 사전 점검 + AI Gateway 도입 완료 라인 추가
daejong-pagee52fb1cindex: 홈에 앱 6종(한줄일기·약먹자·더치페이·메모요·포모도로·한컵) 노출
hanjulb4ce8c7chore(android+ios): com.ssamssae.hanjul → com.daejongkang.hanjul
hanjuld109c21docs(hanjul/store): 베타 모집글 통합 1종
hanjulbc0075ddocs(hanjul/store): 1a OpenAI budget 결정사항 RESOLVED — region-block 이 진짜 원인
hanjula188ed3fix(hanjul/worker): OpenAI 호출을 CF AI Gateway 경유로 라우팅
hanjulcc45b72docs(hanjul/store): 1900원 유료 출시 체크리스트
hanjuld179710feat(hanjul/ios): 한줄일기 launch image — 그라데이션 풀프레임 + 워드마크
claude-skillsc0ce49bhandoff: close 2026-04-28-1842 hanjul keystore SHA
claude-skills780bb99handoff(wsl→mac): hanjul keystore SHA-256 사전 추출
claude-skillsb6abb1chandoff(wsl→mac): 심사레이더 + review-status-check 일괄 폐기
claude-skillsaf32726drop(skills): review-status-check
claude-skills0b9dba0chore(skills): description 토큰 1/5 압축 — 9건
claude-skillsb2428bdchore(skills): drop 5건 텍스트 잔재 청소
claude-skillsc2265f7goodnight: publish.py timeout + 미발행 사후 점검 처리 룰
claude-automations7e34aa7docs: morning-briefing/evening-wrap/review-status-check 폐기 표기
claude-automations47b150adrop: morning-prefetch.py