데이터카탈로그 PM이 데이터 디스커버리라는 가치를 풀어내는 방법

1 month ago 6

데이터 디스커버리조직 내에 존재하는 다양한 데이터를 쉽게 찾고 이해하여 분석에 활용할 수 있도록 돕는 과정입니다. 사용자 입장에서 이는 마치 거대한 서점에서 필요한 책을 찾는 것과 비슷합니다. 서점에는 수많은 책들이 있지만 이름만 알고 정확한 위치를 모르면 찾는 데 많은 시간이 걸립니다. 어떨 땐 정확한 이름도 모르는 상태에서 우선 둘러만 보려고 서점에 가기도 합니다.

데이터 디스커버리 툴을 사용하면 이러한 상황에서 도서 찾기 키오스크와 같이 원하는 책의 위치와 정보를 신속하고 쉽게 파악할 수 있습니다. 거대한 서점이 우아한형제들의 방대한 데이터베이스, 필요한 책은 특정 테이블이라고 생각한다면 사내 데이터 디스커버리 툴이 할 일은 도서 찾기 키오스크가 하는 일과 일맥상통합니다.

우아한형제들의 사내 운영 데이터를 효율적으로 찾기 위해서 만들어진 프로덕트데이터카탈로그입니다. 데이터카탈로그는 데이터 업무 담당자가 데이터를 찾는 데 소비하는 시간을 줄이고 분석에 집중할 수 있도록 하고, 데이터의 가시성을 높여 데이터를 더욱 쉽게 이해하고 활용할 수 있도록 돕고자 구축되었습니다. 데이터 정보를 공유하고 협업을 촉진하여 데이터 기반 의사 결정을 지원하고자 했습니다.

위 목표를 달성하기 위해 데이터카탈로그를 3단계로 나눠 기획, 개발했고, 각 단계에서 어떤 주요 요구사항이 있었으며 이를 어떻게 프로덕트에 반영하고 고도화했는지 대한 이야기를 풀어보려 합니다.

태초에 데이터어드민이 있었다.

제가 회사에 입사했을 당시 사내 데이터 디스커버리 툴은 자체 개발한 ‘데이터어드민’과 오픈 소스인 ‘DataHub’였습니다. 두 서비스는 사내 구성원들에게 스스로 데이터를 찾을 수 있는 환경을 제공했지만 크게 활성화되지는 못했습니다.

데이터어드민은 데이터 구조에 따라 단계별로 스키마 및 테이블 검색을 지원했지만 전체 엔티티에 대한 통합 검색은 제공하지 못했고, DataHub는 통합 검색을 지원했지만 고급 사용자가 아니라면 직관적으로 엔티티를 찾고 파악할 수 있는 구조가 아니었습니다. 이러한 문제들을 해결하고 효율적인 데이터 디스커버리 경험을 제공하기 위해 데이터어드민을 데이터카탈로그로 리브랜딩하는 기획을 시작했습니다.

1단계: 데이터 빠르게 찾기 – 컬럼 검색 기능

데이터어드민 사용자들은 공통적으로 스키마 기반 검색의 한계를 느끼고 있었습니다. 사용자 불편 사항을 분석해보니 컬럼 검색으로 분석 목표에 필요한 컬럼만 검색할 수 있길 바랐습니다. 기존의 스키마 기반 검색은 데이터베이스의 전체 구조를 파악하는 데 유용하지만 특정 컬럼을 찾기 위해서는 추가적인 탐색이 필요했기 때문입니다. 예를 들어, 스키마명을 검색하고 테이블명을 검색하는 2단계 탐색 과정을 거치는 데다 컬럼 목록을 일일이 확인해야 했고, 혹여나 잘못된 스키마나 테이블을 선택했다면 다시 스키마부터 선택해야 하는 불편이 있었습니다. 이를 해결하기 위해 컬럼 검색 기능을 만들어 원하는 컬럼만 조회할 수 있도록 불필요한 탐색 단계를 줄이고 검색 결과를 명확하게 하고자 했습니다.

▲ 데이터어드민의 스키마 및 테이블 검색 UI

데이터카탈로그에 컬럼 검색 기능을 설계하면서 고려한 주요 유저 시나리오와 그에 따라 기획한 기능은 아래와 같았습니다.

시나리오 1 : 사용자는 키워드를 사용하여 원하는 데이터를 한 번에 검색하고 싶어한다.
기능 1 : 통합 검색 대상에 컬럼을 추가한다.

