🏆 2025 AI 새싹톤 우수상 🏆 2025 AI SeSACTHON Excellence Award

이코에코(Eco²)
Backend Portfolio Backend Portfolio

Multi-LLM Agent 기반 비동기 분산 클러스터로
서비스 수준의 제품 완성도를 목표로 한 고도화 여정
Evolution journey toward production-ready quality
with Multi-LLM Agent based async distributed cluster

24
클러스터 노드 📊 Cluster Nodes 📊
2,500 VU
ext-authz 1,477 RPS 📊 ext-authz 1,477 RPS 📊
1000 VU
Scan API (LLM×2) 97.8% · 373 RPM 📊 Scan API (LLM×2) 97.8% · 373 RPM 📊
100+ · 76+
개발 기록 · Knowledge Base Dev Logs · Knowledge Base
개발 기간 (10.31~01.28) 🖱️ Development (10.31~01.28) 🖱️
Closed
서비스 종료 (12.02~02.25) Service Closed (12.02~02.25)
00

Service Service

Vision LLM과 Multi-Agent로 환경과 일상을 연결하는 에이전트입니다. An agent connecting environment and daily life through Vision LLM and Multi-Agent.

8개의 도메인 API, 6개의 Worker, 3개의 인프라 피쳐를 설계, 구현, 배포, 운영 중입니다. Designing, implementing, deploying, and operating 8 domain APIs, 6 Workers, and 3 infrastructure features.

🌿 서비스 종료 (Closed)Service Closed
🔐
Auth
API Worker
OAuth 2.0 + JWT 인증 OAuth 2.0 + JWT Auth
💬
Chat
API Worker FE
LangGraph 에이전트 LangGraph Agent
📷
Scan
API Worker
Vision AI 폐기물 분류 Vision AI Waste Classifier
🌍
Character
API Worker
캐릭터 수집 + gRPC Character Collection + gRPC
📍
Location
API FE
Kakao 검색 + PostGIS 공간 쿼리 Kakao Search + PostGIS Spatial
👤
Users
API Worker
프로필 + 캐릭터 소유 Profile + Character Ownership
🖼️
Images
API
S3 + CloudFront CDN S3 + CloudFront CDN
📰
Info
API Worker FE
환경/에너지/AI 뉴스피드 Eco/Energy/AI Newsfeed
🛡️
ext-authz
Infra
Istio 외부 인가 (Go) Istio External Auth (Go)
📡
SSE Gateway
Infra
실시간 이벤트 스트리밍 Real-time Event Streaming
🔀
Event Router
Infra
Redis Streams 라우팅 Redis Streams Routing
01

Agent-Driven Development Agent-Driven Development

ADR·장애 로그·도메인 규칙을 Knowledge Base로 축적 → 자체 RAG + 27개 커스텀 Skills로 에이전트 온보딩 가속. Sub agent에 Skills를 주입하여 Task 도구 7,500+ 호출이 관측되며, 병렬 포함 멀티파트 작업을 수행합니다. Anthropic·Vercel 등 공식 벤더 Skills도 적극 활용하며, 설계-구현-테스트-관측-검증 피드백 루프를 구성해 사이클을 운용합니다. Accumulates ADRs, incident logs, and domain rules as Knowledge Base → accelerates agent onboarding with self-RAG + 27 custom Skills. Injects Skills into sub agents with 7,500+ Task tool invocations observed, including parallel multi-part execution. Actively leverages official vendor Skills from Anthropic, Vercel, and others. Operates a design-implement-test-observe-verify feedback loop.

