🏆 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

67+
블로그 포스트 Blog Posts
24
클러스터 노드 Cluster Nodes
2,500 VU
1,500+ RPS Baseline 1,500+ RPS Baseline
300 VU
SLA (Scan SSE) SLA (Scan SSE)
01

Agent-Driven Development Agent-Driven Development

Google DeepMind의 World Model 아키텍처를 개발 프로세스에 투영했습니다. 24-노드 분산 클러스터는 Agent가 탐색하고 상호작용하는 '세계(World)'로 기능하며, LLM Agent는 코드베이스 구조와 실시간 Observability 메트릭을 컨텍스트로 주입받아 환경의 현재 상태를 파악하고 다음 행동을 결정합니다. 배포 → 관측 → 피드백의 연속적인 사이클 속에서 Agent의 환경 인식은 점차 정교해지고, 개발자와 클러스터는 함께 진화합니다. This development process is a projection of Google DeepMind's World Model architecture. The 24-node distributed cluster functions as the 'World' that the Agent explores and interacts with, while the LLM Agent receives codebase structure and real-time Observability metrics as context to comprehend the current state and determine subsequent actions. Through the continuous Deploy → Observe → Feedback cycle, the Agent's environmental awareness progressively refines, and both developer and cluster evolve in tandem.

🔁
Feedback Loop
지속적 개선 Continuous
🧑‍💻
Developer
설계 & 리뷰 Design & Review
의사결정과 설계 주도
코드 리뷰 & 품질 관리
아키텍처 방향 설정
Decision-making & design lead
Code review & quality control
Architecture direction
🤖
AI Agent
구현 & 디버깅 Implement & Debug
코드 생성 & 리팩토링
디버깅 & 문서화 자동화
Self-RAG 기반 학습
Code generation & refactoring
Debugging & documentation
Self-RAG based learning
☸️
Cluster
World Model World Model
24-Node K8s Runtime
GitOps 기반 상태 관리
실제 실행 환경 제공
24-Node K8s Runtime
GitOps-based state management
Real execution environment
📊
Observability
피드백 수집 Feedback
로그 & 메트릭 수집
분산 트레이싱
에러 감지 → Agent 피드백
Logs & metrics collection
Distributed tracing
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
📚 Foundations 근원 기술 17편 17 core tech articles
🔧 Applied 응용 기술 Applied tech
📋 Plans 설계 문서 Design docs
📈 Reports 결과 기록 Result records
02

프로젝트 카테고리 Project Categories

7개 핵심 도메인에서의 설계, 구현, 트러블슈팅 경험을 기록했습니다. Documented design, implementation, and troubleshooting experiences across 7 core domains.

☸️

Kubernetes Cluster + GitOps + Service Mesh

8 posts
AWS Terraform ArgoCD Istio DOMA

AWS 기반 24-노드 Kubernetes 클러스터를 IaC로 구축하고, DOMA(Domain-Oriented Microservices Architecture) 원칙에 따라 도메인별 노드 격리와 라벨 계층을 설계했습니다. ArgoCD App-of-Apps + Sync Wave로 선언적 배포를 구현하고, Istio Service Mesh로 서비스 간 통신을 표준화했습니다. Built a 24-node Kubernetes cluster on AWS using IaC, designed domain-specific node isolation and label hierarchy following DOMA (Domain-Oriented Microservices Architecture) principles. Implemented declarative deployments with ArgoCD App-of-Apps + Sync Wave, standardized inter-service communication with Istio Service Mesh.

🏗️
24-nodes 클러스터 Terraform + Ansible 구축 24-node cluster via Terraform + Ansible
🏷️
도메인별 노드 격리 Taint/Toleration + K8s Label 계층 Domain Node Isolation Taint/Toleration + K8s Label hierarchy
🔄
App-of-Apps + Sync Wave 의존성 순서 보장 App-of-Apps + Sync Wave dependency ordering
🕸️
Istio + gRPC mTLS 자동 적용, 내부 통신 최적화 Istio + gRPC automatic mTLS, internal communication optimization
🔐

Auth Offloading (ext-authz)

4 posts
Envoy Go gRPC Redis HPA Fanout

