꾸준함이 중요한 Lion2me의 기술블로그

데이터 거버넌스와 카탈로그

20 Jan 2024
DE

데이터 거버넌스와 카탈로그

최근 회사에서 데이터 거버넌스에 대한 업무를 맡게되면서 데이터 거버넌스란 무엇인지에 대해 알아보고 어떠한 방향으로 나아갈 지 정하고자 이 글을 작성합니다.

데이터 거버넌스

처음 데이터 거버넌스라는 말을 들었을 때 상당히 모호한 정의라고 생각했습니다. 데이터 거버넌스에 대해 이야기하는 많은 블로그와 글은 “수집에서 사용, 폐기에 이르는 데이터 수명 주기 동안 데이터 관리에 사용되는 원칙”이라고 설명합니다. 이 문장은 GCP에서 말하는 데이터 거버넌스 정의를 가져왔습니다.

이 말은 어떠한 한 방식을 말하지 않습니다. 그렇기에 더욱 어렵다는 생각이 들었습니다.

데이터 거버넌스라는 말은 데이터를 다루는 과정에서 발생하는 거의 모든 원칙을 포함하고 있습니다.

  • 개인 정보
  • 보안
  • 사용성
  • 가용성
  • 정확성
  • etc

위의 다양한 관점에서 데이터를 어떻게 보관하고 사용 할 것 인지에 대해 원칙을 세우고 방법을 모색하는 것이 데이터 거버넌스라고 할 수 있을 것 같습니다.

데이터 카탈로그

데이터 카탈로그는 데이터 거버넌스 내에 포함 된 요소 중 하나라고 말할 수 있습니다.

우리가 사용하는 데이터의 메타데이터를 관리하고, 그 정보를 이용하여 데이터의 히스토리를 파악하거나 검색이 가능하게 만드는 등 데이터 사용성, 정확성 등을 확보하는 것입니다.

메타데이터를 관리하는 것은 상당히 매력적인 일입니다. 왜냐하면 테이블이 많아질수록 테이블 내 컬럼이 어떤 것을 의미하는지를 아는 것이 점점 어려워지기 때문입니다. 그리고 지금 회사도 이런 문제가 조금씩 발생 할 조짐이 보이고 있습니다.

무엇보다 작업자만이 알고있는 히스토리가 있을 수도 있습니다. 예를들면 “이 컬럼에서 의미하는 A는 우리가 비즈니스 지표 상의 A’군집을 포함하고 있으니 실제 사용 할 때 A’ 를 제외해야 함” 이라는 특수 사항이 포함되지 않는 컬럼 명을 가진다면 실제 연산 중 치명적인 문제를 가질 수 있습니다. 더더욱 큰 문제는 이러한 특수 사항도 “사람”이 기억하고 있기 때문에 시간이 지나면 잊혀진다는 점입니다.

작업이 끝난 후 카탈로그를 이용하여 이러한 사항을 정의한다면 추후에 누가 데이터를 활용하든 염두 할 수 있는 점이 메타데이터를 활용하는 장점이 될 수 있을 것 같습니다.

스스로에게 할 질문

당장 데이터 거버넌스를 위해 무엇을 해야하는가에 대해서 즉답을 하기 어렵습니다. 왜냐하면 너무 방대하기 때문이죠. 모든 데이터에 관련한 정책은 염두 할 대상이 될 수 있습니다.

그래서 저는 질문을 할 예정입니다.

각 질문에 대해 답을 하는 과정에서 우리에게 부족한 것이 무엇이고, 그 문제를 어떻게 해결 할 것인지를 정하면 좋은 방향이 잡힐 것이라고 생각합니다.

질문

보안과 개인 정보

  • 우리는 민감 정보를 수집하고 있나?
  • 암호화는 어떻게 되고 있지?

사용성

  • 이 데이터는 얼마나 자주 접근되고 있지? 사용되고 있나?
  • 이 데이터에 접근 할 수 있는 사람은 누가 있지? 접근하는 그 사람은 어떤 권한을 가지고 있지?
  • 이 데이터는 얼마나 중요하지?
  • 원하는 데이터가 있을 때 어떻게 찾지? 찾고자 할 때 어떤 정보를 기준으로 찾으려고 하지?

정확성

  • 이 데이터는 어떤 데이터 저장소에 보관되어 있지?
  • 이 데이터의 소스는 어디지?
  • 이 데이터의 메타데이터는 최신화 되어 있나?
  • 작업자 외 사람이 보더라도 데이터의 특성을 충분히 이해 할 수 있는 정도의 메타데이터를 가지고 있나?
  • 테이블 명을 보고 내부에 어떤 데이터가 쌓이고 있는지 어느정도 추정 할 수 있나?
  • 컬럼 명을 보고 이 데이터가 어떤 데이터인지 알 수 있나?
  • 설명에 사용되는 용어에 대해 충분히 설명이 가능 한 문서가 있나?

