데이터 모델링의 중요성
★ 문제를 풀려면 '단어'와 단어의 '의미'를 알아야 함!
1. 데이터 모델링의 중요성 및 유의점
파급효과 (Leverage)
- 모델링을 잘 설계하는 위해서는 데이터가 흘러가는 것을 시스템 전체의 관점에서 바라볼 수 있어야 함
- 구체적인 내용은 변해도 큰 구조는 변하지 않도록 만드는 것
- 어떤 설계인지에 따라 예상하지 못한 상황에 얼마만큼의 추가 비용을 초래할지 결정되는 만큼 중요함
- 데이터를 업무 단위에서 분석해서 결과를 내는 과정은 아래와 같음
- 시스템 구축이 완성되어 가는 과정에서는 대규모 데이터를 통한 분석을 성공적으로 수행하기 위해 수많은 단위의 테스트 수행
- 결과가 완료되면 비슷한 규모(단위)의 테스트를 묶어 병합병행 테스트를 진행
- 이 상황에서 만약에 데이터 모델의 변경이 발생한다면? (정말 불가피한 상황을 가정)
- 예를 들면, 회사에서 진행하는 서비스의 방향이 바뀌어서 데이터를 정의하는 속성이 꽤나 많이 변경되어야 하는 상황
- 큰 구조가 변하지 않았다면 기존 내용을 바꾸기만 하면 되겠지만 만약 모델링 된 결과물 자체가 이전 요소에 완전하게 종속된 형태라면 그 결과로 데이터 구조의 변경에 따른 표준 영향 분석, 응용 변경 등의 영향 분석 등의 과정이 변경되어야 함
- 변경을 해야 하는 데이터 모델의 형태에 따라서 얼마만큼의 영향이 받는지 차이가 있겠지만 이 시기의 데이터 구조의 변경으로 인한 일련의 변경 작업은 전체 시스템 구축 과정에서 큰 위협요소가 될 수 있음
간결한 표현 (Conciseness)
- 데이터 모델 == 구축할 시스템의 정보에 대한 요구 사항과 한계점을 가장 명확하고 간결하게 표현할 수 있는 도구
- 정보에 대한 요구 사항을 파악할 때 수십 페이지 분량의 자료의 기능적인 요구 사항을 하나하나 파악하는 것보다 간결하지만 핵심이 포함된 데이터 모델을 보면서 파악하는 것이 훨씬 좋음
- 데이터 모델은 시스템을 구축하는 많은 관련자들이 설계자의 생각대로 정보요구사항을 이해하고 이를 운용할 수 있는 어플리케이션을 개발하고 데이터의 일관성을 유지할 수 있도록 하는 것
- 이상적인 역할 수행을 할 수 있는 데이터 모델이 갖추어야 할 가장 중요한 점 == 정보 요구 사항이 정확하고 간결하게 표현되어야 함
데이터 품질 (Data Quality)
-
데이터 구조의 문제 때문에 데이터 품질의 문제가 발생할 수 있음
- 중복된 데이터를 정의하지 않고 데이터 구조 내에서 비즈니스에 대한 정의가 충분하지 않은 경우에 발생할 수 있음
-
데이터 품질에 대한 평가는 크게 3가지 기준을 통해 살펴볼 수 있음
(모델링을 하는 시점에서 어떤 기준을 가지고 데이터 품질에 대한 고민을 해야 하는가)
⓵ 중복 (Duplication)
◦ 데이터베이스 여러 곳에 같은 정보를 중복해서 저장하는 행위 지양
⓶ 비유연성 (Inflexibility)
◦ 환경이 바뀌었을 때 데이터가 사용 가능해야 함(비유연하면 안 된다)
◦ 데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무의 변화에도 데이터 모델의 유지 보수가 쉬울 수도 있고 어려울 수도 있음
⓷ 비일관성 (Inconsistency)
◦ 데이터의 중복이 없다고 해도 일관적이지 않은 데이터가 나타날 수 있음
◦ 데이터 모델링을 할 때 데이터와 데이터 간의 상호 연관 관계에 대한 명확한 정의가 필요함
-
데이터베이스에 저장된 데이터는 기업 입장에서 매우 소중한 자산임
- 구글 검색을 통해 수많은 자료를 무료로 이용하는 것도 결국 우리가 검색하는 과정 하나하나의 데이터를 구글이 활용하기 때문입니다.
- 하지만 기업에게 모든 데이터가 소중한 것은 아님
- 저장된 데이터가 어떤 정보를 제공함에 있어 정확하지 않은 데이터일 수도 있고 일관성이 떨어지는 데이터일 수도 있음
- 일단 많이 저장만 하면 된다고 생각할 수 있지만, 기업에게 데이터는 의사 결정의 기준이 되기 때문에 정확하지 않은 정보로 인한 피해는 상상 이상임
- 잘못된 데이터로 인해 잘못된 판단을 내리면 소중한 비즈니스 기회를 잃게 될 수 있음
2. 프로젝트 라이프 사이클에서 데이터 모델링
- 프로젝트 라이프 사이클 (from 소프트웨어 공학 개발 방법론)
- 프로젝트의 시작부터 완료에 이르기까지 거치는 일련의 단계를 의미
- 프로젝트 관리 방법론에는 크게 폭포수 모델(Waterfall)과 애자일 모델(Agile)이 있음
- 프로젝트의 범위가 명확할 때(프로젝트 크기가 작을 때) 폭포수 방법론(Waterfall)을 적용함 → 예: 팀플, 조별과제
프로젝트 라이프 사이클(Waterfall 기반) | 정보공학, 구조적 방법론 | 개발 |
---|
분석 | 논리 및 개념 데이터 모델링 | 프로세스 모델링 |
설계 | 물리 데이터 모델링 | AP 설계 |
개발 | DB 구축, 변경, 관리 | AP 개발 |
테스트 | DB 튜닝 | AP 테스트 |
전환/이행 | DB 전환 | AP 설치 |
참고 1: 데이터 모델링의 단계
참고 2: 애자일 모델(Agile)
최소기능단위(MVP, Minimum Viable Product) 만들어 점진적으로 프로젝트를 키워 나가는 방법론
3. 데이터 모델링의 이해관계자
- 정보시스템을 구축하는 모든 사람은 데이터 모델링을 전문적으로 할 수 있거나 적어도 완성된 모델을 정확하게 해석할 수 있어야 함
- 데이터 모델링은 개발만 하는 단계가 아니라 '비즈니스를 전체적으로 조망하는 단계'이기 때문
- 특히 개발자는 데이터 모델링 기술에 대한 매우 수준 높은 이해도를 가지고 있어야 함
- IT 비종사자, 비전공자도 정보화와 관련된 업무를 하고 있다면 데이터 모델링에 대한 개념과 세부사항에 대해 알아야 함
- 잘못된 시스템을 구축하는 위험(risk)이 없도록 원활한 업무 소통이 가능해야하기 때문