AI Agent 기반 지능형 기술 지식 플랫폼 구축

AI Agent 기반 지능형 기술 지식 플랫폼 구축 계획. 지식 QnA Chatbot, 데이터 표준화 도우미 Agent 등 핵심 기능 설계

Engineering
Agent
Cloud
저자

Kwangmin Kim

공개

2026년 03월 06일

1 프로젝트 개요

과제명: AI Agent 기반 지능형 기술 지식 플랫폼 구축

1.1 문제 배경

  • 지식 파편화(사일로화), 정보 탐색 비효율, 인력 이탈로 인한 업무 병목
  • 암묵지 의존으로 인수인계 부하 및 기술 부채 증가

1.2 3가지 핵심 개발 목표

# 기능 지표
1 지식 QnA Chatbot - 기존 문서 행간 해석 AI 데이터 표준화 원칙 100% 명시화
2 데이터 표준화 도우미 Agent - 메타데이터 자동화 물리명/설명/데이터타입 3종 추천
3 인실리코 알고리즘 분석 Agent - 코드 투명성 확보 인실리코 코드 분석 100% 커버

1.3 시스템 아키텍처

[FE] → [LB] → [Backend/Java] → [AI Engine (K8s/Docker)]
                                        ↓
                              RAG (FastAPI)
                              ├── Azure OpenAI Embeddings
                              ├── Azure Document Intelligence (문서 파싱)
                              ├── Vector Store (Azure AI Search)
                              ├── Rule-Based Engine (AST/CFG Parser 등)
                              └── Data-Driven Engine (DL/ML 모델)
                                        ↓
                              LLM (Azure OpenAI, OpenAI, HuggingFace 등)
                                        ↓
                              Data Storage (SQL DW, MySQL, Data Lake)

[Monitoring] Azure Monitor + Log Analytics + Cost Management

1.4 현재 워크스페이스와의 연관성

이 아키텍처의 Streamlit 기반 프로토타입으로 독립적으로 개발하고 후에 추상화하여 통합할 예정: - 1_QnA_Chatbot.py → 목표 1 (지식 QnA) - 2_Data_Standardizer.py → 목표 2 (데이터 표준화 Agent) - 3_Code_Analyzer.py → 목표 3 (인실리코 분석 Agent)

2 과제 규모 추정

중대형 엔터프라이즈 AI 프로젝트 (6~18개월, 팀 5~10명 수준)

2.1 개발 범위

  • 3개 AI Agent (QnA Chatbot, 데이터 표준화, 코드 분석)
  • Full-Stack: FE + Java Backend + AI Engine(Python) + Data Pipeline
  • 현재 프로토타입프로덕션 전환 수준의 작업

3 필요 인프라

3.1 Azure 핵심 서비스

서비스 용도 예상 티어
Azure OpenAI LLM + Embeddings (text-embedding-3-large) PTU 또는 Standard
Azure AI Search Vector Store (RAG 근거 검색) Standard S1+
Azure Document Intelligence PDF/문서 파싱 S0+
Azure Kubernetes Service (AKS) AI Engine 컨테이너 오케스트레이션 Standard B/D 시리즈
Azure Container Registry Docker 이미지 관리 Basic/Standard
Azure SQL / Synapse Data Warehouse General Purpose
Azure Data Lake Storage 비정형 데이터 저장 Gen2
Azure Monitor + Log Analytics 모니터링 Pay-as-you-go
Azure Cost Management 비용 추적 무료

3.2 추가 인프라

Apache Airflow       - 데이터 파이프라인 오케스트레이션
Load Balancer        - 트래픽 분산 (Azure Application Gateway)
Java Backend         - Spring Boot 기반 API Gateway
FastAPI              - AI Engine REST API
MySQL                - 운영 DB (메타데이터 등)

4 리소스 요구사항

4.1 컴퓨팅 (AKS 기준)

컴포넌트 스펙 이유
AI Engine Pod CPU 4코어 / 16GB RAM FastAPI + RAG 처리
Rule-Based Engine CPU 8코어 / 32GB RAM 메타데이터 파싱 부하
Data-Driven Engine GPU (A100/T4) DL 모델 추론
Backend (Java) CPU 2코어 / 8GB RAM API 처리

4.2 비용 추정 (월간, Azure Korea 기준)

