AI와 함께하는 실시간 온라인 사용자 카운터 구축: Astro, Netlify, Upstash 활용기

🤖 AI 추천

Astro, Netlify, Redis와 같은 서버리스 환경 및 AI 개발 도구에 관심 있는 웹 개발자 및 프론트엔드 개발자

🔖 주요 키워드

AI와 함께하는 실시간 온라인 사용자 카운터 구축: Astro, Netlify, Upstash 활용기
  • 핵심 기술: 이 글은 Astro로 구축된 정적 웹사이트에 실시간 온라인 사용자 카운터를 추가하는 방법을 소개합니다. 서버리스 환경에서 작동하며, Netlify Functions와 Upstash Redis를 활용하여 구현했습니다.

  • 기술적 세부사항:

  • 구현 배경: 웹사이트에 'X users online' 카운터를 추가하고 싶었으나, 백엔드 없이 간단하게 구현하고자 했습니다.
  • 아키텍처: Netlify Functions를 사용하여 방문자가 접속할 때마다 카운트를 핑하고 반환하는 엔드포인트를 생성했습니다.
  • 데이터 저장: 서버리스 환경의 비영구성을 해결하기 위해 Upstash Redis를 무료로 사용하여 데이터를 저장했습니다.
  • Redis 활용: Copilot의 도움을 받아 await redis.set('online:${anonymizedIp}', '1', { ex: 60 * 30 });와 같이 30분 TTL(Time To Live)을 설정하여 30분 이내 방문자를 추적하고, await redis.keys('online:*'); 패턴으로 키 개수를 세어 현재 활성 사용자를 파악했습니다.
  • 프론트엔드 구현: 정적 사이트에서 카운터가 깜빡이는 현상을 방지하기 위해 초기 로딩 시 기본값(1)을 표시하고, 백그라운드에서 실제 카운터를 비동기적으로 가져와 업데이트하는 방식을 사용했습니다. 로컬 스토리지를 활용하여 이전 값을 유지하는 방법도 고려했습니다.
  • 개발 도구: Netlify Functions를 로컬에서 테스트하기 위해 netlify dev 명령어를 사용했습니다.

  • 개발 임팩트: AI 개발 도구(Copilot)를 활용하여 빠르게 프로토타입을 개발하고 구현했으며, 서버리스 및 키-값 저장소를 활용한 실시간 데이터 관리 기법을 습득할 수 있습니다.

  • 커뮤니티 반응: 글 작성자는 이 과정이 약간의 오버킬일 수 있지만 AI를 사용하여 빠르게 기능을 구현한 것에 만족감을 표현하며, 이러한 도구와 서비스의 유용성을 강조했습니다.

📚 관련 자료