비투엔 기술기고

데이터 표준화에 대하여 _ CIS본부 파트3 김영석 수석

알 수 없는 사용자 2016. 4. 11. 18:29




들어가며. 어떻게 데이터 표준화를 설명하고 과정을 풀어갈까?

 

데이터 표준화를 회사 블로그에 올리기로 결정하고 참 많은 생각을 했습니다. 데이터 표준화를 처음 접하는 사람은 왠지 낯설고 나와는 상관없을 거 같은 업무라 생각하고 수행해 본 사람은 굉장히 손이 많이 가고 눈에 띄지 않는 일이기에 되도록 피하고 싶은 업무라는 것을 잘 알고 있었기 때문입니다. 그러나 현실 세계에서 기초를 중요하게 생각하고 그 기반 위에 과학과 건물과 물건이 있듯이 데이터를 처리하고 정보를 생산하고 데이터로 미래를 예측하는 시대에 정보시스템의 기초가 되는 데이터 표준화의 중요성을 어떻게 설명해야 하나 참 고민되었습니다. 무엇보다도 딱딱한 내용을 끝까지 재미있게 읽을 수 있게 구성할 수 있을까?”라는 걱정이 가장 컸습니다^^*

 

데이터 표준화는 2000년 중 후반부터 정보시스템의 구축에 선택 업무로 수행했지만 최근 필수 업무로 자리 잡고 있습니다. 이러한 업무를 조금은 쉽게 그리고 고민하고 풀어갔던 일들을 공유하고자 합니다. 물론 아직도 풀지 못한 고민도 있습니다. 사람마다 생각이 다르고 경험이 다르기에 이 글을 읽는 분 중 좋은 의견이 있으면 이메일이나 댓글을 통해 공유해주시면 좋겠습니다.

 

이번 포스팅에서는 표준화를 처음 접하는 분들을 위해서 ‘1. 데이터 표준화 란‘2. 데이터 표준화 대상은 쉽게 쓰고자 노력했습니다. 이후 ‘3. 데이터 표준화 절차‘4. 현황분석부분은 데이터 표준화 업무 이해도가 있고 표준화 업무를 수행해야 할 분들을 대상으로 나누어 구성하였습니다. 내용이 길면 읽는 사람도 부담스럽고 쓰는 사람도 부담스러워 데이터 표준화 단계별 업무는 다음 포스팅에서 다뤄야 할 것 같습니다.

 



1. 데이터 표준화란?


데이터 표준화가 무엇이냐고 묻는다면 좁은 의미로는 현실 세계의 정보를 컴퓨터로 관리하기 위해 데이터베이스(DB)에 저장하는 정보항목의 종류, 명칭, 형식, 유효값, 관리절차 등을 특정 기준에 따라 표준*을 만드는 일을 데이터 표준화**라고 말할 수 있습니다.




우리가 생활하면서 병과 병마개, 휴대전화 충전기가 안 맞을 때 이건 표준이 안 되었네라고 말하는 것처럼 무엇을 합치거나 연계할 때 표준화 이슈는 발생합니다. 표준을 준용해야만 여러 부품과 제품을 쉽게 저비용으로 연결하고 통합하여 완성품 만들 수 있기 때문이지요.

정보시스템도 크게 다르지 않습니다. 단순히 급여를 계산하던 시스템이 경영정보를 생산하고 미래를 예측하는 시대입니다. 따라서 수많은 시스템의 데이터를 연결하고 통합하여 융합정보 생산하는 과정에서 비표준화된 데이터는 다양한 사용자간 의사소통 혼란, 부정확한 정보생산, 관리비용의 증가 이어져 자연스럽게 데이터 표준화의 필요성이 대두되었습니다. 즉 멋진 디자인, 빠른 처리속도, 많은 데이터, 현명한 알고리즘도 중요하지만 믿을 수 있는 정보를 만들기 위해서는 데이터 품질 확보가 필요했고 그 근간에 데이터 표준화가 있다는 것을 인식하게 된 것입니다.

 

