DATOR


공감토크 3탄, 요약 1. 미리 알아야 하는 데이터 스킬 Data Modeling


1. 미리 알아야 하는 데이터 스킬

'미리 알아야 하는 데이터 스킬'은 관련 업무를 진행할 때 직접적인 데이터 스킬 이외의 알아두면 매우 유용한 데이터 스킬입니다. 데이터 관련 업무가 아니더라도 다른 업무에도 매우 유용한 기법을 주로 다뤘습니다.



1.1. 데이터 모델링 - 데이터 모델링의 중요한 요소 '비즈니스의 이해'


 데이터 모델링에 중요한 요소는 매우 많습니다. 이 중에 중요하다고 생각하는 요소 중 하나는 '비즈니스에 대한 이해' 입니다. 이를 하기 위해 '비즈니스' 라는 단어의 뜻을 이해해야 합니다. '비즈니스'1) 라는 용어는 실제 단어적인 의미보다 더 많은 의미를 내포하고 있습니다. 저는 이럴 경우에 좀 더 파악을 용이하기 위해 구성 요소를 분해하는 작업을 많이 사용합니다. 이를 분해하기 위해 많은 관점 중 IT적인 관점에서 바라보면 '프로세스'와 '데이터'라는 구성 요소로 분해할 수 있습니다. 그렇다면 '프로세스'와 '데이터' 라는 단어의 의미를 파악해 보겠습니다.

 '프로세스'라는 단어의 의미는 특정 기능을 처리하기 위한 과정이라고 합니다. 예를 들면, ‘제품 추가’, ‘잔고 계산’, ‘고객 전화’와 같은 행위들을 프로세스라고 합니다. 하지만 여기서 부르는 프로세스는 이보다 좀 더 광역적인 개념으로 사용하고 있습니다.  그리고 '데이터'라는 단어는 많은 정의가 있겠지만, 여기서 의미하는 데이터에 대한 정의는 ‘업무가 흘러감으로써, 발생되는 문자형태의 정보’를 데이터라고 합니다. 그리고 이를 도식화하여 표현하는 방법을 '프로세스'는 '플로우 다이어그램', '데이터'는 '데이터 모델링'이라는 방법으로 표현합니다.

 그렇다면, 이 두 가지에 대해서 모두 파악하였다고 하면, 이 질문에도 또 다른 두 가지 답변을 내릴 수 있습니다. '우리는 비즈니스를 모두 이해했습니까?' 라는 질문에 모두 이해했다고 볼 수 있고, 이해하지 못했다고 볼 수도 있습니다. '이해했다'라는 관점은 누군가 어떻게 행동해야 하는지 정의가 되어 있고, 이에 따라 어떤 것이 생성이 되는지, 그리고 어떻게 관리할 것인지 정의되어 있기 때문입니다. 하지만 '이해하지 못했다'라는 것은 '비즈니스'를 IT적인 관점에서만 바라볼 것이 아니기 때문입니다. '비즈니스'라는 것을 이러한 관점만이 아니라, 여러 관점으로 이해할려고, 노력하는 것도 중요하다고 생각합니다.

 비즈니스를 이해하기 방법이 중요한 이유중 세 가지를 꼽으면 시중 서적의 한계와 사회에 처음 나갔을 때의 상황, 그리고 이공계열의 접근 방식이 아니라 사회과학적인 접근이 용이하다는 것을 들 수 있습니다. 첫 번째, 시중 서적의 한계는 데이터 모델링 서적만을 접하고 데이터 모델링을 수행하기에는 많이 부족한 부분이 있습니다. 시중에 서적은 대부분 데이터 모델링의 구조적인 부분을 많이 다루고 있고, 비즈니스를 이해하는 부분에 대해서는 많은 부분을 할애하고 있지 않습니다. 데이터 모델링의 구조적인 부분은 매우 중요하기 때문이기도 하지만, 이는 실제 업무를 수행할 때의 부족한 부분입니다.

 두 번째는, 사회 초년생이 사회에 나갔을 때의 실제 필요한 부분입니다. 이공계열을 졸업한 학생은 프로그래밍과 전산에 대한 것만 배웠지, 실제 현실에는 비즈니스를 중심으로 업무를 진행하기 때문입니다. '전산학과 졸업한 사람은 업무에 대해 3년을 가르쳐야 하고, 인문계열이나 경상계열을 졸업한 사람은 전산을 1년 가르쳐야 한다'라는 말에 전적으로 동의하는 것은 아니지만, 실제 현실 상황을 투영하는 내용이라고 볼 수 있습니다.

 마지막으로, 이공계열적인 접근이 아니라 사회과학적인 접근이 용이하다는 것입니다. 우선 이공계열적인 접근은 논리적인 과정으로 문제에 대해서 접근한다고 볼 수 있습니다. 하지만 논리적인 주장이라는 것은 추후에 근거를 바탕으로 증명하는 과정을 거쳐야 하기 때문에, 논리적이기는 하지만 상대방이 수용하지 않는다면 이는 무용지물이 될 수 있습니다. 하지만 사회과학적인 접근은 경험을 우선으로 하기 때문에 실제 있었던 사실을 기반으로 접근하기 때문에 상대방은 증명부터 보기 때문에 많은 부분을 수용하고, 인정하게 됩니다.

 
