주요 워크플로우

자연어 요구사항에서 구현 태스크까지의 전체 파이프라인

전체 파이프라인

HanSpec의 워크플로우는 크게 4단계로 이루어집니다. 각 단계는 이전 단계의 출력을 입력으로 받아 점진적으로 스펙을 구체화합니다.

┌──────────────┐     ┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  자연어 입력  │ ──→ │     UIA      │ ──→ │     PDA      │ ──→ │     TMA      │
│              │     │  MFR 구조화   │     │  페이지 정의  │     │  태스크 분해  │
└──────────────┘     └──────────────┘     └──────────────┘     └──────────────┘
                           │                    │                    │
                           ▼                    ▼                    ▼
                     Module/Feature/       Page Definitions     Role-specific
                      Requirement          + Wireframes           Tasks

Step 1: 요구사항 수집

1

자연어 요구사항 작성

프로젝트 매니저, 기획자, 또는 개발자가 만들고 싶은 서비스를 자연어로 작성합니다. 형식에 대한 제약은 없습니다.

"소셜 북마크 서비스를 만들려고 해.
 사용자가 URL을 저장하면 자동으로 제목과 썸네일을 가져오고,
 태그를 달아서 분류할 수 있어야 해.
 다른 사용자의 북마크도 볼 수 있고, 팔로우 기능도 있으면 좋겠어."

Step 2: UIA — MFR 구조화

2

UIA 에이전트 실행

자연어를 Module / Feature / Requirement 계층으로 분석합니다.

UIA는 두 가지 모드로 동작합니다:

single

단건 분석

새로운 요구사항 하나를 기존 MFR 구조에 추가합니다. 기존 구조와의 충돌을 자동 검사합니다.

full_scan

전체 스캔

전체 요구사항을 한 번에 분석하여 MFR 구조를 처음부터 생성합니다. 프로젝트 초기에 사용합니다.

주요 처리 과정

  1. 도메인 식별 — 텍스트에서 독립적인 비즈니스 영역(Module)을 추출
  2. 기능 분류 — 각 모듈 내에서 사용자 대면 기능(Feature)을 분류
  3. 요구사항 추출 — "What" 관점의 구체적 요구사항(Requirement)을 정의
  4. 수평 관심사 분리 — 공통 정책(인증, 로깅 등)을 별도 모듈로 분리
  5. 상태 할당 — 각 요구사항의 확정 수준을 판별

Step 3: PDA — 페이지 정의

3

PDA 에이전트 실행

MFR 구조를 기반으로 실제 UI 화면을 정의합니다. 이 단계는 선택적이며, 프론트엔드가 있는 프로젝트에서 사용합니다.

주요 산출물

양방향 참조: 페이지 정의서의 각 요소는 원본 MFR의 Feature/Requirement를 참조하며, MFR 문서에서도 해당 페이지로의 역참조가 자동 생성됩니다.

Step 4: TMA — 태스크 분해

4

TMA 에이전트 실행

확정된(confirmed) Requirement를 역할별 구현 태스크로 분해합니다.

역할(Role) 정의

프로젝트의 hanspec.config.json에서 역할을 정의합니다:

{
  "roles": [
    { "id": "server", "name": "서버 개발" },
    { "id": "frontend", "name": "프론트엔드 개발" },
    { "id": "design", "name": "디자인" }
  ]
}

태스크 산출 규칙

워크플로우 반복

HanSpec의 워크플로우는 일회성이 아닌 반복적(Iterative) 프로세스입니다:

    요구사항 변경/추가
          │
          ▼
   ┌──────────────┐
   │  UIA 재실행   │ ← 기존 MFR에 변경사항 반영
   └──────┬───────┘
          │
          ▼
   ┌──────────────┐
   │  PDA 갱신    │ ← 영향받는 페이지만 업데이트
   └──────┬───────┘
          │
          ▼
   ┌──────────────┐
   │  TMA 재분해   │ ← 변경된 Requirement만 재분해
   └──────────────┘

실제 사용 시나리오

시나리오: 쇼핑몰 프로젝트 시작

1

기획자가 요구사항 작성

"회원가입/로그인, 상품 조회, 장바구니, 주문/결제 기능이 필요합니다."

2

UIA full_scan 실행

회원, 상품, 주문, 공통정책 4개 Module과 각 Feature/Requirement 산출

3

팀 리뷰 & 상태 확정

팀원들이 MFR을 리뷰하고, 각 Requirement의 상태를 confirmed/undecided로 설정

4

PDA 실행 → 페이지 정의서 생성

12개 페이지 정의서 산출 (로그인, 회원가입, 상품목록, 상품상세, 장바구니, ...)

5

TMA 실행 → 역할별 태스크 산출

서버 18개, 프론트 15개, 디자인 8개 — 총 41개 태스크 산출

6

개발 시작

각 역할별로 의존성 순서에 따라 태스크 수행. AI 코드 생성 시 태스크의 Acceptance Criteria를 프롬프트로 활용