자격증과 세미나, 프로그램 이야기를 주저없이 써봅니다.

Since 2008. 10.

프로그램 및 파워유저

[전문가 칼럼] Web 2.0과 데이터모델링 (2회)

럭키맨 운수 2009. 6. 1. 23:30

[전문가 칼럼] Web 2.0과 데이터모델링
[2회] Data Modeling techniques to make Web 2.0 work
 
<게시판의 Repl 구조>
일반적으로 게시판을 보면 다음과 같은 몇가지 유형이 있다.

유형 1 : 하나의 질문에 한 단계의 답글을
            다는 형태
유형 2 : 하나의 질문에 한 단계 이상의
            답글을 다는 형태
            (답글에 답글이 가능한 형태)
유형 3 : 하나의 질문에 한 단계 이상의
            답글과 답글에 대한 답글(답답글,
            답답답글….)을 다는 형태

1번과 2번의 경우 다음과 같이 비교적 간단하게 데이터 모델링을 함으로써 문제를 해결할 수 있다.
저자소개: 이보현
(現) (주)이큰아이즈 대표이사
프로젝트 :
ㆍAssetPLUS 홈페이지 및 CRM 시스템 개발
ㆍ티켓링크 정산시스템
ㆍ대한항공 Internet Booking Systems 및 신화물 시스템
    컨설팅 & 구축
ㆍ포항제철 차세대 정보전략 발전방향(ISP) 컨설팅 등
강 의 :
ㆍ티켓링크 Data Modeling 강의
ㆍ서강정보공학회 e-business 환경에서 CRM 구현과
    DW Architecture 구축 강의
ㆍ고려해운 DFD와 Data Model 강의
ㆍ연세대, 경희대 등 Data Model 강의 등 다수

 

<그림 7> 게시판 답글 Data Model A
그러나 3번의 경우는 위의 모델링 방안으로는 해결이 되지 않는다 이러한 문제를 해결하기 위하여 요건의 형태를 좀 더 상세히 살펴보자

[주제] 위쪽나라 핵펀치 완성
1.우리도 핵펀치를 만들어 보아요
Repl: 안되요 그 돈으로 맛있는거 사먹어요
          Repl: 음, 핵무기 만들돈이면 자장면 100그릇도 넘게 먹을 수 있겠다.
                    Repl: 나는 자장면 100그룻 보다는 자장면 50그릇과 피자 10판
                              ……………………………………..
Repl: 우리는 수소펀치을 만들어 보아요
Repl:그래요 우리도 멋진 핵무기를 만들어 보아요
위 사례의 실제 유형은 다음과 같다.

<그림 8> 게시판 답글 사례
이렇게 1-2단계를 넘어가는 가는 원글과 답글 구조는 어떻게 수용할 것인가? 위 <그림 7> 과 같은 Parent-Chile 구조를 수만개쯤 미리 만들것인가?

이러한 글의 구조는 재귀구조 모델링 방법을 활용함으로써 간단히 해결할 수 있다. 재귀구조 모델링은 소속이나 구성 관계가 계층적인(Hierarchical) 관계를 이룰 때 이를 관리하고 지원하기 위한 데이터 모델 기법이다. 즉 아래 그림에서 보는 바와 같이, 사장부터 사원까지 계층적으로 구성이 되며, 이 계층 구조가 현재는 5레벨이지만, 경우에 따라서는 6레벨 7레벨까지도 확장이 될 수 있다고 본다면 동일한 엔티티타입간의 엔티티간에 페어링이 존재하는 재귀 관계로 모델링 하여야 한다.

 

<그림 9> 재귀구조 Data Model
이러한 개념을 적용하며 모델링을 하면 다음 그림과 같은 모델링이 가능하다.

상위글 번호는 항상 현재 글의 상위번호를 넣게 되면, 무수히 하위 레벨로 내려가더라도, 자신의 상위글번호를 관리하면 되므로, 모든 요건을 수용할 수 있다.

 

<그림 10> 재귀구조를 이용한 게시판 답글 Data Model

이러한 모델을 기반으로 시스템을 구축하면 어떠한 계층 구조도 수용할 수 있는 매우 유연한 시스템 구조를 가지게 된다.

위에서 살펴본 이러한 3가지 사항들이 Web 2.0을 살릴 수 있는 묘약은 아이다. 다만, Web 2.0을 나타내는 여러가지 Concept과 의미를 깊이 생각하고 이를 실질적으로 구현할 수 있는 데이터 모델에 대하여 좀 더 심도 있는 고민과 이를 해결하기 출발점이 되리라 생각한다. 또한, Web 2.0을 벗어나서 생각해보면, 체계적인 Data Modeling은 프로그램을 어렵고 귀찮게 하는 것으로 많이 알려져 있다. 그래서 일반적으로 체계적인 모델링이 필요하지만, 그리고 할 수 도 있지만(능력이 충분히 되지만), 프로젝트를 위해서 그냥 쉽게 가는 것이라고 많은 사람들이 말을 한다. 그러나, 실제로는 귀찮지도 않고 프로젝트를 지연시키는 원인도 아니다. 또한, 장기적으로 기업의 IT ROI를 획기적으로 제고할 수 있는 단초역할을 하며, 데이터의 중복성을 제거한 체계적인 관리 방법이기 때문에 IT인력들의 업무 생산성을 획기적으로 높이는데 기여할 것이다. 이러한 데이터 모델 기법들은 Web 2.0에서도 중요하지만, Contents의 내용과 상황을 고려한 서비스를 제공하는 웹 3.0에서는 훨씬 중요한 기술로 자리매김할 것이다.

그리고 마지막으로, 위에서 제시한 모델링 방법은 업무 상황과 관리 정책 또는 방법에 따라 다르므로, 자신의 환경과 관리 방법에 맞는 최적의 모델링 방법을 찾는 것이 중요하다.

출처: 개발자 천국을 꿈꾸는 국내 최대의 IT 포탈 DEVPIA