Envoy ext_authz를 활용해 인증/인가 로직을 API 서버에서 분리했습니다. Go 기반 gRPC 서버로 구현하고, Redis Pool 튜닝 → Local Cache + Fanout 브로드캐스트로 2,500 VU 기준 RPS 1,500+ 클러스터 Baseline을 달성했습니다. Separated authentication/authorization logic from API servers using Envoy ext_authz. Implemented with Go-based gRPC server, achieved RPS 1,500+ cluster baseline at 2,500 VU via Redis Pool tuning → Local Cache + Fanout broadcast.

📊
2,500 VU Stress Test RPS 42 병목지점 도출 2,500 VU Stress Test RPS 42 bottleneck identified
🔧
Redis Pool 튜닝 RPS 42 → 1,100 달성 Redis Pool tuning RPS 42 → 1,100 achieved
🚀
Local Cache + Fanout RPS 1,500+ 클러스터 Baseline Local Cache + Fanout RPS 1,500+ cluster baseline
🧹
도메인 공통 모듈 제거 7개 서비스 독립성 확보 Removed shared modules 7 services decoupled
📊

Observability

7 posts
ECK Elasticsearch Kibana Fluent Bit Jaeger Kiali

ECK(Elastic Cloud on Kubernetes) 기반 EFK 스택을 구축하고, ECS(Elastic Common Schema)로 구조화된 로깅을 구현했습니다. OpenTelemetry + Jaeger로 분산 트레이싱을 통합하고, Kiali로 서비스 메시를 시각화했습니다. Built EFK stack on ECK (Elastic Cloud on Kubernetes), implemented structured logging with ECS (Elastic Common Schema). Integrated distributed tracing with OpenTelemetry + Jaeger and visualized service mesh with Kiali.

📝
14-nodes 로그 중앙화 Fluent Bit → ES Centralized 14-node logs Fluent Bit → ES
🏷️
ECS 구조화 로깅 7개 도메인 적용 ECS structured logging across 7 domains
🔗
trace_id 연결 로그-트레이스 통합 trace_id correlation log-trace integration
🗺️
Kiali 토폴로지 실시간 트래픽 시각화 Kiali topology real-time traffic visualization
📨

Message Queue

15 posts
RabbitMQ Celery Gevent Fanout DLQ

RabbitMQ + Celery 기반 비동기 아키텍처를 설계하고, AI 파이프라인(vision→rule→answer→reward)을 4단계 Celery Chain으로 구현했습니다. 읽기 비중이 높은 API에 한해 Fanout Exchange로 Worker 로컬 캐시 동기화를 구현해 DB 조회를 제거했습니다. Designed async architecture with RabbitMQ + Celery, implemented AI pipeline (vision→rule→answer→reward) as 4-stage Celery Chain. For read-heavy APIs, implemented Worker local cache sync via Fanout Exchange, eliminating DB queries.

⛓️
4단계 Celery Chain Vision→Rule→Answer→Reward 4-stage Celery Chain Vision→Rule→Answer→Reward
🐒
Gevent 100 greenlets I/O-bound 최적화 Gevent 100 greenlets I/O-bound optimization
📡
로컬 캐시 Fanout DB 조회 50ms → 0.01ms Local Cache Fanout DB query 50ms → 0.01ms
☠️
DLQ 재처리 Celery Beat 스케줄링 DLQ retry Celery Beat scheduling
🌊

Event Streams & Scaling

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

Redis Streams(내구성) + Pub/Sub(실시간) + State KV(복구)를 조합한 Event Relay Layer를 설계했습니다. LLM Agent 기반 Scan 파이프라인(Vision→Rule→Answer→Reward)의 실시간 이벤트 전달을 담당합니다. Designed Event Relay Layer combining Redis Streams (durability) + Pub/Sub (realtime) + State KV (recovery). Handles real-time event delivery for LLM Agent-based Scan pipeline (Vision→Rule→Answer→Reward).

300 VU SLA 99.9% 완료율, 402 req/min 300 VU SLA 99.9% completion, 402 req/min
⚠️
400 VU 포화구간 (98.9%) 400 VU saturation zone (98.9%)
🔥
500 VU 한계점 94% 완료율, 단일 노드 한계 500 VU limit 94% completion, single node limit
⚖️
KEDA 자동 스케일링 scan-worker 1→3, scan-api 1→3 KEDA auto-scaling scan-worker 1→3, scan-api 1→3
🔄

Eventual Consistency

