다니엘의 도서부채 해결

Daniel's review #3: 데이터 품질의 비밀

Daniel Seo 2023. 5. 22. 08:30

오래전 데이터 사이언티스트로 유명한 하용호 님의 세미나에서 가장 기억에 남는 말이 있습니다.

“데이터가 필요할 땐 정작 쓸만한 데이터가 없어요”

정말 그랬습니다. 필자의 경험으로 2010년대 중반의 한국은 서비스 Feature 릴리즈가 우선이었기 때문에 상대적으로 데이터는 우선순위에서 상대적으로 낮았습니다. 몇몇 크고 아름다운(?) 회사를 제외하고는 데이터 품질을 따지는 경우가 많지 않았습니다. 지금은 다르지만 당장 살아남기 바쁜 어떤 스타트업도 마찬가지였던 거 같습니다. 서드 파티에서 제공하는 간단한 핵심 지표로 만족하는 것으로 보였습니다. 투자자가 요구하지 않는 이상은 바라지 않는 것 같다고 해야 할까요?

과거는 그랬지만 현재는 다릅니다. 린(Lean) 시리즈의 성공 이후로 많은 데이터 기반 의사 결정이 확산되었습니다. 그러니 요즘 시대의 회사는 자연스럽게 데이터 분석 방법(어떤 데이터가 필요하고, 이 데이터 누구한테 유용한지의 질문에 대한 대답 등등)과 실시간으로 데이터를 받아 볼 수 있는 데이터 파이프라인 구축과 정확한 인사이트를 얻기 위한 데이터 품질에 관심을 기울이기 시작했습니다.

조금은 뜬금 없지만 머신러닝 기반의 추천 서비스의 등장은 데이터 품질에 기업들이 더 관심을 가지게 만들었습니다. 쓰레기를 넣으면 쓰레기가 나온다.(Garbage In Garbage Out)는 말은 머신러닝 모델에도 잘 적용되기 때문이죠. 그러니 조금이라도 틀어진 데이터를 넣는다면 의도와 다르게 편향된 결과를 가져옵니다.

이는 데이터 분석을 할 때도 데이터 품질은 정말 중요하기는 마찬가지입니다. 잘못된 데이터는 잘못된 의사결정을 하게 만들기 때문입니다.

그래서 이책에서는 데이터 품질을 다루는 노하우를 소개하고 있습니다.


이 책에서는 한 문장으로 요약하면

“서비스 프로덕트처럼 데이터도 프로덕트로 생각하는 관점을 갖자”

모든 과정을 철저하게 소프트웨어 개발과정으로 만들어 보자는 것입니다. 데이터를 사용하는 내부 사용자(고객)에게 정확한 데이터 전달(서비스)을 위해 서비스 프로덕트처럼 데이터 다운 시간을 최대한 줄이자는 것이죠. 서비스 개발자가 본다면 익숙하게 느낄 거라 생각합니다. 서비스와 차이는 데이터가 어딘가 망가져서 잘못된 인사이트를 주고 있다면 차악으로 아예 서킷 브레이크를 작동시켜서 모조리 다운시키고 복구하자는 것이죠. 이는 위에서 언급한 Garbage in Garbage out 때문에 그렇습니다.

데이터 사일로(블랙박스 개념과 비슷합니다. 조직과 분리되어 있으며 접근할 수 없는)에서 시작하여 최대한 많은 사람이 데이터를 이용할 수 있게 하자는 데이터 민주화로 변화하는 데이터의 시대적 흐름을 모범 사례를 통해서 소개합니다. 그리고 데이터 품질을 평가하는 방법데이터 품질의 저하로 인해서 발생하는 비용을 계산하는 방법을 설명합니다. 데이터 품질을 위해 프로세스와 모니터링 방법 등 온갖 Best practice를 적용하는 것이라 보면 되겠습니다.

여기는 출판사의 책 소개 입니다.

예제 코드 주소 입니다만 제공하는 것은 예제코드뿐 아니고 저자들 인터뷰도 잘 담겨 있습니다.

총평

