GitLab은 내부적으로 Product Analytics(제품 분석) 기능을 테스트하며 이 기능의 베타 버전을 준비하고 있습니다. 지금부터 Product Analytics 기능의 준비 과정과 기능 개선 사항을 알아보겠습니다.

출처=GitLab | 인포그랩 GitLab
출처=GitLab

현재 개발, 출시되는 기능이 ‘여러분 목표를 달성하는 데 어떻게 도움이 되는지’ 잘 이해하려면, 충분한 검증 데이터가 필요합니다. 이전에 GitLab 블로그에 발표한 Product Analytics 기능 세트는 GitLab 안에서 코드를 도구화하고(instrumenting), 데이터를 처리하며 시각화하는 도구를 제공하여 고객이 이 업무를 수행하도록 도움을 줍니다.

개인 정보 보호가 최우선

GitLab은 ‘고객 개인 정보 보호가 GitLab 고객과 고객의 고객에게 큰 관심사’임을 잘 알고 있습니다. 앞서 블로그에서 밝혔듯 GitLab은 아래와 같은 접근 방식을 취합니다.

"Product Analytics 기능은 일반적으로 인식되는 옵트 아웃(opt-out) 신호를 준수하도록 설계되었으며, GitLab 또는 사용자가 관리하는 클러스터에서 수집되는 데이터를 완전히 제어하도록 Product Analytics 기능을 설계하고 있습니다.”

이러한 접근 방식은 바뀌지 않았으며, 다시 언급하지 않을 수 없을 정도로 매우 중요합니다.

대형 고객을 지원할 수 있는 기능 준비

GitLab은 Product Analytics 기능의 오픈 베타 버전 출시를 빠르게 진척시키고 있습니다. 현재 베타 버전에는 Managed Product Analytics(관리형 제품 분석) 스택, 소스 도구화를 위한 5가지 기존 SDK, 기본 대시보드, 최근 출시된 향상된 대시보드와 Visualization Designer(시각화 디자이너) 환경이 포함되었습니다. 또한 GitLab은 내부 사용자들이 Product Analytics 기능으로 해결할 수 없는 문제와 관련해 더 많은 통찰을 얻고 있습니다.

Product Analytics 기능의 베타 버전 출시를 준비하면서, ‘Managed Product Analytics 스택이 초기 고객과 내부 사용자에게 받는 것보다 더 큰 이벤트 부하를 어떻게 견딜지’ 파악하는 게 중요했는데요. 도그푸딩 약속을 지키려면 내부 프로젝트를 더 많이 추가하는 게 정답이므로, GitLab은 더 많은 내부 팀과 협력해 Metrics Dictionary와 GitLab Design System 사이트에 도구화 기능을 추가하였습니다.

내부 프로젝트를 도구화함으로써 Product Analytics 기능의 설정, Audience와 Behavior Dashboards의 유용성을 두고 추가 피드백을 받았습니다. 이는 방문한 사용자 수와 그들이 방문한 페이지를 보여주는데요. 덕분에 Product Analytics 기능의 유용성과 관련해 훌륭한 통찰을 얻었습니다. 그러나 이는 ‘Product Analytics 기능을 실제로 스트레스 테스트할 때 필요한 이벤트의 양’을 GitLab이 원하는 규모로 제공하지는 못했습니다.

GitLab의 Analytics Dashboards 화면. 출처=GitLab | 인포그랩 GitLab
GitLab의 Analytics Dashboards 화면. 출처=GitLab

이와 동시에 Product Analytics 기능 개발 부서의 Analytics Instrumentation(도구화 개발) 팀은 GitLab 개발자가 도구를 더 쉽게 사용하도록 이벤트 프레임워크를 개발하기 위해 열심히 노력했는데요. 이로써 GitLab 팀은 새로운 기능을 만들고 기존 기능을 더 빠르게 업데이트하여 ‘변경 사항이 사용자에게 미치는 영향’을 이해할 수 있었습니다. 또한 Product Analytics 기능을 GitLab.com에 추가하기가 훨씬 더 쉬워지고 더 빨라졌는데요. 이는 가정을 검증할 수 있도록 Product Analytics 기능 스택을 스트레스 테스트하는 이벤트 볼륨을 제공했죠.

완전히 활성화된 후, 모든 페이지 조회수와 이벤트가 Managed Product Analytics 기능 스택으로 전송되면서 ‘내부적으로 도구화된(instrumented) 다른 모든 프로젝트’보다 부하는 17배 증가하였고요. 하루에 2000만 개가 넘는 이벤트를 수신했습니다. 이벤트가 엄청 많죠!

GitLab.com을 도구화함으로써, Product Analytics 기능을 베타 버전으로 사용자에게 소개하기 전에 인프라의 스트레스 포인트도 확인할 수 있었습니다. 이로써 확장 전략을 검증하고, 쿼리 성능 문제를 파악하며 해결했고요. 곧 출시될 베타 프로그램의 온보딩 경험을 개선하고, GA(Generally Available) 버전 출시를 위해 노력하면서 향후 개선 방향을 계획할 수 있었습니다.

또한 Product Analytics 기능 개발을 위한 기술 스택을 개선하면서 ‘이 기능이 서비스 중단이나 속도 저하로 고객에게 불편을 끼치지 않고 미래의 고객 부하를 견딜 수 있다’는 점을 스스로 입증했습니다.

Product Analytics 기능의 다음 단계

내부 릴리즈와 실험 단계 전반에 걸쳐 GitLab은 고객과 Product Analytics 기능, 특히 내장된 대시보드에서 작동하는 기능과 작동하지 않는 기능을 논의해 왔습니다. 이 피드백을 참조하여 GitLab은 여기에 모두 담을 수 없는 많은 개선 사항을 염두에 두고 있습니다. Product Analytics 기능 방향 페이지에서 다음에 나올 개선 사항의 최신 정보를 확인하세요.

GitLab은 Customizable DashboardsVisualization Designer와 같은 기능의 다음 버전과 관련해 Product Analytics 기능 사용자와 직접 대화하고 있습니다. 또한 팀은 인공지능(AI)을 활용하여 Product Analytics 데이터를 더 쉽게 찾고 이해할 방법을 모색하고 있습니다.

당신의 피드백을 공유해 주세요

지금은 Product Analytics 기능의 매우 흥미진진한 시기입니다. 여러분이 직접 이 기능을 시험해 보시기를 기대합니다! 피드백 이슈에 아이디어나 의견을 추가할 수 있습니다. 여러분 의견을 기다리겠습니다!

참고

도구화(instrumenting)는 소스 코드의 제어 흐름이나 로직을 건드리지 않으면서 해당 소스 코드와 제어 구문의 수행 여부를 확인하도록 추가 코드를 주입하는 과정을 의미함. 이렇게 해당 소스 코드의 수행 여부를 확인하도록 만드는 과정을 도구화(Instrumenting)라고 함.

이 포스트는 GitLab의 동의를 받아 공식 블로그의 영문 포스트를 우리말로 번역한 글입니다.