— 컬럼 검색을 통합 검색 기능에 포함하여 사용자가 별도로 컬럼 검색을 수행할 필요 없이 한 번에 원하는 데이터를 찾을 수 있도록 한다.
— 검색 시 테이블, 컬럼 등 다양한 데이터 유형을 함께 검색하고 결과를 통합하여 보여준다.
— 검색 결과 내에서 테이블과 컬럼을 구분하여 사용자가 원하는 데이터를 쉽게 찾을 수 있도록 한다.

시나리오 2 : 사용자는 정확한 컬럼 이름을 모르더라도 자연어 형태의 키워드를 사용하여 원하는 데이터를 검색하고 싶어 한다.
기능 2 : 엔티티의 이름과 설명에 대한 키워드 검색을 지원한다.

— 토큰 기반의 검색 로직을 활용하여 사용자가 입력한 키워드를 알맞게 쪼개어 데이터를 검색한다.
— 두 개 이상의 키워드를 입력할 시 합집합의 결과를 관련도 높은 순으로 정렬하여 보여준다.

시나리오 3 : 사용자는 검색 결과를 쉽고 빠르게 파악하고 원하는 데이터를 선택하고 싶어한다.
기능 3 : 검색 결과를 이해하기 쉬운 형태로 제공한다.

— 검색 결과를 종류, 이름, 데이터 설명, 위치를 기반으로 보여주어 사용자가 검색 결과와 데이터 구조를 쉽게 이해할 수 있도록 한다.

시나리오 4 : 사용자는 검색 결과가 너무 많을 경우 원하는 조건에 맞는 컬럼만 빠르게 찾고 싶어한다.
기능 4 : 검색 결과를 필터링할 수 있다.

— 컬럼 이름 및 설명에 대해 추가적인 조건을 적용하여 재검색할 수 있다.
— 데이터 종류별 필터링을 제공하여 원하는 엔티티만 볼 수 있다.
— 재검색과 필터 기능을 조합하여 더욱 세밀한 검색 결과를 얻을 수 있도록 한다.

▲ 데이터카탈로그 통합 검색 결과 지면에 컬럼만 필터링한 상태

컬럼을 하나의 독립적인 검색 대상으로 격상하여 통합 검색에 포함시켰고, 검색 결과는 이해하기 쉽도록 구성했습니다. 동시에 사용자가 필터링 기능을 통해 결과를 좁혀갈 수 있도록 개선했습니다.

▲ Phase 1 사용자 조사 의견 중 일부

1단계 데이터카탈로그를 오픈한 이후 2023년 1월의 데이터카탈로그 MAU는 2022년 12월 데이터어드민 MAU 대비 71.85% 증가했습니다. 통합검색 결과 페이지 PV(Page View)는 전체 PV 중 약 35%로, 전체 PV 중 2위를 차지했습니다. 사용자 피드백에서도 컬럼 검색에 대한 긍정적인 평가를 확인할 수 있었습니다.

2단계: 데이터 쉽게 이해하기 – 데이터 미리보기 기능

데이터 분석 업무를 수행하는 데이터카탈로그 사용자들은 Zeppelin에서 데이터 분석을 시작하기 전, 필요한 정보를 찾기 위해 데이터 디스커버리 여정을 시작합니다.

데이터카탈로그 1단계에서 구축한 테이블 상세 페이지에서는 사용자가 테이블 스키마를 확인할 수 있었습니다. 하지만 스키마 정보만으로는 데이터의 실제 모습과 내용을 파악하기 어려웠기 때문에 Zeppelin에 접속해 SQL 쿼리를 작성하고 실행해야만 데이터를 직접 확인할 수 있었습니다.

데이터카탈로그 2단계에서는 단순히 데이터를 찾는 것을 넘어, 사용자가 데이터를 쉽게 이해하고 분석에 활용하는 것을 목표로 삼았습니다. 이 목표에 따라 테이블 스키마뿐만 아니라 실제 데이터를 함께 확인할 수 있는 데이터 미리보기 기능을 기획했습니다. 미리보기 기능을 사용함으로써 분석에 필요한 컬럼과 데이터를 더 빠르게 선별하고, 적절한 분석 방법을 결정할 수 있을 것으로 기대했습니다.

기능을 구현하면서 중요하게 고려한 것 중 하나는 데이터 보안이었습니다. 데이터카탈로그의 모든 사용자가 테이블의 기본 구조는 볼 수 있지만, 실제 데이터는 접근 권한이 있는 사용자만 볼 수 있도록 설계했습니다. 권한이 있는 사용자는 테이블의 실제 데이터 중 5개 행을 미리 볼 수 있게 되었습니다.