🔁
Recursive Self-Improvement
💡 클릭하여 상세 보기 💡 Click for details
🧑‍💻
Developer
설계 & 리뷰 Design & Review
💡 클릭하여 프로필 보기
류지환 | Backend Engineer
FastAPI, LangGraph, Celery, Taskiq, RabbitMQ, Redis, PostgreSQL
💡 Click for profile
Jihwan Ryu | Backend Engineer
FastAPI, LangGraph, Celery, Taskiq, RabbitMQ, Redis, PostgreSQL
🤖
AI Agent
구현 & 디버깅 Implement & Debug
💡 클릭하여 상세 보기
Cursor + Claude Code
27개 Skills 기반
💡 Click for details
Cursor + Claude Code
27 Skills based
☸️
Cluster
Runtime Environment Runtime Environment
💡 클릭하여 상세 보기
24-Node K8s + Self-RAG
Context-First Development
💡 Click for details
24-Node K8s + Self-RAG
Context-First Development
📊
Observability
피드백 수집 Feedback
EFK + Jaeger + Prometheus
trace.id 연동 (7.16% coverage)
에러 감지 → Agent 피드백
EFK + Jaeger + Prometheus
trace.id correlation (7.16% coverage)
Error detection → Agent feedback
🔄 Development Lifecycle 🔄 Development Lifecycle
1
Research
Foundations
2
Design
Plans
3
Implement
Agent + Code
4
Deploy
GitOps
🎯 Single Source of Truth 🎯 Single Source of Truth
📝 Codebase
🔄 GitOps
☸️ Cluster State
📊 Observability
🧠 Self-RAG Knowledge Base 🧠 Self-RAG Knowledge Base
📁 docs/ — 프로젝트 의사결정 아카이브 — Project decision archive
📚 Foundations 근원 기술 21편 21 core tech
🔧 Applied 응용 기술 10편 10 applied
📋 Plans 설계 문서 10편 10 ADRs
📈 Reports 결과 기록 17편 17 reports
🔥 Troubleshooting 트러블슈팅 16편 16 issues
🛠️ .claude/skills/ — 27개 커스텀 Skills + 벤더 Skills — 27 custom Skills + vendor Skills
langgraph
pipeline
chat-agent
flow
event-driven
architecture
clean-arch
CQRS
k8s-debug
kubectl
redis
patterns
postgres
schema
grpc
service
rag
pipeline
llm-eval
swiss-cheese
mermaid
diagrams
pptx
slide-gen
celery
rabbitmq
prompt
engineering
data-scientist
analysis
resume-tailor
multi-format
skill-creator
meta-skill
+10 more
skills
🏢 공식 벤더 Skills Official Vendor Skills — Anthropic·Vercel 등 검증된 패턴 — Verified patterns from Anthropic, Vercel, etc.
Anthropic
Best Practices
Anthropic
Agent Skills
Vercel
React Best Practices
Anthropic
Effective Harness

docs/는 ADR·장애 로그·도메인 규칙을 담은 Knowledge Base이고, .claude/skills/는 27개 커스텀 Skills + Anthropic·Vercel 벤더 SkillsSub agent에 주입하여 온보딩을 가속합니다.
Task 도구 7,500+ 호출(8,251 세션)이 관측되며, 병렬 포함 멀티파트 작업을 수행합니다. 설계-구현-테스트-관측-검증 피드백 루프를 구성해 사이클을 운용합니다.
이 체계는 Anthropic Engineering의 Effective Harness 패턴과 구조적으로 대응합니다. 📊 Anthropic Insights →
docs/ is a Knowledge Base of ADRs, incident logs, and domain rules. .claude/skills/ injects 27 custom Skills + vendor Skills from Anthropic and Vercel into sub agents to accelerate onboarding.
7,500+ Task tool invocations observed across 8,251 sessions, including parallel multi-part execution. Operates a design-implement-test-observe-verify feedback loop.
This system structurally corresponds to Anthropic Engineering's Effective Harness pattern. 📊 Anthropic Insights →

02

프로젝트 카테고리 Project Categories

🤖

Multi-Agent Chat

11 posts
개발 및 E2E 검증 완료, 실시간 배포 중 Dev & E2E Verified, Live Deployed LangGraph Send API Token v2 Function Calling Multi-Model

LangGraph Send API로 11종 서브에이전트를 동적 병렬 라우팅하는 멀티에이전트 시스템입니다. 9분류 Intent 분석Multi-Intent Fanout을 통해 "이 페트병 어떻게 분리해? 근처 수거함도 알려줘" 같은 복합 질의를 단일 요청으로 병렬 처리합니다. Eco² 캐릭터 13종과 대한민국 폐기물 분류체계를 도메인 지식으로 주입하고, Nano Banana Pro 기반 이미지 생성, 사용자 위치 연동 실시간 날씨·수거함·재활용센터 검색, 네이티브 웹 검색까지 지원합니다. 3-Tier Memory(Redis hot + PostgreSQL persistent) 위에 Token v2 스트리밍을 구현하여 연결 단절 후 재접속 시에도 토큰 catch-up이 가능합니다. A multi-agent system that dynamically routes across 11 sub-agents in parallel via LangGraph Send API. After 9-class intent classification, Multi-Intent Fanout decomposes compound queries like "How do I separate this PET bottle? Find nearby collection points too" into parallel branches within a single request. Injects domain knowledge (13 Eco² characters, Korean waste classification system), supports Nano Banana Pro-powered image generation, real-time weather and recycling center search linked to user location, and native web search. Built on 3-Tier Memory (Redis hot + PostgreSQL persistent) with Token v2 streaming, enabling token catch-up even after connection drops.

