@sduck/sduck-cli 0.1.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.
@@ -0,0 +1,164 @@
1
+ # [chore] {작업 내용 요약}
2
+
3
+ > **작업 타입:** `chore` (Chore)
4
+ > **세부 분류:** `dependency-update` / `build-config` / `ci-cd` / `documentation` / `infra` / `기타`
5
+ > **작성자:**
6
+ > **작성일:** YYYY-MM-DD
7
+ > **연관 티켓:**
8
+
9
+ ---
10
+
11
+ ## 1. 작업 개요
12
+
13
+ ### 작업 목적
14
+
15
+ <!-- 왜 이 작업이 필요한지 간략히 기술 -->
16
+
17
+ ### 작업 범위
18
+
19
+ - [ ] 패키지 / 의존성 업데이트
20
+ - [ ] 빌드 스크립트 / 설정 변경
21
+ - [ ] CI/CD 파이프라인 수정
22
+ - [ ] 문서 작성 / 수정
23
+ - [ ] 환경 설정 변경
24
+ - [ ] 기타:
25
+
26
+ ---
27
+
28
+ ## 2. 변경 상세
29
+
30
+ ### 현재 상태 (As-Is)
31
+
32
+ <!-- 현재 버전, 설정, 문서 내용 등 -->
33
+
34
+ ### 변경 후 상태 (To-Be)
35
+
36
+ <!-- 변경 후 버전, 설정, 문서 내용 등 -->
37
+
38
+ ### 변경 파일 목록
39
+
40
+ ```
41
+ target_paths:
42
+ - package.json
43
+ - .github/workflows/...
44
+ - docs/...
45
+ ```
46
+
47
+ ---
48
+
49
+ ## 3. 의존성 변경 (해당 시)
50
+
51
+ ### 업데이트 목록
52
+
53
+ | 패키지 | 현재 버전 | 변경 버전 | 변경 유형 | 변경 이유 |
54
+ | ------ | --------- | --------- | --------------------- | --------- |
55
+ | | | | major / minor / patch | |
56
+ | | | | major / minor / patch | |
57
+
58
+ ### 주요 Breaking Changes 검토 (Major 업데이트 시)
59
+
60
+ | 패키지 | Breaking Change 내용 | 대응 방안 |
61
+ | ------ | -------------------- | --------- |
62
+ | | | |
63
+
64
+ ### 제거 패키지
65
+
66
+ | 패키지 | 제거 이유 | 대체 패키지 |
67
+ | ------ | --------- | ----------- |
68
+ | | | |
69
+
70
+ ---
71
+
72
+ ## 4. CI/CD 변경 (해당 시)
73
+
74
+ ### 변경 전 파이프라인
75
+
76
+ ```
77
+ (기존 파이프라인 흐름 또는 설정)
78
+ ```
79
+
80
+ ### 변경 후 파이프라인
81
+
82
+ ```
83
+ (변경된 파이프라인 흐름 또는 설정)
84
+ ```
85
+
86
+ ### 변경 이유
87
+
88
+ <!-- 성능, 보안, 유지보수성 등 -->
89
+
90
+ ---
91
+
92
+ ## 5. 문서 변경 (해당 시)
93
+
94
+ | 문서 | 변경 내용 요약 | 변경 이유 |
95
+ | --------------- | -------------- | --------- |
96
+ | README.md | | |
97
+ | CONTRIBUTING.md | | |
98
+ | docs/... | | |
99
+
100
+ ---
101
+
102
+ ## 6. 검증 계획
103
+
104
+ > chore 작업은 기능 변경이 없으므로 기존 테스트 통과 + 빌드 성공이 핵심 기준이다.
105
+
106
+ ### 검증 체크리스트
107
+
108
+ - [ ] `lint` 통과
109
+ - [ ] `build` 성공
110
+ - [ ] 기존 단위 테스트 전체 통과
111
+ - [ ] 기존 통합 테스트 전체 통과 (해당 시)
112
+ - [ ] CI/CD 파이프라인 전체 동작 확인 (해당 시)
113
+ - [ ] 로컬 개발 환경 정상 동작 확인
114
+ - [ ] 스테이징 배포 및 동작 확인 (해당 시)
115
+
116
+ ### 검증 방법
117
+
118
+ <!-- 특이사항이 있다면 구체적인 검증 명령어나 절차 기술 -->
119
+
120
+ ```bash
121
+ # 예시
122
+ npm install
123
+ npm run lint
124
+ npm run build
125
+ npm test
126
+ ```
127
+
128
+ ---
129
+
130
+ ## 7. 영향 범위
131
+
132
+ ### 런타임 영향
133
+
134
+ - [ ] 런타임 코드 변경 없음
135
+ - [ ] 런타임에 영향 있음 (내용 명시):
136
+
137
+ ### 개발자 환경 영향
138
+
139
+ <!-- 팀원들이 로컬 환경을 어떻게 업데이트해야 하는지 -->
140
+
141
+ - [ ] `npm install` 재실행 필요
142
+ - [ ] `.env` 파일 업데이트 필요: _(추가/변경 키 명시)_
143
+ - [ ] 별도 마이그레이션 절차 필요:
144
+ - [ ] 변경 없음
145
+
146
+ ---
147
+
148
+ ## 8. 롤백 계획
149
+
150
+ - 롤백 방법: Git 스펙 단위 커밋 되돌리기
151
+ - 특이사항: (예: 패키지 lock 파일 함께 롤백 필요)
152
+
153
+ ---
154
+
155
+ ## 9. 공지 사항
156
+
157
+ <!-- 팀원들에게 공유해야 할 내용 (로컬 환경 업데이트 방법, 변경된 명령어 등) -->
158
+
159
+ ---
160
+
161
+ ## 10. 참고 자료
162
+
163
+ - Changelog / Release Notes:
164
+ - 관련 이슈:
@@ -0,0 +1,187 @@
1
+ # [feature] {기능명}
2
+
3
+ > **작업 타입:** `feature` (Standard Feature)
4
+ > **작성자:**
5
+ > **작성일:** YYYY-MM-DD
6
+ > **연관 티켓:**
7
+
8
+ ---
9
+
10
+ ## 1. 배경 및 목적
11
+
12
+ ### 문제 / 요구사항
13
+
14
+ <!-- 이 기능이 왜 필요한지, 어떤 사용자 문제 혹은 비즈니스 요구를 해결하는지 기술 -->
15
+
16
+ ### 기대 효과
17
+
18
+ <!-- 이 기능이 완성되었을 때 사용자 또는 시스템 관점에서 달라지는 점 -->
19
+
20
+ ---
21
+
22
+ ## 2. 기능 명세
23
+
24
+ ### 사용자 스토리
25
+
26
+ ```
27
+ As a [사용자 유형],
28
+ I want to [원하는 행동],
29
+ So that [기대하는 결과].
30
+ ```
31
+
32
+ ### 수용 기준 (Acceptance Criteria)
33
+
34
+ > 모든 항목이 충족되어야 이 작업이 완료(Done)로 간주된다.
35
+
36
+ - [ ] AC1:
37
+ - [ ] AC2:
38
+ - [ ] AC3:
39
+
40
+ ### 기능 상세 설명
41
+
42
+ <!-- 핵심 비즈니스 로직, 상태 전이, 엣지 케이스 등을 상세하게 기술 -->
43
+
44
+ ---
45
+
46
+ ## 3. 기술 설계
47
+
48
+ ### 변경 대상 컴포넌트
49
+
50
+ | 레이어 | 파일 / 모듈 | 변경 내용 요약 |
51
+ | ------ | ----------- | -------------- |
52
+ | | | |
53
+ | | | |
54
+
55
+ ### API 명세 (해당 시)
56
+
57
+ ```
58
+ Method: POST / GET / PUT / PATCH / DELETE
59
+ Endpoint: /api/v1/...
60
+
61
+ Request:
62
+ {
63
+ "field": "type"
64
+ }
65
+
66
+ Response (200 OK):
67
+ {
68
+ "field": "type"
69
+ }
70
+
71
+ Error Responses:
72
+ - 400: 잘못된 요청
73
+ - 401: 인증 실패
74
+ - 404: 리소스 없음
75
+ ```
76
+
77
+ ### 데이터 모델 변경 (해당 시)
78
+
79
+ ```sql
80
+ -- 추가 / 변경되는 컬럼, 테이블, 인덱스 등
81
+ ```
82
+
83
+ ### 시퀀스 다이어그램 (해당 시)
84
+
85
+ ```
86
+ Client → [Service A] → [Service B] → DB
87
+
88
+ Response
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 4. UI/UX 명세 (해당 시)
94
+
95
+ ### 화면 목록
96
+
97
+ | 화면명 | 라우트 | 설명 |
98
+ | ------ | ------ | ---- |
99
+ | | | |
100
+
101
+ ### 디자인 레퍼런스
102
+
103
+ <!-- Figma 링크, 스크린샷, 기타 시각 자료 -->
104
+
105
+ ### 인터랙션 정의
106
+
107
+ <!-- 버튼 클릭, 폼 유효성 검사, 로딩 상태, 에러 메시지 표시 방식 등 -->
108
+
109
+ ---
110
+
111
+ ## 5. 테스트 계획
112
+
113
+ ### 단위 테스트 (Unit Test)
114
+
115
+ | 대상 함수 / 모듈 | 테스트 케이스 | 예상 결과 |
116
+ | ---------------- | ------------- | --------- |
117
+ | | 정상 입력 | |
118
+ | | 경계값 | |
119
+ | | 비정상 입력 | |
120
+
121
+ ### 통합 / E2E 테스트
122
+
123
+ | 시나리오 | 단계 | 예상 결과 |
124
+ | -------- | ---- | --------- |
125
+ | | | |
126
+
127
+ ---
128
+
129
+ ## 6. 영향 범위 분석
130
+
131
+ ### 변경 파일 목록 (예상)
132
+
133
+ ```
134
+ target_paths:
135
+ - src/...
136
+ - tests/...
137
+ ```
138
+
139
+ ### 사이드 이펙트 검토
140
+
141
+ <!-- 이 기능 변경으로 인해 영향받을 수 있는 다른 기능이나 모듈 -->
142
+
143
+ - 영향 가능성 있는 모듈:
144
+ - 회귀 테스트 필요 영역:
145
+
146
+ ### 롤백 계획
147
+
148
+ <!-- 문제 발생 시 어떻게 되돌릴 것인지 -->
149
+
150
+ ---
151
+
152
+ ## 7. 보안 / 성능 고려사항
153
+
154
+ - **인증·인가:** (예: 이 API는 `ADMIN` 권한 필요)
155
+ - **입력값 검증:**
156
+ - **성능:** (예: N+1 쿼리 방지, 캐싱 적용 여부)
157
+ - **민감 데이터 처리:**
158
+
159
+ ---
160
+
161
+ ## 8. 비기능 요구사항
162
+
163
+ | 항목 | 요구사항 |
164
+ | ---------------- | -------- |
165
+ | 응답 시간 | |
166
+ | 동시 사용자 | |
167
+ | 데이터 보존 기간 | |
168
+
169
+ ---
170
+
171
+ ## 9. 의존성 및 선행 조건
172
+
173
+ - 이 작업 시작 전 완료되어야 하는 작업:
174
+ - 외부 서비스 / API 연동 필요 여부:
175
+ - 피처 플래그(Feature Flag) 사용 여부:
176
+
177
+ ---
178
+
179
+ ## 10. 미결 사항 (Open Questions)
180
+
181
+ - [ ]
182
+
183
+ ---
184
+
185
+ ## 11. 참고 자료
186
+
187
+ -
@@ -0,0 +1,174 @@
1
+ # [fix] {버그 요약 한 줄}
2
+
3
+ > **작업 타입:** `fix` (Quick Fix)
4
+ > **심각도:** `critical` / `high` / `medium` / `low`
5
+ > **작성자:**
6
+ > **작성일:** YYYY-MM-DD
7
+ > **연관 티켓:**
8
+
9
+ ---
10
+
11
+ ## 1. 버그 개요
12
+
13
+ ### 문제 요약
14
+
15
+ <!-- 한두 문장으로 버그의 핵심을 요약 -->
16
+
17
+ ### 발견 경위
18
+
19
+ - [ ] 사용자 제보
20
+ - [ ] 모니터링 알림
21
+ - [ ] 코드 리뷰 중 발견
22
+ - [ ] QA 테스트
23
+ - [ ] 기타:
24
+
25
+ ### 발생 빈도
26
+
27
+ - [ ] 항상 재현됨 (100%)
28
+ - [ ] 간헐적 재현 (약 %)
29
+ - [ ] 특정 조건에서만 재현
30
+
31
+ ---
32
+
33
+ ## 2. 재현 방법 (Steps to Reproduce)
34
+
35
+ **환경 정보**
36
+ | 항목 | 내용 |
37
+ |------|------|
38
+ | 환경 (local / dev / staging / production) | |
39
+ | OS / 브라우저 / 앱 버전 | |
40
+ | 계정 유형 / 권한 | |
41
+ | 관련 데이터 ID / 조건 | |
42
+
43
+ **재현 단계**
44
+
45
+ 1.
46
+ 2.
47
+ 3.
48
+
49
+ **실제 결과 (Actual)**
50
+
51
+ <!-- 무슨 일이 일어났는지 -->
52
+
53
+ **기대 결과 (Expected)**
54
+
55
+ <!-- 원래 어떻게 동작해야 하는지 -->
56
+
57
+ ---
58
+
59
+ ## 3. 원인 분석 (Root Cause)
60
+
61
+ ### 원인 파악 현황
62
+
63
+ - [ ] 원인 특정 완료
64
+ - [ ] 원인 조사 중
65
+ - [ ] 원인 불명
66
+
67
+ ### 원인 요약
68
+
69
+ <!-- 코드 레벨에서 왜 이 버그가 발생하는지 기술 -->
70
+
71
+ ### 원인 코드 위치
72
+
73
+ ```
74
+ 파일: src/...
75
+ 함수 / 라인:
76
+ ```
77
+
78
+ ### 발생 조건
79
+
80
+ <!-- 특정 값, 상태, 순서 등 버그를 트리거하는 조건 -->
81
+
82
+ ---
83
+
84
+ ## 4. 수정 방안
85
+
86
+ ### 방안 검토
87
+
88
+ | 방안 | 설명 | 장점 | 단점 |
89
+ | ------ | ---- | ---- | ---- |
90
+ | 방안 A | | | |
91
+ | 방안 B | | | |
92
+
93
+ ### 선택한 방안 및 이유
94
+
95
+ > **선택:** 방안 \_
96
+ >
97
+ > **이유:**
98
+
99
+ ### 변경 파일 목록 (예상)
100
+
101
+ ```
102
+ target_paths:
103
+ - src/...
104
+ - tests/...
105
+ ```
106
+
107
+ ---
108
+
109
+ ## 5. 테스트 계획
110
+
111
+ ### 버그 재현 테스트 (수정 전 실패 확인)
112
+
113
+ - [ ] 기존 버그 재현 테스트 케이스 작성 완료
114
+
115
+ ### 수정 검증 테스트 (수정 후 통과 확인)
116
+
117
+ | 테스트 케이스 | 조건 | 예상 결과 |
118
+ | ------------- | -------------- | -------------- |
119
+ | | 버그 유발 조건 | 정상 동작 |
120
+ | | 정상 입력 | 기존 동작 유지 |
121
+ | | 경계값 | |
122
+
123
+ ### 회귀 테스트
124
+
125
+ <!-- 이 수정으로 인해 영향받을 수 있는 관련 기능의 테스트 목록 -->
126
+
127
+ - [ ]
128
+ - [ ]
129
+
130
+ ---
131
+
132
+ ## 6. 영향 범위
133
+
134
+ ### 사이드 이펙트 검토
135
+
136
+ <!-- 이 수정이 다른 기능에 미칠 수 있는 영향 -->
137
+
138
+ ### 데이터 정합성
139
+
140
+ - [ ] DB 데이터 정정 작업 필요 없음
141
+ - [ ] DB 데이터 정정 작업 필요: _(내용 작성)_
142
+
143
+ ---
144
+
145
+ ## 7. 롤백 계획
146
+
147
+ <!-- 수정 후에도 문제가 지속되거나 새로운 문제 발생 시 대응 방안 -->
148
+
149
+ - 롤백 방법:
150
+ - 롤백 판단 기준 (임계값 또는 조건):
151
+
152
+ ---
153
+
154
+ ## 8. 임시 조치 (Workaround, 해당 시)
155
+
156
+ <!-- 수정 배포 전까지 사용자 또는 운영팀이 취할 수 있는 임시 방편 -->
157
+
158
+ ---
159
+
160
+ ## 9. 재발 방지 대책
161
+
162
+ <!-- 동일한 유형의 버그가 다시 발생하지 않도록 개선할 점 -->
163
+
164
+ - [ ] 테스트 케이스 추가
165
+ - [ ] 코드 리뷰 체크리스트 항목 추가
166
+ - [ ] 모니터링 알림 추가
167
+ - [ ] 기타:
168
+
169
+ ---
170
+
171
+ ## 10. 참고 자료
172
+
173
+ - 에러 로그:
174
+ - 관련 이슈 / PR:
@@ -0,0 +1,174 @@
1
+ # [refactor] {리팩토링 대상 및 목적}
2
+
3
+ > **작업 타입:** `refactor` (Refactor)
4
+ > **작성자:**
5
+ > **작성일:** YYYY-MM-DD
6
+ > **연관 티켓:**
7
+
8
+ ---
9
+
10
+ ## ⚠️ 리팩토링 불변 조건
11
+
12
+ > **이 작업은 외부 동작(기능, API 응답, UI)을 변경하지 않는다.**
13
+ > 코드 구조만 개선하며, 비즈니스 로직의 변경은 별도의 `feature` 또는 `fix` 작업으로 분리한다.
14
+
15
+ ---
16
+
17
+ ## 1. 배경 및 목적
18
+
19
+ ### 리팩토링이 필요한 이유
20
+
21
+ <!-- 현재 코드의 어떤 문제(기술 부채, 가독성, 유지보수성, 성능 등)가 있는지 구체적으로 기술 -->
22
+
23
+ ### 기대 효과
24
+
25
+ - [ ] 가독성 / 이해하기 쉬운 코드
26
+ - [ ] 유지보수성 향상
27
+ - [ ] 중복 코드 제거
28
+ - [ ] 테스트 용이성 향상
29
+ - [ ] 성능 개선 (측정 지표 명시 필요)
30
+ - [ ] 기타:
31
+
32
+ ---
33
+
34
+ ## 2. 현재 상태 (As-Is)
35
+
36
+ ### 문제 코드 / 구조
37
+
38
+ ```
39
+ 파일: src/...
40
+ ```
41
+
42
+ <!-- 문제가 되는 코드 패턴, 구조, 의존 관계 등을 스케치 또는 설명 -->
43
+
44
+ ### 측정 지표 (개선 전)
45
+
46
+ | 지표 | 현재 값 | 목표 값 |
47
+ | ----------------------------------- | ------- | ------- |
48
+ | 순환 복잡도 (Cyclomatic Complexity) | | |
49
+ | 중복 코드 라인 수 | | |
50
+ | 함수/클래스 크기 | | |
51
+ | 응답 시간 (해당 시) | | |
52
+ | 테스트 커버리지 | | |
53
+
54
+ ---
55
+
56
+ ## 3. 목표 상태 (To-Be)
57
+
58
+ ### 개선된 구조
59
+
60
+ ```
61
+ 파일: src/...
62
+ ```
63
+
64
+ <!-- 리팩토링 후 디렉토리 구조, 클래스 구조, 함수 분리 방향 등을 기술 -->
65
+
66
+ ### 적용할 패턴 / 원칙
67
+
68
+ - [ ] SOLID 원칙 적용:
69
+ - [ ] 디자인 패턴 적용:
70
+ - [ ] 기타 컨벤션:
71
+
72
+ ---
73
+
74
+ ## 4. 리팩토링 범위
75
+
76
+ ### 변경 대상 파일
77
+
78
+ ```
79
+ target_paths:
80
+ - src/...
81
+ - tests/...
82
+ ```
83
+
84
+ ### 변경하지 않는 범위 (명시적 경계)
85
+
86
+ ```
87
+ blocked_paths:
88
+ - src/api/routes/ # 외부 API 계약 불변
89
+ - migrations/ # DB 스키마 불변
90
+ ```
91
+
92
+ ### 인터페이스 불변 확인
93
+
94
+ <!-- 다음 항목들이 변경 전후 동일하게 유지되어야 함을 확인 -->
95
+
96
+ - [ ] Public API 엔드포인트 및 응답 스펙
97
+ - [ ] 공개 함수 / 메서드 시그니처
98
+ - [ ] DB 스키마 및 마이그레이션
99
+ - [ ] 이벤트 / 메시지 포맷
100
+
101
+ ---
102
+
103
+ ## 5. 테스트 전략
104
+
105
+ > 리팩토링의 안전성은 테스트가 보장한다. 기존 테스트가 통과하는 것이 완료 기준이다.
106
+
107
+ ### 기존 테스트 현황
108
+
109
+ - 현재 테스트 커버리지:
110
+ - 테스트 통과 여부 (작업 시작 전 확인):
111
+ - [ ] 모든 기존 테스트 통과 확인됨
112
+
113
+ ### 리팩토링 중 테스트 전략
114
+
115
+ - [ ] 기존 테스트를 변경하지 않고 통과시키며 리팩토링 진행
116
+ - [ ] 구조 변경에 따라 테스트도 함께 재구성 (이유 명시):
117
+
118
+ ### 보완 테스트
119
+
120
+ <!-- 기존 테스트 커버리지가 낮아 리팩토링 전 보강이 필요한 경우 -->
121
+
122
+ - [ ] 추가 테스트 케이스 작성 대상:
123
+
124
+ ---
125
+
126
+ ## 6. 단계별 분리 계획
127
+
128
+ > 리팩토링은 한 번에 모든 것을 바꾸지 않고 작은 단위로 나눠서 진행한다.
129
+
130
+ | 단계 | 작업 내용 | 검증 방법 |
131
+ | ---- | --------- | ---------------- |
132
+ | 1 | | 테스트 전부 통과 |
133
+ | 2 | | 테스트 전부 통과 |
134
+ | 3 | | 테스트 전부 통과 |
135
+
136
+ ---
137
+
138
+ ## 7. 영향 범위 분석
139
+
140
+ ### 의존 모듈 목록
141
+
142
+ <!-- 리팩토링 대상을 import / 사용하는 다른 모듈 -->
143
+
144
+ | 모듈 | 영향 내용 | 대응 방안 |
145
+ | ---- | --------- | --------- |
146
+ | | | |
147
+
148
+ ### 회귀 테스트 필요 영역
149
+
150
+ - [ ]
151
+
152
+ ---
153
+
154
+ ## 8. 롤백 계획
155
+
156
+ - 롤백 방법: Git 스펙 단위 커밋 되돌리기
157
+ - 롤백 기준: 테스트 실패 / 예상치 못한 동작 변경 발생 시
158
+
159
+ ---
160
+
161
+ ## 9. 완료 정의 (Definition of Done)
162
+
163
+ - [ ] 기존 테스트 전체 통과
164
+ - [ ] 신규 추가 테스트(있다면) 통과
165
+ - [ ] 테스트 커버리지 감소 없음
166
+ - [ ] 외부 동작 변경 없음 확인
167
+ - [ ] 코드 리뷰 승인
168
+ - [ ] 측정 지표 목표치 달성
169
+
170
+ ---
171
+
172
+ ## 10. 참고 자료
173
+
174
+ -