timsquad 2.0.0

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.
Files changed (181) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +347 -0
  3. package/bin/tsq.js +6 -0
  4. package/dist/commands/feedback.d.ts +3 -0
  5. package/dist/commands/feedback.d.ts.map +1 -0
  6. package/dist/commands/feedback.js +142 -0
  7. package/dist/commands/feedback.js.map +1 -0
  8. package/dist/commands/full.d.ts +3 -0
  9. package/dist/commands/full.d.ts.map +1 -0
  10. package/dist/commands/full.js +87 -0
  11. package/dist/commands/full.js.map +1 -0
  12. package/dist/commands/git/commit.d.ts +3 -0
  13. package/dist/commands/git/commit.d.ts.map +1 -0
  14. package/dist/commands/git/commit.js +88 -0
  15. package/dist/commands/git/commit.js.map +1 -0
  16. package/dist/commands/git/index.d.ts +5 -0
  17. package/dist/commands/git/index.d.ts.map +1 -0
  18. package/dist/commands/git/index.js +5 -0
  19. package/dist/commands/git/index.js.map +1 -0
  20. package/dist/commands/git/pr.d.ts +3 -0
  21. package/dist/commands/git/pr.d.ts.map +1 -0
  22. package/dist/commands/git/pr.js +138 -0
  23. package/dist/commands/git/pr.js.map +1 -0
  24. package/dist/commands/git/release.d.ts +3 -0
  25. package/dist/commands/git/release.d.ts.map +1 -0
  26. package/dist/commands/git/release.js +158 -0
  27. package/dist/commands/git/release.js.map +1 -0
  28. package/dist/commands/git/sync.d.ts +3 -0
  29. package/dist/commands/git/sync.d.ts.map +1 -0
  30. package/dist/commands/git/sync.js +132 -0
  31. package/dist/commands/git/sync.js.map +1 -0
  32. package/dist/commands/init.d.ts +3 -0
  33. package/dist/commands/init.d.ts.map +1 -0
  34. package/dist/commands/init.js +150 -0
  35. package/dist/commands/init.js.map +1 -0
  36. package/dist/commands/log.d.ts +3 -0
  37. package/dist/commands/log.d.ts.map +1 -0
  38. package/dist/commands/log.js +271 -0
  39. package/dist/commands/log.js.map +1 -0
  40. package/dist/commands/metrics.d.ts +3 -0
  41. package/dist/commands/metrics.d.ts.map +1 -0
  42. package/dist/commands/metrics.js +299 -0
  43. package/dist/commands/metrics.js.map +1 -0
  44. package/dist/commands/quick.d.ts +3 -0
  45. package/dist/commands/quick.d.ts.map +1 -0
  46. package/dist/commands/quick.js +136 -0
  47. package/dist/commands/quick.js.map +1 -0
  48. package/dist/commands/retro.d.ts +3 -0
  49. package/dist/commands/retro.d.ts.map +1 -0
  50. package/dist/commands/retro.js +280 -0
  51. package/dist/commands/retro.js.map +1 -0
  52. package/dist/commands/status.d.ts +3 -0
  53. package/dist/commands/status.d.ts.map +1 -0
  54. package/dist/commands/status.js +127 -0
  55. package/dist/commands/status.js.map +1 -0
  56. package/dist/commands/watch.d.ts +3 -0
  57. package/dist/commands/watch.d.ts.map +1 -0
  58. package/dist/commands/watch.js +213 -0
  59. package/dist/commands/watch.js.map +1 -0
  60. package/dist/index.d.ts +3 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +50 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/lib/config.d.ts +34 -0
  65. package/dist/lib/config.d.ts.map +1 -0
  66. package/dist/lib/config.js +108 -0
  67. package/dist/lib/config.js.map +1 -0
  68. package/dist/lib/project.d.ts +47 -0
  69. package/dist/lib/project.d.ts.map +1 -0
  70. package/dist/lib/project.js +191 -0
  71. package/dist/lib/project.js.map +1 -0
  72. package/dist/lib/template.d.ts +33 -0
  73. package/dist/lib/template.d.ts.map +1 -0
  74. package/dist/lib/template.js +151 -0
  75. package/dist/lib/template.js.map +1 -0
  76. package/dist/types/config.d.ts +75 -0
  77. package/dist/types/config.d.ts.map +1 -0
  78. package/dist/types/config.js +66 -0
  79. package/dist/types/config.js.map +1 -0
  80. package/dist/types/feedback.d.ts +59 -0
  81. package/dist/types/feedback.d.ts.map +1 -0
  82. package/dist/types/feedback.js +26 -0
  83. package/dist/types/feedback.js.map +1 -0
  84. package/dist/types/index.d.ts +4 -0
  85. package/dist/types/index.d.ts.map +1 -0
  86. package/dist/types/index.js +5 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/types/project.d.ts +89 -0
  89. package/dist/types/project.d.ts.map +1 -0
  90. package/dist/types/project.js +44 -0
  91. package/dist/types/project.js.map +1 -0
  92. package/dist/utils/colors.d.ts +30 -0
  93. package/dist/utils/colors.d.ts.map +1 -0
  94. package/dist/utils/colors.js +54 -0
  95. package/dist/utils/colors.js.map +1 -0
  96. package/dist/utils/date.d.ts +25 -0
  97. package/dist/utils/date.d.ts.map +1 -0
  98. package/dist/utils/date.js +65 -0
  99. package/dist/utils/date.js.map +1 -0
  100. package/dist/utils/fs.d.ts +49 -0
  101. package/dist/utils/fs.d.ts.map +1 -0
  102. package/dist/utils/fs.js +84 -0
  103. package/dist/utils/fs.js.map +1 -0
  104. package/dist/utils/prompts.d.ts +31 -0
  105. package/dist/utils/prompts.d.ts.map +1 -0
  106. package/dist/utils/prompts.js +95 -0
  107. package/dist/utils/prompts.js.map +1 -0
  108. package/dist/utils/yaml.d.ts +21 -0
  109. package/dist/utils/yaml.d.ts.map +1 -0
  110. package/dist/utils/yaml.js +40 -0
  111. package/dist/utils/yaml.js.map +1 -0
  112. package/package.json +71 -0
  113. package/templates/common/CLAUDE.md.template +254 -0
  114. package/templates/common/claude/agents/tsq-dba.md +290 -0
  115. package/templates/common/claude/agents/tsq-designer.md +304 -0
  116. package/templates/common/claude/agents/tsq-developer.md +118 -0
  117. package/templates/common/claude/agents/tsq-planner.md +90 -0
  118. package/templates/common/claude/agents/tsq-prompter.md +336 -0
  119. package/templates/common/claude/agents/tsq-qa.md +134 -0
  120. package/templates/common/claude/agents/tsq-retro.md +168 -0
  121. package/templates/common/claude/agents/tsq-security.md +190 -0
  122. package/templates/common/claude/skills/architecture/SKILL.md +123 -0
  123. package/templates/common/claude/skills/backend/node/SKILL.md +1015 -0
  124. package/templates/common/claude/skills/coding/SKILL.md +171 -0
  125. package/templates/common/claude/skills/database/prisma/SKILL.md +357 -0
  126. package/templates/common/claude/skills/frontend/nextjs/SKILL.md +279 -0
  127. package/templates/common/claude/skills/frontend/react/SKILL.md +1729 -0
  128. package/templates/common/claude/skills/methodology/bdd/SKILL.md +234 -0
  129. package/templates/common/claude/skills/methodology/ddd/SKILL.md +311 -0
  130. package/templates/common/claude/skills/methodology/tdd/SKILL.md +512 -0
  131. package/templates/common/claude/skills/planning/SKILL.md +90 -0
  132. package/templates/common/claude/skills/security/SKILL.md +234 -0
  133. package/templates/common/claude/skills/testing/SKILL.md +146 -0
  134. package/templates/common/claude/skills/typescript/SKILL.md +435 -0
  135. package/templates/common/config.template.yaml +131 -0
  136. package/templates/common/timsquad/architectures/clean/ARCHITECTURE.md +49 -0
  137. package/templates/common/timsquad/architectures/clean/backend.xml +210 -0
  138. package/templates/common/timsquad/architectures/clean/frontend.xml +148 -0
  139. package/templates/common/timsquad/architectures/fsd/ARCHITECTURE.md +67 -0
  140. package/templates/common/timsquad/architectures/fsd/frontend.xml +288 -0
  141. package/templates/common/timsquad/architectures/hexagonal/ARCHITECTURE.md +60 -0
  142. package/templates/common/timsquad/architectures/hexagonal/backend.xml +300 -0
  143. package/templates/common/timsquad/constraints/competency-framework.xml +501 -0
  144. package/templates/common/timsquad/constraints/ssot-schema.xml +433 -0
  145. package/templates/common/timsquad/feedback/feedback-router.sh +341 -0
  146. package/templates/common/timsquad/feedback/routing-rules.yaml +352 -0
  147. package/templates/common/timsquad/generators/data-design.xml +290 -0
  148. package/templates/common/timsquad/generators/prd.xml +280 -0
  149. package/templates/common/timsquad/generators/requirements.xml +220 -0
  150. package/templates/common/timsquad/generators/service-spec.xml +266 -0
  151. package/templates/common/timsquad/logs/_example.md +81 -0
  152. package/templates/common/timsquad/logs/_template.md +46 -0
  153. package/templates/common/timsquad/patterns/cqrs.xml +127 -0
  154. package/templates/common/timsquad/patterns/event-sourcing.xml +85 -0
  155. package/templates/common/timsquad/patterns/repository.xml +64 -0
  156. package/templates/common/timsquad/process/state-machine.xml +343 -0
  157. package/templates/common/timsquad/process/validation-rules.xml +308 -0
  158. package/templates/common/timsquad/process/workflow-base.xml +202 -0
  159. package/templates/common/timsquad/retrospective/cycle-report.template.md +205 -0
  160. package/templates/common/timsquad/retrospective/metrics/metrics-schema.json +203 -0
  161. package/templates/common/timsquad/retrospective/patterns/failure-patterns.md +199 -0
  162. package/templates/common/timsquad/retrospective/patterns/success-patterns.md +262 -0
  163. package/templates/common/timsquad/retrospective/retrospective-config.xml +294 -0
  164. package/templates/common/timsquad/retrospective/retrospective-state.xml +210 -0
  165. package/templates/common/timsquad/ssot/adr/ADR-000-template.md +121 -0
  166. package/templates/common/timsquad/ssot/adr/ADR-001-example.md +115 -0
  167. package/templates/common/timsquad/ssot/data-design.template.md +132 -0
  168. package/templates/common/timsquad/ssot/deployment-spec.template.md +384 -0
  169. package/templates/common/timsquad/ssot/env-config.template.md +346 -0
  170. package/templates/common/timsquad/ssot/error-codes.template.md +114 -0
  171. package/templates/common/timsquad/ssot/functional-spec.template.md +185 -0
  172. package/templates/common/timsquad/ssot/glossary.template.md +148 -0
  173. package/templates/common/timsquad/ssot/integration-spec.template.md +391 -0
  174. package/templates/common/timsquad/ssot/planning.template.md +94 -0
  175. package/templates/common/timsquad/ssot/prd.template.md +102 -0
  176. package/templates/common/timsquad/ssot/requirements.template.md +117 -0
  177. package/templates/common/timsquad/ssot/security-spec.template.md +309 -0
  178. package/templates/common/timsquad/ssot/service-spec.template.md +194 -0
  179. package/templates/common/timsquad/ssot/test-spec.template.md +264 -0
  180. package/templates/common/timsquad/ssot/ui-ux-spec.template.md +262 -0
  181. package/templates/common/timsquad/state/workspace.xml +217 -0
