# 스트림 데이터 MD/위키 통합 지식베이스 및 사업화 리서치

> 출처: Gemini 대화 (2026-03-20)
> 성격: 데이터 아키텍처 구상 + 사업화 타당성 검토

---

## 1. 핵심 아이디어: 스트림 데이터 → MD → Postgres → 위키

모든 정보(슬랙, 이메일, 뉴스 등)를 `.md`로 표준화하여 NAS에 저장하고 Postgres에 동기화하면, 파편화된 정보가 하나의 **개인 지식 베이스**로 통합된다.

### 인제션 흐름

```
[Slack/Email/News API] → [Python Worker] → [LLM Summary] → [NAS (.md)] → [Postgres (Vector/Graph)]
```

### 소스별 프론트메타 설계

**슬랙:**
```yaml
---
source: "slack"
channel: "dev-robeing"
participants: ["user_A", "user_B"]
thread_id: "p1701234567"
summary: "RAG 시스템 인덱싱 오류 해결 방안 논의"
---
```

**이메일:**
```yaml
---
source: "gmail"
from: "partner@company.com"
subject: "2026년 협력 계약서 초안"
has_attachment: true
original_link: "https://mail.google.com/..."
---
```

**뉴스/RSS:**
```yaml
---
source: "tech-news"
category: "AI/LLM"
url: "https://news-site.com/article1"
importance: 4
---
```

---

## 2. 가치 판단: 3단계 필터링

### 1단계 — 정적 필터링 (비용 제로)
- 길이 제한: 본문 10자 미만 제외
- 형식 체크: 이미지/이모지만 있는 메시지 제외
- 화이트리스트: 특정 중요 인물/채널은 무조건 통과

### 2단계 — LLM 기반 판단 (저비용 모델 활용)
- 정보의 유효기간: "내일도 의미 있는가?"
- 실행 가능성: "To-do나 의사결정이 포함되어 있는가?"
- 지식 밀도: "새로운 정보나 기술적 해결책이 포함되어 있는가?"

### 3단계 — 관계 중심 필터링 (Graph Centrality)
- 연결성: 진행 중인 프로젝트/관심 태그와 관련 있는가?
- 중요도 전이: 이미 '중요'한 문서에서 파생된 정보인가?

### 가치 점수 시스템
```yaml
---
source: "slack"
value_score: 85
reason: "프로젝트 아키텍처 결정 사항 포함"
priority: "high"
---
```

---

## 3. 프롬프트 DB화와의 시너지

### 핵심 시너지 4가지
1. **맞춤형 프롬프트 라우팅** — 소스 유형에 따라 적절한 프롬프트 자동 선택
2. **Few-shot 예제 자동화** — 성공적 [질문-검색-답변] 세트를 DB에 저장, 유사 질문 시 자동 삽입
3. **버전 관리 & A/B 테스트** — v1_꼼꼼한_분석 vs v2_빠른_요약 비교 운영
4. **프롬프트도 데이터** — 어떤 프롬프트가 어떤 문서에 가장 효과적이었는지 연결

### 프롬프트 DB 스키마 (참고)
| 컬럼 | 타입 | 설명 |
|------|------|------|
| name | String | 고유 이름 (예: contract_analysis) |
| version | Integer | 프롬프트 버전 |
| template | Text | 실제 프롬프트 (변수는 `{{text}}`) |
| input_type | String | 적용 대상 (Slack, News, PDF 등) |
| params | JSONB | Temperature, 모델명 등 설정값 |
| success_rate | Float | 성공률 (사용자 피드백 기반) |

### MD 관리 하이브리드 방식
- **Source of Truth**: NAS의 MD 파일
- **DB**: 에이전트가 빠르게 읽기 위한 고속 캐시
- 파일 변경 감지 워커가 Postgres `prompts` 테이블 자동 업데이트

---

## 4. Skill.md 트렌드 (Prompts as Code)

에이전트의 '능력(Skill)' 자체를 모듈화하여 관리하는 추세.

### 특징
- 인간과 AI의 공용 인터페이스 (마크다운 = 사람 읽기 편함 + LLM 구조 파악 최적)
- PromptOps: Git diff로 프롬프트 변경 이력 추적
- 에이전트가 skill.md를 직접 읽어서 자신의 능력 판단

### 스킬 파일의 표준 구조
| 항목 | 설명 |
|------|------|
| Name & Version | 고유 명칭 + 버전 (YAML Frontmatter) |
| Description | 에이전트가 이 스킬을 언제 쓸지 판단하는 기준 |
| Input/Output Schema | 데이터 입출력 형식 명시 |
| Few-shot Examples | 대표 성공 사례 |
| Constraint | 제약 사항 |

---

## 5. 위키 통합 시너지

### 핵심 가치
- **공통 분모**: 에이전트와 사용자가 같은 곳을 바라보는 거울
- **스킬 가시화**: 에이전트의 능력치 매뉴얼 = 위키 카테고리
- **맥락의 시각화**: 문서 간 링크 = 그래프 관계의 시각적 표현
- **Goose Council 기반**: 여러 AI 모델 결과물 비교 분석 가능

### 선순환 구조
```
Ingestion → Synthesis(AI 요약) → Connection(Graph) → Feedback(사용자 수정) → Evolution(skill.md 업데이트)
```

---

