이 글은 Daily Log 시리즈의 119번째 기록입니다. (총 155개)

오늘 한 일

  • 모래게임 Sandrop
    • 일일 보상을 상자에서 카드로 — 고르면 카드가 뒤집히고 액자 안에서 받은 것의 아이콘이 튀어나오며 꽃가루가 터진다
    • 고르기 전 카드가 숨쉬듯 커졌다 작아지게. 카드마다 박자를 밀어 아홉 장이 따로 움직인다
    • 일일 보상 화면만 어두운 배경으로 — 밝은 배경에서는 어두운 카드가 떠 보였다
    • 보상 구성 변경 — 아이템 한 장이 3종을 다 주던 것을 종류별 한 장으로. 코인 4 · 아이템 3 · 하트 2
    • 하트·코인 아이콘을 직접 그린 그림으로 교체
    • 손으로 그린 그림을 도안으로 넣는 경로를 만듦. 태극·복주머니를 코드로 그리던 것에서 그림으로 교체
    • 릴리스 서명 — 업로드 키를 만들어 연결. 이제 스토어에 올릴 수 있는 파일이 나온다
    • 레벨 동결은 출시 후로 미루기로 결정
    • 언어 전환(한국어/영어) — 문구 103개를 한곳으로 모으고 설정에 선택지를 넣음
    • 광고 보고 하트 받기(하루 1회) — 하트가 0일 때 코인을 거치지 않는 탈출구
    • 한 수도 안 둔 판은 뒤로가기에 확인 없이 바로 목록으로
    • 상점 아이콘 규칙 정리, 게임 방법을 모달로. 완성작 갤러리 탭은 안 만들기로 결정
  • 룸톤 Roomtone
    • 매장용 앱을 홈·곡·관리자·설정 네 탭으로 다시 짬. 저절로 재생되던 것은 걷어냄
    • 올린 음원을 MP3 320k로 굽고 음량을 −16 LUFS로 맞추는 파이프라인을 넣음. 변환·업로드를 bat 하나로 묶음
    • 재생 바를 좌·중앙·우 3단으로 다시 디자인, 볼륨은 작은 팝업으로
    • 장르에 섞여 있던 악기를 ‘편성’ 축으로 분리. 곡마다 원본 파일명을 저장
    • 같은 프롬프트로 제목이 겹치던 17곡에 서로 다른 제목을 지어주고, 음량·길이가 빠진 곡을 채움
    • 매장 업종을 계정으로 옮김 — 운영자가 관리자에서 계정별로 정하고, 매장 설정엔 읽기 전용으로 표시
    • 좋아요 1개 이상이면 홈에 ‘좋아요 표시한 곡’ 재생목록이 뜨게 함
    • 곡별 재생 통계를 붙임 — 재생 시점 업종·시각을 남겨 업종별·시간대·빈도·기간을 봄(오늘부터 기록)
    • 관리자 쪽을 운영자 콘솔로 — 서비스를 쓰는 계정 목록과 계정별 설정 편집
    • 룸톤을 GitHub 저장소에 연결하고 올림
  • 블로그
    • 7월 30일치 기록 정리
  • 콘티온 Conti On
    • 콘티에 담긴 곡마다 메모 한 칸을 달 수 있게 함 — “이 곡 키 -2”, “간주 길게” 같은 걸 곡별로. 콘티 전체 메모는 그대로 두고 별개. 마지막 작성자 이름 표시, 승인 전에만 편집, PPT엔 안 나감

