성능 측정과 변경 리뷰
측정으로 병목을 찾고 검증 근거가 있는 개선을 제안합니다.
진도 0%
레슨
- 성능 기록과 조건 고정
성능 지표를 동일 조건에서 반복 측정합니다.
- 렌더링 비용 줄이기
큰 이미지와 DOM 갱신의 비용을 비교합니다.
- 리스너와 타이머 수명
반복 이동 시 남는 자원을 추적합니다.
- 변경 이유와 리뷰 요청
변경 배경·검증·제한을 리뷰어가 확인하게 작성합니다.
9단계: 성능 측정과 변경 리뷰
m08 미션 solution 전체를 이어받은 starter에서 중앙값·카드 재사용과 이미지 비율·자원 정리 TODO를 구현하고 검증 근거를 제출합니다.
요구사항
- measurement.mjs의 중앙값·표본 계약을 완성하고 npm run measure로 performance.json의 실제 Node 원자료를 생성합니다.
- dom.mjs에서 현재 목록의 동일 내용 카드만 재사용하고 제목·지역·날짜·URL 변경·순서·빈 목록·외부 제거를 처리합니다. components.mjs에 1200×600 이미지의 크기·비율·역할에 맞는 alt를 선언합니다.
- lifetime.mjs에서 리스너·타이머를 정리하며 results.mjs에 연결된 scope와 기존 폼·session 정리를 유지합니다.
- REVIEW.md에 문제·변경·실행 근거·조건·미개선 여부·PENDING·AI 검증을 쓰고 독립된 실습 복사본에서 diff 또는 충돌 표식을 검토합니다. 커밋·푸시는 하지 않습니다.
완료 기준
- npm test에서 m08 기존 회귀와 중앙값·카드 갱신·이미지 비율·10회 자원 정리 검사가 통과합니다.
- performance.json은 1000개 고정 데이터의 전후 3회 Node 원자료·중앙값·런타임·구간·캐시/CPU/네트워크 조건을 포함합니다. 실제 브라우저 로딩·검색·화면·버전·조건·원자료·중앙값은 별도로 기록하며 미실행은 PENDING입니다.
- 외부 환경에서 npm run test:e2e와 실제 모바일·키보드·이미지 배치·반복 이동을 확인합니다. Node 모델 통과를 브라우저 통과로 쓰지 않습니다.
- REVIEW.md의 각 성능 주장은 실제 원자료와 연결하며 개선 또는 미개선 근거와 카드 재사용 범위의 제한을 설명합니다.
- npm ci와 npx playwright install chromium을 먼저 실행합니다(Node 20 또는 22 LTS). check.sh는 npm test 뒤 Playwright e2e까지 실행합니다.
bash check.sh미션 시작 코드
모범 답안
모범 답안 내려받기검토 기준
- 변경 경계와 검색·상세·접근성 보존을 자신의 말로 설명합니다.
- 원자료와 조건을 재현할 수 있으며 미확인 관찰과 AI 제안의 검증·채택/기각 이유를 정직하게 표시합니다.
- 관련 없는 diff가 없고 리뷰어가 테스트와 측정 명령을 그대로 실행할 수 있습니다.