🔀
LangGraph Workflow 11개 서브에이전트 StateGraph, Send API 병렬 실행, Aggregator 결과 수집 → 상세 보기 LangGraph Workflow 11 subagent StateGraph, Send API parallel execution, Aggregator result collection → View Details
🎯
9분류 Intent + Multi-Intent 키워드 맵 신뢰도 보정, Chain-of-Intent로 연속 질문 문맥 유지 → 상세 보기 9-class Intent + Multi-Intent Keyword map confidence calibration, Chain-of-Intent for continuous query context → View Details
Send API 병렬 라우팅 Dynamic Router + Enrichment Rules로 waste → weather 자동 추가, Aggregator에서 결과 수집 → 상세 보기 Send API Parallel Routing Dynamic Router + Enrichment Rules auto-add weather for waste, results collected at Aggregator → View Details
🔧
Tool Calling GPT-5.2 Strict Mode + Gemini 3 Function Calling, MOIS·KECO·Kakao API 네이티브 도구 호출 → 상세 보기 Tool Calling GPT-5.2 Strict Mode + Gemini 3 Function Calling, MOIS·KECO·Kakao API native tool invocation → View Details
🧠
Multi-Model Orchestration LLMClientPort 추상화, OpenAI Agents SDK(Primary) + Responses API(Fallback) + Gemini SDK, Provider 자동 추론 및 런타임 모델 전환 → 상세 보기 Multi-Model Orchestration LLMClientPort abstraction, OpenAI Agents SDK (Primary) + Responses API (Fallback) + Gemini SDK, Provider auto-inference & runtime model switching → View Details
🚌
Event Bus Redis Streams + Pub/Sub + State KV 3-Tier, Event Router Consumer Group, SSE Gateway Catch-up → 상세 보기 Event Bus Redis Streams + Pub/Sub + State KV 3-Tier, Event Router Consumer Group, SSE Gateway Catch-up → View Details
🧀
LLM Evaluation Pipeline Swiss Cheese 3-Tier (Code/LLM/Calibration), 5-Axis BARS Rubric, Expert Review 99.8/100 → 상세 보기 LLM Evaluation Pipeline Swiss Cheese 3-Tier (Code/LLM/Calibration), 5-Axis BARS Rubric, Expert Review 99.8/100 → View Details
💾
3-Tier Memory Redis Primary(~1ms) + PostgreSQL Async Sync + ChatState, ReadThroughCheckpointer 패턴 → 상세 보기 3-Tier Memory Redis Primary (~1ms) + PostgreSQL Async Sync + ChatState, ReadThroughCheckpointer pattern → View Details
🔄
Token v2 + Context 압축 XRANGE 복구, 동적 Summarization (272K trigger, 5-Tier 구조) → 상세 보기 Token v2 + Context Compression XRANGE recovery, dynamic Summarization (272K trigger, 5-Tier structure) → View Details
🛡️
Production Resilience NodePolicy (FAIL_OPEN/CLOSE/FALLBACK), Circuit Breaker 5회 → 60s → 상세 보기 Production Resilience NodePolicy (FAIL_OPEN/CLOSE/FALLBACK), Circuit Breaker 5 fails → 60s → View Details
📊
Feedback + Fallback Chain 4-dim RAG 평가, rag → web_search → general_llm 체인 → 상세 보기 Feedback + Fallback Chain 4-dim RAG eval, rag → web_search → general_llm chain → View Details
🔭
LangSmith + OTEL TelemetryConfigPort 추상화, Feature 단위 Run 추적, OTEL Span 통합 → 상세 보기 LangSmith + OTEL TelemetryConfigPort abstraction, Feature-level Run tracking, OTEL Span integration → View Details
📈
LangSmith Token Tracking 11개 LLM 호출 경로별 토큰 추적, usage_metadata 표준화 → 상세 보기 LangSmith Token Tracking Token tracking for 11 LLM call paths, usage_metadata standardization → View Details
🔒
Data Consistency Lamport Clock 순서 보장, cleanup_sequence 메모리 관리, Aggregator 정합성 검증 → 상세 보기 Data Consistency Lamport Clock ordering, cleanup_sequence memory management, Aggregator integrity validation → View Details
☸️

Kubernetes Cluster + GitOps + Service Mesh

8 posts
AWS Terraform ArgoCD Istio DOMA

