DATOR


효율적인 작업 환경 구축으로 작업 효율성 향상하기. . .(주)엔코아 정규수 수석 컨설턴트 커버 스토리


 
coverstory.jpg 
 
데이터아키텍트(DA) 라는 개념에 잡히지 않을 무렵, 업계에서 데이터 컨설턴트를 찾는 대부분의 이유가 DBMS의 성능 개선이었다. 점차 DA라는 역할과 필요성을 인지하면서 DA 컨설턴트에게 요구하는 업무는 <그림1> 과같이 데이터 현행화, 목표 데이터 모델링 뿐만 아니라 데이터 표준화, 데이터 품질, 데이터 이행 등으로 다양하게 수행 업무 영역이 확장 되었고, 이에 맞추어 컨설턴트의 역할을 지원할 국내의 솔루션이나 툴이 나타나기 시작하였다. DA 프로젝트를 수행 시 DA 전문가들이 직접 모든 작업을 수행하였지만, 데이터 관리 툴이 발달되면서 DA 전문가가 수행하는 일부 작업들이 도구의 기능으로 흡수되었고, 과거에 비해 컨설턴트의 투입 인력을 줄어들면서 솔루션을 활용하는 방향으로 변화되고 있다. 

필자는 투입 인력과 일정 대비 수행 과제가 너무 광범위한 프로젝트에 투입된 적이 있었다. 투입 전에 수행 과제에서 수행할 작업을 최소화할 방법을 찾고자 고민하던 중, 대표적으로 현행 분석과 데이터 표준화와 데이터 품질진단을 수행하기 위해 각 업무별로 작업자마다 분석할 대상 테이블이 동일하다는 사실에 초점을 맞추었다. 한번에 전체 테이블들을 대상으로 프로파일링 분석 데이터를 생성하면 현행 분석, 데이터 표준화, 데이터 품질 진단 작업 수행 시에 작업이 최소화 될 것으로 판단하였고, 프로파일링과 데이터 분석을 위한 다양한 스크립트를 준비하였다. 프로젝트 투입 후, 프로파일링 분석 데이터를 바탕으로 고객 참여와 함께 현행 분석과 표준화를 동시에 진행할 수 있었으며, 이 두 업무가 마무리 되는 시점에 별도로 설명 없이 이미 고객은 데이터의 현행 품질에 대한 현황을 누구보다도 잘 이해하고 있었다.

현재 프로젝트 제안서에는 개괄적 작업 절차 정도로 정의하거나 수행 계획서의 WBS에는 납기 준수를 위한 일정 관리와 진행률을 관리하는 수준의 작업 내역을 관리하고 있다. 또한, 작업자의 역할 분담과 작업 분배를 위한 수준의 작업으로 정의하기 때문에 실제 작업자 간의 작업의 중복, 작업 결과의 통합에 대해서는 명확한 관리가 힘들다.
따라서, 프로젝트에 투입되기 전에 수행할 작업을 효율성을 극대화할 수 있는 수행 전략이 필요하며, 기본 방향은 다음과 같다.
DA 수행 작업 스택 구성
업무별 상세 작업 목록화
데이터 프로파일링 분석 활용
공유와 협업을 위한 수행 공간 마련

중복성을 제거한 수행 작업 내역에서 수행 수행 관점의 작업 스택을 정의하고 수행할 스크립트나 프로그램을 준비해야 한다. 현행 프로젝트에서는 수행 과제에 대하여 <그림 1>과 같은 다양한 업무를 수행하지만, DB 데이터 분석에 가장 영향도가 높은 데이터 현행화, 데이터 표준화, 데이터 품질 업무가 작업의 최적화 대상이다.

그림1.gif
 
<그림 1> 데이터 아키텍트 수행 업무 예시

