대규모 데이터 안전 검토은(는) 무엇을 하나요?
완전한 데이터 경로를 검토하여 프로덕션에서 안정적인 동작을 보장합니다. 증거 기반의 결과, 확인된 안전 경로, 누락된 증거, 테스트되었거나 테스트되지 않은 한계를 보고합니다.
운영 규칙
- 기본적으로 읽기 전용입니다. 코드, 의존성, 데이터베이스, 프로덕션 설정 또는 외부 시스템을 수정하지 마십시오.
- 의존성을 설치하지 마십시오.
- 누락된 증거를 안전의 증거로 취급하지 마십시오. 영향을 받는 레이어를 미확인(Unverified)으로 표시하십시오.
- 런타임, 부하 테스트, 쿼리 계획 또는 이에 상응하는 증거 없이 지원되는 규모를 주장하지 마십시오.
- 패턴 일치를 발견이 아닌 후보로 취급하십시오. 보고 전에 주변 데이터 흐름을 읽으십시오.
- 사용자 범위 또는 현재 diff를 우선시하십시오. 검색, 읽기, 명령 및 출력을 제한하십시오.
워크플로우
1. 범위 설정
요청, 저장소 지침, 명명된 파일, 현재 diff 및 직접적인 생산자와 소비자를 읽으십시오. 검토된 레이어, 제외된 레이어 및 누락된 레이어를 명시하십시오.
2. 규모 프로필 구축
현재 볼륨, 설계 한계, 요청 빈도, 동시성, 성장률, 항목 크기, 상호 작용 대상 및 리소스 한계를 기록하십시오. 값이 없으면 진단 가정을 확인된 값과 별도로 레이블을 지정하십시오.
사용자 증거가 없는 경우에만 다음 진단 프로브를 사용하십시오.
- 10,000,000 저장 행.
- 100,000 일치 행.
- 100 동시 대화형 요청.
- 페이지 크기 100, 하드 최대 200.
- 100,000 논리적 테이블 행 (DOM 행은 제한됨).
- 1,000,000 내보내기 또는 배치 행.
- 10배 성장.
3. 데이터 경로 추적
추적:
데이터 소스 -> 쿼리/데이터 접근 -> 서비스/작업 -> API/직렬화 -> 상태 관리 -> 페이지/테이블/내보내기
어떤 레이어가 증거로 지원되는지 명시하십시오.
4. 각 레이어 검토
교차 스택 검토를 위해 references/review-checklist.md를 사용하십시오.
경로에 Vue, axios, vxe-table, 브라우저 상태 또는 데이터 집약적인 테이블 렌더링이 포함된 경우에만 references/vue2-axios-vxe-table.md를 로드하십시오.
경로에 ASP.NET WebAPI, EF Core, LINQ, 컨트롤러, 서비스, 리포지토리, 내보내기 또는 백그라운드 작업이 포함된 경우에만 references/dotnet-webapi-efcore.md를 로드하십시오.
모든 참조를 기본적으로 로드하지 마십시오.
저장소/쿼리 범위, 구체화, 프로젝션, 인덱스, 안정적인 페이지 매김, 페이로드 크기, 취소, 타임아웃, 제한된 동시성, 역압, 멱등성, 재시도, 상태 복사본, 계산된 작업, DOM 크기, 로딩 상태 및 성능 저하를 확인하십시오.
5. 후보 발견 검증
모든 후보에 대해:
- 증가하는 입력 또는 동시성 차원을 식별하십시오.
- 필터링, 프로젝션, 페이징, 버퍼링 또는 렌더링이 발생하는 위치를 확인하십시오.
- 기존 하드 한계와 테스트 여부를 확인하십시오.
- 취소, 타임아웃, 재시도 및 오류 전파를 추적하십시오.
- 코드를 사용할 수 있는 경우 정확한 파일 및 라인 증거를 기록하십시오.
- 컨텍스트가 경로가 제한되어 있음을 증명하면 후보를 거부하십시오.
6. 증거 및 심각도 분류
증거 상태:
- 확인됨: 직접 코드, SQL, 구성, 테스트, 런타임 또는 설계 증거.
- 가능성이 높음: 하나의 상위 또는 하위 아티팩트가 누락된 강력한 경로 증거.
- 미확인: 필요한 자료를 사용할 수 없음.
심각도:
- P0: 확인된 데이터 손상, 프로덕션 중단 또는 도달 가능한 경로에서의 제어되지 않은 리소스 고갈.
- P1: 알려진 또는 진단 규모에서 예상되는 타임아웃, OOM, 데이터베이스 과부하, 심각한 상호 작용 실패 또는 잘못된 결과.
- P2: 볼륨 또는 동시성 증가에 따른 의미 있는 성능 저하 (현재 여유 공간 또는 대체 경로 있음).
- P3: 제한, 관찰 가능성, 테스트 또는 유지 관리 증거가 누락되었으나 입증된 심각한 실패는 없음.
진단 가정만으로 P0 또는 P1을 할당하지 마십시오. 심각하지만 뒷받침되지 않는 위험은 높은 우선순위 확인으로 분류하십시오.
7. 보고서 작성
references/output-contract.md를 로드하여 정확히 따르십시오.
각 발견에는 다음이 포함되어야 합니다.
- 심각도 및 증거 상태.
- 레이어 및 안정적인 근본 원인 코드.
- 증거 위치.
- 트리거 규모.
- 영향.
- 최소 수정.
- 검증 방법.
증거가 지원하는 경우에만 확인된 안전 경로를 나열하십시오.
저장소 및 출력 제한
- 최대 100,000개의 경로를 메타데이터로 열거하고, 그 이상은 디렉터리 및 확장자로 좁히십시오.
- 콘텐츠 패스당 최대 20,000개의 소스 파일 또는 500 MiB의 텍스트를 스캔하십시오 (둘 중 먼저 도달하는 기준).
- 최대 500개의 후보 일치를 유지하고, 나머지는 집계하여 잘린 개수를 기록하십시오.
- 패스당 최대 200개의 후보 파일을 깊이 읽으십시오.
- 기본 명령 타임아웃 60초를 사용하고, 타임아웃 후에는 범위를 좁히십시오.
- 근본 원인당 최대 50개의 발견 및 5개의 대표 증거 위치를 확장하십시오.
- 의존성, 생성된 출력, 아카이브, 바이너리, 빌드 디렉터리 및 큰 축소 파일은 건너뛰십시오.
- 모든 제외 및 잘림을 원래 개수, 유지된 개수 및 이유와 함께 보고하십시오.
누락된 증거 및 실패
- 프론트엔드만 있는 경우: 프론트엔드를 검토하고 미확인된 백엔드/API/데이터베이스 계약을 생성하십시오.
- 백엔드만 있는 경우: 백엔드를 검토하고 소비자 렌더링 및 상호 작용을 미확인으로 표시하십시오.
- 저장소가 너무 큰 경우: diff, 라우트, 클라이언트, 쿼리, 내보내기 및 렌더링 진입점에서 범위를 좁히십시오.
- 명령 타임아웃: 타임아웃을 반복적으로 늘리는 대신 배치 또는 경로 범위를 줄이십시오.
- 문서와 코드가 충돌하는 경우: 코드, 테스트, 쿼리 계획 및 런타임 증거를 우선시하고 문서 드리프트를 보고하십시오.
- 민감한 자료: 비밀 또는 레코드를 반복하지 말고 수정된 위치 설명을 사용하십시오.