어려웠던 점

  • 모래게임 Sandrop

    • 코인이 게임 화면에서 어둡게 보여 밝기를 올렸더니, 이번엔 빛 받은 부분이 하얗게 뭉개졌다. 재보니 코인의 60%가 순백으로 날아가 각인이 사라진 상태였다. 밝기를 올리는 방법을 세 번 갈아 끼운 끝에 맞는 걸 찾았다
    • 손으로 그린 그림을 넣었더니 복주머니의 파란 리본과 금색 동전이 통째로 사라졌다. 기존 축소 방식이 픽셀 그림의 경계를 뭉개면서 색을 없앤 것이었다
    • 그림 두 장을 바꿨는데 500탄 중 469탄의 그림이 통째로 바뀌었다. 도안을 난이도 순으로 정렬해 배정하는 구조라, 하나를 바꾸면 뒤가 전부 밀린다. 출시 후에 이러면 유저가 지나온 레벨이 다 달라진다
    • 새로 그린 복주머니가 어느 난이도에도 안 맞았다. 처음엔 다시 그려서 그런 줄 알았는데, 예전 것도 똑같이 쉬웠다. 그림의 86%가 한 색이라 부을 순서를 고민할 거리가 없는 도안이었다
    • 릴리스 서명을 붙이면서 “키가 없으면 빌드가 실패한다”고 적어 놨는데, 실제로 돌려 보니 그냥 성공하고 서명 없는 파일이 나왔다. 막으려던 사고를 그대로 두고 있었던 셈이라 다시 고쳤다
    • 문구를 한곳으로 모으니 상수로 두었던 자리가 전부 컴파일 오류가 났다. 상수는 빌드할 때 값이 정해져야 하는데 문구는 실행 중에 바뀐다
    • 언어를 바꾸고 뒤로 나갔더니 목록 화면이 옛 언어 그대로였다. 이미 만들어진 화면은 다시 만들 이유가 없으니 당연한 일이었다
    • 화면 테스트 12개가 한꺼번에 깨졌다. 테스트가 찾는 문구는 한국어인데 테스트 환경의 기기 언어가 영어라, 기본값이 영어를 골랐다
    • 영어로 바꾸니 설정 줄이 37픽셀 넘쳤다. 화면이 한국어 기준으로 짜여 있어서 문구가 길어지자 밀려났다
    • 광고를 보고 하트를 받는데, 하트가 4개면 5개를 준다고 적어 놓고 1개만 들어왔다. 하루 한 번뿐인 기회를 5분의 1 값에 쓰게 두고 있었다
  • 룸톤 Roomtone

    • 곡을 올릴 때 제목을 프롬프트 보고 자동으로 짓게 하고 싶었지만, 그러려면 외부 API와 비용이 든다. 자동화하지 않고 필요할 때 수동으로 짓기로 정했다
    • 운영자 화면에 계정 관리를 어디까지 넣을지 갈렸다. 계정 목록을 보고 계정별 설정을 바꾸는 게 맞지만, 매장이 자기 계정으로 로그인하는 구조가 아직 없어 다계정을 다 만들어도 매장 앱이 어느 계정인지 못 가린다. 지금은 계정 하나짜리 목록·편집까지만 하고, 두 번째 고객을 받는 때를 계정별 로그인 붙이는 시점으로 미뤘다
  • 콘티온 Conti On

    • 곡별 메모를 댓글처럼 여러 개(누가·언제 달린 스레드)로 할지, 곡마다 한 칸으로 할지 정해야 했다. 스레드는 새 테이블·CRUD가 붙어 무겁고, 실제 필요는 곡별 지시 한 줄이라 한 칸으로 정했다
    • 잠긴(승인된) 콘티에서도 메모를 달게 할지 갈렸다. 좌석 안내는 잠겨도 자막 담당자가 바꾸지만, 메모는 진행 논의라 콘티 전체 메모와 같은 규칙(승인 전에만)으로 통일했다

배운 점

  • 모래게임 Sandrop TIL 20으로 정리
    • 회전은 원근이 있어야 뒤집혀 보인다
    • 반 넘게 돌면 거울상이라 되돌려야 한다
    • 그림 그리는 객체는 프레임마다 새로 생긴다
    • 밝기를 곱하면 밝은 부분이 날아간다
    • 색을 지키며 밝히려면 밝기만 따로 다뤄야 한다
    • 픽셀 그림은 최근접으로 줄인다
    • 도안 난이도는 색 개수가 아니라 면적 분포가 정한다
    • 설정을 비워 두는 것만으로는 사고를 못 막는다
    • 업로드 키는 잃어도 복구된다
    • 번역이 빠진 걸 컴파일이 잡게 만들 수 있다
    • 언어에 따라 변하는 값은 상수가 될 수 없다
    • 테스트는 기기 언어를 따라간다
    • 레이아웃은 만들 때 쓴 언어에 맞춰져 있다
    • 한도가 있는 보상은 주는 양이 아니라 받는 양을 보여줘야 한다
  • 룸톤 Roomtone TIL 2로 정리
    • 업로드가 형식을 안 알려주면 확장자로 정한다
    • 음량은 재생 때가 아니라 올릴 때 파일에 굽는다
    • 태그 축은 tag_id로 묶여 있어 나중에 갈라도 곡 연결이 유지된다
  • 콘티온 Conti On TIL 7에 추가
    • 곡별 메모도 예약만 돼 있던 컬럼을 5계층에 이어 살림 / 콘티 저장이 “항목 전부 다시 쓰기”라 항목별 작성자는 화면이 왕복시켜 보존(고친 항목만 내 이름으로)

해야 할 일

  • 모래게임 Sandrop
    • 스토어 등록물·Play Console(콘텐츠 등급·데이터 보안 양식·타겟층)
    • 배포 전 디버그 제거
    • 출시 후 레벨 동결
    • 남은 성능 과제: 캔버스를 이미지로 구워 한 번에 그리기, 게임 루프가 화면 전체를 새로 그리지 않게 하기
  • 룸톤 Roomtone
    • 음원 암호화
    • 시간대별 재생목록 자동 전환
    • 기기 1대 묶기(과금 단위)
    • 회사 공간 2주 파일럿
  • 콘티온 Conti On
    • iPad 실기기에서 곡별 메모 작성·작성자 표시 확인
    • 곡 중복 감지(백로그)

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 오늘 해낸 것