방대한 논문과 특허 분석해 인용 관계에 주목해 분석
미래 성장 영역이 될 수 있는 기술을 미리 발견 가능

 

 

일본 도쿄대의 한 연구소에서 2만 3319건의 논문을 분석해 상호 관련성을 나타내는 인용 관계에 착안해 '지식'의 관계성을 시각화하는 연구를 진행하고 있다. 정리된 연구 영역을 컬러 클러스터로 추출하고 키워드와 출판 연도부터 성장성까지 예측할 수 있는 분석 시스템이다.

 

 

기술이 세분화되고 분야를 가로지른 기술 간 융합이 급속히 진행됨에 따라 연구 개발주기가 빨라지고 있다. 이에 따라 기업·기관에서 기술개발 투자를 위해 미래를 전망하는 활동이 더욱 어려워지고 있다. 이런 어려운 환경을 지원하는 연구가 일본 도쿄대학 대학원 공학계 연구과의 사카타·모리 연구소에서 진행되고 있다.

 

'학술·산업 기술 조망(insight) 시스템(이하 인사이트 시스템)'이 그것이다. 도쿄대에서 개발중인 인사이트 시스템은 전 세계의 방대한 학술 논문과 특허 데이터를 분석·추출해 '지식'의 관계성을 시각화함으로써 미래 성장 영역이 될 수 있는 기술을 미리 발견할 수 있도록 돕는 이른바 기술개발 포인트를 찾기 위한 일종의 특허맵 도출과 같은 것이다.

 

논문이나 특허 상호 관련성을 나타내는 인용 관계가 존재한다. 인사이트 시스템에서는 이 인용 관계에 주목하고 방대한 논문과 특허의 대규모 인용 네트워크를 구축해 네트워크 분석을 한다. 또한 텍스트 마이닝 및 데이터 마이닝 등의 기술을 이용해 개별 논문이나 특허에 대한 텍스트 분석을 실시해 대상 기술 영역의 지식의 관계를 자동으로 추출한다.

 

논문의 그룹은 키워드 등으로 특징

[그림 1]은 머신러닝과 데이터 마이닝과 관련한 학술 논문을 바탕으로 작성한 인사이트 맵이다. 맵에서 가는 선은 개별 논문 간의 인용 관계를 표현한 것이다. 논문 데이터는 학술 문헌 데이터베이스 (톰슨 로이터의 'Web of Science')를 'machine learning OR data mining'이라는 쿼리에서 검색해 얻은 3만 4098건의 논문(2015년 6월 현재)을 사용해 그 중 가장 대표적인 인용 네트워크를 구성하는 2만 3319건의 논문을 대상으로 분석했다. 이 논문의 평균 출판 연도는 2008년으로 되어 있다.

 

[그림 1] '기계 학습'과 '데이터 마이닝'에 대한 학술 논문의 인용 관계를 선으로 표현