1) 비즈니스 : 회계(會計;accounting)와 관리(management) 등의 사무 등 기업 경영에서 필요로 하는 업무 전반, 두산백과



1.1.1. 사실 기반의 정보 수집


이렇게 사회과학적인 접근을 하기 위해서는 사실 기반의 정보 수집을 하여야 합니다. 사실 기반의 정보 수집이란, 어떠한 특정 사실을 설명하고, 이를 증명하기 위한 방법입니다. 이렇게 사실 기반의 정보 수집을 설명하기에 위해 하나의 예를 들겠습니다. 이번에 회사에 새롭게 입사한 신입 사원이 있습니다. 이 신입 사원은 데이터 모델링을 매우 열심히 준비하였고, 실제 이를 수행할만한 자신감도 있습니다. 하지만 대부분의 회사는 이 사원에게 데이터 모델링을 맞기지 않을 것입니다. 그 이유의 첫 번째는 경험이 전무하거나 부족하다고 판단할 것이기 때문입니다. 하지만 신입 사원은 이를 인정받기 위해 어떻게 행동하는 것이 중요할까요? 직장 상사(고객)에게 실력을 인정받아야 자신이 직접 모델링을 수행할 기회가 생길 것입니다. 이러한 실력을 인정 받기 위한 방법 중에 하나가 바로 사실의 수집 방법입니다.

 사실 기반의 정보 수집은 설계를 구체화 시키는 역할을 합니다. 데이터 모델링을 전문적으로 배우지 않은 데이터 모델러들은 자신의 경험과 육감에만 의존하거나, 정보를 수집하는데 체계적이지 않습니다. 프로젝트에서 개발을 경험해본 사람이라면, 앞 단계인 분석과 설계 단계가 미흡하거나, 다른 영역의 영향도를 파악하지 못하여, 개발 단계에서 설계의 변경이 많을 때를 겪어 보았을 것입니다. 이를 뒷받침 하기 위해 단지 데이터의 인스턴스 차트를 준비한다 말고도, 비즈니스 관련 문서의 수집, 데이터의 라이프 사이클 파악(인스턴스 레벨, 속성 레벨), 다른 영역과의 관계 파악 등 많은 정보를 수집하는 것입니다. 반드시 문서화 하라는 뜻이 아니라 자신의 지식이나 메모를 해두는 것도 좋은 방법입니다. 그리고 앞서 설계된 데이터에 부족한 점에 대해서 파악하여, 미리 도출하는 것입니다. 이렇게 자료가 수집되면, 완전하지 못했던 설계를 구체화할 수 있습니다. 또한, 정보에 대한 수집으로 다른 사람들에게 비즈니스 이해도가 높다는 신뢰도를 가질 수 있게 합니다. 그리고 많은 비즈니스 영역을 겪어보지 못했던 사람이라도, 산업은 유사성을 띄고 있을 경우가 있고, 이러한 수집능력 자체를 인정받아 다른 영역에서도 빠르게 적응할 것이라고 평가할수도 있습니다.

 그러므로, 사실 기반의 정보 수집은 주장이나 설계에 대해 사실을 통하여 입증하고, 많은 정보를 보유하였다는 신뢰도를 향상 시키며, 수집 능력을 인정받아 실력을 인정 받을 수 있는 하나의 방안이 될 수 있습니다. 또한 사실 기반의 정보 수집은 특정 방법을 지칭하는 것이 아니라 다양한 경로와 방법으로 사실을 수집하는 것을 의미합니다.



