당근마켓, UI 기반 로그 관리 플랫폼 '이벤트센터'로 개발 효율 UP!

by DD
4개월 전
조회수 120

사용자 행동 로그는 제품 개선 및 의사결정에 중요한 역할을 하지만, 로그 증가에 따라 관리 방식의 중요성도 커짐

기존의 Git 기반 스키마 관리 방식의 복잡함, 긴 리뷰 사이클, 일관성 없는 이벤트 네이밍 체계 등의 문제 발생

UI 기반의 이벤트센터를 구축하여 스키마 정의, 이벤트 관리, QA, 코드 생성을 자동화하여 효율성 증대

전사 이벤트 체계 개편을 통해 서비스-스크린-액션 3단계 계층 구조 및 네이밍 컨벤션 구축

CLI를 통해 타입 안전한 코드 자동 생성으로 개발 생산성 향상 및 오류 감소

Git 기반 스키마 관리의 문제점

본문에 따르면 기존의 Git 기반 스키마 관리 방식은 스키마 추가 시 코드 작성, 유효성 검사, PR 생성, 리뷰, 머지 등 복잡한 과정을 거쳐야 했다. 특히, Spark StructType JSON 형태로 스키마를 직접 작성해야 하는 높은 진입 장벽은 개발 생산성을 저해하는 주요 원인이었다.

코드 기반 스키마 관리: JSON 스키마 작성, 유효성 검사, CI 통과, PR 생성, 리뷰, 머지 등 복잡한 과정

긴 리뷰 사이클: 데이터가치화팀의 리뷰를 거쳐야 했으며, 컨벤션 위반 시 수정 및 재리뷰 필요

일관성 부재: 이벤트 이름 컨벤션 부재로 인해, home_feed vs homeFeed, show_article vs shown_article 등 일관성 저해

이러한 문제점들은 스키마 관리의 어려움을 가중시키고, 로그를 활용하는 전체 흐름을 느리게 만들었다.

이벤트센터 아키텍처: UI 기반 스키마 관리

이벤트센터는 UI 기반의 스키마 정의, 이벤트 관리, QA, 코드 생성을 자동화하여 개발 생산성을 향상시켰다. UI를 통해 스키마를 정의함으로써, 코드 작성의 복잡성을 제거하고, 리뷰 프로세스를 자동화하여 시간 효율을 높였다. 또한, 스크린 관리 기능을 통해 화면별 이벤트를 한눈에 파악할 수 있도록 개선했다.

UI 기반 스키마 정의: Spark StructType JSON 작성 불필요, 누구나 쉽게 스키마 등록 가능

자동화된 리뷰 프로세스: 리뷰 시간 단축 및 개발 생산성 향상

스크린 관리 기능: 화면별 이벤트 확인 용이, 이벤트 파악 및 관리 효율성 증대

이러한 변화는 데이터 분석가, 데이터 엔지니어, 프론트엔드 엔지니어 등 다양한 직군에게 긍정적인 영향을 미쳤다.

전사 이벤트 체계 개편: 일관된 로그 체계 구축

당근마켓은 전사 공통의 일관된 사용자 행동 로그 체계를 구축하기 위해, 서비스-스크린-액션 3단계 계층 구조와 client_{action}_{service}_{screen}_{object} 형태의 이벤트 네이밍 컨벤션을 도입했다. 이는 팀 간의 의사소통 비용을 절감하고, 데이터 검색 시간을 단축하는 효과를 가져왔다. 또한, UI 요소에 대한 컨벤션도 별도로 정의하여 일관성을 더욱 강화했다.

3단계 계층 구조: 서비스, 스크린, 이벤트로 분류하여 이벤트 구조화

네이밍 컨벤션: client_{action}_{service}_{screen}_{object} 형태 적용, snake_case 및 camelCase 혼용

UI 요소 컨벤션: bottomsheet, dialog 등 UI 요소에 대한 컨벤션 정의

이러한 체계적인 접근은 로그 데이터의 품질을 향상시키고, 데이터 기반 의사결정을 더욱 효과적으로 지원한다.

CLI를 활용한 타입 안전한 코드 생성

이벤트센터에서 정의된 이벤트 스키마는 CLI를 통해 각 플랫폼(iOS, Android, Webview)에 맞는 타입 안전한 코드로 자동 생성된다. 개발자는 생성된 타입을 활용하여 필드 누락 및 타입 오류를 컴파일 타임에 방지할 수 있으며, IDE의 자동완성 및 타입 체크 기능을 활용하여 안전하게 로깅 코드를 작성할 수 있다.

자동 코드 생성: iOS(Swift), Android(Kotlin), Webview(TypeScript) 코드 자동 생성

타입 안전성 확보: 필드 누락 및 타입 오류 방지, 컴파일 에러 발생

개발 생산성 향상: IDE 자동완성 및 타입 체크 활용, 안전한 로깅 코드 작성

이러한 자동화된 코드 생성은 개발 생산성을 향상시키고, 로깅 관련 오류를 줄이는 데 기여한다.

이벤트센터의 미래: 지속적인 개선과 확장

이벤트센터는 현재 사용성 개선, 자동화 확대, 분석 도구 확장 등 다양한 과제를 안고 있으며, 지속적인 발전을 목표로 하고 있다. 특히, Figma와의 연동을 통해 디자인 단계에서부터 이벤트를 정의하고, 코드 자동 생성을 구현하는 것을 목표로 하고 있다. 또한, CTR, PV, AU 등 기본 지표를 자동으로 계산하고, UI 기반의 실험 지표 설정 기능을 추가하여 데이터 기반 의사결정을 더욱 강화할 예정이다.

사용성 개선: 이벤트 추가 과정 간소화, 단일 스크린 등록 제한 개선

자동화 확대: Figma 연동을 통한 디자인-코드 자동 생성, UI 기반 실험 지표 설정

분석 도구 확장: CTR, PV, AU 등 기본 지표 자동 계산 기능 추가

이러한 지속적인 개선과 확장을 통해 이벤트센터는 당근마켓의 데이터 기반 의사결정을 더욱 강력하게 지원할 것이다.

당근의 사용자 행동 로그 관리 플랫폼: 이벤트센터 개발기