오늘 해낸 것 (2026-07-12)
이 글은 Daily Log 시리즈의 101번째 기록입니다. (총 155개)
오늘 한 일
- 모래게임 Sandrop
- 200레벨 + 기믹 + 플레이 피드백 반영
- 도안을 236종으로 늘려 200레벨을 전부 다른 그림으로 생성 (소프트런칭 분량 확보)
- 로프(51레벨~)·물음표(101레벨~) 기믹을 넣음 — 두 바스켓이 밧줄로 묶여 같이 나가거나, 색을 가렸다 꺼낼 수 있을 때 공개되는 장치
- 내가 직접 해보다 로프가 막힌 것처럼 굳는 상황을 발견해 규칙을 고치게 함
- 남편에게 플레이시켰더니 벽을 보고 “이게 뭐냐”고 물어서, 벽을 못 지나가는 땅처럼 보이게 색을 바꿈
- 막혀서 끝날 때 화면이 슬로우모션으로 천천히 멈춘 뒤 안내가 뜨게 함 (왜 막혔는지 보이도록)
- 연한 색(사탕 포장재·눈사람 몸통)이 배경에 묻혀 안 보이던 도안을 고침
- 50레벨을 다 깨봤는데 재밌었다. 다만 나는 이런 게임을 보통 400~500탄은 하는 편이라 더 많은 레벨이 필요하다고 느꼈고, 그래서 200레벨 생성으로 이어짐
- 양동이 스프라이트로 교체하고 화면 연출을 다듬음 (저녁 작업)
- 밋밋한 도형이던 바스켓을 진짜 양동이 그림으로 바꿈 (내가 넣은 그림 한 장에 색만 입히는 방식이라 레벨마다 다른 색도 다 커버됨)
- 양동이를 더 크게, 바닥에 자리(받침)를 깔아 어느 칸에 있는지 또렷하게
- 잔량을 % 숫자 대신 양동이 안에 든 모래로 보이게 하고, 부을 수 있는 양동이는 벨트에서 뒤집혀 모래를 쏟는 모양으로
- 내보낼 수 있는 칸은 바닥이 빛나게(양동이 대신 바닥이 신호를 줌), 오른쪽 대기 칸의 모래도 네모 말고 동그랗게
- 물음표는 “보드를 떠나 엘리베이터에 타야 색 공개”로 바꿈 — 안 그러면 자리에 따라 시작하자마자 색이 열려버렸다
- 앱 아이콘을 도안 중 고래로 만들어 넣음
- 200레벨 + 기믹 + 플레이 피드백 반영
- 습관만들기 Pawbit — 마을 화면 트랙 재구성
- 디자이너 마을 맵이 아직이라 배경을 임시로 비우고, 집에서 각 표지판으로 이어지는 점선 트랙을 깔아 지도처럼 보이게 함
- 표지판(숲속·상점·갤러리)을 누르면 강아지가 그 트랙을 따라 걸어간 뒤 화면이 열리게 함
- 트랙과 표지판이 어긋나던 걸 좌표 잡는 방식을 하나로 통일해 맞추고, 화면이 텅 비던 버그도 잡음
- 메트로놈 Simple Metronome — 백그라운드 재생
- 홈으로 나가거나 다른 앱을 써도 메트로놈이 계속 재생되게 함 (태블릿에 악보 켜두고 트는 용도)
- 알림에서 재생/정지를 누를 수 있고, 최근 앱 목록에서 밀어내면 종료
- 잠깐 쉬기 전 마지막 작업으로, 실기기 확인 후 v1.14로 빌드
어려웠던 점
- 모래게임 Sandrop
- 로프가 어디까지 탭이 되어야 자연스러운지 감이 안 왔다. 직접 여러 판 해보니 “묶인 짝을 내가 막고 있는” 경우가 막힌 것처럼 느껴졌고, 이건 규칙이 잘못된 거라 고쳐야 한다고 판단했다.
- 벽이 벽으로 안 읽힌다는 건 나는 몰랐는데 남편이 바로 짚었다. 만든 사람은 이미 뭔지 아니까 안 보이는 걸 놓친다는 걸 다시 느꼈다.
- 레벨을 늘리는 게 “많이 뽑기”만으로 되는 줄 알았는데, 도안이 부족하면 같은 그림이 반복돼서 도안 확보가 먼저라는 걸 알게 됐다.
- 물음표를 넣었더니 자리에 따라 시작하자마자 색이 다 보였다. “언제 공개할지”는 화면만 고칠 문제가 아니라 규칙이라, 규칙부터 “보드를 떠날 때”로 정하고 화면을 맞췄다. 그런데 규칙을 바꾸니 정작 그 칸이 안 눌리는 버그가 딸려 나왔다 — 규칙 하나 바꾸면 화면 쪽 후속까지 같이 챙겨야 한다는 걸 또 배웠다.
- 양동이 그림은 원본이 밝은 크림색이라 색을 곱해 입히는데, 넣고 보니 예전에 쓰던 매장 하트/사각 타일이 사라지고 양동이가 이동하면 발판이 생겨 이상했다. 그림 하나 바꾸면 주변 요소(바닥·강조·라벨 위치)까지 다시 손봐야 한다.
- 습관만들기 Pawbit
- 마을 트랙이 표지판과 자꾸 어긋났다(특히 오른쪽 상점). 실기기로 보며 “여기가 안 맞아”를 짚어주는 식으로 몇 번 다시 잡았고, 중간엔 화면이 통째로 비는 일도 있었다.
- 메트로놈 Simple Metronome
- 메트로놈 백그라운드 재생은 “그냥 안 멈추게” 하면 될 줄 알았는데, 그러면 시스템이 앱을 정리해 소리가 끊긴다고 해서 알림을 띄우는 정식 방식으로 가야 했다. 홈은 계속·최근앱 스와이프는 종료처럼 상황마다 “계속할지 끝낼지”를 정해야 하는 게 생각보다 손이 갔다.
배운 점
- (모래게임 Sandrop TIL 4로 정리) 로프·물음표 기믹의 규칙 판정(합법 수·1칸 풀기·짝 해방 가정 검사) / 두 언어 엔진 슬롯 방향 파리티 버그 / 기믹 밀도 스케줄·수요 비례 버킷 / 데드락 슬로우모션 시계 / 양자화 전경-배경 대비 하한
- (모래게임 Sandrop TIL 5로 정리 — 저녁 UI 폴리시) 스프라이트 틴트 착색(BlendMode.modulate) / 레이어드 모래 표현 / 원형 잔량(면적 비례 sqrt) / 거꾸로 붓기 회전+라벨 역회전 / 바닥 글로우 신호 / 라벨 정책 분리(보드 숨김·벨트 자기기준%) / 경로 트레일 / 물음표 공개 시점 이동과 부작용 분리 / 규칙 변경의 UI 후속 버그 / flutter_launcher_icons adaptive / 위젯 테스트 스테일 에셋 번들
- (습관만들기 Pawbit TIL 12로 정리) 표지판·강아지·트랙 좌표계 통일(toPx) / Align vs Positioned 좌표 차이 / FractionalTranslation 중심 앵커 / 전부 Positioned면 Stack collapse → SizedBox.expand / 대시 직선 트랙 painter / AnimatedPositioned로 트랙 걷기 후 네비
- (메트로놈 Simple Metronome TIL 7로 정리) 포그라운드 서비스로 백그라운드 오디오(타입 지정 FGS) / bound+started 하이브리드·LocalBinder / 오디오 엔진 서비스 이전 / 알림 재생·정지 토글·ongoing vs dismissible / startForeground 5초 규칙 / POST_NOTIFICATIONS 런타임 요청 / Intent extras 파라미터 / 파라미터 전체 비교 재빌드 / isPlaying 진실 원천은 서비스·stale 정리 / bindService 비동기 leak 방지 / 절대 인덱스 틱으로 드리프트 없는 재동기화 / 생명주기 계속 vs 종료(onTaskRemoved)
해야 할 일
- 모래게임 Sandrop — UX 개선 (실기기에서 양동이 크기·바닥 글로우·거꾸로 붓기·트레일 체감 다듬기, 물음표 공개 흐름·온보딩 점검, 200레벨 시인성·기믹 체감 확인), 이후 잠금·frozen basket 기믹(v1.1)
- 습관만들기 Pawbit — 디자이너 마을 맵 들어오면 배경 복원, DEV 패널 최종 삭제, 앱 아이콘/스토어 에셋, 실기기 검증
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 | 오늘 해낸 것