Blog
I record troubleshooting experiences, feature development processes, and technical retrospectives.
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
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
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
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
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
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
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
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
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
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
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
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
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
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