AI PROMPTS · 인프라 & 자동화
콘텐츠 품질 대시보드 스크립트
항목 수, 카테고리 분포, 난이도 분포, 코드 길이 통계를 출력합니다.
인프라 & 자동화
핵심 설명
항목 수, 카테고리 분포, 난이도 분포, 코드 길이 통계를 출력합니다.
Node.js 18+
// scripts/dashboard.js
// 사용법: node scripts/dashboard.js
const vm = require('vm');
const fs = require('fs');
const LANGS = ['kotlin','python','go','java'];
console.log('\n╔═══════════════════════════════════════╗');
console.log('║ pullh 콘텐츠 현황 대시보드 ║');
console.log('╚═══════════════════════════════════════╝\n');
let grandTotal = 0;
for (const lang of LANGS) {
const ctx = { window: { DATA: {} } };
vm.runInNewContext(fs.readFileSync(`data/${lang}.js`,'utf8'), ctx);
const items = ctx.window.DATA[lang]?.items || [];
grandTotal += items.length;
// 카테고리 분포
const catDist = {};
items.forEach(i => catDist[i.cat] = (catDist[i.cat]||0) + 1);
// 난이도 분포
const diffDist = { b:0, i:0, a:0 };
items.forEach(i => diffDist[i.diff] = (diffDist[i.diff]||0) + 1);
// 코드 길이 통계
const codeLens = items.map(i =>
(i.code||'').replace(/<[^>]+>/g,'').length
);
const avgLen = Math.round(codeLens.reduce((s,n)=>s+n,0)/codeLens.length);
const maxLen = Math.max(...codeLens);
console.log(`📘 ${lang.toUpperCase().padEnd(8)} (${items.length}개)`);
console.log(` 난이도: B:${diffDist.b} I:${diffDist.i} A:${diffDist.a}`);
console.log(` 코드 길이: 평균 ${avgLen}자, 최대 ${maxLen}자`);
console.log(` 카테고리:`, Object.entries(catDist)
.sort((a,b)=>b[1]-a[1])
.slice(0,5)
.map(([k,v])=>`${k}(${v})`)
.join(', '));
console.log();
}
// AI/Vibe 통계
try {
const ctx = { window: { DATA: {} } };
vm.runInNewContext(fs.readFileSync('data/ai-vibe.js','utf8'), ctx);
const aiItems = ctx.window.DATA.ai?.items || [];
const vibeItems = ctx.window.DATA.vibe?.items || [];
console.log(`🤖 AI 필수 지식: ${aiItems.length}개`);
console.log(`🎸 바이브 팁: ${vibeItems.length}개`);
grandTotal += aiItems.length + vibeItems.length;
} catch(e) {}
console.log(`\n──────────────────────────────────────────`);
console.log(`총 콘텐츠: ${grandTotal}개 항목`);
console.log(`──────────────────────────────────────────`);Continue Learning
AI Prompts 학습을 이어가세요
총 20개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.