본문 바로가기

데이터 Story/데이터 상념(想念)

모델링과 바둑 이야기

저는 바둑을 무척 좋아합니다. 대학 때 동호회가 기우회(棋友會)였어요. 동호회 얘기할 때마다 반복하는 해명인데, 비가 오라고 비는 곳이 아닙니다. 학교에 그런 동호회가 있을 리 없죠. 바둑 동호회입니다. 잠깐 옆으로 새면, 기우(祈雨)를 하면 반드시 비가 오는 부족이 있다고 합니다. 비결은, 비가 올 때까지 빈다고 합니다. 간단하죠.

 

제가 기우회에서 4급 정도를 두었는데요. 방황을 하던 때라서 바둑보다는 농구를 더 많이 한 탓에 바둑 실력이 좋지 않았습니다. 약간 후회가 됩니다. 선배들처럼 1~2급까지 갔으면 좋았을텐데요. 참고로 아마추어는 단()이 없고 최고가 1()입니다. 천차만별이지만 아마추어 1급을 아마추어 단으로 치면 3~6단 정도 되는 거 같아요.

 

이 글은 모델링에 대한 글이지만 잠깐 바둑 얘기를 해야겠습니다. 처음 동호회 방에 갔을 때 한 선배가 기력 테스트를 한다고 앉혔습니다. 몇 마디 물어보더니 9점을 깔라고 하는 겁니다. 주변 사람한테 별로 저본 적이 없어서 깜짝 놀랐습니다. 저도 상대한테 9점을 깔라고 하는 경우가 많았던 때라 더욱 그랬죠.

 

결과는 예상하시겠죠. 만방으로 졌습니다. 바둑을 좀 두는 상태라서 9점을 깔아주고 어떻게 둘런지 선배를 걱정했는데요. 제 생각은 완전 오판이었습니다. 신비한 경험이었어요. 실력차가 이렇게까지 심하게 날 수 있구나를 실감했죠. 그당시 그 선배는 3~4급이었던 거 같고, 그 선배가 졸업할 때는 1급이었던 거 같습니다.

 

아마추어 1급 중에서 고수가 프로와 둘 때는 보통 4~6점을 깐다고 합니다. 제가 4급이라고 하면 프로와 두려면 13점을 깔아야 하는데요. 사실 더 깐다면 어디다 깔아야 하는지 몰라서 13점입니다. 이미 13점이면 상대가 둘 곳이 없는 정도의 상태인데, 실전 결과는 제가 만방으로 지는 거겠죠.

 

프로 1단과 프로 9단은 서로 깔고 두지 않습니다. 그래서 실력이 동급일 거 같은데, 미세한 차이지만 결과는 상당히 큽니다. 이창고가 전성기일 때는 프로기사라도 이창호와 둬서 이길 확률이 10% 이내니까 차이가 많이 나는 것입니다.

 

바둑을 잘 모르시는 분들은 프로 바둑기사를 그냥 천재라고 생각하면 되는데요. 일례로 프로기사끼리는 흰색의 돌로만 바둑을 둘 수 있습니다. 내가 둔 수와 상대가 둔 수가 머릿 속에 있기 때문에 흰색 돌만 놓여있는 바둑판은 형식일 뿐이죠. 바둑을 모르시면 밥만 먹고 바둑을 두니 그 정도는 돼야 한다고 생각하실 수 있는데, 많은 돌이 얽혀있고 집 수를 계산하면서 매 수를 둔다는 걸 고려하면 엄청난 일입니다. 대개 한 수는 1분 내에 둬야 합니다.

 

바둑기사는 신()의 경지에 있다고 할 수 있습니다. 성경책을 몽땅 외운 신학생이나 지식의 깊이를 가늠할 수 없는 사람도 비할 바가 못 되는 거 같습니다.

 

바둑 얘기가 길어졌네요. 바둑 얘기를 하는 이유는 모델링과 매우 유사하기 때문입니다. 모델러 중에 바둑을 좋아하시는 분들은 공감하실 거에요.

 

우선 ERWin 툴에서 엔터티를 그리는 흰 판이 바둑판과 매우 흡사합니다. 줌으로 조절해서 전체를 보면 바둑판과 같습니다. R9 버전의 경우 의미가 없지만, R7 버전의 경우 저는 왼쪽 최상단 위치에서 엔터티를 설계하기 시작합니다. 가장 중요한 엔터티를 설계합니다. 실체 엔터티가 되겠죠. 바둑은 두는 사람 기준으로 오늘쪽 상단 귀퉁이에서 시작합니다.

 

바둑은 정석(定石)을 기반으로 두어집니다. 바둑에서 정석을 무시하고 두는 프로기사는 없을 것입니다. 간혹 한 수씩 비틀기는 하지만, 상대를 흔들기 위한 응용일 뿐이지 근저에는 정석이 있습니다. 간혹 정석대로 잘 두지 않는 프로기사가 있는데, 제 기억에 요다라는 일본 기사가 창의적인 바둑을 두었던 거 같아요. 외모와도 어울려서 나름 멋있었지만, 성적은 이창호 등에 비할 바가 못되었죠.

 

바둑은 정석을 모르면 제대로 두기 어렵습니다. 오랜 실전 역사가 쌓여서 생긴 정석은 무시할 대상이 아닌 것이죠. 모델링의 정석은 정규화를 기반으로 한 모델링 이론입니다. 1정규화, 2정규화 등의 정규화와 엔터티관계통합, 이력 설계 방법 등의 이론이 바둑에서의 정석에 해당합니다. 때로는 기계적으로 적용되기도 하는 정석과 같은 이론을 모르고서는 모델을 제대로 설계하기 어렵습니다.

 

네 개의 귀퉁이에서 정석을 기반으로 해서 두는 것을 초반 포석 단계라고 합니다. 모델링의 개념 모델 단계와 동일합니다. 첫수를 둘 때의 느낌이 첫 엔터티를 그릴 때의 느낌과 유사합니다. 판이 어떻게 짜일지를 기대하면서 첫수를 두죠. 최선을 다해 한 수씩 두면서 바둑의 포석이 정해지듯이 중요 엔터티를 하나씩 설계하면서 모델의 구조가 정해집니다. 초반 정석을 잘못 선택하거나 삐끗하면 판 전체가 엉망이 되듯이 처음에 핵심적인 엔터티를 제대로 설계하지 못하면 모델링이 전반적으로 힘들어진다.

 

초반 포석이 상당히 중요하지만, 당연히 중반이나 끝내기에서 승패가 갈리기도 합니다. 구조를 잡는 개념 모델이 상당히 중요하지만, 이후 단계에서 데이터 정합성이나 성능 등의 문제를 간과하면 모델에 심각한 하자가 생기는 것과 비슷합니다.

 

초반 포석 단계가 끝나면 중반전으로 넘어가면서 상대 집을 공격하기도 하고 내 집을 지키기도 하죠. 그러면서 집의 윤곽이 뚜렷해집니다. 핵심 엔터티의 구조를 설계한 후에 하위 엔터티로 확장해가면서 상세 논리 모델로 나아가는 것과 유사합니다.

 

바둑은 상대가 있는데, 모델링은 상대가 있을까요? 바둑 둘 때 내가 한 수를 두는 것은 상대에게 어떻게 둘래?‘라며 물어보는 것입니다. 모델링은 설계를 하기 전에 물어봐야 할 수 있습니다. 설계한 후에도 어떻게 사용하는지 설명하고 제대로 사용할 수 있는지 물어봐야 하고요.

 

정석이나 포석, 행마, 끝내기 등의 중요한 요소를 열심히 공부해도 프로 바둑기사가 되기는 하늘의 별따기와도 같습니다. 사실 모델러가 되는 것은 쉽습니다. 정규화나 통합, 엔터티, 관계 등의 이론도 쉽게 익힐 수 있지만, 문제는 직접 모델링을 하기가 쉽지 않다는 것입니다.

 

저는 바둑 중계를 볼 때 프로기사가 둔 수를 명확하게 이해할 수 있습니다. 방송 해설을 들으면 더욱 그렇지요. 상식적이고 자연스러운 위치여서 그자리에 둘 수밖에 없다고도 생각합니다. 하지만 실제로 저에게 두라고 하면 그 자리에 못 둔다는 것을 압니다.

 

어쩌다 프로처럼 멋진 수를 둘 수 있지만 항상 그렇게 두지는 못하죠. 모델링도 마찬가지로 전문 모델러가 설계한 모델을 보거나 설명을 들으면 이해가 되고 그런 구조가 맞는 것 같습니다. 하지만 이론만 아는 상태에서 실제로 그렇게 설계하는 게 쉽지 않습니다.

 

바둑에서 수 읽기가 중요하듯이 모델링을 수행하면서 데이터가 생성되는 것을 읽어야 합니다. 머릿속에서 사례 데이터가 생겼다 없어지고, 관계에 따라 데이터가 움직이기도 합니다. 바둑을 둘 때 머리속으로 집을 계산하듯이 머리속에서 조인(Join)한 결과를 보기도 합니다. 바둑기사가 한 수를 둘 때마다 반집의 집도 계산해 보듯이 모델링을 하면서 사례 데이터를 만들어 보는 것이 좋습니다.

 

정석을 꿰고 있는 것은 기본이고 창의적으로 응용할 수 있어야 하며, 반집을 소중하게 여길 정도로 최선을 다하고, 자신만의 철학을 가지고 바둑을 일관되게 두면 정상의 프로기사가 될 수 있다고 생각합니다.

 

이론을 꿔고 있고, 간혹 창의적으로 응용할 수 있으며, 속성 하나에도 최선을 다해 설계한다면 최고의 모델러가 될 수 있습니다. 모델러의 철학은 단순하다고 생각합니다. RDB의 존재 이유인 데이터 무결성을 지키는 것이고, 좋은 모델을 설계하는 데 집중하는 것입니다.

 

이미 경지에 올랐지만 정석을 공부하며, 끊임 없이 묘수를 연구하는 프로기사처럼 모든 모델러가 기본을 중시하고 더 좋은 모델을 연구하는 프로 모델러를 목료로 했으면 좋겠습니다. 모델러가 됐다고 그만인 게 아니라 그때부터 진정으로 시작이 됐으면 좋겠습니다. 저 역시 좋은 시스템을 만들어 국가 경쟁력을 높이는 데 조금이라도 이바지할 수 있도록 노력하겠습니다.

 

마지막으로 유명한 사진 한 장 첨부했습니다. 휠체어를 탄 사람은 조치훈 9단입니다. 대국 10일 전에 전치 25주의 교통사고를 당했지만 머리와 오른손이 문제가 없다면서 대국을 강행했죠. "목숨을 걸고 둔다"는 평소의 인생관을 그대로 보여주는 장면입니다.

 


 

PS. 바둑하면 떠오르는 갑갑한 현실도 있어요. 제가 쓴 모델링 노트 책에 기계가 사람을 이길 수 없다고 확신하는 내용이 있습니다. 알파고에 대해 할말은 많지만 어쨌든 책은 수정해야 할 판입니다.