가용성

  • 이 데이터에 문제가 발생하면 어떤 문제가 발생하지?
  • 데이터에 변경이 발생 했을 때 어떤 변화가 발생하지?
  • 데이터에 문제가 발생했을 때 누구에게 물어봐야 하지?

우리 회사만의 체크리스트 만들기

어느정도 우리 데이터 시스템에 대해서 질문을 했습니다. 이 질문들을 가지고 체크리스트를 만들고, 그 내용을 기반으로 현재의 회사에 대해 체크해보면 될 것 같습니다. 예를 들면 이렇게 할 수 있을 것 같습니다.

  • 설명에 사용되는 용어에 대해 충분히 설명이 가능 한 문서가 있나?
    • 현재(as-is) : 사내에서 사용하는 도메인에 대한 범용적인 용어집이 있으나 각 테이블 내에서 사용되는 용어의 경우에는 사내 위키에 있지만, 많은 문서에 혼재되어 있다.

이런 식으로 하나하나 현재의 회사의 상황에 맞추어 질문에 대한 답변을 이어나가면 될 것 같습니다.

원하는 수준을 추가

체크리스트를 통해 “질문에 대해 우리 회사는 어떻게 대답 할 수 있는가?”를 적을 수 있었습니다. “그러면 우리는 어떻게 하고 싶은지”에 대해서도 이야기 해 봐야 합니다.

예를 들면 다음과 같습니다.

  • 설명에 사용되는 용어에 대해 충분히 설명이 가능 한 문서가 있나?
    • 현재(as-is) : 사내에서 사용하는 도메인에 대한 범용적인 용어집이 있으나 각 테이블 내에서 사용되는 용어의 경우에는 사내 위키에 있지만, 많은 문서에 혼재되어 있다.
    • 원하는 것(want) : 특정 데이터를 이해 할 때 필요한 문서를 2개 이내로 줄이고 싶다. 또한 불필요한 문서 검색에 사용되는 리소스를 줄이고 싶다.

원하는 것을 적으면서 개발을 시작하기 전에 우리가 원하는 것이 무엇인지 명확하게 알 수 있습니다. 이 방식이 좋은 이유는 이해 관계자와의 의사소통에서 매우 좋은 방식이기 때문입니다.

분석가와 비즈니스 인텔리전스 팀은 대체로 데이터가 어떻게 얻어지는지에 대해서는 큰 관심이 없습니다. 단지 데이터가 어떤 데이터인지 만 알면 됩니다. 그리고 이 데이터가 정확한 지도 중요합니다. 그렇기에 원하는 것이 무엇인지를 명확히 하는 것은 데이터 사용자와의 의사소통에서 큰 역할을 한다고 생각했습니다.

이제 우리는 데이터 사용자들과의 의사소통을 통해 우리가 원하는 수준에 대해서 알게 되었습니다. 드디어 어떤 것을 개발 할 것인지를 정할 때가 되었습니다.

해결 방안 추가

이제 해결 방안을 추가합니다. 예를 들면 다음과 같습니다.

  • 설명에 사용되는 용어에 대해 충분히 설명이 가능 한 문서가 있나?
    • 현재(as-is) : 사내에서 사용하는 도메인에 대한 범용적인 용어집이 있으나 각 테이블 내에서 사용되는 용어의 경우에는 사내 위키에 있지만, 많은 문서에 혼재되어 있다.
    • 원하는 것(want) : 특정 데이터를 이해 할 때 필요한 문서를 2개 이내로 줄이고 싶다. 또한 불필요한 문서 검색에 사용되는 리소스를 줄이고 싶다.
    • 해결 방안(to-be) : 범용적인 용어집을 지속적으로 업데이트 하되 테이블 생성 시 이해에 필요 한 용어 정보를 테이블 별로 적는다. 이 경우 다른 테이블과 용어 중복이 있을 수 있으나, 검색 시 테이블 명만으로 접근 할 수 있도록 고립시킨다.

우리가 원하는 조건인 “이해 할 때 필요한 문서를 2개 이내로 줄이기”와 “불필요한 문서 검색 리소스”를 해결하는 방법으로 “범용적인 용어집과 테이블 별 구별되는 문서, 총 2개의 문서로 줄이기”와 “테이블 명을 통해 접근 할 수 있도록하여 검색에 용이하게” 를 제시했습니다.

그리고 이 해결 방안도 데이터 사용자에게 공유하여 사용시 문제가 될 수 있는지 의사소통이 필요합니다.