왜 LangGraph 도입 후 스파게티가 되었나: 실패에서 배운 구조화
Threads DisquietLangGraph를 도입했는데 코드가 오히려 스파게티가 됐다. 노드 1개짜리 래퍼, 이중 체크포인팅, 3개 Executor에 흩어진 8천여 줄의 중복. 개인 프로젝트에서 직접 겪은 실패의 해부와, 거기서 배운 구조화 원칙을 정리한다.
LangGraph를 도입했는데 코드가 오히려 스파게티가 됐다. 노드 1개짜리 래퍼, 이중 체크포인팅, 3개 Executor에 흩어진 8천여 줄의 중복. 개인 프로젝트에서 직접 겪은 실패의 해부와, 거기서 배운 구조화 원칙을 정리한다.
ChatGPT처럼 한 글자씩 도착하는 응답의 뒤에는 Streamable HTTP가 있다. HTTP/1.1 chunked와 HTTP/2 DATA frame의 차이, LLM 토큰 스트리밍에서 버퍼링을 꺼야 하는 이유와 그 메모리 대가, 그리고 Envoy Gateway·APISIX 선택 기준까지.
LangChain/LangGraph의 연장선에서 등장한 Deep Agents가 무엇인지, 어떻게 발전해 왔는지, 그리고 기술적으로 어떤 특징을 갖는지 정리한다. 핵심은 하나다 — Claude Code가 로컬에서 보여준 Skill 기반 실행 체계가, 이제 웹 애플리케이션 안에서 그대로 재현 가능해졌다는 점이다.
블로그에 큐레이션 피드 섹션을 신설하고, Hermes cron 두 잡이 매일 아침 실데이터를 수집·요약해 md로 발행하고, 스크립트가 커밋·배포까지 끌고 가게 만든 과정. 왜 뉴스 잡에 opus를 버리고 sonnet을 골랐는지, 유형 구분을 색이 아니라 라벨로 한 이유, 발행을 cron이 아니라 스크립트에 맡긴 판단까지.
Linear가 왜 그렇게 빠른지를 아키텍처 관점에서 분해한다. 비결은 최적화가 아니라 '네트워크를 UI의 임계 경로에서 완전히 제거한다'는 설계 결정이다. local-first 동기화 엔진, MobX observable, IndexedDB 세 가지가 맞물려야 50ms 페이지 로드가 나오고, 하나라도 빠지면 무너진다. 앞서 살핀 로컬 우선 도구들과 같은 가치관을, Linear는 앱 아키텍처 수준에서 극단까지 밀어붙인 사례다.
코드팩토리 영상이 정리한 RAG Loop·하네스·루프 엔지니어링 세 단어는 경쟁이 아니라 한 줄로 이어진 발전이다. 하네스(정적 제약) 다음에 오는 루프 엔지니어링은, 내가 매번 AI에게 다시 치던 N번째 프롬프트를 시스템 안으로 옮기는 일이다. 내 블로그 발행 파이프라인이 사실상 루프였다는 걸 돌아보며, 루프가 비효율이 되는 조건까지 짚는다.
GeekNews에서 눈에 멘 도구 네 개 — Slumber(터미널 HTTP 클라이언트), mq(jq형 Markdown 쿼리), korean_bank_tx_crawler(국내 은행 거래내역), OpenLogi(Logitech Options+ 대체). 주제는 제각각이지만 따져보니 하나의 가치관으로 엮여 있었다. 계정·클라우드·텔레메트리 없이 로컬에서 도는, 가볍고 작은 도구. 그리고 넷 중 셋이 Rust로 짜여 있다.
개인 LLM Wiki를 블로그 발행까지 확장하며, 글쓰기 skill을 버리고 위키 기반 workflow로 갈아탄 설계 판단을 정리한다. 발행물이 AI처럼 보이는 원인을 어휘·톤·사고과정으로 좁히고, 발행할수록 위키가 글투를 배우는 구조를 만들었다.
개인 지식베이스를 raw 자료 저장소가 아니라 출처와 승급 경계를 가진 LLM Wiki로 구성하며 남긴 설계 판단. inbox·source·context 3계층으로 '아직 쓰면 안 되는 것'과 '재사용해도 되는 것'을 나누고, Git을 원본 경로로 Obsidian을 조작면으로 둔 운영 구조를 정리한다.
Codex OTEL 로그는 들어왔지만 Zeude 사용자 identity가 빠졌던 장면에서 출발해, AI CLI 관측이 왜 wrapper, identity, proxy, 저장소 설계의 운영 문제인지 정리했다.
Q00/ouroboros(4.2k stars)의 명세 우선 워크플로우, Ralph Loop의 자율 진화 사이클, 그리고 Harness Engineering이 만드는 AI 에이전트 시대의 새로운 개발 패러다임을 정리한다. 이재규의 Ralphthon 우승 사례를 중심으로, 프롬프트 엔지니어링에서 하네스 엔지니어링으로의 전환을 추적한다.
Namespace의 Hugo Santos와 Madison Faulkner가 AI Engineer 채널에서 발표한 'CI/CD Is Dead' 영상을 정리하고, 핵심 질문에 대한 답을 찾는 과정. 에이전트 Harness가 만드는 코드 변화량의 폭발, 이를 수용하기 위한 Continuous Compute 아키텍처, 그리고 '준비한다'는 것이 구체적으로 무엇을 의미하는지까지.
사이드프로젝트 Veil의 v0.3.0 이후 변화. GitHub Actions로 Homebrew tap 자동 업데이트, 핫키 기반 수동 베일 모드 설계, 그리고 Sparkle 프레임워크 도입까지의 결정 과정.
멀티모니터 환경의 불편함에서 시작한 사이드프로젝트. 전체화면 감지 방식 선택, 지원 앱 목록에서 제외 목록으로의 설계 전환, GitHub Actions + Homebrew 배포 파이프라인 구축까지의 과정.
Karpathy가 제안한 LLM Wiki 아이디어가 무엇이고, 기존 RAG와 어떻게 다르며, 1년 만에 등장한 10여 개 구현체가 각각 어떤 문제를 푸는지 정리한다. '손실 압축'과 '스케일 한계'라는 본질적 비판도 함께 살펴본다.
Microsoft-OpenAI 파트너십 재편 발표(2026-04-27)를 다룬 한 한국어 블로그의 7개 주장을 1차 출처(MS·OpenAI 공식 발표, GitHub Blog, Reuters/Bloomberg/CNBC)와 함께 해설. 같은 발표의 후속인 GitHub Copilot 가격 구조 변화 타임라인 포함.
Ox Security 발표를 트리거로, 2025.04~2026.04까지 누적된 19개 MCP 보안 사건을 사실 기반으로 정리하고 4가지 결함 패턴을 도출한다
GitHub Pages에서 Cloudflare Pages로 이전하고, GoatCounter를 버리고, D1으로 퀴즈를 만들고, Workers 3종으로 API를 분리하기까지 — 각 전환의 계기와 얻은 것, 잃은 것.
LangGraph 노드 설계 원칙부터 멀티 에이전트 오케스트레이션, 서브그래프 팩토리, 분산 환경 상태 관리까지. 프로덕션 LangGraph 시스템을 구축할 때 필요한 설계 패턴과 의사결정 프레임워크를 정리했다.
LLM 애플리케이션의 구조적 문제를 LangChain/LangGraph가 어떻게 해결하는지, 대안 프레임워크와의 비교, 그리고 StateGraph, Node, Edge, State, Reducer, Command, Checkpointer 등 핵심 컴포넌트의 존재 이유와 동작 원리를 정리했다.
ingress-nginx EOL 이후 Gateway API 구현체 비교 — Envoy Gateway, Istio, NGINX Gateway Fabric, Cilium의 성능과 특성, 그리고 환경별 전환 판단 기준
정적 사이트에서 로그인 없이 사용자를 구분하는 세 가지 방법 — localStorage UUID, IP 해시, Browser Fingerprinting의 원리와 한계, 그리고 어떤 조건에서 어떤 방식을 선택해야 하는가
Obsidian vault의 기술 노트에서 AI가 퀴즈를 생성하고, NanoClaw가 Telegram으로 간격 반복 퀴즈를 보내주는 시스템 구축기. AI와 코드의 역할 분리가 핵심 설계 판단이었다.
Harness 플러그인으로 Nx 모노레포에 5개 AI 에이전트를 구성하고 병렬 감사를 실행한 실전기. 보안 취약점, 의존성 경고, 인터페이스 불일치 등을 한 세션에서 식별하고 조치한 과정과 토큰 비용 분석.
MCP가 에이전트의 도구 호출을 담당한다면, A2A는 에이전트 간 통신을 담당한다. AgentCard, Task, Part, Artifact 등 A2A Protocol의 핵심 개념과 MCP와의 차이, 도입 판단 기준을 정리했다.
Google 주도 에이전트 간 통신 표준 A2A Protocol v1.0의 핵심 변경사항과, 0.3 기반 구현체에서 1.0으로 전환할 때 필요한 단계별 마이그레이션 가이드.
ArgoCD App of Apps에서 ApplicationSet PR Generator로 전환하며 PR Preview를 완전 자동화한 구축기. CSI Secret 부트스트래핑, PreDelete Hook 우회, Race Condition 해결까지.
Apple Silicon에서 mlx-audio와 Qwen3-TTS를 활용해 클라우드 비용 없이 Telegram 뉴스 브리핑을 음성으로 자동화한 과정. NanoClaw의 skill 철학과 플랫폼 제약의 타협, IPC fire-and-forget 패턴, upstream 기여 범위까지.
Gemini, Claude, GPT-5.1 — 3개 모델 family의 6개 AI Critic이 블로그 초안을 병렬 검수하는 파이프라인. Devil's Advocate, Synthesis 충돌 중재, 글쓰기 규칙 강화, PR 기반 Human-in-the-Loop 발행까지.
Claude Code v2.1.80 Channels 기능의 Telegram 설정부터 launchd + tmux 데몬화, GitHub Actions CI·Grafana 커스텀 채널 빌드, Scheduled Tasks·Remote Control 연동까지 다루는 실전 가이드.
커스텀 skill, statusline, slash command, skills, LSP, tmux, 멀티 모델 리뷰 파이프라인까지 — GNU Stow로 2대 Mac 간 완전 동기화하는 Claude Code 설정 구성기.
여러 Git 저장소의 코드를 하나의 워킹트리에서 AI가 merge하는 패턴. 플러그인이 코어 소스를 수정해야 할 때, AI 코딩 에이전트가 충돌 해결 비용을 0으로 낮추면서 실용적인 선택지가 되었다.
Cloudflare Web Analytics, GoatCounter, Analytics Engine 3개 분석 도구를 하나의 대시보드로 통합한 vibe coding 구축기. Claude Code plan mode로 설계하고, 35커밋에 걸친 디버깅으로 완성한 과정.
Astro 블로그에 태그 필터, Pagefind 검색, 소셜 공유, 이전/다음글, 모바일 UX, 읽기 진행률 등 12종 기능을 추가하고 Lighthouse 최적화로 Performance 100점을 달성한 과정을 정리합니다.
Astro + GitHub Pages 정적 블로그에 SEO 메타 태그, OG 이미지 자동 생성, Giscus 댓글, Cloudflare Workers 좋아요, GoatCounter 분석을 서버 비용 0원으로 구현한 과정을 정리합니다.
Java 21에서 정식 도입된 Virtual Thread의 동작 원리, Pinning 문제, Java 24의 JEP 491 해결, Scoped Values, Structured Concurrency까지. I/O 바운드 워크로드의 동시성을 근본적으로 바꾸는 경량 스레드의 전체 그림을 정리합니다.
Next.js + NestJS 모노레포에서 GitHub Actions, ArgoCD, AKS로 구축한 CI/CD 파이프라인. PR별 격리 Preview 환경, 변경 감지 기반 선택적 빌드, GitOps 배포, 자동 cleanup을 다룹니다.
Kubernetes 1.35 Timbernetes 릴리스의 주요 신규 기능과 변경 사항을 정리합니다. In-Place Pod Resource Updates, Image Volumes, IPVS Deprecation 등 60개 개선 사항을 다룹니다.
Kubernetes 1.35에서 GA가 된 In-Place Pod Resize. Pod을 죽이지 않고 리소스를 동적으로 변경하는 원리, 실전 활용법, 주의사항을 정리합니다.
Kubernetes 1.35에서 IPVS 모드가 deprecated되었다. 많은 사람들이 eBPF를 기대했지만, 선택된 것은 nftables였다. 그 배경과 마이그레이션 방법을 정리한다.
KEP-4639 기반 Image Volumes 기능으로 OCI 이미지를 Pod에 읽기 전용 볼륨으로 직접 마운트하는 방법과 동작 원리, 활용 사례를 정리합니다.
100개 이상의 LLM을 단일 OpenAI 형식으로 통합하는 LiteLLM. SDK와 Proxy Server의 차이, 실제 운영 경험, 도입 판단 기준을 공유합니다.
Claude 구독 만료 대비 LiteLLM Proxy 기반 LLM fallback 인프라를 K3s + Cloudflare Tunnel로 구성한 과정을 정리합니다.
AI 에이전트에게 Bash를 주되 안전하게. NanoClaw는 Docker 컨테이너 격리로 Claude Agent SDK의 풀스택 능력을 안전하게 활용하는 오픈소스 아키텍처다.
NanoClaw의 Telegram 기능을 skills engine 기반으로 전환하고, upstream과 fork custom의 3계층 코드 구조를 확립한 과정을 정리합니다.
NanoClaw를 fork해서 운영하면서 upstream에 PR 4건을 제출한 경험. 1건 머지, 3건 자진 close한 판단 과정과 private fork에서 upstream PR을 보내는 절차를 정리합니다.