Skip to content

Analytics Setup

SeHyun edited this page Sep 30, 2026 · 5 revisions

설정 · 운영

개발자용이다. 분석만 한다면 읽지 않아도 된다.

키 설정

apps/mobile/.env.local에 한 줄을 둔다. 이 파일은 git에 올라가지 않는다.

PUBLIC_POSTHOG_KEY=phc_<프로젝트 API 키>
# 배포 번들을 만드는 곳에서만 아래 줄의 주석을 푼다. 개발자 기기에서는 풀지 않는다.
# PUBLIC_ANALYTICS_ENVIRONMENT=production
  • 값은 PostHog Project settings → Project API Key(phc_로 시작)다.
  • 개인 API 키(phx_로 시작)는 넣지 않는다. 앱이 거부한다.
  • 키가 없으면 아무것도 보내지 않는다. 앱은 똑같이 동작한다.
  • 키는 빌드할 때 들어간다. 바꾸면 다시 빌드한다(pnpm dev, 호스트 앱이면 pnpm bundle:host).
  • 배포 번들을 만드는 곳에도 이 파일이 있어야 운영 앱이 보낸다.

개발 · 운영 구분

PostHog 프로젝트는 하나다(무료 요금제는 프로젝트 1개). 개발과 운영 이벤트가 같은 곳에 쌓이고, 모든 이벤트에 붙는 environment 값으로 가른다.

.env.local의 PUBLIC_ANALYTICS_ENVIRONMENT 이벤트의 environment
production production
없음 · 그 밖의 값 development
  • production은 배포 번들을 만드는 곳에만 둔다. 빠뜨리면 운영 이벤트가 development로 찍히고, 이미 들어간 값은 고칠 수 없다.
  • 빌드 방식(pnpm dev · pnpm bundle:host)과는 상관없다. 이 값만 본다.
  • PostHog Project settings → Filter out internal and test users에 environment = production을 걸어 둔다. 인사이트를 만들 때 이 필터를 켠다.

권장 설정

설정 권장 이유
내부 · 테스트 사용자 필터 environment = production 프로젝트가 하나라 개발 중 조작이 같은 곳에 쌓인다
Discard client IP data 켠다 — 2026-09-30 켰다 요청의 IP가 PostHog에 닿는다. 저장하지 않으려면 이 설정. 나라 추정(GeoIP)은 IP를 버리기 전에 돈다
GeoIP 변환(Data pipelines → Transformations) 나라 · 대륙 · 주 · 시간대만 남기도록 고친 코드 — 2026-09-30 v2 기본 템플릿은 도시 · 우편번호 · 좌표도 남긴다. 템플릿으로 되돌리지 않는다

테스트 데이터

environment 값이 생기기 전에 들어간 테스트 이벤트다. 이 값이 없어서 environment = production 필터로 함께 빠진다. 필터 없이 볼 때만 따로 뺀다.

날짜 · 시각 (KST) 건수 무엇
2026-09-29 10:35–10:41 7 시뮬레이터 수신 확인(설정 · 알림 이벤트)

확인 이력

날짜 환경 결과
2026-09-29 iOS 시뮬레이터 · 키 없음 앱 정상 · 전송 0건
2026-09-29 iOS 시뮬레이터 · 실제 키 이벤트 7건 모두 수신(응답 200) · 재실행하면 익명 ID가 바뀜
2026-09-29 iOS 시뮬레이터 · 로컬 서버(인터넷 끊김 흉내) 끊긴 동안의 이벤트가 연결 뒤 스스로 도착 · 앱을 껐다 켜도 도착

절차는 저장소 docs/e2e/analytics.md에 있다.

Clone this wiki locally