8개 도메인 API(Auth, Character, Chat, Scan, Location, Users, Image, Info)를 개발하고, 장애 격리와 독립 스케일링을 위해 DOMA 원칙 기반 노드 분리를 설계했습니다. Bridge Ingress 단일 진입점으로 ALB → Istio Gateway → VirtualService 토폴로지를 구성하고, North-South(NodePort)East-West(ClusterIP/Calico VXLAN) 트래픽을 분리합니다. ArgoCD App-of-Apps + Sync Wave(00~63)로 CRD → Operator → Instance 순서의 선언적 배포를 자동화하고, Helm Chart + Kustomize Overlay로 환경별 오버레이를 관리합니다. Developed 8 domain APIs (Auth, Character, Chat, Scan, Location, Users, Image, Info) and designed DOMA-based node separation for fault isolation and independent scaling. Configured Bridge Ingress single entry point with ALB → Istio Gateway → VirtualService topology, separating North-South (NodePort) and East-West (ClusterIP/Calico VXLAN) traffic. Automated declarative deployment with ArgoCD App-of-Apps + Sync Wave (00~63) following CRD → Operator → Instance order, managing environment overlays with Helm Chart + Kustomize Overlay.

🏗️
24-nodes 클러스터 도메인별 장애 격리 + 스케일 실험 목적 24-node cluster domain fault isolation + scaling experiments
📊
노드 스펙 24-node EC2 인스턴스 상세 사양 Node Specs 24-node EC2 instance specifications
🏷️
5-Layer + Taints Label 계층 + 스케줄링 정책 5-Layer + Taints Label hierarchy + scheduling policy
🔄
Sync Wave (00~63) 의존성 기반 배포 순서 제어 Sync Wave (00~63) dependency-based deployment ordering
📦
Operators & Helm Charts CR 기반 선언적 관리로 확장성 확보 Operators & Helm Charts CR-based declarative management for extensibility
🕸️
Istio Service Mesh Sidecar Injection + VirtualService 라우팅 Istio Service Mesh Sidecar Injection + VirtualService routing
☁️
AWS 외부 컴포넌트 Route53, ALB, CloudFront, S3, ACM AWS External Components Route53, ALB, CloudFront, S3, ACM
🔗
IRSA 자동화 ExternalSecrets + ExternalDNS + ALB Controller IRSA Automation ExternalSecrets + ExternalDNS + ALB Controller
CI Quality Gate black/ruff/pytest/coverage로 품질 기준 강제 CI Quality Gate enforce quality via black/ruff/pytest/coverage
🔐

Auth Offloading (ext-authz)

4 posts
Envoy Go gRPC Redis HPA Fanout

모든 요청의 인증/인가가 통과하는 Global Choke Point를 별도 서버로 분리해 API 서버 부하를 제거했습니다. Python 대비 동시성 처리에 유리한 Go + gRPC를 선택하고, Redis 병목 해결 후 Local Cache + Fanout으로 클러스터 처리량 Baseline을 확보했습니다. Separated Global Choke Point (auth/authz for all requests) into a dedicated server, eliminating API server load. Chose Go + gRPC for better concurrency over Python, established cluster throughput baseline via Local Cache + Fanout after resolving Redis bottleneck.

🎯
Global Baseline 2,500 VU 기준 RPS 1,200+ (ext-authz 단독) Global Baseline RPS 1,200+ at 2,500 VU (ext-authz only)
🔧
병목 해결 RPS 42 → 1,200 (28배 개선) Bottleneck fix RPS 42 → 1,200 (28x improvement)
📡
Cache 일관성 Fanout 브로드캐스트 + TTL 10s + 버전 스탬프 Cache consistency Fanout broadcast + TTL 10s + version stamp
🔍
🛡️
운영 정책 fail-close, Blacklist TTL 24h, 메모리 cap Ops policy fail-close, Blacklist TTL 24h, memory cap
🔍
📊

Observability

7 posts
ECK Elasticsearch Kibana Fluent Bit Jaeger Kiali

Agent-Driven Development의 Recursive Self-Improvement를 위해 로그-트레이스-메트릭 통합이 필수였습니다. Helm Chart 대신 ECK Operator를 선택해 ES 클러스터 관리 복잡도를 낮추고, ECS 스키마로 8개 도메인의 로그 포맷을 표준화했습니다. Log-trace-metric integration was essential for Agent-Driven Development's Recursive Self-Improvement. Chose ECK Operator over Helm Charts to reduce ES cluster management complexity, standardized log format across 8 domains with ECS schema.

