bmalph 실전 가이드 5편 - 설계 문서와 세부 작업 만들기

요약#

핵심 요지#

  • 문제 정의: PRD만 있고 세부 작업이 없으면 implement 뒤 작업판 품질이 흔들리고, Ralph가 한 번에 너무 큰 일을 집게 됩니다
  • 핵심 주장: 설계 문서에는 기술 선택을, 스토리 문서에는 한 번에 하나씩 구현 가능한 작업 단위를 남겨야 합니다
  • 주요 근거: 실제 implement 사전 점검에서는 설계 문서에 Tech Stack이 없을 때 경고가 났고, Story 제목과 AC 줄은 @fix_plan.md로 정상 변환됐습니다
  • 한계: 세부 작업을 너무 잘게 쪼개면 문서가 번거로워질 수 있습니다. 하지만 초보자에게는 큼직한 스토리보다 작은 스토리가 더 안전합니다

문서가 설명하는 범위#

  • 설계 문서에 꼭 들어갈 것
  • todo-demo 스토리를 어떻게 쪼갤지
  • 구현 준비 점검 문서가 왜 필요한지
  • 6편 implement로 넘길 기준

읽는 시간: 11분 | 난이도: 초급

참고 자료#

지금 todo-demo는 어디까지 왔을까요?#

5편에서는 todo-demo-architecture.md, todo-demo-epics-stories.md, todo-demo-readiness.md를 기준으로 Ralph가 읽을 작업 단위를 만듭니다.
즉 PRD를 실제 구현 순서로 잘게 쪼개는 편입니다.

이유는 간단합니다.
PRD는 제품 기준이고, Ralph는 세부 작업 기준으로 움직이기 때문입니다.

그래서 5편에서는 두 가지를 만듭니다.

  • 기술 결정을 남기는 설계 문서
  • 한 번에 하나씩 구현 가능한 세부 작업 목록

설계 문서에는 무엇이 꼭 들어가야 할까요?#

todo-demo는 작은 프로젝트라서 설계 문서도 길 필요는 없습니다.
다만 사라지면 곤란한 정보는 분명히 있어야 합니다.

실제 예제로 bmalph implement를 돌려 보니, 설계 문서에 Tech Stack이 없을 때 경고가 발생했습니다.
즉 최소한 아래는 넣는 편이 안전합니다.

  • 개요
  • 기술 스택
  • 주요 구성 요소
  • 데이터 구조
  • 테스트 기준

이번 시리즈에서는 아래 정도로 잡겠습니다.

# Todo Demo Architecture
## Overview
작은 Node.js 기반 할 일 예제다.
## Tech Stack
- Runtime: Node.js
- Language: JavaScript
- Tests: node:test
## Components
- Todo model
- Todo store
- Filter logic
- Priority update logic
## Quality Gates
- `npm test` 통과

중요한 것은 멋있게 쓰는 것이 아니라, Ralph가 코드를 바꿀 때 참고할 기술 기준을 남기는 것입니다.


스토리는 어떻게 쪼개야 할까요?#

여기서 Ralph의 핵심 원칙이 그대로 들어옵니다.
한 번에 하나의 작업만 처리할 수 있어야 합니다.

이번 예제에서 가장 자연스러운 스토리 분해는 아래 네 개입니다.

Epic 1: Core todo management#

### Story 1.1: Add a todo item
> AC: Given a title, when a todo is added, then it receives an id and done is false.
> AC: Given an empty list, when a todo is added, then the list contains one item.
### Story 1.2: Toggle todo completion
> AC: Given an existing todo, when completion is toggled, then done changes.
> AC: Given a missing id, when completion is toggled, then the function reports failure.
### Story 1.3: Set todo priority
> AC: Given an existing todo, when priority is updated, then the new priority is stored.
> AC: Given an invalid priority, when the update is attempted, then the function rejects the value.
### Story 1.4: Filter todos by status
> AC: Given mixed todos, when active filter is used, then only pending todos are returned.
> AC: Given mixed todos, when completed filter is used, then only completed todos are returned.

여기서 중요한 점은 두 가지입니다.

  • 제목만 봐도 무엇을 만드는지 보여야 합니다
  • AC 줄은 실제 동작 기준이어야 합니다

실제로 이 형식은 6편 implement에서 @fix_plan.md로 잘 변환됐습니다.


왜 스토리를 더 크게 잡지 않을까요?#

예를 들어 아래처럼 한 줄로 쓰고 싶은 유혹이 생깁니다.

  • “핵심 할 일 기능 만들기”

하지만 이건 Ralph에게 너무 큽니다.
추가, 완료 처리, 우선순위, 필터가 모두 섞여 있기 때문입니다.
이렇게 쓰면 테스트도 커지고, 실패했을 때 어느 기준을 놓쳤는지도 흐려집니다.

반대로 1.1부터 1.4까지처럼 자르면 장점이 분명합니다.

  • 테스트를 각각 독립적으로 쓸 수 있습니다
  • @fix_plan.md 체크박스가 단순해집니다
  • 한 번 실패해도 어떤 스토리에서 막혔는지 바로 보입니다

즉 “한 번에 하나의 스토리”는 철학이 아니라 운영 안정성의 문제입니다.


구현 준비 점검 문서는 왜 넣을까요?#

공식 bmalph 흐름에는 Implementation Readiness가 있습니다.
이 문서는 새 기능을 추가하는 문서가 아닙니다.
앞에서 만든 문서들이 서로 모순 없이 맞물리는지 확인하는 마지막 점검표입니다.

todo-demo-readiness.md에는 아래 정도면 충분합니다.

  • PRD와 설계 문서의 범위가 같은가
  • 스토리가 PRD 요구사항을 빠뜨리지 않았는가
  • 테스트 명령이 정해졌는가
  • 지금 단계에서 빼기로 한 기능이 스토리에 섞이지 않았는가

이 한 장이 있으면 6편에서 implement를 돌리기 전 마음이 훨씬 편해집니다.


6편으로 넘기기 전에 확인할 기준#

아래 조건이 맞으면 implement로 넘어갈 수 있습니다.

  • PRD가 있다
  • 설계 문서에 Tech Stack이 있다
  • 스토리가 한 번에 하나씩 구현 가능한 크기다
  • AC 줄이 동작 기준으로 적혀 있다
  • 구현 준비 점검 문서가 있다

이번 시리즈에서는 아래 파일 이름으로 맞추겠습니다.

  • todo-demo-prd.md
  • todo-demo-architecture.md
  • todo-demo-epics-stories.md
  • todo-demo-readiness.md

5편에서 꼭 가져가야 할 기준#

  • 설계 문서는 기술 기준을 남기는 문서입니다
  • 스토리는 한 번에 하나의 작업만 담아야 합니다
  • Tech StackAC는 실제로 implement 품질에 영향을 줍니다
  • 구현 준비 점검 문서는 마지막 정합성 확인입니다
  • 다음 편에서는 이 문서들을 Ralph 작업판으로 변환합니다

6편에서는 이제 bmalph implement를 실제로 실행해 .ralph/@fix_plan.md, .ralph/PROJECT_CONTEXT.md, .ralph/SPECS_INDEX.md가 어떻게 생기는지 직접 확인하겠습니다.

공유

이 글이 도움이 되었다면 다른 사람과 공유해주세요!

bmalph 실전 가이드 5편 - 설계 문서와 세부 작업 만들기
https://docs.bmad-method.org/reference/workflow-map/
작성자
Moodturn
게시일
2026-04-01
Moodturn

목차