database.sarang.net
UserID
Passwd
Database
ㆍDBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DBMS Tutorials 434 게시물 읽기
 News | Q&A | Columns | Tutorials | Devel | Files | Links
No. 434
데이터 모델링 강좌(8)
작성자
정재익(advance)
작성일
2002-07-12 22:26
조회수
5,494

실전 데이터 모델링의 영역

 

데이터 모델링은 시스템을 개발하는 라이프사이클(lifecycle)의 어느 단계에서 어떤 목적으로 사용되는 방법론인가? 여기에 대해서는 방법론에 따라 많은 차이가 있고 사람마다 생각하는 영역이 다르다. 그러나 모든 방법론들은 나름대로 많은 특징이 있지만 결국 요약하면 대부분은 다음과 같은 단계를 거치게 된다.

 

 

[그림1]

 

사용자 요구사항에 대해서 전략을 수립하고, 업무를 파악하고 개선안을 찾아 새로운(to-be) 업무형태를 확정하는 분석 단계, 이것을 정보시스템 형태로 전환하는 설계 단계, 애플리케이션 개발 단계, 문서화 단계, 개발 시스템을 종합적으로 테스트하는 단계, 그리고 공급(가동 및 안정화 단계)을 한다. 결국 어떤 방법론도 이러한 과정을 거치지 않을 수는 없다.

 

이러한 공통적으로 존재하는 기본 과정에서 데이터 모델링은 어떤 영역에서 어떤 역할을 하게 되는 것인가? 여기서 말하는 데이터 모델링의 영역은 위의 단계 중에서 전략수립과 분석단계 과정 전체를 가리킨다.

 

다시 말해서 개발 시스템의 업무를 전혀 모르는 상태에서 출발하여 업무에 대한 이해와 구체적인 조사 및 파악, 그리고 앞으로 어떻게 가야 할 것인가에 대한 확정을 모두 포함하는 - 즉, 인간이 결정해야 할 대부분의 사항이 취급되고 확정되어 가는 과정을 모두 포함하는 - '과정의 툴'이라는 것이다.

 

필자가 모델링을 위해 어떤 프로젝트에 투입되었을 때 어디서나 나오는 첫마디는 항상 "우리 회사 업무는 굉장히 복잡하거든요"라고 시작한다. 그런 후 "그러니까 한 일주일 정도 업무 교육을 받은 다음에 설계를 하시는 게 어떨까요?"하고 다시 묻는다. 자기들 생각에는 아무리 전문가라고 하더라도 업무에 대해서 무엇인가 조금이라도 알아야 하지 않겠느냐는 뜻이 담겨 있는 말일 것이다.

 

그러나 한마디로 '아니오'라고 잘라 말하고 "유능한 수사관은 범인이 누구인지 알고 잡지 않습니다."라고 한 마디를 덧 붙인다. 때로는 "10분내 당신들 간에 업무 때문에 서로 싸울 수 있게 만들어 줄 수 있으니 걱정 말고 시작합시다."라고 하면 더 이상 덤벼(?)들지 못한다. 이것은 허풍도 객기도 아니다. 왜냐 하면 모델링은 '과정의 툴'이기 때문이다. 조금 더 있으면 왜 이런 말을 할 수 있는지 여러분도 충분히 이해할 수 있으니 기다려 보기 바란다.

 

데이터 모델링을 위해 모델링 방법론을 차치하고서도, 필수적으로 보유해야 할 중요한 무공(?)이 필요하다. 앞서 설명했듯이 세상에는 방법을 알면 할 수 있는 일이 있고, 방법을 알아도 하기 어려운 일이 있다고 했다. 이것을 가능하게 하는 능력을 키울 수 있는 방법을 다음 장에서 자세히 다루도록 할 것이니 여러분들은 그 기술을 반드시 익혀야 할 것이다.

 