400쪽이 안 되는 책에 데이터 품질, 프로세스, 구축방법, 데이터 파이프라인 스택, 데이터 변환 프레임워크 소개와 Best Practice 소개까지 많이도 넣었습니다. 부족한 내용은 책 내 링크에 제공하고 있으며 상당히 유명하고 인사이트를 주는 글이 대부분입니다. 한 번씩 읽어봐도 도움이 될 것 같습니다. 아쉬운 점은 책에 적힌 URL을 타이핑하려면 쉽지 않군요. 이북을 지향해서 만들어진 책 같습니다. 또 하나의 단점은 올드 스쿨 스타일 번역입니다. 2000년대 초반 번역서를 보는 것 같았습니다. 슬프지만 원서가 더 쉬울 거 같습니다.

추천 대상

CDO(Chief Data Officer), Data Engineer나 데이터 분석가, 데이터를 어떻게 다루는지 궁금한 개발자에게 도움이 되겠습니다.

마지막 한마디

책도 좋고 기획의도도 좋았습니다. 개인적으로 흥미롭게 보았습니다. 인용하고 싶은 내용이 많은 책은 오랜만입니다.

번역이 아쉬운 도서. 이북으로 보는게 더 나을수도 있겠습니다


아래는 개인적으로 인상 깊은 구절을 인용해 봅니다.

데이터 다운으로 인해서 20%의 고객이 빠져나가고 복구하는데 40% 시간을 쓴다.

데이터 품질에서 다운타임이 얼마나 중요한지를 알 수 있는 대목입니다. 이때 이가 빠진 데이터는 중요한 의사 결정에 문제를 발생시킬 수 있습니다.

명확한 모델을 사용하는 경우 데이터 카탈로그가 제대로 동작한다. 하지만 데이터 파이프라인이 점점 복잡해지고 비정형 데이터가 표준이 됨에 따라 데이터가 무엇을 하는지, 누가 사용하는지, 어떻게 사용하는지 등 데이터에 대한 이해는 현실을 반영하지 못하고 있다 (p.67)

데이터 기반 의사 결정이 중심이 되고 나서부터 점점 데이터 관리는 복잡해지고 있습니다. 서비스의 나이만큼 복잡해진다고 할까요? 그리고 인사이트를 얻기 위해 소스 데이터에서 수십, 수백 단계의 가공을 거칩니다. 데이터 카탈로그로 정형화하는 것은 좋지만 유연하지 않기에 따라가는 게 쉽지 않습니다.

종종 프로덕트의 데이터베이스에 쌓이는 데이터들은 서비스에서 발생하는 사건을 던져 놓은 수준에 지나지 않는 경우가 있는데 이는 엔지니어들이 충분히 고심하지 않았기 때문이다. 회사가 발전하면서 데이터 모델이 지저분해지는 가장 큰 이유 중 하나는 대개 서비스를 빠르게 구축하는 데에만 집중하고 데이터 자체는 뒷전으로 취급하기 때문이다. 데이터 프로덕트를 다루자는 아이디어는 이러한 업무방식을 바꿔 나가기 위한 일련의 변화라고 볼 수 있다. p270

실제로 많은 기업이 그렇습니다. 변화무쌍한 회사 또는 프로덕트의 우선순위엔 데이터보다 제품이 우선순위가 높기 때문입니다. 그리고 정말로 데이터가 필요하기 전까지 그 누구도 어떤 데이터를 필요로 하는지 모르기도 하죠.

새로운 데이터 프로덕트를 구축하기 전에는 반드시 비즈니스 목표에 부합하는 KPI를 설정해야 한다. 채드가 앞서 설명한 것처럼, 스토리텔링은 데이터 품질에 대한 투자의 잠재적인 가치를 설명하는데 도움이 될 수 있지만, 대부분의 조직은 이러한 데이터 이니셔티브를 통해 얻을 수 있는 재정적 가치를 측정하길 기대하기 때문이다. p271

KPI를 측정하기 위해선 정량화 데이터가 필요하고 이 정량화 데이터는 “오류”, 누락, 기타 이유로 데이터 다운타임의 비용을 발생하거나 복구 시간을 측정하는 이유는 이게 더 쉽게 비용(돈!)으로 정량화할 수 있기 때문입니다.