네이버 검색광고 + 데이터랩 API를 연동해 키워드 검색량·경쟁도·성별/연령 인구통계를 한 화면에서 조회합니다. API 일일 한도(1,000회)를 지키면서 최대 효율을 뽑아내는 Gateway 캐싱 아키텍처가 핵심입니다.
키워드 입력부터 결과 반환까지 — 모든 네이버 API 호출은 반드시 Gateway를 통과합니다. 캐시 히트 → 즉시 반환, 한도 여유 → API 호출, 한도 소진 → DB 스냅샷 폴백.
동일 키워드 재조회 시 Redis에서 즉시 반환. 한도 0% 소모, 응답 수십ms.
1,000회를 24시간에 배분. 오전·오후 피크에 집중 배정, 야간 배치 예약. 한 번에 소진 불가.
한도 소진 시 DB 스냅샷(직전 데이터)으로 서비스 유지. 데이터 날짜 투명하게 표기.
검증된 표준 스택으로 가볍고 빠르게. 프레임워크 유행이 아니라, 유지보수·인수인계가 쉬운 구성을 택했습니다.
Python · FastAPI (비동기 REST) · SQLAlchemy ORM · Pydantic 검증. 자동 API 문서(Swagger) 내장.
바닐라 JS + HTML/CSS. 프레임워크 무의존으로 가볍고, 어떤 환경에도 이식이 쉽습니다. 반응형(PC/모바일).
Redis 캐싱(TTL 24h)·시간대 예산 관리. DB는 데모 SQLite → 정식 PostgreSQL로 무리 없이 확장.
네이버 검색광고·데이터랩 API 연동. API 키는 서버 환경변수 전용 보관. Railway Docker 컨테이너로 24/7 배포.
아래 기능이 데모에서 실제로 동작합니다 (화면·버튼 목업 아님).
정식 버전에서는 실서비스 수준으로 확장됩니다.
공개 데모는 기본 rate limit으로 보호되고, 모든 API 키는 서버 환경변수에만 보관되어 절대 노출되지 않습니다.
한도·캐시·호출 로그 모니터링 대시보드. 데모에서는 자유롭게 둘러볼 수 있고, 운영 단계에서는 비밀번호 세션으로 잠급니다.
네이버 API 키는 Railway 환경변수에만 존재. 코드·프론트엔드 어디에도 노출 없음. GitHub 레포에도 커밋 금지.
일일 1,000회 한도를 Gateway가 시간대별로 배분. 한도 소진 전 경고 → 우선순위 큐. 한도 소진 후에도 stale 데이터로 서비스 유지.
Railway Hobby($5/월)로 24시간 안정 운영. idle sleep 없음. 언제 접속해도 이 URL이 살아있습니다.
흔한 데모는 "캐싱하면 됩니다" 한 줄로 끝납니다. KeyPulse는 증권사 실시간 API 운영 경험에서 나온 완성된 아키텍처를 지금 바로 보여줍니다.
검색량 ÷ 경쟁도 = 효율 점수. API가 주지 않는 "어떤 키워드가 가장 노릴 만한가"를 우리가 계산합니다. 단순 API 중계기와 분석 플랫폼의 차이.
네이버로 시작하지만 여기서 끝나지 않습니다. '수신(채널별 어댑터)'과 '처리·분석(공통)'을 분리해, 구글·쿠팡 등 새 데이터 소스는 어댑터만 추가하면 붙습니다. 캐싱·쿼터·황금점수 등 핵심 레이어는 그대로 재사용.
시간대별 예산 배분, 우선순위 큐, Graceful Fallback — 이 패턴은 실시간 주가 API 운영에서 검증된 설계입니다. 키워드 한도 관리에 그대로 적용.
관리자 패널: "오늘 캐시 히트 340건 = API 340회 절약 / 한도 소진 0%". 기술 용어 없이 절감 효과가 즉시 보입니다.
🟢 실시간 / 🟡 캐시 / ⚪ 보관 — 모든 데이터에 출처와 시각을 표기합니다. 숨기지 않고 정직하게 = 신뢰.
ERD, API 명세서(Swagger), 아키텍처 문서가 이미 설계되어 있습니다. 정식 도입 시 함께 제공합니다.
아이디어 단계 클라이언트를 처음부터 끝까지 동행합니다. 기획 구체화 → 개발 → 배포 → 월 유지보수. 단일 파트너·단일 책임.
말보다 동작하는 결과로 보여드립니다.
라이브 대시보드 체험하기 →사용해 보시고 개선·제안 남겨주세요 → 검토 후 반영합니다.