Building Event Center: Karrot’s User Event Management Platform
Karrot의 사용자 이벤트 관리 플랫폼, Event Center 구축기
문제 상황: 산재된 이벤트 관리와 비효율적인 워크플로우
- 방대한 사용자 이벤트 데이터: 제품 개선 및 데이터 기반 의사결정에 필수적이지만, 로그 스케일 증가로 관리 어려움 증대.
- 코드 기반 스키마 관리의 비효율성: Git 기반 워크플로우는 코딩 지식 요구, 긴 리뷰 사이클, 일관성 없는 이벤트 명명 규칙, 화면 이름 혼동 등 문제 야기.
- 다양한 역할의 어려움: 개발자, 데이터 분석가, 엔지니어 등 각 역할별 데이터 활용 및 관리에 어려움.
해결 방향: 표준화된 이벤트 시스템 및 UI 기반 플랫폼
- 회사 전체 표준 사용자 이벤트 시스템 구축: 모든 팀이 공통 언어를 사용하도록 이벤트 명명 규칙 통일.
- UI 기반 관리 플랫폼 (Event Center) 개발: 코드가 아닌 UI를 통해 누구나 쉽게 스키마 정의, 이벤트 관리.
- CLI 기반 코드 생성: 정의된 스키마를 기반으로 iOS, Android, Webview용 타입 안전 코드 자동 생성.
Event Center 구축 과정
1단계: 회사 전체 이벤트 시스템 개편
- 이벤트 명명 규칙 표준화:
Service → Screen → Action (Event) 계층 구조 정의.
- 명명 형식:
client_{action}_{service}_{screen}_{object} (snake_case, camelCase 혼용).
2단계: Event Center 플랫폼 개발
- 서비스 관리: Karrot 내 모든 제품 도메인(서비스) 관리 및 이벤트 분류 기준 제공.
- 화면 관리: 화면별 이벤트 등록 및 관리 기능 제공, 중복 화면 이름 문제 해결.
- 사용자 이벤트 정의: UI를 통해 스키마 등록, 네이밍 규칙 자동 적용, BigQuery 테이블 자동 생성.
- QA 기능: 개발자가 자신의 User ID로 실시간 이벤트 수집 여부 및 파라미터 값 검증.
3단계: 타입 안전 코드 생성 (CLI)
- iOS (Swift), Android (Kotlin), Webview (TypeScript) 용 코드 자동 생성.
- IDE 자동 완성 및 타입 체크를 통한 로깅 오류 감소.
주요 성과 및 향후 과제
- 성과: 수동 작업 자동화, 데이터 일관성 및 신뢰성 향상, 팀 간 협업 증진, 개발자 경험 개선.
- 향후 과제: 사용자 경험 개선 (클릭 수 감소, 상태별 화면 등록 개선), 자동화 고도화 (Figma 연동, UI 요소별 이벤트 추적), 분석 도구 확장 (CTR, PV 등 기본 지표 자동 계산, 실험 메트릭 UI 설정).