Azure OpenAI (GPT-4o)       ~$500~2,000  (사용량에 따라 변동)
Azure AI Search (S1)        ~$250
AKS 클러스터                ~$300~800
Azure SQL / ADLS             ~$200
Document Intelligence        ~$150
기타 (모니터링, 네트워크 등) ~$200
─────────────────────────────────────
총계 (추정)                  ~$1,600~3,600/월

5 현재 PoC 상태 vs 목표 Gap

항목 현재 (프로토타입) 목표 (프로덕션)
UI Streamlit React/Vue FE + Java Backend
배포 로컬 AKS (K8s + Docker)
LLM 단일 Provider Multi-LLM (OpenAI, HuggingFace 등)
문서 파싱 기본 Azure Document Intelligence
파이프라인 없음 Apache Airflow
모니터링 없음 Azure Monitor + Log Analytics

5.1 현재 PoC 상태

(2026-02-20 기준)

src/agent/ ├── app.py ✅ 완성 (메인 진입점, Streamlit multipage) ├── styles.css ✅ 완성 ├── config/ ✅ 완성도 높음 │ ├── settings.py ✅ RAG 실험 설정 전체 구현 (461줄) │ ├── env_loader.py ✅ Azure/Local 환경변수 중앙 관리 │ └── llm_config.py ✅ ├── shared/ ✅ 핵심 인프라 완성 │ ├── llm/provider.py ✅ Azure OpenAI ↔︎ Local(Ollama) 추상화 │ ├── rag/ │ │ ├── chatbot_retriever.py ✅ 문서 로더(PDF/Markdown), 청킹, 검색 (331줄) │ │ └── vectorstore_provider.py ✅ Azure AI Search ↔︎ FAISS 추상화 │ ├── metrics/experiment_metrics.py ✅ RAG 성능 측정 메트릭 구현 (394줄) │ ├── ui/ ❌ 비어있음 │ └── utils/ ❌ 비어있음 ├── pages/ │ ├── 1_QnA_Chatbot.py ✅ 가장 완성도 높음 (1306줄) - RAG 완전 구현 (추상화 전) │ ├── 2_Data_Standardizer.py ❌ UI 껍데기만 (분석 기능 미구현) │ └── 3_Code_Analyzer.py ❌ UI 껍데기만 (분석 기능 미구현) ├── agent_qna_chatbot/ │ └── modules/ │ └── docstring-generator.py ❌ 빈 파일 ├── prompts/ ✅ │ ├── chatbot_data_standardization_rules.yml ✅ │ ├── data_standardizer.yml ✅ │ └── code_analyzer.yml ✅ └── tests/ ❌ init.py만 존재 (테스트 없음)

5.2 기능별 완성도

기능 완성도 상태
인프라 (LLM/VectorStore 추상화) 90% Azure/Local 전환 가능, 잘 설계됨
QnA Chatbot (Page 1) 70% RAG 동작, 실험 메트릭 수집, 문서 선택 UI
데이터 표준화 (Page 2) 5% UI 껍데기만, 로직 전무
코드 분석기 (Page 3) 5% UI 껍데기만, 로직 전무
Docstring Generator 0% 빈 파일
테스트 코드 0% 없음
shared/ui, shared/utils 0% 없음

6 개발 로드맵

원칙 의미
POC 우선 추상화는 나중에, 지금은 기능 검증
계약 기반 확장 Phase 2 계약대로 agent를 찍어냄
Multi-repo Monolithic repo는 분리, 각 repo 내부는 monolithic
Sub-agent 허용 main agent 아래 evaluator/helper 다수 가능
오버스펙 방지 실제 필요한 것만 공통화

6.1 Phase 1 - POC (현재 ~ 3개월)

  • 3개 Agent 독립적으로 개발 (공유 의존성 최소화)
  • 공유 자원: Streamlit UI만
  • 목표: 기능 검증, 오버스펙 방지
pages/              ← UI만 공유
├── 1_QnA_Chatbot    ← 독립 POC
|   └── sub-agents (evaluator, helper 등)
├── 2_Data_Std       ← 독립 POC
|   └── sub-agents (evaluator, helper 등)  
└── 3_Code_Analyzer  ← 독립 POC
    └── sub-agents (evaluator, helper 등)

6.2 Phase 2 - 추상화 (POC 결과 기반)

  • 3개 POC에서 실제로 반복된 패턴만 공통 모듈로 추출
  • Agent 생애주기(lifecycle) 계약 정의
  • 성능 평가 지표 표준화
