Files
2nd/10_Wiki/Topic_Programming/Engineering_Intelligence/엔지니어링_트레이드오프_분석.md
T
Antigravity Agent e2c5471046 wiki: Topic_Blog 신규 문서 일괄 추가 + ASTRA 성장 자산 동기화
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:55:38 +09:00

6.1 KiB

id, title, category, status, verification_status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, created_at, updated_at, review_reason, merge_history, tags, raw_sources, applied_in, github_commit
id title category status verification_status canonical_id aliases duplicate_of source_trust_level confidence_score created_at updated_at review_reason merge_history tags raw_sources applied_in github_commit
engineering-tradeoff-analysis 엔지니어링 트레이드오프 분석 Software_Engineering draft applied
tradeoff analysis
트레이드오프
무엇을 최적화 무엇을 희생
설계 절충
언제 실패하나
A 0.9 2026-06-13 2026-06-13
tradeoff
engineering
decision
architecture
astraai
AstraAI 전체 서브시스템 분석
AstraAI/src/core/*
AstraAI/src/retrieval/*
AstraAI/src/intelligence/*
AstraAI

엔지니어링 트레이드오프 분석

🎯 한 줄 통찰 (One-line insight)

모든 설계는 "무언가를 최적화하기 위해 무언가를 희생"한 결과다 — AstraAI 의 각 서브시스템이 무엇을 얻고 무엇을 포기했으며, 언제 그 선택이 깨지는지 를 명시하면, 작은 모델이 맥락에 맞는 설계를 고를 수 있다.

🧠 핵심 개념 (Core concepts)

  • 트레이드오프 분석 = (최적화한 것 / 희생한 것 / 더 단순한 대안 / 더 확장적인 대안 / 이 설계가 실패하는 조건 / 다른 설계가 나은 조건).
  • 정답은 맥락 의존 — 같은 결정도 환경이 바뀌면 오답이 된다.

📖 세부 내용 (Details · 서브시스템별 트레이드오프)

1. 이벤트 소싱 JSONL 저장 (이벤트 소싱 스토어 패턴)

  • 최적화: 이력 보존, 내결함, 코드 중복 제거, 무의존.
  • 희생: 저장 공간(단조 증가), 상태 재생 비용, 복잡 쿼리.
  • 더 단순한 대안: 상태 JSON 1개 덮어쓰기(이력 불필요 시).
  • 더 확장적인 대안: SQLite/이벤트 스토어 DB + 스냅샷 compaction.
  • 실패 조건: 이벤트가 수만 건↑, 멀티프로세스 동시 쓰기, 복잡 조인 필요.
  • 다른 설계가 나을 때: 마지막 값만 중요하거나, 분석 쿼리가 핵심일 때.

2. 5계층 메모리 (5계층 메모리 시스템)

  • 최적화: 컨텍스트 정밀 선별, 계층별 정책(만료/승급).
  • 희생: 분류 결정 비용, 매니저 복잡도, 다중 저장 파일.
  • 더 단순한 대안: 최근 N 메시지 버퍼 + 단일 노트 저장.
  • 더 확장적인 대안: 계층별 임베딩 + 벡터 DB 메타 필터.
  • 실패 조건: 분류 규칙이 모호해 "어디 저장?" 이 매번 논쟁, 관련도 휴리스틱 오선별.
  • 다른 설계가 나을 때: 단발성 도구(기억 불필요), 또는 순수 의미검색이 전부일 때.

3. 멀티에이전트(단일 작성자/순차) (Agent 오케스트레이터 분해)

  • 최적화: 자원 안전(한 모델 상주), 본문 보존, 컨텍스트 절약.
  • 희생: 처리량/속도(순차), 단일 모델 품질 의존, 병렬 다양성.
  • 더 단순한 대안: 단일 프롬프트 1회 호출(짧은 작업).
  • 더 확장적인 대안: 워커 풀 병렬 + judge panel 합의(자원 충분 시).
  • 실패 조건: 멀티 GPU 표준화, 대규모 병렬 리서치 요구, 누적 지연이 인내 초과.
  • 다른 설계가 나을 때: 서버 배포·속도 critical.

4. 하이브리드 검색(결정론 우선) (RAG 검색 파이프라인)

  • 최적화: 가용성(임베딩 없어도 동작), 설명가능성.
  • 희생: 스케일 정규화 복잡, 수작업 동의어 유지, 형태소 미분석.
  • 더 단순한 대안: 키워드 includes 매칭.
  • 더 확장적인 대안: BM25 + 벡터 DB + reranker 모델.
  • 실패 조건: brain 규모 폭증(sparse 인덱스 부담), 동의어 사전 누락 누적.
  • 다른 설계가 나을 때: 대규모·고품질 임베딩 상시 가용.

5. 검증(결정론 항상/LLM 조건부) (Intelligence 검증 레이어)

  • 최적화: 낮은 평균 latency, 위험 시 정밀 검수.
  • 희생: 임계 오설정 시 미탐/오탐, 휴리스틱 가중치, 1-pass 약함.
  • 더 단순한 대안: 검증 없음(빠르나 환각 방치).
  • 더 확장적인 대안: 골든셋 학습 가중치 + 다회전 debate.
  • 실패 조건: 모델 교체로 신호 분포 변화, 위험 도메인에서 1-pass 부족.
  • 다른 설계가 나을 때: 대형 모델/서버에서 상시 LLM 검수 감당 가능.

6. 파일 저장(투명성 우선) (ADR-0005 파일 기반 저장 채택)

  • 최적화: 투명성, 무의존, git 친화.
  • 희생: 쿼리 성능, 동시쓰기 잠금 직접, 인덱스 자가구축.
  • 실패 조건: 멀티유저, 수만 파일, 복잡 분석.
  • 다른 설계가 나을 때: 다중 사용자 SaaS, 대규모 분석.

7. 수동 DI(단일 composition root) (ADR-0006 수동 의존성주입 인터페이스 서비스)

  • 최적화: 투명한 조립, 테스트성, 무의존.
  • 희생: 조립 코드 장황, 배선 수작업.
  • 실패 조건: 모듈/조립 지점 폭증.
  • 다른 설계가 나을 때: 대규모 팀/모듈, 동적 수명관리 필요 시 컨테이너.

⚖️ 모순 및 업데이트 (Contradictions & updates)

이 표의 모든 "희생" 은 현재 환경(로컬·단일 사용자·작은 모델) 전제다. 환경이 바뀌면 같은 표의 우열이 뒤집힌다 — 트레이드오프는 절대값이 아니라 맥락 함수.

🛠️ 적용 사례 (Applied in summary)

각 행은 대응 ADR/서브시스템 문서의 결정 요약. 신규 설계 시 "내 환경에서 이 희생을 감당할 수 있나?" 를 먼저 묻는다.

🔗 지식 그래프 (Knowledge Graph)

📚 출처 (Sources)

  • [S1] AstraAI 서브시스템 분석(core/retrieval/intelligence/memory) 및 본 위키의 ADR 모음

📝 변경 이력 (Change history)

  • 2026-06-13: AstraAI 트레이드오프 종합 분석 초안 생성.