📝
24-nodes 로그 중앙화 Fluent Bit DaemonSet → ES 24-node log centralization Fluent Bit DaemonSet → ES
🔗
trace_id 연결 ECS 로그 → Jaeger 원클릭 trace_id correlation ECS logs → Jaeger one-click
🚨
Alertmanager + Slack 장애 감지 자동화 Alertmanager + Slack automated alerting
🗺️
Kiali + Jaeger 서비스 메시 시각화 Kiali + Jaeger service mesh visualization
📨

Message Queue

15 posts
RabbitMQ Celery Taskiq Gevent Fanout DLQ

LLM API 호출(~12초/req)의 HTTP 타임아웃 회피와 동시 접속 부하 분산을 위해 비동기 Job Queue를 도입했습니다. Kafka 대비 운영 복잡도가 낮은 RabbitMQ를 선택하고, I/O-bound 워크로드에 Gevent, CPU-bound에 Thread Pool로 동시성 전략을 분리했습니다. Introduced async Job Queue to avoid HTTP timeouts from LLM API calls (~12s/req) and distribute concurrent load. Chose RabbitMQ over Kafka for lower operational complexity, separated concurrency strategies: Gevent for I/O-bound, Thread Pool for CPU-bound workloads.

⛓️
4단계 Celery Chain Vision→Rule→Answer→Reward 순차 의존성 4-stage Celery Chain Vision→Rule→Answer→Reward sequential dependency
🔀
동시성 전략 분리 prefork(단순 태스크) / Gevent(동기 I/O) / asyncio(LangGraph) Concurrency split prefork(simple tasks) / Gevent(sync I/O) / asyncio(LangGraph)
🆔
at-least-once + 멱등성 키 task_id 기반 중복 처리 방지 at-least-once + idempotency task_id based deduplication
📡
Topology CR 관리 K8s Operator로 Queue/Exchange 선언적 관리 Topology CR management declarative Queue/Exchange via K8s Operator
Taskiq Asyncio Worker LangGraph asyncio-native 요구사항 → Taskiq 도입 (Chat) Taskiq Asyncio Worker LangGraph asyncio-native requirement → Taskiq adoption (Chat)
🌊

Event Streams & Scaling

12 posts
Redis Streams Pub/Sub State KV Reclaimer KEDA SSE Gateway

LLM 파이프라인을 동기 요청으로 배포한 초기에는, 10+초 API 지연이 scan-api 스레드를 점유해 동시 처리에 한계가 있었습니다. SSE 전환 후에도 Celery Events 구조(SSE당 RabbitMQ 21연결)는 50 VU에서 연결 341개로 폭증, 503 에러가 발생했습니다. Redis Streams 기반 이벤트 릴레이로 연결 복잡도를 O(n×m) → O(n)으로 개선하고, Streams(영속) + Pub/Sub(실시간) + State KV(복구)로 책임을 분리해 500 VU 100% 완료율을 달성했습니다. When initially deploying the LLM pipeline as synchronous requests, 10+s API latency occupied scan-api threads, limiting concurrent processing. After SSE transition, Celery Events structure (21 RabbitMQ connections per SSE) exploded to 341 connections at 50 VU, causing 503 errors. Switched to Redis Streams-based event relay, improved connection complexity from O(n×m) → O(n), separated responsibilities: Streams (persistence) + Pub/Sub (realtime) + State KV (recovery), achieving 500 VU 100% completion.

🚌
Event Bus Layer O(n×m) → O(n) 연결 복잡도, Streams + Pub/Sub + State KV 분리 Event Bus Layer O(n×m) → O(n) connection complexity, Streams + Pub/Sub + State KV separation
🎯
Scan SSE 지표 500 VU 100% 완료율, 367.9 req/m, E2E p95 83.3초 Scan SSE metrics 500 VU 100% completion, 367.9 req/m, E2E p95 83.3s
📊
LLM 파이프라인 특성 Vision 3초 + Answer 8초 → 총 ~12초 I/O-bound LLM pipeline profile Vision 3s + Answer 8s → total ~12s I/O-bound
🔄
SSE 재연결 복구 State KV에서 마지막 상태 로드 SSE reconnect recovery load last state from State KV
⚖️
KEDA 트리거 RabbitMQ 큐 길이 (10-20msg) Worker 2→4, SSE 연결 수 (100/pod) 1→3 KEDA trigger RabbitMQ queue (10-20msg) Worker 2→4, SSE connections (100/pod) 1→3
🔧
Event Router 내부 Multi-domain (scan+chat) + Lua 멱등성 + XAUTOCLAIM Reclaimer Event Router internals Multi-domain (scan+chat) + Lua idempotency + XAUTOCLAIM Reclaimer
🔄

