오늘도 공부
UI/UX Pro Max 검색 시스템 분석 문서 본문
GitHub - nextlevelbuilder/ui-ux-pro-max-skill: An AI SKILL that provide design intelligence for building professional UI/UX mult
An AI SKILL that provide design intelligence for building professional UI/UX multiple platforms - nextlevelbuilder/ui-ux-pro-max-skill
github.com
이 문서는 분석 결과물입니다. 코드 변경 계획이 아닙니다.
1. 시스템 아키텍처 개요
사용자 요청 (자연어)
│
▼
┌────────────────────────────────────────────────┐
│ SKILL.md (description 필드) │
│ AI 어시스턴트가 키워드 매칭으로 스킬 활성화 │
│ → "plan, build, create, design, implement..." │
│ → "website, landing page, dashboard, SaaS..." │
│ → "glassmorphism, minimalism, brutalism..." │
└────────────────────────┬───────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ search.py (CLI 진입점) │
│ 3가지 모드 분기: │
│ ├─ --design-system → design_system.py │
│ ├─ --stack <name> → core.search_stack() │
│ └─ --domain <name> → core.search() │
└────────────────────────┬───────────────────────┘
│
▼
┌────────────────────────────────────────────────┐
│ core.py (BM25 검색 엔진) │
│ CSV 로드 → 토큰화 → IDF 계산 → 점수화 → 정렬 │
└────────────────────────────────────────────────┘
2. 스킬 활성화 메커니즘
2.1 트리거 조건
AI 어시스턴트는 SKILL.md의 description 필드에 정의된 키워드를 통해 스킬을 활성화합니다.
파일: .claude/skills/ui-ux-pro-max/SKILL.md:3
description: "UI/UX design intelligence. 50 styles, 21 palettes...
Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check
Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app
Elements: button, modal, navbar, sidebar, card, table, form, chart
Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode
Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow"
사용자가 이 키워드 중 하나라도 포함된 요청을 하면, AI가 SKILL.md 전체를 읽고 워크플로우를 따릅니다.
2.2 워크플로우 (AI가 따르는 4단계)
SKILL.md에 정의된 순서:
단계행동필수 여부
| Step 1 | 사용자 요구사항 분석 (제품 타입, 스타일, 산업, 스택 추출) | 필수 |
| Step 2 | --design-system 으로 통합 디자인 시스템 생성 | 필수 (REQUIRED) |
| Step 3 | --domain 으로 보충 검색 (필요시) | 선택 |
| Step 4 | --stack 으로 프레임워크별 가이드 조회 | 선택 |
3. 세 가지 검색 모드 상세 분석
3.1 모드 A: 디자인 시스템 생성 (--design-system)
명령 형식:
python3 search.py "<쿼리>" --design-system [-p "프로젝트명"] [-f ascii|markdown] [--persist] [--page "페이지명"]
내부 동작 흐름 (design_system.py의 DesignSystemGenerator.generate()):
Step 1: 제품 분류
search("쿼리", "product", max_results=1)
→ products.csv에서 제품 타입 매칭 (100개 카테고리)
→ 예: "beauty spa wellness" → "Beauty/Spa/Wellness Service"
Step 2: 추론 규칙 적용
_find_reasoning_rule(category)
→ ui-reasoning.csv에서 해당 카테고리의 규칙 조회 (100개 규칙)
→ 매칭 방식: 정확 매칭 → 부분 매칭 → 키워드 매칭
→ 반환값:
{
"pattern": "Hero-Centric + Social Proof",
"style_priority": ["Soft UI Evolution", "Neumorphism"],
"color_mood": "Soft pastels + Gold accents",
"typography_mood": "Elegant + Calming",
"key_effects": "Soft shadows + Smooth transitions (200-300ms)",
"anti_patterns": "Bright neon colors + Harsh animations + Dark mode",
"decision_rules": {"must_have": "booking-system", ...},
"severity": "HIGH"
}
Step 3: 멀티 도메인 검색 (5개 도메인 병렬)
┌─ product: max_results=1 (이미 수행, 재사용)
├─ style: max_results=3 (쿼리 + style_priority 키워드 결합)
├─ color: max_results=2
├─ landing: max_results=2
└─ typography: max_results=2
Step 4: 우선순위 기반 최적 매칭 선택
_select_best_match(style_results, style_priority)
→ 선택 기준 (순서대로):
1순위: Style Category 이름이 style_priority와 정확 매칭
2순위: Style Category 이름에 키워드 포함 (가중치 10)
3순위: Keywords 필드에 키워드 포함 (가중치 3)
4순위: 기타 필드에 키워드 포함 (가중치 1)
폴백: BM25 점수가 가장 높은 첫 번째 결과
Step 5: 최종 추천 조합
→ pattern (랜딩 패턴) + style (UI 스타일) + colors (색상 팔레트)
→ typography (폰트 페어링) + effects + anti_patterns
출력 예시 (ASCII 박스):
+-----------------------------------------------------------------------------------------+
| TARGET: Serenity Spa - RECOMMENDED DESIGN SYSTEM |
+-----------------------------------------------------------------------------------------+
| |
| PATTERN: Hero-Centric + Social Proof |
| Conversion: Use 3-5 testimonials... |
| CTA: Hero (sticky) + Post-testimonials |
| Sections: |
| 1. Hero |
| 2. Services |
| 3. Testimonials |
| 4. CTA |
| |
| STYLE: Soft UI Evolution |
| Keywords: Evolved soft UI, better contrast, modern aesthetics... |
| Performance: ⚡ Excellent | Accessibility: ✓ WCAG AA+ |
| |
| COLORS: |
| Primary: #87CEEB |
| Secondary: #FFB6C1 |
| CTA: #F97316 |
| Background: #F8FAFC |
| Text: #1E293B |
| |
| TYPOGRAPHY: Lora / Raleway |
| Mood: Calming + Readable |
| Google Fonts: https://fonts.google.com/... |
| |
| KEY EFFECTS: |
| Soft shadows + Smooth transitions (200-300ms) + Gentle hover |
| |
| AVOID (Anti-patterns): |
| Bright neon colors + Harsh animations + Dark mode |
| |
| PRE-DELIVERY CHECKLIST: |
| [ ] No emojis as icons (use SVG: Heroicons/Lucide) |
| [ ] cursor-pointer on all clickable elements |
| [ ] Hover states with smooth transitions (150-300ms) |
| ... |
+-----------------------------------------------------------------------------------------+
3.2 모드 B: 도메인 검색 (--domain)
명령 형식:
python3 search.py "<쿼리>" --domain <도메인> [-n <최대결과수>] [--json]
사용 가능한 10개 도메인:
도메인CSV 파일검색 컬럼출력 컬럼 수용도
| style | styles.csv | Style Category, Keywords, Best For, Type, AI Prompt Keywords | 14 | UI 스타일 조회 |
| color | colors.csv | Product Type, Notes | 7 | 색상 팔레트 조회 |
| chart | charts.csv | Data Type, Keywords, Best Chart Type, Accessibility Notes | 8 | 차트 타입 추천 |
| landing | landing.csv | Pattern Name, Keywords, Conversion Optimization, Section Order | 6 | 랜딩 페이지 패턴 |
| product | products.csv | Product Type, Keywords, Primary Style Recommendation, Key Considerations | 7 | 제품 타입별 추천 |
| ux | ux-guidelines.csv | Category, Issue, Description, Platform | 9 | UX 가이드라인 |
| typography | typography.csv | Font Pairing Name, Category, Mood/Style Keywords, Best For, Heading Font, Body Font | 10 | 폰트 페어링 |
| icons | icons.csv | Category, Icon Name, Keywords, Best For | 8 | 아이콘 라이브러리 |
| react | react-performance.csv | Category, Issue, Keywords, Description | 9 | React 성능 가이드 |
| web | web-interface.csv | Category, Issue, Keywords, Description | 9 | 웹 인터페이스 가이드 |
도메인 자동 감지 (--domain 생략 시):
core.py:190-209에서 쿼리 키워드 매칭으로 자동 판별:
domain_keywords = {
"color": ["color", "palette", "hex", "#", "rgb"],
"chart": ["chart", "graph", "visualization", "bar", "pie", "scatter", "heatmap"],
"landing": ["landing", "page", "cta", "conversion", "hero", "testimonial", "pricing"],
"product": ["saas", "ecommerce", "fintech", "healthcare", "gaming", "portfolio", "crypto"],
"style": ["style", "design", "ui", "glassmorphism", "neumorphism", "brutalism", "css"],
"ux": ["ux", "usability", "accessibility", "wcag", "touch", "scroll", "keyboard"],
"typography": ["font", "typography", "heading", "serif", "sans"],
"icons": ["icon", "icons", "lucide", "heroicons", "symbol", "svg icon"],
"react": ["react", "nextjs", "suspense", "memo", "useeffect", "bundle", "server component"],
"web": ["aria", "focus", "semantic", "virtualize", "autocomplete", "form"]
}
로직: 쿼리에 포함된 키워드 수를 세어 가장 많이 매칭되는 도메인 선택. 매칭 0이면 기본값 style.
3.3 모드 C: 스택 검색 (--stack)
명령 형식:
python3 search.py "<쿼리>" --stack <스택명> [-n <최대결과수>] [--json]
사용 가능한 13개 스택:
스택CSV 파일초점
| html-tailwind | stacks/html-tailwind.csv | Tailwind 유틸리티, 반응형, a11y (기본값) |
| react | stacks/react.csv | State, Hooks, 성능 패턴 |
| nextjs | stacks/nextjs.csv | SSR, 라우팅, 이미지, API Routes |
| astro | stacks/astro.csv | Static + Dynamic, Islands |
| vue | stacks/vue.csv | Composition API, Pinia, Vue Router |
| nuxtjs | stacks/nuxtjs.csv | SSR, Middleware |
| nuxt-ui | stacks/nuxt-ui.csv | UI 컴포넌트 |
| svelte | stacks/svelte.csv | Runes, Stores, SvelteKit |
| swiftui | stacks/swiftui.csv | Views, State, Navigation |
| react-native | stacks/react-native.csv | Components, Navigation, Lists |
| flutter | stacks/flutter.csv | Widgets, State, Layout |
| shadcn | stacks/shadcn.csv | shadcn/ui 컴포넌트, theming |
| jetpack-compose | stacks/jetpack-compose.csv | Composables, Modifiers, State |
모든 스택의 공통 컬럼 구조:
- 검색: Category, Guideline, Description, Do, Don't
- 출력: Category, Guideline, Description, Do, Don't, Code Good, Code Bad, Severity, Docs URL
4. BM25 검색 알고리즘 상세
4.1 토큰화 (core.py:109-112)
def tokenize(self, text):
text = re.sub(r'[^\w\s]', ' ', str(text).lower()) # 소문자 + 구두점 제거
return [w for w in text.split() if len(w) > 2] # 3자 이상만
예시:
입력: "Glassmorphism + Flat Design (UI/UX)"
토큰: ["glassmorphism", "flat", "design"]
4.2 인덱싱 (core.py:114-131)
def fit(self, documents):
self.corpus = [self.tokenize(doc) for doc in documents]
self.N = len(self.corpus) # 문서 수
self.doc_lengths = [len(doc) for doc in self.corpus] # 각 문서 길이
self.avgdl = sum(self.doc_lengths) / self.N # 평균 문서 길이
# 문서 빈도 (DF) 계산: 각 단어가 몇 개의 문서에 나타나는지
for doc in self.corpus:
seen = set()
for word in doc:
if word not in seen:
self.doc_freqs[word] += 1
seen.add(word)
# IDF 계산: 희귀한 단어일수록 높은 값
for word, freq in self.doc_freqs.items():
self.idf[word] = log((N - freq + 0.5) / (freq + 0.5) + 1)
4.3 점수화 (core.py:133-155)
def score(self, query):
query_tokens = self.tokenize(query)
scores = []
for idx, doc in enumerate(self.corpus):
score = 0
doc_len = self.doc_lengths[idx]
# 문서 내 각 단어의 출현 빈도 (TF)
term_freqs = defaultdict(int)
for word in doc:
term_freqs[word] += 1
for token in query_tokens:
if token in self.idf:
tf = term_freqs[token]
idf = self.idf[token]
# BM25 공식
numerator = tf * (k1 + 1) # = tf * 2.5
denominator = tf + k1 * (1 - b + b * doc_len / avgdl) # 문서 길이 보정
score += idf * numerator / denominator
scores.append((idx, score))
return sorted(scores, key=lambda x: x[1], reverse=True) # 높은 점수순
BM25 공식 해석:
Score(q, d) = Σ IDF(t) × [tf(t,d) × (k1 + 1)] / [tf(t,d) + k1 × (1 - b + b × |d|/avgdl)]
파라미터:
k1 = 1.5 → 용어 빈도(TF) 포화 조절 (높을수록 TF 영향 증가)
b = 0.75 → 문서 길이 정규화 (0이면 길이 무시, 1이면 완전 정규화)
의미:
- IDF: "glassmorphism"처럼 소수 문서에만 있는 단어 → 높은 가중치
- TF 정규화: 같은 단어가 반복되어도 점수 증가폭 감소 (포화)
- 문서 길이 보정: 긴 문서가 불리하지 않도록 보정
4.4 검색 파이프라인 (core.py:165-187)
def _search_csv(filepath, search_cols, output_cols, query, max_results):
data = _load_csv(filepath) # CSV → list[dict]
# 검색 컬럼들을 하나의 문서로 결합
documents = [
" ".join(str(row.get(col, "")) for col in search_cols)
for row in data
]
# 예: styles.csv의 Glassmorphism 행
# → "Glassmorphism General Frosted glass transparent blurred... Modern SaaS..."
bm25 = BM25()
bm25.fit(documents) # 인덱싱
ranked = bm25.score(query) # 점수화
# 상위 N개 중 score > 0인 것만 반환
results = []
for idx, score in ranked[:max_results]:
if score > 0:
row = data[idx]
results.append({col: row.get(col, "") for col in output_cols if col in row})
return results
핵심 설계:
- 검색은 search_cols에서만 (4-6개 핵심 컬럼)
- 결과는 output_cols 전체 (7-22개 상세 컬럼)
- score > 0 필터: 관련 없는 결과는 제외
- 기본 max_results = 3: 토큰 최적화
5. 디자인 시스템 추론 엔진 상세
5.1 추론 규칙 데이터 (ui-reasoning.csv)
100개 제품 카테고리 × 9개 속성:
속성설명예시 (SaaS General)
| UI_Category | 제품 카테고리 | SaaS (General) |
| Recommended_Pattern | 랜딩 패턴 | Hero + Features + CTA |
| Style_Priority | 우선 스타일 (+ 구분) | Glassmorphism + Flat Design |
| Color_Mood | 색상 분위기 | Trust blue + Accent contrast |
| Typography_Mood | 타이포그래피 분위기 | Professional + Hierarchy |
| Key_Effects | 핵심 효과 | Subtle hover (200-250ms) |
| Decision_Rules | 조건부 규칙 (JSON) | {"if_ux_focused": "prioritize-minimalism"} |
| Anti_Patterns | 금지 패턴 | Excessive animation + Dark mode by default |
| Severity | 중요도 | HIGH |
5.2 추론 규칙 매칭 순서 (design_system.py:64-86)
1순위: 정확 매칭 → "SaaS (General)" == "saas (general)"
2순위: 부분 매칭 → "SaaS" in "saas dashboard" 또는 "saas dashboard" in "SaaS"
3순위: 키워드 매칭 → "SaaS".split() → ["saas"] → "saas" in "saas dashboard"
폴백: 기본 규칙 → Minimalism + Flat Design + "Professional"
5.3 스타일 우선순위 매칭 (design_system.py:122-157)
_select_best_match() 함수가 BM25 결과에서 추론 규칙의 style_priority에 가장 부합하는 스타일을 선택:
style_priority = ["Glassmorphism", "Flat Design"]
BM25 결과 = [Minimalism(score=5.2), Glassmorphism(score=4.8), Aurora UI(score=3.1)]
매칭 과정:
1단계: "Glassmorphism" → Style Category에 정확 매칭? → Glassmorphism 발견 → 즉시 반환
(1단계 실패 시)
2단계: 가중 점수 계산
Minimalism: Style Category에 "glassmorphism"? NO(0) + Keywords에? NO(0) = 0
Glassmorphism: Style Category에 "glassmorphism"? YES(10) = 10
Aurora UI: Style Category에 "glassmorphism"? NO(0) = 0
→ 최고 점수: Glassmorphism (10점)
(2단계도 모두 0점이면)
3단계: BM25 점수 1위 반환 → Minimalism
6. 지속성 시스템 (Master + Overrides)
6.1 파일 구조
python3 search.py "SaaS dashboard" --design-system --persist -p "MyApp" --page "dashboard"
생성 결과:
design-system/
└── myapp/
├── MASTER.md ← 전역 디자인 규칙 (Source of Truth)
│ ├── Global Rules
│ │ ├── Color Palette (Hex + CSS Variables)
│ │ ├── Typography (Heading/Body + Google Fonts)
│ │ ├── Spacing Variables (xs~3xl)
│ │ └── Shadow Depths (sm~xl)
│ ├── Component Specs
│ │ ├── Buttons (Primary/Secondary CSS)
│ │ ├── Cards (CSS)
│ │ ├── Inputs (CSS)
│ │ └── Modals (CSS)
│ ├── Style Guidelines
│ ├── Anti-Patterns (금지 목록)
│ └── Pre-Delivery Checklist
└── pages/
└── dashboard.md ← 페이지별 오버라이드
├── Layout Overrides
├── Spacing Overrides
├── Typography Overrides
├── Color Overrides
├── Component Overrides
├── Page-Specific Components
└── Recommendations
6.2 계층적 검색 로직
페이지 빌드 시:
1. design-system/myapp/pages/dashboard.md 존재 여부 확인
2. 존재하면 → 페이지 오버라이드 우선 적용 (MASTER.md 규칙 상속)
3. 미존재 → MASTER.md 규칙만 사용
6.3 페이지 오버라이드 생성 (design_system.py:914-1017)
_generate_intelligent_overrides() 함수가 페이지 이름과 쿼리를 기반으로 3개 도메인 검색 수행:
style_search = search(page_context, "style", max_results=1) # 페이지별 스타일
ux_search = search(page_context, "ux", max_results=3) # UX 가이드라인
landing_search = search(page_context, "landing", max_results=1) # 레이아웃 패턴
페이지 타입 자동 감지 (_detect_page_type):
page_patterns = [
(["dashboard", "admin", "analytics", ...], "Dashboard / Data View"),
(["checkout", "payment", "cart", ...], "Checkout / Payment"),
(["settings", "profile", "account", ...], "Settings / Profile"),
(["landing", "marketing", "hero", ...], "Landing / Marketing"),
(["login", "signin", "signup", ...], "Authentication"),
# ... 10개 패턴
]
7. 데이터 계층 구조
7.1 CSV 데이터베이스 규모
파일행 수용도
| ui-reasoning.csv | 100 | 제품별 추론 규칙 (핵심) |
| products.csv | 96 | 제품 타입 분류 |
| styles.csv | 67 | UI 스타일 정의 (19 General + 랜딩 + BI) |
| colors.csv | 96 | 색상 팔레트 |
| typography.csv | 57 | 폰트 페어링 |
| landing.csv | 30 | 랜딩 패턴 |
| charts.csv | 25 | 차트 타입 |
| ux-guidelines.csv | 99 | UX 가이드라인 |
| icons.csv | 100 | 아이콘 라이브러리 |
| react-performance.csv | 44 | React 최적화 |
| web-interface.csv | 30 | 웹 인터페이스 |
| stacks/*.csv (13개) | ~750 | 프레임워크별 가이드 |
| 합계 | ~1,400+ |
7.2 styles.csv 구조 (핵심 데이터)
67개 스타일 = 19 General + 9 Landing Page + 나머지 BI/Analytics 등
각 스타일의 22개 컬럼:
컬럼설명예시 (Glassmorphism)
| Style Category | 스타일 이름 | Glassmorphism |
| Type | 분류 (General/Landing/BI) | General |
| Keywords | 검색 키워드 | Frosted glass, transparent, blurred... |
| Primary Colors | 주색상 | rgba(255,255,255,0.1-0.3) |
| Secondary Colors | 보조색상 | Electric Blue #0080FF, Neon Purple... |
| Effects & Animation | 효과 | Backdrop blur (10-20px)... |
| Best For | 적합 분야 | Modern SaaS, financial dashboards... |
| Do Not Use For | 부적합 분야 | Low-contrast backgrounds... |
| Performance | 성능 등급 | ⚠ Good |
| Accessibility | 접근성 | ⚠ Ensure 4.5:1 |
| AI Prompt Keywords | AI 프롬프트 | Design a glassmorphic interface... |
| CSS/Technical Keywords | CSS 코드 | backdrop-filter: blur(15px)... |
| Implementation Checklist | 구현 체크리스트 | ☐ Backdrop-filter blur 10-20px... |
| Design System Variables | CSS 변수 | --blur-amount: 15px... |
7.3 ui-reasoning.csv와 다른 CSV의 관계
사용자 쿼리: "beauty spa wellness"
│
▼
products.csv → "Beauty/Spa/Wellness Service" (카테고리 확정)
│
▼
ui-reasoning.csv → 해당 카테고리의 추론 규칙 조회
│ style_priority: "Soft UI Evolution + Neumorphism"
│ color_mood: "Soft pastels + Gold accents"
│ typography_mood: "Elegant + Calming"
│
├─→ styles.csv → style_priority로 필터된 스타일 조회
├─→ colors.csv → color_mood 기반 팔레트 조회
├─→ typography.csv → typography_mood 기반 폰트 조회
└─→ landing.csv → recommended_pattern 기반 패턴 조회
8. 출력 형식
8.1 도메인/스택 검색 출력 (search.py:30-53)
## UI Pro Max Search Results
**Domain:** style | **Query:** glassmorphism dark
**Source:** styles.csv | **Found:** 3 results
### Result 1
- **Style Category:** Glassmorphism
- **Keywords:** Frosted glass, transparent, blurred background...
- **Performance:** ⚠ Good
- **CSS/Technical Keywords:** backdrop-filter: blur(15px)...
300자 초과 값은 잘림 (토큰 최적화):
if len(value_str) > 300:
value_str = value_str[:300] + "..."
8.2 디자인 시스템 출력 (2가지)
형식플래그용도
| ASCII 박스 | -f ascii (기본) | 터미널 표시 |
| Markdown | -f markdown | 문서화 |
8.3 JSON 출력
python3 search.py "glassmorphism" --domain style --json
출력:
{
"domain": "style",
"query": "glassmorphism",
"file": "styles.csv",
"count": 3,
"results": [
{
"Style Category": "Glassmorphism",
"Keywords": "Frosted glass...",
...
}
]
}
9. 실제 사용 시나리오
시나리오 1: "SaaS 대시보드 랜딩 페이지 만들어줘"
AI의 실행 순서:
# Step 2 (필수): 디자인 시스템 생성
python3 search.py "SaaS dashboard landing page" --design-system -p "MyProject"
# Step 3 (보충): UX 가이드라인 확인
python3 search.py "animation accessibility z-index" --domain ux
# Step 3 (보충): 추가 차트 타입 확인
python3 search.py "real-time dashboard data" --domain chart
# Step 4: React 스택 가이드
python3 search.py "state performance hooks" --stack react
시나리오 2: "뷰티 스파 웹사이트를 Tailwind로"
# Step 2 (필수): 디자인 시스템 생성
python3 search.py "beauty spa wellness service elegant" --design-system -p "Serenity Spa"
# Step 3 (보충): 럭셔리 폰트 검색
python3 search.py "elegant luxury serif" --domain typography
# Step 4: Tailwind 가이드
python3 search.py "layout responsive form" --stack html-tailwind
시나리오 3: 디자인 시스템 저장 + 페이지별 오버라이드
# 프로젝트 전체 디자인 시스템 저장
python3 search.py "SaaS dashboard" --design-system --persist -p "MyApp"
# 대시보드 페이지 오버라이드 추가
python3 search.py "SaaS dashboard analytics" --design-system --persist -p "MyApp" --page "dashboard"
# 설정 페이지 오버라이드 추가
python3 search.py "SaaS settings profile" --design-system --persist -p "MyApp" --page "settings"
10. 기술적 특징 요약
특징상세
| 검색 알고리즘 | BM25 (k1=1.5, b=0.75) — 표준 정보 검색 파라미터 |
| 외부 의존성 | 없음 (Python 표준 라이브러리만 사용) |
| 토큰화 | 소문자 + 구두점 제거 + 3자 미만 필터 |
| 기본 결과 수 | 3개 (max_results) |
| 도메인 자동 감지 | 쿼리 키워드 빈도 기반 (10개 도메인) |
| 추론 엔진 | 100개 카테고리 × 9개 속성 규칙 |
| 우선순위 매칭 | 정확 매칭 → 키워드 가중 → BM25 점수 |
| 출력 형식 | ASCII 박스, Markdown, JSON |
| 지속성 | Master + Overrides 계층 패턴 |
| 인코딩 | UTF-8 강제 (Windows 이모지 호환) |
'AI' 카테고리의 다른 글
| Remotion 완전 가이드: React로 비디오를 만드는 모든 것 (0) | 2026.01.22 |
|---|---|
| Ollama에서 무료로 이미지를 생성해보자 (0) | 2026.01.17 |
| AI로 프로급 디자인 뽑는 법: 7단계 계층적 프롬프트 설계 (0) | 2026.01.09 |
| 켄트백의 TDD claude.md 지침서 (0) | 2025.12.30 |
| 2026년을 향한 추천 LLM 코딩 워크플로우 (0) | 2025.12.23 |