(인용 관계가 조밀한 213 클러스터를 추출해 색상으로 표현했다. 분량은 많지만 오래된 연구 영역 클러스터를 빨간색으로, 미래의 성장을 전망할 영역 클러스터를 파란색으로 보여주고 있다

 

인사이트 맵에서 다른 색으로 표시된 것은 「클러스터」인데, 전체 인용 네트워크 중에서도 특히 인용 관계가 조밀한 논문들을 보여준다. 인용 관계가 밀접한 것은 서로 내용이 깊이 관련된 논문이 하나의 그룹, 즉 연구 영역을 형성하고 있는 것이다. 클러스터는 연구 영역에 해당된다. 크고 작은 213의 클러스터가 추출되어 있다. [그림 2]는 그 중에서도 가장 큰 4425 논문을 포함한 클러스터(붉은색)를 나타낸다. 키워드는 클러스터에 포함된 논문에서 특징적인 단어를 보여주고 있다. 이 클러스터는 'association rule'이나 'fuzzy' 등의 키워드로 표시되도록 데이터 마이닝의 기초적인 연구 영역을 지원하고 있다.

 

[그림 2] 논문 건수는 가장 많지만 다소 오래된 연구 영역 클러스터 만 표시

 

또한 이 클러스터 논문의 평균 출판년도는 2007년에 인용 네트워크 전체 논문의 평균 출판년도에 비해 다소 오래된 영역인 것을 알 수 있다. 이와 같이 각 클러스터는 논문에 포함된 키워드 또는 출판년도, 국가, 조직, 저자 등의 정보라고 할 수 있다.

 

[그림 3]은 2183건의 논문을 포함한 5번째로 큰 클러스터(파란색)를 나타낸 것이다. 이 클러스터 논문의 평균 출판년도는 2010년으로 매우 새롭고 최근 성장중인 영역임을 알 수 있다. 키워드는 머신러닝으로 추출했으며, 현재 다양한 응용이 이뤄지고 있다. 'support vector' 등이 나타난 것을 알 수 있다.

 

[그림 3] 미래의 성장을 전망 할 영역 클러스터

 

기술개발 투자 조사를 위해 수만 건의 논문을 사람이 조사한다는 것은 사실상 불가능에 가깝다. 하지만 도쿄대의 인사이트 시스템을 이용하면 대상 영역의 전체를 쉽게 조망할 수 있으며, 최근 급성장하는 기술도 파악할 수 있다. 정부 또는 기업에서 기술 로드맵과 이슈 스캐닝(Horizon Scanning)과 같은 미래 예측을 할 때, 일반적으로 전문가의 합의 등 모든 지각에 근거한다. 

 

한편 방대한 논문과 특허 데이터에서 도출된 인사이트 맵이 나타내는 것은 학술·산업기술 지식의 객관적인 파악이 가능하다. (출처: 「니케이 빅데이터」, 2015. 7. 7)

 

글: 모리 준이치로

정보공학 박사. 도쿄대 대학원 공학계 연구과 기술경영전략학 전공, 강사. 일본 국립 정보학연구소 등을 거쳐 2012년부터 도쿄대에서 연구하고 있다. 전문은 빅데이터 분석, 인공지능, 웹 정보학이다.

Posted by 글키우는 농부
:

 

며칠 전, 한 데이터 분석 교육기관의 빅데이터 교육 수료 프로젝트 발표회장에 갔다.

네 팀이 발표를 했는데, 꽤 흥미로운 주제를 발견했다. 글로벌 호텔 체인 마케팅 담당자 또는 시스템 개발자가 참여해서 이뤄진 '호텔 객실 수요예측' 프로젝트였다.

발표를 했던, 호텔에서 일하는 분의 말이 인상적이었다. "5~7년은 호텔에서 일해야만 알 수 있는 것을 3주 간의 분석으로 (분석가들이) 파악해 내는 것이 정말 놀라웠다. (분석가들이) 마치 호텔 팀원들처럼 얘기를 하고 있었다."

발표자 당신은 바쁜 일이 있어서 분석 과정에 참여하지 못했는데 "2주 후 팀원들이 데이터 분석을 통해 호텔의 상황을 읽어내는 것을 보고 너무 놀랐다"면서 한 말이었다.

 


페이팔의 CEO였던 피터 틸이 써서 국내에서 꽤 주목을 받았던 「제로투원 Zero to One」이라는 책에서 빅데이터에 대한 꽤 흥미로운 통찰을 하고 있어서 소개한다.

 

"어떻게 하면 컴퓨터로부터 도움을 받을 수 있을까?"

"인간과 컴퓨터가 각자 성취할 수 있는 것보다 함께했을 때 극적으로 더 훌륭한 결과를 달성할 수 있다면, 이 핵심 원칙을 이용해 만들 수 있는 가치 있는 기업은 어떤 게 있을까?

(중략)

컴퓨터가 인간을 대체해야 한다는 편견을 전형적으로 보여주는 또 다른 유행어는 빅데이터다. 오늘날 기업들이 끝없이 데이터를 갈구하는 것은, 데이터가 더 많으면 항상 더 많은 가치를 창출할 수 있을 거라고 잘못 믿고 있기 때문이다.

하지만 빅데이터는 보통 아무 짝에도 쓸모없는 데이터다. 컴퓨터는 사람이 찾아내지 못하는 패턴을 찾아낼 수 있지만, 서로 다른 출처로부터 패턴을 비교하거나 복잡한 행동을 해석할지는 모른다. 오직 인간인 애널리스트들만이 쓸모 있는 통찰 결과를 찾아낼 수 있다.

우리가 빅데이터에 사로잡혀 있는 것은 기술을 신기한 것으로 생각하기 때문이다. 우리는 컴퓨터 혼자서 해낸, 별것 아닌 일들에는 감동하면서도 인간이 컴퓨터의 똑똑하지 못한 부분을 채워주며 이뤄낸 커다란 업적들은 무시한다. 왓슨이나 딥블루, 계속 발전하는 기계학습 알고리즘 같은 것들은 멋지다. 하지만 미래에 가장 가치 있는 기업들은 컴퓨터 (스스로) 혼자서 무엇을 해결할 수 있을지 묻지는 않을 것이다. 오히려 그들은 이렇게 물을 것이다. "어떻게 하면 인간이 어려운 문제를 해결할 수 있도록 컴퓨터가 도울 수 있을까?"

(중략)

먼 미래에 대한 불명확한 두려움 때문에 지금 명확한 계획을 세우지 못해서는 안 된다. 기술 반대주의자들은 컴퓨터가 언제가 인간을 대체할지도 모르기 때문에 컴퓨터를 만들면 안 된다고 주장한다. 반면에 열광적인 미래 전문가들은 우리가 컴퓨터를 만들어야 한다고 주장한다.

이 두 입장은 서로 배타적이지만, 이것들이 가능성의 전부는 아니다. 두 입장의 중간쯤에는 분별력을 가진 인간이 수십 년 후에 훨씬 나은 세상을 만들 가능성도 아직 남아 있다. 컴퓨터를 활용할 새로운 방법들은 찾아낸다면, 컴퓨터는 단순히 인간이 이미 하고 있는 일만 더 잘할 수 있는 것이 아니라. 우리가 이전에는 상상조차 할 수 없었던 일을 할 수 있게 도와줄 것이다."


인터페이스

피터 틸은 엔지니어가 아닌 것으로 아는데, 충분히 공감할 만한 논리였다. 사람의 부족한 부분을 메워주는 측면에서 컴퓨터의 가능성을 보아야 한다는 의견이었다.

이 책을 보면서 적어도 향후의 이슈는 인간과 컴퓨터 사이의 '인터페이스'가 아닐까 한다. 데이터 분석 영역에서는 컴퓨터와 사람의 인터페이스는 아직 초보 단계로 볼 수 있다. 데이터를 분석해 보고 싶어도 데이터 취합, 전처리, 분석 방법을 모르기에 데이터 엔지니어의 도움을 받는 것을 보면 말이다.

누구나 데이터를 분석하거나 컴퓨터에서 자신의 생각을 프로그래밍하여 더 좋은 결정을 내리고 자신의 생각을 확장할 수 있는 것이 데이터 분석 시대, 이것이 바로 빅데이터가 추구하는 것이 아닐까? 그 측면에서 요즘 유행하는 소프트웨어 교육의 분명한 목적 하나도 발견할 수 있지 않을까 한다.

Posted by 글키우는 농부
:

"데이터 시각화 전문가는 분석가가 볼 수 없는 영역까지 갈 수 있어야" 





▲ 이지선 숙명여자대학교 시각
영상디자인학과 교수

어떤 계기로 데이터 시각화를 접하게 되었나.

숙명여대 산업디자인과를 졸업하고 삼성전자에서 프로그래머로 사회생활을 시작했다. 이후 네오위즈와 야후코리아 등에서 일한 것까지 포함해 직장 생활을 15년 정도 했다. 야후코리아 근무 시절, 미국 본사에서 휴먼컴퓨터인터렉션(HCI)와 관련해 교육을 받았다. 이때 개발 관점이 아닌 사용자 관점에서 인터페이스와 인터렉션에 관심과 더불어, 포탈이 가진 방대한 콘텐츠를 어떻게 사용자에게 보여줄 것인가에 대해 관심을 갖게 되었다. 이후 미국 뉴욕대에서 '인터랙티브 텔레커뮤니케이션' 석사 과정을 밟으며 데이터 시각화를 자연스럽게 접하게 됐다. 그곳의 다니엘쉬프만 교수로부터 '프로세싱' 언어를 배우면서 본격적으로 자바 언어를 이용한 시각화를 공부하게 됐다. 그때가 2006년 전후였는데, 미국에서는 데이터 분석 시각화에 대한 다양한 프로젝트들이 막 이슈로 떠오르고 있었다. 이때 데이터 시각화 분야에서 매우 유명한 두 명의 전문가를 강연을 듣고, 이들의 연구 과정을 알게 된 것이 내 연구와 개발에 큰 도움이 됐다. MIT미디어랩 출신의 버락 아리칸(Burak Arikan)과 '프로세싱' 언어를 만든 벤프라이(Ben Fry)가 바로 그 주인공들이다. 버락은 인터넷이라는 네트워크에서 발생하는 방대한 데이터를 노드로 아름답게 시각화하는 전문가로 잘 알려졌다. 프로세싱을 개발한 벤프라이도 방대한 비정형 데이터를 실시간으로 시각화해서 표현하는 작업으로 잘 알려져 있다. 한국에 들어와서는 한국도로공사 등 데이터를 시각화하는 다양한 프로젝트를 진행하면서 (데이터 시각화를 하는 사람으로) 외부에 알려지게 된 거 같다.

 


데이터 시각화 전문가는 주로 어떤 일을 하는가.

국내에서는 '인포그래픽스'가 데이터 시각화를 표현하는 데 종종 쓰이곤 하는데, 이러한 용어에 대한 개념을 먼저 정확히 정의할 필요가 있다. ▲데이터 시각화는 주로 노드로 표현할 때 쓰는 말이다. ▲정보 시각화는 그래프로 표현할 때 쓴다. ▲정보 디자인은 정보시각화와 인포그래픽스 개념이 혼재된 용어다. 따라서 (빅)데이터 분석에서 시각화를 말할 때는 '데이터 시각화' 또는 '정보 시각화'라는 용어를 써야 맞다. 인포그래픽스는 데이터에 내러티브한 설득적 메시지 요소가 많아 정보 분석이 들어갈 여지가 부족한 경우가 많다. 시각화에서는 정보형 메시지와 설득형 메시지가 있는데, 인포그래픽스와 정보 시각화는 설득형 메시지에 가깝다. 하지만 정보형 메시지인 데이터 시각화는 인포그래픽스와 관련성이 낮은 경우가 대부분이다. 인포그래픽스에는 의도하는 바, 다시 말하여 설득하는 메시지가 너무 많이 담겨 있으므로 보는 사람이 데이터 안에서 객관적으로 무엇인가를 유추해 내기가 힘들다. 이미 정보를 전달하는 의도가 다분히 들어가 있는, 즉 결론이 난 시각화 결과물이기 때문이다.

 

인포그래픽스를 데이터 시각화라고 했을 때, 디자인적인 요소가 강조되는 측면이 없지 않다.

한국에서 '인포그래픽스를 한다'는 곳을 보면, 데이터 분석보다 디자인을 앞세우는 경우가 많았다. 이런 곳에서는 고객이 원하는 형태로 표현해 주는 것, 다시 말해 디자인을 해 주는 것이므로 진정한 의미에서 데이터 시각화 비즈니스를 한다고 보기 어렵다. 앞서 말했듯이 빅데이터 분석에서의 시각화는 통찰(insight)을 찾는 것이 목적이므로 비주얼이 강조되지 않는다. 비주얼 위주의 인포그래픽스는 마케팅이나 광고 분야에서 중요할지는 모르지만, 데이터 분석 분야에서 유용성이 떨어질 수 있다. 데이터에 들어있는 메시지를 누군가에게 제시하려면 적어도 데이터세트를 자유롭게 다룰 수 있어야 한다. 시각화 또한 데이터 분석의 영역으로 봐야 한다는 말이다.



분석 프로젝트에서 시각화 전문가는 어떤 역할을 하는가.

데이터 분석가가 정형 또는 비정형 데이터로 도출한 데이터세트를 R이나 타블로 같은 도구로 고객이 쉽고 객관적으로 파악할 수 있도록 시각화하는 역할을 한다. 분석의 일환이므로 분석가와 협업은 당연한 일이다. 그래서 몸담고 있는 숙명여대의 시각?영상 디자인학과에서는 학생들에게 R과 프로세싱 등을 가르치고 있다. 데이터를 다룰 수 있어야 분석 전문가들과 커뮤니케이션이 가능하고 최종 고객과 만날 수 있기 때문이다.

 

'시각화'라는 용어만 놓고 보면, 디자인을 잘 하는 사람에게 유리한 영역으로 느껴진다.

글쎄다. 개인적으로 누구나 데이터 시각화 전문가가 될 수 있다고 생각하는 편이다. '데이터를 분석해 보고자 하는 욕구가 어디에서 생겼느냐?'가 핵심이라고 생각한다. 만약 통계분석을 하는 사람이 분석 결과를 좀 더 객관적으로 보여주기 위해 데이터 시각화를 할 때는 이미 시각화 도구로 많이 쓰이고 있는 R이나 타블로 같은 도구를 쓰면 된다. 이를 '시각화 분석(analytics)'이라고 분류하기도 한다. 결론적으로 '데이터 시각화 전문가는 어떤 일을 하는가?'에 대한 질문에 대한 답은 다음 두 가지 경우로 나눠서 할 수 있다.

먼저 ▲먼저 지금까지 해왔던 일의 일환으로, 사내에서 데이터를 분석해 구성원이 그것을 볼 수 있도록 제시해 주는 경우다. 의사결정에 도움을 주거나 그런 자료를 보는 사람에게 뭔가 메시지를 주기 위함이다. 이러한 시각화는 엑셀에서 그래프를 그려서 표현하던 방식이라고 생각하면 쉽게 이해할 수 있다. 최근에는 R이나 분석툴에서 제공하는 그래프를 이용하는 추세다(하지만 엑셀 같은 도구는 리얼타임 추세를 반영하기 어렵고, 요즘과 같은 복잡?다양한 시각화 이슈를 반영하기 어렵다). 무엇보다 중요한 것은 현재로선 국내에서는 비즈니스에서 데이터 시각화를 어떻게 활용할 것인지, 그 활용 가치 논의조차 이뤄지지 않은 상태라는 점이다. 아직 어디에 쓰일지는 정확하게는 모르지만, 빅데이터가 각광 받으면서 데이터 시각화도 동시에 주목을 받고 있을 뿐이다. 

▲두 번째는 '그 (빅)데이터로 우리가 어떤 것을 할 수 있어?'에 대해 답, 즉 비즈니스 인사이트 도출을 요청할 때 대응해야 하는 경우다. 이런 질문에 대한 답을 데이터로 시각화하는 일은 기획자, 마케터, 디자이너 누구나 할 수 있다. 요즘 빅데이터라고 하면, '그 데이터를 분석해 우리가 새로이 만들어낼 수 있는 비즈니스 기회는 무엇이 있을까?'로 관심이 옮겨가고 있다. 하지만 이 질문에 대한 방법론은 만들어가고 있는 단계이고, 사례도 그리 많지 않다. 이 과정은 매우 복잡하고 전문성이 요구된다. 

기존에는 시각화가 분석 전문가의 능력 안에 포함되는 정도로 한정되었다. 정형 데이터만 다룰 때는 원천 데이터에서 데이터세트까지 가는 과정이 매우 단순했다. 하지만 비정형 데이터가 추가되면서 그 과정이 매우 복잡해지고 있다. 비정형 데이터를 정형 데이터로 처리하는 과정에서 데이터세트가 만들어진다고 볼 수 있다. 이 과정에서 분석한 데이터를 분석을 모르는 사람이 쉽게 알아볼 수 있도록 제시해야 하는데, 그 지점에서 시각화 이슈가 나온다. 

'분석한 데이터를 어떻게 보여줄 것인가?'에 대한 고민을 데이터 시각화 전문가들이 풀어줘야 한다. 또한 기존의 데이터 시각화에서는 어떤 데이터를 어떻게 보여줄지만 고민했지만, 요즘은 신사업 발굴까지 요구되고 있다. 따라서 조직 내부의 니즈뿐 아니라, 비즈니스 관점에서 소비자에게까지 어떻게 데이터를 보여줄 것인가에 대한 비전을 제시할 수 있는 역량이 요구되고 있다.





데이터 시각화는 디자인 요소가 크게 강조되지 않는 거 같다.

데이터 분석에서는 멋지게 디자인된 결과를 보는 것보다 니즈에 맞는 데이터를 보는 것이 핵심이다. 현재로선 분석과 시각화한 결과물에 대한 분명한 연결 고리를 만들어주는 방법론이 명확하게 제시된 것이 없는 상태다. 사실 요즘 빅데이터가 주목 받는 이유는 앞서 언급했듯이 새로운 사업을 만들어 보고 싶어서가 아닌가? 하지만 그 요구에 대해 그 누구도 시원한 답을 해주지 못하고 있는 상황이다. 그래서 데이터 분석을 할 만한 사람의 역할도 명확하지 않다. 하지만 빅데이터 분석에서 데이터 시각화 전문가들에게 요구하는 것, 즉 신사업 발굴 니즈를 채워주는 역할의 일부를 하게 되지 않을까 하고 이 분야의 시각화 전문가들은 보고 있다. 왜냐 하면 시각화 전문가는 데이터세트만 보는 것이 아니라, 그 이전/이후까지도 볼 수 있기 때문이다.

 

분석가가 볼 수 없는 영역까지도 볼 수 있는 능력이 요구된다는 말인가.

그렇게 볼 수 있다. 인사이트를 보여 줄 수 있는 것이 곧 시각화 전문가의 능력이고, 얼마나 전문성을 갖췄는지의 척도가 된다. 시각화 전문가는 데이터 분석가와 기업 경영자, 마케팅 담당자들과 소통을 하면서 인사이트를 도출할 수 있도록 도움을 줄 수 있어야 한다.

 

디자인 관점에서 데이터 시각화 전문가에게 필요한 역량은 무엇인가.

기본적으로 데이터 분석 역량의 토대 위에 시각화 원리를 이해하고 있어야 한다. 시각화는 비교적 검 증된 이론적이 서 있는 분야다. 예를 들어, 도넛그래프와 파이그래프를 쓰려면 당위성이 분명해야 한다. 비주얼을 강조하고 싶은 니즈를 수용하려면, 색채학과 타이포그래피를 알아야 한다.

 

현재로선 데이터 시각화 전문가들은 디자인 분야에서 접근한 사람이 더 많지 않은가.

특별히 그렇게 볼 수도 없다. 미국의 경우로 한정해 보자. 앞서 소개한 버락 아리칸은 소프트웨어 개발자 출신임에도 색채를 매우 잘 쓰는 시각화 전문가로 통한다. 또한 데이비드 맥캔들리스(David Mccandless, 『정보는 아름답다』의 저자)는 기자 출신으로서 저널리즘 분야의 데이터 시각화 전문가로 통한다. 그는 분석가도, 개발자도, 디자이너도 아니었는데 데이터 시각화 분야에서 매우 유명하다. 결국 필요에 따라 데이터 분석과 시각화를 배운 경우로 해석할 수 있다.





<그림 1>데이비드 맥캔들리스의 데이터 시각화 작품 (출처: www.informationisbeautiful.net)

디자이너가 프로그래밍을 배우려면 어렵지 않나.

개인적으로 도로공사의 데이터 시각화 프로젝트를 할 때, R 시각화 패키지를 직접 배우면서 수행했다. 새로운 걸 배우는 데 거부감이 없는 사람이라면 데이터 시각화를 하기에 더 유리할 것이다. 시각화를 할 때 타블로나 프로세싱 같은 도구를 필요에 따라 언제든지 적용할 수 있어야 한다. 특히 요즘은 매체에 따라 전달하는 메시지의 느낌도 매우 달라진다. 인쇄, 웹, 앱(애플리케이션), 정적 이미지 등으로 표현할 때마다 적용 기법이 매우 다르다. 결국 다양한 시각화 이론을 소개하는 책이나 영상을 보고 공부할 수밖에 없다. 더불어 데이터 시각화를 공부하면서 데이터 분석을 잘 이해할 수도 있다. 데이터 시각화라는 분명한 목적이 있으므로 데이터 분석을 더 흥미롭게 배울 수 있다.

 

데이터 시각화에 관심을 가진 사람에게 조언을 한다면.

데이터를 분석할 때, 데이터 시각화 전문가도 분석가들이 쓰는 도구와 이를 시각화하기 위한 프로래밍까지 알면, 강력한 무기를 갖춘 것이나 마찬가지가 된다. 특히 빅데이터 시각화에서는 데이터베이스를 실시간으로 연결해서 방대한 양의 데이터를 시각화해 보여 주는 웹이나 모바일 기반의 다양한 시각화 서비스도 출현하고 있다. 따라서 프로그래머로 활동하는 사람이 데이터 분석과 시각화를 공부하면 변화를 수용하는 데 더 유리할 것이다.

 

데이터 시각화 전문가에게도 폭넓은 교양이 필요할 거 같다.

데이터 시각화를 하면서 매우 많은 것을 배우게 된다. 한국도로공사의 데이터 시각화 프로젝트를 진행할 때, 초봄에 찻길 동물사고(roadkill)가 집중되는 것을 알게 됐다. 그 중에서도 이동거리가 짧은 살쾡이 같은 동물의 피해가 높다는 사실을 알게 됐다. 처음에는 이것을 어떻게 해석해야 할지 몰랐다. 이때는 함께 참여한 분석가, 발주처 담당자들과 토론해 그 이유를 찾아내야 한다. 때로는 동물 전문가 등 해당 분야 전문가의 자문이 필요할 수도 있다. 결국 겨울잠에서 깨어난 동물들이 먹이를 찾으러 다니는 시점이 초봄이라는 사실을 알게 됐다. 이런 사실을 알게 되면, 초봄에 해당 동물의 서식지에 먹이를 집중 살포함으로써 동물 사고를 줄이고, 특정 구간은 생태통로를 굳이 설치하지 않아도 된다는 결론을 내릴 수도 있다.





<그림 2> 길 위의 동물들(출처: http://www.slideshare.net/neofuture/animal-40000971)

데이터 시각화를 공부한 학생들의 취업률이 궁금하다.

숙명여대 시각?영상디자인학과의 지난해 졸업생 40명 가운데 4명이 삼성전자 소프트웨어 부문에 입사했고, 전체적으로 80% 이상의 취업률을 기록했다. 소프트웨어 개발도 실무 프로젝트를 성공해 본 사람이 잘 하듯이, 학부 과정에서 앱을 앱스토어에 직접 론칭해 보도록 지도하고 있다. 학생들에 따라 데이터 시각화에서 흥미를 느껴 정보?방송학(신문?방송학)을 복수 전공하는 경우도 있다. 정확하게 시각화 분야의 업무로 취업한 것은 아니지만, 시각화는 모바일과 웹 분야의 취업에 상당히 긍정적 영향을 미칠 수 있다. 시각화 분야 취업을 위해서는 이론뿐 아니라 실무 경험이 있어야 현장에 투입되더라도 잘 적응한다고 본다. (사진 제공: 이지선)

(출처: http://www.dbguide.net, 2015.03.26)

Posted by 글키우는 농부
:

책의 저자, 특히 외서 저자는 특별한 경우가 아니라면 기억하지 못한다. 하지만 한 인터뷰 내용을 보고 "이 사람은 분명 그 책 저자일거야!"하고 검색해 봤는데 역시나… 맞다. 그 책은 바로 「빅 데이터가 만드는 세상: 데이터는 알고 있다」이고, 이 책의 공저자가 바로 옥스퍼드대 인터넷규제학과 빅토르 마이어 쇤버거(Schonberger) 교수다. ▶ 기사로 이동

 

 

▲「빅 데이터가 만드는 세상」 빅토르 마이어 쇤버거, 케네스 쿠키어 저 | 21세기북스

 

결정적 단서가 된 부분은 "빅데이터 시대에는 인과성에서 상관성의 시대로의 전환"이라는 말이었다. 인과성과 상관성? 비슷한 단어라서 처음에는 무슨 차이일까? 하고 고민하던 중 나름대로 결론을 내렸다.

 

그동안 우리가 사회현상을 이해하기 위해 해왔던 접근 방식은 주로 인과성에 근거하고 있다. 즉 특정 이유 때문에 이러이러한 현상이 나타났다고 보는 것이다. 반면 상관성은 A라는 현상이 나타나는 이유를 찾아나서는 대신, "A현상은 B와 관련이 있다. 즉 B 현상이 나타나면 A에서 이런 변화가 있더라" 정도로 풀이할 수 있을 거 같다. 여기서 인과성은 강조되지 않는다. 사회가 복잡해지면서 인과성을 찾아내기가 어려워지면서 빅데이터 분석이 인기를 끌고 있는 점을 볼 때, 꽤 생각할 거리를 제시해 주는 말이다. 다음은 쇤버거 박사가 인터뷰에서 한 말의 한 부분이다.

 

"빅데이터 시대는 우리가 사는 방식에 의문을 던집니다. 그중에서 가장 두드러진 부분은 사회가 '인과성(causality)'에 대한 그동안의 집착을 일부 포기하고 '상관성(correlation)'에 만족해야 할 것이라는 점입니다. 즉 '이유'는 모른 채 '결론'만 알게 됩니다. 이것은 수백년간 이어져 온 관행을 뒤집는 일이며, 우리는 의사 결정 방식이나 현실에 대한 이해 방식을 아주 기초적인 부분부터 다시 생각해야 할지도 모릅니다."

 

▲쇤 버거 박사 (출처: 조선비즈, 성형주 기자)

 

국내 빅데이터 프로젝트 초기에 데이터 사이언티스트의 어려움 가운데 하나가, 현상을 발견했을 때 그 이유를 알려달라는 것이었다고 한다. 그 이유를 분석하는 게 더 어려운 일이 아니었을까 싶다.

 

얼마 전에 만난, 국내에서 꽤 유명한 데이터 사이언티스트는 "미래의 데이터 과학자 가운데 한 명이 바로 이 인과성을 분석해 내는 전문가들일 거"라고 했던 말이 기억에 남는다. 그는 "현재 국내에서 인과성과 상관성을 놓고 고민할 정도의 기업이라면 너무나 해피한 케이스"라고 덧붙였다.

분명 변화는 다가오고 있다는 점이다.

Posted by 글키우는 농부
:

한국데이터베이스진흥원의 '빅데이터 아카데미'에서 빅데이터 분석∙기술 전문가 과정에 이어 [빅데이터 기획 전문가] 과정 수강생을 모집한다. 기획 전문가 과정은 기술 전문가 과정이나 분석 전문가 과정과 연계한 프로그램으로서 빅데이터 사업 기회 발굴과 기획, 관리 능력 배양을 목표로 운영된다. 
다음은 DBguide.net에 공고된 빅데이터 기획 전문가 과정 안내 자료이다.

 

빅데이터 기획 전문가

교육 목표
빅데이터에 대한 다양한 시각과 기술·분석 방법론, 활용 환경에 대한 이해를 바탕으로 빅데이터 사업의 기회 발굴, 기획, 관리 능력 배양

 

교육 대상
민간기업, 중앙 정부 및 지자체, 공공기관 등에 소속되어 사업 발굴, 관리를 담당하고 있는 사업 기획, 관리 실무자 또는 책임자

 

선발 기준
빅데이터 관련 프로젝트를 계획·예정 중인 사업 담당자

 

정원
기수별 15명 등 총 30명

 

운영 프로세스


※ 빅데이터아카데미 분석∙기술 전문가 과정과 연계하여 3단계를 통해 도출된 '프로젝트 기획안'의 개념 검증(PoC) 등 확장 추진 가능

1기 교육 일정 (2015년 6월 8일~7월 3일)

구분

일자

기간

온라인 사전교육

2015.06.08(월) ~ 06.12(금)

1주

집체 교육

2015.06.16(화) ~ 06.18(목)

1주

파일럿 프로젝트 (선택적)

2015.06.22(월) ~ 07.03(금)

2주

※ '빅데이터 프로젝트 기획안'의 개념 검증 진행시에는 4주 추가(2015년 7월 18일~8월 13일)


2기 교육 일정 (2015년 8월 24일~9월 18일)

구분

일자

기간

온라인 사전교육

2015.08.24(월) ~ 08.28(금)

1주

집체 교육

2015.09.02(수) ~ 09.04(금)

1주

파일럿 프로젝트 (선택적)

2015.09.07(월) ~ 09.18(금)

2주

※'빅데이터 프로젝트 기획안'의 개념 검증 진행시에는 4주 추가(2015년 9월 21일~10월 22일)
※상기 교육일정은 사정에 따라 변동될 수 있습니다.

 

교육 커리큘럼

단계

과목명

상세 내용

기간

1단계
사전교육

온라인 교육

  • 데이터 사이언티스트의 현실과 미래
  • 2014 빅데이터 아카데미 사례 발표회
  • 데이터 처리·분석과 비즈니스 인사이트

1주

2단계
집체교육

빅데이터를 보는 시각 (7H)

  • 빅데이터의 다양한 정의, 시각차에 따른 주요 이슈
  • 민간/공공의 빅데이터 활용 차이, 시사점
  • 빅데이터의 한계
  • 빅데이터 프로젝트 사례
  • 빅데이터 거버넌스

1주

빅데이터 활용의 기술, 분석 환경 (10H)

  • 빅데이터 활용 환경
  • 빅데이터 프로젝트 방법론
  • 빅데이터 분석, 데모 시연
  • 빅데이터 기술, 데모 시연
  • 관련 기업 도메인(솔루션, 컨설팅 등)

프로젝트 기획 구현(4H)

    과제 발굴 및 구체화, 정의
  • 빅데이터 프로젝트 기획안의 구성과 작성

3단계
파일럿 프로젝트(선택적)

빅데이터프로젝트 기획 멘토링 및 개념 검증

  • 집체교육을 기반으로 '프로젝트 기획안' 작성 실습 및 멘토링

2주

※ 빅데이터아카데미 분석기술 전문가 과정과 연계하여 3단계를 통해 도출된 '프로젝트 기획안'의 개념 검증 등 확장 추진 가능
※ 상기 교육과정은 사정에 따라 변동될 수 있습니다.


교육 장소 : 한국데이터베이스진흥원


  • 주소 : 서울시 종로구 종로51 종로타워 19층 한국데이터베이스진흥원 (우) 110 – 789
  • 대표전화 : 02) 3708 – 5386
  • 찾아오시는 길
    버스 : 0014, 0212, 160, 161, 200, 260, 270, 271, 370, 471, 601, 7018, 9701, 9705, 9301 종로2가 종각역 정류장
    지하철 1호선 : 종각역 3번출구 종로타워 19층
    지하철 2호선 : 을지로입구역 2번출구 종각역 방향 종로타워 19층
    지하철 5호선 : 광화문역 5번출구 종각역 방향 종로타워 19층   
    (출처: http://www.dbguide.net)


Posted by 글키우는 농부
:


이 연재는 분석시대가 도래했음에도 우리는 과거 데이터 저장-검색시대의 방법으로 데이터를 바라보고 관리하고는 있지 않은가에서 시작한다. △데이터의 단순 입출력의 편리성을 강조한 저장시대 △데이터의 정합성 및 검색의 용이성을 강조한 검색시대 △마지막으로 데이터베이스 내부의 데이터가 스스로 유기체의 성질로 변형되어 생명력이 존재하는 분석시대로 구분해 시기마다 데이터를 바라보는 관점이 다르고 관리하는 방법에서도 차이가 있음을 알아보고, 새로운 시각과 방법으로 데이터를 바라봐야 하는 이유, 어떤 변화가 필요한지를 독자와 함께 도출해 본다.

 

[연재순서]

1회: 분석시대의 탈구조적 데이터 모델링; 엔터티 해체 속성의 재결합
2회: 속성 고찰을 통한 엔터티의 분류(상)
3회: 속성 고찰을 통한 엔터티의 분류(하)
4회: 엔터티의 해체 그리고 속성의 재결합
5회: ICT 플랫폼 구축 사례를 통해 본 탈 구조적 모델링 방법

 

글: 이강욱 리안주식회사 수석 데이터 사이언티스트 allomyrina@gmail.com

 

어느덧 본 연재의 마지막 회까지 오게 되었다. 처음 필자는 기존 모델링의 패러다임에서 벗어난 새로운 패러다임을 함께 생각해 보고자 연재를 시작했다. 저장-검색시대의 모델링 방법론에서 벗어나 데이터의 이용이 아닌, 활용의 관점에서 어떻게 모델링을 할 것인가를 알아보기 위해 엔터티와 속성에 대한 기존 방법론들이 가지고 있는 사상을 고찰해 봤다. 더불어 개발자들은 어떤 시선으로 이들을 바라보는지에 대해 함께 생각해 보았다. 이제 마지막으로 필자가 참여한 프로젝트 사례를 통해 새로운 모델링 방법론이 어떻게 적용 되었는지 알아보자.

 

 

'유종의 미'

연재 처음에 바흐의 골드베르그 변주곡을 언급한 적이 있었다, 아리아에서 시작해서 다시 아리아로 끝나는 32개의 변주로 이루어진 아주 아름다운 곡이라고. 연재의 마지막에 다시 아리아로 끝나는 골드베르그의 변주곡을 언급하는 것이 필자가 글을 마치는 합리적인 유비라는 생각이 들었다. 우리가 하는 모든 일들이 아름답게 끝나려면 처음 계획한 목적에 맞는 일관성을 가져야 할 것이다.

 

처음 너무 거창하게 데이터에 대한 패러다임을 바꾸고자 하는 목표를 세웠지만 패러다임을 바꾼다기보다 새로운 패러다임을 추가하자는 말이 맞을 것 같다. 저장 → 검색 → 분석까지 데이터의 활용에 대한 측면은 기실 시대에 따라 변화한 것이 아니고, 단지 시대별로 중요한 부분에 대한 방점이 찍힌 것일 뿐이지 데이터의 본질상 이 세 가지는(물론 여러가지 데이터를 바라보는 시각이 더 존재 할 수 있지만) 항상 공존하고 있었다.

 

음악이 아름다운 것은 조화에 있다. 조화는 같은 주제를 가진 것들이 서로 어우러져 아름다움을 향해 나가는 여정 중에 존재한다. 그 여정 중에 주연이 있고 조연이 있을 수 있지만, 우리 몸이 수많은 세포와 또 기관으로 이루어져 제 기능을 담당하듯 어느 특정 부분만 스포트 라이트를 받는 다고 해서 나머지가 무시 된다면 그건 일 순간의 현상일 뿐 존재로서의 본질은 아닐 것이다. 필자가 이제까지 엔터티를 해부하고 속성에 대해 다시 고찰하고자 했던 것은 데이터 존재에 대한 본질의 문제가 아니라 바라보는 시각의 다양화에 관한 문제였다. 이제 다시 아리아로 돌아와서 필자가 경험했던 프로젝트의 사례를 중심으로 마지막 아리아를 연주해 보겠다.

 

 

곰 팀장: 여러분 지금 하는 프로젝트에 대해 오늘 다시 한 번 점검해 보도록 하죠. 끼 차장님 프로젝트에 대해 개략적으로 말씀해 주세요.

끼 차장: 우리 프로젝트에 대해 말씀 드리면 사업기간은 20XX년 X월부터 20XX년 X월 까지 6개월이며 총 사업비 XXX,XXX,XXX원으로 현재 분석단계 X주차에 있습니다. 이슈 사항으로는 안정화까지 인력에 대한 사업비용에 대한 대책을 마련해야 할 것 같습니다.

곰 팀장: 끼 차장님 사업관리 부분 말고 프로젝트 전반적인 개요 말씀해 주세요. 제가 알고 싶은 건 우리팀 전체가 이번 프로젝트에 대해 얼마나 이해 했냐 하는 것이 거든요. 프로젝트의 사업개요 말고요. 

끼 차장: 팀장님 말씀은 한 번에 알아듣기 어렵습니다. 매번 먼저 얘기 한 게 팀장님 생각이랑 다르니 자꾸 주눅이 드네요 질문 먼저 하지 마시고 팀장님이 뭔가 말을 풀어 주세요 그 다음에 저희가 거기에 맞게 대응 할게요.

곰 팀장: 끼 차장님 죄송해요 제가 남들 틀리는 걸 보면 희열을 느끼거나 그런 성격은 아닌데 제가 매번 묻는 이유가 왜냐 하면요 그건 제 생각을 한 번 더 생각해서 습득하라는 거에요 예전에 대통령 중에 코드인사 때문에 많이 회자 된 경우가 있었죠? 저는 서로 코드를 맞추는 것이 중요하다고 생각해요 그렇게 하는 것이 서로 의사소통에 시간을 줄일 수 있고 업무 능률 향상에도 아주 중요한 요소라고 생각하거든요. 끼 차장님은 지금 의기소침해 계시니까 양 과장님이 우리 프로젝트가 뭐하는 건지 대략 말씀해 주세요.

양 과장: 저랑 팀장님은 전형적인 코드인사라 그런 말씀하시는 거에요? 그럼 실망시키지 않기 위해 잘 말해야겠네요. 우리가 하는 프로젝트를 설명 드리자면 30여개 되는 기관에서 발생한 데이터를 수집해서 콘텐츠화하여 저장하고 그리고 서비스 하는 거에요.

곰 팀장: 그럼, 우리가 하는 일이 DataWare House를 구축하는 건가요?

양 과장: 네 맞아요

곰 팀장: 우리 프로젝트 이름이 뭐지요, 우 대리님?

우 대리: ICT 통합플랫폼 구축 사업이요.

곰 팀장: 그럼 우리가 하고 있는 사업이 DW 사업은 아니 잖아요. 혹시 무슨 차이점이 있는지 아세요, 양 과장님?

우 대리: 듣고 보니까 그러네요. 전 수집 → 적재 → 서비스라 당연히 DW 사업인줄 알았는데, 차이점은 데이터마트가 없고 DB 구조가 StarSchema 구조가 아닌 게 이상했어요. 팀장님이 자세히 좀 설명해 주세요.

곰 팀장: 네. 제가 개략적으로 말씀 드리자면 우리 사업은 대내외에 흩어져 있는 데이터를 수집해서 공공 데이터로서 서비스하기 의한 플랫폼을 구축하는 사업이고요. DW와의 차이점은 DW의 데이터 구조는 팩트 테이블을 중심으로 디멘젼이 펼쳐진 스타스키마 구조지만, 우리는 그게 없이 콘텐츠의 표준을 정해 콘텐츠로 모든 데이터가 들어오도록 구현할 거에요 그리고 수집대상이 가변적이에요. 지금 40여 개 기관이라고 했지만, 40여 개 기관이 고정되어 있는 게 아니라 추가될 수도 있고 서비스를 내보내는 방식도 추가 되거나 바뀔 수 있도록 구현해야 되는 게 문제에요. 그래서 모든 것을 수용할 수 있도록 만들어 내는 게 이번 우리의 숙제에요. 개략적인 그림은 다음과 같아요. 


<그림 1>

 

프로젝트 배경

정부 3.0은 현 정부의 국정지표로서 국민과 양방향으로 소통하고, 국정에 적극 참여하는 것이다. 이를 위해 우선 공공기관이 직무상 전자적 방식으로 처리∙작성∙처리∙작성∙취득해 관리하는 모든 종류의 데이터를 민간에 제공하는 '공공 데이터 개방'을 적극 추진중이다(법/제도 보완, 지원센터 설립 등).

 

하지만 웹의 'Open Data Barometer(2013. 10. 31) 보고서에 따르면, 공공 데이터 개방에 대한 체계적인 정책 수립 및 의지 지표를 나타내는 준비도(77.19)는 상대적으로 매우 높게 나타났다. 반면 개방 정도 및 품질, 민간 활용 효과(24.56) 지표는 상대적으로 취약한 구조다.

이에 따라 정보화진흥원 등은 공공 정보개방을 위한 품질 지원 센터 개소와 데이터 품질 개선 지원 사업을 통한 지원을 추진하여 2017년까지 파급효과가 큰 기상ˑ교통 등 15개 전략 분야를 선정, 집중적으로 개방을 추진하여 단계적으로 공공 데이터의 60%를 개방한다는 계획이다(정보화 진흥원).

 

정부 3.0은 기존의 전자정부 2.0과 비교하여 볼 때, 국민에게 필요한 정보를 제공하는 것이 아니라 데이터를 제공함으로써 국민을 정보 소비자로 보는 것이 아닌, 데이터를 활용한 부가가치를 생산하는 적극적 참여자 또는 이해관계자로 변화되고 있다. 또한 정부의 역할 역시 민간의 창의적인 아이디어를 활용하여 여러 개방되는 공공 데이터가 서로 결합되고 민간 데이터와 융합됨으로써 부가가치를 창출할 수 있도록 지원하는 서비스 제공자가 아닌 플랫폼 제공자로서의 정부로 변화 되고 있다. 공공 데이터 개방 플랫폼 기술 개발의 핵심은 다양한 원천 데이터와 이해관계자, 그리고 불특정 다수의 공공 데이터 사용자의 요구를 만족 시킬 수 있는 보편적이고 유연한 데이터 모델과 이를 자유롭게 활용할 수 있는 API 구조에 있다. 하지만 현 실태는 행정기관이나 공공기관이 개별적으로 공공 데이터를 개방하기 위한 기반 플랫폼 기술을 구축하도록 함으로써 홈페이지 등에 통계정보 등 제한적 데이터만을 기존 서비스와 차별 없이 제공하고 있다. 본 개발 기술은 국내 2100여 개 공공기관이 공공 데이터를 개방할 때 필요한 개방데이터의 수집, 통합 데이터 모델, 개방 API에 관한 통합 패키지를 개발하는 것이다.

 

문제점 및 개선 방안

기존 공공 데이터 개방을 위해서는 홈페이지 등의 게시판 기능을 활용하여 데이터 세트를 첨부파일 형태로 단순 제공함으로써 데이터 간의 정합성 및 일관성 보장이 힘든 상태다. 또한 정부 3.0의 '국민과 양방향 의사소통과 민간의 부가가치 증대'를 위한 취지에도 맞지 않다. 하지만 모델 기반의 데이터 제공 서비스를 구축하기 위한 기존 데이터 통합과 정보 서비스 구축 방법은 특정 정보서비스 제공을 위해 구축되므로 어떠한 목적으로 활용될지 알 수 없거나 다수의 공공기관이나 민간기업과의 데이터와 결합되어야 하는 경우에 적합하지 않다. 또한 공공기관의 업무나 개방 데이터 범위가 지속적으로 변화하는 공공업무의 특성상 기존의 정보서비스 구축 방법으로는 변화를 수용하면서 국민의 참여 요구를 수용할 수 있는 유연한 서비스 구조를 가질 수 없다. 따라서 개방용 서비스를 구축하는 경우 이를 수정하거나 변경하는 데 더 많은 노력이 드는 단점을 가지고 있다. 이를 개선하기 위해서는 정보 아키텍처상 유연한 데이터 모델이 반드시 필요하다. 또한 데이터 모델을 기반으로 동적으로 데이터를 액세스하고 서비스를 제공하는 동적 정보 서비스 구조를 기반으로 해야 한다.

 

곰 팀장: 이제 우리가 하려는 사업이 대략 어떤 것인 줄 알겠죠? 우리가 하려는 건 변화에 대응하여 모델의 변화 없이 플랫폼이 유연하도록 구축하는 거예요 그래서 우리가 DW에서 하던 모델링 방법이랑은 차이가 있을 거예요.

강 사원: 네. 팀장님 제가 수집 쪽을 맡고 있는데 구체적으로 어떻게 수집해야 되는지 알려주세요 수집 쪽 데이터 모델은 어떻게 하나요?

곰 팀장: 강 사원님, 어려운 건 어떤 건가요?

강 사원: 일단 전 수집하는 DB에 접속하거나 해서 구현 하면 될 것 같은데, 수집 쪽에서 어떻게 가져 와야 할지 모르겠어요. DBMS마다 다 종류가 다른데 그냥 파일로 만들어서 우리 DB에 넣어야 되는 건지 그러면 우리 데이터 모델을 어떻게 설계해야 할지 막막해요. 저번에 Key-Value로 매핑시켜서 가져오라고 하셨는데 그럼 우리는 그렇게 설계해야 하는가 해서요.

곰 팀장: 다 설명하기는 힘드니까 개념만 설명 드릴게요. 일단 Key-Value 형태로 가져와야 하는 건 맞고요 수집은 항상 적재할 DB에 매핑이 되어서 들어가니까 통합 DB를 ID 형태로 같이 가지고 와야 돼요. 구성도를 보면서 우리 수집 시스템의 특징을 설명해 드릴게요.

 



 











<그림 2>


수집

DATA의 수집(Extract)은 가장 작은 단위인 수집대상 사이트로 나누며 이는 기존(Legacy) 시스템의 사이트와는 구분된다. 즉 수집대상 사이트는 하나의 기존 시스템에서 한 개 이상의 테이블의 일부 혹은 두 개 이상의 테이블이 조인된 형태로 구성된다. 또한 기존 시스템의 DBMS에 대한 종속을 피하기 위하여 다양한 접속방법을 제공한다.

 

수집 사이트 생성

수집 대상이 되는 사이트의 기본 정보를 입력하고 저장하는 기능을 수행한다. 수집을 위한 가장 기본이 되는 정보 이므로 필수 사항만 등록하도록 구성하며 원스톱으로 업무가 처리될 수 있도록 기능을 개발한다.

 

<표 1> 기능

순번

기능명

기능설명

1

서비스명 입력

수집대상이 되는 사이트에서 수집되는 데이터의 세트 표시

2

URL 입력

수집대상의 호스트 주소 혹은 구분되는 도메인명 입력

3

정보 입력

수집하는 담당자, 연락처 등 기타 정보 입력

4

주기 입력

수집주기를 연월일시 단위로 입력

5

수집대상 DB 등록

수집대상이 되는 DBMS의 종류, 접속정보, 접속방법 등록

 








<그림 3> 화면 구성

 

수집 사이트 관리

수집 사이트 생성 후 사이트를 활성화하면, 수집대상 DBMS의 정보 중 테이블의 물리명, 논리명, 컬럼명, 컬럼 한글명, 데이터 타입, 데이터 크기 등 기본적인 카탈로그 정보가 개방형 수집∙적재 관리도구가 위치한 수집서버에 자동으로 저장된다. 또한 수집대상의 DBMS의 형상 정보가 변경 되었을 경우, 모니터링 기능을 통해 변경된 형상항목에 대해 이력을 관리하고 수집된 데이터 또한 이력으로 관리할 수 있도록 하여 DBMS의 정합성을 보장할 수 있도록 구현한다.

 

<표 2> 기능

순번

기능명

기능설명

1

테이블조회

소스DB의 테이블을 조회

2

테이블설명입력

테이블 논리명 입력/수정

3

데이터조회

소스DB의 데이터 조회

4

수집선택

수집대상 여부 선택

5

코드선택

코드 데이터 여부 선택

6

분류선택

데이터의 분류선택

7

파일여부선택

파일에 관련된 테이블 여부 선택

8

컬럼설명입력

컬럼 논리명 입력/수정

9

컬럼분류선택

컬럼의 분류 선택

 











<그림 4> 화면구성


데이터 관리(Transform)

수집 데이터는 소스 DB로부터 테이블 → 컬럼 단위로 1:1 매핑 혹은 테이블간의 조인되는 데이터형태로 데이터 셋을 수집하게 되며 이는 개방형 데이터 거버넌스 관리도구에서 관리 가능한 형태로 가공되며 소스 DB에서 정보를 가지고 있는 Raw File(문서, 동영상)들은 오브젝트의 형태로 수집하여 관리할 수 있도록 구현한다.

 

수집 데이터 관리

수집데이터는 수집 대상의 테이블간 1:1 혹은 1:N의 조인 조건이 포함된 테이블의 데이터까지 수집 가능 하도록 구현하며 수집 테이블의 구조에 영향을 받지 않기 위하여 KEY-VALUE 형태로 수집 하도록 구현한다.

 

<표 4> 기능

순번

기능명

기능설명

1

1:1분류선택

1:1 분류선택시 통합모델의 컬럼과 1:1로 매핑된다

2

조인분류선택

조인분류선택시 조인 화면에서 테이블을 구성할 수 있다

3

조인명입력

생성하고자 하는 조인명을 입력한다

4

테이블선택

조인될 테이블을 선택한다

5

조인컬럼선택

조인될 테이블들 간의 조인키가 되는 컬럼을 선택한다

6

조인테스트

조인시 가져오는 데이터의 개수를 확인하여 테스트를 수행한다

7

테이블매핑

조인된 뷰와 통합모델의 컬럼과 매핑한다.

 














<그림 5> 화면 구성

 

오브젝트 관리

오브젝트는 정보시스템에서 관리 되는 Raw File을 총칭하며 본 시스템에서는 공유와 개방을 위해 서비스 가능한 형태인 각종 포맷의 문서와 미디어 파일을 오브젝트의 개념으로 관리 가능하도록 구현한다.

 

<표 4> 기능

순번

기능명

기능 설명

1

수집방법 구분

FTP, HTTP 등 수집을 위한 프로토클 설정

2

파일테이블 구분

파일 보유, 파일 참조, 파일 테이블 등의 구분

3

파일수집 형태

파일명, 경로명, 파일 제목의 조합으로 입력

4

파일 경로

경로 직접 입력

5

수집정보 입력

파일을 수집하기 위한 기본 접속 정보 입력








<그림 6> 화면 구성

 


강 사원: 네. 개략적으로 어떻게 구성해야 될지는 알겠어요.

우 대리: 그런데 팀장님 이렇게 구현 하는 것이 어떤 장점이 있죠?

곰 팀장: 첫 번째로는요. 특별한 DBMS의 지식이 없어도 쉽게 ETL의 주요 기능인 수집설정이 가능하고요 두 번째 JDBC, ODBC, DBLINK 등 가능한 모든 접속방법을 제공함으로 수집 대상에 대한 별도의 서드파티에 대한 지원이나 별도의 커스터마이징이 필요 없다는 것이 고객입장에서 보면 가장 큰 장점 같아요.

끼 차장: 그거야 웹으로 하는 이유가 그런 장점 때문에 하는 거니까 WEB의 장점이지 우리 모델의 장점이라고 할 수 없잖아요.

곰 팀장: 차장님 말씀이 맞아요. 제가 좀 궁색했네요 그런데 우리 모델의 장점은 데이터 수집시 수집 컬럼과 데이터를 각각 Key-Value 형태로 수집하므로 수집 대상 테이블의 컬럼과 데이터 타입에 영향을 받지 않고 소스 테이블(Legacy)과 타긱 테이블간(통합DB)에 1:1 관계만 지원하는 것이 아니라 소스 테이블내에서 Join된 결과를 가져 올 수 있어 수집서버 내에서 별도의 테이블 작업이 필요하지 않다는 것이 가장 큰 차이점 같네요.

우 대리; 팀장님 제가 담당하고 있는 적재서버 관리 쪽도 강 사원에게 설명했듯이 자세히 설명해 주세요

곰 팀장: 네. 어차피 설명하려고 했어요 업무 흐름은 수집 → 적재 → 서비스지만 세 개 시스템이 제대로 돌아가야 되는 거니까 말 나온 김에 오늘 다 설명해 드리죠.

 


적재 데이터 관리

수집된 데이터는 프로시져를 통해 적재되며, 적재된 데이터는 분류별로 조회하거나, 수정할 수 있도록 구현한다. 수집 관리 도구를 통해 분류, 검증, 보안 점검등이 처리된 데이터를 통합 DB 서버 및 파일 시스템으로 전송해 서비스하도록 구현한다.

 

<표 5> 기능

순번

기능명

기능설명

1

적재 테이블 조회

메타 테이블을 조회

2

적재 컬럼 조회

메타 컬럼 조회

3

적재 데이터 조회

적재 된 테이블의 데이터 조회

4

적재 데이터 관리

적재 데이터의 수정 및 삭제

 









<그림 7> 화면 구성

 

개방용 데이터 거버넌스 관리 도

정보 시스템의 각 기존(Legacy) 시스템으로부터 수집한 데이터를 관리하고 서비스하기 위하여 개방용 데이터를 거버닝하고 서비스하는 관리 도구를 개발한다. 개발시 고려사항은 본 프로젝트의 핵심 내용인 개방형 모델을 확장∙수용할 수 있도록 개방형 모델의 코어 정보를 담고 있는 메타 영역과 데이터를 관리하는 서비스 영역, 그리고 실제 데이터가 구성되는 데이터 영역을 관리하는 기능을 구현한다.

 

메타 데이터 관리 도구

메타 데이터는 개방형 모델을 관리하기 위한 핵심 데이터다. 모델의 구조가 정확히 구현되도록 가장 상위의 객체로 메타클래스를 정의하고, 메타 클래스 하나하나는 동등한 레벨에서 관리되는 논리항목의 최상위 객체다. 메타 클래스에 등록된 각각의 항목은 그 종류에 따라 논리 테이블에 해당하는 메타 엔터티, 메타 어트리뷰트로 구성된다. 물리모델에 해당하는 메타 테이블, 메타 컬럼으로 구성한다. 또한 메타 아이템, 메타 오브젝트를 두어 오브젝트는 물리적 파일을 관리하고 아이템은 각종 제약 조건을 설정하도록 구현한다.

 












<그림 8> 화면 구성

 

곰 팀장: 휴. 이제 거의 다 설명한 것 같네요. 프로젝트 시작 단계니까 이 정도만 설명해 드리고, 구체적인 것은 차차 진행하면서 구현해 보도록 하죠.

양 과장: 팀장님, 구현에 대한 개략적인 내용은 거의 숙지한 것 같아요. 오늘 회의는 너무 일에 관한 것들이라 좀 지루하긴 했어요. 마지막으로 하나만 질문드릴게요. 팀장님께서 말씀하신 것 중에 탈 구조적이라는 말이 아직 잘 감이 안 잡혀서요 우리 모델에 적용된 탈 구조적 모델링은 무엇일까 궁금해요.

곰 팀장: 양 과장님 말씀 잘 하셨어요. 제가 이번 프로젝트에서 주장하는 탈 구조적이라는 모델링에 대해 이제 정의를 스스로에게라도 내려야 할 것 같네요.

 


탈구조적 모델링

전통적 모델링은 정보 시스템 환경에 커스터마이징 된 형태의 엔터티와 속성을 가지고 있다. 금번 프로젝트에서는 서로 다른 환경에서 들어오는 데이터를 하나의 통합 환경에서 서비스 해야만 했다. 프로젝트를 수행하면서 가장 큰 문제는 통합의 이슈였다. 각각 시스템에서 정의하고 있는 엔터티와 속성을 통합하려면, 기존 모델링 방법으로는 해결이 불가능한 현실이었다. 예를 들면, 어떤 시스템에서는 "이름"이라는 속성을 사용하고, 다른 시스템에서는 "제목"이라는 속성을 사용하지만 둘의 의미는 동일한 것을 나타내고 있었다. 그때 떠오르는 힌트가 들뢰즈의 『천개의 고원』이라는 책이었다. 입을 우리는 엔터티라고 보고 먹는 엔터티, 말하는 엔터티, 키스하는 엔터티 이렇게 나눈 건 아닌가? 하는 생각이 들었다. 하지만 들뢰즈의 사상은 입은 그냥 존재로서 입이고, 입이 위와 만나면 먹는 엔터티, 혀와 폐가 만나면 말하는 엔터티, 그리고 서로 사랑하는 존재의 입과 만나면 키스하는 엔터티가 될지 모른다는 생각을 하게 되었다. 그래서 입이 가지고 있는 존재로서의 본질을 파악하고, 기능으로서의 다른 존재와 만났을 경우 엔터티가 정의되는 것으로 엔터티의 패러다임을 변화 시키면 어떨까 하고 생각하였다. 금번 프로젝트에서는 ISO-2146 구조와 더블린코어 Element를 적용하였다.

 <그림 9> 더블린코어 구조

 

더블린코어는 정보 자원에 대한 광범위한 표준을 담고 있으며, element set, ther element, encoding schema의 세 부분으로 정의된다.

 

<그림 10> ISO-2146 구조


ISO 2146은 연구에 필요한 수집, 파티, 활동 및 서비스 정보를 제공하기 위해 네트워크 환경에서 작동하는 레지스트리에 대한 규칙을 정의하고 있다.

 

<그림 11> 프로젝트 개념 모델

 

 

글을 마치며

부족한 글을 읽어주신 분들께 감사한 마음을 가지고 글을 마무리 지으려 한다. 서두에 밝혔듯이 '유종의 미'라는 말은 우리 처럼 IT를 하는 사람들에게는 꼭 곱씹어야 할 같다. 필자의 경험에서 프로젝트를 진행하는 동안 수많은 충돌도 있고 또 서로 원수 지간이 되는 경우도 있다. 하지만 프로젝트가 막상 성공적으로 끝나면 그동안의 원수도 서로 웃으며 친구가 되지만, 아무리 서로 사이가 좋던 관계라도 프로젝트를 망치게 되면 서로 소원한 관계가 되는 것을 많이 본다. 우리처럼 프로젝트 단위로 묶여 일하게 되는 사람들에게는 시작과 끝의 라이프 사이클이 짧다 보니 무엇보다 끝이 중요하다. 모두 지금 하고 계신 일에서 좋은 마무리가 있기를 기대하며, 다시 한 번 부족한 글을 읽어 주신 분들께 감사로 인사를 대신하고자 한다. (끝)

Posted by 글키우는 농부
:


이 연재는 분석시대가 도래했음에도 우리는 과거 데이터 저장-검색시대의 방법으로 데이터를 바라보고 관리하고는 있지 않은가에서 시작한다. △데이터의 단순 입출력의 편리성을 강조한 저장시대 △데이터의 정합성 및 검색의 용이성을 강조한 검색시대 △마지막으로 데이터베이스 내부의 데이터가 스스로 유기체의 성질로 변형되어 생명력이 존재하는 분석시대로 구분해 시기마다 데이터를 바라보는 관점이 다르고 관리하는 방법에서도 차이가 있음을 알아보고, 새로운 시각과 방법으로 데이터를 바라봐야 하는 이유, 어떤 변화가 필요한지를 독자와 함께 도출해 본다.

 

[연재순서]

1회: 분석시대의 탈구조적 데이터 모델링; 엔터티 해체 속성의 재결합
2회: 속성 고찰을 통한 엔터티의 분류(상)
3회: 속성 고찰을 통한 엔터티의 분류(하)
4회: 엔터티의 해체 그리고 속성의 재결합
5회: ICT 플랫폼 구축 사례를 통해 본 탈구조적 모델링 방법

 

글: 이강욱 리안주식회사 수석 데이터 사이언티스트 allomyrina@gmail.com


정보시스템은 초기 업무 효율성을 향상 시키는 목적에서 좀 더 발전하여 다양한 기관과 시민 단체, 이해 당사자들이 직접 참여하는 e-Democracy 형태로 변화되고 있다. 참여자가 많아지면 요구사항에 대해 미리 대처해야 한다. 더불어 가까운 미래에 대한 예측을 위해 데이터 분석은 반드시 요구된다. 기존 모델링은 이와 같은 상호협력적 정보시스템의 구조에는 종종 맞지 않는 듯 보인다. 따라서 엔터티를 바라보는 새로운 패러다임이 필요해 지난 회까지 속성의 실체에 더 가까이 가서 속성의 고찰을 통한 엔터티의 새로운 분류에 대해 알아 보았다. 이번 회에는 해체된 엔터티에서 도출된 속성이 어떻게 재조합되어 새로운 엔터티로 생성되는가에 대하여 알아보고자 한다.

 

 

'아빠는 슈퍼맨'

요즘 포탈 사이트에 들어가보면 심심찮게 '아빠는 슈퍼맨'이라는 문구가 눈에 들어온다. 뭐 그다지 포탈에 많이 노출되지 않았을지라도 필자의 뇌리에 많이 남아있어서인지 마음 한 구석에서 계속 떠오르는 문구다. TV에서 방영되는 예능 프로그램 중 하나라는 사실은 나중에 알게 되었다.

 

추억 속의 슈퍼맨은 어떤 어려움도 이기고 불가능을 가능하게 해주는 영웅의 캐릭터로 각인되어 있다. 아직 세상을 알지 못하는 아이들에게는 아빠라는 존재가 아마 슈퍼맨과 동화된다고 생각하니 '아빠는 슈퍼맨'이라는 작명 센스가 돋보인다. 필자도 물론 공감하며 요즘 뼈저리게 느끼고 있다. 사물의 이치를 어느 정도 파악하면서 허무맹랑한 요구를 하지는 않지만, 요즘들어 필자의 어린 아이도 부쩍 갖고 싶은 게 많은 때다 보니 눈에 보이고 자기가 원하는 것은 요구만 하면 다 되는 줄 안다.

 

아빠가 손만 대면 금을 만들어 내는 사람인줄 아냐고 투덜댈 때도 있지만, 아이들은 개의치 않고 자신의 목적만 주장한다. 이럴 때면 정말로 내가 마이다스처럼 손만 대면 모든 것을 금으로 바꿀 수 있거나 연금술의 비밀을 밝혀 집에서 어떤 물질이든 금으로 만들 수 있었으면 하는 생각을 하게 된다. 그러다 왜 중세에 연금술이 유행했는지 심지어 인류 최고의 지성 중 하나라 꼽히는 뉴턴까지 연금술에 몰두하게 되었는지 궁금했다.

 

곰 팀장: 이제 프로젝트도 끝나고 다들 한가하시죠? 우리 같은 IT 업계 사람들은 좀 한가할 때 책도 읽고 자신을 좀더 업그레이드하는 준비 기간이 필요해요. 다들 요즘은 어떻게 하면서 시간을 보내고 계시나요?

끼 차장: 한가하긴요. 문서 보완해서 다시 제출해야죠. 전 요즘이 더 바쁜 거 같아요.

양 과장: 저도 프로젝트 때문에 못한 집안 일이 많이 밀려 있어서 오히려 칼 퇴근해도 더 바쁘네요

우 대리: 팀장님은 매번 시간 있을 때 책도 읽고 공부 좀 하라고 하지만 시간이 여유가 생겨도 다른 일이 생겨 짬이 잘 안 나네요.

강 사원: 전 작년처럼 또 여름 휴가 못 가고 새로 프로젝트 진행 될까 봐 걱정이네요. 데이트는 고사하고 데이트할 여자친구 사귈 시간도 없으니 원.

곰 팀장: 프로젝트가 끝나서 다들 요즘 일찍 퇴근들 하느라 한가한 줄 알았더니 나름대로 모두 고민이 있었네요 하지만 우리 말고도 다른 분야 에서 일하는 분들도 마찬가지의 고충이 있으니 힘들더라도 긍정적으로 생각하고 일하시는 게 어때요?

양 과장: 저번에 팀장님께서 말씀하셨던 화수분이라도 있으면 좋겠어요.

곰 팀장: 연금술은 어때요?

양 과장: 연금술은 무한동력처럼 비과학적인 거 아녜요?

곰 팀장: 여러분들은 연금술에 대해 어떻게 생각하세요? 긍정 혹은 부정?

끼 차장: 당연히 부정이죠. 암흑의 중세역사의 상징하면 흑사병, 마녀사냥, 연금술 이렇게 꼽잖아요

곰 팀장: 그럼 연금술사 이미지는 어때요?

강 사원: 두컴컴한 연구실에서 일하는 미치광이, 아니면 판타지 소설에 나오는 마법사 같은 이미지인데요.

우 대리: 전 긍정적 이미지에요. 연금술이 비록 비논리적인 생각이었지만, 연금술을 통해서 많은 학문적 업적들이 나왔다고 배웠는 걸요.

양 과장: 그래, 맞아요. 비록 비논리적인 일이라고 해도 역사에 끼친 부정적인 면만 바라 볼 건 아닌 거 같아요. 연금술사 이미지는 좀 부정적이지만, 연금술은 긍정적인 면이 더 많은 거 같아요.

끼 차장: 연금술사는 중세 암흑의 상징이라니까요. 탐욕이 사람의 논리적 사고를 막은 거죠.

곰 팀장: 여러분들의 연금술사의 이미지에 대한 결론을 요약하면 다음과 같겠네요. 비록 연금술이 그 과정상 많은 학문적 업적을 이루었다고 해도 탐욕에 눈이 멀어 비논리적 일을 행했던 사람 맞죠?

우 대리: 네, 연금술의 부수적 효과는 인정해도 연금술사에 대한 이미지라면 팀장님이 표현하신 거에 동의 합니다.

끼 차장: 팀장님은 뭔가 저희와 다른 생각이세요?

곰 팀장: 네. 단언컨대 연금술사들은 철저히 논리적이었습니다. 단지 논리의 전제가 되는 부분이 시대상 너무 앞섰을 뿐이죠 수학, 물리학, 광학, 화학 거의 모든 분야에서 천재였던 뉴턴도 연금술사였어요. 우리가 알고 있지 못하던 연금술에 대해 좀더 설명을 해드릴게요

 

연금술

연금술의 진정한 목적

서양의 '연금술사(Alchemist)'는 번역된 단어로 인해 여러 가지로 오해 받는 직업이다. 병과 깔때기가 흩어져 있는 연구실에서 열심히 풀무를 불거나 도가니를 휘저으며 금을 만들어내려는 노인의 이미지는 연금술(Alchemy)의 일부밖에 전달하지 못한다. 연금술사 중에는 납이나 철 같은 금속을 다루는 일을 경멸하고 정신적인 사색을 연구의 중심으로 삼은 자도 있었다. 그리고 이러한 방법 또한 연금술 연구의 방법으로서 올바른 것이었다. 금을 만들어내는 것이야말로 연금술사의 특징처럼 생각되지만, 실은 이것은 그들의 본래 목적이 아니었던 것이다.

진지한 연금술사들에게 비금속(卑金屬)을 금으로 변화시키는 일은 연구의 수단에 불과했다. 금 그 자체가 아니라 변화에 없어서는 안 되는 물질, 즉 '현자의 돌'의 비밀을 해명하는 것이야말로 연금술사의 궁극적인 목적이었다

 

연금술의 이론

중세의 연금술사는 세상이 창조주의 손으로 만들어졌다는 사실을 굳게 믿고 있었다. 모든 것이 창조되기 이전은 하느님 안에 있었다. 그렇기 때문에 모든 것은 하나이며 또한 하나는 모든 것이라 믿고 있었다.

모든 존재 안에는 공통되는 요소, 즉 신의 '하나'가 포함되어 있다고 생각한 것이다. 이 공통의 요소를, 연금술에서는 제1원소(마테리아 프리마)라 불렀다. 신이 세상을 창조하기 이전의 혼돈은 제1원소로 이루어졌다는 근원적인 원소이다.

제1원소는 가능성 그 자체이다. 물질에서 모든 특성을 배제한 후에 남은 '이것'은 어떠한 특질도 가지지 않지만, 동시에 모든 특질을 가질 수 있는 가능성을 품고 있다. '연금술사의 돌'이라고도 불리는 제1원소의 형태에 대해서는 여러 가지 전설이 있는데 일반적으로는 납과 비슷한 금속과 같은 것이라고 여겨졌다.

제1원소를 물체에서 환원하여 새로운(보다 좋은) 특성을 주거나 혹은 물질 속의 제1원소에 영향을 주는 것이 가능하다면 어떤 변화도 생각대로 된다. 연금술사들은 이렇게 생각했다.

이런 생각을 보강한 것이 '흙-물-불-공기'의 4대 원소 이론이다. 이것은 세상의 모든 것이 '흙-물-불-공기'라는 4대 원소의 조합으로 이루어진 것이라는, 17세기까지 일반적이었던 세계관이다. 4대 원소는 제1원소의 가장 기본적인 발전형태로, '습(濕)-온(溫)-건(乾)-한(寒)'이라는 네 가지 기본적 성질과의 조합, 그리고 상호적인 혼합 비율로 모든 존재를 만든다고 여겨졌다.

물질과 기체, 유기물과 무기물. 그 사이에 있는 차이는 단순히 4대 원소의 혼합 비율과 주어진 성질의 차이에 다름 아니다. 연금술사들에게 생물과 광물은 근원적 차이가 없어서 둘 다 4대 원소로 구성된, 똑같은 수준으로 논할 수가 있다.

점토를 상상해보자. 점토는 어떤 형태로도 가공할 수 있고 구워서 딱딱하게 할 수도, 대량의 물에 녹여 액체로 만들 수도 있다. 그러나 가공 후 결과가 아무리 다른 형태로 보인다고 해도 원래대로 고치면 그것들은 모두 점토일 뿐이다. 새로운 형태의 차이는 단순히 4대 원소의 혼합 비율과 기본적 성질의 차이에 따른 것에 불과하다. 만약 가공 단계를 역행시킬 수 있다면 마지막에는 점토가 남는다. 그리고 이 점토를 다른 수단으로 재 가공시킨다면, 이전과는 다른 가공물이 나올 수도 있을 것이다. 이것이 연금술의 기초가 되는 사고 방식이다.

이런 사실에서, 물질을 네 가지 원소(경우에 따라서는 제1원소)까지 분해해서 새로운 비율로 재구성하면 원하는 물질(예를 들면, 금 같은)을 얻을 수 있지 않을까 하는 생각이 나타났다. 그리고 인위적으로 성질이나 구성 요소를 변화시킨 은이나 동의 합금으로 인해 실현 가능하다고 믿어지게 되었다.

연금술사들의 생각으로 이런 변화가 자연의 이치에 역행하는 것은 아니었다. 자기들은 다만 자연의 흐름을 가속시킬 뿐이라고 믿고 있었던 것이다. 연금술사는 태아가 성장하여 어른이 되고, 씨앗이 발아해서 풀과 나무가 되는 것이 자연의 흐름인 것처럼, 광물 또한 대지의 품에 안겨서 점점 완전한 상태로 성장(혹은 둔화)해나가는 것이라 믿고 있었다. 다시 말해 생물의 한 형태로서, 어떤 의미로는 의인화해서 파악하고 있었던 것이다. 완전한 광물이란, 즉 가장 안정되고 가장 녹슬지 않은 금속은 금이다. (출처: 네이버 지식백과)

 

가치 있는 일

우리가 대부분 알고 있는 것과는 다르게 연금술은 그 당시의 논리로 철저하게 무장되어 있었다. 탐욕이 논리적 사고를 막거나 부정한 것이 아니라 당시 자연과학과 철학이 제시하는 전제를 근거로 좀 더 가치 있는 것을 추구하고자 한 것이 그 근간을 이루고 있다.

만약 인류가 다시 역사를 시작한다고 하더라도 연금술은 분명 인류가 이룬 연대기에 또 다시 나타날 수밖에 없다. 어쩌면 지금 새로운 시도를 하고 있는 여러분들이 있다면, 비록 남들이 부정적으로 본다고 할지라도 연금술사와 같은 일을 하는 것은 아닐까 생각해 본다.

IT, 그 중에서도 데이터베이스 분야에서 일하면서 남들과 같은 작업을 반복하며 새로운 진로에 대하여 (글로벌 컨설팅 펌으로 가느냐 아니면 연구소에서 관리직으로 남느냐) 고민 중일 때, 필자의 '절친'이자 멘토가 이런 조언을 했다. 우리 좀 더 가치 있는 일을 해보지 않겠느냐고 그 꼬임(?)에 빠져 지금도 모델링에 대하여 실험하고 있다. 연금술사처럼 비난도 받을 수 있지만, 필자는 그것이 가치 있는 일이라 생각한다.

 

곰 팀장: 여러분들, 이제 제 생각을 아시겠죠? 전 연금술사를 가치 있는 일을 향해 나가는 사람이라고 생각해요. 전 최소한 우리 팀원들이라도 비록 제 생각에 동의하지 않는 사람이 있을지 모르지만, 조금이라도 연금술사에 대해 연민이라도 가져 줬으면 해요. 어쩌면 저를 혹은 우리를 그렇게 보는 사람들도 있을지 모르니까요.

끼 차장: 팀장님 말씀이 어느 정도 이해가 가요. 우리팀에서 제안하고 수행하는 작업이 매번 남들과 다른 방식으로 하는 거니까요.

양 과장: 전 처음부터 연금술에 대해 그렇게 부정적이지 않았어요. 그런데 팀장님, 우리가 하는 연금술은 어떤 건지 구체적으로 말씀해 주실래요? 지난번에 말씀하신 속성을 해체하는 것까진 알겠는데, 우리가 하는 모델링이랑 뭔가 관련이 있는 듯 해서요. 이게 어떻게 엔터티가 되는지 오늘은 구체적으로 말씀해 주세요. 실무에서야 적용 해봤으니까 알겠어요. 그런데 속성이 해체되고 어떻게 재조합되어 엔터티가 되는지에 대해 팀장님의 생각을 오늘 다 말씀해 주세요.

곰 팀장: 네, 지난 번까지 속성에 대한 해체에 대해 얘기 해 봤는데, 오늘 엔터티의 재조합에 대해 이야기하면서 우리의 모델링에 대해 정리했으면 해요. 먼저 제가 여러 번 반복해서 엔터티에 대해 언급하는 건, 우리가 모델링을 하고자 하는 방법이 기존 방법과는 다른 것이기 때문이지만, 또 다른 이유가 있습니다. 다시 말하여, 새로운 모델링 방법이 기존 방법을 무시하고 나온 것이 아니라, 연장선에 있는 것입니다. 따라서 엔터티, 속성, 관계에 대한 정의가 확실해야 되고, 그 방법에서 어떻게 바뀌었는지 이해될 때 비로소 이 방법이 모순적인지 또 어떤 장점이 있는지 파악될 수 있기에 자꾸 강조를 하고 있는 거에요.

강 사원: 저는 처음 여기 와서 배운 게 전부라 실무에서는 원래 이렇게 쓰이는 줄 알았어요

우 대리: 저도 모델링은 처음이라 팀장님이랑 차장님이 시키는 데로 진행을 했죠. 그런데 우리가 시도하는 방법이 어떤 건지 다른 곳에서는 어떻게 모델링을 하고 있는지 궁금하고 또 장점 같은 것도 알고 싶네요.

곰 팀장: 모델링은 DBMS의 변화와 정보 서비스 환경의 변화에 따라 많이 변화되어 왔어요. 처음에는 그냥 단순한 저장 공간 역할만 한 적도 있었죠. 하지만 사회라는 것도 그렇잖아요, 인간 군상이 많아지면 많아질수록 그 다양성은 엄청나게 복잡해지죠. 이 현실 세계의 다양성이 투영되는 게 모델링이니 오히려 수많은 이론이 안 나온 게 저로서는 더 이해가 안가요.

양 과장: 저도 그 부분은 팀장님 생각에 동의해요. 그건 아마 모델링이 현실과 동떨어져서 일 거에요. 우리가 아무리 모델링을 잘해 놓아도 결국 해당 정보시스템에 종속적일 수밖에 없으니까, 아무래도 사용자의 요구가 가장 먼저지요. 그 다음 창구인 개발자의 편의성 위주로 개발이 되니 잘 적용이 안 되는 것 같아요.

곰 팀장: 정보시스템을 사용하는 사용자, 정보시스템을 운영하는 관리자, 개발자, DBMS 관련자 모두 제대로 된 시스템을 구축하기 위해 노력하지만, 아무래도 서로의 일에 대하여 이해의 부족이 가장 큰 원인일 거 같습니다. 촉박한 기한, 그리고 눈에 가장 먼저 나타나는 부분이 개발 영역이므로 기초가 되는 DB 부분은 가장 먼저 배제되기 쉽죠. 일단 탈만 안 나면 되니까 처음에 개념만 세우고 마는 경우가 대부분이고, 나머지는 DBMS의 조작에만 신경 쓰는 형편이죠. 어쩌다 보니까 현실만 얘기하고 제가 하려는 말에서 자꾸만 벗어나려고 하네요. 이럴 땐 질문을 해야죠. 그래야 환기도 되고^^. 아주 노골적으로 질문할 게요. 모델링을 연금술이랑 비교하면 어떨까요? 힌트를 주자면 은유가 아니라 직유예요.

끼 차장: 그럼 지난번에 말씀하신 속성의 해체에서 4원소론을 이용해서 만들자는 건가요? 물-흙-바람-불 이렇게 속성을 비유해서 말씀하셨잖아요.

곰 팀장: 네, 맞습니다.

양 과장: 그럼 물-흙-바람-불. 이렇게 각각 넣는 건 좀 억지스러운 느낌이 있어도 비유라고 생각하고 그걸 조합해서 금을 만드는 게 엔터티라는 거죠? 그런데 엔터티는 하나만 있는 게 아니잖아요. 여러 종류의 엔터티가 있는데 금을 만든다는 걸 황금률이라고 이해해도 되나요?

곰 팀장: 아뇨. 우연히도 제가 나눈 4가지 속성의 분류랑 4원소랑 같네요. 그리고 연금술은 정확히 얘기하면 황금을 만드는 게 아니에요, 현자의 돌을 만드는 것이지. 현자의 돌에 대한 설명도 필요할 거 같으니 현자의 돌에 대해서 설명해 드릴게요

 

현자의 돌

연금술계의 문헌에 반드시 등장하는 신비로운 현자의 돌. 이 정체불명의 물질은 그것을 가진 자에게 부와 영원한 삶을 주며 신과의 일체화를 가능케 해주는, '완전한 물질'이었다. 많은 연금술사가 이것을 만들어내기 위해 일생을 받쳤지만 결국 꿈이 깨지는 환상의 물질이다. 다시 말해 그 효용은 모든 물질을 완전한 상태로 순화시키는 데 있었다.

현자의 돌은 그 자체가 '가장 완전하고 불변불멸의 물질'이며, 게다가 불완전한 것을 완전한 모습으로 변화시키는 효과를 지닌다고 여겨졌다. 현자의 돌은 이야기에 따라서 돌, 석고, 액체, 분말 등 다양한 형태로 묘사되고 있다.

예를 들면 파라켈수스의 일화에서는 노란색 석고로 나온다. 불사의 몸 상 제르망 백작은 연금약(액체)이야말로 자신의 불로장수의 비결이라고 했다. 하지만 중세의 연금술사 대부분은 현자의 돌은 돌, 그것도 투명하고 옅은 유황색을 띤, 유리 같은 고체라고 생각했다. 또한 영국의 오래된 기록에는 붉은 분말이라고도 씌어 있다. 연금술을 신비적인 의미로 파악하는 자들 중에는 현자의 돌이란 어디까지나 우화였다. 세상의 섭리를 이해하여 내적 완성을 본 연금술사 자신이 현자의 돌로 변화하는 것이라는 의견도 있었다. 실로 다양한 일설이 있지만 효용에 대해서는 비교적 공통점이 있다.

이 궁극적인 물질이 있으면 비금속을 순화해서 금으로 성장시킬 수가 있다. 열을 가한 비금속 중 작은 현자의 돌을 넣어두거나, 가루로 만든 현자의 돌을 그저 표면에 뿌려두면 그것만으로 금으로 변화한다고 일컬어진다.

그러나 이 돌의 순화 작용은 모든 물질-생물-정신에 미친다고 되어 있다. 물론 인간도 이것을 소유하게 되면, 모든 병이 말끔히 낫고 노인은 젊음을 되찾는다. 그리고 소유한 자는 곧 불사의 육체를 획득한다.

연금술사들은 광물이 완성된 상태가 금인 것처럼, 인간에게도 영혼과 육체가 완성된 상태가 있다고 생각하고 있었다. 이런 이미지의 원천은 신의 손으로 막 창조된 순수한 인간이었다. 성서 속의 위인 대부분이 수백 살의 장수를 누렸다고 씌어 있는 것처럼, 순수한 인간은 노화나 병과는 거리가 있었다고 믿어졌다. 현자의 돌에 의해 완성된 자는, 이러한 위인들이나 죽음에서 다시 태어난 예수처럼, 장수(아니면 불사)를 획득할 수 있다고 여겨졌다. 현자의 돌이 달리 '생명의 연금약(엘릭서)'이라고도 불리는 까닭이다.

앞에서 금의 변성이 진짜 연금술사들에게는 하찮은 것이었다고 한 이유는 연금술의 진짜 목적이, 완전한 인간을 향한 승화에 있었기 때문이다. 이것은 결국 불로불사와 함께 신과 일체화될 수 있을 정도로 깨끗한 영성의 획득을 의미했다. 연금술이란 만물의 섭리를 해명하는 것이며 깨달음에 이르는 종교적인 길이었다.

그리고 현자의 돌만 있으면 그 목적은 달성된 것이나 마찬가지였다. 이 때문에 연금술사들은 모두 현자의 돌을 만들어내려고 했다.

중세의 연금술계 문헌에는 이것이야말로 현자의 돌을 제작하는 방법이라고 칭한 처방이 반드시 기록되어 있다. 매우 구체적이며 화학적으로 재현 가능한 내용이 있는가 하면, 추상적이며 우의적(寓意的)인 그림이나 기호로 암시된 것에 불과한 것도 있었다. 잡다한 문헌을 일일이 살펴본다면 현자의 돌에는 수십, 수백 가지의 제조 방법이 존재할 것이다.

그러나 이런 제조법을 진실로 받아들여 하나하나 생각해보는 것은 완전히 헛수고이다. 난해한 우의를 어떻게든 풀어서 실험을 충실히 재현한다 하더라도 성공할 가능성은 없다. 결국 연금술사들이 의지로 삼을 수 있는 것은 자기 자신의 시행착오뿐이었다. 아마도 그들은 일생 동안 원하는 것을 손에 넣을 수는 없었을 것이다. 그러나 연금의 꿈을 좇은 도전자들의 불굴의 의지는, 대우주의 법칙을 해명하려 하는 과학자들의 정열과 비슷했다.

[네이버 지식백과] 현자의 돌[Philosopher's Stone] - 영원한 생명을 가져오는 궁극적인 물질 (부활하는 보물, 2002.1.20, 도서출판 들녘)

 

곰 팀장: 즉, 우리가 하려는 것은 먼저 속성의 4원소를 분류하고 그리고 현자의 돌을 만드는 것이에요.

강 사원: 어려워요, 팀장님. 쉽게 설명 해주세요. 연금술, 현자의 돌 하니까 환타스틱하기만 하고 리얼리틱하지는 않아요. 게임에서 물약 사서 제조하는 거 같기도 하고. 전 얘기 듣다 보면 자꾸만 게임 속 화면만 상상되네요.

곰 팀장: 지난번에 했던 것을 다시 상기해 보도록 하죠. 속성의 4원소는 Party, Thing, Service, Activity로 구성되었다고 가정 했었죠? 이게 연금술의 4원소이고요. 이제 4원소에 현자의 돌만 넣으면 엔터티가 생성되겠죠. 그럼 현자의 돌은 무엇일까요?

양 과장; 그건 기준 정보 아닐까요? 어떻게 규칙이 되느냐 하는 기준정보 집합, 예를 들어 BR(Business Rule)이나 DR(Data Rule)을 기준정보로 등록해서 엔터티를 만드는 규칙을 정의하고 코드로 값을 관리하면 되지 않을까 생각되는데요.

우 대리: Rule 맞아요. 현자의 돌이라는 개념이랑 딱 맞네요.

곰 팀장: 제가 생각하는 답은 아니지만 정말 다들 많이 발전한 거 같습니다. DB를 저장공간으로 생각하지 않고 관념의 집합이라 생각하는 건 아주 많이 발전했다는 증거예요.

끼 차장: 팀장님이 생각하는 답은 뭔지 알려주세요.

곰 팀장: 네, 저도 여러분이 생각하는 거랑 별 차이 없는데, 다만 좀 더 먼저 생각했으니까 논리적으로 접근해서 생각을 했지요. 제가 생각하고 연구한 부분이 이렇다는 거지 정답은 아닙니다. 제가 생각하는 '현자의 돌'은 두 가지로 나눠서 생각했어요. 먼저 Party와 Thing은 존재하는 실체의 Relationship(관계)으로, 예를 들면 실체가 역할을 부여 받아 정보서비스 사용자가 되거나 정보서비스의 수혜자가 되고, Service와 Activity는 Meta(엔터티의 설명)로 구성된다고 생각했어요. 이것도 예를 들면, Service는 Catalogue로 구성되어 Meta에 데이터 형태로 저장되고, Activity는 Category로 구성되어 Meta에 데이터 형태로 저장되어 각각을 정의 할 수 있다고 생각했어요. 제가 생각하는 현자의 돌은 결국 Relationship과 Meta예요.

끼 차장: 그럼, 팀장님이 주장하시는 4원소와 Relationship, meta만 있으면 모든 엔터티를 표현할 수 있다는 말씀인가요?

곰 팀장: 불행히도 아직 많은 점이 부족해요. 고려해야 될 사항이 너무 많죠 하지만 우리가 최근 수행했던 프로젝트에서 거의 이런 논리 하에 구축을 했던 게 사실이에요.

우 대리: 우린 그런 기반 하에서 프로젝트를 수행했는줄 몰랐네요 팀장님 다음 프로젝트가 시작되기 전까지 우리가 수행했던 프로젝트에서 어떻게 적용 시켰는지 설명 좀 부탁 드릴게요

곰 팀장: 네, 아무래도 우리가 수행했던 프로젝트를 통해서 예시를 들면 쉽게 이해할 수 있겠네요.

 

엔터티의 재결합

Party, Thing, Service, Activity라는 4원소를 이용해 엔터티를 재조합 해보자. 먼저 Party와 Thing의 2원소는 실체가 존재하는 원소이며, 가장 기본적인 원소다. Service와 Activity는 구성요소 자체가 사건을 설명하는 Meta적 성질(구성요소들의 결합이 어떤 현상을 만들어내는지)을 가진다. 위의 두 가지 성질이 다른 두 종류의 원소는 그 특징상 존재는 관계에 의해 엔터티로 결합되며, 의미는 메타에 의해 엔터티로 결합된다. 그리고 4원소의 특징은 다음과 같다.

. 4원소의 특징

형태

종류

구성요소

특징

존재(유형)

Party

개인과 단체로 구성된다.

관계

직원

Thing

개인과 단체를 제외하고 현실에 존재하는 사물 정보로 구성된다.

관계

자산

의미(무형)

Service

주체와 대상 간의 목적을 가진 지속적 행위

메타

급여

Activity

목적과 분리되는 일시적 행위

메타

지급

 

전통적인 모델링 방법론은 존재와 의미에 대한 명확한 분류 없이 혼재되어 사용되고 있고, 주체가 명시되지 않아 정보의 신뢰성이나 오역의 가능성이 존재한다. 이러한 문제점은 정보시스템의 통합과 유지보수에 가장 큰 걸림돌로 작용한다. 따라서 정보시스템의 변화에 유연한 데이터 모델링의 접근방법은 기존 데이터 모델링과는 전혀 다른 차원의 접근을 요구한다.

우리는 앞선 문제점을 해결하기 위해 '보편성'과 '인식형식'의 방법을 제시할 것이다. 보편성은 데이터가 활용되는 모든 영역에서 동일하게 인식하고 정의할 수 있는 성질을 말하며, '인식형식'은 참과 거짓을 떠나 누가 어떤 정의를 하였는지를 형식적으로 표현하는 방법이다. 접근방법의 핵심 아이디어는 존재와 의미 데이터에 대한 분리다. 정보 시스템 구축의 모든 시작은 요구사항에 대한 정의로부터 출발하기에 새로운 접근방법 역시 사용자의 요구사항을 근거로 모델링한다.

요구사항은 사용자의 언어이고 사용자는 특정 업무 도메인에 주관적이다. 따라서, 엔터티 대상으로 도출된 모든 요구사항은 업무 도메인 영역에 개념어가 된다. 개념 내에서만 통용될 수 있는 주관적 용어다.

위와 같이 전통적인 모델링 과정은 요구사항으로부터 엔터티나 속성을 도출하지만, 새로운 접근방법은 요구사항 정의에서 도출된 대상을 개념-주관적인 대상으로 파악한다. 이후, 각 개념-주관적인 용어는 그 유연성을 확보하기 위해 객관적 용어인 존재 데이터와 쌍을 맺게 된다. 객관적 용어는 직관으로 파악되는데, 이를 substantial individual, 엔터티, 존재라 부른다. SSTART (subject-Service-Transaction- Activity-Resource-Target)로 불리는 모델링 방법론에 근거한다. 이 모델링 방법론은 '누가(subject) 어떤 서비스(service)를 어떤 절차(activity)에 따라 어떤 자원(resource)을 이용하여 누구(target)에게 제공하였는가?'를 설명하는 모델링 방법이다. 이 데이터 모델은 거의 모든 정보서비스 환경에서 누가 어떤 업무를 수행하였든지 데이터로 기술할 수 있는 보편적 데이터 모델이다. 이것을 데이터 모델로 표현하면 다음과 같다.












그림. SSTART 모델링

<그림> 좌측의 Subject와 Target은 주체와 대상으로서 개인과 단체를 표현하는 ISO 표준 모델인 'Party Data Model'을 사용한다. Resource는 정보시스템 환경에서 활용 가능한 자원을 설명한 것으로 '예산' 또는 '금전', '현물' 등을 포함한다. 이것은 Thing을 설명하며 적용되는 데이터 모델은 category data model이다. Service와 Activity는 각각 Catalogue와 Category 모델을 사용한다.

이상으로 4원소를 이용한 엔터티의 재조합을 알아보았다. 다음 시간에는 실제 모델에 어떻게 적용 되어 이용되고 있는지에 대하여 알아보겠다. (다음 회에 계속)

Posted by 글키우는 농부
:


이 연재는 분석시대가 도래했음에도 우리는 과거 데이터 저장-검색시대의 방법으로 데이터를 바라보고 관리하고는 있지 않은가에서 시작한다. △데이터의 단순 입출력의 편리성을 강조한 저장시대 △데이터의 정합성 및 검색의 용이성을 강조한 검색시대 △마지막으로 데이터베이스 내부의 데이터가 스스로 유기체의 성질로 변형되어 생명력이 존재하는 분석시대로 구분해 시기마다 데이터를 바라보는 관점이 다르고 관리하는 방법에서도 차이가 있음을 알아보고, 새로운 시각과 방법으로 데이터를 바라봐야 하는 이유, 어떤 변화가 필요한지를 독자와 함께 도출해 본다.

 

[연재순서]

1회: 분석시대의 탈구조적 데이터 모델링; 엔터티 해체 속성의 재결합
2회: 속성 고찰을 통한 엔터티의 분류(상)
3회: 속성 고찰을 통한 엔터티의 분류(하)
4회: 엔터티의 해체 그리고 속성의 재결합
5회: ICT 플랫폼 구축 사례를 통해 본 탈 구조적 모델링 방법

 

글: 이강욱 리안주식회사 수석 데이터 사이언티스트 allomyrina@gmail.com


정보시스템은 초기 업무 효율성을 향상 시키는 목적에서 좀더 발전하여 다양한 기관과 시민 단체, 이해당사자 들이 직접 참여하는 e-Democracy 형태로 변화되고 있다. 참여자가 많아지면 요구사항에 대해 미리 대처를 해야 하고 이는 근 미래에 대한 예측을 위해 데이터 분석은 반드시 요구된다. 기존 모델링은 이와 같은 상호협력적 정보시스템의 구조에는 종종 맞지 않는 듯 보인다. 따라서 엔터티를 바라보는 새로운 패러다임이 필요하여 지난 회까지 엔터티의 정의와 속성에 대해 논의하였다. 금회에서는 속성의 실체에 보다 접근하여 속성의 고찰을 통한 엔터티의 새로운 분류에 대해 마무리 하려고 한다.

 

 

 

 

밤 하늘의 별을 바라보며

직장인 이라면, 특히 IT 분야에 몸담고 있는 사람이라면 평일 집에서 식사하는 것이 굉장한 호사라고 생각할 것이다. 필자도 마찬가지다. 매일 야근에 바쁠 때면 주말까지도 출근을 한다. 그러다 보니 휴일은 아내와 필자 사이에 묘한 전운이 감돈다. 아내를 이길 남편이 어디 있겠는가? 결국 항복하고 이제는 어디로 갈 것인지에 대한 문제로 새로운 고민을 하게 된다.

오늘은 본격적으로 글을 쓰기 전에 같은 고민을 하고 있는 가장 여러분들께 가족과 함께 나들이 하기 좋은 장소로 천문대를 추천하고 싶다. 천문대의 장점은 직장인에게 황금 같은 휴일 낮 시간 늦게까지 쉬다가 밤에 움직이면 되니 몸이 편해서 좋고 특별히 놀아 주는 재주가 없더라도 하늘만 보면 되니 잘 놀아줄까 하는 걱정을 줄일 수 있어 너무 편하다. 예전에야 어디에서나 별을 볼 수 있었지만, 지금은 도시의 불빛이 방해하지 않는 아주 시골이 아니면 별을 보기에 너무 힘들어서 별을 볼 수 있는 천문대는 가족과 함께 하기에게 특별한 장소가 될 듯싶다(국내천문대정보 http://astro.kasi.re.kr/Main/ContentViewForm.aspx?MenuID=2752).

문득 날씨가 맑은 날 아무 곳에서나 눈을 들어 별을 볼 수 있었던 기억이 떠올라 아무도 없는 연구소 축구장 잔디에 누워 밤하늘의 별을 바라 보았다.

(출처: 천문우주지식정보)

 

그런데 왜 갑자기 별 얘기인지 궁금할 것이다. 이번 회에 풀어 볼 '속성과 엔터티의 관계'를 별자리와 별자리를 구성하는 별로 풀어 쓰면 어떨까 하여 별자리 얘기로 시작하였다. 카시오페아, 작은곰, 큰곰, 북두칠성… 우리에게 익숙한 별자리다.

 

  

곰 팀장: 주말에 잘들 쉬셨죠? 날씨가 무척 좋았는데 어디 다녀 오신데 있으세요?

끼 차장: 애들 등살에 동물원에 갔다 왔어요. 봄에는 쉬는 날이 많아서 점점 걱정이에요.

강 사원 쉬는 날이 많으면 좋죠. 뭐가 걱정에요? 전 휴일에 출근하는 게 제일 걱정인데.

강 사원, 결혼해 보면 알아. 쉬는 날이라고 다 쉬는 날이 아니라고. 쉬는 날은 가족들한테 봉사하는 날. 그때가 되면, 솔로일 때가 좋았다 생각할거야. 팀장님은 어디 갔다 온 곳 있으세요?

곰 팀장: 저는 시민천문대에 갔다 왔어요. 가족들한테 점수 좀 따려면 어디라도 갔다 와야죠. 별도 보고, 애들한테 별자리도 설명해 주고, 간식도 먹으면서 봉사하고 왔죠. 혹시 학창시절에 배운 천문학 지식 좀 아는 사람들 없어요? 저는 암만 봐도 북두칠성이랑 오리온자리밖에 모르겠더라고요.

우 대리: 별자리 잘 아는 사람 없을걸요. 저도 아무리 봐도 별자리는 모르겠어요. 전 북극성밖에 몰라요.

끼 차장: 별자리는 한번 외워놓고 자주 보면 눈에 확 들어와요. 별 하나 하나씩은 몰라도 별자리를 통해서 익히면 별에 대해 저게 무슨 자리고 어떤 별인지 쉽게 기억할 수 있어요.

곰 팀장: 끼 차장님, 대단하신데요. 어떻게 그렇게 잘 아세요?

끼 차장: 제가 조금 감성적이어서 문학적인 면이 강해요^^ 아직도 윤동주의 「별 헤는 밤」을 외우고 있다고요.

곰 팀장: 오늘은 끼 차장님께 한 수 배워야겠네요. 그런데 제가 왜 별자리 얘기를 꺼냈냐 면요. 별자리를 엔터티라고 가정하고 구성하는 별들을 속성이라고 가정할 수 있지 않을까 해서요. 제가 무슨 얘길 꺼낼지 짐작할 수 있겠죠?

끼 차장: 물론이죠. 큰곰자리, 오리온자리… 이런 걸 엔터티라고 보고, 그걸 이루는 별들을 속성이라고 보자는 거군요. 그럼 당연히 제가 모든 별자리에 대해 설명해 드리죠.

곰 팀장: 별자에 대해 설명하실 수 있어요? 그럼 별자리는 아예 고정되어 있는 거에요?

우 대리: 물론 별자리는 정해져 있는 거죠. 계절마다 볼 수 있는 별자리가 있지 않나요? 뭐 다른 별자리가 어디 있어요? 큰곰자리, 작은곰자리 이렇게 정해져 있잖아요.

곰 팀장: 그럼 별자리를 엔터티로 정의하면 결국 다 정해져 있는 거네요.

양 과장: 별자리를 엔터티에 비유하면 그럴 거 같아요, 팀장님.

곰 팀장: 그럼 제가 오리온자리 옆에 하나 더 별을 붙여서 다른 이름으로 별자리를 만들면 아무 의미가 없다는 것 같은데 맞나요?

끼 차장: 그건 억지네요. 팀장님, 오늘은 팀장님의 말이 안 통할 거 같네요. 하하!

곰 팀장: 그럼 별자리의 유래를 제가 찾아 봤으니, 한번 보고 다시 얘기해 보도록 하죠.

 

 

별자리의 유래

별자리는 처음부터 현재 널리 알려져 있는 별자리로 정해져 있었던 것은 아니다. 나라마다, 지역마다 다르게 사용되고 있었던 것이 하나로 통합하면서 오늘날 별자리가 생긴 것이다.

오늘날 별자리의 기원은 서구 별자리로, 기원전 수천년 경 바빌로니아 지역에 살던 셈족계 유목민인 칼데아인들로부터 시작되었다. 그들은 가축을 키우고, 푸른 초목을 따라 이동하는 생활을 하면서, 밤하늘을 자주 쳐다보게 되었고, 밝은 별들을 연결시켜 동물에 비유하면서부터 별자리가 만들어지기 시작했다. B.C 3000년경에 만든 이 지역의 표석에는 양, 황소, 쌍둥이, 게, 사자, 처녀, 천칭, 전갈, 궁수, 염소, 물병, 물고기자리 등 태양과 행성이 지나는 길목인 황도를 따라 배치된 12개의 별자리, 즉 황도 12궁을 포함한 20여 개의 별자리가 기록되어 있다. 

또한 고대 이집트에서도 B.C 2000년경에 지중해 무역을 하던 페니키아인들에 의해 바빌로니아와 이집트의 천문학이 그리스로 전해져서 별자리 이름에 그리스 신화 속의 신과 영웅, 동물들의 이름이 추가되었다. 세페우스, 카시오페이아, 안드로메다, 페르세우스, 큰곰, 작은곰 등의 별자리가 그것이다. 그 후 AD 150년경 그리스 천문학자 프톨레마이오스가 그리스천문학을 집대성한 「알마게스트」란 책에는 북반구 별자리를 중심으로 한 48개의 별자리가 실려 있다. 그 분포를 보면 황도상에 있는 별자리가 12개, 황도 북쪽에 있는 별자리가 21개, 황도 남쪽에 있는 별자리가 15개 등으로, 이 별자리들은 15세기까지 유럽에 널리 알려졌다. 

15세기 이후에는 항해술 발달에 따라 남반구의 별들도 다수가 관찰되어 새로운 별자리들이 추가되기 시작하였다. 대항해 시대 이후 서양인들이 남반구에 진출하면서 항해사들은 남쪽 하늘의 새로운 별자리들 발견해 기록하였고, 1603년 독일의 바이어(Johann Bayer)는 16세기경 네덜란드 항해사 데오루스의 기록에 의거해 그의 책 「우라노메트리아」에서 카멜레온, 극락조, 황새치 등 12개의 별자리를 적어놓았다. 또 근대 천문학의 태동과 함께 망원경이 발달함에 따라 어두운 별들을 관측할 수 있게 되어 밝은 별자리 사이를 메우기 위해 작은 별자리들을 신설하게 되었다. 그 예로 17세기말에 헤벨리우스(Johannes Hevelius)가 만든 작은여우, 작은사자, 방패 등이 있다. 

20세기 초에 이르러, 별자리 이름은 지역에 따라 다르게 사용되고, 그 경계도 달라서 자주 혼란이 생기고 불편한 일이 많이 발생하였다. 때마침 1922년 국제천문연맹 제1회 총회에서 별자리의 계통 정리 제안이 거론되었고, 1928년 총회에서 하늘 천체에서 황도를 따라서 12개, 북반구 하늘에 28개, 남반구 하늘에 48개로 총 88개의 별자리를 확정했다. 또 지금까지 알려진 별자리의 중요 별이 바뀌지 않는 범위에서 천구상의 적경과 적위에 나란한 선으로 별자리의 경계를 정했다. 또 라틴어 소유격으로 된 별자리의 학명을 정하고, 3문자로 된 별자리의 약부호를 정했다. 이것이 현재 쓰이는 별자리다. 

이 88개의 별자리 중 우리나라에서 볼 수 있는 별자리는 큰곰자리 등 67개이고, 일부만이 보이는 별자리가 용골자리 등 12개, 완전히 보인지 않는 별자리는 물뱀자리 등 9개다. 또 별자리는 아니지만, 별 자리의 일부로서 별자리와 구분되어 부르는 별의 집단을 성군이라고 부르게 되었다. 이렇게 변해온 별자리는 예부터 여행자와 항해자의 길잡이가 되어왔고, 오늘날에는 천문학자들에게 밤하늘의 지도로 이용되고 있다. (출처: 천문우주지식포털)

 

살펴본 바와 같이 별자리는 시대에 따라 지역에 따라 혹은 목적에 따라 다르게 표시되어 왔다. 처음부터 정해진 별자리라는 것은 없었으며, 그 시대 사람들이 알고 있는 상식의 선에서 또 필요성에 따라 별들을 묶어 별자리의 이름으로 불러 왔던 것을 확인할 수 있다. 너무 유명해져 버린 별자리, 혹은 그 시대 구성원들간의 커뮤니케이션을 위해 자리 잡은 것뿐이다. 아마 별자리가 확고히 정착되기 전까지 서로 다른 종류의 별들을 묶어 다른 별자리 이름으로 불렀을 지도 모를 일이다.

 

 

곰 팀장: 분명히 별자리는 정해져 있는 게 아니죠? 저도 나름대로 별자리를 만들어도 될 수 있는 거잖아요^^

끼 차장: 그건 좀 억지스러워요. 팀장님이 아무리 만들어도 그게 맘대로 통할 수 없잖아요 사회적으로 합의된 규칙이 있는 건데….

곰 팀장: 다른 사람들도 여기에 동의하세요?

우 대리: 오늘은 끼 차장님 말씀이 맞는 거 같은데요. 합의가 안되면 혼자 정한 별자리를 누가 이해하겠어요. 저도 분명 별자리를 보면 설명을 해줘야만 알 수 있어서 내 마음대로 삼각형으로 만들어서 삼각형자리, 사각형으로 만들어서 사각형자리…. 이렇게 하는 것이 제 수준에서는 훨씬 낫지만, 아무도 인정해 주지 않으니 하는 수 없죠. 제가 그때 있기만 했어도 누구나 이해하기 쉽게 만들었을 건데. 이제는 하는 수 없죠. 뭐~

곰 팀장: 그러지 말고 우리팀끼리 새롭게 우리만 커뮤니케이션할 수 있는 별자리를 만들어 보는 건 어때요? 끼 차장님 우리끼리만 쓰는 건 문제 없는 거죠?

끼 차장: 우리끼리 통하기 위해서 합의된 거면 아무 문제 없죠 뭐^^ 그럼 한 번 만들어 볼까요? 만드는 규칙만 정하면 되겠죠. 양 과장님이 한번 만들어 주세요.

양 과장: 훗… 제가요? 대부분의 별자리가 그리스 신화에서 나왔으니까 우리는 현대 건축물을 바탕으로 만들면 어떨까요? 에펠탑, 베르사이유궁전, 크레물린궁, 타워브릿지 이렇게요. 유럽에 있는 건축물은 서쪽의 별들 이름으로 짓고요. 가운데 있는 건 중앙아시아 동쪽에 있는 건 한국, 중국, 일본 극동아시아 건축물 이름으로…. 그러면 외우기도 쉽고 커뮤니케이션도 잘될 거에요

곰 팀장: 좋아요. 그런데 그렇게 만들기 전에 또 다른 방법 없을까요? 일단 만드는 규칙부터 정하죠. 첫 번째 한 번 사용된 별은 다른 별자리에 사용될 수 없다. 두 번째 구역을 나누어 같은 구역에 있는 별들만 동일한 별자리에 포함 될 수 있다. 일단 이렇게 두 가지만 정하면, 우리가 눈에 보이는 별들에 대해서 별자리를 재구성할 수 있을 거 같은데요. 시작해 볼까요?

끼 차장: 팀장님, 그러다 보면 겹치는 경우도 생길 텐데. 세 번째 규칙으로 별자리의 가장 자리를 이을 경우 서로 겹치지 않게 한다는 원칙을 정하면 어떨까요?

곰 팀장: 제가 생각지도 못한 건데 좋아요. 그럼 강 사원이 제안한 규칙까지 넣어서 만들면 우리팀만의 별자리를 만들 수 있을 거 같군요. 별자리 만드는 건 업무 후에 해보도록 하지요. 그리고 결혼하신 분들은 나중에 가족들과 천문대 한번 가서 우리가 만든 별자리를 설명해 주는 건 어떨까요?

 

우리가 '많은 것'을 비유할 때 별만큼 많다고 흔히 말하곤 하지만, 우리 눈에 보이는 별의 수는 분명 유한하다. 별자리를 만드는 것은 분명 사용 목적과 커뮤니케이션을 위한 것이기 때문이다. 우리의 엔터티도 이렇지 않을까? 정보시스템이라는 하늘에서 유한 개의 속성을 뽑아 규칙을 정의하고, 목적에 따라 별자리를 정하는 일은 엔터티를 설계하는 일과 일맥상통하는 점이 있다. 우리는 알게 모르게 정해진 별자리에 익숙해져 있는지도 모른다. 물론 오랫동안 유지되어 온 연유에는 그에 따른 타당한 이유가 있게 마련 이지만, 아무런 비판 없이 수용한다면 발전은 없으리라 생각된다. 그럼 기존의 별자리를 해체하여 우리만의 새로운 별자리를 만들었듯이, 엔터티를 해체하여 보도록 하자.

 

만물을 이루는 물질에 대한 생각

지금도 고등학교에서 가르치고 있는지 모르겠지만 고등학교 1학년 윤리 수업에서 배운 만물의 기원에 대한 고대인의 사고가 생각난다. 최초의 자연과학자라 할 수 있는 탈레스는 만물의 근원이 '물'이라고 주장했다. 그는 우리가 살고 있는 이 땅도 물위에 떠 있는 원반이라고 하여 우주가 근본적으로 물로 이뤄졌다는 생각을 가지고 있었다. 다음으로 아낙시메네스는 '공기'가 만물의 근원이라고 생각했다. 그는 물을 끓이면 공기가 되는 것이 그 증거라며, 물도 공기가 변해서 만들어진다고 주장했다. 반면 헤라클레이토스는 '불'을 만물을 이루는 근본적인 원소라고 주장했다. 다음으로 4원소론이 나왔다. 4원소론을 처음 주장한 사람은 시칠리아 출신의 의사 엠페도클레스(BC483~435)다. 그는 탈레스의 물, 아낙시메네스의 공기, 헤라클레이토스의 불에 '흙'을 묶어서 처음으로 4원소설을 주장했다. 이들 4원소는 서로 합쳐지고 분해되는 과정을 거쳐 여러 가지 물질을 만들게 된다. 원소들 사이의 결합과 분리는 원소들 사이에 작용하는 '사랑'과 '미움' 때문에 일어난다고 했다. 플라톤의 제자였던 아리스토텔레스는 4원소설을 더욱 발전시켜 물, 불, 흙, 공기라는 4원소와 함께 마름, 젖음, 따뜻함, 차가움이라는 네 가지 성질이 결합해 물질을 만든다고 주장했다. 이러한 4원소설은 1808년 돌턴이 근대적인 원자론을 주장할 때까지 약 2000년 동안 물질의 성질을 설명하는 기본적인 이론으로 유지되어 왔다.

   

 

곰 팀장: 잘들 쉬셨어요? 엊그제는 가족과 함께 또 천문대에 갔다 왔어요. 이번에는 제가 먼저 가자고 했어요. 우리팀이 만든 별자리도 자랑할 겸 해서요.

양 과장: 굉장히 가정적이 되셨네요. 우리팀에서 만든 별자리를 알려 줬더니 아이들이 쏙쏙 잘 기억하죠? 특히 저의 작명 센스가 빛을 발했을 거에요. 별자리에 건축물 이름을 붙였으니 뾰족한 건 에펠탑, 가운데가 빛나고 넓은 모양은 베르사이유 궁전, 거기다가 동서남북으로 나눠놨으니 지리공부도 되고요.

곰 팀장: 저도 양 과장님처럼 생각하고 프린트까지 해가지고 열심히 공부하면서 아이들한테 알려줬는데도 아내한테 잔소리만 잔뜩 들었어요.

끼 차장: 왜요? 양 과장님이 지은 이름이 맘에 안 든다고 그러던가요?

곰 팀장: 그게 아니라, "별자리는 본래 이름으로 알려 줘야 남들과 대화가 되지, 우리가 만든 별자리라고 철썩 같이 믿고 '저 별은 에펠탑의 몇 번째 자리네!' 하고 아이들이 얘기하면 어쩌냐?"는 설교만 한참 동안 들었어요. 그런 거 공부할 동안 차라리 일찍 집에 들어와 가족과 함께 있는 시간이라도 늘리라고 몇 십분 동안 잔소리 들은 거 같아요. 하지만 성과는 있었어요. '우리끼리는 우리팀이 만든 별자리 얘기가 잘 통하는데, 왜 다른 곳에서는 안 통할까?' 하는 궁금증이 풀렸어요. 그리고 또 하나, 교육적 성과도 있었어요. 몇 개는 우리가 만든 별자리 이름으로 찾고 나서, 나중에 원래 별자리 이름을 붙여서 설명해 주니까 금방 금방 찾더라고요. 우리가 만든 게 몇 개는 원래보다 더 잘 만든 것 같아요.

우 대리: 그런데 팀장님이 우리한테 별자리 얘기하신 것이 분명 다른 뜻이 있어서 일 거 같은데… 그게 뭐에요? 얼른 어떤 얘기 하시려고 지난주부터 말을 계속 돌리시는 거에요?

끼 차장: 뭐~ 뻔하지. 결국 일하는 걸로 연결 되겠지 뭐.

강 사원: 별자리랑 우리 일이랑 무슨 상관이 있는데요? 혹시 우리팀이 이번에 천문대쪽 프로젝트하는 거 아녀요? 난 거긴 싫은데. 천문대는 거의 산속에 있잖아요. 전 젊어서 그런지 아직도 도시의 화려한 네온사인이 좋아요.

양 과장: 다들 눈치가 없네. 요즘 팀장님이 계속 하시는 말씀이 엔터티-속성에 관한 거잖아. '별자리는 엔터티, 별은 속성' 척하면 눈치채야지.

곰 팀장: 역시 양 과장님이세요. 양 과장님은 '가방끈'도 길지만 눈치도 최고에요. 참고로 칭찬입니다. 오늘 이야기를 나누어볼 것은 우리가 기존의 별자리를 해체해서 개개의 별들로 분해를 했잖아요. 그리고 우리 나름의 규칙을 세워서 그에 맞게 다시 별자리이름을 다시 붙여서 우리팀의 별자리를 만들었어요. 우리팀이 만든 별자리가 저로서는 확실히 더 잘 기억되더라고요. 특정 정보시스템을 하늘이라고 가정하고, 하늘을 이루는 별들을 속성, 별자리는 속성이 모인 엔터티라고 정의하면 되겠네요. 다들 동의 하시죠? 이견이 없으므로 그럼 우리가 우리의 별자리를 만들 듯이 한번 시작해 볼까요? 무얼 먼저 해야 할까요? 강 사원님, 무얼 먼저 해야 할지 말씀해 주세요.

강 사원: 왜 하필 저한테 이런 질문을 하시죠? 전 일개 사원이에요. 전 '멘붕'이니까 끼 차장님 아니, 양 과장님이 좀 도와 주세요.

곰 팀장: 차장님은 이론 쪽에 약하다고 강 사원이 대놓고 무시하는 거 같은데요? 끼 차장님, 이론에도 강한 모습을 보여주세요.

끼 차장: '이론에도'라는 말을 들으니 팀장님께서 제 실무 능력은 인정하신다는 말씀 같아… 강 사원에 대한 분노는 일단 접어두고 제 의견을 말씀 드릴게요. 먼저 엔터티를 설계하려면 속성을 뽑아 내야죠. 그런데 여기서 일단 전 이렇게 하겠습니다. 정보시스템에 있는 속성을 전부 뽑아 놓고, 이 속성을 구축하려는 정보시스템에 맞게 재조합을 하면 되지 않습니까? 그게 바로 우리가 추구하는 엔터티 설계 아니겠어요? 강 사원, 어때 이해하겠어?

강 사원: 차장님, 아까 무시해서 그렇게 말한 게 아니고요. 차장님은 생각은 그렇게 갖고 계시지만, 그걸 표현을 잘 못하시니까 제가 양 과장님께 부탁 드린 거에요. 차장님 말씀하시는 거 들으니 차장님은 이론 실무 둘 모두를 겸비하신 분 같습니다. 존경합니다.

곰 팀장: 끼 차장님, 그럼 속성은 어떻게 뽑아 내야 하는데요? 일단 속성만 뽑아 낼 수 있는 방안이 있다면, 나머지는 끼 차장님 방법대로 하는 것도 나쁘지 않을 것 같은데. 속성을 도출해 내는 방법을 안 내어 놓으셨네요.

양 과장: 그건 제가 말씀 드릴게요. '하늘을 봐야 별을 따지'라는 말이 있듯이, 우리가 분석하려는 정보시스템을 들여다 봐야 하지 않을까요? 고객 요구사항을 수렴하고, 업무를 분석하는 과정 속에서 속성이 도출되니까요.

곰 팀장: 그건 새로운 패러다임이 아니잖아요. 우리가 봐 왔던 속성은 모두 정보시스템 내에 존재했고, 우리는 그것을 좀더 유연하게 만든 거 아닌가요? 우리가 처음에 했던 과정을 다시 한번 상기해 보는 것이 좋을 것 같습니다. 처음 별자리를 우리팀 것으로 다시 만들기 위해 기존의 속성들을 가져다가 우리의 규칙을 정해 재조합했죠? 여기서 우리가 기존에 분석-설계하던 것과 차이가 뭔지 알 수 있나요?

우 대리: 저기 팀장님, 제가 한 말씀 드려도 될까요? 하늘에 있는 별은 이미 정해져 있는데, 다시 말해 늘거나 줄거나 하지 않는데 우리가 하려는 작업과 맞지 않는 것 아닌가요? 팀장님 말씀은 모든 속성이 이미 다 존재한다는 가정 아래, 규칙을 찾고 재조합 하자는 말씀이잖아요.

양 과장: 팀장님, 그럴 수가 있나요? 그렇게 정의할 수 있다면, 그건 화수분이랑 똑같잖아요.

강 사원: 과장님, 화수분이 뭔가요?

양 과장: 재물이 자꾸 생겨서 아무리 써도 줄지 않는다는 뜻이야. 즉, 우 대리가 얘기하는 것은 우리가 분석할 필요 없이 속성에 대한 것은 다 정의되어 있으니 그걸 조합만 하면 된다는 뜻이야. 속성이 하늘의 별이라면, 우리가 만들 필요는 없잖아? 그냥 있는 것의 규칙만 정하면 되는 거니까. 마찬가지로 비유하면, 끼 차장님은 정보시스템에서 분석을 통해 속성을 모두 도출해 내놓는 것부터 시작했는데, 지금 팀장님 분위기로 봐서는 속성이 이미 정의돼 있는 것처럼 보여. 이번만은 아무래도 전 끼 차장님을 지지 해야겠어요.

곰 팀장: 아마 논란이 많이 될 듯싶습니다. 그렇다면 저도 한 발 양보해서, 질문을 하나 드릴게요. 현실 세계가 정보시스템에 투영될 수 있는가? 현재 상황으로 봐서 양 과장님이 제일 많이 이 문제에 대해 통찰하고 계신 것 같으니 답변을 부탁 드립니다.

양 과장: 당연히 현실 세계를 지배하는 모델이 있다면 정보시스템은 그 하위영역이므로 투영이 되겠지요.

곰 팀장: 고대부터 근대까지 우리 세계의 물질을 구성한다고 믿었던 4원소론에 대해서 알고 계세요?

양 과장: 네, "물-흙-불-공기" 알고 있죠.

곰 팀장: 저는 4가지 원소로 세상의 근원을 설명했던 4원소론을 현재까지 믿고 있는 사람은 아니에요. 하지만 전 여기서 그 논리 구조를 우리 속성에 적용시켜보고 싶었어요. 속성을 4가지 분류로 나눠 논리를 전개할 수 있다면, 엔터티에 대한 패러다임을 하나 더 가지지 않을까 해서 생각해 보았습니다. 엔터티라는 것이 개념적이므로 현실 세계에서 적용할 수 있다면, 정보시스템에 충분히 투영이 가능하다고 생각했습니다.

양 과장: 흥미로운데요. 그럼 팀장님이 생각하시는 속성의 4원소는 뭔데요?

곰 팀장: 여러분도 다 알고 있는 것이 제1원소에요. 그건 우리가 마스터 데이터나 CRM 분야를 하게 되면 만나는 개인과 조직, 즉 "Party"를 전 1원소로 뽑았습니다. 그 다음은 현실 세계에 존재하는 가시적인 것 "Thing", 특정 목적을 가지고 지속성을 가지는 것으로 "Service", 그리고 목적과 분리되고-반복적이며-짧은 시간에 수행되는 특성을 가지는 "Activity" 이렇게 4원소로 뽑았어요.

끼 차장: 팀장님 말씀이 뭔가 논리적인 것 같은데 추가 설명이 필요할 것 같습니다.

곰 팀장: 네, 알겠습니다. 끼 차장님은 실무에 적용하면 빠르게 습득하시니, 다음 번에는 제가 나눈 속성의 4원소를 가지고 엔터티를 만들면서 설명해 드리도록 하겠습니다. 그리고 그때는 저번에 「천개의 고원」에서 나왔던 해체와 재조합의 방법이 사용될 테니 미리 공부 좀 부탁 드립니다.

 

 

속성의 4원소 분류

현실세계의 모든 현상이 Party, Thing, Service, Activity라는 4원소로 구성돼 있다는 기본 개념에서 출발한다. 먼저 Party와 Thing의 2원소는 실체의 개별자가 현상에 직접 참여하는 구성원으로 정의되며, 또 다른 2원소인 Service와 Activity는 구성요소 자체가 사건을 설명하는 Meta적 성질(구성요소들의 결합이 어떤 현상을 만들어내는지)을 가진다는 원리를 기본개념으로 두고 접근한다. 예를 들면 물(H2O)은 2개의 수소(H)와 1개의 산소(O)로 수소와 산소, 물이 현상을 구성하는 개별자이다. 물이 생성되기 위한 필요조건과 구성된 현상은 과정이고, 결과는 물이 생성되는 Meta적 성질의 결과물로 해석한다. 데이터 측면에서 볼 때, Party와 Thing은 data instance 간의 relationship으로, Service와 Activity는 Meta Data로 각각 현실세계 사건을 재구성한다.

 

Party & Thing: party는 개인과 단체로 구성된다. 주체나 대상으로서가 아니라, 실체의 본질적 특성을 기반으로 한다. Thing은 개인과 단체를 제외하고 현실에 존재하는 사물 정보를 담고 있다. 사물은 관찰되거나(가시적) 개별적으로 구분할 수 있어야 한다. 이러한 사물의 특징은 자연계에서 super-level category에 의해 계층적 분류와 속성의 상속으로 대표될 수 있다.

 

Service & Activity: Service와 Activity는 Party와 Thing과 달리 비가시적이며, 주체와 대상간의 행위와 관계를 설명한다. Service는 특정 목적을 가지고 지속성을 갖는 반면, Activity는 목적과 분리되고, 반복적이며, 짧은 시간에 수행되는 특성을 가진다. Activity가 없는 Service는 현실세계에 영향을 미치지 못하며, Service가 없는 Activity는 의미 없는 반복으로 공허한 특징을 가진다. 따라서 모든 사건은 Service와 Activity의 결합에 의해 구성될 때 비로서 의미를 갖게 되고 설명될 수 있다. 우리는 이 연구에서 역으로 의미 있는 특정현상이 Service와 Activity로 구분될 수 있다고 가정한다

 


[그림] 4원소를 활용한 데이터 모델링 방법과 개념 모델

 

4원소로 속성의 종류를 분류한 것은 필자 개인적으로 영향을 많이 받았던 객체지향 방법론 느낌으로 분류한 것이다. 특히 추상화와 캡슐화를 통해 분류가 어느 정도 유연한 모델링이 가능하다고 생각한다. 데이터 분야는 데이터의 안정성 이면에 있는 폐쇄성으로 인하여 새로운 사고의 전환이 상대적으로 어려운 것 같다. 어쩌면 다소 거친 표현이 있더라도 열린 마음으로 이해해 주기 바라며 다음 연재에 실제 4원소를 활용한 데이터 모델링(엔터티의 조합)에 대해 이야기 해보겠다. (다음 회에 계속)

Posted by 글키우는 농부
:


이 연재는 분석시대가 도래했음에도 우리는 과거 데이터 저장-검색시대의 방법으로 데이터를 바라보고 관리하고는 있지 않은가에서 시작한다. △데이터의 단순 입출력의 편리성을 강조한 저장시대 △데이터의 정합성 및 검색의 용이성을 강조한 검색시대 △마지막으로 데이터베이스 내부의 데이터가 스스로 유기체의 성질로 변형되어 생명력이 존재하는 분석시대로 구분해 시기마다 데이터를 바라보는 관점이 다르고 관리하는 방법에서도 차이가 있음을 알아보고, 새로운 시각과 방법으로 데이터를 바라봐야 하는 이유, 어떤 변화가 필요한지를 독자와 함께 도출해 본다.

 

[연재순서]

1회: 분석시대의 탈구조적 데이터 모델링; 엔터티 해체 속성의 재결합
2회: 속성 고찰을 통한 엔터티의 분류(상)
3회: 속성 고찰을 통한 엔터티의 분류(하)
4회: 엔터티의 해체 그리고 속성의 재결합
5회: ICT 플랫폼 구축 사례를 통해 본 탈 구조적 모델링 방법

 

글: 이강욱 리안주식회사 수석 데이터 사이언티스트 allomyrina@gmail.com



 

이번 회에서는 우리가 흔히 속성이라고 부르는 것은 무엇인지 함께 생각해 보고 속성의 조합이라는 관점에서 우리는 어떻게 엔터티를 어떻게 바라보고 있고 우리가 갖고 있는 시야에서 놓치고 있는 것은 없는지, 그리고 다른 시야로 바라 볼 수는 있는지 독자와 함께 생각해 보도록 하자.

 

 

 

 

해마다 봄이 오면

봄의 전령사 하면 떠오르는 것은 십중팔구 꽃일 것이다. 출근 무렵 노란 개나리를 볼 즈음이면 아 봄이구나 느끼며 입고 있는 옷이 계절에 맞지 않음을 깨닫게 되고 하얀 벚꽃이 필 때면 차창으로 지나가는 하얀 꽃에 정신을 팔리게 된다. 꽃이 뭐길래? 엔터티에 대해 좀 진지하게 생각해 본 사람들은 한번쯤은 예로 들어본 말이 김춘수의 꽃이라는 시(詩)이기에 꽃에 대한 말로 운을 띄워 보았다.

잠시 시 한 편을 감상해보자.

 

내가 그의 이름을 불러 주기 전에는

그는 다만

하나의 몸짓에 지나기 않았다.

 

내가 그의 이름을 불러 주었을 때

그는 나에게로 와서

꽃이 되었다.

내가 그의 이름을 불러 준 것처럼

나의 이 빛깔과 향기에 알맞은

누가 나의 이름을 불러 다오

그에게로 가서 나도

그의 꽃이 되고 싶다.

 

우리들은 모두 무엇이 되고 싶다.

나는 너에게 너는 나에게

잊혀지지 않는 하나의 의미가 되고 싶다.

 

__꽃, 김춘수

 

 

엔터티의 느낌이 오는가? "우리의 시선이 머무는 곳에서 엔터티가 발견되고, 엔터티는 우리에게 잊혀지지 않는 의미가 되는 것." 얼마나 감동적인 광경인가? 하지만 현실은 아주 참담하다. 보통 1년 단위로 프로젝트는 시작되고, 해마다 봄이오면 새로운 프로젝트의 요구분석에 들어가고 우리가 바라보아야 할 꽃처럼 엔터티는 존재하지만, 아무도 거기에 시선을 주지 않고 프로젝트가 끝날 때쯤 '무언가 꺼림직한데?' 하는 일상을 반복한다. 우리 팀원들의 엔터티를 바라보는 시선은 어떨까?

 

대부분의 사람들이 우리 끼 차장처럼 엔터티에 대해서 정의하고 또 설명하고 있다. 필자 또한 엔터티에 대해 이야기 하라면 오라클에서 scott/tiger하고 들어가면 처음 보는 emp와 dept 테이블이 엔터티의 전형인양 배우고 후배들에게 알려 주었다. 다시 한번 우리 팀원들의 생각을 들어보자.

 

 

여러분 오늘은 제가 교수님처럼 질문을 해볼게요. 한번 답 좀 해 보실래요? 먼저 우리 팀에서 모델링을 제일 많이 해본 차장님께서 엔터티의 정의가 뭔지 팀원들에게 설명해 줄 수 있겠어요?

 

 

 

당연히 엔터티에 대해서는 제가 잘 알고 있죠^^ 제가 이래도 우리나라 중견 컨설팅 그룹 출신인걸요! ERP를 예를 들면 인사, 재무, 회계, 자산, 감사 이런 것들이 있고, 좀더 자세히 하면 인사에는 직원, 급여, 휴가 이런 게 있어요. 우리 팀원들이 알기 쉽게 좀 더 구체적으로 설명하자면, 자 직원이라는 엔터티가 있는데 여기에는 직원번호, 주민번호, 생년월일, 입사일, 직원구분 등등의 속성을 가지고 있어요. 어때요? 잘 알아 들으셨죠. 물론 초보적인 내용이라 다 알고 계시겠지만….

 

 

 

대부분의 사람들이 우리 끼 차장처럼 엔터티에 대해서 정의하고 또 설명하고 있다. 필자 또한 엔터티에 대해 이야기 하라면 오라클에서 scott/tiger하고 들어가면 처음 보는 emp와 dept 테이블이 엔터티의 전형인양 배우고 후배들에게 알려 주었다. 다시 한번 우리 팀원들의 생각을 들어보자.

 

곰 팀장: 님 생각이 어때요? 많이 배우셨어요? 혹시 좀 뭔가 빠진 느낌이 드는 건 없어요? 사수라고 편들면 안돼요. 솔직히 자신의 느낌을 말해 주세요.

 

강 사원: 음… 차장님이 설명은 잘해 주셨는데 좀 건너 띄고 말씀하고 계신 거 같아요.

 

 

 

 

 

곰 팀장: 뭔데요? 역시 우리 강 사원님이 좀 있으면 대리를 다시려나 열심히 공부한 거 같네요

강 사원: 부끄럽게요^^ 뭐 차장님도 잘 아시겠지만 UID-유일식별자에 대해서도 설명 안 하셨고, 마스터(master)랑 차일드(child) 관계에 대해서도 예를 안 드신 거 같아요.

곰 팀장: 아! 슬프네요. 윗물이 맑아야 아랫물이 맑다고 했는데, 강 사원을 가르친 끼 차장을 탓하자니 결국 저한테까지 책임이 몰려오네요.

끼 차장: 팀장님 무슨 말씀이세요. 제가 어디가 틀린 거죠?

곰 팀장: 제가 엔터티에 대해 정의를 해보라고 했지 언제 예시를 들라고 했나요? 혹시 누가 엔터티에 대해 정의를 내려 주실 분 안 계세요? 저는 우 대리님을 믿어요. 절 실망 시키진 않겠죠?

 

끼 차장님 그런 말 들으실 줄 알았어요. 끼 차장님은 실무에서만 능하시지 이론이 약하시다니까요^^ 엔터티는 실체에요. 리얼러티~~ 즉 실제 하는 모든 것이 엔터티에요.

 

 

 

곰 팀장: 우 대리님, 끼 차장 면박 줄 상황이 아닌 거 같은데요. 그것도 엔터티의 대상이지 정의라고 할 순 없잖아요. 팀원들 중에 '가방끈'이 제일 긴 양 과장님, 아니 양 박사님 우리 팀원들에게 가르침을 주시죠.

 

… 그냥 과장이라고 불러주세요. 엔터티를 정의하자면 '저장이 되는 어떤 것'을 말해요. Person, location, thing, event, concept의 집합이라고 할 수 있겠죠.

 

 

 

 

곰 팀장: 역시 가방끈 무시할 수 없네요. 우리 양 과장님이 현재까지 우리가 알고 있는 엔터티에 대해 잘 말씀해 주셨는데, 제 생각에 양 과장님이 정의한 엔터티는 현재 진행형이라고 밖에 말할 수 없겠네요. 엔터티가 말씀하신 대로 완료된 정의라면 수많은 현장에서 엔터티에 대한 고민 없이 사용하면 되지만, 실제 프로젝트에서는 그 고민을 다시 반복하며 새로운 시각으로 접근하고 있잖아요. 김춘수의 꽃이라는 시에 이런 구절이 있어요. "나의 이 빛깔과 향기에 알맞은 누가 나의 이름을 불러다오." 이 구절을 음미하며 엔터티에 대해 생각해 봤으면 해요^^

 

현재진행형인 엔터티의 정의

개괄: 사용하기 위한 정보를 관리하기 위한 집합

 

<표 1> 관점에 따른 정의

사용적

용도에 따라 관리가 필요한 모든 관심사

실존적

사람, 사물, 사건, 개념, 공간적 범위, 시간적 범위

형태적

데이터의 형태로 저장 가능한 모든 것

 

<표 2> 엔터티의 특성

식별성

유일한 식별자(UID)를 가진다

영속성

영속적으로 존재하는 속성들의 집합

참여성

업무에 연관되어 이용되어야 한다.

유형성

반드시 식별자를 제외한 하나 이상의 속성을 가져야 한다.

관계성

한 개 이상의 관계를 가져야 한다.

독립성

속성은 UID(유일식별자)를 제외한 내부속성에 의존성을 가져서는 안된다.

 

 <표 3> 유무형 기준에 따른 엔터티의 종류

유형

물리적으로 존재하는 엔터티

무형

관리 가능한 정보로 존재하는 엔터티

 

<표 4> 역할 기준에 따른 엔터티의 종류

마스터

독립적으로 존재하며 엔터티의 다른 엔터티의 Parent

트랜잭션

마스터 엔터티에서 업무에 따라 생성된 엔터티 마스터의 Child

히스토리

사건의 이력 엔터티

 

필자가 현재진행형인 엔터티 정의라 표현했지만, 현재진행형이라기보다 우리가 현재 모델링 단계에서 제일 많이 사용하는 엔터티의 정의라 할 수 있다. 이렇게 엔터티를 정의하면 엔터티를 모델링하는 데 더 이상 거칠 것이 없으리라 생각된다. 그런데 왜 현실에서는 그렇지 않을까? 상기의 엔터티 정의는 우리 모델링 "결과"의 "근거"는 될 수 있어도 모델링 "과정"의 "해결책"으로는 미흡해 보인다. 과거 필자의 경우를 보면, 엔터티를 모델링한 후 역으로 정의에 위반 되는 내용을 찾아 끼워 맞춘 적이 한두 번이 아니다. 내가 발견할 엔터티에 먼저 시선을 주었던 적이 없고, 내 마음속에 경험한 엔터티를 만들어 냈을 뿐이다. 어쩌면 막상 시선이 머물면 그 빛깔과 향기에 더 혼란스러울 수도 있을지 모르는 두려움이 우리의 시선을 막았을지 모른다. 용기를 내어 이제 한발 다가가 보자.

 

골드베르그 변주곡을 들으며

골드베르그 변주곡은 아리아를 시작으로 30개의 변주가 진행되면서 마지막에 다시 아리아로 끝나는 32개의 곡으로 이뤄진 바흐의 걸작 중 하나다. 32개의 곡이 모두 논리적으로 연결되어 있어 '세상에서 가장 지적인 음악(Music of Intellect)'으로 꼽히고 있다. 한 시간 정도 연주되는 곡은 앞으로 전진하는 시간 개념을 초월하여 청자(聽者)를 공간 안에서 사로잡는다. 필자는 골드베르그 변주곡을 떠올릴 때면 우리가 모델링하는 엔터티와 흡사한 부분이 많다고 생각한다. 모델링은 결국 정보 시스템 환경에서 엔터티를 발견하고 논리적으로 구성해 정보시스템 환경이 살아 있는 한 그 안에서 영속성을 가지고 시간을 초월하여 살아 있도록 하는 것이니까.

그럼 어떻게 하면 엔터티가 내게 다가와 의미 있는 존재가 될 수 있을까? 앞서 선배들이 엔터티에 대한 정의를 규정해 놓았으니 따라 가기만 하면 모두 해결되는 문제일까? 새로운 접근 시각은 없을까? 많은 물음이 몇 년 동안 필자를 괴롭혔던 내용이다. 팀원들과 이 문제에 대하여 토의해 보았다.

곱 팀장: 아까, 양 과장님이 알려 주신 엔터티의 정의와 제가 알고 있는 범위에서의 엔터티에 대한 정의를 다들 숙지하셨죠? 오늘은 회의 전에 여러분들이 엔터티에 대해 어떻게 생각하시는지 다시 한 번 알고 싶어요. 전 여러분들이 편해요. 다른 곳에서 이런 얘기 하면 돌 날라올지도 모르거든요. 그런데 여러분들은 제 말에 귀 기울여 주고, 적어도 제 앞에서는 개선된 의견을 제시해 주시니까요^^ 직급 순으로 얘기해 볼까요?

강 사원: 다른 건 그냥 대충은 이해가 되는데 관점에 따른 정의에서 (사용적-용도에 따라 관리가 필요한 관심사) → 엔터티의 특성 중에 (독립성 -속성은 UID(유일식별자)를 제외한 내부속성에 의존성을 가져서는 안 된다) → 이해가 잘 안돼요. 그건 좀 설명을 누가 해주셨으면 해요.

끼 차장: 독립성은 제가 설명해 줄게요. 독립성이란 엔터티의 속성에서 유일식별자에 모든 속성이 의존해 판단되어야지 엔터티를 구성하는 다른 속성의 변화에 영향을 받으면 안 된다는 거야. 예를 들면 직원이라는 엔터티에서 사원번호가 유일식별자라면 모든 속성은 사원번호에 영향을 받아야지 만약에 부서코드와 부서명이 둘 다 직원의 엔터티라면 이게 잘 못 됐다는 거야. 알았지, 강 사원?

강 사원: 무언지 잘 모르겠어요. 부서코드랑 부서명이랑 둘 다 사원번호에 영향을 받지, 이게 왜 잘못된 거죠?

곰 팀장: 다들 이제 어느 정도 우리가 엔터티에 대해 얘기할 수 있는 정도까진 온 거 같네요.

기존에 있는 걸 모르고 발전할 수는 없겠죠. 이제 좀 다르게 접근해 볼게요. 다시 한번 엔터티를 설명해 보면, 엔터티는 어떤 개체들이 모인 집합이고, 그 개체들의 특성을 설명하는 속성으로 구성돼 있다고 할 수 있죠? 그럼 속성은 엔터티에 종속되어 존재하는가, 아니면 속성은 엔터티와는 무관하게 독립적으로 존재하는가에 대해 의견을 들어보고 싶어요. 변주곡처럼 속성이라는 주제를 가지고 자유롭게 엔터티가 생성되는가, 아니면 속성은 항상 엔터티에 의존성을 가지고 움직일 수밖에 없는가 하는 문제에 대해 얘기해 보도록 하죠. 생각할 시간을 드릴 테니 생각이 끝나면 우 대리님부터 말씀해 보시죠.

우 대리: 잘 이해는 안 가지만 전 속성은 엔터티랑은 별개라고 생각해요. 항상 모든 물질은 물질의 특성을 갖는 분자라는 것이 있고 분자를 구성하는 원자라는 것도 존재하니까 전 엔터티는 분자라고 생각하고 속성은 원자라고 생각해요. 물은 특성이 있으니 분자(엔터티)이고, 분자를 이루는 속성(원자)은 수소 2 개 산소 1 개 이렇게 구성되지 않겠어요?

양 과장: 차장님 잘 설명해 주셔야죠, 역시 차장님은 실무에만 강하세요^^ 강 사원 잘 들어요. 만약에 부서코드가 바뀌면 당연히 부서명도 바뀌지? 그럼 당연히 부서명은 부서코드에 의존성을 가지니까 결국 사원 엔터티의 본질적 속성은 아니라는 거지. 테이블에서 역정규화로 그렇게 쓸 수는 있겠지만, 만약에 진짜 직원 엔터티를 이렇게 모델링했다면 잘못된 모델링이라는 말이야. 그리고 관점에서 사용적(용도에 따른 관심사)이라는 말은 이렇게 이해하면 돼. 눈에 보이거나 개념적인 건 보통명사 형태로 떨어지는 거고, 관심사라는 건 고객이 요구하는 활동 같은 거야. 예를 들면 감사, 검수, 청구 같은 거지. 

양 과장: 와!! 우리 우 대리 대단한데. 나도 우 대리 생각에 동감이야.

곰 팀장: 아직까지 뭐라 딱히 반박은 못하겠는데요. 혹시 다른 의견 있으면 말씀해 주세요.

강 사원: 다른 의견을 내 놓으시라니까 말씀 드리는 건데요. 유일식별자라는 것이 있다고 했는데, 그건 항상 엔터티에 따라 다니는 거 아닌가요? 사원번호는 직원이라는 엔터티 외에서는 쓸 일이 없을 거 같고, 부서코드나 부서명 같은 것도 부서라는 엔터티 외에는 쓸 일이 없을 거 같아요.

끼 차장: 그렇지. 엔터티의 존재가 먼저고, 우리는 거기서 속성을 발견 하는 거야. 속성은 엔터티에 종속적일 수 밖에 없다고.

곰 팀장: 어라? 남자 vs. 여자로 편이 갈렸네요. 건전한 토의에서 편이 나뉘는 건 좋지만, 프로젝트 진행에서 편이 나뉘는 건 별로 좋지 않아요^^ 그러면 여자 쪽에 질문해 볼게요. 모든 원자가 자유롭게 결합해 엔터티가 생긴다면 그것을 결정해주는 요인은 뭐죠? 만약에 특징을 갖고 있는 속성이 모여서 엔터티가 된다면 너무 규칙이 없지 않을까요? 그럼 엔터티가 생성되는 규칙은 뭐가 될까요?

우 대리: 저도 끼 차장님 의견으로 갔어요. 죄송해요, 양 과장님!

양 과장: 자기가 먼저 의견을 내 놓고 그러는 게 어딨어? 누가 뭐래도 전 속성은 독립적이라고 생각해요. 엔터티의 종류는 변했어도 거기에 사용하는 속성이 변하는 건 못 봤거든요. 아직 생성규칙은 생각해본 적 없어요.

곰 팀장: 이제 남자 대 여자가 아니라 학사 대 박사의 대결 구조가 되었네요. 이번에는 학사 쪽에게 질문해 볼게요. 속성이 엔터티에 종속적이라면 논리 모델만 가지고 볼 때 하나의 정보시스템 내에서는 모든 속성이 한 번만 사용되지 않을까요? 다시 말하면 서로 다른 엔터티는 같은 속성을 가지고 있으면 안 되는 거 아니에요?

우 대리: 그거야 당연하죠. 속성이 여러 군데 쓰이는 건 잘못된 모델링 아닌가요?

곰 팀장: 우 대리님이 이번에는 적극적이네요. 양 과장님한테 나중에 눈총 받으시면 어쩌시려고^^ 그러니까 최소한 논리 모델링에서의 엔터티는 자기만의 고유 속성이 있고, 서로 다른 엔터티는 관계에 의해 참조만 하면 된다는 말씀이죠.

끼 차장: 현실적으로 그렇게 모델링은 하지 않지만 그게 맞는 거 아닌가요? 참조무결성을 유지하려면 그렇게 해야 되는 거죠.

양 과장: 차장님, 그럼 생성일시 같은 속성은 뭐에요? 다른 엔터티에서 참조하는 것도 아니고 엔터티마다 동일하게 존재하는데 그런 건 어떻게 설명하실 거죠?

끼 차장: 그거야 엔터티 이름을 붙여야지. "사원생성일시", "부서생성일시" 이렇게 말에요.

양 과장: 말도 안돼요. 그럼 삭제구분 이런 건 "사원삭제구분", "부서삭제구분" 이렇게 속성을 명명 하시겠네요.

곰 팀장: 자자, 열기를 가라 앉히시고 두 팀의 주장이 일부 옳고 일부는 충돌되는 부분도 있는 것 같고. 서로의 주장도 알았으니 지금 얘기하는 제가 정리를 해 드릴 테니 다음 시간에 얘기해 보시죠. 그럼 그전에 지금이라도 자기 주장을 바꾸고 싶으신 분들은 말씀해주세요.

강 사원: 저는 양 과장님 편으로요.


팀원들의 주장 모두 일리가 있지만, 서로의 근본 생각에서는 큰 차이를 보인다. 하지만 하나의 공통점이 있다. 기존 모델링을 살펴보면 모델링 결과가 동일했다는 것이다. 자신들의 주장을 근거로 기존 모델링 결과와 새로운 모델링의 결과 사이에 차이를 보인다면, 그 결과가 오히려 안 좋게 나올지라도 엔터티와 속성에 대한 생각은 좀 더 성숙해 질 것이다. 서두에 말했듯이 이제는 엔터티를 바라보고 의미를 부여할 수 있기 때문이다.

 

천개의 고원

들뢰즈와 가타리의 『천개의 고원』은 그들이 정의하는 고원에서 수많은 다른 다양성과 접속 가능한 모든 가능성을 얘기하고 있다. 우리가 엔터티를 바라보는 시각은 구조주의 세계관 속에서 미리 정의된 엔터티에 대한 구조로 인하여 제한 받지 않고 있는지 살펴볼 필요가 있다. 그래서 탈구조화(해체)를 통해 속성을 다시 재조합하는 방법을 사용하고자 『천개의 고원』의 일부를 인용해 다음과 같이 표로 정리했다.

<표 5> 사고의 두 가지 유형

리좀이란 뿌리와 줄기를 구분할 수 없는, 반(反)계보적인 식물이다. 리좀은 다음 네 가지 원리적 특성을 가진다. 첫째, 접속과 이질성. 접속은 두 항이 '그리고...그리고'라는 식으로 등가적으로 만나 새로운 제 3의 것을 생성하는 것이다. 예컨대 우리의 입은 음식과 접속하여 먹는-기계가 되지만, 성대와 접속하여 말-기계가 된다. 한편 이질성은 접속되는 두 항이 전혀 다른 것인 경우에도 접속을 허용하는 것이다. 막스는 프로이트, 헤겔과 접속하여 프랑크푸르트 학파의 기계로, 레닌과 접속하여 볼셰비키의 기계로, 휴머니즘과 접속하여 사르트르의 기계로, 구조주의와 접속하여 알튀세의 기계로 사용된다. 둘째, 다양체. 다양체는 하나의 척도나 원리로 환원되지 않는 이질적 흐름의 집합으로서, 하나의 요소가 추가 되었을 때, 단지 종류만 증가하는 것이 아니라 전체가 변화하는 것이다. 셋째, 탈기표적 단절. 탈기표적 단절은 당연한 듯이 보이는 기표의 분절(절단)선을 탈주하는 것이다. 당연한 듯이 보이는 것은 우리가 관습적으로 믿고 따르는 한계선이다. 예컨대 '사람/물고기'의 가운데 "/"는 사람과 물고기라는 기표를 절단하고 있지만, 사람/물고기의 절단선을 무효화하면서 '사람의 물고기-되기'라는 탈주(단절)가 가능하다. 요가에는 물고기 체위라는 것이 있는데, 이 체위는 단지 물고기를 사람이 흉내 내는 것이 아니다. 이는 사람이 물고기와 만나며, 물고기의 감응을 생산하는 체위인 것이다. 넷째, 지도만들기와 데칼코마니. 지도의 본질은 '재현'에 있는 것이 아니라 행동의 경로와 진행, 분기 등을 표시하여 행동의 지침으로 삼는 다이어그램을 '제작'하는 데에 있다. 또 물감이 묻은 원본 한 면이 빈 도화지의 반대 면에 찍힐 때 원래 면이 변형을 겪는 것처럼, 지도(다이어그램)가 다시 현실을 변형시킨다는 의미에서의 데칼코마니이다

나무는 뿌리-줄기-가지라는 중심성을 가지며, 이러한 중심으로 환원되는 체계성을 가진다. 이 중심이 '근원', '제 일 원인', '일자(一者)', '신' 등을 지칭하는 한, 나무는 중심성과 더불어 초월성을 부여받게 된다. 양의 동서를 막론하고 이와 같이 초월하는 중심을 가정하고, '이다'라는 동사를 강조하는 사유가 있다면, 이 사유를 나무형 사유라고 부를 수 있을 것이다.

인용 출처: 『천개의 고원』, 새물결 간

 

곰 팀장: 요즘 인문학 열풍이 온 나라를 뒤덮고 있네요. 그래서 본인도 인문학 열풍에 휩싸여 책 좀 읽고 있어요. 여담이지만 EBS 인문학 강의를 봤더니 그런 내용이 나오더라고요. 국가 발전의 초기에는 법학, 정치학, 경제학이 그 나라의 학문을 좌우 한데요. 그 다음은 경영학, 신문방송학이 인기가 있고 다음으로 인문학, 마지막으로 제국을 꿈꾸는 나라들은 고고학, 인류학이 인기가 있다고 하데요. 우리나라에 불어 닥친 인문학 열풍은 우리 사회가 발전하고 있다는 긍정적 신호라 생각하니 기분이 좋네요.

 

끼 차장: 팀장님, 요즘 왜 자꾸 선문답 같은 것을 하셔서 긴장 되게 하시나요? 오늘은 어떤 주제로 우리를 괴롭히실지 혹시 가을도 아닌데 독서하라는 경영지원팀의 권고라도 나왔나요?

곰 팀장: 아뇨. 우리가 너무 우리 업무 분야에만 매달리니까 사고의 폭이 좁아지는 거 같아서 다른 학문에도 우리가 생각하지 못한 적용할 사상이 있나 생각 중이었어요. 혹시 여러분들 중에 최근 몇 달 사이 읽으신 책들 있어요? 전공서적이나 우리 업무 관련 서적 말고요.

양 과장: 우리 같은 주부들은 일 끝나고 가면 시간이 하나도 없어요. 우 대리나 강 사원은 아직 미혼이니까 책 볼 시간이라도 있겠죠.

우 대리: 무슨 말씀 이세요. 우리는 데이트할 시간도 없는데, 책 읽을 시간이라뇨. 과장해 말하면 월화수목금금금인데.

곰 팀장: 그래서 제가 오늘은 여러분을 대신해 책을 읽고 느낌 점을 토의해 보려고요. 좀 전에 드린 건 『천개의 고원』에 나오는 내용을 제 나름대로 발췌한 거에요. 이건 시간 날 때 읽어 보시고요. 대충 요약해 드리면 뭔가 비교대상을 삼아 비판하고, 새로운 사유의 방법을 제시하고 있죠? 오늘 우리 팀원들께 하고 싶은 얘기는 이거에요. 우리의 패러다임을 바꾸자.

강 사원: 원래 잘 모르지만, 오늘은 더 어려운 거 같은데요. 접속, 기표, 분절, 탈주 이런 게 나오면 전 알러지가 나요. 오늘도 팀을 나눠 얘기하는 거라면, 전 무조건 양 과장님 편을 할래요.

끼 차장: 강 사원, 내가 문과 출신인 거 모르지? 한때 나도 시인을 꿈꿨다고. 지금도 학창시절 친구들이 나를 보면 저잣거리에 나온 시인 같다고 측은해 한다고.

곰 팀장: 다들 진정하세요. 처음에는 잘 안 와 닿을지 모르지만, 그렇게 어려운 내용은 아녀요. 패러다임을 바꾸자 라는 말 속에 힌트가 있어요. 인문학의 시작은 텍스트의 분석이니까 "패러다임을 바꾸자"라는 텍스트에서 느낄 수 있는 건 뭘까요?

우 대리: 패러다임? 방금 인터넷을 검색해 보니까 "어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계 또는 사물에 대한 이론적인 틀이나 체계"라고 나와있네요^^ 오늘은 제가 선수를 쳤죠?

강 사원: 오늘은 우 대리님의 컨디션이 좋으신데요.

곰 팀장: 패러다임에 대해 정의해 주신 건 너무 좋은데, 제가 텍스트를 분석하자고 한 거는 그것 때문이 아닌데요. "패러다임을 바꾸자"에는 "패러다임"과 "바꾸자"가 나오죠. 먼저 분석대상은 "바꾸자"에요. – 무엇을? 패러다임을 – 여기 텍스트가 의미하고 있는 것은 바꿀 대상으로서의 패러다임이 존재한다. 그럼 패러다임은 무엇인가에 대한 정의가 내려지고, 우리가 지금 갖고 있는 패러다임은 무엇인가에 초점이 먼저 맞춰지고, 그 다음에 바꿀 패러다임은 어떤 것인가가 텍스트 분석이라고 생각되는데, 제 생각에 이견 없으세요?

양 과장: 아! 알았어요. 그러니까 우리가 엔터티를 바라보는 방식을 바꿔 새롭게 엔터티를 보자는 말씀이잖아요.

강 사원; 역시 양 과장님 편을 하길 잘했어요.

끼 차장: 야, 넌 무슨 박쥐야? 아니지, 박쥐는 왔다 갔다 하는 거지. 가만 보니까 자기 주장은 안 하고 어디 묻어가려고 하는데, 그렇게 추임새만 넣지 말고 너도 뭔가 의견 좀 내봐라.

양 과장: 차장님! 강 사원이 판단은 잘해요. 뭐, 제 말에 틀린 게 있어요? 그걸 얘기하죠^^ 우 대리도 나랑 같은 생각이지?

끼 차장: 그거야, 당연한 거니까 그런 거지. 그건 팀장님이 계속 얘기한 걸 보면 누구나 알 수 있는 상황 아니에요? 이제까지 계속 엔터티 얘기만 했는데.

우 대리: 전 그냥 듣고만 있을래요.

곰 팀장; 오늘 제가 좀 어려운 얘기를 해서 그런지 다들 조금씩 제가 생각하는 답변보다 미흡한 거 같네요. 전 "방식을 바꾸고 새롭게 보자"라는 말에는 동감인데요. 제가 원하는 답은 "바꿀 방식이 무엇인가?"에요. 제가 한 말의 뜻이 어렵죠? 제가 오늘 얘기하고자 하는 핵심이니까 전부 조금만 생각해주고 답을 주실 수 있어요? 맞추면 식권 10장 걸죠.

우 대리: 듣고만 있을라고 했더니 안 되겠어요. 제가 팀장님 생각을 맞춰 볼게요. 엔터티를 속성 중심에서 바라 볼 거냐, 아니면 엔터티 중심에서 바라볼 거냐, 이걸 바꾸라는 거잖아요.

강 사원: 제가 좀 늦었네요.

곰 팀장: 역시 끼 차장님은 실무적용에 진짜 능하세요. 시인 안 하시고 이쪽 분야로 오기를 잘하셨어요. 식권 10장은 못 드리겠지만, 오늘 점심은 제가 살게요. 그냥 제가 하려는 답을 말씀 드릴게요. 우리가 엔터티를 바라보는 방식, 즉 패러다임은 구조주의 사고를 통해 바라보고 있어요. 처음에 "엔터티의 정의"가 무엇인가에 대해 얘기한 적이 있죠? 그 정의 자체가 구조주의 사고관에서 발생한 거에요. 엔터티는 무엇이고, 어떤 특징을 가지고 이런 패턴들이 모여서 이루어진 것이 엔터티다 등…. 이렇게 엔터티를 정의해 놓고, 우리는 미리 정의된 곳에 엔터티를 껴 맞추고 있죠. 구조주의가 지배하는 세계관에 익숙해 있어서 이런 것들이 아주 자연스럽게 우리 사유 체계 자체를 바꿔 놓았어요. 그런데 제가 다시 생각해 보자고 한 방식은 이런 구조주의를 해체 후 다시 재결합하고자 하는 해체에 대해 생각해 보자는 거에요. 이건 제 생각이 아니라 여러 곳에서 시도되고 있어요. 예시에 든 "입"을 가지고 생각하면, "입은 무엇 무엇이고 어떤 특징을 가진다"는 생각은 구조주의적 사고에요. 반면 우리가 "입이라는 단어가 접속을 통해 먹는-기계, 말-기계가 된다"고 생각하는 것은 탈 구조적 사고에요. 뭔가 엔터티에 느낌이 오지 않나요? 제가 응용해 보면 생성 시간이 직원과 결합하면 직원생성시간 이렇게 되는 거고요. 물론 끼 차장님이 말씀한 "직원생성시간"이라는 속성과는 아주 많은 차이가 있어요. 그럼 어떻게 탈구조화해야 할지는 다음에 엔터티를 해체하면서 얘기해 보도록 하죠.

곰 팀장: 끼 차장님도, 양 과장님도 다들 동의하세요?

양 과장: 네

끼 차장: 저는 아니에요. 우 대리 말대로라면 속성 중심으로 바라보는 사람은 엔터티 중심으로 바라보고, 엔터티 중심으로 바라보는 사람은 속성 중심으로 바라보라는 말이니까 결국 A=B, B=A 계속 빙글 빙글 돌잖아요.

 

구조주의는 내부의 정교한 논리구조를 지니고 있어 많이 쓰이고 있다. 그런데 점점 세상이 발전하고 환경이 복잡해 지면서 논리구조의 한계점이 많이 드러나 대안으로 탈구조주의가 대두되고 있다. 인문과학 분야에서는 탈구조주의가 점점 많이 사용되고 있다. 필자는 탈구조주의에 대해 아주 조금밖에 알지 못하지만, 엔터티를 바라보는 패러다임을 탈구조주의에 입각해 적용해 보려고 한다. 이제 우리의 엔터티를 알아 보았으니, 엔터티에서 속성을 해체해 속성에 대해 살펴보고 엔터티와 어떤 연관을 갖는지 알아보겠다.

금회에 속성의 해체에 대한 내용까지 진행하려 하였으나, 분량이 너무 많아 2회를 두 회 분량으로 나누었다. (다음 회에 계속)

출처: DBGuide.net

Posted by 글키우는 농부
:


이 연재는 분석시대가 도래했음에도 우리는 과거 데이터 저장-검색시대의 방법으로 데이터를 바라보고 관리하고는 있지 않은가에서 시작한다. △데이터의 단순 입출력의 편리성을 강조한 저장시대 △데이터의 정합성 및 검색의 용이성을 강조한 검색시대 △마지막으로 데이터베이스 내부의 데이터가 스스로 유기체의 성질로 변형되어 생명력이 존재하는 분석시대로 구분해 시기마다 데이터를 바라보는 관점이 다르고 관리하는 방법에서도 차이가 있음을 알아보고, 새로운 시각과 방법으로 데이터를 바라봐야 하는 이유, 어떤 변화가 필요한지를 독자와 함께 도출해 본다.

 

[연재순서]

1회: 분석시대의 탈구조적 데이터 모델링; 엔터티 해체 속성의 재결합
2회: 속성 고찰을 통한 엔터티의 분류(상)
3회: 속성 고찰을 통한 엔터티의 분류(하)
4회: 엔터티의 해체 그리고 속성의 재결합
5회: ICT 플랫폼 구축 사례를 통해 본 탈 구조적 모델링 방법

 

글: 이강욱 리안주식회사 수석 데이터 사이언티스트 allomyrina@gmail.com

 

 

 

 

정보환경의 생태계는 엄청난 변화가 일어나고 있다. 내부적으로는 정보 인프라의 발전과 외부 요인으로는 새로운 고품질 서비스에 대한 요구에 따라 최근 몇 년간 그 변화의 주기 또한 점점 짧아지고 있는 게 현실이다. 생태계의 변화는 정보 시스템에도 새로운 변화를 요구하고 있고, 정보 시스템의 가장 밀접한 객체인 데이터 분야의 변화 요구는 변화 진폭의 가장 높은 자리를 차지하고 있다. 데이터 웨어하우스, 메타데이터, 마스터데이터, 빅데이터 등은 몇 년 사이 데이터 관련 기관 및 업계에서 화두로 나왔던 말이다.

데이터를 바라보는 새로운 패러다임들이 왜 갑자기 쏟아져 나오게 된 것일까? 아마 하나의 방법으로는 변화를 대처할 수 없어서였을 것이다. 그럼 이런 개념들이 필연적으로 나올 수밖에 없었던 원인을 찾아 데이터베이스의 시대적 변화를 분류해 보면 어떨까?

필자는 △데이터의 단순 입출력의 편리성을 강조한 저장시대 △데이터의 정합성 및 검색의 용이성을 강조한 검색시대 △마지막으로 데이터베이스 내부의 데이터가 스스로 유기체의 성질로 변형되어 생명력이 존재하는 분석시대로 나누어 보았다.

각 시기마다 데이터를 바라보는 관점이 다르고 관리하는 방법에서도 차이가 있다. 분석시대, 그럼에도 우리는 과거의 방법으로 데이터를 바라보고 관리하고는 있지 않은가에 대해 생각해 보고 새로운 시각과 방법으로 데이터를 바라보고자 한다.

본격적으로 글로 들어가기에 앞서 다음을 되짚어 보기 바란다. 우리는 구조주의 세계관에 입각하여 사물을 바라보지 않는가? 즉 우리의 데이터를 바라보는 시각이 구조주의와 밀접하지 않는가이다. 구조주의는 설명의 용이성과 자체 논리성을 갖고 있지만 다양성에 취약한 구조주의 한계로 인해 탈 구조주의 즉 해체와 재결합을 통한 사물을 재발견하는 철학 사상이 사회학 여러 부분에서 적용되어 오고 있다. 데이터 분석시대 과연 탈 구조적 방법을 이용한 해체와 재결합이 데이터에 적용 될 수 있는지 필자의 생각을 펼쳐나가 보겠다.

들어가며

'아기 예수를 바라보는 20개의 시선'은 갓 태어난 아기 예수를 바라보는 육신의 부모, 하늘을 연구하다 별을 따라 동쪽에서 온 박사들, 밤새 양을 지키다 천사의 소식을 듣고 모인 목동들과 아기 예수를 보내신 하늘에 계신 성부의 시선(혹은 생각·명상)이라는 주제를 가지고 기독교의 핵심 진리인 '구속사'에 대해 표현한 2시간 가량 연주되는 메시앙의 피아노 작품이다.

DB 아키텍처 설계와 모델링을 해오면서 필자가 엔터티(Entity)를 볼 때마다 항상 머리에 떠 오르는 단어가 바로 '엔터티를 바라보는 여러 가지 시선'이다. 엔터티를 바라보는 DA의 시선, 모델러의 시선, 개발자의 시선, DBA의 시선, 정보서비스 관계자의 시선 등. 하지만 '아기 예수를 바라보는 20개의 시선'이 조화와 통일성이 있어 이를 통해 존재를 바라보는 모든 이의 시선을 만족 시키는 것이었다면, 엔터티를 바라보는 시선은 갈등과 분열의 감정을 제공한다. 분명 모두의 시선이 향후 구축해야 할 정보 서비스를 위해 있는데도 '왜 정보서비스 시스템의 가장 중요한 객체 가운데 하나인 엔터티에 대해서 곱지 않은 시선을 가지고 있을까?'를 자문해보지만, 답은 역시 우리 스스로 이미 느끼고 있을 것이다. 바로 우리가 바라보는 엔터티가 모두의 시선을 만족시키지 못하기 때문이다. 어쩌면 우리가 각자의 시선대로 해석해 설계한 엔터티가 타인의 시선에게는 만족감을 주지 못할 수밖에 없다는 방법론적 문제라는, 우리의 치부를 드러내지 못하고 있거나 아니면 엔터티 스스로가 모두를 만족 시킬 수 없다는 원칙적 한계를 가진 존재일 가능성도 있기 때문일 것이다.

이제 열린 마음으로 생각해보자 엔터티 설계의 방법론적 문제라면 그 방법론에 대해 재고해 보고 만약 엔터티가 지니는 태생적 한계라면 그 대안에 대해서 생각해 보자.

엔터티의 탄생과 바라보는 시선의 변화

'한처음에 하느님께서 하늘과 땅을 창조하셨다.' 성경은 처음 이렇게 시작되어 만물이 완전한 모습으로 탄생되었다고 기록하고 있다(성경, 한국천주교주교회의, 2005). 하지만 우리 피조물들이 만드는 것이야 완벽한 것이 없기에 만든 사상, 제도, 물건들은 필요에 따라 변화하고 창조 → 변화의 필요성 대두 → 재창조의 과정을 거치는 것이 숙명이다. 엔터티(Entity)도 마찬가지다.

모델러나 개발자가 아니어도 지금 이 글을 읽고 있는 사람이라면 누구나 엔터티를 만들어 보았을 것이다. 컴퓨터에 폴더를 만들어 본 사람이라면 모두 엔터티를 만들어 본 사람이다. 그럼 원론적으로 물어보자. '왜 폴더를 만들까?'

1. 저장을 쉽게 하기 위해

2. 저장된 파일을 쉽게 찾기 위해

 

여러분은 어떤 답을 생각하였는가? 아마 1번을 선택한 사람(극소수)도 있고, 2번을 선택한 사람도 있을 것이다. 필자가 소속된 회사의 팀원 8명은 모두 2번을 선택했다. 이번에는 바꿔서 질문을 해보겠다. '왜 엔터티를 만들까?'

1. 저장을 쉽게 하기 위해

2. 저장된 데이터를 쉽게 찾기 위해

 

역시 이번에도 우리 팀원들은 모두 2번을 선택했다. 그럼 답은 무엇일까? 2번이 진정한 답일까? 결론을 내리기 전에 팀원들과 대화 내용을 구성해 보겠다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


자, 여기까지 대화한 내용을 가지고 여러분의 답도 변함이 없는지 물어보고 싶다. 필자가 말한 '데이터 쉽게 찾기'와 'select'의 차이는 뭔지 한번 생각해 보기 바라며, 팀원들과의 대화 내용을 이어나가 보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

이상이 필자가 팀원들과 나눈 대화 내용이다. 아마 여러분들도 계열적으로 구성된 대화 내용을 읽으며 생각의 변화가 있었으리라 짐작한다.

<표 1> 역할별 관점과 엔터티 관심도

역할

공통 관점

역할로서의 관점

엔터티 관심도

DA

데이터 관리

정보 시스템의 통합 등 향후 모델의

변화

모델러

데이터 관리

정보 시스템의 현재 역할 데이터의

정합성, 모델의 간결성

DBA

데이터 관리

데이터의 정합성, 성능

개발자

데이터 관리

정보 시스템의 현재 역할 및 성능

정보 서비스

관계자

데이터 관리

정보 시스템의 현재 역할,

향후 정보 시스템의 변화

상~하

 

이제 처음 질문한 것에 대한 필자의 생각(답이라 표현하지 않은 것은 필자의 생각과 다른 의견도 있으리라 생각되고, 이는 '정반합'보다 더 발전된 결과를 가져올 수 있으리라 생각한다)을 정리해 보겠다. 잠시 첨언해 두면 인간이 만든 제도 중 가장 논리적으로 설계한 제도 가운데 하나가 법제도인데, 여기에는 항상 원칙과 예외라는 것이 존재한다.

이율배반적으로 들릴지라도 예외가 존재하는 것은 원칙을 완벽하게 하기 위해서다. 사회시스템이 복잡해 질수록 원칙으로 수용할 수 없는 현상이 생기고, 그 존재를 완벽하게 하기 위해 예외 조항들이 나오며 예외 조항이 일정 수준을 넘어가면 현상을 새로 분석해 새로운 패턴의 원칙이 생기는 것이다. 정보 시스템이 복잡하지 않은 경우, 극단적으로 개인이 스스로 폴더를 만드는 경우에는 엔터티 구성의 목적이 데이터를 쉽게 찾기 위한 것이라고 100% 가까이 말할 수 있을 것이다.

하지만 정보 시스템이 점점 복잡해 지면서 예외현상들이 조금씩 나타나고 있다. 잠시 정의를 내리자면, 앞서 팀원들과 나눈 대화에서 나타났듯이 원칙, 즉 데이터를 쉽게 찾기 위한, 좀 더 세련되게 말하면 '데이터 관리를 위한 목적'이라는 원칙은 아기 예수를 바라보는 모든 시선 속에 있던 공통된 경건함을 잃지 않았다. 하지만 1차적으로 원칙을 보완할 예외사항이 발생했다. 바로 개발의 편의성이 고려돼야 하기 때문이다. 엔터티는 이 예외사항을 수용해 변화하고 있다. 물론 그 본질적 경건함은 잃지 않는다는 원칙을 수용한 채로 말이다.

닭이 먼저일까 달걀이 먼저일까?

이게 무슨 우문인가 하고 생각할지 모르겠다. 그런데 대답에 따라 그 사람의 근본 생각에서는 완전 반대의 경우가 발생한다. 달걀이 먼저라고 생각하는 사람은 아마 무신론자이며, 닭이 먼저라고 생각하는 사람은 기독교인일 것이다. 이유는 무신론자이면 아주 기초적인 생물부터 점점 진화해 고등생물이 되었다고 생각하기에 근원이 되는 닭은 존재하지 않지만, 어느 순간 닭과는 다른 생물로부터 닭이 되는 알이 탄생하기 때문에 그 알(달걀, 달걀이란 말 자체에 모순성이 있긴 하지만)이 우선일 거라 생각할 것이다. 반면 기독교인이라면 완벽한 모습으로 창조되었다는 성경에 기초를 두기에 당연히 닭이 먼저일 거라 생각할 것이다. 하지만 비슷한 질문을 위한 예비 단계이니 다음 질문에 대한 대답을 생각해주기 바란다.

그럼 속성이 먼저일까 엔터티가 먼저일까? 고민해보면 좀더 명확하게 엔터티를 바라볼 수 있을 만큼 자신의 시각을 확장할 수 있을 것이다. 그렇다면 독자가 생각하는 먼저라는 근거는 무엇인가? 좀더 생각할 시간을 갖기 위해 우리 팀원들로부터 의견을 다시 들어 보았다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

앞서 질문에 대한 독자들의 대답과 의견이 궁금하지만, 아마 우리 팀원들과 마찬가지로 의견이 나뉘었으리라 생각된다. '논란과 공감'은 문자 그대로는 반대되는 말이지만, 두 단어는 같은 지향점을 갖고 있다. 주장이나 의견에 대해 마음 속에 씨앗을 심었고 그 씨앗이 발아하기 위한 밑거름이 되어가는 현상이기 때문이다. 일반적인 정보 서비스 환경에서 아키텍처를 설계하거나 모델링을 할 때 우리는 기계적으로 먼저 간 선배들의 발자국을 따라 작업을 수행한다. 서비스 모델을 분석하고 개념모델을 만들고 논리모델을 만들고 물리모델을 만들어 내는 일련의 작업이 진행된다. 그러다 보니 엔터티와 속성의 관계는 당연히 주종관계를 벗어날 수 없다. 물론 이런 방법론이 전적으로 잘못 진행됐다고 비판할 수는 없다. 하지만 약자의 편을 든다면 엔터티는 단순한 속성 모음의 정의라고도 볼 수 있다. 'A도 옳고 B도 옳다'는 말의 속 뜻은 A와 B가 장단점을 상호 보완적으로 갖고 있다는 말이 아니라(물론 그런 생각이 없지 않겠지만), 진정한 속 뜻은 엔터티의 실체를 다시 한번 생각해 창조의 작업을 수행하자는 것이다.

잠시 대화에서 언급했듯이 필자는 현재 수행중인 프로젝트에서 속성이 먼저라는 생각을 갖고 엔터티를 설계하고 있다. 앞으로는 이런 데이터 모델링 세계관을 갖고 엔터티에 접근해 보겠다. 다음은 일반적으로 엔터티를 설계할 때의 모습이다.

<표 2> 일반적으로 엔터티를 설계할 때의 모습

설계 방법

엔터티 설계절차

수행 방법

나타나는 현상

모델러의 방법

1. ISP/EA 분석

SRM, DRM 분석

거의 DRM에 의존

2. 개념모델 설계

DRM에 의존해 엔터티 확정

PK 나옴

3. 논리모델 설계

PK를 가지고 속성을 찾음

정규화 진행

속성 도출

4. 물리모델 설계

엔터티를 테이블로 속성을 컬럼으로 변화 후 역정규화

테이블 컬럼 도출

개발자의 방법

1. 제안서 분석

제안서의 TO-BE 모델 분석

TO-BE의 화면에서 속성 짐작

2. 화면 프로토타입

설계

제안서와 분석과정에서 새로 도출된 내용으로 화면설계

속성 도출

3. 물리모델 설계

화면에서 보여주는 속성을 모아 테이블 설계

물리 모델 완성

4. 논리모델 설계

물리 모델을 가지고 논리모델 리버스

완료

 

춘추전국시대

논란은 발전의 씨앗과 그 발아라고 안전장치를 마련했으니, 과감히 엔터티 비판을 시작하겠다. 과거에 필자가 설계했던 데이터 모델들을 보면 과히 엔터티의 춘추전국 시대를 보는 것 같다. 나는 어떤 원칙을 가지고 엔터티를 설계했던 걸까? 하는 자괴감 마저 들고 있다. 수백 개의 테이블들 중에 과연 어느 것을 엔터티라고 정의할 수 있을까? 분명 처음에는 원칙이 있었을 텐데 서비스 환경의 변화로 많은 예외사항을 수용해야 했고, 그 예외사항들이 아직도 새로운 원칙의 패턴을 찾지 못한 채 자신이 그 해답이라는 듯 보였다. 마치 고대 중국에서 동주가 약해지면서 수많은 제후국들이 패권을 쟁취하기 위해 난립하는 현장을 필자의 ERD(Entity Relationship Diagram)에서 보았다. 자, 그럼 하나하나 문제점을 살펴 보자.

 

 

 

 

 

 

 

 

 

 

 

 

1. 사용하지 않는 엔터티

제일 심각한 문제는 현재 사용되지 않고 향후에도 사용되지 않을 것 같은 엔터티다. 자산과 임대라는 엔터티를 처음 분석 당시에는 설계했지만 임대 부분이 사업의 변화로 현재 사용되지 않고 있으며, 거기 있는 데이터도 더 이상 이용되지 않고 있었다 관련 테이블은 수십 개에 이른다. 만약 이러한 사항을 예상했다면 처음부터 엔터티로 잡지 않았을 것이다.

 

2. 중복되는 엔터티

현 시스템에는 영향을 미치지 않지만 중복되는 엔터티도 심각한 문제점을 내포한다. 중복되는 엔터티는 사용자의 요구사항에 따라 전체적인 모델에 대한 고찰 없이 만들어진 경우가 대부분이다. 이는 향후 사용하지 않는 엔터티가 될 가능성을 항상 지니고 있다. 정보서비스 환경은 언제든지 변할 수 있기 때문이다.

 

3. 주제영역에 대한 맹신

이 부분은 DA나 모델러들의 역린(逆鱗)인지도 모르겠다. 필자는 엔터티에 대한 자신이 없을 때 설계한 엔터티를 주제영역의 일부로 삽입해왔다. 많은 논란이 예상되므로 탈구조적 설계 부분에서 좀 더 다루겠지만, 주제 영역이라는 부분은 결코 엔터티에 의해 정해져서는 안 된다고 생각한다.

 

4. ERD(Entity Relationship Diagram) vs. DFD(Data Flow Diagram)

필자가 설계한 테이블에서 ERD라고 볼 수 없는 테이블도 조사됐다. 직원 엔터티에 자녀 수, 연봉이 속성으로 포함된 테이블을 보았다. 설계 당시 좀 더 생각했더라면 자녀 수나 연봉 같은 속성은 직원 엔터티에 포함되는 것이 아니라, 각각 급여와 가족 엔터티에 있어야 했는데(가족과 급여에도 속성이 분명히 있긴 하다) 불행히도 직원 엔터티에 포함돼 직원과 가족 급여로 관계를 갖는 ERD가 아니라 직원 테이블에서 연봉과 가족 수를 입력하고 다시 급여와 가족에 데이터를 입력하는 DFD가 됐다.

 

이상으로 필자가 저지른 실수를 살펴보았는데 누구나 흔히 저지를 법한 실수 아닌가? 이런 실수를 저지르는 원인은 뭘까? 처음으로 문제를 제시했던 지점으로 돌아가보면, 과연 엔터티라는 개념이 가진 한계는 아닐까? 완벽한 엔터티는 없는 것은 아닐까? 만약 앞서 언급한 직원, 자산, 급여, 임대 같은 엔터티가 완벽한 전형을 갖고 있다면 필자는 그런 실수를 하지 않았을 것이다. 그렇다면 우리가 과연 엔터티라고 보는 것에 대한 의문점을 가지고 다시 접근했으면 한다.

 

러셀의 역설

만약 세빌리아(Sevilla)에 스스로 이발을 하지 않는 모든 이의 이발만을 해주는 이발사가 있다고 하자. 이 이발사는 이발을 스스로 해야 할까? 만약 스스로 이발을 하지 않는다면, 그 전제에 의해 자신이 자신을 이발시켜야 하고, 역으로 스스로 이발을 한다면, 자신이 자신을 이발시켜서는 안 된다. 집합론이 발전되면서 나온 유명한 집합론의 역설을 쉽게 표현한 것이다. 러셀은 이 문제에 대한 해결책으로 유형이론이란 것을 제안했다. 집합(set)과 집합의 종류(type)를 나누었던 것이다. 집합은 엔터티와 아주 닮았다. 집합의 정의를 통해 엔터티와 갖고 있는 속성에 대한 정보를 짐작할 수 있을 것이다. 그렇다면 엔터티에도 타입이 있지 않을까? 타입이 있다면 어떤 타입이 있을까?

직원-자산-급여-임대 같은 엔터티에 불변의 속성이 존재한다면, 그런 실수를 하지 않았을 것이라고 필자는 언급한 바 있다. 정말로 엔터티마다 우리가 찾지 못한 불변의 속성이 존재하는 것일까? 아니면 모든 엔터티에는 불변의 속성이라는 게 존재하지 않는 것일까? 어떠한 정보서비스 환경에서도 불변인 엔터티를 생각해 보자.

서두에 예시를 든 insert를 위한 테이블은 아직까지는 환경의 영향을 받지 않는 것처럼 보인다. 그럼 이런 테이블들의 특성은 어떤 것인가? 불변의 속성을 가진 엔터티를 정보환경 속에서 더 발견해 패턴을 찾아낼 수 있다면 엔터티의 type으로 정의할 수 있을 거 같아 보인다. 속성이 없는 엔터티는 존재할 수 없듯이, 속성을 가진 집합이 나온다면 충분히 엔터티로서의 가치를 지녔다고 볼 수 있다. 다음은 필자가 분류해 본 엔터티의 종류다.

 

<표 3> 엔터티의 종류

엔터티의 종류(type)

특성

의존도

Self_Existence_Type

스스로 존재하는 엔터티

없음

Meta_Type

속성의 형태를 정의하는 엔터티

없음

Activity_Type

활동을 정의하는 엔터티

Data_Type

Service_Type

서비스 영역(화면)을 정의하는 엔터티

Data_Type

Data_Type

실제 데이터가 저장된 엔터티

Meta_Type

 

참고로 다음은 Key-Value 형태로 설계한 테이블 예시다.

 

다음 회에서 속성에 대해 좀더 심도 있는 고찰을 한 후에 위 <표 3>의 엔터티를 분류해보겠다.

(일러스트: 김흥수) 출처: DBguide.net

Posted by 글키우는 농부
: