데이터 모델링은 사고력과 수사력
모델링의 이론적인 부분을 면밀히 살펴보면 어디에도 상식적이지 않은 것이 없다. 서적이나 강좌를 통해 이해하지 못할 내용은 결코 존재하지 않는다. 그럼에도 불구하고 실전에 가서 모델링을 하라고 하면 확신을 가지고 제대로 할 수 있는 사람은 극히 드물다. 왜 이러한 현상이 나타나는 것일까?
그 이유는 세상에는 내용을 알면 할 수 있는 것이 있고, 그 방법을 제대로 알고 있다고 하더라도 할 수 없는 것이 있기 때문이다. 가령 홈런 치는 방법을 이해했다고 해서 방망이를 휘두르면 홈런이 나오느냐는 것이다. 또한 우리가 단어를 알고, 워드프로세서를 사용할 줄 안다고 해서 작가처럼 작품을 쓸 수 있겠는가? 바둑에서 수많은 정석을 모조리 암기 했다고 바로 프로9단이 될 수 있겠는가? 아니면 수학 공식을 모두 암기했다고 문제를 다 풀 수 있겠는가?
이처럼 세상에는 아는 것과 할 수 있는 것이 일치하지 않는 일이 얼마든지 있다. 이와 같이 방법을 알고 있다고 하더라도 할 수 없다는 것은 단지 방법뿐만 아니라 인간만이 가지는 또 다른 능력이 같이 결합되어야만 가능하기 때문일 것이다. 이러한 점에서 볼 때 모델링은 방법적인 지식만 습득했다고 해서 할 수 있는 것이 절대로 아니라는 것이다. 다른 어떤 것들 보다 인간 고유의 사고력과 경험이 절대적으로 필요한 영역이다.
이런 의미에서 실전적인 경험없이 이론적으로만 모델링 서적을 집필한 사람보고 지금까지 전혀 한번도 해 본적이 없는 업무를 가지고 실전적인 모델링을 해 보라고 했을 때 제대로 할 수 없다고 단언한다. 만약 그렇지 않다고 항변한다면 그가 작성한 모델링의 문제점을 즉석에서 지적하여 얼굴을 들 수 없게 할 자신이 있다.
우리가 정확한 모델링을 하기 위해서는 본질과 핵심을 끄집어 내는 수사를 할 줄 알아야 하고 종합적인 판단을 할 수 있는 깊은 사고력을 가져야 한다. 여러분들은 어린시절 설록홈즈의 활약을 그린 책을 읽은 적이 있을 것이다. 설록홈즈의 친구이자 작가인 와트슨은 열심히 설록홈즈를 따라 다니며 그가 하는 많은 것을 보고 배우고 파악된 사실을 일일이 구체적으로 기술하고 있지만 누가 범인인지를 쉽게 가려내지 못한다. 똑 같이 보고 조사한 것이지만 설록홈즈가 이러이러해서 저 사람이 범인이라고 설명을 해 줄 때 비로소 그가 왜 범인 지를 이해하게 된다.
이와 같이 와트슨은 일어난 모든 일을 남김없이 모두 구체적으로 적고 있지만 새로운 사건이 일어나면 자신은 범인이 누구인지 알지 못한다. 항상 설록홈즈가 누가 범인인 지를 구체적으로 설명해 주고 나면 그가 범인은 것은 누구에게도 당연해 보인다. 그렇지만 왜 같이 모든 것을 보아 온 와티슨은 왜 범인을 가려내지 못하는가? 이것이 중요하다. 그것은 바로 분석력, 사고력에 차이가 있기 때문이다.
미지의 세계에 묻혀 있는 많은 불확실한 사실들을 종합적으로 분석하여 확실한 결론으로 도출하는 힘은 책을 통해서 습득할 수가 있는 것이 아니며, 비슷한 사례를 많이 경험하고, 열심히 암기한다고 해서 쉽게 얻을 수 있는 것이 아니다. 어쩌면 그것은 우리가 지금까지 지내 온 수 많은 순간들을 어떻게 살아 왔느냐의 문제일지도 모른다.
사실 어떤 측면에서 보면 모델링은 매우 쉽다고도 할 수 있다. 왜냐하면 어디를 보아도 새로운 것은 하나도 없다고도 할 수 있기 때문이다. 어디에도 우리가 이해하기 어려운 난해한 전문용어나 복잡한 전산구문을 찾을 수 없다.
앞으로 설명할 데이터 모델링에 대한 내용은 모든 것이 상식적인 것들 뿐이며, 어디에도 우리가 알지 못하는 새롭고 기가 막힌 이론은 찾아 볼 수 없다. 다만 모두가 불확실한 것들 뿐인 수집된 사실들을 어떤 절차로 어떻게 객관적으로 확정해 가느냐의 문제가 남아 있을 뿐이다.
그러나 이것이 바로 모델링이 다른 것들보다 어려운 이유가 된다. 왜냐하면 난해하기만 한 것들은 어떻게 해서든지 자신의 것으로 이해를 하는 순간 자신의 지식으로 만들어 남들과 차별화 될 수가 있다. 그러나 누구나 알 수 있는 평범한 사실들은 이해를 한다고 해서 다른 사람과 크게 달라지지 않는다.
가령, 상황에 따라서 오묘하게 달라지거나, 온통 불확실 투성인 상태를 분명한 잣대와 현실의 정확한 상황 파악을 통해서 깊고 암울한 안개 속을 헤쳐 나가 우리의 목표를 찾아내어야 하는 일들은 이론적인 지식보다 인간의 종합적인 사고력과 분석력, 적극성 등의 문제이기 때문에 훨씬 어렵고 힘든 것은 당연하다고 할 수 있겠다.
남들이 접해 보지 않은 것을 자신이 먼저 습득했다고 해서 그것을 실력이라고 생각하면 안된다. 그러한 지식은 언젠가 남들이 자신과 같은 내용을 접하는 순간 차별성은 없어진다. 툴과 개발언어의 세계는 이와같다. 그러나 모델링은 인간의 종합적 사고능력의 소산이므로 남들이 모델링 방법론을 이해했다고 해서 쉽게 자신을 추월할 수 없다. 이런 의미에서 필자는 모델링이야말로 우리와 같이 정보시스템을 하는 사람들이 가야 될 가장 높은 단계이며, 마지막으로 가야 할 길이라고 생각한다.
운동선수들을 보라! 이 선수들이 젊은 시절에 부와 인기와 명예를 얻었다고 하더라도 선수인생은 짧은 것이다. 대단한 인기를 끌고 있는 미국 프로야구를 보면 수염이 하얗게 난 60이 넘은 노인들이 감독을 하고 있는 것을 자주 볼 수 있다. 그 감독은 비록 젊은 선수들처럼 홈런을 치지는 못하지만 순간마다 변하는 상황을 분석하여 적절한 전략을 수립하는 능력을 생각해 보라! 이것은 분명히 쉽지 않은 능력이며 또한 쉽게 얻을 수 있는 능력도 아니다.
만약 여러분들이 앞으로 오랫동안 엔지니어로 살아가기를 진정으로 원한다면, 더 이상 방법적인 것(HOW-TO)만을 해서는 안 된다. 방법을 알더라도 남이 흉내낼 수 없는 사고적인 것(WHAT-TO)를 할 수 있어야 한다. 그렇게 해야 오랫동안 남들과 다른 대접을 받고 살 수 있을 것이라 믿는다. 앞서 누차 강조해 왔듯이 모델링이야 말로 정보시스템 분야에서 가장 거기에 걸맞는 분야일 것이며, 여러분이 정말 남다른 능력을 키웠다면 당신은 그 누구보다 나은 대접을 받게 될 것이라는 것을 조금도 의심할 필요가 없다.
분명히 대부분의 정보시스템 종사자들은 시대의 유행에 맞는 툴이나 개발언어의 늪에 빠져 누구나 할 수 있는 그리 대단하지 않은 기술을 바탕으로 밤세워 프로그래밍에 몰두하고 있을 것이며, 그러다 지쳐 세월이 가면 대부분은 관리자로 변절(?)할 것이다. 그것은 옛날에도 그래왔고 지금도 그러하며, 분명 앞으로도 그러할 것으로 믿어 의심치 않는다.
시대의 조류가 그렇게 흘러가듯이 툴이나 개발언어는 유행처럼 바뀌어 간다. 그러나 인간만이 할 수 있는 모델링은 아무리 좋은 툴, 개발언어, DBMS가 나타났더라도 이것은 절대적으로 인간만의 몫이다.
인간만이 할 수 있는 영역을 추구한다는 것은 매우 중요하다. 비 정보시스템 인들이 보기에는 그 대단하고 어렵다는 컴퓨터를 직업으로 하고 있으니 우리 같은 사람들이 무척 대단한 기술과 능력을 가진 것처럼 보고 있을 테지만 자세히 살펴보라! 사실 우리가 하고 있는 일 중에서 어디까지가 인간만이 할 수 있는 영역인지를…
필자는 '대용량 데이터베이스 솔루션 I,II '권을 통해 기존의 방식으로 수천 라인에 해당하는 배치처리를 단 몇 십 라인의 기가 막힌 SQL하나로 처리할 수 있음을 보여 주었다. DBMS나 툴이 발전할수록 여러분이 작성하는 프로그램의 상당부분은 이들이 대신하게 될 것이 틀림없다. 그렇게 되는 순간, 이제 더 이상 여러분들이 설 곳은 없어 진다.
건물을 짓는 공사장에 가 보자. 거기에 지금 보다 훨씬 발전된 공법이 도입되고, 보다 질 좋은 자재가 제공되며, 대단한 일을 할 수 있는 공기구들이 개발된다면 기계가 할 수 있는 일을 대신하던 사람들은 그 일자리를 잃게 될 것이다. 그러나 건물을 설계하던 사람에게는 오히려 할 일이 늘어 난다. 지금까지는 감히 생각은 있어도 자재, 공법, 공기구들의 문제로 인해 그렇게 할 수 없었던 제한요소들이 없어지게 되면서 설계자는 더 많은 이상을 현실로 구현할 수 있기 때문이다.
여러 프로젝트를 돌아다녀 보면 혹자는 "앞으로 DBMS나 툴이 더 좋아지면 이제 우리가 할 일이 없어지는 것이 아닌가?" 라는 말을 하곤 한다. 이 말은 자신이 인간만의 영역을 하고 있는 것이 아니라 앞으로 기계가 해야 할 일을 하고 있을 뿐이라는 것을 웅변적으로 증명하고 있는 말이다.
여러분들도 한번 돌이켜 생각해 보라! 나 자신이 하고 있는 일이 과연 인간만이 할 수 있는 영역이고 세상이 보다 발전되면 할 일이 많아지는 일인지, 그렇지 않으면 오히려 줄어드는 일인 지를 곰곰히 한번 따져 볼 일이다.
모델러의 역할과 위상
세상이 복잡하게 변하고 발전해 가면서 그 영향력은 하위층에 있는 사람보다 상위층에 있는 사람들에게로 더욱 커져 간다. 동력이 없던 시절에는 힘센 군사들이 배를 움직이는 원동력이었지만, 이제는 항해사의 능력이 훨씬 지대한 영향을 미친다.
여러분 중에 남자분들은 대부분 군대에 갔다 오셨기 때문에 잘 알 것이다. 고지 탈환을 하는데 누구는 똑똑하지 못한 소대장을 만나서 엉뚱한 고지에 올라가서 만세를 부르고, 옆에 있는 소대는 똑똑한 소대장을 만나서 제대로 목표를 탈환했다고 생각해 보자. 불쌍한 우리 소대는 전부 얼차레를 받고 있는데, 옆 소대는 포상휴가를 가는 일이 벌어질 것이다. 우리가 A고지를 올라가든 B고지를 올라가든 고생은 똑 같이 한다. 나의 잘못이라고는 바보 같은 소대장을 만난 죄밖에 없는데 그 결과는 이처럼 상반되게 나타나는 것이다.
이러한 일은 고급화된 사회일수록 분명하게 나타난다. 그럼에도 불구하고 가장 전문화된 사회라는 정보시스템 분야가 아직도 프로젝트가 미궁을 헤매고 있으면 "프로그래머들을 더 투입하면 해결할 수 있어!"라는 생각을 가지고 있다. 이것은 천만의 말씀이다. 상황에 따라 백 명이 한 명의 일을 대신할 수 없는 것이 바로 정보시스템 분야이다.
요즘 우리나라가 정보시스템 분야가 이상한 방향으로 흘러가고 있는 것 같다. 가장 기술 집약적인 산업을 노동 집약적인 산업으로 만들고 있다. 대기업들이 개발자 중심의 수 천명의 직원을 가지고 인해 전술을 하고 있는 것이다. 정보시스템은 확실히 기술 집약적인 산업이다. 한 사람이 백 명의 일을 할 수 있도록 차별화 된 기술을 획득하는 것이 무엇보다 중요하다. 이를 위해서는 중간 계층에 있는 사람들이 제 역할을 할 수 있어야 한다.
중간 계층이 특히 중요하다고 하는 이유는 이미 그 윗 계층은 완전한 관리자에 지나지 않기 때문이다. 현대 축구에는 미드필더의 역할을 특히 강조하고, 운동선수에게도 허리의 중요성을 강조하듯이 정보시스템 분야의 미드필더에 해당하는 설계자들의 역할은 아무리 강조해도 지나치지 않다.
중간 계층의 역할을 강조하는 재미 있는 이야기가 있다. 옛날에 어떤 사람이 심심해서 땅바닥을 보고 있는데 개미들이 열심히 일을 하고 있는 것을 발견했다. 좀더 상세하게 보려고 돋보기를 가지고 개미를 유심히 관찰을 해 보았더니 놀랍게도 바쁘게 개미들이 왔다갔다 하지만 정작 등에 쌀 한 톨이라도 짊어지고 가는 개미는 20% 밖에 되지 않는 다는 사실을 발견했다. 결국 나머지는 쓸데없이 왔다갔다 하기만 했다는 것이다. 그런데 이 사람이 일하는 개미를 핀셋으로 모두 끄집어 냈더니 더욱 놀라운 일이 벌어졌다. 그것은 또 다른 20% 개미가 일을 하고 있더라는 것이다. 이것이 바로 그 유명한 '20%의 원리'이다.
필자는 이 원리를 신봉하는 사람이다. 이 세상은 핵심적인 20%가 먹여 살린다는 것을 믿는다. 내가 어렸을 때 우리 부모님이 나와 우리 할아버지를 먹여 살렸고, 이제 우리 아버지가 늙고 병드시니까 내가 그 20% 역할을 하여 내 부모와 내 자식을 부양하는 것이다. 이런 원리는 기업이나 조직도 마찬가지 일 것이다.
바로 이 20%가 어떤 능력을 가지고 있느냐에 따라 강대국이 되는냐, 약소국이 되는냐 하는 것이다. 정보시스템 분야도 이 원칙을 결코 벗어날 수는 없다. 능력있는 기술리더가 제대로 있어야 IT강국이 될 수 있을 터인데 우리나라는 어떻다고 생각하는가? 약 5~6년, 길어야 7~8년이 지나면 모두 지쳐 버린다. 거의 매일 밤을 새우다시피 하는데 지치지 않을 장사가 없다.
이제 지쳐서 잠시 쉬어야겠다고 생각하는 사이에 세상은 변하고 자신의 기술은 고전이 되어 버린다. 그러나 보니 후배에게 위엄이 서지를 않는다. 뭔가를 보여 주고 싶은데 속으로는 뜨끔하다. "저 녀석이 뒤에서 흉을 보는 게 아닐까?" 아니면 "내 무식이 탄로나는 게 아닐까?" 하는 생각이 들고 있는 것이 작금의 풍속도일 것이다.
뭔가 한 수를 가르쳐 줄 때 "우리 과장 역시 다르다.", "아! 한 수 배웠구나" 이렇게 되야 하지 않겠는가? 이렇게 하지 못하니까 앉아서 실적이나 챙긴다. "너 왜 제대로 못했어?", "홍길동이는 이렇게 해 왔는데 너는 왜 못 했어?" 등의 인신공격까지 난무한다. 이것이 기술 리더가 할 역할인가? 이제는 달라져야 한다.
자신의 기술과 실력을 후배에게 '봉황의 뜻'으로 여길 수 있도록 해야 한다. 모델링 능력은 그간의 많은 개발 경험, 업무 경험의 토대가 있기 때문에 자신의 노력 여하에 따라 얼마든지 탈태환골 할 수 있는 분야임에 틀림없다. 이런 기술력을 가진 사람이 제값을 받고, 좋은 대접 받고 사는 세상이 와야 하지 않겠는가? 이런 마음과 각오를 가지고 앞으로 진행될 모델링을 자신의 것으로 만들어 보기 바란다.
지금까지 모델링의 접근에 대한 내용을 살펴 보았다. 다음 시간부터는 실전 데이터 모델링의 개요에 대해 알아보도록 하자.
|