Eventual Consistency

5 posts
Persistence Offloading Worker Queue Batch Processing Idempotency Async Sync

강결합과 즉시 응답이 필요한 로직(OAuth 플로우 등)을 제외한 모든 영역에 Eventual Consistency를 적용했습니다. Strong Consistency는 Latency를 늘리고, Fire-and-forget은 데이터 유실 위험이 있어, at-least-once + 멱등성 키로 Exactly-once Semantics를 구현했습니다. Application Layer가 Persistence를 Worker에 Offloading하면서 DB 병목 없이 수평 확장이 가능해졌고, API Pod는 빠른 응답만 담당하여 처리량(Throughput)이 크게 향상되었습니다. Applied Eventual Consistency to all areas except tightly-coupled, immediate-response logic (e.g., OAuth flow). Strong consistency increases latency, fire-and-forget risks data loss. Implemented Exactly-once Semantics via at-least-once + idempotency keys. Application Layer offloads persistence to Workers, enabling horizontal scaling without DB bottleneck. API Pods focus solely on fast responses, significantly improving throughput.

📤
Write Offloading API는 이벤트만 발행, DB 쓰기는 Worker가 처리 Write Offloading API publishes events only, Worker handles DB writes
🆔
Deterministic UUID (user_id + scan_id) 기반 멱등성 키 Deterministic UUID (user_id + scan_id) based idempotency key
📡
Fanout 1:N 라우팅 단일 이벤트 → character_worker + users_worker Fanout 1:N routing single event → character_worker + users_worker
🔄
캐시 무효화 Fanout broadcast + TTL 10s + 신규 Worker 부팅 시 워밍 Cache invalidation Fanout broadcast + TTL 10s + warming on new Worker boot
🔁
Chat Async Persistence CheckpointSyncService (batch dedup) + Persistence Consumer (done→PG) Chat Async Persistence CheckpointSyncService (batch dedup) + Persistence Consumer (done→PG)
🏛️

Clean Architecture Migration

16 posts
DOMA DIP Port & Adapter CQRS FastAPI

Fallback Outbox 패턴 도입 후 Integration+Persistence 레이어가 중첩되며 레이어드 아키텍처의 한계에 직면했습니다. Redis 직접 의존 등 DI 위반을 제거하고, Port/Adapter 기반으로 인프라 교체 용이성역할 명확화를 확보했습니다. 도메인별 응집으로 비즈니스 요구사항 변경 시 수정 범위가 단일 도메인으로 제한되어, 사이드 이펙트 추적과 코드 리뷰 부담이 크게 줄었습니다. Port 인터페이스만 Mock하면 외부 인프라 없이 도메인 로직을 독립 검증할 수 있어, 테스트 작성 비용이 낮아지고 병렬 개발이 자연스럽게 가능해졌습니다. 인프라 의존성이 Adapter로 캡슐화되어 특정 컴포넌트 장애가 도메인 경계를 넘어 전파되지 않습니다. After introducing Fallback Outbox pattern, Integration+Persistence layers overlapped, revealing layered architecture limits. Eliminated DI violations (e.g., direct Redis dependency), achieved infrastructure swappability and clear role separation via Port/Adapter. Domain-level cohesion limits change scope to single domain, reducing side-effect tracking and code review burden. Mocking only Port interfaces enables independent domain logic verification without external infra, lowering test costs and enabling parallel development. Infrastructure dependencies encapsulated in Adapters ensure component failures don't propagate beyond domain boundaries.

📐
4-Layer DIP Domain이 Port 정의, Infra가 Adapter로 구현 — 결합도 제거 4-Layer DIP Domain defines Port, Infra implements as Adapter — decoupled
🎼
Application Usecase CQRS 기반 Command/Query 분리, Port·Service 오케스트레이션 Application Usecase CQRS-based Command/Query separation, Port·Service orchestration
🔌
Adapter 교체 용이 LLM/Persistence/MQ Adapter 독립 교체 가능 Adapter swappability LLM/Persistence/MQ Adapters independently replaceable
🛡️
LLM 복원력 ~12s I/O-bound (Vision 3s + Answer 8s), Fallback + Checkpoint로 고지연·불안정성 헷징 LLM Resilience ~12s I/O-bound (Vision 3s + Answer 8s), Fallback + Checkpoint hedges latency & instability
📦
기술 응집도 도메인별 설정 분리로 ConfigMap/Secret 관리 단순화 Tech cohesion Domain-specific configs simplify ConfigMap/Secret management
📊
Radon 복잡도 2,120 블록 평균 A (2.28) — 낮은 복잡도 유지 Radon complexity 2,120 blocks avg A (2.28) — low complexity maintained
🧪
테스트 커버리지 Unit 88%+, Integration 핵심 플로우 중심 Test Coverage Unit 88%+, Integration core flow focused
03

