오늘 해낸 것 (2026-07-08)
이 글은 Daily Log 시리즈의 97번째 기록입니다. (총 155개)
오늘 한 일
- Claude를 Fable 5 사용해서 workspace에 있는 모든 앱에 대한 report를 진행했다. 덕분에 max로 변경한 이후 처음으로 limit에 걸렸다. 토큰이 정말 쭉쭉 닳는다.
- 습관만들기 Pawbit — 개선안 리포트 → 밸런스 보강 → AdMob 실 ID
- 개선안 리포트 — 코드 전체를 훑어 우선순위 정리. 특히 초반 경제를 숫자로 시뮬레이션해서 “습관 1개 유저는 강아지가 만성 아픔 루프에 빠진다”(첫 퍼즐까지 3주)를 발견
- 신규 강아지 보호 기간 7일 — 입양(최초 케어 기록) 후 7일간 케어 레벨을 2에서 캡 → 아프지 않음. 보호 기간 내 “아픔” 알림은 보호 종료 시점으로 이동
- 광고 일일 3회 캡 — 슬롯/보너스 포인트/수정권 합산. 날짜 문자열 키 하나로 자정 자동 리셋, 소진 시 버튼 “내일 다시” 비활성 + 카운터 표시
- AdMob 실 ID 적용 — rewarded 광고 단위는 release 빌드에서만 실 ID(debug는 테스트 ID 강제), 매니페스트 앱 ID(~) 교체. Android 광고 세팅 완료
- Crescendo — 엔딩 함대 + S5 확장
- 엔딩 함대 비행선 실루엣 개선 — 사각형 조합이 상자처럼 보여서 Graphics 폴리곤으로 (뾰족한 기수·행어 노치·함교·림라이트·창문 점광·깜빡이는 엔진 글로우)
- S5 최종전 접근 구간 확장 — 5화면 → 8화면 (다른 스테이지 대비 절반이라 짧았음), 잡몹 근접+원거리+돌진 풀 혼합 15마리
- 메트로놈(Simple Metronome) — 비주얼 다듬기 라운드
- 박자표를 둥근 테두리 박스 안에 굵은 숫자 분수 모양으로, BPM 숫자 크게, 버튼 라운드 처리, 시크바를 테마색으로
- 발자국 인디케이터를 박 단위 세트로 묶음 — 9/8이면 [큰1+작2]가 한 세트라, 줄바꿈돼도 세트가 안 찢어짐. 줄 수도 화면 폭 기준으로 자동
- Subdivision 컨트롤 제거 — 박자표가 분할을 이미 표현하니(6/8=셋잇단) 중복이었음. 하단이 [박자표 | Play]로 단순해짐
- 박자표 분자를 1~12로 확장 — 12/8(4박 × 3잇단)도 선택 가능
- 소설 타임라인 관리 도구 Lumior 제작 (M1~M3)
- 옵시디언 vault의 md frontmatter를 파싱해 타임라인·점검·인물축으로 보는 로컬 도구, md는 읽기 전용
- 파서 +
/api/timeline+ 기존 뷰어를 fetch로 연결해 새로고침 자동 반영 - 점검(lint) 리포트 — 연호·Year·날짜 누락/이상, characters 없음. 각 항목에 걸린 이유 라벨과 옵시디언 링크
- 인물축 스윔레인 — 고른 인물이 행, 시간이 열. 년/월/일 구분 단위 선택, 미상 항목 숨김 토글
- 해설집(ref) 중첩 — 참조하는 본문 아래에 작게 표기. 창 포커스 시 자동 새로고침
- 데이터 정리 — 점검이 짚은 빈 연호 해설집 중 원본과 완전히 일치하는 34개만 원본 날짜 채움(백업 후 frontmatter만)
- 블로그(KimLog) — 개선 리포트 → SEO·성능·검색 정비
- SEO — daily-log 제목 96건 고유화(날짜 접미사 + 목록용 short_title), summary 포스트 60개에 description 일괄 추가, robots.txt, 포스트별 og:image(프로젝트 썸네일 자동), 사이트 lang을 en → ko로
- 성능 — Font Awesome CDN 제거(footer 아이콘 인라인 SVG 교체), 홈 워드클라우드용 경량 tags.json 분리 (636KB → 20KB)
- UX — 워드클라우드 태그 클릭 → 검색 연결(?q= 파라미터), 캔버스 스크린리더용 aria-label
- 검색 — Pagefind 도입. 빌드 시 인덱스를 잘게 분할 생성해 검색어 입력 시 필요한 조각만 다운로드, 인덱스 없는 환경은 기존 검색으로 자동 fallback
- 저장소 정리 — .idea/(IDE 설정) git 추적 제거
어려웠던 점
- “보호 기간 = 안 아픔”을 그냥 레벨 0으로 만들면 보호가 끝나는 순간 갑자기 아픔으로 점프한다. 배고픔 단계(1~2)는 그대로 보여주고 아픔(3)만 막는 레벨 캡 방식으로 풀어서, 상태 변화가 자연스럽게 이어지게 함
- 광고 ID가 앱 ID(~)와 단위 ID(/) 두 종류라는 걸 구분해야 했다 — 매니페스트에는 앱 ID, 코드에는 단위 ID. 단위 ID만 실 ID로 바꾸면 매니페스트가 테스트 앱 ID라 실광고가 안 나옴
- Crescendo 함선 — 도형 몇 개를 겹쳐놓는 것만으로는 “비행선”으로 안 읽혔다. 실루엣의 외곽 형태 자체가 정보를 전달해야 해서, 뾰족한 기수·함교·행어 노치 같은 특징 요소를 폴리곤으로 직접 그리니 그제서야 함선으로 보임
- 메트로놈 UI 수치는 한 번에 안 맞는다 — 박자표 크기·발자국 크기·버튼 줄바꿈을 Android Studio에서 눈으로 확인하며 여러 번 조정했다. BPM 숫자를 키웠더니 옆 ± 버튼이 좁아져 글자가 줄바꿈되는 식으로, 한 요소를 키우면 이웃이 밀리는 상호작용이 계속 나왔다
- 발자국 줄바꿈이 세트를 찢는 문제 — 점 개수로 반씩 나누니 9/8에서 큰 발자국과 그 작은 발자국들이 다른 줄로 갈라졌다. “한 박 = 한 세트”라는 단위를 레이아웃에도 그대로 반영해야 했다
- 블로그 분석 도구가 GTM·GA·Cloudflare Insights 3중으로 겹쳐 보였는데, 뜯어보니 GA 스니펫은 설정값이 없어 아예 출력되지 않는 죽은 코드였다. 실제 활성은 GTM + Cloudflare Insights 2개 — GTM 컨테이너 안에 GA4 태그가 있는지는 대시보드에서 확인해야 함
- 제목에 날짜를 붙이니 목록에서 날짜가 이중 표시되는 문제 — 목록 표시용 short_title 필드를 따로 두고 default 필터로 fallback시켜 해결
- Lumior — 무엇을 타임라인에 넣을지가 제일 고민이었다. 연호·Year가 빈 템플릿을 넣으면 설정 문서까지 섞이고, 빼면 정작 “연호 없음”을 짚어야 할 점검이 무력해진다. 점검 취지를 살리려 “값이 비어도 필드가 있으면 포함”으로 정했다. 해설집은 억지 유사 매칭 대신 원본과 완전히 일치하는 것만 날짜를 채우기로 선을 그었고, 인물축은 이리스 0년에 스토리가 몰려 년 단위론 인물 교차가 안 보여 년/월/일 구분 단위를 고르게 했다
배운 점
- (습관만들기 Pawbit TIL 7로 정리 예정)
- (크레센도 Phaser + TypeScript TIL 8로 정리 예정)
- (안드로이드 TIL로 정리) 박 단위 그룹 레이아웃으로 세트 단위 줄바꿈 / 폭 기반 줄 수 계산 / MaterialButton 줄바꿈 방지 / shape drawable에 테마색 스트로크 / 커스텀 스피너 아이템으로 분수 UI / 시크바 틴트 3종
- (소설 타임라인 관리 도구 Lumior TIL 1로 정리 예정)
- (블로그 TIL로 정리 예정) 중복 제목·description·robots.txt·og:image 같은 SEO 기본기 / Pagefind의 인덱스 분할 검색 원리와 data-pagefind-* 스코핑 / Liquid static_files로 파일 존재 검사
해야 할 일
- 습관만들기 Pawbit
- Asset 교체 (마을 map, 숲 속, 리뮤)
- DEV 패널 제거, 앱 아이콘/스토어 에셋
- 연말 전시회 시네마틱
- 실기기 검증 — 보호 기간, 광고 3회 캡, release 실광고
- Crescendo
- 오디오 제작
- 엔딩 함대 전용 스프라이트
- 밸런스 조절
- 메트로놈 — 실기기에서 최종 확인(컴파운드 강세·줄바꿈·박자표 크기)
- 소설 타임라인 관리 도구 Lumior
- watchdog 실시간 반영, frontmatter 인라인 편집(백업 후 본문 미접촉)
- 자동 매칭 안 된 해설집 수동 정리, 배포/공유 방향 검토
- 블로그
- Cloudflare Pages 빌드 커맨드 변경 (jekyll build 뒤에 pagefind 인덱싱 추가)
- GTM 컨테이너에 GA4 태그 설정 여부 확인
- 소리꽃 앱 썸네일(key-bloom.png) 추가 — og:image 자동 적용됨
Series: Daily Log
1 | 오늘 해낸 것 2 | 오늘 해낸 것 3 | 오늘 해낸 것 4 | 오늘 해낸 것 5 | 오늘 해낸 것 6 | 오늘 해낸 것 7 | 오늘 해낸 것 8 | 오늘 해낸 것 9 | 오늘 해낸 것 10 | 오늘 해낸 것 11 | 오늘 해낸 것 12 | 오늘 해낸 것 13 | 오늘 해낸 것 14 | 오늘 해낸 것 15 | 오늘 해낸 것 16 | 오늘 해낸 것 17 | 오늘 해낸 것 18 | 오늘 해낸 것 19 | 오늘 해낸 것 20 | 오늘 해낸 것 21 | 오늘 해낸 것 22 | 오늘 해낸 것 23 | 오늘 해낸 것 24 | 오늘 해낸 것 25 | 오늘 해낸 것 26 | 오늘 해낸 것 27 | 오늘 해낸 것 28 | 오늘 해낸 것 29 | 오늘 해낸 것 30 | 오늘 해낸 것 31 | 오늘 해낸 것 32 | 오늘 해낸 것 33 | 오늘 해낸 것 34 | 오늘 해낸 것 35 | 오늘 해낸 것 36 | 오늘 해낸 것 37 | 오늘 해낸 것 38 | 오늘 해낸 것 39 | 오늘 해낸 것 40 | 오늘 해낸 것 41 | 오늘 해낸 것 42 | 오늘 해낸 것 43 | 오늘 해낸 것 44 | 오늘 해낸 것 45 | 오늘 해낸 것 46 | 오늘 해낸 것 47 | 오늘 해낸 것 48 | 오늘 해낸 것 49 | 오늘 해낸 것 50 | 오늘 해낸 것 51 | 오늘 해낸 것 52 | 오늘 해낸 것 53 | 오늘 해낸 것 54 | 오늘 해낸 것 55 | 오늘 해낸 것 56 | 오늘 해낸 것 57 | 오늘 해낸 것 58 | 오늘 해낸 것 59 | 오늘 해낸 것 60 | 오늘 해낸 것 61 | 오늘 해낸 것 62 | 오늘 해낸 것 63 | 오늘 해낸 것 64 | 오늘 해낸 것 65 | 오늘 해낸 것 66 | 오늘 해낸 것 67 | 오늘 해낸 것 68 | 오늘 해낸 것 69 | 오늘 해낸 것 70 | 오늘 해낸 것 71 | 오늘 해낸 것 72 | 오늘 해낸 것 73 | 오늘 해낸 것 74 | 오늘 해낸 것 75 | 오늘 해낸 것 76 | 오늘 해낸 것 77 | 오늘 해낸 것 78 | 오늘 해낸 것 79 | 오늘 해낸 것 80 | 오늘 해낸 것 81 | 오늘 해낸 것 82 | 오늘 해낸 것 83 | 오늘 해낸 것 84 | 오늘 해낸 것 85 | 오늘 해낸 것 86 | 오늘 해낸 것 87 | 오늘 해낸 것 88 | 오늘 해낸 것 89 | 오늘 해낸 것 90 | 오늘 해낸 것 91 | 오늘 해낸 것 92 | 오늘 해낸 것 93 | 오늘 해낸 것 94 | 오늘 해낸 것 95 | 오늘 해낸 것 96 | 오늘 해낸 것 97 | 오늘 해낸 것 읽는 중 98 | 오늘 해낸 것 99 | 오늘 해낸 것 100 | 오늘 해낸 것 101 | 오늘 해낸 것 102 | 오늘 해낸 것 103 | 오늘 해낸 것 104 | 오늘 해낸 것 105 | 오늘 해낸 것 106 | 오늘 해낸 것 107 | 오늘 해낸 것 108 | 오늘 해낸 것 109 | 오늘 해낸 것 110 | 오늘 해낸 것 111 | 오늘 해낸 것 112 | 오늘 해낸 것 113 | 오늘 해낸 것 114 | 오늘 해낸 것 115 | 오늘 해낸 것 116 | 오늘 해낸 것 117 | 오늘 해낸 것 118 | 오늘 해낸 것 119 | 오늘 해낸 것 120 | 오늘 해낸 것 121 | 오늘 해낸 것 122 | 오늘 해낸 것 123 | 오늘 해낸 것 124 | 오늘 해낸 것 125 | 오늘 해낸 것 126 | 오늘 해낸 것 127 | 오늘 해낸 것 128 | 오늘 해낸 것 129 | 오늘 해낸 것 130 | 오늘 해낸 것 131 | 오늘 해낸 것 132 | 오늘 해낸 것 133 | 오늘 해낸 것 134 | 오늘 해낸 것 135 | 오늘 해낸 것 136 | 오늘 해낸 것 137 | 오늘 해낸 것 138 | 오늘 해낸 것 139 | 오늘 해낸 것 140 | 오늘 해낸 것 141 | 오늘 해낸 것 142 | 오늘 해낸 것 143 | 오늘 해낸 것 144 | 오늘 해낸 것 145 | 오늘 해낸 것 146 | 오늘 해낸 것 147 | 오늘 해낸 것 148 | 오늘 해낸 것 149 | 오늘 해낸 것 150 | 오늘 해낸 것 151 | 오늘 해낸 것 152 | 오늘 해낸 것 153 | 오늘 해낸 것 154 | 오늘 해낸 것 155 | 오늘 해낸 것