---
type: knowledge
domain: product
role: Database
status: active
last-reviewed: 2026-07-27
---

# Database 기획 가이드

> Database 기획은 데이터 구조와 변경 절차를 무결성·호환성·운영 복구 관점에서 확정하는 작업이다. 이 역할의 산출물(ERD·테이블정의서·마이그레이션 절차서)이 없으면 인수 후 DB 이관·유지보수가 불가능한 "블랙박스 인계"가 된다.

## 책임과 경계

- 책임: schema, ERD, 제약, migration, index, query 최적화, 적용·rollback 절차
- 입력: 요구사항정의서(SRS), Backend API·쿼리 패턴, 기존 schema와 데이터 규모, 발주사 운영 제약(변경 창·백업 정책)
- 범위 밖: 애플리케이션 비즈니스 로직, 인증·암호 알고리즘, 실제 사용자 PII seed
- 다음 소비자: Backend, DevOps·SRE, QA, 발주사 운영자(인수인계 대상)

## 필수 입력

| 입력 항목 | 원천 | 없을 때 처리 |
|---|---|---|
| 요구사항정의서(SRS)·데이터 요구 | PM·PO·BA (요구 ID 포함) | 착수 보류, PM에 요구 ID·데이터 요구 명시 요청 |
| Backend 쿼리 패턴 | Backend 역할(API 계약·쿼리 경로) | 접근 패턴을 가정으로 표시하고 index 설계를 잠정으로 둔다 |
| 기존 schema·데이터 규모 | 운영 DB·발주사 제공 | 가정으로 기록 — 운영 DB 접근·통계는 발주사 제공 항목, 미제공 시 지연 기록·통지 |
| 발주사 운영 제약(변경 창·백업 정책) | 발주사 운영자 | 의존성 대장에 등록, 적용·rollback 계획을 잠정으로 표시 |

## 납품 연결 ([[외주 개발 산출물]])

| 이 역할의 결과물 | 납품 산출물 | 마일스톤 |
|---|---|---|
| 스키마 명세([[01_ERD·스키마 명세]]) | **ERD·테이블정의서** — schema에서 역생성이 가장 정확 | 설계 완료 |
| migration 계획·runbook | **마이그레이션 절차서**(적용·검증·rollback) — 시스템 매뉴얼·인수인계서 입력 | 이관 |
| migration 스크립트·커밋 이력 | **소스코드 일체(저장소 이관) + 형상관리·버전 이력 + 빌드·배포 스크립트** | 개발 완료 |
| 적용·복구 검증 기록 | 테스트결과서(무결성·복구 PASS/FAIL) | 검수 |
| 데이터 이관(기존 시스템→신규) | 계약 포함 여부를 먼저 확인 — 범위 밖이면 CR | 계약 확인 |

## 기획 순서

1. [[01_ERD·스키마 명세]]에서 엔터티, 타입, NULL, 제약과 관계를 정한다.
2. [[02_쿼리·인덱스 계획]]에서 실제 접근 패턴으로 index를 설계한다.
3. [[03_마이그레이션·데이터 영향]]에서 backfill, 잠금, 호환성을 분석한다.
4. [[04_운영 적용·롤백]]에서 배포 순서와 복구 절차를 검증 가능하게 만든다.
5. [[90_Database 완료 체크리스트]]로 무결성과 운영 위험을 확인한다.
6. [[99_Database Result Card 템플릿]]으로 Backend와 운영에 인계한다.

## 파일 지도

| 파일 | 용도 | 주 소비자 |
|---|---|---|
| 현재 문서 | 역할 책임·입력·기획 순서 | Database |
| [[01_ERD·스키마 명세]] | 엔터티·타입·제약·관계 — 납품 ERD·테이블정의서 원본 | Backend, 발주사 운영자 |
| [[02_쿼리·인덱스 계획]] | 실제 접근 패턴 기반 index 설계 | Backend, 리뷰어 |
| [[03_마이그레이션·데이터 영향]] | backfill·잠금·호환성 분석 | Backend, DevOps·SRE |
| [[04_운영 적용·롤백]] | 배포 순서·복구 절차 — 마이그레이션 절차서 원본 | DevOps·SRE, 발주사 운영자 |
| [[90_Database 완료 체크리스트]] | 무결성·운영 위험 자체 점검 | Reviewer, QA |
| [[99_Database Result Card 템플릿]] | Backend·운영 인계 카드 | Backend, DevOps·SRE |

## 핵심 결정 원칙

- 운영 중 변경은 expand → backfill → switch → contract처럼 무중단 호환성을 우선한다.
- index는 추측이 아니라 WHERE / JOIN / ORDER BY와 데이터 분포를 근거로 한다.
- 외래키의 ON DELETE / ON UPDATE와 NULL 의미를 명시한다.
- 한 migration에는 하나의 논리 변경만 둔다.
- 큰 테이블의 NOT NULL, index, type 변경은 잠금과 실행 시간을 먼저 검토한다.
- 계약 범위 밖의 데이터 이관·타 시스템 스키마 연동 요청은 임의 수행하지 않고 **CR(변경요청)로 회부**한다 ([[SI 수주와 범위 관리]]).

## 진입 게이트

- [ ] 요구사항 ID와 데이터 요구(엔터티·보존·규모)가 확보됐다.
- [ ] Backend의 쿼리 패턴 또는 최소한의 접근 시나리오가 공유됐다.
- [ ] 기존 schema·데이터 규모 정보가 있거나 가정으로 기록됐다.
- [ ] 발주사 운영 제약(변경 창·백업·접근 권한)이 확인됐다.

## 완료된 기획의 조건

- 적용 전후 애플리케이션 버전의 호환 범위가 명시된다.
- 데이터 손실 없이 적용·rollback 또는 forward-fix가 재현된다 — 발주사 운영자가 절차서만으로 따라 할 수 있는 수준.
- Backend가 사용할 컬럼·쿼리 경로를 확인했다.
- 확인하지 못한 데이터 규모와 실행 시간은 가정으로 표시한다(운영 DB 접근·통계는 발주사 제공 항목 — 미제공 시 기록).
- 종료 게이트: 다음 역할이 착수 가능한 동시에, 산출물이 **검수·계약 근거로 쓸 수 있는가**를 통과한다.

## 함께 읽기

- [[00_역할별 기획 허브]]
- [[00_역할별 기획 운영 가이드]]
- [[역할별 개발 산출물]]
- [[외주 개발 산출물]]
- [[SI 수주와 범위 관리]]
- [[02_데이터·DB 설계]] — 설계 판단 기준(03_설계 역할별)
