c24165b8bc
에이전트 8종(대화형/프로그래머 C·S/디자이너/설계자/기획자/QA/PD/PM)에게 [공통 기본 능력 + 롤별 Specialty] 2층으로 지식을 주입하기 위한 재분류. 문서 내용·포맷은 무수정, 폴더 이동만 (6,372개 문서 수 보존 확인). - Topic_Programming → Domain_Programming (내부 구조 보존) - Topic_Graphic → Domain_Design - Topic_Business → Domain_Product - Topic_General → Domain_General - _Common 신설: Math(구 Topic_Math_Specialty), Reasoning(구 General/From_Thinking & Reasoning), Reasoning_Creativity(구 General/From_창의성), Communication(Poetic_Blog_Writing + From_writing) - 타 도메인의 From_* 폴더는 유지 (출처 표기일 뿐, 이미 도메인에 맞게 분류된 문서) - 빈 폴더 정리 (memory/procedures) - 에이전트→폴더 매핑은 workspace의 .astra/agent-knowledge-map.json (9개 에이전트) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
4.8 KiB
4.8 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | verification_status | tags | raw_sources | last_reinforced | github_commit | tech_stack | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wiki-2026-0508-hermes | Hermes | 10_Wiki/Topics | verified | self |
|
none | A | 0.9 | applied |
|
2026-05-10 | pending |
|
Hermes
매 한 줄
"매 mobile 에 매 최적화된 매 ahead-of-time bytecode 매 JS engine.". Meta 가 매 React Native 용으로 매 만든 engine. 매 startup time + 매 memory + 매 binary size 가 매 우선. 매 2026 의 매 RN 0.70+ 부터 매 default — 매 JSC 대비 매 cold start 30-50% 단축.
매 핵심
매 설계 목표
- Fast startup: 매 AOT bytecode → 매 parse 비용 0.
- Low memory: 매 generational GC, 매 NaN-boxing 없는 매 Hades collector (concurrent).
- Small binary: 매 SymbolTable / StringTable 의 매 dedupe.
- Mobile first: 매 ARM64 + 매 small heap 의 매 가정.
매 Architecture
- Compiler: hbc (Hermes ByteCode) — 매 build 시 매 .hbc 파일 생성.
- VM: register-based interpreter — 매 stack-based JSC 와 매 다름.
- GC: Hades — 매 concurrent + generational.
- No JIT (default): 매 mobile binary 정책 (iOS) + 매 startup 우선. 매 static Hermes (sh) 가 매 AOT native compile 실험.
매 vs JSC vs V8
| 항목 | Hermes | JSC | V8 |
|---|---|---|---|
| Startup | 매 빠름 (AOT) | 매 보통 | 매 느림 (parse + JIT) |
| Throughput | 매 낮음 (no JIT) | 매 보통 | 매 매우 높음 |
| Memory | 매 낮음 | 매 보통 | 매 높음 |
| 사용처 | RN | iOS Safari, RN (legacy) | Chrome, Node |
매 응용
- RN app cold start 단축.
- Bundle size 절감 (.hbc 가 .js 보다 작음).
- 매 Hermes-specific debugger (Chrome DevTools 호환).
💻 패턴
Enable in RN (already default in 0.70+)
// android/app/build.gradle
project.ext.react = [
enableHermes: true,
hermesCommand: "../../node_modules/react-native/sdks/hermes/destroot/bin/hermesc",
]
// ios/Podfile
use_react_native!(
:path => config[:reactNativePath],
:hermes_enabled => true,
)
Verify Hermes is running
const isHermes = () => !!global.HermesInternal;
console.log('engine:', isHermes() ? 'Hermes' : 'JSC');
Compile JS to bytecode (CLI)
hermesc -emit-binary -out=index.hbc index.js
# Inspect
hermes -dump-bytecode index.hbc
Profile Hermes startup
# Sample profiler
hermes --sample-profiling -O index.js
# → output trace.json (Chrome DevTools profile format)
Memory leak detection (Hermes-specific)
// Heap snapshot
import { HermesInternal } from 'react-native';
const snap = HermesInternal?.getInstrumentedStats?.();
console.log(snap); // js_heapSize, js_allocatedBytes, ...
Avoid Hermes pitfalls
// 1. eval / new Function — supported but slow (no JIT)
// 2. Proxy — supported in 2026 but heavier than V8
// 3. Intl — opt-in (intl=true in build flag), default 작음
// Prefer static patterns
const handler = handlers[type]; // O(1) lookup
// over
const handler = eval(`handle_${type}`);
Static Hermes (experimental 2026)
# AOT to native — bypass interpreter
shermes -typed -exec index.ts
# Significant throughput gain when types annotated
Source map for Hermes bundle
react-native bundle \
--platform android \
--dev false \
--entry-file index.js \
--bundle-output index.android.bundle \
--sourcemap-output index.android.bundle.map \
--minify true
# Hermes ingests .map for symbolicated stack traces
매 결정 기준
| 상황 | Engine |
|---|---|
| 매 RN app | Hermes (default) |
| 매 cold start critical | Hermes |
| 매 heavy compute | JSC + worker / native module |
| 매 typed perf-critical RN | Static Hermes (experimental) |
| 매 web | V8 / JSC (browser native) |
기본값: Hermes ON. 매 RN 0.70+ 자동.
🔗 Graph
- 부모: React Native
- 변형: V8 · JavaScriptCore
- Adjacent: Bytecode · GC
🤖 LLM 활용
언제: 매 RN startup 분석, 매 bundle size 최적화, 매 JS engine trade-off. 언제 X: 매 web — 매 browser engine 직접 제어 X.
❌ 안티패턴
- eval 의존: 매 JIT 없음 — 매 매우 느림.
- Bundle 비분할: 매 .hbc 1개 거대 — 매 RAM bundle / inline-requires 활용.
- JSC 가정 코드: 매 Symbol toPrimitive 등 매 corner case.
- Hermes 끄고 RN: 매 거의 매 lose-lose (2026 기준).
🧪 검증 / 중복
- Verified (hermesengine.dev, RN 0.74+ release notes).
- 신뢰도 A.
🕓 Changelog
| 날짜 | 변경 |
|---|---|
| 2026-05-08 | Phase 1 |
| 2026-05-10 | Manual cleanup — 매 Hermes architecture + RN integration |