@simplysm/sd-claude 14.0.61 → 14.0.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/claude/rules/sd-clarify.md +11 -1
- package/claude/rules/sd-claude-rules.md +2 -2
- package/claude/skills/sd-dev/SKILL.md +5 -1
- package/claude/skills/sd-review/SKILL.md +1 -1
- package/claude/skills/sd-wbs/SKILL.md +36 -0
- package/claude/skills/sd-wbs/references/decision-table.md +66 -0
- package/claude/skills/sd-wbs/references/flow-diagram.md +56 -0
- package/claude/skills/sd-wbs/references/glossary.md +44 -0
- package/claude/skills/sd-wbs/references/menu-structure.md +59 -0
- package/claude/skills/sd-wbs/references/wireframe.md +64 -0
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# sd-clarify: 명확화 지침
|
|
2
2
|
|
|
3
|
-
결정 사안의 명확성을 분류하고, 불명확한 항목은 사용자 질문을 통해
|
|
3
|
+
결정 사안의 명확성을 분류하고, 불명확한 항목은 사용자 질문을 통해 확정한다.
|
|
4
4
|
|
|
5
5
|
결정 사안 = 작업 수행을 위해 확정해야 하는 개별 결정 항목 (의도, 방식, 동작, 값 등).
|
|
6
6
|
|
|
@@ -196,6 +196,16 @@ Step 3의 각 질문은 다음 형식으로 제시한다.
|
|
|
196
196
|
| B. yyy | 6 | 7 | 9 | `7.3` |
|
|
197
197
|
| C. 수행 안 함 | 2 | 10 | 5 | `5.7` |
|
|
198
198
|
```
|
|
199
|
+
- 마지막 상황 예시: 결정 묶음의 평가표 직후, `AskUserQuestion` 호출 직전 가로선 사이에 출력한다.
|
|
200
|
+
- 목적: 사용자가 이 블록만 읽어도 결정 가능하도록.
|
|
201
|
+
- 예시 가능한 결정:
|
|
202
|
+
- 구체 입력/상황 1건을 가정한다 (예: "자재 X·Y·Z의 월별 수량이 이렇게 들어 있을 때").
|
|
203
|
+
- 각 선택지 채택 시 결과를 라인·표·값으로 풀어 비교한다 (예: "지금 동작 — 18줄 / 바꾸면 — 9줄").
|
|
204
|
+
- 결과 차이가 한눈에 보이도록 동일 입력에 대한 양쪽 결과를 나란히 제시한다.
|
|
205
|
+
- 예시 불가능한 결정 (추상적 정책·진행 여부 등):
|
|
206
|
+
- 결정의 의미·영향 범위·각 선택지가 무엇을 보장하고 무엇을 포기하는지 풀어 쓴다.
|
|
207
|
+
- 길이 제약 없음.
|
|
208
|
+
- 어휘: 최종 사용자(최종고객) 업무 도메인 표현으로 작성한다. 시스템 내부 용어(코드 식별자·메타 분류·내부 변수명·파일 경로 등) 노출 금지.
|
|
199
209
|
|
|
200
210
|
## 인용 형식
|
|
201
211
|
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
- 사용자 발언을 그대로 받아쓰는 것은 의도 파악 실패로 간주한다.
|
|
15
15
|
- 내장 도구 적극 활용 (Read/Grep/Glob/Bash/WebFetch/WebSearch/Skill/TaskCreate 등)
|
|
16
16
|
- 사용자 요청의 의도가 불명확할 때는 `sd-clarify` 지침에 따라 명확화한다.
|
|
17
|
-
- 사용자에게 출력하는 글은 사용자(
|
|
18
|
-
- 시스템 내부 용어(행·컬럼·필드·메타 분류·코드 식별자 등) 노출 금지.
|
|
17
|
+
- **IMPORTANT**: 사용자에게 출력하는 글은 최종 사용자(고객) 업무 도메인 어휘(표현방식)로 최대한 끌어올려 쓴다.
|
|
18
|
+
- 시스템 내부 용어(행·컬럼·필드·메타 분류·코드 식별자 등) 노출 금지.
|
|
19
19
|
- 사용자가 일상 업무에서 부르는 이름·동사로 바꾼다.
|
|
20
20
|
- 정독·검색 없이 1회독으로 이해되는지로 점검한다.
|
|
21
21
|
- **CRITICAL**: 사용자가 명시하지 않은 행동을 추측으로 진행 하지 말것
|
|
@@ -34,7 +34,7 @@ sd-wbs → sd-plan → sd-tdd → sd-check → sd-review를 순차 진행하는
|
|
|
34
34
|
|
|
35
35
|
## Step 4: sd-tdd
|
|
36
36
|
|
|
37
|
-
`/sd-tdd` 스킬을 즉시 수행한다.
|
|
37
|
+
`/sd-tdd` 스킬을 즉시 수행한다. 완료후 다음 단계를 즉시 수행한다.
|
|
38
38
|
|
|
39
39
|
## Step 5: sd-check
|
|
40
40
|
|
|
@@ -44,6 +44,8 @@ sd-tdd Step 3-4 `변경 사항 요약`의 `변경 파일 목록`이 비어 있
|
|
|
44
44
|
|
|
45
45
|
예: `/sd-check core-common angular`
|
|
46
46
|
|
|
47
|
+
완료후 다음 단계를 즉시 수행한다.
|
|
48
|
+
|
|
47
49
|
## Step 6: sd-review
|
|
48
50
|
|
|
49
51
|
Task 문서 경로를 인자로 전달하여 feature 구현이 plan대로 되었는지 리뷰한다. sd-tdd Step 3-4 `변경 파일 목록`은 `변경 파일:` 후미에 명시하여 리뷰 대상을 좁힌다.
|
|
@@ -59,6 +61,8 @@ sd-review 보고에 확정 이슈가 없으면 이 단계를 스킵하고 Step 7
|
|
|
59
61
|
|
|
60
62
|
수정 내역과 미수정 건은 Step 7 완료 보고의 `리뷰 수정 건` / `리뷰 미수정 건` 섹션에 반영한다.
|
|
61
63
|
|
|
64
|
+
완료후 다음 단계를 즉시 수행한다.
|
|
65
|
+
|
|
62
66
|
## Step 7: 완료 보고 양식
|
|
63
67
|
|
|
64
68
|
모든 단계 완료 후, 아래 양식으로 실행 결과를 대화에 출력한다.
|
|
@@ -14,6 +14,7 @@ WBS는 고객 중심으로 **무엇을 만들어야 하는지(What)** 를 확정
|
|
|
14
14
|
## What/How 경계
|
|
15
15
|
|
|
16
16
|
이 스킬은 비즈니스 요구사항(What)만 분석한다.
|
|
17
|
+
What은 사용자 시점, How는 개발자 시점이다.
|
|
17
18
|
|
|
18
19
|
**What — 이 스킬에서 반드시 확정 (위임 금지):**
|
|
19
20
|
|
|
@@ -125,6 +126,21 @@ USM의 모든 단위는 **사용자 동작 단위**이다. 다음 분할은 절
|
|
|
125
126
|
|
|
126
127
|
사용자 입력이 위 금지 분할(레이어/Actor)을 명시 요청하더라도 그대로 따르지 않는다. USM 패러다임으로 재해석하여 사용자 동작 단위로 분해하고, 재해석 사항을 재해석 목록에 등록한다.
|
|
127
128
|
|
|
129
|
+
### 선택적 자료
|
|
130
|
+
|
|
131
|
+
USM 분해와 함께 사용자 시점 자료를 프로젝트 내용에 따라 선택적으로 포함한다.
|
|
132
|
+
작성 시 해당 references 파일을 읽고 가이드에 따른다.
|
|
133
|
+
|
|
134
|
+
| 자료 | 작성 위치 | 가이드 | 적용 기준 |
|
|
135
|
+
|---|---|---|---|
|
|
136
|
+
| 메뉴 구성 | wbs.md 상단 (Impact Mapping 다음) | `references/menu-structure.md` | 사용자가 보는 메뉴/네비게이션이 있는 경우 |
|
|
137
|
+
| 용어 사전 | wbs.md 상단 (Impact Mapping 다음) | `references/glossary.md` | 도메인 어휘·약어가 다수이거나 동의어 정리가 필요한 경우 |
|
|
138
|
+
| 업무 플로우 (mermaid) | 각 Activity 헤더 직후 | `references/flow-diagram.md` | 사용자 여정·상태 전이가 핵심인 Activity |
|
|
139
|
+
| 와이어프레임 | 해당 Task 또는 Story 안 | `references/wireframe.md` | 사용자가 보는 화면이 있는 Task/Story |
|
|
140
|
+
| 결정 규칙표 | 해당 Task 또는 Story 안 | `references/decision-table.md` | 분기 조건 조합이 많은 Task/Story (mermaid 보완재) |
|
|
141
|
+
|
|
142
|
+
자료가 불필요한 프로젝트면 해당 섹션을 생략한다.
|
|
143
|
+
|
|
128
144
|
### 3-1. Activity Backbone 도출
|
|
129
145
|
|
|
130
146
|
Activity는 사용자가 시스템과 함께 달성하는 큰 활동(=업무 영역)이다. 사용자 여정의 시간 흐름 또는 업무 묶음을 따라 Backbone을 구성한다.
|
|
@@ -136,6 +152,8 @@ Activity는 사용자가 시스템과 함께 달성하는 큰 활동(=업무 영
|
|
|
136
152
|
|
|
137
153
|
- "회원 가입/인증" → "도서 검색" → "대출/반납" → "도서 관리"
|
|
138
154
|
|
|
155
|
+
이 단계에서 작성할 자료(선택): 메뉴 구성, 용어 사전, Activity별 업무 플로우.
|
|
156
|
+
|
|
139
157
|
### 3-2. Task 분해
|
|
140
158
|
|
|
141
159
|
Task는 Activity 안의 사용자 작업이다. 후속 스킬(`/sd-plan`, `/sd-tdd`)의 1 작업 단위이다.
|
|
@@ -165,6 +183,8 @@ Task는 Activity 안의 사용자 작업이다. 후속 스킬(`/sd-plan`, `/sd-t
|
|
|
165
183
|
|
|
166
184
|
의존성이 없다는 근거를 명시할 수 없으면 의존성이 있는 것으로 간주한다. 과소 설정(블로킹·재작업)이 과대 설정(약간의 직렬화)보다 비용이 크다.
|
|
167
185
|
|
|
186
|
+
이 단계에서 작성할 자료(선택): 해당 Task의 와이어프레임·결정 규칙표.
|
|
187
|
+
|
|
168
188
|
### 3-3. Story 작성
|
|
169
189
|
|
|
170
190
|
Story는 Task 안의 한 사용자 시나리오이다. 한 줄 사용자 동작 형식으로 작성한다.
|
|
@@ -190,6 +210,8 @@ Story는 Task 안의 한 사용자 시나리오이다. 한 줄 사용자 동작
|
|
|
190
210
|
- 추정 진행, "추후 결정" fallback, 자체 추가 금지.
|
|
191
211
|
- wbs.md 본문에 "후속 확정/보류/추후 결정/협의 필요" 같은 미확정 표현 사용 금지.
|
|
192
212
|
|
|
213
|
+
이 단계에서 작성할 자료(선택): 해당 Story의 와이어프레임·결정 규칙표 (Task 단위로 부족한 경우).
|
|
214
|
+
|
|
193
215
|
## Step 4: 자가검증 (Self-Refine)
|
|
194
216
|
|
|
195
217
|
1차 산출된 분해 결과를 아래 검증 관점 4가지로 **MUST** 순회 점검하여 발견 항목 목록을 확정한다.
|
|
@@ -253,10 +275,20 @@ Backbone 흐름·Story 단위 적정성·양방향 커버리지는 Step 6 격리
|
|
|
253
275
|
- **Impact:** [행동 변화]
|
|
254
276
|
- **Deliverable:** [산출물]
|
|
255
277
|
|
|
278
|
+
## 메뉴 구성 (선택)
|
|
279
|
+
|
|
280
|
+
[references/menu-structure.md 참조]
|
|
281
|
+
|
|
282
|
+
## 용어 사전 (선택)
|
|
283
|
+
|
|
284
|
+
[references/glossary.md 참조]
|
|
285
|
+
|
|
256
286
|
## USM Backbone
|
|
257
287
|
|
|
258
288
|
### Activity 1. [Activity 이름]
|
|
259
289
|
|
|
290
|
+
**업무 플로우 (선택, references/flow-diagram.md 참조)**
|
|
291
|
+
|
|
260
292
|
#### [ ] Task 1.1 [Task 이름]
|
|
261
293
|
|
|
262
294
|
**의존성:** 없음
|
|
@@ -270,6 +302,10 @@ Backbone 흐름·Story 단위 적정성·양방향 커버리지는 Step 6 격리
|
|
|
270
302
|
- Impact Mapping Deliverable: "상세 정보 팝업"
|
|
271
303
|
- 요구사항: "팝업 형태로 상세 정보 표시"
|
|
272
304
|
|
|
305
|
+
**와이어프레임 (선택, references/wireframe.md 참조)**
|
|
306
|
+
|
|
307
|
+
**결정 규칙표 (선택, references/decision-table.md 참조)**
|
|
308
|
+
|
|
273
309
|
**Stories:**
|
|
274
310
|
|
|
275
311
|
##### Story 1.1.1 상세 정보 팝업 열기
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# 결정 규칙표 작성 가이드
|
|
2
|
+
|
|
3
|
+
해당 Task 또는 Story 안에 작성. 조건 조합에 따른 결과를 표로 정리한다. mermaid 분기가 폭발할 때 보완재로 사용한다.
|
|
4
|
+
|
|
5
|
+
## 사용 시점
|
|
6
|
+
|
|
7
|
+
다음 중 하나에 해당하면 결정 규칙표를 작성한다.
|
|
8
|
+
|
|
9
|
+
- 분기 조건이 3개 이상이고 조합이 핵심
|
|
10
|
+
- 같은 결과로 가는 경로가 여러 개 (조건이 다양해도 결과는 같음)
|
|
11
|
+
- 조건 누락·중복을 검증해야 함 (완전성·배타성 확인 필요)
|
|
12
|
+
|
|
13
|
+
위 조건이 아니면 mermaid 또는 Story 산문으로 충분하다.
|
|
14
|
+
|
|
15
|
+
## 표현 형식
|
|
16
|
+
|
|
17
|
+
조건 컬럼 + 결과 컬럼으로 구성한다. 모든 조합을 행으로 나열한다.
|
|
18
|
+
|
|
19
|
+
| 회원 등급 | 연체 이력 | 보유 권수 | → 대출 가능 | → 최대 대수 |
|
|
20
|
+
|---|---|---|---|---|
|
|
21
|
+
| 일반 | 없음 | < 5 | 가능 | 5권 |
|
|
22
|
+
| 일반 | 없음 | = 5 | 불가 | — |
|
|
23
|
+
| 일반 | 있음 | < 3 | 가능 | 3권 |
|
|
24
|
+
| 일반 | 있음 | ≥ 3 | 불가 | — |
|
|
25
|
+
| VIP | 없음 | < 10 | 가능 | 10권 |
|
|
26
|
+
| VIP | 있음 | < 5 | 가능 | 5권 |
|
|
27
|
+
|
|
28
|
+
## 작성 원칙
|
|
29
|
+
|
|
30
|
+
- 조건은 독립적·결정적이어야 한다 (한 조건이 다른 조건을 함의하면 합치거나 분리).
|
|
31
|
+
- 모든 조합을 빠짐없이 나열한다 (완전성). 비어 있는 조합이 있으면 의도된 누락인지 명시.
|
|
32
|
+
- 같은 조건 행이 두 개 이상 있으면 안 된다 (배타성). 중복 발견 시 우선순위 또는 통합 규칙 명시.
|
|
33
|
+
- 결과 컬럼은 `→` 접두로 표시해 조건/결과를 시각적으로 구분한다.
|
|
34
|
+
- 조건 값은 구체 수치·범위로 적는다 (`< 5`, `= 5`, `≥ 3`). "많으면"·"적으면" 같은 추상 표현 금지.
|
|
35
|
+
- "해당 없음"은 빈칸이 아닌 `—`로 명시한다.
|
|
36
|
+
|
|
37
|
+
## 검증 체크리스트
|
|
38
|
+
|
|
39
|
+
작성 후 다음을 확인한다.
|
|
40
|
+
|
|
41
|
+
- 조합 수 = 각 조건 값 개수의 곱 (모든 조합 나열 확인)
|
|
42
|
+
- 같은 조건 조합이 두 행에 있지 않은가 (중복 확인)
|
|
43
|
+
- 결과가 빈칸인 행이 있다면 의도된 것인가 (누락 확인)
|
|
44
|
+
- 조건이 추가되면 행 수가 어떻게 늘어나는가 (확장성 점검)
|
|
45
|
+
|
|
46
|
+
## mermaid와의 역할 분리
|
|
47
|
+
|
|
48
|
+
같은 Task/Story에 mermaid와 결정 규칙표가 모두 있으면 다음 원칙으로 역할을 나눈다.
|
|
49
|
+
|
|
50
|
+
- mermaid: 사용자 작업의 시간 흐름·상태 전이
|
|
51
|
+
- 결정 규칙표: 특정 단계의 분기 조건·결과 조합
|
|
52
|
+
|
|
53
|
+
같은 정보를 양쪽에 중복하지 않는다. mermaid에서 분기가 복잡한 노드를 결정 규칙표로 위임한다.
|
|
54
|
+
|
|
55
|
+
## 좋은 예
|
|
56
|
+
|
|
57
|
+
- "회원 등급 × 연체 이력 × 보유 권수" 3개 조건의 모든 조합 나열
|
|
58
|
+
- 결과가 같은 행을 통합하지 않고 풀어 적어 누락 검증 가능
|
|
59
|
+
- 우선순위가 있는 규칙(예: "VIP는 다른 조건 무시")은 별도 행으로 명시
|
|
60
|
+
|
|
61
|
+
## 나쁜 예
|
|
62
|
+
|
|
63
|
+
- "일반 회원은 대출 5권, VIP는 10권" — 산문으로 적어 조합 누락 검출 불가
|
|
64
|
+
- 조건 컬럼에 "회원이 우수하면" 같은 추상 표현
|
|
65
|
+
- 일부 조합만 나열 (예: 연체 이력 "있음" 케이스 누락)
|
|
66
|
+
- mermaid에 똑같은 분기를 또 그려 중복 (역할 분리 위배)
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# 업무 플로우 (mermaid) 작성 가이드
|
|
2
|
+
|
|
3
|
+
Activity 헤더 직후에 작성. 사용자가 따라가는 시간 흐름·상태 전이를 시각화한다.
|
|
4
|
+
|
|
5
|
+
## 다이어그램 종류 선택
|
|
6
|
+
|
|
7
|
+
| 표현 대상 | 다이어그램 | 사용 시점 |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| 사용자 작업의 시간 흐름 | `flowchart` | 여러 단계를 순차 진행하는 Activity |
|
|
10
|
+
| 엔터티의 상태 변화 | `stateDiagram-v2` | 주문·요청·결재 등 상태 lifecycle이 핵심인 경우 |
|
|
11
|
+
| 사용자-시스템 간 주고받음 | `sequenceDiagram` | 외부 시스템 연동·승인 흐름 |
|
|
12
|
+
|
|
13
|
+
여러 다이어그램이 필요하면 분리해서 각각 작성한다.
|
|
14
|
+
|
|
15
|
+
## 작성 원칙
|
|
16
|
+
|
|
17
|
+
- 사용자 시점에서 보이는 단계만 노드로 둔다.
|
|
18
|
+
- 시스템 내부 함수·DB 호출·내부 큐 등은 노드로 두지 않는다.
|
|
19
|
+
- 분기는 의사결정 노드(`{}`)로 표현한다.
|
|
20
|
+
- 노드 라벨은 사용자 도메인 어휘로 작성한다 (시스템 식별자·테이블명 금지).
|
|
21
|
+
- 한 다이어그램의 노드 수는 12개 이내. 넘으면 하위 다이어그램으로 분할한다.
|
|
22
|
+
|
|
23
|
+
## flowchart 좋은 예
|
|
24
|
+
|
|
25
|
+
```mermaid
|
|
26
|
+
flowchart LR
|
|
27
|
+
A[회원이 도서 검색] --> B{대출 가능?}
|
|
28
|
+
B -- 가능 --> C[대출 신청]
|
|
29
|
+
B -- 불가 --> D[대기 등록]
|
|
30
|
+
C --> E[대출 완료]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## stateDiagram 좋은 예
|
|
34
|
+
|
|
35
|
+
```mermaid
|
|
36
|
+
stateDiagram-v2
|
|
37
|
+
[*] --> 대출중: 대출 신청
|
|
38
|
+
대출중 --> 반납완료: 반납
|
|
39
|
+
대출중 --> 연체: 기한 초과
|
|
40
|
+
연체 --> 반납완료: 반납
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 나쁜 예
|
|
44
|
+
|
|
45
|
+
- 노드 라벨에 `getBookById()`·`books 테이블` 같은 시스템 어휘 노출
|
|
46
|
+
- DB 트랜잭션 경계·캐시 무효화 같은 구현 상세 표현
|
|
47
|
+
- 한 다이어그램에 모든 Activity를 욱여넣어 노드 수가 30개를 넘김
|
|
48
|
+
- 분기 결과 라벨 누락 (`Yes`/`No`만 적고 무엇에 대한 판단인지 모호)
|
|
49
|
+
|
|
50
|
+
## 호환성
|
|
51
|
+
|
|
52
|
+
mermaid 코드블록은 `wbs.md`에서 GitHub·VS Code 미리보기로 렌더링된다. 호환성을 위해 다음을 지킨다.
|
|
53
|
+
|
|
54
|
+
- 노드 ID는 영문/숫자만 (한글 ID 금지, 라벨에는 한글 OK)
|
|
55
|
+
- 따옴표·괄호가 라벨에 들어가면 `[...]` 대신 `["..."]` 사용
|
|
56
|
+
- 색상·아이콘 등 확장 문법은 사용 금지 (호환성 우선)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# 용어 사전 작성 가이드
|
|
2
|
+
|
|
3
|
+
`wbs.md` 상단(Impact Mapping 다음)에 작성. 도메인 어휘·약어·동의어를 정리해 후속 sd-plan/sd-tdd가 같은 어휘를 쓰도록 한다.
|
|
4
|
+
|
|
5
|
+
## 표현 형식
|
|
6
|
+
|
|
7
|
+
표 형식으로 작성한다.
|
|
8
|
+
|
|
9
|
+
| 용어 | 정의 | 동의어·약어 | 비고 |
|
|
10
|
+
|---|---|---|---|
|
|
11
|
+
| 대출 | 회원이 도서를 일정 기간 빌리는 행위 | 차입, lending | 최대 14일 |
|
|
12
|
+
| 연체 | 대출 기간을 초과한 상태 | overdue | 1일 = 100원 연체료 |
|
|
13
|
+
| 회원 | 도서관 서비스를 이용하는 등록 사용자 | user, patron | 등급: 일반/VIP |
|
|
14
|
+
| VIP | 연 12회 이상 대출한 회원 | 우수회원 | 대출 한도 2배 |
|
|
15
|
+
|
|
16
|
+
## 작성 원칙
|
|
17
|
+
|
|
18
|
+
- 사용자가 일상에서 부르는 이름을 표제어로 둔다.
|
|
19
|
+
- 시스템 내부 용어(테이블명·코드 식별자)는 표제어 금지. 동의어 컬럼에만 등록.
|
|
20
|
+
- 정의는 1줄. 비즈니스 의미가 드러나야 한다 (구현 방식 X).
|
|
21
|
+
- 약어·줄임말·외래어가 있으면 동의어 컬럼에 모두 등록.
|
|
22
|
+
- 임계값·기간·등급 분류 등 구체 수치는 비고 컬럼에 명시.
|
|
23
|
+
|
|
24
|
+
## 등록 기준
|
|
25
|
+
|
|
26
|
+
다음 중 하나에 해당하면 등록한다.
|
|
27
|
+
|
|
28
|
+
- 사용자·이해관계자가 회의·메일·문서에서 2회 이상 사용한 어휘
|
|
29
|
+
- 의미가 헷갈리거나 동의어가 여럿인 어휘
|
|
30
|
+
- 임계값·등급 분류·정책 키워드 (예: "VIP", "연체", "장기 미반납")
|
|
31
|
+
- 후속 단계에서 코드 명명에 영향을 줄 어휘 (영문 표기 통일이 필요)
|
|
32
|
+
|
|
33
|
+
## 좋은 예
|
|
34
|
+
|
|
35
|
+
- 표제어 "대출" / 정의 "회원이 도서를 일정 기간 빌리는 행위" / 동의어 "차입, lending" / 비고 "최대 14일"
|
|
36
|
+
- 표제어 "VIP" / 정의 "연 12회 이상 대출한 회원" / 비고 "대출 한도 2배"
|
|
37
|
+
|
|
38
|
+
## 나쁜 예
|
|
39
|
+
|
|
40
|
+
- 표제어 `BookLoan` — 시스템 식별자
|
|
41
|
+
- 정의 "Loan 테이블에 행을 INSERT" — 구현 상세
|
|
42
|
+
- 정의 "도서 대출 관련 처리" — 추상적, 비즈니스 의미 없음
|
|
43
|
+
- 동의어·약어 누락 (사용자가 다르게 부르는 이름이 wbs 본문에 그대로 노출)
|
|
44
|
+
- 임계값(예: "VIP 기준 연 12회") 누락 (비고 없으면 후속 단계에서 다시 물어야 함)
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# 메뉴 구성 (IA) 작성 가이드
|
|
2
|
+
|
|
3
|
+
`wbs.md` 상단(Impact Mapping 다음)에 작성. 사용자가 보는 메뉴/네비게이션의 위계를 정리한다.
|
|
4
|
+
|
|
5
|
+
## 표현 형식
|
|
6
|
+
|
|
7
|
+
다음 두 형식 중 하나를 선택한다.
|
|
8
|
+
|
|
9
|
+
### 1. 트리 형식
|
|
10
|
+
|
|
11
|
+
3~4단계 이내의 메뉴 위계를 들여쓰기로 표현한다.
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
- 도서 관리
|
|
15
|
+
- 도서 등록
|
|
16
|
+
- 도서 검색
|
|
17
|
+
- 도서 수정
|
|
18
|
+
- 회원 관리
|
|
19
|
+
- 회원 가입
|
|
20
|
+
- 회원 정보 수정
|
|
21
|
+
- 통계
|
|
22
|
+
- 대출 현황
|
|
23
|
+
- 인기 도서
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. 표 형식
|
|
27
|
+
|
|
28
|
+
권한별 차이가 있거나 진입 경로·아이콘 등 부가 정보가 필요하면 표를 쓴다.
|
|
29
|
+
|
|
30
|
+
| 메뉴 | 하위 메뉴 | 권한 | 비고 |
|
|
31
|
+
|---|---|---|---|
|
|
32
|
+
| 도서 관리 | 등록·검색·수정 | 관리자 | 일반 회원에게는 검색만 노출 |
|
|
33
|
+
| 대출 | 대출 신청·반납 | 회원 이상 | — |
|
|
34
|
+
| 통계 | 대출 현황·인기 도서 | 관리자 | 대시보드 형태 |
|
|
35
|
+
|
|
36
|
+
## 형식 선택 기준
|
|
37
|
+
|
|
38
|
+
- 메뉴 항목 5개 이하 + 권한 분기 없음 → 트리 형식
|
|
39
|
+
- 메뉴 항목 6개 이상 또는 권한 분기 있음 → 표 형식
|
|
40
|
+
|
|
41
|
+
## 작성 원칙
|
|
42
|
+
|
|
43
|
+
- 사용자가 일상에서 부르는 이름을 메뉴명으로 쓴다 (도메인 어휘 우선).
|
|
44
|
+
- 시스템 라우트 경로(`/admin/books/list`)는 메뉴명에 노출하지 않는다.
|
|
45
|
+
- 권한별 노출 차이가 있으면 표 형식을 사용해 한눈에 비교 가능하게 한다.
|
|
46
|
+
- 메뉴 깊이는 3~4단계 이내. 더 깊어지면 사용자가 길을 잃는다.
|
|
47
|
+
- 정렬 순서는 사용 빈도 또는 업무 흐름. 알파벳·생성 순서 금지.
|
|
48
|
+
|
|
49
|
+
## 좋은 예
|
|
50
|
+
|
|
51
|
+
- "대출 관리 → 대출 신청 / 반납 처리 / 연체 알림"
|
|
52
|
+
- 관리자 메뉴와 회원 메뉴를 별도 표로 분리
|
|
53
|
+
|
|
54
|
+
## 나쁜 예
|
|
55
|
+
|
|
56
|
+
- `BookListController` 같은 컴포넌트·컨트롤러명을 메뉴로 사용
|
|
57
|
+
- 깊이 5단계 이상 (사용자가 클릭으로 도달 못 함)
|
|
58
|
+
- 사용 빈도와 무관한 알파벳·생성 순서로 정렬
|
|
59
|
+
- "기타"·"관리" 같은 추상 메뉴명 (안에 무엇이 있는지 가늠 불가)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# 와이어프레임 작성 가이드
|
|
2
|
+
|
|
3
|
+
해당 Task 또는 Story 안에 작성. 사용자가 보는 화면의 요소·배치·동작 결과를 텍스트로 표현한다.
|
|
4
|
+
|
|
5
|
+
## 표현 형식
|
|
6
|
+
|
|
7
|
+
상황에 맞춰 다음 중 하나를 선택한다.
|
|
8
|
+
|
|
9
|
+
### 1. ASCII 박스 다이어그램
|
|
10
|
+
|
|
11
|
+
레이아웃 구조가 핵심일 때 사용.
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
+------------------------------------------+
|
|
15
|
+
| [로고] 도서명·저자명 검색 [검색] | ← 헤더 (검색바)
|
|
16
|
+
+------------------------------------------+
|
|
17
|
+
| 카테고리 | 검색 결과 목록 |
|
|
18
|
+
| - 소설 | [표지] 제목 / 저자 / 상태 |
|
|
19
|
+
| - 비문학 | [표지] 제목 / 저자 / 상태 |
|
|
20
|
+
| - 잡지 | ... |
|
|
21
|
+
+------------------------------------------+
|
|
22
|
+
| 푸터: 페이지네이션 [< 1 2 3 >] |
|
|
23
|
+
+------------------------------------------+
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### 2. 영역별 텍스트 명세
|
|
27
|
+
|
|
28
|
+
요소의 동작·문구가 핵심일 때 사용.
|
|
29
|
+
|
|
30
|
+
- **헤더**: 로고, 검색바(placeholder "도서명 또는 저자명"), 로그인/마이페이지
|
|
31
|
+
- **사이드바**: 카테고리 목록(소설/비문학/잡지). 클릭 시 결과 필터링
|
|
32
|
+
- **본문**: 검색 결과 카드 리스트. 카드당 표지·제목·저자·상태(대출 가능/대출 중)
|
|
33
|
+
- **푸터**: 페이지네이션 (한 페이지 20건)
|
|
34
|
+
|
|
35
|
+
## 작성 원칙
|
|
36
|
+
|
|
37
|
+
- 사용자가 보는 요소만 적는다. 컴포넌트 트리·상태 관리 객체는 sd-plan 영역.
|
|
38
|
+
- 사용자 동작 → 결과를 짝으로 명시한다 (예: "검색 클릭 → 결과 목록 갱신").
|
|
39
|
+
- 빈 상태·오류 상태·로딩 상태가 사용자에게 보이면 별도 항목으로 추가한다.
|
|
40
|
+
- 여러 화면이 한 Task에 속하면 화면별로 와이어프레임을 분리해 작성한다.
|
|
41
|
+
- 입력 폼이면 항목명·필수 여부·검증 규칙을 명시한다 (예: "제목 (필수, 100자 이내)").
|
|
42
|
+
|
|
43
|
+
## 빈/오류/로딩 상태 표기
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
[기본 상태] 검색 결과 목록 (위 와이어프레임)
|
|
47
|
+
[빈 상태] "검색 결과가 없습니다" 안내 + 추천 카테고리 링크
|
|
48
|
+
[로딩 상태] 스켈레톤 카드 5개
|
|
49
|
+
[오류 상태] "일시적 오류" 안내 + 재시도 버튼
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 좋은 예
|
|
53
|
+
|
|
54
|
+
- "검색 결과 카드 클릭 → 도서 상세 팝업 열림. 팝업 외부 클릭 시 닫힘."
|
|
55
|
+
- "검색어 0자 입력 시 검색 버튼 비활성화."
|
|
56
|
+
- 입력 폼 필드별 필수 여부와 검증 규칙 명시
|
|
57
|
+
|
|
58
|
+
## 나쁜 예
|
|
59
|
+
|
|
60
|
+
- "BookCard 컴포넌트 사용" — 구현 상세 (sd-plan 영역)
|
|
61
|
+
- "Redux store에 results 저장" — 구현 상세
|
|
62
|
+
- 그림 없이 "기본적인 검색 화면" 같은 추상적 표현
|
|
63
|
+
- 동작 결과 누락 (요소만 나열하고 클릭 결과는 모호)
|
|
64
|
+
- 빈/오류 상태 누락 (사용자가 마주칠 화면 일부만 정의)
|