## 6. 슬랙 정보화 파이프라인 상세

### 4단계 흐름
1. **캡처**: Slack Events API/Webhook → user_id(누가), ts(언제), text(무엇), thread_ts(맥락)
2. **가치 판단**: skill.md 기반 프롬프트 호출 → 점수화
3. **MD 표준화**: 프론트메타 + 요약문으로 파일 생성
4. **DB 연결**: RDB(메타데이터) + Vector(임베딩) + Graph(관계)

### 정보화된 MD 예시
```markdown
---
id: "slack_1701234567"
type: "slack_knowledge"
author: "전영준(Ted)"
timestamp: "2026-03-20 14:00"
channel: "#dev-ai-agent"
tags: ["postgres", "graph_db", "architecture"]
original_link: "https://workspace.slack.com/archives/..."
value_score: 92
---

# 요약: PostgreSQL 내 그래프 DB 도입 결정
- **핵심 내용:** Apache AGE 사용하여 RDB와 Graph 통합하기로 결정
- **결정 이유:** 데이터 싱크 오버헤드 감소, 쿼리 복잡도 저감
- **후속 조치:** 다음 주까지 PoC 스키마 설계 완료 예정
```

---

## 7. 사업화 검토

### 밸류 프로포지션
1. **투명성**: 위키(.md) 중간 단계로 AI의 이해를 확인/수정 가능 → 블랙박스 RAG와 차별화
2. **데이터 주권**: 로컬 NAS/서버 설치 → 금융, 공공, 의료, 제조 분야 적합
3. **비용 효율**: 통합 Postgres로 인프라 유지비 절감

### 비즈니스 모델
| 모델 | 대상 | 수익원 |
|------|------|--------|
| Enterprise On-prem | 대기업, 보안 민감 그룹 | 구축비 + 연간 유지보수 + 커스텀 에이전트 |
| B2B SaaS (Private) | 스타트업, 중소기업 | 월 구독료 (인당/용량당) |
| Personal Brain | 전문직, 1인 개발자 | 개인용 라이선스 (Self-hosted) |

### 킬러 기능 후보
- 자동 위키 생성기: 슬랙 대화 → 30초 내 의사결정 요약 위키 페이지
- 프롬프트 마켓플레이스: skill.md 거래 플랫폼
- Goose Council 모드: 멀티 모델 토론 → 최선의 결론 도출

---

## 8. 핵심 비판 (사업적 급소 4가지)

### 비판 1: 요약의 함정 (Hallucination Loop)
- AI 요약 시 뉘앙스/디테일 유실
- 잘못된 요약을 '진실'로 믿는 위험
- AI가 자신의 잘못된 요약을 재학습하는 피드백 루프
- **대응**: Traceability — 위키 문장에서 원본(슬랙/메일) 특정 지점으로 즉시 점프

### 비판 2: 협업 권한(RBAC)의 지옥
- 슬랙 채널/이메일마다 권한이 다름
- 통합 Postgres + 공용 위키에서 "누가 이 정보를 볼 권한이 있는가?" 제어 난제
- 민감한 메일 요약이 일반 사원에게 노출되면 사업 종료
- **대응**: Local-Only Encryption + 프론트메타 기반 태깅 + PostgreSQL RLS

### 비판 3: MD 파일의 물리적 한계
- 다수 에이전트가 동시에 skill.md를 읽고/수정할 때 파일 I/O 병목
- 파일 시스템은 DB만큼 동시성 제어에 능숙하지 않음
- **대응**: Hybrid Sync — 로컬 편집은 파일, 대규모 추론은 인메모리 DB

### 비판 4: Feature vs. Product
- Notion Connected AI, Slack AI 요약, Microsoft Recall 등 빅테크 내재화
- 단순 '정보 연결'은 빅테크가 가장 잘하는 영역
- **대응**: Multi-Model Competition — 특정 모델 비종속, Goose Council식 중립 지능 플랫폼

---

## 9. RBAC 구현 전략

### 프론트메타 기반 데이터 태깅 (인제션 단계)
```yaml
---
source: "slack"
original_channel: "C12345"
access_control:
  groups: ["dev-team", "admin"]
  users: ["user_a", "user_b"]
  level: "internal"  # public, internal, private, confidential
---
```

### PostgreSQL RLS 활용 (검색 단계)
```sql
SELECT * FROM documents
WHERE (access_groups && ARRAY['user_current_group'])
AND embedding <=> '[question_vector]' < 0.5
LIMIT 5;
```
→ 에이전트는 질문자가 볼 수 있는 데이터만 접근

### 지식 격리 아키텍처
- **Public/Team Wiki**: 공유 기술 문서 (아웃라인 동기화)
- **Private Vault**: 개인 이메일, DM (본인만 접근)
- 에이전트는 질문자 권한에 따라 공용/개인 DB 동시 검색

### RBAC 주의사항
| 항목 | 리스크 | 해결 |
|------|--------|------|
| 권한 동기화 | 슬랙 채널 멤버 변경 시 | Slack API로 주기적 권한 매핑 업데이트 |
| 요약본 노출 | 제목/요약에 민감 정보 | 요약 시 PII 마스킹 프롬프트 강제 적용 |
| 상속 권한 | 상위 폴더 → 하위 미전파 | Graph DB(AGE)로 권한 상속 Hierarchy 쿼리 |