▲ 데이터 미리보기 기능으로 사용자에게 노출하는 실제 샘플 예시

Phase 2 배포 후 진행한 사용자 조사에서 71.8%의 사용자는 ‘데이터 미리보기’를 가장 자주 사용하고 접근하기 쉬운 기능으로 꼽았습니다. 개선 작업을 하면서 데이터 디스커버리가 단순히 데이터를 찾는 것을 넘어, 사용자가 데이터를 쉽게 이해하고 활용할 수 있도록 도와주는 과정이어야 한다는 것을 깨달았습니다.

3단계: 데이터 신뢰 구축하기 – 리니지 기능

데이터카탈로그는 Phase 1과 2를 거치며 전체 구성원의 1/4이 활용하는 핵심 데이터 디스커버리 프로덕트로 자리 잡았습니다. 편리한 검색 기능과 풍부한 메타데이터를 제공하며 성장해왔지만, 여전히 한계가 있었습니다. 바로 데이터의 출처와 생성 과정을 추적하기 어렵다는 점이었습니다.

예를 들어, 한 비즈니스 분석가가 ‘작년 매출액’ 데이터를 분석하려 할 때, 현재는 이 매출액 데이터가 어떤 데이터를 기반으로 생성되었는지 파악하기 어렵습니다. 만약 이러한 데이터의 흐름을 추적할 수 있다면, 이 매출액 데이터가 ‘판매 데이터’, ‘광고 데이터’, ‘반품 데이터’ 등 다양한 소스들로부터 어떤 과정을 거쳐 만들어졌는지 한눈에 확인할 수 있을 것입니다.

실제로 데이터 분석가들은 데이터 간의 관계를 파악하는 데 많은 시간을 들였고, 데이터 엔지니어들은 장애 발생 시 근본 원인을 신속하게 찾아내기 어려웠습니다. 점점 더 복잡해지는 데이터 환경 속에서 특정 데이터의 생성 과정과 시스템 간 연관관계를 추적하는 것이 중요한 과제로 떠올랐습니다. 이 문제를 해결하기 위해 테이블 중심의 데이터 리니지 기능을 도입했습니다.

유저가 특정 테이블을 선택해 리니지를 조회하면 해당 테이블의 원천 테이블이 무엇인지, 그리고 어떤 과정을 거쳐 변형 및 발전되었는지를 확인할 수 있습니다. 테이블과 테이블 사이의 Airflow DAG 노드로 데이터가 어떻게 추출, 변환, 적재(ETL)되는지를 단계별로 파악할 수 있습니다. 또한, 여러 테이블 간의 연결 관계를 한눈에 확인할 수 있으며, 특정 테이블이 다른 테이블을 어떻게 참조하는지도 쉽게 알 수 있습니다. 복잡하게 얽힌 테이블 관계를 직관적으로 파악할 수 있으며, 궁극적으로 어떤 대시보드에서 어떤 테이블 데이터가 활용되고 있는지까지 확인할 수 있습니다. 이는 데이터의 탄생과 성장 과정을 한눈에 보는 것과 같습니다.

이 기능은 데이터의 흐름을 보다 쉽게 이해할 수 있도록 두 가지 방식의 뷰(View)로 제공했습니다.

▲ 테이블 리니지를 그래프 뷰로 조회했을 때

첫 번째는 그래프 뷰(Graph View)입니다. 마치 가계도처럼 데이터 간의 관계를 시각적으로 보여줍니다. 예를 들어 ‘주문 매출’ 테이블을 중심으로 보면 이 데이터가 ‘상품 주문’, ‘결제’, ‘배송’ 등 여러 데이터와 어떻게 연결되어 있는지 한눈에 파악할 수 있습니다. 복잡한 데이터 관계를 지도처럼 펼쳐 보여주기 때문에 전체적인 데이터 흐름을 이해하는 데 특히 유용합니다.

▲ 테이블 리니지를 리스트 뷰로 조회했을 때

두 번째는 리스트 뷰(List View)입니다. 선택한 데이터와 연결된 모든 데이터를 목록 형태로 정리하여 보여줍니다. 사용자는 의존도나 엔티티 타입 등 다양한 필터를 활용해 원하는 데이터만 선별해서 볼 수 있습니다. 이를 통해 복잡한 데이터 관계를 보다 정돈된 형태로 파악할 수 있습니다.

