아키텍처 개요
설계 철학
Q-Framework의 아키텍처는 세 가지 핵심 원칙을 기반으로 합니다.
1. 선언이 구현을 주도한다
개발자는 무엇을 원하는지 선언하고, 프레임워크가 어떻게 처리할지 결정합니다.
선언 (What) → 구현 (How)
@QfCrypto → AES-256 암호화 자동 적용
@QfOrganizationScope → 조직 필터링 쿼리 자동 생성
@QfCreateAttribute(requiredOn = @QfRequiredOn(always = true)) → 서버/클라이언트 검증 자동 적용2. 컴파일 시점이 런타임보다 우선한다
런타임 장애보다 빌드 실패가 훨씬 낫습니다.
잘못된 선언
↓
컴파일 오류 발생 → 빌드 거부 → 배포 불가
↓
런타임 장애 방지3. 계약은 사람과 AI 모두에게 강제된다
AI가 코드를 생성해도 동일한 품질 게이트를 통과해야 합니다.
Human-AI-System 계약 모델
┌──────────────────────────────────────────────────────────┐
│ Human (개발자) │
│ "@QfCrypto를 이메일 필드에 추가해줘" │
└─────────────────────┬────────────────────────────────────┘
│ 의도 선언
▼
┌──────────────────────────────────────────────────────────┐
│ AI (어시스턴트) │
│ @QfCrypto │
│ @QfDisplayLabel(text = "Email") │
│ private String email; │
└─────────────────────┬────────────────────────────────────┘
│ 코드 생성
▼
┌──────────────────────────────────────────────────────────┐
│ System (Q-Framework) │
│ 컴파일 시점: @QfCrypto 규칙 검증 통과 │
│ 런타임: 암호화 자동 적용 강제 │
└──────────────────────────────────────────────────────────┘Human은 비즈니스 의도를 선언합니다. AI는 선언을 코드로 구현합니다. System은 계약을 강제합니다.
이 세 주체 모두에게 동일한 계약이 적용됩니다.
온톨로지와의 비교
Q-Framework의 접근 방식은 온톨로지(Ontology)와 유사한 면이 있습니다.
| 항목 | 온톨로지 | Q-Framework |
|---|---|---|
| 지식 표현 | OWL, RDF | 어노테이션 |
| 추론 | 런타임 추론 엔진 | 컴파일 시점 처리 |
| 강제 방식 | 추론 기반 | 컴파일 거부 |
| 대상 | 지식 그래프 | 소프트웨어 도메인 |
| 언어 의존성 | 없음 | Java (현재), 언어 독립 목표 |
| 학습 비용 | 높음 | 낮음 (어노테이션 선언) |
Q-Framework의 차별점: 소프트웨어 개발에 최적화된 가벼운 메타데이터 시스템으로, 컴파일 시점 강제와 런타임 자동화에 집중합니다.
언어 독립성
현재 Java 구현은 Q-Framework 아이디어의 첫 번째 검증입니다.
언어 독립적 핵심 패턴
│
├── Java 구현 (현재)
│ 어노테이션 + APT(JSR-269)
│
├── TypeScript 구현 (계획)
│ 데코레이터 + tsc 플러그인
│
└── Python 구현 (계획)
데코레이터 + mypy 플러그인어떤 언어로 구현하든, 다음 패턴이 핵심입니다:
- 선언적 메타데이터 — 의미와 계약을 코드에 선언
- 컴파일 시점 검증 — 잘못된 선언을 빌드에서 차단
- 런타임 자동화 — 선언에서 파생된 동작을 자동 처리