데이터 모델링이 설계 과정의 대부분을 차지하는 '과정의 툴'이라고 하였는데 실전에 있는 거의 모든 프로젝트들은 이미 일정 계획서의 마일스톤(milestone)에서부터 그렇게 하지 않겠다는 의지가 표현(?)되어 있다.

 

왜냐하면 몇 개월 동안 업무 분석이 끝난 다음 - 가령 데이터모델링 2개월, 데이터베이스 설계 3개월 - 이런 식으로 일정이 계획되어 있다. 도대체 업무 분석이 다 끝났는데 무슨 모델링을 새로 시작하며, 인간의 결정이 대부분 확정되었는데 왜 설계에 석 달씩이나 필요한지 도저히 납득이 되지 않는다. 이 일정 계획은 분명히 몇 달 동안 업무 공부를 별도로 해서 자기 책상에 앉아 모델링(문서용 ERD)을 그리겠다는 뜻이 분명하며, 개략적으로 작성된 모델링을 설계 단계에서 검토해서 뜯어 고치겠다는 저의가 있는 것이 확실해 보인다. 그렇지 않은가? 있을 수 없는 일이다.

 

다른 말로 표현하면 이들은 모델링을 결과의 툴로 사용한 것이지 과정의 툴로 사용한 것이 아니라는 증명을 스스로 하고 있다. 또한 모델링을 제대로 할 수 있는 전문가를 보유하고 있지 않았다는 증거이기도 하다.

 

요즈음 대부분의 프로젝트에서는 CASE 툴을 사용하고 있는데 ERD의 품질과는 상관없이 문서(document)용으로 사용하고 있을 뿐이라는 것이다. 이에 대한 증명은 실제 개발 단계에서 개발자들이 개발의 소품으로 ERD를 사용하지 않는다는 데서 찾을 수 있다.

 

데이터 모델링이란 우리가 관리하고자 유용한 업무, 혹은 정보를 정확하게 규명해서 보다 효율적인 형태를 구체적으로 창조해 내는 과정을 말한다. 그 종합된 결과가 ERD로 표현하는 것이 데이터 모델링이며, 여기에는 인간이 결정해야 될 사항들이 거의 반영되어 있어야 하는 것이다.

 

그러므로 이렇게 고생해서 정의한 구체적인 결정들이 상세하게 그려져 있어야지 그냥 '네모박스에 이런 속성들이 있다'는 정도의 결과를 낸다는 것은 결국 제대로 모델링을 하지 않았다고 볼 수 밖에 없다.

 

문학 작품이라고 해서 모두가 노벨문학상 수준은 아니듯이 데이터 모델링을 하였다고 해서 모두가 좋은 작품인 것은 아니다. 객관적인 판단의 근거를 확실히 가지고 실무적인 현상과 요구사항을 정확히 파악하여 향후의 활용성이나 연결성, 융통성, 발전성을 충분히 감안하면서도 단순.명료한 모델, 그래서 노벨문학상 수준의 작품을 만들어야 하지 않겠는가?

 

하물며 프로젝트 계획에서부터 이미 그렇게 하지 않겠다는 의지(?)를 보인다는 것은 프로젝트를 버리고, 나 자신을 버리는 일이라 하지 않을 수 없다.

 

실전 데이터 모델링의 필수 무공(武功)

 

앞서 여러 차례 언급했듯이 세상에는 방법을 알면 할 수 있는 것과 방법을 알더라도 쉽게 할 수 없는 것들도 많이 있다. 가령, 고등학교 시절에 우리를 그렇게도 괴롭혔던 복잡한 수학문제는 공식을 모두 암기했다고 해서 쉽게 풀 수 있는 것이 아니었다. 바둑 책을 사서 정석을 모두 익혔다고 해서 금방 프로 바둑기사가 될 수는 없다.

 

이처럼 데이터 모델링도 방법론을 모두 이해했다고 해서 업무를 전혀 모르는 상태에서 구체적이고 객관적으로 업무를 완벽하게 체계화할 수 있는 능력이 금방 생겨 나는 것이 아님은 물론이다. 방법의 저 건너편에 보다 중요한 사고력, 분석력, 종합력 등이 제대로 갖추어져 있어야 하기 때문이다.

 

