프로젝트 소개

## 개요 Lytics는 사용자 개인정보 보호에 중점을 둔 자체 호스팅 웹 분석 솔루션입니다. 표준 트래픽 지표, 사용자 정의 SQL 기반 쿼리 및 페이지에서의 사용자 상호작용을 시각화한 히트맵을 제공합니다. 이 프로젝트는 여러 모듈로 구성되어 있습니다: - **lytics-ping** – JavaScript 태그로부터 추적 데이터를 수신하는 가벼운 HTTP 엔드포인트입니다. - **lytics-app** – 데이터 저장, 보고서 생성 및 UI 제공을 담당하는 주요 Quarkus 서비스입니다. - **lytics-query** – 보고서 및 히트맵에서 사용되는 SQL 쿼리를 검증하고 변환합니다. - **tag** – 웹사이트 소유자가 이벤트를 ping 서비스로 전송하기 위해 삽입하는 작은 JavaScript 스니펫입니다. - **offsite** – 별도 도메인에서 로드되는 히트맵을 위한 JavaScript 및 렌더링 로직입니다. - **schemas** – MariaDB/MySQL 및 ClickHouse용 데이터베이스 스키마 정의입니다. ## 아키텍처 플랫폼은 고성능 분석을 위해 ClickHouse에 원시 이벤트를 저장하고, 관계형 메타데이터는 MariaDB/MySQL에 저장합니다. Quarkus 기반 서비스들은 HTTP를 통해 통신하며 `application.properties`를 통해 구성을 공유합니다. 히트맵 렌더링은 클라이언트 측에서 off-site 스크립트를 사용하여 수행되며, 이 스크립트는 npm으로 빌드되고 Quarkus 서버에서 정적 자산으로 제공됩니다. ## 시작하기 1. **데이터베이스 설정** – MariaDB/MySQL 인스턴스와 ClickHouse 클러스터를 준비하고 `schemas` 디렉토리의 스키마를 적용합니다. 2. **구성** – 연결 문자열 및 원하는 옵션으로 `lytics-app/src/main/resources/application.properties` 파일을 편집합니다. 3. **빌드** – 모든 모듈을 컴파일하려면 `mvn package`를 실행합니다. 4. **서비스 실행**: ```bash java -Dquarkus.config.locations=application.properties -jar lytics-ping/target/lytics-ping-1.0.0-SNAPSHOT-runner.jar java -Dquarkus.config.locations=application.properties -jar lytics-app/target/lytics-app-1.0.0-SNAPSHOT-runner.jar ``` 5. **개발** – IntelliJ의 Quarkus 플러그인 또는 명령줄에서 `quarkus dev`를 사용합니다. 히트맵 스크립트 변경 사항은 `offsite` 디렉토리 내에서 `npm run watch`를 실행하여 처리하며, 결과물은 `lytics-app/src/main/resources/web/static/offsite/offsite.min.js`에 저장됩니다. ## 문제 해결 의존성 해결 문제나 IDE 문제가 발생하면 깨끗한 재설치가 도움이 될 수 있습니다: ```bash mvn clean install -U ``` ## 활용 사례 - 제3자 분석 도구를 사용할 수 없는 웹사이트를 위한 개인정보 보호 준수 방문자 추적. - 사용자 데이터를 침해하지 않고 클릭 및 스크롤 행동을 이해하기 위한 시각적 히트맵. - 고급 보고 및 데이터 내보내기를 위한 사용자 정의 SQL 쿼리. Lytics는 데이터 저장 및 처리에 대한 세밀한 제어가 필요한 조직을 위한 완전한 스택을 제공합니다.