블로그
수집과 저장의 분리 — 외부 fetch 대기를 엣지로 흡수하기
발행: 2026-04-25 · 태그: infra, edge-computing, scalability, architecture
측정값이 알려준 병목
분석 대상이 한 자릿수일 때는 5분 주기 측정에서 cron 한 번이 30초 대로 끝났다. 문제는 그 30초의 거의 전부가 외부 데이터 소스의 응답 대기 였다는 점이다. 분석 대상 수가 늘면 단순 외삽으로도 답이 안 나온다.
분리 설계
핵심 아이디어는 단순하다 — 응답 대기는 분산된 엣지가 흡수, 본진은 저장·분석만.
엣지 컴퓨팅 플랫폼은 다중 리전에서 invocation 단위로 격리 되므로 한 호출의 응답 대기가 다른 호출을 막지 않는다. 본진의 한 프로세스가 대기 중일 때 다른 작업이 함께 밀리던 구조 자체가 사라진다.
트레이드오프
단일 프로세스 (Before)
fetch 대기 = 전체 정체. 동시 처리량은 단일 머신의 socket pool 에 비례. 측정 대상이 늘수록 cron budget 초과.
vs
엣지 위임 (After)
엣지 invocation 단위로 fetch 격리, 본진은 저장·분석에 집중. 대상 수에 거의 선형 확장. 비용은 자릿수 단위 절감.
보존된 정합 패턴
여러 종류의 측정 플로우 (방문자 추이 / 인기글 추이 등) 가 동일한 5-tier 골격을 따른다. 라우트 구조, 큐 네이밍, 스키마 명명 규칙 모두 일치 — 한쪽만 분리되면 운영 혼동 + 버그 양산이라 항상 두 쪽을 함께 변경.
후속
다음 단계는 저장과 분석의 추가 분리. 저장 콜백이 곧장 큐에 enqueue 하고 워커 풀이 분석을 처리하면, 같은 엣지 응답이 오는 동안에도 다른 대상의 분석 결과가 갱신된다. 운영 모드 전환 후 측정 결과는 후속 포스트에서 다룰 예정.
알고리즘 자체의 동작은 알고리즘 문서 에서, 이런 플랫폼 강제 패턴이 도입된 배경은 네이버 트래픽 어뷰징 정책 강화 에서 확인할 수 있다.