Blog

I record troubleshooting experiences, feature development processes, and technical retrospectives.

May 29, 2026AI EngineeringAI AgentLegacy AnalysisMCP

Tracing a Legacy System with Broken History — Designing Code Sonar

A design note on building an internal DeepWiki-like system for company legacy environments where public GitHub repo-oriented tools could not be applied as-is.

About 22 min read

May 28, 2026AI EngineeringAI AgentNext.jsFigma MCP

Building a Frontend with AI Agents and No Design System — What Actually Worked

How we built a frontend development workflow using AI Agents in a team with no frontend experience and no formal design system. Covers the 4-source multimodal context strategy (Figma MCP, publisher HTML/CSS, screenshots, specs) and a Jira-driven QA automation pipeline with Playwright.

About 20 min read

June 10, 2025아키텍처CPCAdSystemKafka

Gmarket CPC Ad Full Workflow — From Bidding to Report

A deep dive into the full workflow of Gmarket PowerClick (CPC keyword advertising). From advertiser bidding to ranking calculation, ad serving, click tracking, billing, and final report generation — how an event-driven pipeline keeps it all running.

About 18 min read

March 15, 2025기능 개발Spring MVCRedisLocal Cache

EDN+ Server Redevelopment — Rebuilding with Spring MVC and Serving Ads to Karrot

Sharing the process of redeveloping Gmarket's external ad network EDN+ server from a Node.js legacy to a Spring MVC (Servlet Container) base, and integrating product+ad data serving for external placements like Karrot and Danawa.

About 8 min read

October 10, 2024기능 개발Node.js.NETWebhook

Integrating an External VOD Solution Without Touching the .NET Legacy

Sharing the process of integrating the Shoplive VOD solution into a legacy .NET ad system—which wasn't designed for video ads—launching a new ad product worth billions of KRW without impacting legacy stability.

About 8 min read

September 5, 2024기능 개발DatabricksHadoopPySpark

Migrating Ad Settlement Data to Databricks — Building a Fail-proof Pipeline

A journey of migrating the Hue/Hadoop-based ad settlement pipeline to Databricks to resolve recurring nightly batch failures, ensuring both data accuracy and operational stability.

About 10 min read

August 20, 2024기능 개발Spring WebfluxMongoDBMS-SQL

A 3-Stage Synchronization Pipeline Ensuring Real-time MS-SQL↔MongoDB Consistency Without Commercial CDC

Due to budget constraints, we couldn't use a commercial CDC solution. Sharing the process of custom designing a 3-stage architecture: API-level sync → Kafka failure recovery → Batch final consistency verification.

About 12 min read

July 15, 2024트러블슈팅RedisLettuceKafka

RedisTemplate vs Lettuce, Kafka StickyPartitioner Bug — Two Issues Encountered While Improving the Ranking System

Documenting how we discovered and resolved two issues using Datadog: Kafka messages skewing to specific partitions, and Redis taking 4 minutes to process 1 million records.

About 10 min read

June 10, 2024트러블슈팅Spring WebfluxMongoDBRedis

Resolving Performance Bottlenecks in the Legacy Ad Ranking System — From .NET to Spring Webflux

A journey of completely redesigning a legacy .NET & MS-SQL system to a Spring Webflux + MongoDB reactive architecture, reducing the ad ranking update time from a maximum of 4 hours to under 3 minutes.

About 15 min read

March 15, 2024트러블슈팅KafkaSpringBackend

Resolving Message Distribution Imbalance Caused by Kafka StickyPartitioner Bug

A bug in the StickyPartitioner in Kafka Client versions below 3.3 caused messages to concentrate in specific partitions. This post summarizes the journey from root cause analysis to resolution.

About 8 min read

February 8, 2024트러블슈팅RedisLettuceSpring

4x Performance Improvement by Switching from RedisTemplate to Lettuce Native API

Discovered an issue where RedisTemplate creates a new TCP connection for every command. Sharing the experience of switching to the Lettuce native API to reduce the processing time of 1 million records from 240 seconds to 60 seconds.

About 6 min read

June 20, 2023아키텍처AWSSQSEventBridge

SQS vs EventBridge — Criteria for Designing an Event-Driven Architecture During MSA Transition

During the transition from a monolith to MSA, we adopted an AWS event-driven architecture to decouple services. Sharing the criteria for separating SQS and EventBridge usage, and how we designed idempotency and DLQs.

About 12 min read

August 15, 2022기능 개발OAuth 2.0YouTube APIFacebook Live API

Simultaneous Broadcasting on YouTube & Facebook, Automating a 6-Step Setup into a Single Authentication via OAuth 2.0

Sharing the implementation process of reducing the 6-step manual setup for social media simulcasting on a live streaming platform into a single authentication flow using OAuth 2.0 automation.

About 11 min read

April 10, 2022기능 개발Node.jsVue.jsTypeScript

Uploading GBs of Files without Timeout, Up to Resume — Complete Guide to Implementing Chunk Uploads

A detailed breakdown of resolving memory shortages and timeout issues during large file uploads in a single HTTP request, implemented from client to server using chunked uploads and resume functionality.

About 13 min read