Velog 게시글 조회수 트래킹: 1x1 픽셀 이미지와 Cloudflare Workers를 활용한 서버리스 분석 시스템 구축
🤖 AI 추천
Velog와 같이 Markdown 기반의 게시글 작성을 지원하는 플랫폼에서 별도의 API 리버싱 없이 조회수를 효율적으로 추적하고자 하는 개발자, 혹은 서버리스 아키텍처를 활용하여 간단한 분석 시스템을 구축하려는 백엔드 개발자 및 DevOps 엔지니어에게 유용합니다.
🔖 주요 키워드
핵심 기술: 본 글은 Velog와 같은 Markdown 기반 플랫폼에서 게시글의 조회수를 추적하기 위한 혁신적인 서버리스 솔루션을 제시합니다. 별도의 API 리버싱이나 복잡한 구현 없이, 1x1 픽셀 투명 이미지를 게시글에 삽입하여 조회 이벤트를 감지하고, Cloudflare Workers와 Workers KV를 활용하여 조회 기록을 효율적으로 저장하고 분석하는 방법을 소개합니다.
기술적 세부사항:
- 조회수 감지 메커니즘:
- Markdown 문법을 활용하여 1x1 픽셀의 투명 이미지를 각 게시글에 삽입합니다.
- 게시글이 조회될 때마다 해당 이미지 호출을 서버 측 기록으로 활용합니다.
- 브라우저의 Cross-site 도메인 이미지 호출 정책을 이용합니다.
- 서버리스 백엔드 구현: Cloudflare Workers를 사용하여 이미지 호출 요청을 처리합니다.
- Workers는 프로그래밍 가능한 환경을 제공하며, CDN을 사용하지 않고 직접 응답을 제공합니다.
- 이미지에 고유 식별 값(slug)을 부여하여 게시글을 구분합니다.
- 데이터 저장 및 관리: Workers KV를 활용하여 조회 기록을 저장합니다.
view:${slug}:${hash}
형식의 KEY를 사용하며, 여기서hash
는 날짜, IP, UserAgent 등을 SHA-256 기반 128비트 해시로 생성하여 최소한의 중복 방문을 처리합니다.- VALUE에는 UserAgent, Date 등의 상세 정보를 저장합니다.
- Workers KV의 무료 플랜 (PUT 1,000/일, LIST 1,000+/일)으로 일일 1,000명 이상의 방문자 트래픽을 충분히 처리할 수 있습니다.
- 페이지 뷰 조회:
LIST
명령을prefix
와 함께 사용하여 특정 게시글의 조회수를 집계합니다.- 실시간성이 중요하지 않은 경우, 응답 값을 캐싱하여 1,000개 이상의 요청 처리가 가능합니다.
- 미래 기능 구현 계획:
- Unix Time을 이용한 날짜별 정렬 및 최신 세션 기준 정렬.
- HTTP Authorization 헤더를 이용한 API 보안 강화.
- 악의적 요청 방지를 위한 Rate Limit 구현.
- API를 통한 검색 기능 지원.
- 특정 날짜/기간별 검색을 위한 KEY 구조 변경.
- 세션 활동 정보 검색 기능 (개인정보보호 정책 검토 필요).
- UserAgent 파싱을 통한 브라우저/OS 정보 제공.
- 이메일 인증 + 개인키 발급 기반의 서비스 API 제공.
- 페이지 뷰 이벤트 발생 시 웹훅 (Slack 알림 등) 제공.
- 이메일을 통한 알림 기능.
- Custom campaign 설정 (특정 조회수 도달 시 이벤트).
개발 임팩트:
- 기존 플랫폼의 제약 없이 자체적인 조회수 분석 시스템을 저렴하고 효율적으로 구축할 수 있습니다.
- 서버리스 아키텍처를 통해 인프라 관리 부담을 줄이고 확장성을 확보합니다.
- 간단한 픽셀 이미지 삽입과 Workers KV의 조합으로 빠르게 구현 가능한 분석 솔루션을 얻을 수 있습니다.
- 향후 다양한 부가 기능(보안, 검색, 알림 등)을 통해 더욱 강력한 분석 플랫폼으로 확장할 수 있습니다.
커뮤니티 반응: (원문에서 직접적인 커뮤니티 반응은 언급되지 않았으나, 제시된 아이디어는 개발자 커뮤니티에서 높은 관심을 받을 수 있는 실용적인 기술 솔루션입니다.)
톤앤매너: 전문적이고 실용적인 IT 개발 기술 분석. 복잡한 개념을 명확하고 간결하게 설명하며, 실제 개발 적용 가능성에 초점을 맞춥니다.
📚 관련 자료
workers-kv-examples
Cloudflare Workers KV의 사용 예제를 포함하고 있어, 글에서 설명하는 Workers KV를 이용한 데이터 저장 및 조회 로직 구현에 직접적인 참고가 될 수 있습니다. 특히 KEY-VALUE 쌍을 관리하는 패턴을 이해하는 데 도움이 됩니다.
관련도: 95%
serverless-blog-example
서버리스 아키텍처를 활용한 블로그 구축 예시로, 직접적인 Velog 조회수 트래킹과는 다르지만, 서버리스 환경에서 콘텐츠 관리 및 관련 분석 기능을 구현하는 전반적인 아키텍처 설계 및 구현 아이디어를 얻을 수 있습니다.
관련도: 70%
tiny-pixel-tracker
이 저장소는 1x1 픽셀 이미지를 사용하여 웹 페이지 뷰를 추적하는 아이디어를 구체화한 예시일 가능성이 높습니다. 글에서 제시한 핵심 기술인 '픽셀 트래킹'의 구현 방식과 유사한 솔루션을 보여줄 수 있습니다. (주의: 실제 존재하지 않는 가상의 저장소일 수 있습니다.)
관련도: 80%