블로그로 돌아가기AI & Development Tools![[EP4] MoAI-ADK 핵심 기술 Deep Dive - alfred, Ralph Engine, 스킬 시스템](/_next/image?url=%2Fimages%2Fposts%2F2026%2F01%2Fmoai-adk-core-technology-ep4%2Fcard.png&w=3840&q=75)
[EP4] MoAI-ADK 핵심 기술 Deep Dive - alfred, Ralph Engine, 스킬 시스템
11.23분
MoAI-ADKalfredRalph EngineAnti-HallucinationLSPAST-grepSPEC-First TDD스킬 시스템
MoAI-ADK의 세 가지 핵심 기술인 /moai:alfred 원클릭 자동화, Ralph Engine 품질 엔진, Anti-Hallucination 스킬 시스템을 아키텍처 관점에서 심층 분석한다.
![[EP4] MoAI-ADK 핵심 기술 Deep Dive - alfred, Ralph Engine, 스킬 시스템](/_next/image?url=%2Fimages%2Fposts%2F2026%2F01%2Fmoai-adk-core-technology-ep4%2Fcard.png&w=3840&q=75)
SeriesEP 4 / 5
아키텍처 개요
MoAI-ADK는 세 가지 핵심 기술 계층으로 구성된다. 각 계층은 독립적으로 동작하면서도 유기적으로 연결되어 전체 개발 라이프사이클을 자동화한다.
Loading diagram...
1. /moai:alfred - 원클릭 개발 자동화
1.1 설계 철학
alfred 명령은 MoAI-ADK의 철학을 단일 명령으로 구현한다: "하나의 명령으로 요구사항부터 PR까지".
759줄의 명령 정의는 다음 원칙에 기반한다:
- Intelligent Routing: 요청 복잡도에 따른 최적 경로 선택
- Quality Gates: 각 Phase 전환 시 품질 검증
- Resumable State: 중단된 워크플로우 재개 지원
- Multi-LLM: 작업 특성에 따른 모델 선택
1.2 워크플로우 아키텍처
Loading diagram...
1.3 Intelligent Routing 구현
alfred는 요청을 분석하여 최적의 실행 경로를 결정한다:
Plain Text
Domain Detection:├── Backend Keywords: API, 서버, 인증, 데이터베이스, REST, GraphQL├── Frontend Keywords: UI, 컴포넌트, React, Vue, Next.js, CSS├── Security Keywords: 보안, 취약점, OWASP, 인증, 권한├── DevOps Keywords: CI/CD, Docker, Kubernetes, 배포└── Database Keywords: SQL, 스키마, 쿼리, 인덱스Routing Logic:├── 단일 도메인 감지 → Expert Agent 직접 위임└── 복수 도메인 감지 → Full SPEC 워크플로우 (Plan → Run → Sync)
1.4 Multi-LLM Mode
alfred는 세 가지 LLM 모드를 지원한다:
| 모드 | Phase 1 (Plan) | Phase 2-3 (Run/Sync) | 사용 시나리오 |
|---|---|---|---|
| opus-only | Claude Opus | Claude Opus | 고품질 요구, 단일 터미널 |
| hybrid | Claude Opus | GLM (worktree) | 비용 최적화, 병렬 작업 |
| glm-only | GLM | GLM | 비용 최소화 |
1.5 상태 관리 및 재개
워크플로우 상태는
.moai/cache/alfred-{spec-id}.json에 저장된다:JSON
{"spec_id": "SPEC-AUTH-001","current_phase": 2,"last_checkpoint": "2026-01-10T14:30:00Z","phase_results": {"1": { "status": "completed", "spec_file": "specs/SPEC-AUTH-001.md" },"2": { "status": "in_progress", "coverage": 0.72 }},"git_state": {"branch": "feat/auth-001","commits": ["abc123", "def456"]}}
중단된 워크플로우는 다음 명령으로 재개한다:
Bash
/moai:alfred resume SPEC-AUTH-001
2. Ralph Engine - 자율 품질 보증 시스템
2.1 아키텍처 개요
Ralph Engine은 세 가지 기술을 통합한 품질 보증 시스템이다:
Loading diagram...
2.2 LSP Client (394줄)
LSP(Language Server Protocol) Client는 JSON-RPC 2.0 프로토콜을 구현한다:
Plain Text
LSP Client 기능:├── 실시간 타입 오류 감지├── 구문 오류 감지├── 경고 수집├── 다중 언어 서버 관리└── 진단 결과 스트리밍
지원 언어 서버:
- TypeScript:
typescript-language-server - Python:
pylsp,pyright - Go:
gopls - Rust:
rust-analyzer
2.3 AST-grep 통합
AST-grep은 정규식이 아닌 구조적 패턴 매칭을 수행한다:
Plain Text
AST-grep 기능:├── 보안 취약점 탐지│ ├── SQL Injection 패턴│ ├── XSS 취약점│ └── 하드코딩된 시크릿├── 코드 스멜 식별│ ├── 사용되지 않는 변수│ ├── 복잡도 초과 함수│ └── 중복 코드└── 자동 리팩토링├── API 마이그레이션└── 패턴 변환
2.4 Loop Controller (~400줄)
Loop Controller는 자율적인 fix-verify-fix 사이클을 관리한다:
Plain Text
Loop Controller 동작:├── Promise 기반 완료 조건│ └── 모든 오류 해결 OR 최대 반복 도달├── 설정 가능한 최대 반복 횟수 (기본: 3)├── 상태 지속 및 재개 지원└── 자율 수정 사이클├── 오류 분석├── 수정 시도├── 재검증└── 다음 반복 또는 완료
2.5 핵심 메서드: diagnose_file()
diagnose_file()은 LSP 진단과 AST-grep 매치를 통합된 DiagnosisResult로 반환한다:Python
class DiagnosisResult:file_path: strlsp_diagnostics: List[Diagnostic]ast_matches: List[AstMatch]severity_summary: Dict[str, int]auto_fixable: List[FixSuggestion]
3. Anti-Hallucination 전략: 스킬 시스템
3.1 설계 원칙
LLM의 환각(Hallucination)을 방지하기 위해 MoAI-ADK는 검증된 지식 기반 접근을 취한다:
Plain Text
Anti-Hallucination 원칙:├── 검증된 패턴만 사용│ └── 각 스킬은 실제 동작하는 코드 패턴 포함├── 버전 명시│ └── 라이브러리/프레임워크 버전 명시├── 출처 추적│ └── 모든 패턴에 출처 정보 포함└── 자동 갱신└── Context7 MCP를 통한 최신 문서 참조
3.2 스킬 분류 체계
90개 이상의 도메인 스킬이 4개 카테고리로 분류된다:
| 카테고리 | 수량 | 예시 | 역할 |
|---|---|---|---|
| Foundation | 4개 | moai-foundation-core, moai-foundation-claude | 핵심 규칙 강제 |
| Language | 16개 | Python, TypeScript, Go, Rust, Java... | 언어별 베스트 프랙티스 |
| Platform | 9개 | Auth0, Firebase, Supabase, Vercel... | 플랫폼별 API 패턴 |
| Domain | 10+개 | Frontend, Backend, Database... | 도메인별 아키텍처 |
3.3 스킬 로딩 시스템 (580줄)
스킬 로딩 시스템은 다음 기능을 제공한다:
Loading diagram...
핵심 기능:
- LRU 캐시 + TTL: 성능 최적화를 위한 메모리 캐싱
- 의존성 관리: 관련 스킬 자동 로드 (예: React 스킬 로드 시 Frontend 기본 스킬 자동 포함)
- Effort 기반 필터링: 1(기본)부터 5(포괄적)까지 상세도 조절
- 자동 감지: 사용자 프롬프트에서 관련 스킬 키워드 탐지
3.4 스킬 구조 예시
스킬 파일은 YAML frontmatter와 마크다운 콘텐츠로 구성된다:
Frontmatter 구조:
YAML
name: moai-lang-typescriptversion: 5.9category: languageeffort: 3dependencies:- moai-domain-frontendtriggers:- typescript- tsx- type-safe
스킬 콘텐츠 예시 - TypeScript 5.9 Best Practices:
TypeScript
// ✅ Recommended: Type inference with const assertionconst config = {apiUrl: 'https://api.example.com',timeout: 5000,} as const;// ❌ Avoid: Explicit anyconst data: any = fetchData();
Zod Validation 패턴:
TypeScript
import { z } from 'zod';const UserSchema = z.object({id: z.string().uuid(),email: z.string().email(),role: z.enum(['admin', 'user']),});type User = z.infer<typeof UserSchema>;
3.5 Context7 MCP 통합
스킬 시스템은 Context7 MCP와 연동하여 최신 문서를 참조한다:
Plain Text
Context7 통합:├── resolve-library-id: 라이브러리 식별자 해석└── get-library-docs: 최신 문서 가져오기사용 시나리오:├── 스킬에 없는 최신 API 참조├── 버전 업데이트 확인└── 실시간 문서 검증
4. 통합 아키텍처
세 계층이 어떻게 통합되어 동작하는지 살펴본다:
Loading diagram...
5. 성능 메트릭
MoAI-ADK 핵심 기술의 정량적 지표:
| 지표 | 값 | 설명 |
|---|---|---|
| /moai:alfred 코드 | 759줄 | 플래그십 명령 정의 |
| Ralph Engine 코어 | 308줄 | 품질 보증 엔진 |
| LSP Client | 394줄 | 언어 서버 통신 |
| Loop Controller | ~400줄 | 자율 수정 사이클 |
| Skill Loading System | 580줄 | 스킬 관리 |
| Claude Integration | 394줄 | 헤드리스 자동화 |
| 도메인 스킬 | 90+ | 검증된 지식 기반 |
| 지원 언어 | 16개 | 프로그래밍 언어 |
| 테스트 커버리지 목표 | 85% | TRUST 5 기준 |
| CLI 시작 시간 감소 | 75% | 400ms → 100ms |
다음 에피소드 예고
다음 에피소드 EP.5: 2026년 AI 코딩의 미래에서는 시리즈를 마무리하며 다음 내용을 다룬다:
- 종합 비교표: 4가지 도구 × 12개 항목 비교
- 시나리오별 권장: 상황에 맞는 최적 도구 선택 가이드
- v0.5.0 로드맵: MoAI-ADK의 미래 방향
- 결론: AI 코딩 도구 선택의 핵심 기준