분산 시스템 설계와 성능 최적화에 집중하는 백엔드 엔지니어입니다.
분산 시스템에 대한 지속적인 관심으로, Ethereum 블록체인 기반 분산 경매/유통 플랫폼 캡스톤에서 시작해 Rakuten CNP(Enterprise Kubernetes, 로우레벨 C 분산 스토리지 서버) 실무를 거쳐, 현재는 LLM 기반 분산 비동기 클러스터를 설계·개발·운영하며 백엔드 및 인프라 역량을 확장·고도화하고 있습니다.
Google DeepMind의 World Model 연구에서 영감을 받아, 분산 클러스터를 World Model로, AI 에이전트를 LLM으로 동치하여 상호작용 기반 개발 방식을 적용하고 있습니다. 코드베이스와 Observability 피드백 루프를 통해 클러스터와 에이전트가 함께 발전합니다.
기술 블로그를 통해 리서치부터 설계, 개발, 배포, 운영에 이르는 전 과정을 꾸준히 기록합니다.
Backend engineer focused on distributed systems design and performance optimization.
With a continuous interest in distributed systems, I started with an Ethereum blockchain-based distributed auction/distribution platform capstone, gained hands-on experience at Rakuten CNP (Enterprise Kubernetes, low-level C distributed storage server), and am currently designing, developing, and operating LLM-based distributed asynchronous clusters while expanding and advancing my backend and infrastructure capabilities.
Inspired by Google DeepMind's World Model research, I apply an interaction-based development approach by equating distributed clusters to World Models and AI agents to LLMs. The cluster and agents evolve together through codebase and Observability feedback loops.
I consistently document the entire process from research to design, development, deployment, and operations through my technical blog.
Development Timeline
2017.03 - 2023.08부산대학교 컴퓨터공학부Pusan National University정보컴퓨터공학과 공학사 (군복무: 2018.02-2019.12)B.S. in Computer Science (Military: 2018.02-2019.12)
2022.02 - 2022.11Ethereum 경매 플랫폼Ethereum Auction PlatformSolidity, Web3.js, IPFS 기반 수산물 경매Seafood auction based on Solidity, Web3.js, IPFS
2024.01 - 2024.06UE5 PVE Game게임 엔진 개발 및 Unreal Engine 5 프로젝트Game engine development and Unreal Engine 5 project
2024.06 - 2024.11KakaoTech BootcampLLM-Cloud 기반 웹/앱 서버 인프라 개발LLM-Cloud based web/app server infrastructure
2024.12 - 2025.08Rakuten Symphony KoreaCloud BU, CNP Storage 개발Cloud BU, CNP Storage Development
Rakuten Symphony Korea - Cloud Engineer - Jr. Storage Developer (Server-side)
Dec 2024 - Aug 2025
Cloud BU | 정규직 | Rakuten CNP Storage 서버 유지 보수 및 Rakuten OStore 신규 개발
Cloud BU | Full-time | Rakuten CNP Storage server maintenance and Rakuten OStore new development
Robin Storage v5.5.0:Rakuten Mobile(일본)과 1&1(독일) 글로벌 2,000만 유저 통신망 기반 CNP 분산 스토리지 서버(C/RPC) — 스냅샷 로딩 시 RDVM 상태 수집 RPC 개발, RDVM_STATE 동시 접근 crash 수정 (mutex_lock 검증 로직 추가), SEGMENT_LOCK 성능 저하 버그 픽스 (down_write -> down_read 전환)CNP distributed storage server (C/RPC) for Rakuten Mobile (Japan) and 1&1 (Germany) global 20M user telecom networks — Developed RDVM state collection RPC during snapshot loading, fixed RDVM_STATE concurrent access crash (added mutex_lock validation), fixed SEGMENT_LOCK performance degradation bug (down_write -> down_read)
Rakuten OStore v1.0.0:Rakuten 그룹사 및 외부 엔터프라이즈 고객(Google 등) 대상 MinIO/S3 대체 Enterprise Object Storage — Install-time root account 생성 후 분산 게이트웨이 캐시에 주입, Eventual Consistency로 논리적 정합성과 빠른 성능 확보, 유저 deactivate 시 access key 미삭제 버그 수정Enterprise Object Storage replacing MinIO/S3 for Rakuten Group and external enterprise customers (Google, etc.) — Install-time root account creation with distributed gateway cache injection, ensured logical consistency and fast performance with Eventual Consistency, fixed access key not deleted on user deactivation
Global Collaboration:Rakuten Mobile & Symphony 소속 US, India, JP 엔지니어와 Jira/Confluence/GitOps 기반 개발 협업, 소속 팀 대상 영문 기술 발표 경험 다수Development collaboration with US, India, JP engineers from Rakuten Mobile & Symphony via Jira/Confluence/GitOps, multiple English technical presentations to team
AwardsAwards
2025 새싹 해커톤 우수상2025 SeSACTHON Excellence Award — 본선 4위/32팀 (예선 181팀) | 주최: 서울특별시, 운영: 데이콘 (Dec 2025)Finals 4th/32 teams (Prelims 181 teams) | Host: Seoul Metropolitan Government, Operated by: DACON (Dec 2025)
GPT/Gemini Vision + Rule-based Retrieval 기반 AI 분리수거 도우미 | K8s 기반 24-Node 마이크로서비스 클러스터
AI recycling assistant based on GPT/Gemini Vision + Rule-based Retrieval | K8s-based 24-Node microservices cluster
Performance: ext-authz VU 2,500 RPS 1,477, p99 275ms, 로컬 캐시local cache p99 2.3µs | Scan API SSE VU 300 완료율completion rate 99.9% Scan API Event Relay 도입Introduction: VU 50/99% → VU 80/33% (이전before) → VU 250/99.9%, VU 400/98.9%, VU 500/94% (현재current) SSE Scan 포화 지점Saturation Point (VU 600): Redis Pool 20→100, Celery Broker Pool 10→50, Greenlet M:1 단일 노드 CPU 포화 분석·해결single node CPU saturation analysis & resolution
Agent-Driven Development:GitOps로 배포 클러스터와 동기화된 코드베이스를 개발자와 에이전트가 공유하는 단일 진실 공급원으로 삼고, 터미널/CLI/Observability를 통해 에이전트가 클러스터 상태를 실시간으로 수집·파악하며, Foundations·Plans·Reports 등 구조화된 문서를 자체 RAG로 축적하여 히스토리와 아키텍처 컨텍스트를 이해한 상태에서 피드백 루프에 참여하도록 설계Codebase synchronized with deployment cluster via GitOps serves as single source of truth shared by developers and agents, agents collect and understand cluster state in real-time via terminal/CLI/Observability, and participate in feedback loops with accumulated history and architecture context through self-RAG of structured documents (Foundations, Plans, Reports)
▸ Backend
DOMA + Clean Architecture:24-Node 클러스터에 배치된 7개 도메인 서비스, SSE Gateway/Event Router/Worker 등 Integration 컴포넌트, MQ/Redis Streams 등 다수의 분산 시스템을 용이하게 오케스트레이션·조합하기 위해 적용 — 도메인별 독립 서비스/워커/스키마 분리(DOMA), 각 서비스 내부는 Port/Adapter 기반 4-Layer 분리, CQRS로 Command/Query 책임 분리, 의존성 역전으로 Adapter 교체 용이성 확보Applied to easily orchestrate 7 domain services deployed on 24-Node cluster, Integration components (SSE Gateway/Event Router/Worker), and multiple distributed systems (MQ/Redis Streams) — Domain-independent service/worker/schema separation (DOMA), Port/Adapter-based 4-Layer separation within each service, Command/Query responsibility separation with CQRS, easy Adapter replacement via dependency inversion
Scan API Pipeline: Vision(LLM) → Rule-based Retrieval → Answer(LLM) → Reward, Structured JSON + 시스템 프롬프트로 결정론적으로 구성한 단방향 파이프라인 — LLM 2회 호출의 8-10초 high-latency I/O bound 워크로드 특성상 Gevent(Greenlet 비동기) 선택, MQ + Event Relay로 분산 비동기 큐잉/오케스트레이션, SSE로 클라이언트에게 실시간 진행상황 스트리밍Deterministic unidirectional pipeline with Structured JSON + system prompts — Chose Gevent (Greenlet async) for 8-10s high-latency I/O bound workload with 2 LLM calls, distributed async queuing/orchestration with MQ + Event Relay, real-time progress streaming to clients via SSE
Multi-LLM & Resilience:GPT/Gemini Vision API 런타임 선택 지원, Strategy 패턴 기반 LLM Provider 추상화 — 모델사 API 불안정성 헷징을 위해 Stateless Reducer Pattern + 체크포인팅 + Fallback 도입, 중간 실패 시 LLM 재호출 없이 체크포인트에서 복구Runtime GPT/Gemini Vision API selection, Strategy pattern-based LLM Provider abstraction — Introduced Stateless Reducer Pattern + checkpointing + Fallback to hedge against model API instability, recovery from checkpoint without LLM re-call on intermediate failure
Event Relay Layer:단일 호출에 LLM API 2회 호출되는 고I/O 바운드 파이프라인의 동시 접속 부하 취약점 해결 — Redis Streams + Pub/Sub + State KV 기반 3-tier 아키텍처, Event Router(Consumer Group, Lua Script 멱등성), SSE Gateway(Pub/Sub 구독, State 복구) — SLA 기준 VU 50→300 (600% 향상), 시스템 포화 지점 VU 80→500 (625% 향상)Resolved concurrent connection load vulnerability in high I/O bound pipeline with 2 LLM API calls per request — 3-tier architecture based on Redis Streams + Pub/Sub + State KV, Event Router (Consumer Group, Lua Script idempotency), SSE Gateway (Pub/Sub subscription, State recovery) — VU 50→300 (600% improvement) by SLA, system saturation point VU 80→500 (625% improvement)
Auth Offloading (ext-authz):모든 호출이 JWT/Blacklist 검증을 거치는 클러스터 글로벌 초크 → 고성능 경량 서버(Go gRPC)로 분리, RS256 JWT/JWKS 검증, HPA 2→4 pods 자동 스케일링Cluster global choke with all calls going through JWT/Blacklist verification → Separated to high-performance lightweight server (Go gRPC), RS256 JWT/JWKS verification, HPA 2→4 pods auto-scaling
Persistence Offloading:강결합 동기 로직(유저 생성) 제외, Service Layer의 Persistence 직접 접근 제거 → 모든 영속성 작업을 Integration Layer(RabbitMQ + Worker)로 위임, Eventual Consistency 기반 정합성 보장Except for tightly coupled sync logic (user creation), removed direct Persistence access from Service Layer → Delegated all persistence operations to Integration Layer (RabbitMQ + Worker), consistency guaranteed via Eventual Consistency
Local Cache Broadcasting:CQRS 분리로 READ 작업 비율이 집중된 도메인(ext-authz JWT AuthN/AuthZ 검증, Character catalog)에 한정 적용, RabbitMQ Fanout 기반 로컬 캐시 동기화로 Persistence Layer 대비 저레이턴시 접근Applied only to domains with concentrated READ operations (ext-authz JWT AuthN/AuthZ verification, Character catalog) via CQRS separation, low-latency access compared to Persistence Layer via RabbitMQ Fanout-based local cache synchronization
Outbox Pattern:Redis Outbox + auth-relay Worker로 메시지 발행 보장, At-Least-Once + 멱등성 처리로 Exactly-Once Semantics 구현Guaranteed message publishing with Redis Outbox + auth-relay Worker, Exactly-Once Semantics via At-Least-Once + idempotency handling
Worker Concurrency Strategy:워크로드 특성에 맞춘 동시성 모델 분리 — I/O 바운드 워커(LLM 호출, DB 영속화)는 Gevent Pool, CPU 바운드 워커(캐릭터 매칭 로직)는 Thread Pool로 구성하여 리소스 효율 최적화Concurrency model separation based on workload characteristics — Gevent Pool for I/O bound workers (LLM calls, DB persistence), Thread Pool for CPU bound workers (character matching logic) for resource efficiency optimization
▸ Infrastructure
GitOps & Canary:ArgoCD App-of-Apps, Sync-wave(00~70)로 의존성 기반 배포 순서 제어, Helm Charts + Kustomize overlay — 코드베이스 Git commit만으로 클러스터 상태 수렴(Zero-touch Deployment), Canary 배포로 단일 클러스터 내 서비스/개발 환경 격리ArgoCD App-of-Apps, dependency-based deployment order control with Sync-wave(00~70), Helm Charts + Kustomize overlay — Cluster state convergence with just Git commit (Zero-touch Deployment), service/dev environment isolation within single cluster via Canary deployment
CI Pipeline:용도별(services/workers/middleware/manifest) 파이프라인 분리, path-based 트리거로 변경 감지 → Black/Ruff lint → Pytest → Build/Push Matrix 전략 — GitHub pre-commit hook과 더불어 코드 퀄리티 검수에 집중, Radon 복잡도 분석으로 AI 에이전트 생성 코드 품질 지속 관리Pipeline separation by purpose (services/workers/middleware/manifest), change detection via path-based triggers → Black/Ruff lint → Pytest → Build/Push Matrix strategy — Focus on code quality inspection with GitHub pre-commit hooks, continuous AI agent-generated code quality management via Radon complexity analysis
Helm → Operator Migration:Bitnami 등 패키징 의존적 Helm Charts에서 Operator 기반으로 마이그레이션 — CR(Custom Resource)로 선언적 관리, 클러스터 형성 및 확장에 유리Migration from packaging-dependent Helm Charts (Bitnami, etc.) to Operator-based — Declarative management with CR (Custom Resource), advantageous for cluster formation and scaling
RabbitMQ Topology CR:Queue/Exchange/Binding을 Kubernetes CR로 선언적 관리, Named Direct Exchange로 1:N 라우팅 지원 — 1번 publish로 다중 Consumer 전달(reward → character + users), 네트워크 효율화 및 원자성 보장, Exchange 타입별 용도 분리(Direct/Fanout/DLX)Declarative Queue/Exchange/Binding management via Kubernetes CR, 1:N routing support with Named Direct Exchange — Multiple Consumer delivery with single publish (reward → character + users), network efficiency and atomicity guarantee, purpose separation by Exchange type (Direct/Fanout/DLX)
5-Layer Architecture:Edge→Service→Integration→Persistence, Platform — Data Plane 계층 간 의존성을 상하위 1계층으로 한정해 고복잡도 분산환경 오케스트레이션·확장 용이하도록 설계·개발·배포, 서비스별 독립 노드 마이크로서비스를 24-Node Self-managed Kubernetes(kubeadm)로 오케스트레이션, Istio Service Mesh(mTLS, VirtualService), Calico CNI, PostgreSQL(단일 DB, 도메인별 독립 스키마), 용도별 분리된 Redis Cluster(Streams/Pub-Sub/Cache/Outbox)Edge→Service→Integration→Persistence, Platform — Designed/developed/deployed to easily orchestrate/scale high-complexity distributed environment by limiting Data Plane layer dependencies to adjacent layers, orchestrating per-service independent node microservices with 24-Node Self-managed Kubernetes (kubeadm), Istio Service Mesh (mTLS, VirtualService), Calico CNI, PostgreSQL (single DB, per-domain independent schema), purpose-separated Redis Cluster (Streams/Pub-Sub/Cache/Outbox)
Observability: Prometheus, Grafana, Alertmanager(Slack), OpenTelemetry, Jaeger, Kiali, EFK Stack으로 분산 트레이싱 및 로그 중앙화 for distributed tracing and log centralization
KEDA:큐잉 환경에서 HPA(컴퓨팅 리소스) 관측만으로는 수평확장 제어에 한계 → 이벤트 관측 데이터(RabbitMQ 큐 길이, Redis Streams Pending) 기반 오토스케일링Limitations in horizontal scaling control with only HPA (computing resources) observation in queuing environments → Auto-scaling based on event observation data (RabbitMQ queue length, Redis Streams Pending)
DREAM - Interactive Story Generation Service | Backend & Infrastructure
Sep 2024
LLM & RAG 기반 시니어 꿈 실현 스토리텔링 서비스 | KakaoTech Hackathon — Eco² 이전, 단일 노드 환경에서 분산 아키텍처의 초안을 실험한 프로젝트
Senior dream realization storytelling service based on LLM & RAG | KakaoTech Hackathon — Pre-Eco² project experimenting with distributed architecture drafts in single-node environment
Single-Node Microservices:Docker 네트워크로 단일 EC2에서 Spring Backend, FastAPI AI Server, Persistence Layer(Elasticsearch, MySQL)를 컨테이너 단위 분리 — Eco² 마이크로서비스 아키텍처의 원형Container-level separation of Spring Backend, FastAPI AI Server, Persistence Layer (Elasticsearch, MySQL) on single EC2 via Docker network — Prototype of Eco² microservices architecture
Nginx Reverse Proxy:단일 진입점에서 path-based 라우팅(/api → Backend, /ai → AI Server)으로 서비스 간 트래픽 분배 — ALB + Bridge Ingress Controller + Istio Virtual Routing의 전신Traffic distribution between services via path-based routing (/api → Backend, /ai → AI Server) from single entry point — Predecessor to ALB + Bridge Ingress Controller + Istio Virtual Routing
Legacy CI/CD:GitHub Actions + S3 + CodeDeploy로 경량 배포 파이프라인 구축, 배포 시간 80% 단축 — ArgoCD GitOps 이전 단계Lightweight deployment pipeline with GitHub Actions + S3 + CodeDeploy, 80% deployment time reduction — Pre-ArgoCD GitOps stage
LLM + RAG:Elasticsearch 벡터 검색 + LangChain RAG로 시니어 꿈 기반 스토리/이미지 생성 — Eco² Scan API 파이프라인의 초기 실험Senior dream-based story/image generation with Elasticsearch vector search + LangChain RAG — Early experiment for Eco² Scan API pipeline
리소스 최적화Resource Optimization:Swap 메모리, Docker 리소스 제한으로 EC2 안정화 (CPU 89%→40%) — 제한된 환경에서의 성능 튜닝 경험EC2 stabilization with Swap memory, Docker resource limits (CPU 89%→40%) — Performance tuning experience in constrained environments
Web3.0-based decentralized auction system | Ensuring transparency and reliability in trading and distribution processes
Smart Contract Backend:ERC-1155 기반 상품/경매/화폐(MMT) Multi-Token 단일 컨트랙트 통합, 경매 비즈니스 로직(입찰/낙찰/정산/취소) + Governance 권한 관리 온체인 구현ERC-1155 based product/auction/currency (MMT) Multi-Token single contract integration, on-chain implementation of auction business logic (bid/award/settlement/cancel) + Governance permission management
Supply Chain Traceability:유통 이력 추적 체인 구현, 콜드체인 환경 데이터(온습도) 온체인 기록, 배송 상태 FSM(Empty→Prepare→Delivery)Distribution history tracking chain implementation, cold chain environment data (temperature/humidity) on-chain recording, delivery status FSM (Empty→Prepare→Delivery)