@@ -0,0 +1,114 @@
1
+ # {PROJECT_NAME} 에러 코드
2
+
3
+ **Version**: 1.0
4
+ **Created**: {DATE}
5
+
6
+ ---
7
+
8
+ ## 1. 에러 응답 형식
9
+
10
+ ```json
11
+ {
12
+ "success": false,
13
+ "data": null,
14
+ "error": {
15
+ "code": "AUTH_001",
16
+ "message": "Invalid credentials"
17
+ }
18
+ }
19
+ ```
20
+
21
+ ---
22
+
23
+ ## 2. HTTP 상태 코드 가이드
24
+
25
+ | HTTP | 용도 |
26
+ |------|-----|
27
+ | 400 | Bad Request - 잘못된 요청 파라미터 |
28
+ | 401 | Unauthorized - 인증 필요 또는 실패 |
29
+ | 403 | Forbidden - 권한 없음 |
30
+ | 404 | Not Found - 리소스 없음 |
31
+ | 409 | Conflict - 충돌 (중복 등) |
32
+ | 422 | Unprocessable Entity - 유효성 검증 실패 |
33
+ | 429 | Too Many Requests - Rate Limit |
34
+ | 500 | Internal Server Error - 서버 오류 |
35
+
36
+ ---
37
+
38
+ ## 3. 에러 코드 목록
39
+
40
+ ### 3.1 AUTH (인증)
41
+
42
+ | Code | HTTP | Message | Description |
43
+ |------|------|---------|-------------|
44
+ | AUTH_001 | 401 | Invalid credentials | 잘못된 이메일 또는 비밀번호 |
45
+ | AUTH_002 | 403 | Account disabled | 비활성화된 계정 |
46
+ | AUTH_003 | 401 | Invalid token | 유효하지 않은 토큰 |
47
+ | AUTH_004 | 401 | Token expired | 만료된 토큰 |
48
+ | AUTH_005 | 401 | Token required | 토큰 누락 |
49
+
50
+ ### 3.2 USER (사용자)
51
+
52
+ | Code | HTTP | Message | Description |
53
+ |------|------|---------|-------------|
54
+ | USER_001 | 404 | User not found | 사용자를 찾을 수 없음 |
55
+ | USER_002 | 409 | Email already exists | 이미 등록된 이메일 |
56
+ | USER_003 | 403 | Permission denied | 권한 없음 |
57
+
58
+ ### 3.3 VALIDATION (유효성)
59
+
60
+ | Code | HTTP | Message | Description |
61
+ |------|------|---------|-------------|
62
+ | VAL_001 | 400 | Required field missing | 필수 필드 누락 |
63
+ | VAL_002 | 400 | Invalid email format | 잘못된 이메일 형식 |
64
+ | VAL_003 | 400 | Password too weak | 비밀번호 강도 부족 |
65
+ | VAL_004 | 400 | Invalid date format | 잘못된 날짜 형식 |
66
+
67
+ ### 3.4 RESOURCE (리소스)
68
+
69
+ | Code | HTTP | Message | Description |
70
+ |------|------|---------|-------------|
71
+ | RES_001 | 404 | Resource not found | 리소스를 찾을 수 없음 |
72
+ | RES_002 | 409 | Resource already exists | 리소스가 이미 존재함 |
73
+ | RES_003 | 409 | Resource in use | 사용 중인 리소스 |
74
+
75
+ ### 3.5 SYSTEM (시스템)
76
+
77
+ | Code | HTTP | Message | Description |
78
+ |------|------|---------|-------------|
79
+ | SYS_001 | 500 | Internal server error | 내부 서버 오류 |
80
+ | SYS_002 | 503 | Service unavailable | 서비스 이용 불가 |
81
+ | SYS_003 | 429 | Rate limit exceeded | 요청 한도 초과 |
82
+
83
+ ---
84
+
85
+ ## 4. 도메인별 에러 코드
86
+
87
+ ### 4.1 [DOMAIN]
88
+
89
+ | Code | HTTP | Message | Description |
90
+ |------|------|---------|-------------|
91
+ | | | | |
92
+
93
+ ---
94
+
95
+ ## 5. 에러 코드 네이밍 규칙
96
+
97
+ ```
98
+ {DOMAIN}_{NUMBER}
99
+
100
+ - DOMAIN: 대문자, 2-6자
101
+ - NUMBER: 3자리 숫자, 001부터 시작
102
+ ```
103
+
104
+ **예시:**
105
+ - `AUTH_001` - 인증 도메인 첫 번째 에러
106
+ - `ORDER_005` - 주문 도메인 다섯 번째 에러
107
+
108
+ ---
109
+
110
+ ## 6. 변경 이력
111
+
112
+ | 버전 | 날짜 | 변경 내용 | 작성자 |
113
+ |-----|-----|----------|-------|
114
+ | 1.0 | {DATE} | 최초 작성 | |
@@ -0,0 +1,185 @@
1
+ ---
2
+ title: "기능 명세서 (Functional Specification)"
3
+ version: 1.0.0
4
+ last_updated: {{DATE}}
5
+ author: tsq-planner
6
+ status: draft
7
+ project: {{PROJECT_NAME}}
8
+ ---
9
+
10
+ # 기능 명세서 (Functional Specification)
11
+
12
+ > 사용자 관점에서 시스템이 어떻게 동작해야 하는지 정의합니다.
13
+ > Requirements.md의 기능 요건을 구체적인 시나리오로 풀어낸 문서입니다.
14
+
15
+ ---
16
+
17
+ ## 1. 문서 개요
18
+
19
+ ### 1.1 목적
20
+ 이 문서는 {{PROJECT_NAME}}의 기능을 사용자 시나리오 관점에서 상세히 기술합니다.
21
+
22
+ ### 1.2 범위
23
+ - [requirements.md](./requirements.md)의 기능 요건 (FR-XXX) 구체화
24
+ - 사용자 인터랙션 흐름
25
+ - 예외 처리 시나리오
26
+ - 비즈니스 규칙
27
+
28
+ ### 1.3 용어
29
+ → [glossary.md](./glossary.md) 참조
30
+
31
+ ---
32
+
33
+ ## 2. 기능 목록
34
+
35
+ | ID | 기능명 | 요건 참조 | 우선순위 | 상태 |
36
+ |----|-------|----------|:--------:|:----:|
37
+ | FS-001 | | FR-001 | Must | 초안 |
38
+ | FS-002 | | FR-002 | Must | 초안 |
39
+
40
+ ---
41
+
42
+ ## 3. 기능 상세
43
+
44
+ ### FS-001: [기능명]
45
+
46
+ #### 3.1.1 개요
47
+
48
+ | 항목 | 내용 |
49
+ |-----|------|
50
+ | **요건 참조** | FR-001 |
51
+ | **우선순위** | Must |
52
+ | **관련 화면** | [ui-ux-spec.md#화면ID](./ui-ux-spec.md) |
53
+ | **관련 API** | [service-spec.md#API명](./service-spec.md) |
54
+
55
+ #### 3.1.2 사용자 스토리
56
+
57
+ ```
58
+ As a [사용자 역할]
59
+ I want to [원하는 것]
60
+ So that [이유/가치]
61
+ ```
62
+
63
+ #### 3.1.3 사전 조건 (Preconditions)
64
+
65
+ - [ ] 조건 1
66
+ - [ ] 조건 2
67
+
68
+ #### 3.1.4 기본 흐름 (Happy Path)
69
+
70
+ ```
71
+ 1. 사용자가 [행동]
72
+ 2. 시스템이 [반응]
73
+ 3. 사용자가 [행동]
74
+ 4. 시스템이 [결과]
75
+ ```
76
+
77
+ | 단계 | 사용자 행동 | 시스템 반응 | 비고 |
78
+ |:---:|-----------|-----------|------|
79
+ | 1 | | | |
80
+ | 2 | | | |
81
+ | 3 | | | |
82
+
83
+ #### 3.1.5 대안 흐름 (Alternative Flow)
84
+
85
+ **AF-001: [대안 시나리오명]**
86
+
87
+ | 분기점 | 조건 | 흐름 |
88
+ |:------:|-----|------|
89
+ | 단계 2 | [조건] | [대안 흐름 설명] |
90
+
91
+ #### 3.1.6 예외 흐름 (Exception Flow)
92
+
93
+ **EF-001: [예외 시나리오명]**
94
+
95
+ | 분기점 | 예외 조건 | 시스템 반응 | 에러 코드 |
96
+ |:------:|---------|-----------|----------|
97
+ | 단계 2 | [조건] | [에러 메시지] | ERR_XXX |
98
+
99
+ → 에러 코드 상세: [error-codes.md](./error-codes.md)
100
+
101
+ #### 3.1.7 사후 조건 (Postconditions)
102
+
103
+ - [ ] 결과 1
104
+ - [ ] 결과 2
105
+
106
+ #### 3.1.8 비즈니스 규칙
107
+
108
+ | 규칙 ID | 규칙 | 예외 |
109
+ |--------|------|------|
110
+ | BR-001 | | |
111
+ | BR-002 | | |
112
+
113
+ #### 3.1.9 수용 조건 (Acceptance Criteria)
114
+
115
+ ```gherkin
116
+ Feature: [기능명]
117
+
118
+ Scenario: [시나리오명]
119
+ Given [사전 조건]
120
+ When [행동]
121
+ Then [기대 결과]
122
+
123
+ Scenario: [예외 시나리오]
124
+ Given [사전 조건]
125
+ When [예외 행동]
126
+ Then [예외 결과]
127
+ ```
128
+
129
+ ---
130
+
131
+ ### FS-002: [기능명]
132
+
133
+ (위와 동일한 형식으로 작성)
134
+
135
+ ---
136
+
137
+ ## 4. 기능 간 의존성
138
+
139
+ ```mermaid
140
+ graph LR
141
+ FS-001[기능1] --> FS-002[기능2]
142
+ FS-002 --> FS-003[기능3]
143
+ FS-001 --> FS-004[기능4]
144
+ ```
145
+
146
+ | 기능 | 선행 기능 | 후행 기능 |
147
+ |-----|----------|----------|
148
+ | FS-001 | - | FS-002, FS-004 |
149
+ | FS-002 | FS-001 | FS-003 |
150
+
151
+ ---
152
+
153
+ ## 5. 비기능 요건 매핑
154
+
155
+ | 기능 | 관련 NFR | 제약 사항 |
156
+ |-----|---------|----------|
157
+ | FS-001 | NFR-001 (응답시간 < 200ms) | |
158
+ | FS-002 | NFR-002 (동시 사용자 1000명) | |
159
+
160
+ → NFR 상세: [requirements.md#비기능요건](./requirements.md)
161
+
162
+ ---
163
+
164
+ ## 6. 용어 참조
165
+
166
+ 이 문서에서 사용된 도메인 용어:
167
+ → [glossary.md](./glossary.md)
168
+
169
+ ---
170
+
171
+ ## 7. 관련 문서
172
+
173
+ - [PRD](./prd.md) - 제품 요구사항
174
+ - [요구사항](./requirements.md) - 기능/비기능 요건
175
+ - [UI/UX 명세](./ui-ux-spec.md) - 화면 설계
176
+ - [서비스 명세](./service-spec.md) - API 정의
177
+ - [에러 코드](./error-codes.md) - 에러 정의
178
+
179
+ ---
180
+
181
+ ## 변경 이력
182
+
183
+ | 버전 | 날짜 | 작성자 | 변경 내용 |
184
+ |------|------|--------|----------|
185
+ | 1.0.0 | {{DATE}} | tsq-planner | 초기 작성 |
@@ -0,0 +1,148 @@
1
+ ---
2
+ title: "용어 사전 (Glossary)"
3
+ version: 1.0.0
4
+ last_updated: {{DATE}}
5
+ author: tsq-planner
6
+ status: draft
7
+ project: {{PROJECT_NAME}}
8
+ ---
9
+
10
+ # 용어 사전 (Glossary)
11
+
12
+ > 프로젝트에서 사용하는 도메인 용어를 정의합니다.
13
+ > 모든 팀원과 에이전트가 동일한 언어로 소통하기 위한 기준 문서입니다.
14
+
15
+ ---
16
+
17
+ ## 1. 비즈니스 용어
18
+
19
+ | 용어 | 영문 | 정의 | 예시 | 비고 |
20
+ |-----|------|------|------|------|
21
+ | | | | | |
22
+
23
+ <!--
24
+ 예시:
25
+ | 회원 | Member | 서비스에 가입한 사용자 | 이메일로 가입한 사용자 | User와 구분 |
26
+ | 고객사 | Customer | B2B 계약을 체결한 업체 | ABC 주식회사 | |
27
+ | 구독 | Subscription | 유료 서비스 이용 계약 | 월간 플랜 | |
28
+ -->
29
+
30
+ ---
31
+
32
+ ## 2. 기술 용어
33
+
34
+ | 용어 | 영문 | 정의 | 관련 문서 |
35
+ |-----|------|------|----------|
36
+ | | | | |
37
+
38
+ <!--
39
+ 예시:
40
+ | 토큰 | Token | 인증에 사용되는 JWT 문자열 | service-spec.md |
41
+ | 세션 | Session | 사용자 로그인 상태 유지 단위 | security-spec.md |
42
+ | 트랜잭션 | Transaction | DB 작업의 원자적 단위 | data-design.md |
43
+ -->
44
+
45
+ ---
46
+
47
+ ## 3. 도메인 모델
48
+
49
+ ### 3.1 핵심 엔티티
50
+
51
+ | 엔티티 | 설명 | 주요 속성 | 관계 |
52
+ |-------|------|----------|------|
53
+ | | | | |
54
+
55
+ <!--
56
+ 예시:
57
+ | User | 시스템 사용자 | id, email, name | Order (1:N) |
58
+ | Order | 주문 | id, status, total | User (N:1), OrderItem (1:N) |
59
+ | Product | 상품 | id, name, price | OrderItem (1:N) |
60
+ -->
61
+
62
+ ### 3.2 값 객체 (Value Objects)
63
+
64
+ | 값 객체 | 설명 | 구성 요소 |
65
+ |--------|------|----------|
66
+ | | | |
67
+
68
+ <!--
69
+ 예시:
70
+ | Money | 금액 | amount (number), currency (string) |
71
+ | Address | 주소 | street, city, zipCode, country |
72
+ -->
73
+
74
+ ---
75
+
76
+ ## 4. 상태 정의
77
+
78
+ ### 4.1 [엔티티명] 상태
79
+
80
+ ```
81
+ [상태1] → [상태2] → [상태3]
82
+ ↓ ↓
83
+ [상태4] [상태5]
84
+ ```
85
+
86
+ | 상태 | 코드 | 설명 | 전이 가능 상태 |
87
+ |-----|------|------|--------------|
88
+ | | | | |
89
+
90
+ <!--
91
+ 예시 (주문 상태):
92
+ | 대기 | PENDING | 결제 대기 중 | PAID, CANCELLED |
93
+ | 결제완료 | PAID | 결제 완료 | SHIPPING, REFUNDED |
94
+ | 배송중 | SHIPPING | 배송 진행 중 | DELIVERED |
95
+ | 배송완료 | DELIVERED | 배송 완료 | - |
96
+ | 취소 | CANCELLED | 주문 취소 | - |
97
+ | 환불 | REFUNDED | 환불 처리됨 | - |
98
+ -->
99
+
100
+ ---
101
+
102
+ ## 5. 코드/열거형
103
+
104
+ ### 5.1 [코드명]
105
+
106
+ | 코드 | 값 | 설명 |
107
+ |-----|-----|------|
108
+ | | | |
109
+
110
+ <!--
111
+ 예시 (회원 등급):
112
+ | GUEST | 0 | 비회원 |
113
+ | BASIC | 1 | 일반 회원 |
114
+ | PREMIUM | 2 | 프리미엄 회원 |
115
+ | VIP | 3 | VIP 회원 |
116
+ -->
117
+
118
+ ---
119
+
120
+ ## 6. 약어 목록
121
+
122
+ | 약어 | 전체 표현 | 설명 |
123
+ |-----|----------|------|
124
+ | | | |
125
+
126
+ <!--
127
+ 예시:
128
+ | API | Application Programming Interface | |
129
+ | JWT | JSON Web Token | 인증 토큰 |
130
+ | CRUD | Create, Read, Update, Delete | 기본 데이터 조작 |
131
+ | SSO | Single Sign-On | 통합 인증 |
132
+ -->
133
+
134
+ ---
135
+
136
+ ## 7. 관련 문서
137
+
138
+ - [PRD](./prd.md) - 제품 요구사항
139
+ - [요구사항](./requirements.md) - 기능/비기능 요건
140
+ - [데이터 설계](./data-design.md) - ERD, 테이블 정의
141
+
142
+ ---
143
+
144
+ ## 변경 이력
145
+
146
+ | 버전 | 날짜 | 작성자 | 변경 내용 |
147
+ |------|------|--------|----------|
148
+ | 1.0.0 | {{DATE}} | tsq-planner | 초기 작성 |