シリーズ
開発トラブルの解決記録
PDF検索、ストアへのアップロード、Git履歴などの問題を調べ、直した記録。
-
빌드는 실패했는데 커밋 도우미는 통과시켰습니다
빌드 로그를 grep으로 거른 뒤 마지막 명령의 종료값을 읽어 실패한 빌드를 통과시켰습니다. 변경을 되돌려 고치고, zsh의 pipestatus로 빌드 결과를 확인하는 방법을 정리했습니다.
-
HTML을 배포했는데 브라우저에 소스가 나왔습니다
모바일 조회 화면을 Supabase에 올렸지만 HTML이 텍스트로 내려왔습니다. HEAD와 GET 응답의 차이를 확인하고 화면 호스팅을 Cloudflare Pages로 옮겼습니다.
-
워크트리의 링크 두 개가 의존성 폴더를 덮었습니다
node_modules를 빌려 쓰려고 만든 심볼릭 링크가 커밋에 들어갔습니다. 병합 후 실제 의존성 폴더가 자기 자신을 가리키는 링크로 바뀌어 npm ci로 복구했습니다.
-
원화를 올렸는데 검수할 그림이 없었습니다
이모티콘 원화 업로드는 성공했지만 항목 번호가 저장되지 않아 검수에서 빠졌습니다. 파일 이름으로 연결 대상을 미리 보여주고, 이미 올린 그림도 다시 연결할 수 있게 고쳤습니다.
-
PRO 코드의 평문 우회와 잘못 적힌 출시 기록을 고쳤습니다
PRO 프로모션 코드에서 해시 비교를 건너뛰는 평문 조건을 지웠습니다. 함께 확인한 CHANGELOG에서는 아직 출시하지 않은 기능을 미출시 절로 옮겼습니다.
-
Gradle 액션의 캐시와 이용 조건을 확인하고 v5에 남았습니다
setup-gradle v6의 기본 캐시는 별도 상용 구성요소를 사용했습니다. v5를 유지한 당시 판단과, v6.1에서 선택할 수 있는 MIT 기본 캐시를 구분해 적었습니다.
-
배포 문서에 다른 제품의 저장소가 적혀 있었습니다
배포 문서에서 없는 npm 명령과 잘못된 원격 저장소를 찾았습니다. 문서 두 벌이 같은지만 검사하던 도구는 둘 다 통과시켰습니다.
-
출시한 변경이 develop에는 없었습니다
물타기 계산기 v1.0.8이 main에서 개발되고 출시돼 develop에는 변경이 빠졌습니다. 이력을 다시 합치고 출시 뒤 브랜치 차이를 검사하게 했습니다.
-
보상형 광고를 추가하고 검사 목록은 그대로 뒀습니다
Google 테스트 ID는 출시 검사에 걸렸지만, 보상형 광고의 빈 값은 검사 대상에서 빠져 있었습니다. 목록을 보완하고 광고별 준비 상태를 나눴습니다.
-
PDF 글자층에서 한글을 공백으로 바꾸고 있었습니다
OCR 좌표 계산을 공통 코드로 옮기다가 한글을 지우는 sanitize 조건을 찾았습니다. 한글 폰트를 넣고 JVM에서 생성한 PDF의 ToUnicode를 확인했습니다.
-
로컬 업로드와 CI가 다른 버전 코드를 썼습니다
물타기 계산기 출시 중 버전 코드를 8 → 14 → 20으로 올려야 했습니다. 로컬과 CI의 계산 차이를 찾고, 실제 번들과 다른 숫자를 출력하던 로그도 고쳤습니다.
-
블로그의 canonical은 404였고 공유 카드는 0장이었습니다
SEO를 점검하다 실제 페이지와 다른 canonical 주소, 한글을 한자로 판정하는 정규식을 찾았습니다. 주소와 문자 범위를 고치고 생성된 HTML과 이미지 파일을 대조했습니다.
-
Git 이력을 다시 쓴 뒤 스크린샷 검사가 깨졌습니다
작성자 정보를 고치며 커밋 154개의 해시가 바뀌었습니다. 검사가 읽던 reviewed-at과 커밋 메시지의 참조를 새 해시로 옮기고, 과거 일지의 해시는 그대로 남겼습니다.
-
없는 로케일 때문에 스토어 이미지 업로드가 취소됐습니다
Gradle Play Publisher가 없는 로케일의 이미지 조회에서 실패하면서 기존 로케일의 변경도 반영되지 않았습니다. 로케일을 먼저 만든 뒤 이미지를 올리고 sha1을 비교했습니다.
-
저장소를 분리하자 작업 일지가 중복됐습니다
루트와 제품 저장소의 커밋을 한 일지에 모으면서 같은 작업을 두 번 기록했습니다. 날짜와 제목으로 중복을 묶고, 이력 재작성 뒤에도 기존 일지는 남기도록 바꿨습니다.