데이터 리니지 기능으로 얻을 수 있는 장점은 다음과 같습니다.

  • 데이터 분석가는 데이터의 출처와 변형 과정을 명확히 이해하고, 분석 결과에 대한 신뢰도를 높일 수 있습니다. 마치 요리사가 레시피의 기원을 파악하고 변형 과정을 이해하여 완성도를 높이는 것과 같습니다.

  • 데이터 엔지니어는 장애 발생 시 문제의 근본 원인을 빠르게 파악하고 해결할 수 있습니다. 마치 의사가 환자의 병력을 분석하여 정확한 진단을 내리는 것과 같습니다.

  • 데이터 과학자는 데이터 간의 관계를 탐색하고 새로운 인사이트를 발견하는 데 도움을 받을 수 있습니다. 마치 탐험가가 지도를 보며 새로운 길을 찾아내는 것과 같습니다.

사용자는 단순히 데이터를 검색하는 것을 넘어, 데이터가 어디에서 왔고 어떻게 가공되었는지를 쉽게 이해할 수 있게 되었습니다. 신뢰할 수 있는 데이터를 빠르게 확보하고, 보다 정확한 분석을 수행할 수 있었습니다. 특히, 데이터 분석가들은 데이터의 변형 과정이 명확해짐에 따라 분석 결과에 대한 확신을 가지게 되었고, 데이터 엔지니어들은 장애 대응 시간을 단축할 수 있었습니다.

결국, 데이터 디스커버리는 단순한 탐색을 넘어 조직 내에서 데이터를 효과적으로 활용할 수 있도록 돕는 과정임을 다시 한번 확인할 수 있었습니다.

데이터카탈로그의 현재와 미래: 시너지와 확장

1단계에서 도입한 컬럼 검색, 2단계에서 도입한 데이터 미리보기, 그리고 3단계의 데이터 리니지는 독립적인 기능이지만, 함께 사용될 때 더욱 강력한 시너지를 발휘합니다. 컬럼 검색을 통해 원하는 데이터를 빠르게 찾고, 미리보기 기능을 활용해 데이터의 내용을 확인한 후, 리니지를 통해 데이터의 출처와 변형 과정을 파악하는 흐름이 자연스럽게 자리 잡았습니다. 이를 통해 데이터 분석의 효율성과 신뢰도를 더욱 높일 수 있습니다.

데이터 접근성과 신뢰도가 개선되면서 조직 내 데이터 활용 방식도 변화했습니다. 이전에는 데이터의 신뢰성을 검증하는 데 많은 시간이 소요되었지만, 이제는 데이터카탈로그를 통해 빠르게 출처를 확인하고 검증할 수 있습니다. 특히, 데이터 리니지를 통해 데이터가 어떻게 가공되었는지를 명확히 볼 수 있어, 분석 결과에 대한 신뢰가 높아졌습니다. 이러한 변화는 데이터 기반 의사결정을 더욱 활성화시키고 데이터 중심 문화를 조직 전반으로 확산하는 데 기여하고 있다고 생각합니다.

데이터카탈로그는 단순한 검색 도구를 넘어, 조직 내 데이터 활용을 촉진하는 필수 인프라로 자리 잡았습니다. 앞으로는 사용자 피드백을 반영하여 더욱 직관적인 UI를 제공하고, 다음 단계로 나아가기 위해 해결해야 할 도전 과제들을 계획하고 있습니다. 그 중에서도 가장 중요한 변화는 생성형 AI(Generative AI, GAI)와의 결합입니다.

GAI를 도입하면 데이터카탈로그는 한층 더 개인화된 데이터 탐색 경험을 제공할 수 있습니다. 사용자는 테이블 요약을 받아보거나, 테이블 데이터를 활용한 쿼리를 만들 수 있습니다. 기존의 키워드 검색 방식으로는 찾기 어려웠던 엔티티도 자연어로 질의해가며 탐색하고, AI가 이 모든 검색 패턴과 데이터 활용 이력을 학습해 가장 적합한 데이터를 자동 추천해 줄 수도 있습니다.

이러한 혁신을 통해 데이터카탈로그는 단순한 검색 도구를 넘어 스마트한 데이터 활용 지원 시스템으로 진화할 것입니다. 앞으로 GAI 기반의 기능 확장에 도전하며 조직 내 모든 구성원이 데이터를 쉽고 빠르게 탐색하고 활용할 수 있도록 지원하는 것이 데이터플랫폼팀의 목표입니다. 데이터 디스커버리의 가치를 더욱 높이고 조직 전반의 데이터 활용 수준을 새로운 차원으로 끌어올리기 위해 지속적으로 발전시켜 나가겠습니다.

Read Entire Article