MFR 도메인

Module / Feature / Requirement — 요구사항을 구조화하는 3단계 계층

MFR은 HanSpec의 핵심 데이터 모델입니다. 자연어로 작성된 요구사항을 3단계 계층으로 분류하여, AI 에이전트와 개발자 모두가 이해할 수 있는 구조화된 스펙으로 변환합니다.

┌─────────────────────────────────────────────┐
│  Module (모듈)                               │
│  ┌─────────────────────────────────────────┐ │
│  │  Feature (기능)                          │ │
│  │  ┌─────────────────────────────────────┐ │ │
│  │  │  Requirement (요구사항)              │ │ │
│  │  │  • entity                           │ │ │
│  │  │  • happy_path                       │ │ │
│  │  │  • edge_case                        │ │ │
│  │  │  • ux                               │ │ │
│  │  │  • data                             │ │ │
│  │  └─────────────────────────────────────┘ │ │
│  └─────────────────────────────────────────┘ │
└─────────────────────────────────────────────┘

Module (모듈)

시스템의 최상위 도메인 영역입니다. 비즈니스 관점에서 독립적으로 관리될 수 있는 단위를 나타냅니다.

속성설명예시
이름도메인 영역의 한글 명칭회원, 주문, 상품
설명모듈이 담당하는 범위"회원 가입, 로그인, 프로필 관리"

공통 정책 모듈: 인증, 권한, 로깅, 에러 처리 등 여러 모듈에 걸친 수평적 관심사는 자동으로 "공통 정책" 모듈로 분리됩니다.

Feature (기능)

모듈 내의 사용자 대면 기능 단위입니다. 하나의 Feature는 사용자가 인식할 수 있는 하나의 기능 묶음을 의미합니다.

속성설명
이름기능의 한글 명칭 (예: 로그인, 회원가입)
상태confirmed / undecided / draft
소속 모듈상위 Module 참조

상태 시스템

Requirement (요구사항)

Feature 내의 구체적인 기능 명세입니다. 각 Requirement는 "사용자가 무엇을 할 수 있는가"를 한 문장으로 정의합니다.

요구사항 유형

유형설명예시
entity데이터 모델 정의"회원은 이메일, 비밀번호, 이름을 가진다"
happy_path정상 시나리오"이메일과 비밀번호로 로그인할 수 있다"
edge_case예외 상황"이메일이 틀리면 에러 메시지가 표시된다"
uxUI/UX 관련"비밀번호 입력 시 눈 아이콘으로 표시/숨김 전환"
data데이터 흐름"로그인 시 세션이 유지된다"

예시: 회원 모듈

Module: 회원
├── Feature: 회원가입
│   ├── [entity]     회원은 이메일, 비밀번호, 이름, 가입일을 가진다
│   ├── [happy_path] 이메일과 비밀번호로 회원가입할 수 있다
│   ├── [edge_case]  이미 가입된 이메일로는 가입할 수 없다
│   └── [ux]         비밀번호 강도 표시기가 실시간으로 표시된다
│
└── Feature: 로그인
    ├── [happy_path] 이메일과 비밀번호로 로그인할 수 있다
    ├── [edge_case]  비밀번호가 틀리면 에러 메시지가 표시된다
    └── [data]       로그인 성공 시 세션이 생성된다