1. DA 수행 작업 스택
작업 스택은 <그림 2> 과 같이 최상위에는 프로젝트 수행 시 고객으로부터 부여 받는 과제가 존재하고, 수행 과제를 추진하기 위한 업무를 정의한다. 수행 업무는 고객으로부터 부여 받은 과제에서 과제별로 확정된 수행 대상이다. 수행 과제와 수행 업무가 프로젝트 전에 요구사항을 전달 받으며 업무의 수행 작업의 범위를 결정해야 한다. 
그림2.gif
 
<그림 2> 수행 관점의 작업 스택

수행 업무에는 실제 수행할 작업을 정의하게 되며 상세한 레벨의 작업 정의가 필요하다. 수행 과제는 상황에 따라 달라질 수 있으며 수행 과제로부터 수행 업무의 범위가 결정이 되며 방향이나 수행 방안이 다양할 수 있다. 하지만, 근본적으로 좀더 상세한 레벨에서 바라보면 유사한 작업이 존재함을 알 수 있다. 결국, 하위 작업에 대하여 미리 준비할 작업 환경과 프로세스를 구성하고 수행할 작업에 대하여 향후 투입 시 변경 발생 시 유연하게 적용할 수 있는 스크립트나 프로그램을 마련해야 한다.

2. 업무별 상세 작업 목록화
이미 수행한 프로젝트에 대하여 작업 리스트를 생성한다는 것이 불필요하다는 생각을 갖는 전문가도 있을 것이다. 프로젝트마다 요구사항, 업무적 특성, 투입 인력과 수행 일정이 다르고, 해당 프로젝트에 전반적인 환경을 고려하여 수행 전략을 프로젝트마다 수립해야 하는 이유 때문일 것이다. 프로젝트 결과물의 완성도 중요하지만, 수행 과정 상에서 작업한 상세한 작업 정의로 명확한 작업 범위가 결정된다. 

 그림3.gif
<그림 3> 수행 상세 작업 정의

<그림 3> 과 같이 수행할 작업에 대하여 상세하기 정리하는 것은 공통적인 작업과, 실제 수행할 작업들이 얼마나 되는지 범위 파악이 쉬워진다. 작업의 분배를 업무별로 분리하였지만, 대기하는 작업자에게는 상세 작업을 분담할 수도 있어 투입 인력에 대한 효율성도 증가한다. 수행할 대상에 대한 상세 작업을 상세히 정리하다 보면 실제 수행할 과정과 흐름이 보이게 되고 작업의 분배도 쉬워진다. 상세 작업은 한 사람이 하나의 작업을 수행할 수 있는 레벨로 상세화 하게 된다. 또한 상세 작업별 데이터 입출 정보를 명확히 해야 한다. 처음 정의할 때에는 오래 걸릴 수 있지만, 한번 정의 되면 새로운 프로젝트의 수행 과제에 맞도록 작업 흐름 변경이나 추가 상세 작업만 관리하면 된다.
업무별 상세 작업 리스트를 작성의 장점과 단점은 다음과 같다. 장점만 있는 것이 아니라 단점도 존재하니 반드시 검토해야 할 사항이다.

장점 

단점   

l 명확하게 전체 작업 흐름 파악

l 작업자에게 상세한 작업 분배 가능

l 공통 작업은 한번에 하도록 재배치 가능

l 프로젝트 환경에 따라 투입 초기에 준비한 스크립트나 환경 구성에 수정 작업 시간 필요

l 대상 데이터의 규모와 작업 서버의 성능에 따라 수행 스크립트에 영향 받음


3. 데이터 프로파일링 분석 활용
프로파일링의 기본 작업은 <그림 5> 과 같이 DB 객체 대한 통계 정보를 생성하는 것이다. 시스템별로 테이블의 스키마가 다양함을 고려할 때 분석 프로세스의 일관성이 유지하기 어렵다. 따라서, 테이블 별로 직접 분석을 수행하는 것이 아니라 <그림 4>와 같이 다양한 DB에서 일관된 분석 정보를 액세스 할 수 있도록 구성 되어야 한다.