기업에서 업무시스템(계정계)에서 분석시스템(정보계) 시스템을 구축하거나 여러 공공기관에서 개방되는 데이터를 모아서 활용하고자 할 경우 생성기준, 정보항목, 데이터유형 등이 제각각 이어서 어려움을 겪는 경우가 있습니다. 예를 들어 주차장앱을 서비스 하려는 경우를 보더라도 해당기관의 관리목적과 관리수준에 따라 관리하는 정보항목, 명칭, 형식, 유효값이 다를 수 있습니다.



<기관별 공영주차장 데이터 제공 항목 예시>

행정자치부

 명칭, 주소, 연락처, 주차가능대수, 운영시간

서울시

 주차장명, 최대주차대수, 잔여주차가능대수, 주소, 전화, 대표명, 기관명

성남시

 주차장명, 주소, 주차장 종류, 노상/외상 여부, 총 주차면 수, 관리부서, 연락처



<민간기업의 데이터 요구 항목 예시>

요금정보

 요금단위 시간(분), 단위 요금(원), 초기 무료시간(분), 기본 최소 사용 시간, 기본(최소)사용 금액,
 일 최대 부과액, 정기권 요금(전일, 주간)

유료운영시간

 운영시작/운영종료(평일, 주말, 공휴일)

  



이렇듯 자재든 정보항목이든 관리대상, 명칭, 형식 등을 표준화하고 결정하는 일이 당장은 불필요해보이고 비용이 들지 모르지만 표준에 맞게 데이터(DB)를 재구축 했을 때 향후의 생산성 향상과 표준화된 정보 활용을 통한 정책결정의 효과는 매우 튼 가치로 돌아오게 됩니다. 수많은 데이터가 쌓은 후에 이러한 필요성을 인지한 것은 아쉽지만 지금은 그 가치를 인정하고 자리 잡아 가기에 다행이라 생각합니다.




2. 데이터 표준화 대상


데이터 표준화에 앞서 데이터 구성요소를 ISO/IEC 11179 에서는 아래 같이 정의하고 있습니다.




여기서 데이터 표준화 대상은 정보항목(Attribute), 칼럼(Column), 데이터형식(Data Type)으로 한정하고자 합니다. 데이터 표준화에 대하여 조금 더 깊이 알아가고 싶은 분은 행정자치부의 공공기관의 데이터베이스 표준화 지침이나 한국데이터베이스진흥원에서 발간한 데이터아키텍처 전문가 가이드책자에서 설명하는 과목. 데이터 표준화내용을 참고해주세요^^

 

데이터 표준화 결과물인 데이터 표준 사전은 단어사전, 용어사전, 도메인사전으로 구성됩니다. 지침과 책에서도 이러한 데이터 표준화 결과물을 어떻게 만들고 관리 할 것인가?”를 주로 다루고 있습니다. 지금부터 얘기하는 내용은 되도록 책에서는 다루지 않는 내용을 중심으로 풀어 가고자 합니다. 이해를 돕기 위해 단어, 용어, 도메인 간 관계를 그림으로 표현해 보겠습니다. 참고로 그림에 사용된 말과 그림은 표준지침이나 관련 책자에 자세히 설명하고 있으니 참고 바랍니다.

 


<단어, 용어, 도메인, 코드 관계도>




3. 데이터 표준화 절차


지금부터는 데이터 표준화에 대하여 사전지식이 있는 사람이 프로젝트에 투입되었다는 것을 가정하고 얘기를 풀어 보겠습니다. 프로젝트 현장에 도착한 당신은 데이터 표준화를 어디부터 어떻게 접근하여 풀어 가야할까요? 여러분이 직면한 상황은 여러 가지 일 수 있습니다.

 

1. 운영하고 있는 시스템을 새롭게 재구축하는 경우

2. 신생 기업이 시스템을 구축하는 경우

3. 패키지를 사용하다가 SI사업으로 시스템을 재구축하는 경우

4. 기존 시스템에서 단위시스템을 추가 구축하는 경우

5. 업무시스템(계정계)에서 분석시스템(정보계)을 구축하는 경우

6. 두 기관의 시스템을 통합하는 경우

7. 기존에 데이터 사전을 관리하고 있으나 고도화하는 경우

8. 기타 등 등 등 등.

 