시스템 아키텍처 System Architecture

PWA 기반 프론트엔드와 연동되는 24-Node 분산 클러스터 아키텍처입니다. 24-Node distributed cluster architecture integrated with PWA-based frontend.

🏗️ 전체 시스템 아키텍처 🏗️ System Architecture Overview

Eco² System Architecture

📊 데이터 흐름 요약 📊 Data Flow Summary

📱 서비스 흐름 (PWA → Backend → LLM) 📱 Service Flow (PWA → Backend → LLM)
📱
PWA Client
React + Vite React + Vite
🌐
Edge Layer
ALB + Istio
🔐
Auth
ext-authz
⚙️
7 Services
FastAPI
📨
Integration
MQ + Workers
🤖
LLM Agent
GPT/Gemini
👁️ Observability Layer — 모든 계층 실시간 모니터링 👁️ Observability Layer — Real-time monitoring across all layers
Prometheus Grafana Jaeger Kibana AlertManager

🤖 LLM Pipeline + Async SSE 🤖 LLM Pipeline + Async SSE

🧠 Scan AI Pipeline (Modular RAG) 🧠 Scan AI Pipeline (Modular RAG)
AI Researcher AI Researcher @taemin-steve
👁️
Vision LLM
Pre-Retrieval
📋
Rule Engine
온누리 규정 KB
💬
Answer LLM
Post-Retrieval
↑ inject
System Prompt
분류 기준
↑ inject
YAML KB
167개 품목
↓ output
JSON Output
Structured
💡 각 모듈 클릭 시 상세 보기 💡 Click each module for details
🤖 Chat Agent 완료 🤖 Chat Agent Complete
Backend / Infra Backend / Infra @mangowhoiscloud
🎯
Intent
9분류
Router
Send API
🔧
Subagents
11종 ∥
📦
Aggregator
Collect
💬
Answer
Token v2
intent.txt
Enrichment
Function Def
Lamport Clock
notify_token_v2
🧠 Multi-Model (GPT-5.2 / Gemini 3)
⚙️ LangGraph StateGraph
💡 모듈 클릭 시 상세 Click for details
📦 Scan: Celery + Gevent 🔍 클릭하여 상세 📦 Scan: Celery + Gevent 🔍 Click for details
Backend / Infra Backend / Infra @mangowhoiscloud
⛓️
Celery Chain
4-Stage
🐰
RabbitMQ
Job Queue
🌊
Event Bus
3-Tier Redis
📺
SSE
Client
Pool gevent 100
🎯 SLA (VU 500) 100%
E2E p95 83.3s
Throughput 367.9 req/m
🤖 Chat: Taskiq + asyncio 완료 🔍 각 단계 클릭 🤖 Chat: Taskiq + asyncio Complete 🔍 Click each stage
Backend / Infra Backend / Infra @mangowhoiscloud
🔄
Taskiq
asyncio
🐰
RabbitMQ
Quorum
⚙️
LangGraph
StateGraph
🌊
Event Bus
Token v2
📺
SSE
Client
Checkpointer ReadThroughCheckpointer
Token XRANGE Recovery
Memory 3-Tier (Redis + PG)
04

기술 스택 Tech Stack

프로젝트에서 활용한 주요 기술들입니다. Key technologies used in the project.

Infrastructure

AWS EC2 Terraform Ansible Kubernetes Istio ArgoCD

Backend

Python 3.11 FastAPI SQLAlchemy 2.0 Celery Gevent Taskiq Go

Data & Messaging

PostgreSQL Redis Redis Streams RabbitMQ Elasticsearch

Observability

Prometheus Grafana AlertManager Slack Fluent Bit Kibana Jaeger Kiali OpenTelemetry LangSmith

LLM

GPT-5.2 Gemini-3.0-flash OpenAI Agents SDK Gemini SDK LangGraph

Scaling

KEDA HPA Prometheus Adapter
05

프로젝트 타임라인 Project Timeline