contract/
├── BaseAgent         ← 모든 Agent가 따르는 계약
├── AgentLifecycle    ← 공통 생애주기
└── EvalMetrics       ← 공통 성능 평가

6.3 Phase 3 - Multi-Repo Monolithic 확장

repo: agent-qna/          ← Main Agent 1
  └── sub-agents/
      ├── retriever-agent
      ├── reranker-agent
      └── evaluator-agent

repo: agent-data-std/     ← Main Agent 2
  └── sub-agents/
      └── validator-agent

repo: agent-code-analyzer/ ← Main Agent 3
  └── sub-agents/
      ├── ast-agent
      └── docstring-agent

repo: agent-commons/      ← Phase 2에서 추출한 공통 계약/모듈

7 현재 PoC기준 Azure 자원 이용 현황

7.1 Resource Group:

rg-aipoc-test-krc-001 (테스트 구독)

7.1.1 구축된 리소스 전체 목록

리소스명 타입 리전 용도
test-agent VM (D8as v5) Korea Central Streamlit 앱 실행 서버
aipoc-code-analyzer-krc-001 Azure OpenAI Korea Central LLM (주)
aipoc-code-analyzer-krc-002 Azure OpenAI Sweden Central LLM (백업/분산)
aipoc-code-analyzer-krc-003 Azure OpenAI East US LLM (백업/분산)
di-aipoc-test-krc-001 Document Intelligence Korea Central 문서 파싱
vdb-aipoc-test-krc-001 Search service Korea Central Vector DB (Azure AI Search)
saaipoctestkrc001 Storage account Korea Central 파일 저장
privatelink.openai.azure.com Private DNS zone Global OpenAI Private 통신
pe-aipoc-code-analyzer-krc-001 Private endpoint Korea Central OpenAI 보안 접속
pe-aipoc-code-analyzer-krc-003 Private endpoint East US OpenAI 보안 접속
vnet-aipoc-test-krc-insilico-001 Virtual network Korea Central 주 네트워크
vnet01~vnet01-4 Virtual networks 다중 리전 리전간 네트워크 피어링

7.2 아키텍처

인터넷
  │
  ▼
[VM: test-agent]  Public IP: 20.196.144.16
  │  (Ubuntu 24.04, 8vCPU/32GB)
  │  → Streamlit 앱 구동
  │
  └── Private Network (172.16.0.4)
        │
        ├── [Private Endpoint] → Azure OpenAI (KRC)  ← 주 LLM
        │                      → Azure OpenAI (EUS)  ← 분산 (특정 LLM의 배포유형이 서비스 지역에 따라 배포 제한이 있음)
        │                      (Sweden는 Public 접속)
        │
        ├── [Azure AI Search]   → Vector DB (RAG용)
        ├── [Document Intelligence] → 문서 파싱
        └── [Storage Account]   → 파일/데이터 저장

7.3 핵심 포인트 설명

1. Azure OpenAI를 3개 리전에 배포한 이유 - Azure OpenAI는 리전별 TPM(분당 토큰) 쿼터 제한이 있는 것으로 파악됨 - Korea Central 할당량이 부족하거나 너무 지연시간이 길면 Sweden/East US로 분산 - provider.py의 LLM_PROVIDER 환경변수로 전환 가능하게 설계할 것

2. Private Endpoint를 쓰는 이유 - Azure OpenAI를 인터넷 노출 없이 VM → Private IP로 직접 통신 - privatelink.openai.azure.com DNS zone이 이를 내부 라우팅 처리 - 보안 강화 + 네트워크 트래픽 비용 절감

3. VM 스펙 (D8as v5: 8vCPU/32GB) - Streamlit + RAG 파이프라인 동시 처리에 충분한 스펙 - GPU는 없음 → 현재는 Azure OpenAI API 호출만, 로컬 모델 추론은 불가

7.4 POC 관점에서 이 인프라 평가

항목 평가
LLM 다중화 ✅ 3리전으로 쿼터 문제 대비
보안 ✅ Private Endpoint 적용
VM 스펙 ✅ POC에 충분
Vector DB ✅ Azure AI Search 준비 완료
문서 파싱 ✅ Document Intelligence 준비 완료
GPU ❌ 없음 (로컬 모델 불가, API 전용)
K8s/AKS ❌ 없음 (향후 필요)

Subscribe

Enjoy this blog? Get notified of new posts by email: