Analyzing Current Database

Contents

  • 기존 데이터베이스 분석하기
  • 데이터베이스 분석

    • 기존 데이터 취합 방법 살펴보기
    • 기존 데이터 사용 방법 살펴보기
  • 인터뷰

    • 간단한 인터뷰 스킬
    • 인터뷰 진행

      • 취합 자료 검토
      • 추가 필요 사항 파악
      • 경영진과의 인터뷰
  • 예비 필드 리스트 생성하기

    • 같은 이름의 대상 특성
    • 계산된 값 제거

기존 데이터베이스 분석하기

앞으로 나아가기 위해서는 현재 어느 위치에 와 있는지 아는 것이 필요합니다. 데이터베이스 설계 작업에서도 마찬가지인데, 기존에 사용하고 있는 데이터베이스가 있다면, 이에 대한 이해를 통해 설계 작업에 필요한 여러 요소를 파악할 수 있습니다.

이를 통해, 기존의 데이터베이스가 회사가 필요로하는 정보를 적절히 지원하고 있는지, 구조적 결함은 없는지, 향후 회사가 성장 시 함께 발전하며 확장 가능한 상태인지를 파악할 수 있습니다.

분석을 위한 초석으로 "회사가 사용하는 데이타 타입에는 어떠한 것들이 있는지, 데이터를 어떻게 사용하는지, 또 어떻게 관리하고 유지하는지"와 같은 질문을 함으로써 기존 데이터베이스 파악을 시작해 볼 수 있어요.

이러한 작업을 하는 중요한 목적은 실제 사용하는 데이터의 타입과 사용 방법을 파악하는 것입니다. 이를 통해, 테이블 구조를 잡고 사전에 필드를 명시해 볼 수 있습니다.

중요한 것은 기존 데이터베이스가 괜찮아 보여도 그대로 가져와 사용하는 것은 지양해야 합니다. 기존 개발자가 촉박한 시간 안에 작업해야 했을 수도 있고 저 같은 초심자가 작업했을 수도 있습니다. 그대로 가져오게 되면 기존 데이터베이스가 안고 있는 문제를 그대로 가져오기 때문에 이러한 결정은 좋지 않습니다.

데이터베이스 분석

데이터 취합 방법 살펴보기

기존 데이터베이스는 실제 데이터베이스뿐만 아니라, 직원들이 사용하는 RDBMS 소프트웨어, 엑셀, 워드, 노션 등 관련 문서가 포함될 수 있기 때문에 데이터의 종류에 맞게 분석하는 작업이 필요합니다. 기존 데이터를 분석하며 종류별, 샘플별로 정리를 잘해두면 향후 설계 작업에서 참고할 때 시간을 절약할 수 있습니다.

데이터 사용 방법 살펴보기

다음으로 회사가 데이터를 가공해서 어떠한 정보를 제시하고 있는지 확인하는 단계입니다. 실제 문서나 파워포인트, 노션, 웹페이지 등 회사 내의 여러 자료를 살펴봅니다. 파워포인트나 통계 자료, 실적 자료 등을 검토할 때는 해당 데이터에 익숙한 실무자의 도움을 받으면 좋습니다.

인터뷰

회사가 데이터를 어떻게 취합하고 보여주고 있는지 확인했다면, 이후 인터뷰 작업을 통해 데이터를 어떻게 사용하는지 좀 더 깊이 이해해야 합니다.

인터뷰를 통해 앞서 기존 데이터베이스를 살펴보며 취합한 자료에 대해 좀 더 세부적인 내용을 얻을 수 있습니다. 또한, 개발자로서 모호한 부분을 실 유저나 경영진과의 대화를 통해 구체적인 개념으로 이해할 수 있습니다. 또한, 대화를 통해 미처 몰랐던 새로운 정보를 파악하는 계기가 될 수도 있습니다.

간단한 인터뷰 스킬

인터뷰 전문가는 아니지만 간단한 인터뷰 스킬을 알고 사용하면 대화 진행 시 좀 더 만족스러운 결과를 얻을 수 있다고 합니다. 여기서는 몇 가지 인터뷰 팁에 대해 알아보겠습니다.

질문의 중요성

질문은 여러분이 사업체를 잘 이해하기 위해 사용하는 수단이기 때문에 인터뷰 과정에서 좋은 질문을 하는 것은 중요합니다. 어떠한 주제해 대해 포괄적으로 열려있는 질문을 할 수도 있고, 특정 대상에 초점을 맞추어 세부 사항에 대해 질문을 하는 폐쇄형 질문을 이용할 수도 있습니다. 상황에 맞게 둘을 섞어 사용해 볼 수 있습니다.

대상(Subject) 파악 및 리스트 작성

질문을 통해 얻은 답변에서 대상을 추출해 낼 수 있습니다. 일반적으로 사람, 장소, 이벤트 등을 나타내는 명사를 찾아볼 수 있습니다. 이러한 대상을 잘 추출했다면 리스트를 만들어 한 곳에 잘 정리를 해 두어야 합니다.

이후 데이터베이스 설계 작업 시 계속 참조하게 되고 또 테이블 생성 시 기반이 되는 자료이기 때문입니다. 가능하면 바로 데이터베이스 소프트웨어를 사용하지 말고, 수기로 적어보는 것이 좋습니다.

대상의 특성 파악하기

앞의 과정에서 대상을 파악했다면 특정 대상으로 범위를 좁혀 다음 질문으로 대화를 이어나갈 수 있습니다. 예를 들어, 이전 답변에서 "오더"라는 대상을 파악했다면 다음 질문으로 이 오더에 대해 한정해 질문을 이어나갈 수 있습니다.

이를 통해, 아마도 특정 대상에 대한 좀 더 구체적인 정보를 얻을 수 있을 것입니다. 대상에 대한 구체적인 정보가 파악되면 이를 리스트업 하고, 또한 추가로 앞서 파악하지 못 한 대상에 대한 언급이 나오면 이를 잘 메모합니다.

앞서 "오더"란 대상에 대해 질문을 했으면, 아마도 오더에 포함되는 정보인 이름, 주소, 전화번호 등의 특성 등을 파악해 볼 수 있을 것입니다.

대화를 하며 동시에 언급되는 대상이나 특성을 파악하는 일은 연습이 좀 필요한 것 같습니다. 경험이 좀 더 쌓이면 직관적으로 파악할 수 있을 거라 생각합니다.

인터뷰 진행

인터뷰는 데이터베이스의 실유저와 경영진을 대상으로 하는 두 가지 인터뷰로 나눌 수 있습니다. 두 가지 간 차이점은 대화 주제와 인터뷰 질문 내용만 다르고 전체적인 흐름은 같게 진행이 됩니다. 일반적으로 실무를 잘 알고 있는 실유저와 먼저 인터뷰를 진행하고 이후 이를 기반으로 경영진과 인터뷰를 진행해 볼 수 있습니다.

크게 다음과 같은 항목을 기준으로 살펴볼 수 있습니다.

  • 현재 사용중인 데이터 타입
  • 현재 데이터를 어떠한 방식으로 사용하는지
  • 업무를 보기 위해 더 필요한 정보가 있는지

인터뷰를 진행하면 데이터타입과 데일리 업무에서 이 데이터를 어떻게 사용하는지 파악하는 것이 목적입니다. 이러한 정보를 취합하여 기존 데이터베이스 분석 후 테이블 구조 및 필드 생성 시 사용할 수 있습니다.

사용자에게 매일 루틴하게 하는 업무에 대한 질문으로 대화를 시작해 볼 수 있으며 이후 대상을 파악하고, 특정 대상에 대해 세부적인 질문을 해 볼 수 있습니다.

취합 자료 검토

인터뷰 중 앞서 문서나 파워포인트, 노션, 웹페이지 등에서 취합한 자료에서 사용중인 데이터를 검토할 수 있습니다. 취합한 자료에 대한 이해를 최대한 높이는 것이 목적이기 때문에 모호하거나 불확실한 부분에 대해 대화를 하며 확실히 하고 넘어갈 수 있습니다. 취합한 자료에 대해 간단한 설명이나 메모를 해 두면 좋습니다.

추가 필요 사항 파악

유저가 업무 진행을 위해 추가로 필요한 사항이 있는지 파악하는 단계입니다. 이후 테이블과 필드 생성 시 참고할 수 있고, 또한 지금까지 검토하며 간과한 부분이 없는지 확인하는 시간을 가질 수 있습니다.

우선 유저가 데일리로 사용하는 데이터의 출처를 먼저 확인해 볼 수 있습니다. 유저가 일정 부분 데이터 생성에 기여를 하는 일도 있지만, 일반적으로는 주로 사용하는 입장이기 때문에 출처에 대해 확인할 수 있으면 좋습니다.

그리고, 실 사용자가 사용하는 자료를 기준으로 추가 필요한 데이터가 있는지 함께 검토하고, 필요한 부분이 있다면 잘 메모해 둡니다. 사용자가 향후 상황에 대한 생각을 이끌어 내기 어려워 할 수도 있습니다. 이러한 경우 적잘한 질문을 하는 것이 중요한데, 회사가 성장하며 추가해야 할 것으로 예상되는 부분이 있는지에 대해 몇 가지 질문을 미리 준비해 보면 도움이 될 수 있습니다.

경영진과의 인터뷰

대상이 경영진으로 변경된 점 외에 앞서 인터뷰를 진행하는데 크게 달라지는 점은 없습니다. 기존 취합한 자료 외에 경영진이 검토하고 이용하는 데이터가 있는지 파악해 볼 수 있습니다.

예비 필드 리스트 생성하기

기존의 데이터베이스에 대한 분석을 어느정도 맞쳤으면 예비 필드 리스트를 작성해 볼 수 있습니다. 예비 필드 리스트는 회사에서 근본적으로 필요로 하는 데이터 항목이며 데이터베이스의 핵심적인 필드 항목이 될 수 있습니다.

같은 이름의 대상 특성

먼저 기존 데이터베이스의 자료를 취합 및 분석하고 인터뷰 하는 과정에서 작성한 대상에 대한 특성 리스트를 한 번 정리해 보는 시간을 가질 수 있습니다.

리스트를 작성하는 과정에서 중복된 항목이 기입되거나 잘 못 작성할 수도 있기 때문에 특성 리스트를 검토하면 같은 이름의 항목이 있을 수 있습니다. 이러한 중복된 항목은 제거해 줄 수 있습니다. 중요한 것은 같은 이름의 항목으로 표기되었지만 실제로 그 특성이 같은 대상을 나타내는지 확인해야 합니다.

예로, "이름"이라는 필드가 있다면 고객의 이름, 직원의 이름 등이 있을 수 있기 때문에 확인 작업이 필요합니다. 대상이 다른 특성이라면 적절하게 이름을 다시 지어줄 필요가 있습니다.

실제 대상의 특성을 나타내는지 재확인

그리고, 특성 항목 리스트에 있지만 특성이 아닌 대상을 나타내고 있지는 않는지 확인할 필요도 있습니다. 만약 리스트 항목 중 특정 대상의 특징이 아닌 대상을 나타낸다면 대상 리스트로 옮기는 작업이 필요합니다.

마지막으로, 앞서 작성한 "대상 특성 리스트"에서 "예비 필드 리스트"로 옮길 항목을 정합니다.

계산된 값 제거

작성된 예비 필드 리스트에 String Concatenation이나 평균값, 최대값 등 계산된 값이 있는지 확인을 하고, 계산된 항목이 있다면 제거해 줍니다.