2025.10.30 - 11.20
🏗️ 14-nodes 클러스터 구축 & GitOps 🏗️ 14-node Cluster Setup & GitOps
AWS 14-nodes Kubernetes 클러스터 구축, ArgoCD App-of-Apps + Sync Wave 패턴 적용 Built AWS 14-node Kubernetes cluster, applied ArgoCD App-of-Apps + Sync Wave patterns
2025.11.20 - 11.30
🖥️ 7개 도메인 서버 개발 🖥️ 7 Domain Server Development
Auth, Character, Chat, Scan, Location, Users, Image 7개 마이크로서비스 개발 Developed 7 microservices: Auth, Character, Chat, Scan, Location, Users, Image
2025.12.01 - 12.02
🏆 FE-BE 연동 & 새싹톤 본선 우수상 🏆 FE-BE Integration & SeSACTHON Excellence Award
프론트엔드-백엔드 연동, 2025 AI 새싹톤 본선 우수상 수상 (Top 4) Frontend-Backend integration, 2025 AI SeSACTHON Finals Excellence Award (Top 4)
2025.12.08 - 12.17
🕸️ Istio Service Mesh & Auth Offloading 🕸️ Istio Service Mesh & Auth Offloading
Istio Sidecar Injection, ext-authz 서버 개발, gRPC 마이그레이션, RPS 1,200+ 달성 Istio Sidecar Injection, ext-authz server, gRPC migration, achieved RPS 1,200+
2025.12.18 - 12.25
📨 RabbitMQ + Celery 비동기 아키텍처 📨 RabbitMQ + Celery Async Architecture
AI 파이프라인 비동기화, 4단계 Celery Chain 구현, Gevent Pool 전환 Async AI pipeline, 4-stage Celery Chain, Gevent Pool migration
2025.12.20 - 12.22
📊 Observability 스택 구축 📊 Observability Stack Setup
ECK 기반 EFK 스택, OpenTelemetry 분산 트레이싱, Kiali 시각화 ECK-based EFK stack, OpenTelemetry distributed tracing, Kiali visualization
2025.12.26 - 01.01
🌊 Event Relay Layer & 부하 테스트 🌊 Event Relay Layer & Load Testing
Streams + Pub/Sub + State KV 3-Tier 아키텍처, 500 VU SLA, 600 VU 포화지점 도출 Streams + Pub/Sub + State KV 3-tier architecture, 500 VU SLA, 600 VU saturation point
2025.12.31 - 2026.01.13
🏛️ Clean Architecture 마이그레이션 🏛️ Clean Architecture Migration
7개 도메인 점진적 마이그레이션, DIP/Port & Adapter/CQRS 적용, Info 서비스 추가 개발 (뉴스 피드) Incremental migration of 7 domains, DIP/Port & Adapter/CQRS, Info service addition (News Feed)
2026.01.15
🔄 Cursor → Claude Code 컨텍스트 마이그레이션 🔄 Cursor → Claude Code Context Migration
Sidebar 병렬 세션 + Worktree 분기(Human-in-the-Loop)에서 Task 도구 기반 Agent Fleet 자율 운용으로 전환, 세션 지식을 docs/ KB + .claude/skills/로 코드화하여 영속적 컨텍스트 확보 Migrated from Sidebar parallel sessions + Worktree branching (Human-in-the-Loop) to Task tool-based Agent Fleet autonomous operation, codifying session knowledge into docs/ KB + .claude/skills/ for persistent context
2026.01.13 - 01.25
🤖 Chat 도메인 Agentic Workflow 전환 🤖 Chat Domain Agentic Workflow Transition
LangGraph 기반 Multi-Agent 아키텍처로 Chat 도메인 고도화, 도구 호출 + 상태 관리 + 스트리밍 통합 Upgrading Chat domain to LangGraph-based Multi-Agent architecture, Tool calling + State management + Streaming integration
2026.01.27 - 01.28
📊 VU 1000 부하 테스트 · 프로덕션 레벨 처리량 확보 📊 VU 1000 Load Test · Production-Level Throughput Achieved
Redis Pub/Sub Shard 최적화로 SSE Gateway 연결 O(N)→O(4) 절감, Scan API(LLM×2) 1000 VU 97.8% 완료율 · 373 RPM · p95 173s 달성, 프로덕션 레벨 처리량과 가용 유저풀 확보 Redis Pub/Sub Shard optimization reduced SSE Gateway connections O(N)→O(4), Scan API(LLM×2) 1000 VU 97.8% success · 373 RPM · p95 173s, production-level throughput and available user pool secured