본문 바로가기

분류 전체보기

나는 천천히 걸어가는 사람입니다 나는 천천히 걸어가는 사람입니다. 그러나 뒤로는 가지 않습니다. - 링컨 더보기
자신의 일에 능숙한 사람은... 네가 자기의 일에 능숙한 사람을 보았느냐 이러한 사람은 왕 앞에 설 것이요 천한 자 앞에 서지 아니하리라 -잠언 22:29 더보기
업무를 몰라도 모델링을 할 수 있을까요? 오늘은 다소 난해한 주제에 대해 쓰려고 합니다. 내용이 어려운 게 아니라 다양한 주장이 존재할 수 있는 얘기입니다. 모델러가 해당 업무를 잘 알아야 모델링을 잘 할 수 있을까요? 제 주장은 ‘업무를 몰라도 모델링을 잘 할 수 있다’입니다. 이런 생각을 처음부터 했고 실무에서 경험했습니다. 잘 했는지는 모르겠지만 그다지 어려움을 느끼지 않았습니다(사실 초반에 약간 힘듭니다). 주변의 많은 사람들에게 이 얘기를 했는데요. “업무를 몰라도 모델링을 잘 할 수 있다.” 어쩌면 업무에만 치중하는 모델러가 많아 더 강조하게 됐는지도 모르겠습니다. 많은 모델러가 업무를 익히기 위해서 많은 노력을 하는데 모델링 기법을 익히기 위해서는 노력을 하지 않습니다. 업무 분석가를 목표로 한다면 이해가 되지만 모델러를 목표로 하.. 더보기
엔터티를 정의할 때 도움이 되는 분류법 엔터티를 구분하는 방법은 여러 가지가 있습니다. 뭔가를 분류하는 것은 그것을 이해하는 데 보통 도움을 줍니다. 저는 다음과 같이 엔터티를 분류합니다. - - 만질 수 있는 것 & 만질 수 없고 개념으로 존재하는 것 -- 자립 엔터티 & 종속 엔터티 -- 실체 엔터티 & 행위 엔터티 & 가공 엔터티 & 기준 엔터티 다각도로 분류해 보는 것이 좋기 때문에 분류법도 다양합니다. 엔터티를 정의할 가장 우선적으로 판단하는 것은 보이는 물체냐라는 것입니다. 사람, 사물과 같이 실제로 존재하는 물건인지, 만져서 느낄 수 있는지부터 따져보게 됩니다. 이런 성격의 엔터티는 계약서나 카드, 통장 등을 포함시킨다고 해도 실제로 그다지 많지는 않습니다. 그보다 개념으로 존재하는 것(Conceptual)을 표현한 데이터가 훨씬.. 더보기
엔터티에 대한 주절거림 모델링의 3요소는 엔터티, 속성, 관계입니다. 마치 믿음, 소망, 사랑과 같죠. 그 중에 제일은 사랑입니다. 엔터티, 속성, 관계 중에 제일은…엔터티입니다. 엔터티를 정의하는 것이 모델링에서 가장 중요하고 어려운 작업입니다. 엔터티를 정의한다는 것은 CASE 툴의 엔터티 정의(Definition) 항목에 설명을 적는 것을 의미하지 않습니다. 식별자가 무엇이고 서브타입이 무엇인지, 어떤 집합으로 구성됐는지 등을 도출하는 것을 의미합니다. 엔터티는 필요에 의해 관리하고자 하는 데이터의 집합입니다. 업무를 수행하는 데 필요한 데이터를 특성이 유사한 것끼리 모아 놓은 집합이죠. 특성이 유사한 것끼리 모아 놓았다는 것은 함수 종속(Functional Dependency)을 의미합니다. 업무에서 관리하고자 하는 데.. 더보기
모델링은 상식적이다 데이터 모델링은 상식적입니다. 만약에 모델링이 상식적이지 않은 분야였다면 필자는 모델러로서 지금까지 일할 수 없었을 것입니다. 모델링과 관련된 내용을 크게 두 가지로 나누면 하나는 이론이고 다른 하나는 경험입니다. 그중에 모델링 이론은 지극히 상식적입니다. 모델링 이론이 다른 분야와 비교해서 어렵지 않다고 느껴지는 것은 상식적이기 때문일 것입니다. 정규화를 기초로 한 이론은 상식적이라고 생각합니다. 데이터 무결성을 최우선 과제로 삼는 데이터 모델링의 이론은 지극히 상식적입니다. 데이터를 제대로 관리하는 데 필요하므로 상식적일 수밖에 없습니다. 하지만 비록 이론은 상식적이지만 실제로 모델링을 하면 어렵게 느껴집니다. 상식적으로 알 수 있는 쉬운 이론으로 모델링을 수행해도 어려운 것이 모델링인데 이론을 모른.. 더보기
데이터 모델링이 왜 어려운가? 데이터 모델링은 어렵습니다. 모델링 이론이 어렵다는 말은 아닙니다. 이론은 다른 분야의 것과 비교해서 어렵지 않다고 생각합니다. 하지만 이론을 알고 있더라도 막상 시작하려면 무엇을 어떻게 해야 할지 막막해집니다. 또한 완료하고 나서는 모델링이 제대로 됐는지에 대한 확신이 없습니다. 시작하기 어렵고 결과를 확신할 수 없으니 어려운 분야임이 틀림없습니다. 이유는 여러 가지가 있을 것 같습니다. 우선 모델링 이론(理論) 외에 알아야 하는 분야의 폭이 넓습니다. 모델링은 데이터의 본질을 통찰해야 하는 추상적인 개념에서부터DBMS(데이터베이스)의 구체적인 특징과 기능까지 알아야 제대로 수행할 수 있습니다. 데이터의 집합을 정의하는 것은 쉽지 않습니다. 유사한 집합을 일반화(Generalization)하는 것도 쉬.. 더보기
차세대 프로젝트에서의 모델러의 역할 이전 글에서 사명감이 없는 모델러는 좋은 모델러가 아니라고 했습니다. 하지만 시간이 절대적으로 부족하면 분석을 제대로 할 수 없기 때문에 사명을 가지고 의욕적으로 모델링을 수행할 수 없습니다. 최근의 대형 프로젝트에서 모델러의 역할을 제대로 할 수 없을 정도로 자원(인력과 시간)이 주어지는 것은 안타까운 일입니다. 이런 프로젝트에서는 모델러가 보통 두 가지 정도의 역할을 해야 한다고 생각합니다. 하나는 프로젝트 초반을 주도하며 끌고가는 선봉대와 같은 역할입니다. 업무에 대한 충분한 분석은 말 할 것도 없고 데이터에 대한 충분한 분석 없이 모델링을 수행하면서 산출물을 만들고 다른 사람들한테 데이터와 관련된 자료를 제공합니다. 상향식(Bottom-Up) 방법으로 모델링을 수행하면 충분하게 분석하지 않고도 제.. 더보기
좋은 모델러가 되려면 2 지난번에 이어 이번에는 모델러가 되기 위한 기술력 이외의 분석력 등을 언급하려 합니다. 어떻게 보면 광범위한 범위가 될 수도 있습니다. 좋은 모델러가 되기 위해서는 정규화, DBMS, 튜닝 등의 기술적인 측면 못지 않게 분석력과 설득력, 발표력 등이 필요합니다. 분석력은 모델러에게 대단히 중요한 요소입니다. 모델링 기법을 익혀도 분석력이 없다면 모델링을 진행하기 어렵습니다. 정확한 분석을 통해 모델의 기반이 되는 엔터티가 정의되며 속성 하나의 쓰임새도 업무와 연관지을 수 있는 분석력이 없다면 좋은 모델러가 되기 어렵습니다. 아마 많은 사람들이 모델링 이론은 어느 정도 알고 있는데 모델링을 수행하기 힘든 이유가 분석력이 없기 때문이라고 생각합니다. 제 책에서도 거듭 강조했지만 모델링의 시발점은 엔터티가 정.. 더보기
좋은 모델러가 되려면... 주변에서 모델러가 되고 싶어하는 사람들을 많이 봅니다. 막연하게 좋아보이니까 모델러가 되고 싶어하는 거 같습니다. 이 글을 읽는 분들은 대부분 프로그래밍 개발 경험이 있을 거 같습니다. 처음 프로그래밍 언어를 대할 때를 생각해 보시면 아마 해당 언어에 대한 책 한 두 권은 필독하셨을 거 같고요. 일단 언어가 익숙할 수 있도록 많은 연습(Hello World로 시작되는)과 몰두를 했을 것입니다. 프로그래밍 언어를 처음 시작할 때의 설레임과 각오, 노력이 떠오를 것 같습니다. 모델러가 되기 위해서도 기본적으로 같은 노력을 해야 합니다. 이번 글에서는 모델러가 되기 위해 알아야 하는 이론에 대해서 언급하겠습니다. 프로그래밍을 개발하려면 프로그래밍 언어를 알아야 하듯이 모델링을 하려면 모델링에 대한 이론을 알아.. 더보기