1.1.2. 이해관계자와의 커뮤니케이션


 신입 사원에게 데이터 모델링을 시키지 않는 이유 중 두 번째는, 커뮤니케이션 능력의 부족하다고 판단하는 것이기 때문일 것입니다. 하나의 예를 들어보겠습니다. 당신은 프로젝트에서 어떠한 문제에 대해서 분석하고 발표해야 하는 컨설턴트 입니다. 당신이 가고자 하는 방향은 당신을 고용한 조직의 이익을 위해 이를 결정할 수 있도록 도와야 하는 역할입니다. 프로젝트 전체 PM은 당신에게 어떠한 문제점에 대한 분석과 솔루션, 이행 전략에 대한 방안을 설명해달라고 요청했습니다. 당신은 이를 분석하기 위해 이를 담당하는 담당자와의 인터뷰 및 솔루션에 대해서 인터뷰 하였고, 이에 대한 내용을 정리하고 이를 어떻게 해야하는지 방안을 세워서 발표했습니다. 발표시점의 상황에 대해서 묘사해보면, 중요 임원진들은 문제점에 대해서 제대로 인지 못해 발표 중간에 지속적인 질문을 해올 것이고, 변화의 요인에 많은 영향을 받는 영역의 담당자들은 당신이 제시한 해결 방안에 반기를 들 것이고, 새로운 문제점에 대해서 도출할 것 입니다. 의사결정자는 이러한 문제점에 대해서 다시 한번 검토하자는 이야기를 할 것입니다.

 이 상황을 적극적으로 해결해 나갈 수 있는 방법 중 첫 번째는 당신이 담당자 뿐만이 아니라, 이와 관계되어 있는 많은 영역의 담당자들과 미팅을 했다. 라는 것입니다. 이유는 조직에 가지고 있는 문제점(비단 데이터베이스에 생기는 문제가 아닐지라도)은 하나의 영역에만 문제를 발생시키는 것이 아니라 조직 전반에 걸쳐 문제점을 도출합니다. 그러한 문제점은 각 영역에서 동일하게 나타날 수 있지만, 대부분 다른 형태로 문제를 표현합니다. 그렇기 때문에 많은 사람들과 해당 문제점에 대해서 이야기 하다보면, 당신이 파악하지 못했던 문제점과 해결 방안이 도출될 수 있습니다. 물론 이를 모두 수용할 수 있는 방안을 찾는다는 것은 매우 어려울 수 있지만, 최소한 발생할 수 있는 문제점은 모두 도출되었다라는 것이고, 방안에 대해 반대하는 사람의 의견도 이미 검토하였다라는 것입니다. 

 두 번째는 많은 담당당자와 문제점을 들었다라는 것은 문제점에 대한 해결방안이 특정 영역에 치우친 해결 방안이 아니라 좀 더 광역적인 범위에서 방안을 마련할 수 있게 됩니다. 문제점에 대한 해결 방안은 실제로 이를 겪어보고 있는 사람들에게 많은 방안을 가지고 있습니다. 그렇지만, 이는 특정 영역의 관점에서만 문제를 바라본 해결 방안이기 때문에 이를 좀 더 전사적인 방안에서 해결 방안을 마련할 수 있게 합니다.

 마지막으로, 이를 설명해야할 의사결정자와의 사전설명입니다. 당신이 많은 관계자들의 문제점을 도출시켰고, 당신이 생각하는 가장 효과적인 범위내에서 방안을 마련했다라면 발표 이전에 해당 의사결정자를 만나 이에 대해서 미리 설명을 하는 것이 매우 좋고, 또한 유리합니다. 이유는 의사결정자는 해당 영역에 대해 깊이있게 알기 보다는 좀 더 광역적인 시각을 가지고 결정을 내려야 하는 위치에 있는 사람입니다. 그렇기 때문에 발표 이전에 이를 인지시킬수 있어야 하고, 앞서 당신이 어떤 영역에서 이를 수용하기 어려운 점을 설명하더라도 이러한 점에 대해서 수용하여야만 한다라는 것을 설명한다면 당신을 통해 습득한 문제점이기 때문에 문제점을 수용하는 사람은 영역의 담당자가 아니라 컨설턴트 당신이라고 인식할 수 있습니다. 그렇기 때문에 당신이 원하는 방향으로 회의를 이끌어 나가기 좋습니다. 