다른 일도 그렇겠지만 프로젝트 현장에 가보면 늘 다른 상황이 우리를 맞이합니다. 그러나 당황하지 말고 하나하나 풀어봅시다. 이미 경험해본 분들은 너무나 당연한 얘기로 들릴 수 있지만 그래도 최대한 표준화 과정을 상세하게 설명하고자 합니다. 먼저 표준화 절차를 간략하게 그림으로 표현해보면 아래와 같습니다.

 


<데이터 표준화 절차>

 

 


4. 현황조사


[주변 살피기] 프로젝트 현장에 투하(?) 되었다면 데이터 표준화에 앞서 현황을 조사합니다.

 

첫째. 데이터 표준화(이하 표준화라 한다.) 결과물 활용 시점을 확인해야 합니다.

표준화 작업에 앞서 가장먼저 확인해야 할 것은 표준화 결과물이 활용되는 시점입니다. 다행스럽게 표준화 프로젝트 종료 후 구축 프로젝트에서 활용될 수도 있고 불행이 구축 프로젝트에 속하여 표준화 업무와 시스템 분석설계 업무가 동시에 진행될 수도 있습니다.

참고로 후자는 표준화 담당자, 설계자, 개발자 간 상관도가 높고 시간이 갈수록 변경 영향도가 높기기 때문에 서로 예민하고 괴롭습니다. 왜냐하면 확정되지 않은 표준화 결과물을 활용하다보면 표준 변경 시 많은 산출물에 영향을 주어 촉박한 일정과 시스템 품질 사이에서 갈등요소가 되기도 하기 때문입니다. 혹여 사업을 발주하는 업무 담당자라면 예산작업을 별도로 추진하는 어려움이 있더라도 본 사업 전에 표준화 결과물이 만들어 질 수 있도록 표준화 프로젝트를 먼저 발주하는 것이 좋겠습니다. 아무튼 골치 아픈 이야기는 뒤로하고 먼저 전자를 대상으로 설명하겠습니다.

 

둘째. 표준화 범위를 확인해야 합니다.

표준화 범위를 확인하면 대부분의 고객은 표준화 검토대상은 전체 시스템(전사)로 하되 표준화 결과물 향후 일괄적용 또는 추가시스템에 한하여 적용하겠다.”라는 경우가 많습니다. 당연한 요구사항입니다. 즉 표준화는 통합 및 연계 시점에서 활용도가 높기 때문에 사업범위에 맞는 인력과 기간을 확보했다면 전사차원에서 수행하는 것이 좋습니다.

 

 

[자료 모으기] 표준화에 필요한 관련 자료를 최대한 수집합니다.

 

현재의 데이터 표준화 수준을 파악하고 문제점을 도출하여 개선방안을 만들고 새로운 데이터 표준을 만들기 위해서는 최단시간에 최대한 많은 자료를 수집하여 분석해야 합니다. 시간을 단축하기 위하여 지금부터 제시하는 일은 동시(병렬처리)에 진행하는 것이 좋습니다.

 


첫째, 표준화 대상을 확정하기 위한 기준자료를 확보합니다.

우리가 무엇을 만들어야 하는 것은 사용자(개발자/운영자)가 쉽게 활용할 수 있도록 데이터 표준(도메인, 단어, 용어) 사전을 제공하는 것입니다. 요리를 하려면 재료가 필요하듯이 해당 프로젝트에서 어떤 정보항목 사용되고 있으며 다른 기관 또는 회사에서는 어떤 정보항목(이하 용어)을 사용하고 있는지 확인할 수 있는 자료를 모아야 합니다. 여러 가지 상황이 있겠지만 가정하기를 기존에 운영하는 시스템을 대상으로 표준화를 한다고 가정한다면 운영하고 있는 시스템의 DBMS에서 정보항목(테이블과 칼럼, 주석)을 요청하고 수집합니다. 기관에 따라 다르겠지만 데이터베이스의 칼럼 주석에 한글 칼럼명 관리하는 경우가 있고 칼럼을 이해하는 데 도움이 되기 때문에 주석 정보를 수집해야 합니다.

 

둘째, 시스템 관련 산출물을 수집해야 합니다.

시스템 운영자, 표준화 사업 담당자의 확인과 향후 데이터 표준화를 위하여 DBMS에서 수집한 테이블의 영문 칼럼명의 한글화가 필요합니다. 이를 위해서는 과거 시스템구축 시 작성했던 테이블정의서나 혹시 운영자가 관리하는 모델설계서나 표준화 지침서 등이 있다면 사업 담당자와 책임자의 협조를 구하여 최단시간에 최대한 많은 자료를 수집해야합니다. 산출물이 워드, 엑셀, 파워포인트 등 무엇이라도 좋습니다.

만일 신생기업이거나 패키지를 사용해서 기존 DBMS에서 정보항목을 수집할 수 없더라도 크게 당황할 필요가 없습니다. 우리가 일상에서 사용하는 단어가 제한적이듯 특별하다는 정보시스템에서 도 동일 업종에서 사용하는 정보항목이 주류를 이루고 있기 때문에 동일 업종의 시스템 정보항목을 확보하여 표준화 하면 80% ~ 90%는 활용할 수 있습니다. 물론 부족한 부분은 있을 수 있으며 이는 의견수렴이나 표준화 결과물을 활용하면서 보완하면 됩니다.

 


[영문칼럼명 한글화하기] 운영 시스템에서 추출한 영문칼럼을 한글화합니다.

 

지금부터 하는 작업은 표준화 기준자료의 영문칼럼명과 수집한 산출물의 한글칼럼명을 매핑하는 작업입니다. 상식적으로 가장 믿을 수 있는 산출물을 먼저 적용하고 이후 관리 시점이 최근인 산출물을 차례로 적용합니다.

 

칼럼명을 한글화 하는 과정은 좀 더 구체적으로 설명해 보겠습니다.

우선 대상 시스템에서 추출한 표준화 기준정보 항목(단위시스템명, 영문테이블명, 영문칼럼명, 데이터유형, 데이터 길이)을 엑셀 또는 DB에 적재합니다. 그리고 지금까지 수집한 DBMS 칼럼주석, 모델설계서, 테이블정의서 자료를 표준화 기준정보 항목과 동일하게 구성하고 이에 한글칼럼명과 산출물명을 덧붙여 재구성하여 엑셀 또는 DB에 적재합니다. 신뢰도가 높은 산출물부터 표준화 기준자료와 산출물을 비교하여 한글칼럼명을 매핑하고, 매핑 순서는 단위시스템명&영문테이블명&영문칼럼명&데이터유형&길이가 같고 한글명이 없는 경우 해당 산출물의 한글명을 반영한다. 이후 영문테이블명&영문칼럼명&데이터유형&길이가 같고 한글명이 없는 경우 영문칼럼명&데이터유형&길이가 같고 한글명이 없는 경우 영문칼럼명이 같고 한글명이 없는 경우 산출물의 한글칼럼명을 반영한다.

 

영문칼럼 한글화 대상 칼럼이 적다면 엑셀의 함수(VLOOKUP)를 활용할 수도 있고 많다면 데이터베이스에 표준화 기준자료를 적재하고 한글화가 가능한 산출물을 DB에 적재 후 매핑 SQL을 만들어 영문칼럼명을 한글화합니다.

 


[표준화 대상 확정하기] 표준화 대상 테이블과 칼럼을 확정합니다.


표준화 대상을 확정하기 위하여 각 시스템 운영담당자에게 영문칼럼명이 한글화된 테이블 칼럼정보를 배포하여 테이블 및 칼럼의 사용여부 확인과 영문칼럼의 한글화 검토를 요청합니다. 현실적으로 테이블 목록과 테이블 칼럼정보를 제공하고 검토 방법과 회신일자를 상세하게 설명해도 업무에 바쁜 시스템 운영담당자의 협조를 얻기는 힘듭니다. 그래도 꼭 거쳐야 하는 과정입니다. 유형이 분별된다면 시스템 테이블, 임시성 테이블, 작업용 테이블, 백업용 테이블 등 분류하여 제공할 수도 있습니다.

 

시스템 운영담당자의 확인까지 마치고 미사용 테이블과 칼럼을 제외하였다면 표준화 할 수 있는 기반은 마련한 샘입니다. 이 과정을 최대한 단축해야 표준화 작업할 시간을 확보 할 수 있습니다. 잊지 말아야 할 것은 이 과정을 마치면 표준화 대상 테이블과 칼럼 수, 한글화 상태를 단위시스템별로 도출하여 각 관계자에게 공유해야 합니다.

 



5. 현행 데이터 사전 생성

 

데이터 표준화 대상을 확정했다고 해서 바로 데이터 표준화 작업을 수행할 수 없습니다. 그 전에 현행 데이터 사전(용어, 도메인, 단어 사전)을 만들고 분석하여 현황 분석서 만들어야 합니다. 또한 앞으로 이런 기준으로 표준화를 수행하겠다는 데이터 표준화 지침서()’을 만들어 공유하고 확정해야 합니다. 왜냐하면 고객에게 비표준화 사례와 문제점을 제시하고 개선 방안과 향후 작업내용, 일정 등을 공유함으로서 조금이나마 쉽게 협조와 참여를 이끌어 낼 수 있기 때문입니다.

 


[현행 용어 사전 만들기]

현행 용어사전은 한글화된 테이블 칼럼 자료로 대체할 수 있습니다그러나 현행 용어사전을 다듬어(정제) 단어사전에 활용할 것인가? 아니면 그대로 둘 것인가에 대한 고민은 아직 풀리지 않았습니다. 다듬을 경우 현행 상태 훼손의 문제가 있고 그렇지 않을 경우 현행 도메인 사전 만들기나 현행 단어사전 만들기에 손이 더 가기 때문입니다. 표준화 경험이 있는 분들의 의견을 공유하면 좋겠습니다.^^*

 


[현행 도메인 사전 만들기]

현행 도메인 사전은 타기관의 도메인 사전을 참고하여 도메인분류를 먼저 만듭니다. 현행 도메인 사전은 현행 용어사전을 기준으로 영문칼럼명의 끝자리 영문약어, 한글칼럼명, 데이터 유형, 데이터 길이 정보를 활용하여 도메인분류별 도메인을 도출합니다. 사람이 하는 일은 크게 상식에서 벗어나지 않듯이 기존 시스템을 설계하신 분들도 나름 기준을 갖고 구성했기에 현행 용어 사전을 보면 대략 패턴이 나옵니다. 예를 들어 도메인 유형이 금액인 경우 한글칼럼명이 금액”, “”, “”, “가격”, “”, “등으로 끝나고 데이터 유형은 숫자형으로 되어있습니다.

도메인 분류 중 코드, 날짜, , 내용, 수량 등도 나름 패턴이 있어 조금은 지루하지만 현행 도메인 사전을 만들 수 있습니다.

 


[현행 단어 사전 만들기]

그러나 현행 단어 사전을 만드는 일은 간단하지 않습니다. 현행 용어사전의 영문칼럼명과 한글칼럼명을 보고 단어를 분리하는 일이기 때문에 작업이 시간이 상당히 소요되고 이를 기반으로 향후 데이터 표준화 작업을 수행하기 때문에 중요한 작업이기도합니다.

현행 용어사전의 영문칼럼명이 “_”로 구분되었다면 그나마 다행이지만 그렇지 않은 경우 영문 칼럼명을 분리하는 작업은 참 난감합니다. 영문칼럼명과 한글칼럼명을 동시에 분리하는 이유는 향후 단어 표준화 시 현행 영문약어를 참고하여 영문명(영문정식명)을 유추할 수 있기 때문입니다.

한글칼럼명을 한글단어로 분리할 때는 한글단어 길이가 긴 단어를 우선 분리해야합니다. 그래야 단어의 훼손을 방지할 수 있습니다. 예를 들어 번호를 먼저 분리하면 주민등록번호주민등록+번호로 분리될 수 있기 때문입니다. 따라서 표준화 담당자는 단어분리 작업에 앞서 업무와 관련된 근거법령, 사용자 실무지침서, 약관, 업무용어집, 현행용어사전 등에서 정의한 단어와 고유명사, 복합어를 도출하고 익혀야 엉뚱하게 단어를 분리하는 일을 최소화 할 수 있습니다. 국어사전을 이용한 형태소 분리를 하기도 하지만 영문 칼럼과 연결하기 어려운 단점이 있습니다.

