AI와 함께하는 실시간 온라인 사용자 카운터 구축: Astro, Netlify, Upstash 활용기
🤖 AI 추천
Astro, Netlify, Redis와 같은 서버리스 환경 및 AI 개발 도구에 관심 있는 웹 개발자 및 프론트엔드 개발자
🔖 주요 키워드

-
핵심 기술: 이 글은 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를 사용하여 빠르게 기능을 구현한 것에 만족감을 표현하며, 이러한 도구와 서비스의 유용성을 강조했습니다.
📚 관련 자료
netlify-functions-examples
Netlify Functions 사용 예시들을 제공하는 공식 저장소로, 서버리스 함수 개발 및 배포에 대한 실질적인 도움을 줄 수 있습니다. 특히 백엔드 로직 구현에 참고할 수 있습니다.
관련도: 90%
astro
Astro 프레임워크의 공식 GitHub 저장소입니다. Astro를 사용하여 정적 사이트를 구축하고 동적 기능을 통합하는 방법에 대한 심도 있는 이해를 제공하며, 글의 기본 기술 스택과 직접적으로 관련이 있습니다.
관련도: 85%
redis
인메모리 데이터 구조 저장소인 Redis의 소스 코드 저장소입니다. Upstash와 같은 Redis 호스팅 서비스를 사용할 때 Redis의 기본 동작 원리, 데이터 관리 및 TTL 기능에 대한 이해를 높이는 데 도움이 될 수 있습니다.
관련도: 70%