서론
데이터 거버넌스는 기업이 적극적으로 데이터베이스를 사용하게 된 시점부터 주요하게 떠오르는 주제였습니다. ISO 국제 표준을 보더라도 데이터 관리와 보안에 관련한 내용이 다수 포함되어 있는 것을 보면 거버넌스는 예전부터 주요한 논점이였다는 것을 쉽게 알 수 있습니다. 하지만 데이터 거버넌스의 주목도가 높아진 것은 최근입니다. 처리하는 데이터가 많아지고 다양해졌으며, 데이터를 통해 얻고자 하는 인사이트가 다양해진 지금 데이터 거버넌스는 회사의 성장에 있어 너무나도 큰 요인이 되고 있습니다.
데이터 거버넌스는 회사에서 데이터를 활용하는 모든 상황에 대해 영향을 미칩니다.
- 특정한 비즈니스 성과를 측정하고자 할 때
- 새로운 프로젝트를 설계하며, 그 성과를 추정하고자 할 때
- 성과 및 성능을 모니터링 할 때
- AI 모델을 개발 할 때
- 보안 측면에서의 데이터 관리
- 등
이렇듯 데이터 거버넌스의 중요도는 데이터의 활용이 심화되고 넓어 질 수록 더 떠오르는 가치가 될 것입니다. 실제로 데이터를 활용하는 많은 회사에서 현재 데이터 거버넌스 지식을 가진 데이터 엔지니어 및 전문가를 적극적으로 채용하기 위해 노력하고 있습니다.
상당히 모호한 의미를 가지고 있지만 책에서는 데이터 거버넌스의 프레임워크를 다음으로 정의합니다.
- 데이터 발견 및 평가
- 데이터 분류 및 조직화
- 데이터 카탈로그화 및 메타데이터 관리
- 데이터 품질 관리
- 데이터 접근 관리
- 감사
- 데이터 보호
위의 프레임워크를 염두하고 앞으로 써내려 갈 책의 내용을 잘 이해해주시면 감사드리겠습니다.
데이터 거버넌스의 도구
데이터 거버넌스를 보장하는 프로세스를 설계 및 구현 할 때 참고하면 좋을 도구에 대한 이야기를 하고자 합니다. 책에서는 가능한 자동화를 통해 거버넌스 정책을 관리하면 좋겠다고 추가 언급합니다.
전사적 사전
전사적으로 통용되는 지식이 모인 사전이 있습니다. 컨플루언스와 같은 웹 문서를 통해 관리되는 경우도 있으며, 요즘에는 흔치않지만 종이에 적힌 문서로 관리되는 경우도 있습니다. 과거 셀프서비스에 대한 포스트를 통해서도 언급되었지만 “팀 지식” 이라는 한정적인 공간으로 파편화되는 경우를 조심해야 하는 데이터 명세에 대한 종합 사전을 일컫습니다.
이 책에서는 그러한 사전에 대해서 내부적으로 어떤 요소로 되어있는지 상당히 상세히 제시합니다.
인포타입 (infotype)
인포타입이란 단일 정보를 나타내는 조각을 의미합니다. 예를들면, 이메일 주소나 이름과 같은 하나의 의미를 가지며 하위 정보를 가지지 않는 잎 노드(Leaf)로 볼 수 있습니다.
데이터 부류 (data class)
데이터 부류는 하위에 인포타입 혹은 다른 데이터 부류를 가지는 디렉토리와 같은 개념입니다. 하위 요소를 포괄하는 명칭을 가져야 하며 주로 사용되는 경우로는 “재무 정보” 혹은 “개인 식별 정보”와 같이 하위 정보를 종합 할 수 있는 명칭이거나 “민감도”와 같은 묶음의 명칭으로 사용 할 수 있습니다.
데이터 부류는 데이터 규제 정책등에 대상이 됩니다. 예를 들면, “개인 식별 정보는 분석가가 접근 할 수 없다”라는 정책을 게시 할 때 접근 제한의 대상이 되는 것은 데이터 부류이기 때문에 조직의 데이터 중심 기관이 직접 다루는 영역입니다.
데이터 엔지니어로써 데이터 부류에 대한 접근 제한 및 정책을 데이터 입수 과정에서 발생하는 정보의 집합( 테이블 및 스토리지 )에 어떻게 자동 적용 시킬지는 고려 할 필요가 있어 보입니다.
데이터 정책
책에서 이야기하는 데이터 정책의 경우에는 주로 법과 관련한 내용이 있었습니다. 크게는 2가지가 있습니다.
- 데이터 최대(최소) 보존 기간
- 데이터 접근 제한
이러한 데이터 정책은 데이터 부류에서 이야기한 것 처럼 데이터 부류를 기반으로 정책이 반영되어야 추후에 큰 서비스를 구축 한 경우에도 유연하고 포괄적으로 정책을 적용 할 수 있습니다.
데이터 최대(최소) 보존 기간
주로 히스토리에 관련한 데이터 중 법에 의해 관리 될 가능성이 있는 데이터들이 속할 경우가 많습니다. 예를들면 거래 기록이나 가입 기록의 경우에는 N년 동안 저장하여 추후 법적으로 증명이 필요 할 경우 사용 될 가능성이 있습니다. 그리고 이러한 데이터는 유출되거나 제어를 잃으면 안된다는 특징이 있습니다.
접근 제한
특정 데이터의 경우에는 접근이 제한되어야 하는 경우가 있습니다. 대표적으로 개인 정보에 관련 된 경우에는 특정 유저의 실명이나 계정 명 등에 누구나 접근 할 수 있을 경우, 혹은 임직원의 임금등과 같은 민감정보는 관련 된 팀만이 접근 할 수 있도록하는 시스템이 구축되어야 합니다.
여기서 접근 제한은 단순히 접근 할 수 있는가, 접근 할 수 없는가를 넘어서 조금 더 세부적으로 접근을 제한 할 수 있습니다.
- 접근 없음
- 접근 자체 제한
- 부분 접근
- 전체 데이터 마스킹 ( 포맷 만 확인 가능 )
- 부분 데이터 마스킹 ( 부분 정보만 확인 가능 )
- 암호화 ( 원본 데이터 확인 불가능 )
- 접근 가능
- 전체 데이터 조회 가능
용례별 데이터 정책
데이터의 접근에 대해서 역할 기반 데이터 접근 방식이 충분치 않은 경우가 있다고 합니다. 한 직원의 역할이 다수 일 경우( 아마 작은 회사거나, 직급이 높아 업무의 다양성이 높은 경우)에는 하나의 역할에 대한 접근 제어를 하는게 어려울 수 있기에, 실제 데이터가 활용되는 용례에 따라 데이터의 정책을 구축하는 것이 효과적이라는 이야기를 합니다.
예를 들면 같은 개인 정보의 경우에도 마케팅에 활용하는 경우 개인 정보를 마스킹 및 암호화해도 충분하지만 배송 서비스의 경우에는 사용자의 주소 정보등은 마스킹되어서는 안되는 사례와 같습니다.
이 경우 “마케팅”과 “배송” 용례를 구분하면 정책은 더욱 신뢰성있고 효과적으로 관리 가능합니다.
데이터 분류와 조직화
이 부분이 개인적으로 크게 와닿은 부분입니다.
데이터를 수집 및 처리, 적재하는 과정에서 자주 겪는 문제로 데이터를 분류하는 것이 문제가 있습니다. 이러한 경우 인포타입을 분류하는 것을 간단히라도 자동화하면 효과적이라고 말합니다. 책에서는 전화번호나 은행 계좌, 주소등의 포맷에 관련하여 분류하는 분류기가 있으면 좋겠다고 말합니다. 하지만 저는 데이터 부류의 관점을 넘어서(혹은 부류를 추정하는데에 도움이 되기 위해) 데이터의 카디널리티나 길이등을 초기 데이터 수집 시 별도로 추정하여 데이터 부류 설정 및 타입 등을 설정하는데에 활용해도 좋을 것 같습니다. 이 경우 추가적으로 데이터 검증을 설정하는데에 도움을 줄 것 같습니다.
데이터 분류를 자동화 하는 방법으로는 다음의 두 가지가 있습니다.
- 데이터 입수 시점에서 데이터 부류를 식별하고, 데이터 원본을 추가 할 때 분류 작업을 시작합니다.
- 데이터 분류 작업을 주기적으로 시작하고 그때그때 데이터의 표본을 검토합니다.
개인적으로 2번 방법의 경우가 사람을 거치기에 더욱 안정적일 것으로 보입니다. 하지만 그만큼 자동화의 비중이 크지 않을 것이기에 리소스가 소요 될 것 같습니다. 1번의 경우에는 모델(혹은 기준)의 성능에 따라 에러가 있을 수 있을 것 같습니다.
자동화 수준에 따라 분류 과정에서 다음과 같은 작업이 진행 될 수 있습니다.
- 데이터에 ‘특정 데이터에 속함’ 태그를 붙일 수 있습니다.
- 데이터의 부류의 정의나 목적, 데이터의 접근/조작되는 접근 제어, 보존 정책을 자동(혹은 수동)으로 적용합니다.
데이터 카탈로그화와 메타데이터 관리
데이터 분류 및 조직화, 그 외에도 모든 데이터 정책등을 이야기 할 때 메타데이터를 중점적으로 생각 할 필요가 있습니다. 구체적으로 다음과 같은 정보 등을 말합니다.
- 데이터가 어디에 저장되는지
- 데이터에 어떤 거버넌스가 적용되는지
- 접근 제한
- 데이터 부류
- 등
이러한 메타데이터는 실 데이터의 정책과는 다른 정책을 가져야 하며, 오히려 이러한 접근 방식이 방해가 될 수 있습니다. 이 부분은 실제로 제가 겪었으며, 초기 설계 시 데이터의 접근 제한과 메타데이터(Datahub)의 도메인 접근 제한을 동일하게 구분하려던 결과 많은 분석가들에게 불편이 되었던 경험이 있습니다.
“실제 데이터를 보지 못하더라도 어떤 데이터가 있는지를 아는 것은 업무에 큰 도움이 되는 경우”를 발견 한 것입니다. 이 부분은 데이터 민주화를 위한 큰 토대가 됩니다.
이러한 메타데이터를 관리하는 방안이 데이터 카탈로그입니다.
데이터 웨어하우스(혹은 레이크), 데이터베이스 등은 이러한 카탈로그를 자체적으로 저장하고 있습니다만, 데이터 저장소는 분산되어 있는 경우가 있기 때문에 메타데이터를 저장하는 공간을 분리시키는 것이 좋습니다. 이러한 툴로 저는 Datahub을 사용하고 있습니다.
메타데이터에는 다음과 같은 정보가 포함됩니다.
- 데이터의 위치
- 데이터 플랫폼 종류
- 스키마 및 테이블
- 스토리지 경로
- 스키마 정보
- 테이블 이름
- 필드 이름
- 필드 설명
- 비즈니스 메타데이터
- 오너십
- 조직
- 실 사용 여부
- 등
데이터 평가와 프로파일링
데이터 파이프라인을 구축하는 과정에서 데이터의 이상치를 검토하는 것은 사실 필수적입니다. 많은 경우 데이터를 정제하는 과정에서 이상치를 제대로 검증하지 않고, 마트 및 대시보드 데이터를 작성하는 과정에서 이러한 문제를 인식 후 개별적인 필터링을 거는 경우가 다수 존재하지만 이 경우는 발견을 하는가, 하지 못하는가에 따라 만들어지는 데이터의 신뢰성이 크게 좌지우지 됩니다. 또한 불필요한 부하도 감수해야 합니다.
수집 과정에서의 데이터 이상치 이외에도 데이터 활용 시 오류가 있을 수 있습니다. 그리고 그 오류는 데이터의 용도에 따라 달라집니다. 예를들면 마케팅팀과 위조 분석팀은 다른 비즈니스 목적을 가지고 있기에, 이러한 형태의 데이터 오류는 기본적으로 데이터를 소유하고 생산 한 팀이 수정하고 정제해야 합니다. 하지만 해당 팀의 요청으로 데이터 엔지니어가 언제든지 프로그램 기반에서 데이터 오류 수정에 관여 할 수 있습니다.
예를 들면 중간 집계 과정에서 나이의 범위가 상식을 벗어난 데이터, 전화번호 포맷이 맞지 않는 데이터 등을 미리 제거하는 경우 데이터 엔지니어가 개입합니다.
그리고 우리는 보통 이러한 데이터를 파악하기 위해 EDA 과정을 거칩니다.
데이터 품질
책에는 데이터 품질에 관련한 내용도 포함되어 있었습니다. 일반적으로 데이터 품질의 개념을 프로파일링과 평가에 가까운 개념으로 생각하고 있었는데, 내용은 데이터 원본에 대한 품질의 관리였습니다.
예를 들면 다음과 같은 품질관련 의문이 있을 수 있습니다.
- 사람이 직접 입력하여 실수의 가능성이 있는가
- 질보다 양에 의존적인 퍼지 IOT 기기인가
- 정확한 모바일 앱 이벤트 스트림인가
데이터를 조합(집계 등)하는 과정에서 품질이 낮은 데이터를 조합하면 품질이 좋은 데이터또한 낮은 품질을 가질 수 있기 때문에 이러한 원본 데이터의 품질 관리는 필수적이며, 다음의 작업등을 포함합니다.
- 데이터 품질 관리 프로세스에 유효성 검사를 위한 제어 수단 설정
- 품질 모니터링 및 보고 활성화
- 사고의 심각도 평가를 위한 선별 프로세스 지원
- 데이터 문제에 대한 근본 원인 분석 및 해결 방법 추천의 활성화
- 데이터 사고 추적
- 등
각 데이터는 신뢰 수준을 별도로 기록하여 활용 시 참고하면 더 신뢰성 높은 데이터를 구축 할 수 있습니다.
계보 추적
계보 추적의 경우 특정 데이터가 만들어지는 과정에 대해서 거치는 파이프라인, 혹은 원본 데이터 등의 경로를 추적하여 대시보드/집계의 품질을 파악 할 수 있는 방법입니다.
다양한 용도로 사용 될 수 있습니다. 예를들면 특정 데이터의 신뢰성이 낮아지거나 오류가 발생 했을 경우 파생되는 데이터를 한눈에 확인하고 발생 할 수 있는 문제를 쉽게 파악 할 수 있습니다. 또한 일련의 파이프라인을 한눈에 보아, 데이터를 관리하는 과정에서도 쉽게 접근 할 수 있습니다.
이러한 계보는 비즈니스 의사결정을 설명하는 과정에서도 사용되며 투명하게 계보를 공개하는 것도 올바른 데이터 거버넌스의 한 징표라고 저자는 말합니다.
데아터 암호화와 키
데이터 암호화의 경우 크게 2가지 작업 중 보안으로 이루어져 있습니다. “저장 중”과 “전송 중”의 암호화로 대부분의 데이터 웨어하우스에서 제공하고 있습니다.
키는 데이터를 저장하는 데이터 키(DEK)와 키 자체를 암호화하는 키 암호화 키(KEK)로 그 외에도 레드시프트는 클러스터를 저장하는 키, 빅 쿼리는 컬럼을 암호화하는 키 등 다양하게 사용됩니다. 키 관리 시나리오는 우리가 흔히 생각하는 SSL 관련 인증과 비슷하게 키 관리 서비스가 따로 있고, 우리가 빅쿼리로 요청하면 빅쿼리에서 해당 키 관리 서비스에 요청하여 적절한 키를 기반으로 데이터를 보여주는 방식입니다.
이 글을 쓰면서 알아보니 레드시프트는 행과 열에 대한 암호화는 별도로 제공하지 않고, 빅쿼리는 제공하여 원하는 유저만이 해당 정보를 볼 수 있도록 제한 할 수 있는 것 같습니다.
데이터 보존과 삭제
데이터를 얼마나 보관 할 것인가는 데이터 팀의 비용에도 관여하고 보안 및 성능에도 큰 영향을 주기에 명확히 설정 할 필요가 있습니다. 관련 거버넌스를 수립 할 때는 민감 데이터의 보관 위치와 기간, 삭제 여부 등 민감 데이터의 취급 방법과 백업이 중요한 데이터의 경우의 처리 과정도 고려해야 합니다.
인증과 인가 ( IAM )
인증과 인가는 거버넌스에서 주요한 요소로 특정 누군가에게 어떤 데이터에 대해 어떤 권한을 주는지에 대한 내용등을 담고 있습니다.
인증은 다음과 같은 요소들이 있을 수 있습니다.
- 비밀번호
- 2차 인증 (디바이스, 토큰 등)
- 지문, 얼굴 스캔
- 특정 하드웨어
- 네트워크
- 시간 제한
하지만 사용자의 인증이 어려워지거나 세분화 될 수록 데이터 사일로는 커질 수 있기에 적절한 수준과 편의성이 동반되어야 합니다.
인증이 된 유저에 대해서 인가 될 수 있는 권한은 데이터를 조회하거나, 메타데이터를 조회 및 수정하거나, 복사, 내보내기 등이 있을 수 있습니다. IAM은 데이터 거버넌스에서 보안 측면의 매우 주요 요소이기에 주의를 기울일 필요가 있습니다.