용어에서 단어 쪼개기는 통상 분류형 단어(코드, 일자, 금액, , ~, ~~액 등)가 있는 끝부분부터 합니다. 분류어 쪼개기가 끝나면 일반단어도 같은 방법으로 작업합니다. 주의할 점은 단어의 출처를 향후에 확인할 수 있도록 분리된 단어의 단위시스템명, 테이블명, 영문칼럼명을 함께 유지해야 합니다. 표준화를 처음 수행하는 사람은 놓치기 쉬운 것이 도출된 단어의 근거를 확보하지 못합니다. 단어만 추출해서는 의미 파악이 어렵고 의미가 파악이 안 되면 영문명과 영문약어를 생성하는데 어려움이 있습니다. 또한 동일한 단어라도 단위 시스템에 따라 다른 뜻으로 사용될 수 있기 때문에 도출된 단어와 관련된 시스템, 테이블, 칼럼 정보를 확보하고 있어야 합니다. 예를 들어 수지라는 단어만으로는 손가락인지 수익인지 가수 이름인지 파악하기 어렵기 때문입니다.

 

다행이 자사(비투엔)의 데이터 표준화 솔루션(SDQ))은 표준화 경험을 통해 만들었기 때문에 이러한 기능을 당연히 제공합니다.



 

6. 데이터 표준화 지침서(초안) 만들기

 

이제부터는 앞으로 어떻게 데이터 표준화를 할 것인지 기준과 절차를 제시하는 데이터 표준화 지침서(초안)를 만들어야 합니다. 표준화 지침서는 각 작업의 목적과 정의, 데이터 사전 생성방법, 절차 등을 포함해야 하기 때문에 깊은 고민과 풍부한 경험이 필요합니다. 하지만 당황하지 마십시오. 우리에게는 여러 기관에서 적용하고 다듬어진 데이터 표준화 지침서 족보(?)가 있습니다.

이를 참고로 발주기관의 표준화 담당자와 협의하여 데이터 표준화 지침서 초안을 작성하고 작업 예시 등을 보완하여 관계자에게 공유하여 검토 의견을 수렴합니다. 참고로 데이터 표준화 지침서 목차 예시를 첨부파일로 제공하니 데이터 표준화 지침서 구성을 이해하는데 도움이 되셨음 좋겠습니다.

 

여기서 데이터 표준화 지침서(초안)라고 했는데 그 이유는 데이터 표준화 하는 과정에서 변경이 있을 수 있기 때문입니다. 데이터 표준화를 마친 후에 제시하는 데이터 표준화 지침서가 완성본이 됩니다.

 



맺음말. 현황조사 단계를 마치며.

 

이쯤 되면 본격적인 데이터 표준화 작업을 위한 준비가 되었습니다.


다음 단계에 들어가기 전에 현황조사 단계를 정리하여 보고해야 합니다. 조사내용 및 현행 데이터 표준 적용 현황 등을 정리한 현황 분석서작성하여 보고하고 데이터 표준화 지침서를 공식화하게 됩니다. 현행 데이터 사전을 만들어 보면 비표준화로 인한 문제점을 쉽게 도출할 수 있습니다. 현황 분석서의 내용에 문제점을 담을 때는 어렵겠지만 일반적인 문제점보다 데이터 품질에 문제가 될 수 있는 것을 도출하여 제시하는 것이 좋은 방법입니다.

 

지금까지 현황조사 및 현황분석서 보고까지 단계를 설명했습니다. 나름대로 쉽게 써 보려고 했지만 역시 아쉽다. 데이터 표준화 결과물을 보면서 늘 아쉬워했던 것처럼. 기회가 된다면 데이터 표준화 업무를 수행했던 사람들과 경험을 나누어 조금 더 넓고 깊게 다양한 관점에서 논하고 싶습니다. 이번 포스팅은 여기까지 하고 다음번에는 데이터 표준 사전을 만들면서 고민했던 내용을 담아 다시 찾아 뵙겠습니다.




데이터표준화지침서목차예시.txt