v1.10.88 품질·보안 개선과 미디어 카탈로그 database 전환을 반영한다.

세션·로그인 제한, ZIP/업로드 스트리밍, CSP 최소 강제와 Report-Only, Playwright 격리 검증을 추가하고 미디어 목록을 reconcile 후 database 모드로 고정한다.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-22 11:05:40 +09:00
parent 9bc0f0a90e
commit de767095ba
116 changed files with 8128 additions and 2933 deletions

View File

@@ -61,5 +61,17 @@
## 검증
- `npm run lint`: JavaScript 파일 문법 점검
- `npm run test`: Nuxt 프로덕션 빌드 기반 회귀 검증
- `npm run verify`: 문법 점검과 빌드를 함께 실행
- `npm test`: `npm run test:unit` 별칭
- `npm run test:unit`: Node 내장 테스트 러너로 `tests/*.test.js` 단위·회귀 테스트 실행
- `npm run test:api`: Playwright API 통합 테스트 실행
- `npm run test:e2e`: Playwright Desktop Chrome E2E 테스트 실행
- `npm run verify`: `lint` → `test:unit` → 프로덕션 `build` 실행
- `npm run verify:ci`: `lint` → `test:unit` → `test:api` → `test:e2e` → 프로덕션 `build` 실행
### 통합 테스트 격리
- API/E2E 테스트는 `scripts/run-playwright-tests.js`를 통해 실행하며 `playwright test`를 직접 실행해 개발 DB나 일반 업로드 경로를 사용하지 않는다.
- 테스트 DB 이름은 반드시 `_test`로 끝나야 하며 `docker-compose.test.yml`의 별도 PostgreSQL 컨테이너·일회성 볼륨만 사용한다.
- 테스트 업로드는 `PLAYWRIGHT_TEST=1`과 `SORI_TEST_UPLOAD_ROOT`가 지정한 시스템 임시 디렉터리만 사용하고 종료 시 정리한다.
- DB 상태를 공유하는 통합 시나리오는 Playwright worker 1개와 serial 모드를 유지한다.
- 테스트 중 비결정적 백그라운드 변경을 막기 위해 Export worker와 추천 사이트 파비콘 cron을 비활성화한다.