5 posts
Persistence Offloading Worker Queue Batch Processing Idempotency

Persistence Offloading 패턴으로 Application Layer와 Persistence Layer의 관심사를 철저히 분리했습니다. API 서버는 비즈니스 로직에만 집중하고, DB Write 작업은 전용 Worker Queue로 이관하여 비동기 배치 처리합니다. 이를 통해 응답 지연을 최소화하고, 트랜잭션 병목을 제거해 처리량을 극대화했습니다. Implemented Persistence Offloading pattern to strictly separate Application and Persistence Layer concerns. API servers focus solely on business logic while DB write operations are delegated to dedicated Worker Queues for async batch processing. This minimizes response latency and maximizes throughput by eliminating transaction bottlenecks.

📦
Outbox Pattern 이벤트 발행 원자성 보장 Outbox Pattern atomic event publishing guarantee
📤
Write Offloading DB 쓰기 작업 Worker Queue 이관 Write Offloading DB writes delegated to Worker Queue
Batch Processing 비동기 배치로 트랜잭션 병목 제거 Batch Processing async batch eliminates transaction bottlenecks
🆔
Deterministic UUID 멱등성 키로 중복 처리 방지 Deterministic UUID idempotency keys prevent duplicates
🏛️

Clean Architecture Migration

16 posts
DOMA DIP Port & Adapter CQRS FastAPI

DOMA(Domain-Oriented Microservices Architecture) 원칙에 따라 기존 레거시 코드를 Clean Architecture로 점진적 마이그레이션했습니다. DIP(의존성 역전 원칙)와 Port & Adapter 패턴을 적용하고, 도메인별로 Entity, Use Case, Adapter 계층을 분리했습니다. Incrementally migrated legacy code to Clean Architecture following DOMA (Domain-Oriented Microservices Architecture) principles. Applied DIP and Port & Adapter patterns, separated Entity, Use Case, Adapter layers per domain.

📐
7개 도메인 마이그레이션 Auth, Character, Chat, Scan... 7 domain migration Auth, Character, Chat, Scan...
🔌
Port & Adapter 인프라 계층 교체 용이성 Port & Adapter infrastructure swappability
🎭
CQRS 적용 Command/Query 모델 분리 CQRS applied Command/Query model separation
🚀
Canary 배포 무중단 마이그레이션 Canary deployment zero-downtime migration
03

시스템 아키텍처 System Architecture

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

