취업 준비 시절

데이터베이스 구축기 – 요구사항 분석 편

kebab-lee 2025. 6. 2. 16:37

데이터베이스 구축의 시작은 언제나 "요구사항 분석"입니다. 많은 개발자들이 바로 테이블부터 만들고 싶어 하지만, 실무에서는 이 단계를 대충 넘기면 잘못된 구조의 DB로 인한 재작업과 유지보수 지옥을 경험하게 됩니다. 이번 포스트에서는 제가 경험한 실제 사례를 바탕으로 요구사항 분석이 왜 중요한지, 어떻게 해야 하는지를 정리해보았습니다.


1️⃣ 요구사항 분석이란 무엇인가?

요구사항 분석은 말 그대로, 시스템이 어떤 기능을 해야 하는지를 정의하는 단계입니다. 단순히 어떤 데이터를 저장할지가 아니라, 비즈니스 흐름에서 어떤 데이터를 언제, 누가, 왜 사용하는지를 파악하는 작업입니다.

이 분석이 제대로 되지 않으면 다음과 같은 문제가 생깁니다:

  • 테이블은 만들었는데 실제 화면에 안 쓰임
  • 데이터를 수집했는데 쿼리로 뽑아낼 수 없음
  • 고객이 원하는 분석이 안 됨
  • 모든 변경이 DB 구조부터 수정되어야 함

실제로 저는 한 프로젝트에서 주문 테이블에 '상품명'을 넣어두고 시작했는데, 정작 나중에 상품명이 바뀌자 기존 주문 내역까지 잘못 표시되는 바람에 데이터 정합성이 무너진 적이 있습니다. 도메인 분석이 부족하면 이렇게 핵심적인 오류가 발생합니다.


2️⃣ 요구사항 분석의 목적

요구사항 분석의 궁극적인 목적은 다음 3가지를 달성하는 데 있습니다:

  1. 업무를 데이터 구조로 변환하는 것
    • 업무의 흐름을 정리하고, 그것을 데이터로 설계할 수 있는 기반을 마련합니다.
  2. 관계형 모델의 기반 정의
    • 어떤 테이블이 필요한지, 각 테이블이 어떤 관계를 가지는지 판단하는 근거가 됩니다.
  3. 시스템의 경계를 명확히 하는 것
    • 우리가 만들 시스템이 어디서 시작되고 끝나는지를 정의해야 효율적인 개발과 협업이 가능합니다.

3️⃣ 요구사항 분석의 실무 절차

실제로 요구사항 분석은 다음과 같은 절차로 수행됩니다.

🔍 1. 현업 인터뷰 & 문서 수집

  • 관련 부서와의 미팅, 기존 업무 프로세스 문서, 화면 설계서, 기존 시스템 데이터 확인
  • 이 과정에서 업무 용어와 흐름을 반드시 정리해야 합니다 ("고객"이 개인인지 법인인지 등)

✏️ 2. 시나리오 기반 Use Case 작성

  • "고객이 상품을 주문한다"는 시나리오를 기반으로 어떤 데이터가 오가는지를 도출합니다
  • 이 과정을 통해 테이블의 후보 개체들이 서서히 드러납니다

🧱 3. 데이터 항목 정리 및 속성 파악

  • 예: 고객 → 이름, 연락처, 주소, 생년월일 등
  • 데이터 형식, 입력/조회 권한, 필수 여부 등을 기록합니다

🧩 4. 업무 흐름을 기반으로 엔터티 도출

  • "주문은 고객이 만든다", "주문은 여러 상품을 포함한다" → 주문, 주문상세 테이블 도출

4️⃣ 요구사항 분석 예시 (CRM 시스템)

프로젝트: 중소기업 고객관리 시스템 (CRM)

주요 업무 시나리오

  • 고객이 회원가입을 한다
  • 고객이 상품을 주문한다
  • 관리자가 상품 정보를 등록한다
  • 상품은 제조사에 의해 공급된다

도출된 주요 데이터 항목

업무 데이터 항목
고객 등록 이름, 연락처, 주소, 생년월일, 직업
상품 등록 상품명, 분류, 가격, 제조사, 제조일자, 유통기한
주문 관리 고객번호, 상품번호, 수량, 주문일자

이러한 항목들은 단순 나열이 아닌, 관계와 흐름을 고려해서 도식화되어야 합니다. 즉, 이 과정이 제대로 되어야 이후의 ERD나 릴레이션 스키마가 말이 되기 시작합니다.


5️⃣ 잘못된 요구사항 분석의 실무 사례

  1. 중복된 데이터 설계
    • 고객 테이블에 주문 내역을 중복 저장
    • 변경 시 모든 테이블에서 값을 수정해야 함
  2. 관계가 빠진 데이터 모델링
    • 주문에 상품ID만 있고 수량 정보 없음 → 매출 분석 불가능
  3. 정책이 반영되지 않은 구조
    • 환불 정책 있음에도 주문 상태에 대한 컬럼이 없음 → 개발 시 별도 테이블 추가하며 혼선 발생

🔚 마무리하며

요구사항 분석은 그 자체로 완벽한 데이터베이스 설계를 위한 출발점입니다. 대충 넘어가면 모든 설계가 틀어지고, 수정 비용이 수십 배가 됩니다. 그래서 실무에서는 요구사항 분석 단계를 명확히 문서화하고 공유하며 진행하는 것이 매우 중요합니다.