Blog
Notes from a backend engineer who hunts down bottlenecks by measuring — not guessing.
사내 Slack RAG 봇 '시루AI'의 청킹 전략을 3차에 걸쳐 재설계한 기록. 글자 수 기준이 만든 장애, 배치 크기 파라미터 오진단, 한글 토큰 밀도 실측치까지.
Paradigms shift on a timescale of days. This closing post opens with a confession — that this blog, and even the post you're reading, was written by AI — then follows how reading books and poetry alongside AI changed the way I learn itself: what it means to chase AI in the age of AI, and grow alongside it.
A local LLM experiment that started purely to save tokens ended up colliding with the question of AI dependence: the context ceiling of a 12GB GPU, a 60-second first response, the KV-cache-vs-load-balancing tradeoff, the 12B-vs-26B tradeoff, and even the fear of what happens if Claude goes down — a record of the experiment to cut dependence, and where it hit its limits.
Using AI and having a system that actually 'works with' it are two different things — a record of building memory, verification, and isolation into my workflow, then confronting the paradox of a productivity explosion.
A record of what I learned trying out AI coding tools since February 2026: token burn with using-superpower, clarification and over-engineering with gstack, guesswork-driven questions from speckit's clarify — and the workflow I've settled into now, running speckit with a self-built prefill skill on top.
A map viewport query backed by a lat/lng B-tree drained our connection pool. Here's how MySQL POINT + SPATIAL index fixed it — including the /*!80003 SRID 0 */ trap, SRID 0 vs 4326 axis order, map-API coordinate conventions, and the lesson of 'show it with numbers.'
To overcome the limitations of DB + public API-based search, we adopted OpenSearch and optimized queries through benchmark-driven development. The theoretical bottleneck and the actual bottleneck were different.