📱 서비스 흐름 (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

🧠 AI Pipeline 설계 (LLM + Prompt Engineering) 🧠 AI Pipeline Design (LLM + Prompt Engineering)
AI Researcher AI Researcher @taemin-steve
👁️
Vision LLM
Pre-Retrieval
📋
Rule Engine
온누리 규정 KB
💬
Answer LLM
Post-Retrieval
Modular RAG 패턴 — Pre/Post-Retrieval LLM 구조로 Vision LLM이 이미지를 분석하고, 온누리 재활용 품목별 규정을 구조화한 Knowledge Base에서 규칙 검색 후, Answer LLM이 JSON Structured Output으로 응답 생성. 시스템 프롬프트로 출력 형식과 판단 기준 정의. Modular RAG Pattern — Pre/Post-Retrieval LLM architecture where Vision LLM analyzes images, retrieves from structured On-Nuri recycling regulation Knowledge Base, then Answer LLM generates JSON Structured Output. System prompts define output format and judgment criteria.
⚡ Production-Ready 구현 (Celery + Event Relay) ⚡ Production-Ready Implementation (Celery + Event Relay)
Backend / Infra Backend / Infra @mangowhoiscloud
⛓️
Celery Chain
4-Stage Pipeline
🎁
Reward
Fanout
🌊
Event Relay
3-Tier Redis
📺
SSE Gateway
Client Push
Celery Chain 구성 + Reward Fanout + Event Relay Layer로 서비스 가능 수준 달성 Celery Chain + Reward Fanout + Event Relay Layer for production-ready service
Pool gevent 100 greenlets
Latency ~12초/request
Throughput 402 req/min @300VU

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

┌─────────────────────────────────────────────────────────────────────────────────────────┐ │ AWS ap-northeast-2 (24 Nodes Cluster) │ ├─────────────────────────────────────────────────────────────────────────────────────────┤ │ ┌─────────────────┐ │ │ │ ALB (HTTPS) │ ◄──── External Traffic (PWA: frontend.dev.growbin.app) │ │ └────────┬────────┘ │ │ │ │ │ ┌────────▼────────────────────────────────────────────────────────────────────────┐ │ │ │ Istio Ingress Gateway │ │ │ │ (mTLS, Traffic Management, Canary) │ │ │ └────────┬────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌────────▼────────┐ ┌────────────────┐ │ │ │ ext-authz │────►│ Local Cache │ JWT Blacklist (2500 VU, 1500+ RPS) │ │ │ (Go/gRPC) │ │ + Fanout Sync │ RabbitMQ Fanout → Cache Broadcast │ │ └────────┬────────┘ └────────────────┘ │ │ │ │ │ ┌────────▼─────────────────────────────────────────────────────────────────────────┐ │ │ │ 7 Microservices (FastAPI) │ │ │ │ ┌──────┐ ┌──────────┐ ┌──────┐ ┌──────┐ ┌────────┐ ┌────┐ ┌───────┐ │ │ │ │ │ Auth │ │Character │ │ Chat │ │ Scan │ │Location│ │ My │ │ Image │ │ │ │ │ └──────┘ └──────────┘ └──────┘ └──────┘ └────────┘ └────┘ └───────┘ │ │ │ └──────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │ │ RabbitMQ Cluster (AMQP 0-9-1) │ │ │ │ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ vision.queue │ │ rule.queue │ │ answer.queue │ Celery Chain │ │ │ │ │ (GPT/Gemini) │──│ (Rule Engine) │──│ (GPT-5.2) │ │ │ │ │ └─────────────────┘ └─────────────────┘ └────────┬────────┘ │ │ │ │ │ │ │ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ │ │ │ reward.queue │◄─┤ character.match │◄──────────┘ │ │ │ │ │ (Fire&Forget) │ │ (Local Cache) │ │ │ │ │ └─────────────────┘ └─────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │ │ Event Relay Layer (3-Tier Redis) │ │ │ │ ┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐ │ │ │ │ │ streams-redis │ │ pubsub-redis │ │ state-redis │ │ │ │ │ │ (Durability) │ │ (Realtime) │ │ (Recovery) │ │ │ │ │ │ Redis Streams │ │ Pub/Sub │ │ State KV │ │ │ │ │ └────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘ │ │ │ │ │ │ │ │ │ │ │ └─────────────────────┼─────────────────────┘ │ │ │ │ ▼ │ │ │ │ ┌──────────────────────┐ │ │ │ │ │ Event Router │ XREADGROUP → Pub/Sub Fan-out │ │ │ │ └──────────┬───────────┘ │ │ │ │ ▼ │ │ │ │ ┌──────────────────────┐ │ │ │ │ │ SSE Gateway (HA) │ 300 VU SLA, 500 VU Limit │ │ │ │ └──────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │ │ Observability Stack │ │ │ │ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ │ │ │ │ │Prometheus │ │ Grafana │ │Elasticsearch│ │ Kibana │ │ Jaeger │ │ │ │ │ │ + KEDA │ │ Dashboard │ │ (ECK) │ │ (Logs) │ │ (Traces) │ │ │ │ │ └───────────┘ └───────────┘ └───────────┘ └───────────┘ └───────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────────┐ │ │ │ GitOps (ArgoCD) │ │ │ │ App-of-Apps → Sync Wave → Kustomize Overlays │ │ │ └─────────────────────────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────────────────┘
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 Go

Data & Messaging

PostgreSQL Redis Redis Streams RabbitMQ Elasticsearch

Observability

Prometheus Grafana AlertManager Slack Fluent Bit Kibana Jaeger Kiali

LLM

GPT-5.2 Gemini-3.0-flash Agentic Workflow LangGraph (진행중)

Scaling

KEDA HPA Prometheus Adapter Sentinel HA
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, My, Image 7개 마이크로서비스 개발 Developed 7 microservices: Auth, Character, Chat, Scan, Location, My, 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
2026.01 - Present
🏛️ Clean Architecture 마이그레이션 🏛️ Clean Architecture Migration
7개 도메인 점진적 마이그레이션, DIP/Port & Adapter/CQRS 적용 Incremental migration of 7 domains, DIP/Port & Adapter/CQRS application
🔄 In Progress
🤖 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