그림4.gif  
<그림 4> 통계 정보 액세스 일관성 유지

 그림5.gif
<그림 5> 데이터 프로파일링 영역의 객체 통계 구성

테이블/컬럼통계 : 테이블의 ROW#, 컬럼의 NOT NUL row#, 컬럼의 NULL row#, Min/Max값,분위별 최대값,랜덤샘플링값 등.
컬럼값/컬럼패턴값 통계 ; 컬럼값기준 ROW#, 컬럼패턴값(Regular Expression) 기준 ROW#


4. 공유와 협업을 위한 수행 공간
데이터아키텍쳐 프로젝트를 수행하는 업무는 <그림 2> 와 같이 개괄적으로 분류할 수 있으며, 일반적으로 작업자에게 업무별로 작업을 분담하고, 다시 업무 내의 작업 대상물의 정량적 값을 기준으로 작업을 분담하게 된다. 이때 다음과 같은 이슈가 발생한다.

작업자간의 자료 공유 문제
작업자의 수행 방법과 수행 시간의 차이 발생
작업자의 작업 흐름 파악 어려움
작업의 난이도에 대한 판단 부족

이런 수행 과정에서 발생하는 이슈들에 대하여 공유문제와 작업의 선후 과정을 이해하지 못해 수행 시간을 효율적으로 사용할 수도 있고, 작업의 난이도에 따라 작업자 간의 수행시간 차이로 대기해야 하는 경우도 발생할 수 있다. 대기 상황이 발생하더라도 관리자는 빠르게 인지할 수 있어야 하는 것이 중요하다. 이러한 작업자의 수행 과정일 뿐 만 아니라, 프로젝트 수행 시 발생할 수 있는 요구사항의 변화, 수행 방법론 변경, 수행 범위/대상 변경, 수행 일정 변경 등을 대비하기 위하여 빠르게 대응할 수 있도록 작업자들 간의 데이터 공유와 협업을 할 수 있는 작업 공간을 준비해야 할 필요가 있는 것이다. 

○ 작업 환경 구성 요소
수행 작업에 효율적으로 관리할 환경을 구축하기 위한 필요 요소로 <그림 6>과 같이 구성하였다.

 그림6.gif
<그림 6> 수행 환경 구성 요소

공통 영역: 작업 정의와 일정, 작업 대상자 그리고 작업을 수행할 물리적 DB의 객체에 대하여 작업자에게 할당, 작업 진행 현황 등을 관리하는 영역
메타 영역: 분석 대상인 DB에 대한 메타 정보를 관리
데이터 모델 영역: 현행/목표 논리 모델 정보를 관리함
데이터 프로파일 영역: 물리 DB에 대한 분석할 대상의 프로파일링 정보 관리
데이터 표준화 영역: 논리 모델에 대한 데이터 표준 단어/용어사전, 도메인사전, 코드사전 등  관리
데이터 품질 영역: 데이터 품질 진단, 평가를 위한 CTQ, DQI, BR 관리
데이터 이행 영역: 현행 데이터 모델과 목표 데이터 모델의 매핑 정보와 이행 SQL 관리

5. 향후 활용 방향
필자는 효율적인 작업의 공유를 위한 작업 환경을 구성하고, 수행 작업의 상세화를 통한 작업의 공통분모를 찾고 미리 수행 스크립트나 프로그램을 준비하여 상세 작업 레벨의 작업 분배가 효율적으로 이루질 수 있음을 서술하였다. 중요한 것은 현재의 작업 방식에 대한 깊은 고찰을 바탕으로 개선된 환경과 프로세스를 수립하는 계기가 되었으면 하는 바람이다. 또한, 현재 필자는 현행 데이터 분석 시 수행하는 상세 작업에 대한 개선 방안을 고민 중이며 앞으로 다양한 분석 기술 및 DA 작업 환경에 대한 상세한 모델과 프레임웍을 구성하고자 한다. 
Tag :

Leave Comments