공개 제보 https://github.com/gnuboard/g7/issues/122 대응 — 초기 부트스트랩 리소스(다국어 병합·컴포넌트 정의·라우트·확장 번들·템플릿 dist)를 캐시 버전 디렉토리(public/build/ext/{v}/)에 실파일로 게시해 웹서버가 rewrite 전에 직접 서빙한다. 부트 임계 경로의 PHP 왕복을 제거하고(실측 TTFB 131~144ms → 1~7ms), 미게시·부분게시·GC 직후에는 fetch·태그·번들 3계층이 종전 API 로 즉시 폴백한다. - 게시: 원자적 tmp→rename→manifest(존재=완료), 캐시 락 단일 실행, 인라인 GC (현재+직전 1개), incrementExtensionCacheVersion 단일 지점 terminating 트리거 + blade 자가 치유 + 설치기 태스크(best_effort) + 일일 cleanup 스케줄, sudo 업데이트 대비 소유권 정상화(normalizeOwnership)·prune/백업 제외 - 프론트(engine-v1.61.0): blade 주입 cache_version 1급 시드(이중 부트 로드 제거), fetchStaticFirst 즉시 폴백, ComponentRegistry 버전 키드 매니페스트, ModuleAssetLoader 번들 정적→레거시 폴백, asset-url-recovery staticToLegacy 역변환 - 폴백 API 품질: lang/components/routes ETag+304 + 환경 분기 Cache-Control, 열화 라우트 스냅샷 공개 캐시 금지(서버측 캐시 회피와 대칭), 게시 .htaccess mod_deflate + nginx gzip 스니펫(압축 전송량 회귀 방지) - SEO 정합: 봇 HTML 은 GC 대상 정적 URL 미사용(allowStatic:false), props $switch 봇측 해석 구현(engine-v1.56.0 패리티), 패리티 룰 expression-dialect 그룹 신설, 상주 allow 헤더 제거로 잠금 복원, _comment* 접두 주석 키 분류 - 검증: 전 수정 red→green 4단계, Playwright 라이브 21건, Chrome MCP 24축+M1~M3, 봇 curl 3축, 캐시 저장소(file/redis/database) 축 판정, 히스토리·공개이슈·커밋 이력 전수 재조사 반영 - 코어 7.0.10, engine-v1.61.0. kill-switch: G7_STATIC_CACHE=false
154 lines
3.4 KiB
Plaintext
154 lines
3.4 KiB
Plaintext
*.log
|
|
.DS_Store
|
|
.env
|
|
.env.backup
|
|
.phpactor.json
|
|
.phpunit.result.cache
|
|
/.fleet
|
|
/.idea
|
|
/.nova
|
|
/.phpunit.cache
|
|
/.vscode
|
|
/.zed
|
|
/auth.json
|
|
/node_modules/public/hot
|
|
/public/storage
|
|
/storage/*.key
|
|
/storage/pail
|
|
/storage/composer
|
|
/vendor/*
|
|
!/vendor/.gitkeep
|
|
/.composer
|
|
Homestead.json
|
|
Homestead.yaml
|
|
Thumbs.db
|
|
|
|
# Logs
|
|
logs
|
|
npm-debug.log*
|
|
yarn-debug.log*
|
|
yarn-error.log*
|
|
dev-debug.log
|
|
# Dependency directories
|
|
node_modules/
|
|
# Environment variables
|
|
# Editor directories and files
|
|
.idea
|
|
.vscode
|
|
*.suo
|
|
*.ntvs*
|
|
*.njsproj
|
|
*.sln
|
|
*.sw?
|
|
# OS specific
|
|
|
|
# Task files
|
|
# tasks.json
|
|
# tasks/
|
|
|
|
# Settings JSON files (환경별 설정)
|
|
/storage/app/settings/
|
|
# 성능 계측 리포트 (g7:bench --report) — 측정값이 실행 머신 사양에 종속되므로 저장소에 축적하지 않는다
|
|
/storage/app/benchmarks/
|
|
|
|
# 확장 프론트엔드 병합 번들 캐시 (version-in-path, 런타임 생성)
|
|
/storage/app/ext-bundles/
|
|
|
|
# Bootstrap cache (auto-generated)
|
|
/bootstrap/cache/*
|
|
!/bootstrap/cache/.gitkeep
|
|
|
|
# ===== 확장 시스템 =====
|
|
|
|
# 활성 확장 디렉토리 (설치된 복사본 — Git 제외)
|
|
modules/*/
|
|
!modules/_bundled/
|
|
plugins/*/
|
|
!plugins/_bundled/
|
|
templates/*/
|
|
!templates/_bundled/
|
|
|
|
# _bundled 내부 의존성 디렉토리 제외
|
|
modules/_bundled/*/vendor/
|
|
modules/_bundled/*/node_modules/
|
|
plugins/_bundled/*/vendor/
|
|
plugins/_bundled/*/node_modules/
|
|
templates/_bundled/*/node_modules/
|
|
|
|
# _pending 디렉토리 (외부 다운로드 임시 영역 — 구조만 버전관리)
|
|
!modules/_pending/
|
|
!plugins/_pending/
|
|
!templates/_pending/
|
|
|
|
# ===== 언어팩 시스템 =====
|
|
|
|
# 활성 언어팩 디렉토리 (설치된 복사본 — Git 제외)
|
|
lang-packs/*/
|
|
!lang-packs/_bundled/
|
|
|
|
# _pending 디렉토리 (외부 다운로드 임시 영역)
|
|
lang-packs/_bundled/_pending/
|
|
!lang-packs/_pending/
|
|
|
|
# DevTools debug dump
|
|
storage/debug-dump/
|
|
|
|
# MaxMind GeoLite2 DB (재배포 금지 — 각 환경에서 직접 다운로드)
|
|
storage/app/geoip/
|
|
|
|
# 인스톨러 런타임 산출물 — 각 환경에서 자동 생성/소비
|
|
storage/installer-state.json
|
|
storage/installer/
|
|
|
|
# 개발 전용 파일
|
|
.api-test/
|
|
.serena/
|
|
.claudeignore
|
|
.mcp.json
|
|
boost.json
|
|
cypress/
|
|
cypress.config.js
|
|
.env.testing
|
|
.claude/settings.local.json
|
|
|
|
# ===== 보안: 민감 파일 방어 패턴 =====
|
|
*.pem
|
|
*.p12
|
|
*.pfx
|
|
*.jks
|
|
*.key
|
|
!storage/*.key
|
|
credentials.json
|
|
service-account.json
|
|
id_rsa
|
|
id_ed25519
|
|
.htpasswd
|
|
*.sql
|
|
*.sqlite
|
|
*.db
|
|
|
|
# NHN KCP 결제플러그인 PG 공개키는 예외 처리
|
|
!plugins/_bundled/*/bin/pub.key
|
|
|
|
.claude/tmp/
|
|
|
|
# ===== Playwright E2E =====
|
|
tests/Playwright/.auth/
|
|
playwright-report/
|
|
test-results/
|
|
# Playwright MCP 세션 아티팩트(스냅샷/콘솔 로그) — 커밋 대상 아님
|
|
.playwright-mcp/
|
|
|
|
# ===== 소스맵 =====
|
|
# 소스맵은 원본 코드 전문(sourcesContent)을 담고 있어 배포 대상이 아니다.
|
|
# 로컬 개발 빌드에서는 생성되지만(디버깅용) 저장소에는 유입되지 않는다.
|
|
# 배포용 빌드는 `--production` 이 G7_BUILD_SOURCEMAP=0 을 주입해 생성 자체를 막는다.
|
|
# 경로 한정 시 새 확장이 추가될 때 조용히 누락되므로 전역 규칙으로 둔다.
|
|
*.map
|
|
|
|
# ===== 부트스트랩 리소스 정적 게시 (bake, #122) =====
|
|
# 병합 산출물의 버전 디렉토리 사본 — 각 서버가 수명주기 이벤트마다 재생성하는
|
|
# 로컬 파생물이라 저장소·release 페이로드에 유입되면 안 된다.
|
|
# `public/build/core/` 는 계속 추적한다 (배포 산출물) — 혼동 금지.
|
|
/public/build/ext/
|