
코드 한 줄 없이 UI로 스키마 정의하고 CLI로 타입 세이프한 코드까지 뽑아내는 이벤트 관리의 끝판왕
방대한 사용자 데이터를 의사결정의 핵심 자산으로 활용하기 위해 당근마켓 데이터 팀이 구축한 'Event Center' 플랫폼을 소개합니다. 기존의 번거로운 Git 기반 워크플로우를 UI 중심의 자동화 플랫폼으로 전환하여 전사적인 데이터 표준화를 달성하고, 멀티 플랫폼 개발 환경에서 타입 안정성을 확보한 기술적 여정을 담고 있습니다.
이벤트 로그의 파편화로 인해 데이터 신뢰도가 떨어지거나, 로깅 코드 작성 및 리뷰 과정에서 병목을 겪는 중대규모 조직의 플랫폼 엔지니어에게 강력히 추천합니다.
기존의 Git 기반 코드 중심 스키마 관리 방식은 개발자가 직접 복잡한 Spark StructType JSON을 작성해야 했으며, 이 과정에서 오타나 문법 오류가 빈번하고 데이터 팀의 리뷰 사이클이 길어지는 병목 현상이 발생했다. 또한 전사적으로 통일된 네이밍 컨벤션이 없어 서비스별로 이벤트 이름이 파편화되어 데이터 탐색과 분석에 큰 비용이 소모되는 문제가 있었다.
전사적인 이벤트 네이밍 규칙(Service-Screen-Action)을 수립하고, 이를 강제할 수 있는 UI 기반의 이벤트 관리 어드민 'Event Center'를 구축하여 코드 작성 없이 스키마를 정의하도록 개선했다. 정의된 스키마를 기반으로 iOS, Android, Webview 환경에서 즉시 사용할 수 있는 타입 안정적인 코드를 생성하는 CLI 도구를 도입하고, 본인의 유저 ID로 실시간 로깅 여부를 확인할 수 있는 QA 기능을 추가했다.
이벤트 정의 프로세스의 자동화를 통해 데이터 팀의 리뷰 부담을 줄이고 전체 개발 주기를 단축했으며, CLI 기반의 코드 생성으로 런타임 타입 에러를 원천 차단하여 데이터 정합성을 높였다. 개발자는 직접 BigQuery를 쿼리하지 않고도 어드민 내에서 실시간으로 로그 수집 여부를 확인할 수 있게 되어 QA 효율성이 크게 개선되었다.
Trade-off
UI 기반 플랫폼 도입으로 편의성은 개선되었으나 이벤트 등록 시 여전히 수동 클릭이 많이 발생하며, 성공이나 실패와 같은 동적인 화면 상태 변화를 단일 화면 단위로만 관리하는 현재 모델의 유연성 부족이 한계로 지목된다. 향후 Figma와의 연동 등을 통한 더 높은 수준의 자동화가 필요한 상태임이 본문에 언급되었다.
Apache Spark에서 데이터의 구조를 정의하기 위해 사용하는 스키마 형식으로, 필드 이름과 데이터 타입, 널 허용 여부 등을 포함한다.
이벤트가 발생한 서비스, 화면, 액션의 맥락을 이름만으로 파악할 수 있도록 정의한 전사적 네이밍 규칙이다.
중앙 관리 플랫폼에서 정의된 스키마를 바탕으로 각 프로그래밍 언어의 타입 시스템에 맞는 코드를 자동 생성하는 기술이다.
데이터 파이프라인 처리 중 유효성 검사를 통과하지 못한 비정상 데이터를 격리하여 저장하는 저장소이다.




