Kafka·PostgreSQL 최적화로 보안 스캔 처리량 12배 높이기
Cloudflare가 Security Insights 스캔 시스템의 처리량을 초당 10건에서 120건 이상으로 12배 끌어올린 과정을 다룬다. 추가 하드웨어 없이 Kafka 소비자, PostgreSQL 쿼리, API 아키텍처 최적화만으로 달성했으며, 스캔 주기를 주 1~2회에서 플랜별 1~7일로 대폭 단축했다.
Cloudflare가 Security Insights 스캔 시스템의 처리량을 초당 10건에서 120건 이상으로 12배 끌어올린 과정을 다룬다. 추가 하드웨어 없이 Kafka 소비자, PostgreSQL 쿼리, API 아키텍처 최적화만으로 달성했으며, 스캔 주기를 주 1~2회에서 플랜별 1~7일로 대폭 단축했다.
RAG 애플리케이션의 한국어 검색에서 벡터 검색만으론 고유명사·전문용어 누락과 조사 변화 매칭에 약하다.
biz-crm 백오피스 검색이 타임아웃으로 8초씩 걸린다. LOWER() 함수가 인덱스를 무력화하는 게 원인이었다.
서버리스에서 데이터베이스 연결 수가 폭발한다는 통념은 잘못됐다. 동시 요청 1,000개 기준 서버·Lambda·Vercel 모두 필요 연결 수는 동일하다. 진짜 문제는 함수 suspend 중 유휴 연결의 타임아웃 타이머가 멈춰 연결이 수분간 누출되는 현상이며, Vercel Fluid의 attachDatabasePool이 waitUntil 패턴으로 이를 해결한다.
출고준수율(배송 일정 준수 비율) 계산이 복잡하고 초기 응답시간이 최대 5초에 달해 운영 불가 수준이었다.
빠르게 성장하는 서비스에서 레거시 JavaScript/FxJS 스택의 러닝커브, 타입 안정성 부재, IDE 지원 한계가 개발 병목이 됐다.
유럽 역에서 5시간 내 기차로 갈 수 있는 지역을 인터랙티브 지도로 보여주는 Chronotrains가 Hacker News 1위에 오르며 100만 뷰를 기록했다. 개발자가 휴가 중에도 무중단으로 버텼는데, 엣지 캐싱 + 이동 시간 사전 계산 + ISR 세 가지 전략이 핵심이었다.
환자명 부분 일치(%LIKE%) 검색 시 인덱스 적용이 불가해 1,000,000건 데이터에서 O(N) Full scan이 발생했다.
빠르게 성장하는 이미지 공유 서비스를 위해 확장 가능하고 안정적인 인프라 구조가 필요했다.