블로그

트러블슈팅 경험, 기능 개발 과정, 기술적 회고를 기록합니다.

2026년 5월 29일AI EngineeringAI Agent레거시 분석MCP

Private 환경을 위한 DeepWiki 대안을 직접 설계한 이유

Public Repo만 지원하는 DeepWiki를 사내 레거시 환경에서 쓸 수 없어서 직접 만들었습니다. 코드베이스만 보는 것이 아니라 DB, GitHub, Jira, Confluence를 교차 검증해야 진짜 비즈니스 맥락을 잡을 수 있다는 게 핵심이었습니다.

읽는 시간 약 18분

2026년 5월 28일AI EngineeringAI AgentNext.jsFigma MCP

디자인 시스템 없이 AI Agent로 프론트엔드 개발하기 — 실패와 해결의 기록

팀에 프론트엔드 경험자가 없는 상황에서, 공식 디자인 시스템조차 없는 환경에 AI Agent 기반 개발 워크플로우를 직접 설계하며 겪은 문제와 해결책을 기록합니다. Figma MCP, 퍼블리셔 HTML/CSS, Playwright를 엮은 4-Source 컨텍스트 전략과 QA 자동화 파이프라인까지.

읽는 시간 약 20분

2025년 6월 10일아키텍처CPC광고시스템Kafka

Gmarket CPC 광고 전체 워크플로우 — 입찰에서 리포트까지

Gmarket 파워클릭(CPC 키워드광고)의 전체 워크플로우를 해부합니다. 광고주의 입찰가 설정부터 랭킹 계산, 광고 서빙, 클릭 추적, 과금, 그리고 최종 리포트 생성까지 — 이벤트 기반 파이프라인이 어떻게 유기적으로 맞물려 돌아가는지 상세히 기록합니다.

읽는 시간 약 18분

2025년 3월 15일기능 개발Spring MVCRedis로컬캐시

EDN+ 서버 재개발기 — Spring MVC로 다시 짓고, 당근마켓에 광고를 서빙하기까지

Gmarket의 외부 광고 네트워크 EDN+ 서버를 Node.js 레거시에서 Spring MVC(서블릿 컨테이너) 기반으로 재개발하고, 당근마켓·다나와 광고 지면에 상품+광고 데이터를 통합 서빙한 과정을 공유합니다.

읽는 시간 약 8분

2024년 10월 10일기능 개발Node.js.NETWebhook

.NET 레거시를 건드리지 않고 외부 VOD 솔루션을 연동한 방법

동영상 광고 타입을 고려하지 않은 레거시 .NET 광고 시스템에 Shoplive VOD 솔루션을 연동하면서, 레거시 안정성에 영향 없이 수십억 원 규모의 신규 광고 상품을 런칭한 과정을 공유합니다.

읽는 시간 약 8분

2024년 9월 5일기능 개발DatabricksHadoopPySpark

광고 정산 데이터 Databricks 이관기 — Hadoop 배치 실패 없는 파이프라인 만들기

새벽마다 반복되던 배치 실패와 수동 재실행. Hue/Hadoop 기반 광고 정산 파이프라인을 Databricks로 이관하면서 데이터 정확도와 운영 안정성을 동시에 확보한 과정을 공유합니다.

읽는 시간 약 10분

2024년 8월 20일기능 개발Spring WebfluxMongoDBMS-SQL

상용 CDC 없이 MS-SQL↔MongoDB 실시간 정합성을 보장한 3단계 동기화 파이프라인

예산 제약으로 상용 CDC 솔루션을 쓸 수 없었습니다. 대신 API 레벨 동기화 → Kafka 실패 복구 → Batch 최종 정합성 검증으로 이어지는 3단계 아키텍처를 자체 설계한 과정을 공유합니다.

읽는 시간 약 12분

2024년 7월 15일트러블슈팅RedisLettuceKafka

RedisTemplate vs Lettuce, Kafka StickyPartitioner 버그 — 랭킹 시스템 개선 중 만난 두 가지 이슈

랭킹 시스템 개선 중 Kafka 메시지가 특정 파티션에만 몰리는 현상과, Redis 100만 건 처리에 4분이 걸리던 문제를 Datadog으로 발견하고 해결한 과정을 기록합니다.

읽는 시간 약 10분

2024년 6월 10일트러블슈팅Spring WebfluxMongoDBRedis

레거시 광고 랭킹 시스템 성능 병목 현상 해결기 — .NET에서 Spring Webflux로

최대 4시간이 걸리던 광고 랭킹 갱신을 3분으로 줄이기까지, .NET & MS-SQL 레거시를 Spring Webflux + MongoDB 리액티브 아키텍처로 전면 재설계한 과정을 공유합니다.

읽는 시간 약 15분

2024년 3월 15일트러블슈팅KafkaSpringBackend

Kafka StickyPartitioner 버그로 인한 메시지 분배 불균형 해결

Kafka Client 3.3 미만 버전에서 StickyPartitioner 버그로 특정 파티션에 메시지가 몰리는 현상이 발생했습니다. 원인 분석부터 해결까지의 과정을 정리합니다.

읽는 시간 약 8분

2024년 2월 8일트러블슈팅RedisLettuceSpring

RedisTemplate에서 Lettuce 네이티브 API로 전환하여 처리 속도 4배 향상

RedisTemplate 사용 시 각 명령어마다 새 TCP 커넥션이 생성되는 문제를 발견하고, Lettuce 네이티브 API로 전환하여 100만 건 처리 시간을 240초에서 60초로 줄인 경험을 공유합니다.

읽는 시간 약 6분

2023년 6월 20일아키텍처AWSSQSEventBridge

SQS vs EventBridge — MSA 전환에서 이벤트 기반 아키텍처를 설계한 기준

모놀리식에서 MSA로 전환하면서 서비스 간 결합도를 제거하기 위해 AWS 이벤트 기반 아키텍처를 도입했습니다. SQS와 EventBridge를 어떤 기준으로 나눠 쓰는지, 멱등성과 DLQ를 어떻게 설계했는지 공유합니다.

읽는 시간 약 12분

2022년 8월 15일기능 개발OAuth 2.0YouTube APIFacebook Live API

YouTube·Facebook 동시 송출, 6단계 수동 설정을 1번 인증으로 — OAuth 자동화 구현기

라이브 스트리밍 플랫폼에서 소셜 미디어 동시 송출을 위한 6단계 수동 설정 과정을 OAuth 2.0 기반 자동화로 1회 인증으로 줄인 구현 과정을 공유합니다.

읽는 시간 약 11분

2022년 4월 10일기능 개발Node.jsVue.jsTypeScript

수 GB 파일 업로드, 타임아웃 없이 이어받기까지 — 청크 업로드 구현 완전 정리

단일 HTTP 요청으로 대용량 파일 업로드 시 발생하는 메모리 부족과 타임아웃 문제를 청크 분할 업로드와 이어받기로 해결한 전체 구현 과정을 클라이언트부터 서버까지 상세히 정리합니다.

읽는 시간 약 13분