오늘 해낸 것 (2026-08-13)
이 글은 Daily Log 시리즈의 131번째 기록입니다. (총 155개)
오늘 한 일
- LOGSTONE Shop
- KeyBloom 페이지에 업데이트 내역(Changelog) 섹션을 추가 — 빌드 때 GitHub 릴리스 목록을 읽어 정적 렌더, 릴리스 노트를 구분선으로 갈라 언어별 표시
- 법적 문서를 조항 데이터로 분리 — 통합본을 유지하면서 제품별
/{제품}/privacy/·/terms/페이지가 같은 조항에서 조립되게 함(하루 만에 제품 7종 등록) - 제품 간 정책·URL 조율 창구(INBOX.md)를 신설 — 프로젝트마다 오가는 요청·회신을 한곳에 모으는 우편함. 첫날 요청 4건과 공지 2건을 처리하고, 7개 프로젝트가 모두 이 창구를 쓰며 ‘먼저 확인 후 반영’ 규칙을 세움
- 정책 URL 표준 규칙 확정 — 앱 정책 URL은 자기 제품 정책 필수, 블로그 URL은 앱에 쓰지 않음
- 블로그(kimlog)를 정책 시스템에 편입(사이트+웹 도구 범위), Pawbit 제품 정책 신규 등록
- 블로그 로스터에서 샵 등록 후보 검토 — Duplicate Finder는 손질 후 등록으로 백로그, 팬메이드 2종(타인 IP)은 비추 판정
- 소리꽃 KeyBloom
- 라이브 모드에서 스페이스로 큐를 순서대로 넘기고, 왼쪽 Shift를 서스테인 페달로 넣음(컴퓨터 키보드 연주)
- 네이티브 앱에서 브라우저 단축키(새로고침·개발자도구·찾기·인쇄·줌 등)를 막아 우리가 만든 단축키만 쓰게 함
- 기존 릴리스(0.1.0·0.1.2·0.1.3)에 국·영 업데이트 내역(changelog)을 채우고, 릴리스마다 국·영으로 노트를 적는 규칙을 정함
- 웹 자동배포를 릴리스 브랜치로 분리 — main은 개발용(웹 배포 안 함), release에 올릴 때만 웹이 갱신되게 함
- 자동 업데이트에 다운로드·설치 진행 오버레이를 넣음 — 그동안 설치를 눌러도 표시가 없어 멈춘 듯 보였음
- 데모곡(녹턴)을 밸런스 잡은 버전으로 교체
- 위 라이브 키·오버레이·데모 밸런스를 묶어 0.1.4를 릴리스하고, main→release 병합으로 웹도 0.1.4로 올림
- 블로그·제품 개인정보처리방침을 LOGSTONE 통합 방침으로 통일하고, 샵과의 요청 창구(INBOX)로 KeyBloom 정책 범위를 맞춤
- 여둘까 Office Layout
- 베껴 두던 개인정보처리방침 사본을 걷어내고 여둘까 전용 방침으로 보내게 함(요약 두 문장과 문의처만 남김)
- 파일 메뉴에 이용약관 링크 추가 — 여둘까엔 약관이 없었다
- 제품 방침에 빠져 있던 광고(카카오 애드핏) 고지를 찾아 채움
- 메트로놈 Simple Metronome
- 개인정보처리방침을 통합 정책 사이트로 옮김 — 구 freeprivacypolicy.com 대신 logstone.net/metronome/privacy/ 로 바꾸고 Play Console 정책 URL도 교체
- ±5 버튼 키운 v1.15를 Google Play에 출시
- 모래게임 Sandrop
- 봇을 실수율 0·10·20퍼센트 세 단계로 돌려 레벨마다 난이도 프로필을 남기고, 상위 난이도에 실수 없는 봇 기준 상한을 걸어 재생성
- 난이도를 축소판이 아니라 실제 판에서 재도록 통일하고 측정 반복을 8회에서 24회로 올림
- 얼음이 녹는 조건을 이웃 수로 고치고, 얼음끼리 붙지 않게 막음
- 안전망 경로가 기믹을 빠뜨리던 것을 고침
- 광고 SDK를 올리고 전면·보상형 닫기 버튼을 살림, 전면 광고를 매 판으로
- 설정의 개인정보처리방침·이용약관을 로그스톤 샵의 이 앱 전용 페이지로 연결
- 레벨 선택에서 노드 한 줄 전체를 눌러 들어가게 함
- 동생이 그려 준 케이크 도안 4종을 받아 확인
어려웠던 점
- LOGSTONE Shop
- 블로그 정책 편입을 두고 하루 안에 분리 확정 → 무단 편입 반려 → 승인 번복까지 오갔다 — “사이트+웹 도구만 편입, 앱 고지는 각 제품 정책”이라는 경계로 정리했다
- 여러 작업이 같은 저장소를 동시에 건드리니 회신이 다른 커밋에 묻히는 일이 생겼다 — 고치기 전 pull·고친 뒤 즉시 push를 규칙으로 박았다
- 소리꽃 KeyBloom
- 출시한 뒤에도 main에 push할 때마다 웹이 바로 배포돼 미완성 기능이 웹에 올라갔다 — 프로덕션 브랜치를 release로 분리해 릴리스 시점에만 웹이 바뀌게 정리했다
- 샵에 버전별 업데이트 내역을 어떻게 보여줄지 — 업데이터가 쓰는 파일엔 최신 한 버전만 있어서, 전체 이력은 GitHub 릴리스 목록을 가져오는 쪽으로 방향을 잡았다
- 여둘까 Office Layout
- 방침 페이지에 광고 항목이 아예 없는 걸 보고, 빠뜨린 건지 원래 없는 건지부터 가려야 했다. 실제로 광고를 싣고 있으니 빠진 게 맞았다
- 방침을 여러 제품이 나눠 쓰는 구조라, 내 제품에 무엇이 붙는지 페이지만 봐서는 알기 어려웠다
- 메트로놈 Simple Metronome
- 방침이 제품별로 조립되는 구조라 메트로놈 조항만 정확히 잡아야 했고, 다른 제품(애드핏·결제) 조항이 메트로놈 페이지에 새지 않는지부터 확인해야 했다
- 모래게임 Sandrop
- 500탄이 최고 난이도인데 한 번에 깨졌다. 난이도를 재는 방식 자체가 계획의 어려움과 실수에 대한 가혹함을 한 숫자로 뭉쳐 놓고 있었다
- 얼음 규칙을 고쳤더니 얼음끼리 붙은 판이 영영 안 풀리게 됐다. 한쪽을 고치면 다른 쪽이 깨지는 규칙이었다
- 광고에 닫기 버튼이 안 떠서 광고를 못 닫았다. 우리 화면이 시스템 바를 숨기고 있는 것과 부딪히는 문제라 원인을 찾는 데 오래 걸렸다
- 동생이 5색으로 그려 준 케이크가 게임에 넣으니 딸기가 갈색이 됐다. 그림 문제인지 변환 문제인지 가리는 데 시간이 걸렸고, 결국 내보내기 설정 문제였다
배운 점
- 로그스톤 샵 LogStone Shop TIL 3으로 정리
- 조항 데이터 + 태그 조립으로 여러 제품의 법적 문서를 한 소스에서 관리하는 법(동적 라우트, 고유명사 금지 원칙, 자동 누수 검증)
- GitHub 릴리스 기반 Changelog(빌드 타임 페칭, 한 노트에 두 언어 구분선 규약)
- 저장소를 프로젝트 간 요청 우편함으로 쓰는 협업 방식과 동시 편집 충돌 규칙
- 스토어 정책 URL을 제품별로 두면 심사 대조가 1:1이 된다
- 소리꽃 KeyBloom TIL 25로 정리
- 기존 이벤트 경로 재사용(서스테인·큐 키)
- 네이티브 단축키 denylist 잠금
- 배포 브랜치 분리로 “출시본만 웹에”
- GitHub Releases API로 changelog
- 업데이터 진행 표시(공용 오버레이 재사용)
- 모래게임 Sandrop TIL 24로 정리 예정
- 메트로놈 Simple Metronome (TIL 없음 — 코드 기법 아님)
- 여러 제품이 공유하는 방침에선 공통 조항에 특정 업체·제품명을 넣지 말아야 무관한 이름이 남의 제품 페이지에 안 샌다
해야 할 일
- LOGSTONE Shop
- Sandrop 출시(8/15) 지원 — 정책 URL 계약 이행 확인
- Duplicate Finder 손질 후 샵 등록
- Pawbit Firebase 확정 시 분석 조항 추가
- 로고 교체, 푸터 사업자 표기 여부 결정
- 소리꽃 KeyBloom
- 크로마키 출력·4K 구매 유도·9:16·1:1 비율 영상 추출 (유료 다음 업데이트)
- 라이브 모드 영상 촬영 기획 (홍보)
- 코드 서명 인증서(SmartScreen 경고 해소)는 매출 신호 후
- 메트로놈 Simple Metronome
- (deferrable) 잠금화면 미디어 컨트롤(MediaSession) — 남은 유일한 백로그
- 모래게임 Sandrop
- 케이크 도안 다시 받아 등록하고 500레벨 재생성
- 올린 난이도를 직접 확인
- 스토어 등록물과 Play Console 설문
- 배포 전 디버그 모드 제거
- 레벨 동결 — 제출 전에
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 | 오늘 해낸 것