1.1.3. 과학적 추론


데이터 모델링이라는 것은 밝혀지지 않은 미지의 영역에 대해서 밝혀나가는 것이라고 볼 수 있습니다. 이러한 미지의 영역을 밝혀내기 위해서 가정을 하거나, 이를 상상할 수 있는 일련의 정보들을 이용하여 추론을 하는 과정이 필요합니다. 추론이라는 것은 어떠한 판단을 기준으로 새로운 판단을 이끌어내는 것이기 때문에 데이터 모델링시에 반드시 필요한 능력입니다.

(※ http://www.dator.co.kr/osung/textyle/387527 , 문제해결방법 5가지 방법으로 본 리버스 모델링 참고)

이러한 추론의 과정은 데이터를 파악하는 곳에만 사용하는 것이 아니라 많은 영역에서 활용이 가능합니다. 그렇기 때문에 어떠한 밝혀지지 않은 사실에 대해 추론하는 방법으로써, 이를 인지하고 있으면 매우 유용합니다.



1.2. SQL - SQL의 구조적 사고와 SQL 3-Step Process 


 구조적인 사고는 어떤 특정한 문제나 분석을 수행하기 위해 이에 프레임을 만들어 접근하는 사고 방식을 의미합니다. 이러한 구조적인 사고로 접근할때의 특징은 프레임안에서 사고를 하기 때문에 범위내에서의 누락을 최소화 할 수 있다라는 것과 분석가의 사고하지 못하는 부분까지의 접근을 가능하게 해줍니다. 그래서 프레임은 막연하고 큰 범위를 다루기 보다는 작은 범위의 문제를 다룰 때 그 결과의 효용성이 더 높습니다. 프레임을 이용한 사고의 예를 들면, 조직 또는 사람에 대한 강점과 약점, 기회요인, 위협요인 분석의 프레임을 제공하는 SWOT분석, 산업의 성장성과 점유율을 파악하기 위한 BCG Matrix, 특정인의 성향을 파악하기 위한 MBTI 등도 프레임이라고 볼 수 있습니다. 

 SQL은 Structured Query Language의 약자로써, 구조적 질의어라는 의미를 가지고 있습니다. 이는 SELECT FROM WHERE 구조로 특징지을 수 있는 관계 사상을 가지고 있기 때문입니다. 이러한 SQL을 보다 쉽게 작성하고, 접근할수록 있도록 하는 것이 'SQL 3-step process' 입니다. 3개의 분류를 순차적으로 접근하면서, 각 분류를 구성하는 3개에서 4개 정도의 질의에 맞게 SQL을 작성 및 검토하고, 데이터를 확인하며, 성능을 보장할 수있도록 실행계획을 조정하는 것입니다. 이에 대한 내용은 Dator에 작성하여 참조할 수 있도록 하겠습니다. 


SQL 3-step process.jpg
< 그림. SQL의 3-Step Process >

TAG

Leave Comments


profile우리는 하나님을 믿는다. 다른 모든 것들은 데이터로 검증해야 한다. 

Recent Trackback