16 Commits

Author SHA1 Message Date
bffce65aca feat: 접근성 검사 표준 선택 기능 — WCAG/KWCAG 버전별 선택 지원
3가지 검사 모드(한 페이지, 사이트 크롤링, 목록 업로드) 모두에서 접근성 표준을
선택할 수 있도록 추가. WCAG 2.0 A/AA, 2.1 AA, 2.2 AA와 KWCAG 2.1, 2.2를
지원하며, KWCAG 선택 시 axe-core 결과를 KWCAG 검사항목으로 자동 매핑.

- KWCAG 2.2 (33항목) / 2.1 (24항목) ↔ WCAG 매핑 테이블 (kwcag_mapping.py)
- AccessibilityChecker에 표준 파싱 및 KWCAG 변환 로직 추가
- 전체 API 파이프라인에 accessibility_standard 파라미터 전파
- 프론트엔드 3개 폼에 공용 표준 선택 드롭다운 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 08:36:14 +09:00
1d7544cdfe fix: 크롤링 완료 시 페이지 status를 pending으로 초기화
SSE crawl_complete 이벤트의 pages에 status 필드가 없어서
검사 중 스피너가 표시되지 않던 문제 수정

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 07:47:21 +09:00
c88967cb6f fix: 트리 경로 표시 개선 - 슬래시 제거 + 쿼리 파라미터 분리
- 자식 노드에서 부모와 겹치는 경로 + 앞의 / 제거
  /about → about, /about/press → press
- 쿼리 파라미터가 있는 URL을 path 하위에 쿼리만 표시
  /search?q=foo → search 하위에 q=foo
- findPathParent에서 쿼리 URL의 부모를 같은 path로 매핑

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 07:42:28 +09:00
de0863c8ad fix: 트리 노드에서 부모와 겹치는 경로 접두사만 제거
/about/press → /press (부모 /about 제거)
/about → /about (루트 직속은 전체 경로)
/ → /

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 07:29:22 +09:00
9c41b2f95d fix: 트리 노드에 마지막 경로 세그먼트만 표시
/about/press → press, /about → about, / → /
들여쓰기로 계층이 표현되므로 전체 경로 반복 불필요

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 07:26:30 +09:00
9f58485a87 fix: URL 경로 기반으로 페이지 트리 계층 구성 + 중복 제거
parent_url(크롤링 발견 순서) 대신 URL path 계층으로 트리를 구성하여
/howyoutubeworks가 /about 하위로 잘못 표시되는 문제 수정.
동일 URL 중복 노드도 제거.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 07:17:43 +09:00
8326c84be9 feat: 3-mode inspection with tabbed UI + batch upload
- Add batch inspection backend (multipart upload, SSE streaming, MongoDB)
- Add tabbed UI (single page / site crawling / batch upload) on home and history pages
- Add batch inspection progress, result pages with 2-panel layout
- Rename "사이트 전체" to "사이트 크롤링" across codebase
- Add python-multipart dependency for file upload
- Consolidate nginx SSE location for all inspection types

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 19:15:27 +09:00
9bb844c5e1 fix: remove stale React Query cache on site inspection complete
SSE complete event now removes the cached siteInspection query data
so the result page fetches fresh data with aggregate_scores from API.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:57:37 +09:00
3d03c47aaa fix: 진행 페이지 리로드 시 무한 로딩 + 동시 검사 수 상한 수정
- 리로드 시 API에서 현재 상태를 조회하여 스토어 복원 (initFromApi)
- SITE_CONCURRENCY 서버 상한 4→8로 변경 (사용자 설정 8이 제대로 동작)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:50:14 +09:00
1e50b72fd8 feat: 사이트 검사 동시 검사 수 설정 추가
- 기본값 2→4로 변경, 사용자가 [1, 2, 4, 8] 중 선택 가능
- 백엔드: concurrency 파라미터 추가 (API → 서비스 → Semaphore)
- 프론트: 드롭다운에 "동시 검사 수" 옵션 UI 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:44:22 +09:00
c440f1c332 fix: 사이트 검사 3가지 UI 이슈 수정
1. SSE page_complete 이벤트 필드명 score→overall_score 불일치 수정
   (진행 페이지에서 각 페이지별 점수가 표시되지 않던 버그)
2. 진행 페이지 재방문 시 완료된 검사는 결과 대시보드로 자동 리다이렉트
3. 카테고리 상세(이슈 목록)를 인라인으로 표시하여 트리 사이드바 유지
   (이전: 별도 페이지로 이동하여 트리가 사라지는 문제)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:37:14 +09:00
3e224d221a feat: 사이트 검사 최대 페이지 수 무제한 옵션 추가
- max_pages=0으로 무제한 모드 지원 (안전 상한 500페이지)
- 프론트엔드에 "무제한" 버튼 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 17:14:32 +09:00
81b9104aea feat: 사이트 전체 검사 기능 추가
도메인 하위 링크를 BFS로 자동 크롤링하여 페이지별 검사 수행.
- BFS 링크 크롤러 (같은 도메인 필터링, max_pages/max_depth 설정)
- 사이트 검사 오케스트레이션 (크롤링→순차 검사→집계)
- SSE 실시간 진행 상태 (크롤링/검사/완료)
- 페이지 트리 + 집계 결과 UI
- UrlInputForm에 "사이트 전체 검사" 버튼 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:46:49 +09:00
cdb6405714 fix: API_BASE_URL fallback을 same-origin으로 변경
|| 대신 ?? 사용하여 빈 문자열(same-origin)도 유효한 값으로 처리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:22:36 +09:00
88ff592815 fix: 도메인 배포 설정 (web-inspector.yakenator.io)
- NEXT_PUBLIC_API_URL을 same-origin(빈값)으로 변경 (Nginx 리버스 프록시 사용)
- Nginx 설정 추가 (SSE 버퍼링 OFF, API/Frontend 프록시)
- Dockerfile, docker-compose.yml 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 14:12:01 +09:00
b5fa5d96b9 feat: 웹사이트 표준화 검사 도구 구현
- 4개 검사 엔진: HTML/CSS, 접근성(WCAG), SEO, 성능/보안 (총 50개 항목)
- FastAPI 백엔드 (9개 API, SSE 실시간 진행, PDF/JSON 리포트)
- Next.js 15 프론트엔드 (6개 페이지, 29개 컴포넌트, 반원 게이지 차트)
- Docker Compose 배포 (Backend:8011, Frontend:3011, MongoDB:27022, Redis:6392)
- 전체 테스트 32/32 PASS

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 13:57:27 +09:00