일일방문자 통계와 페이지별 트래픽 저장방식
1. db저장 (비로그인 사용자도 집계하기 위해선 추가 테이블 필요)
2. AWS 사용 주로 트래픽 집계에 많이쓰임
3.Redis 사용
1. AWS S3를 활용한 아카이빙
장점
비용 효율성: 대량의 데이터를 저렴하게 저장할 수 있습니다. 특히, 자주 사용되지 않는 데이터는 S3 Glacier와 같은 저비용 스토리지 옵션을 사용할 수 있습니다.
확장성: 필요에 따라 쉽게 확장할 수 있어, 데이터 양이 증가하더라도 문제없이 대응할 수 있습니다.
데이터 보존 및 접근성: 필요할 때 데이터를 쉽게 검색하고, 다양한 분석 도구와 통합하여 활용할 수 있습니다.
사용 사례
오래된 방문자 데이터, 통계, 로그 파일 등을 아카이빙하여 데이터베이스의 크기를 줄이고, 성능을 최적화하는 데 유용합니다.
2. ELK Stack (Elasticsearch, Logstash, Kibana)
장점
실시간 로그 분석: Logstash를 통해 실시간으로 로그 데이터를 수집하고, Elasticsearch에서 강력한 검색 및 분석이 가능합니다.
데이터 시각화: Kibana를 사용하여 수집된 데이터를 시각화하고 대시보드 형태로 모니터링할 수 있어, 사용자 행동 및 시스템 성능을 쉽게 분석할 수 있습니다.
유연한 쿼리: Elasticsearch의 쿼리 기능을 통해 복잡한 조건으로 데이터를 필터링하고 분석할 수 있습니다.
사용 사례
사용자 행동 분석, 트래픽 모니터링, 오류 로그 분석 등 다양한 로그 데이터를 실시간으로 수집하고 분석하는 데 적합합니다.
3. Grafana Loki
장점
로그 수집 및 모니터링: Grafana와의 통합을 통해 로그 데이터를 수집하고, 실시간 모니터링 및 대시보드를 제공합니다.
가벼운 설치 및 설정: ELK Stack보다 설치 및 설정이 간단하여, 소규모 프로젝트나 초기 단계에서 유용합니다.
유연한 데이터 소스: 다양한 데이터 소스와 통합할 수 있어, 여러 시스템에서 발생한 로그를 한 곳에서 모니터링할 수 있습니다.
사용 사례
경량화된 로그 수집 및 모니터링이 필요한 경우, 특히 실시간 모니터링이 중요한 경우 유용합니다.
오류사항
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property 'timestamp' found for type 'VisitorData'
해결
findByTimestampBefore 및 countByTimestampBetween 메서드가 timestamp라는 필드를 참조하고 있습니다. 그러나 VisitorData 클래스에는 timestamp라는 필드가 정의되어 있지 않고, 대신 visitorTime이라는 필드가 있습니다. 따라서 메서드 이름을 수정해야 합니다.