이러한 무형적인 능력을 계발하기 위해서는 많은 세월 동안 각고의 노력이 필요하다. 물론 여기서 이러한 세월을 뛰어 넘을 수 있는 왕도를 제시할 수는 없다. 그러나 이러한 특출난 능력을 지닌 슈퍼맨이 아닌 보통사람들이 유사한 힘을 발휘할 수 있는 세가지 방법(무공)이 있다.

 

첫번째 방법은 15층 빌딩의 옥상을 단번에 날아 오를 수 있는 슈퍼맨이 못되더라도 20cm 짜리 계단을 놓고 하나씩 열심히 올라가는 방법이 있다. 이와 같은 접근 방법을 가능하게 하는 것을 바로 '수평적 사고'라 부른다. 태산이 높다하되 하늘 아래 뫼라고 했다. 오르고 또 오르면 못오를 리 없지 만은 계단은 놓지 않고 산만 높다 해서 되겠는가?

 

두번째 방법은 이름하여 무협지에 나오는 '흡입신공(吸入神功)'이다. 이 무공은 남이 가진 무공이나 물건을 끌어 당겨 자신의 것으로 만드는 무공이다. 데이터 모델링은 과정의 툴이기 때문에 업무를 전혀 모르는 상태에서도 구체적이고 객관적으로 업무를 체계화 시켜 가야 한다.

 

여러분들이 업무에 무지한 채로 어떤 회사가 가서도 그 업무에 정통한 수십 명을 앉혀 놓고 바로 그들의 얼굴이 벌겋게 달아 오르게 하면서 완벽한 모델링을 하기 위해서는 바로 남(현업 사용자)의 힘을 끌어낼 수 있는 무공이 필요하다. 이 무공은 남이 강할수록 오히려 더 유리하기 때문에 이 세상의 어떤 무공보다 강력하다. 이 무공만 익힐 수 있다면 어디에 가서도 자신있게, 큰 소리치면서 모델링을 할 수 있다.

 

세번째 방법은 '견물생심(見物生心)'을 시키는 방법이다. 견물생심이란 말 그대로 '사물을 봄으로써 마음이 생겨난다'는 것이다. 우리에게 판단의 근거를 제공해 주는 현업 사용자의 정보의 품질에 따라 데이터 모델링의 품질이나 생산성은 큰 영향을 받는다.

 

그러나 이들은 우리의 의도를 정확히 파악하지 못하고 있으며, 우리가 그냥 가만히 앉아 있기만 해도 스스로 완벽한 정보를 정제해서 제공해 주지는 않는다. 뿐만 아니라 그들은 상황에 따라 말을 바꾸기도 하며, 생각을 한번에 하는 것이 아니라 조금씩 점진적으로 하게 된다. 그렇다면 우리는 이들에게서 보다 시의적절하고, 완전한 정보를 어떻게 획득하느냐가 관건이 될 것이다.

 

이를 가능하게 하는 가장 좋은 방법은 그들이 우리가 원하는 정보를 쉽게 생각해 낼 수 있도록 무엇인가를 보여 줌(견물)으로써 생각을 유도(생심)하는 것이다.

[Top]
No.
제목
작성자
작성일
조회
437데이터 모델링 강좌(11)
정재익
2002-07-12
5991
436데이터 모델링 강좌(10)
정재익
2002-07-12
5824
435데이터 모델링 강좌(9)
정재익
2002-07-12
5346
434데이터 모델링 강좌(8)
정재익
2002-07-12
5494
433데이터 모델링 강좌(7)
정재익
2002-07-12
7101
432데이터 모델링 강좌(6)
정재익
2002-07-12
5822
431데이터 모델링 강좌(5)
정재익
2002-07-12
5458
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다