update stage-pilot

This commit is contained in:
2026-04-23 04:32:10 +00:00
parent 9ba8f63302
commit dbc74db3b0
34 changed files with 4115 additions and 0 deletions
+219
View File
@@ -0,0 +1,219 @@
# 0. 문서 상태
이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다.
- 상태: {{DOC_STATUS:draft|review|confirmed}}
- 문서 ID: {{CYCLE_ID:sdlc-<3자리>_<YYYYMMDD>_<topic-slug>}}
- 이슈명: {{ISSUE_NAME:짧은 한글 또는 영문 이슈명}}
- 작성 시각(KST): {{CREATED_AT_KST:TBD}}
- 마지막 갱신 시각(KST): {{UPDATED_AT_KST:TBD}}
# 1. 계획 상태 요약
현재 Discovery가 어떤 배경에서 작성되고 있는지, 연계 문서가 있는지, 지금 시점의 해석이 무엇인지 짧게 요약한다.
- 연계 문서 현황:
- Planning 점수 파일: {{PLANNING_SCORE_FILE:미생성 또는 경로}}
- 관련 TODO/메모: {{TODO_FILE:경로 또는 없음}}
- 해석:
- {{SUMMARY_LINE_1:현재 검토/작성 배경 요약}}
- {{SUMMARY_LINE_2:이번 Discovery에서 판단해야 할 핵심 요약}}
# 2. 요구사항 판정 결과
이번 요청이 기존 요구사항과 비교해 신규인지, 유사한지, 중복인지 판단하고 그 근거를 남긴다.
- 판정: {{REQUIREMENT_CLASSIFICATION:완전 중복|유사|신규}}
- 근거
- {{CLASSIFICATION_REASON_1}}
- {{CLASSIFICATION_REASON_2}}
> **판정이 `완전 중복`인 경우**: 이하 섹션 작성을 중단하고 `# 9. 파일 처리 결과`에 중복 판정 사유와 참조 문서 경로를 기록한 뒤 문서를 닫는다. Planning으로 넘기지 않는다.
# 3. 문제점의 요약
문제의 현재 상태, 기대 상태, 관련 이해관계자, 제약사항을 정리한다. Discovery의 핵심 맥락을 가장 먼저 이해할 수 있어야 한다.
- 현재 상태
- {{CURRENT_STATE_1}}
- {{CURRENT_STATE_2}}
- 기대 상태
- {{TARGET_STATE_1}}
- {{TARGET_STATE_2}}
- 이해관계자
- {{STAKEHOLDER_1:예. 문서 작성자(AI agent)}}
- {{STAKEHOLDER_2:예. 리뷰어/승인자}}
- {{STAKEHOLDER_3:예. 운영 담당자}}
- 제약사항
- {{CONSTRAINT_1}}
- {{CONSTRAINT_2}}
## 주요 사용자 시나리오
사용자 또는 운영자가 실제로 어떤 상황에서 이 변경을 필요로 하는지 대표 시나리오를 적는다.
- {{USER_SCENARIO_1}}
- {{USER_SCENARIO_2}}
- {{USER_SCENARIO_3}}
# 4. 이번에 정의할 변경
이번 Discovery에서 다루는 핵심 변경 항목을 목록으로 적는다. 기능, 구조, 규칙 변경을 함께 포함해도 된다.
- {{CHANGE_ITEM_1}}
- {{CHANGE_ITEM_2:필요 없으면 삭제}}
- {{CHANGE_ITEM_3:필요 없으면 삭제}}
## 영향 범위
변경이 미칠 코드/문서/운영 범위를 명시해 Planning에서 추정 누락을 줄인다.
- 코드 영향:
- {{CODE_IMPACT_1:예. docs/sdlc/index.md 갱신 로직}}
- {{CODE_IMPACT_2:필요 없으면 삭제}}
- 문서 영향:
- {{DOC_IMPACT_1}}
- {{DOC_IMPACT_2:필요 없으면 삭제}}
- 운영 영향:
- {{OPS_IMPACT_1:예. 배포/운영 절차 변경 없음}}
- {{OPS_IMPACT_2:필요 없으면 삭제}}
# 5. 요구사항 목록
실제로 구현과 검증으로 이어질 요구사항을 기능/비기능으로 나누어 정리하고, 범위 경계를 명확히 적는다.
## 기능 요구사항
- FR-1: {{FR_1}}
- FR-2: {{FR_2}}
- FR-3: {{FR_3:필요 없으면 삭제}}
- FR-4: {{FR_4:필요 없으면 삭제}}
## 비기능 요구사항
성능, 운영성, 일관성, 자동화 안정성 등 기능 외 요구사항을 적는다.
- NFR-1: {{NFR_1}}
- NFR-2: {{NFR_2}}
- NFR-3: {{NFR_3:필요 없으면 삭제}}
## 범위 경계
이번 반복에서 반드시 포함할 범위와 명시적으로 제외할 범위를 구분한다.
- In Scope
- {{IN_SCOPE_1}}
- {{IN_SCOPE_2}}
- Out of Scope
- {{OUT_OF_SCOPE_1}}
- {{OUT_OF_SCOPE_2}}
# 6. 리스크/가정 목록
불확실성과 전제 조건을 분리해서 적는다. 리스크는 영향과 완화 방안을, 가정은 현재 판단의 전제를 기록한다.
## 리스크
- R-1 ({{RISK_LEVEL_1:High|Medium|Low}}): {{RISK_1}}
- 완화 방안: {{MITIGATION_1}}
- R-2 ({{RISK_LEVEL_2:High|Medium|Low}}): {{RISK_2}}
- 완화 방안: {{MITIGATION_2}}
- R-3 ({{RISK_LEVEL_3:High|Medium|Low}}): {{RISK_3:필요 없으면 삭제}}
- 완화 방안: {{MITIGATION_3:필요 없으면 삭제}}
## 가정
아직 확정되지 않았지만 현재 문서 작성의 기반이 되는 전제를 적는다.
- A-1: {{ASSUMPTION_1}}
- A-2: {{ASSUMPTION_2}}
- A-3: {{ASSUMPTION_3:필요 없으면 삭제}}
## 오픈 질문
답을 아직 모르는 항목을 적는다. 추정으로 덮지 말고 Planning 이전에 확인할 질문으로 남긴다.
- OQ-1: {{OPEN_QUESTION_1}}
- 상태: {{OPEN_QUESTION_STATUS_1:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{OPEN_QUESTION_ACTION_1:누가 어떤 방식으로 결정/확인할지}}
- 종료 조건: {{OPEN_QUESTION_EXIT_1:언제 이 질문을 Answered/Deferred/Dropped로 처리할지}}
- OQ-2: {{OPEN_QUESTION_2}}
- 상태: {{OPEN_QUESTION_STATUS_2:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{OPEN_QUESTION_ACTION_2:누가 어떤 방식으로 결정/확인할지}}
- 종료 조건: {{OPEN_QUESTION_EXIT_2:언제 이 질문을 Answered/Deferred/Dropped로 처리할지}}
- OQ-3: {{OPEN_QUESTION_3:필요 없으면 삭제}}
- 상태: {{OPEN_QUESTION_STATUS_3:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{OPEN_QUESTION_ACTION_3:누가 어떤 방식으로 결정/확인할지}}
- 종료 조건: {{OPEN_QUESTION_EXIT_3:언제 이 질문을 Answered/Deferred/Dropped로 처리할지}}
### 오픈 질문 처리 기준
- `Open`: 아직 답이 없고 다음 단계 진행에 영향이 있는 상태다. 문서에 유지한다.
- `Answered`: 답이 확정된 상태다. 관련 본문/요구사항에 반영한 뒤 오픈 질문 목록에서는 제거하거나 resolved 기록으로 이동한다.
- `Deferred`: 지금 단계에서 결정하지 않고 다음 단계 또는 후속 이슈로 넘기는 상태다. 넘길 대상과 이유를 반드시 적는다.
- `Dropped`: 더 이상 유효하지 않은 질문이다. 삭제 사유를 짧게 남기고 목록에서 제거한다.
- 처리 원칙 1: 질문만 남기지 말고 반드시 `상태`, `처리 방안`, `종료 조건`을 함께 적는다.
- 처리 원칙 2: 답이 나온 질문은 본문 반영 없이 단순 삭제하지 않는다. 반영 위치를 먼저 갱신한다.
- 처리 원칙 3: High 영향 질문은 `Deferred` 처리 후 처리 방안에 Planning 인계 추적 방식을 명시한다.
# 7. 초기 성공 기준
이 변경이 성공했다고 판단할 기준을 측정 가능하게 정의한다. 가능하면 데이터 출처까지 연결한다.
- S-1: {{SUCCESS_METRIC_1}}
- S-2: {{SUCCESS_METRIC_2}}
- S-3: {{SUCCESS_METRIC_3:필요 없으면 삭제}}
## 측정 방식 및 데이터 출처
각 성공 기준을 어떻게 측정할지와 어떤 데이터나 문서를 근거로 쓸지 적는다.
- S-1 측정 방식: {{MEASURE_METHOD_1}} / 데이터 출처: {{MEASURE_SOURCE_1}}
- S-2 측정 방식: {{MEASURE_METHOD_2}} / 데이터 출처: {{MEASURE_SOURCE_2}}
- S-3 측정 방식: {{MEASURE_METHOD_3:필요 없으면 삭제}} / 데이터 출처: {{MEASURE_SOURCE_3:필요 없으면 삭제}}
# 8. Planning으로 넘기기 전 확인 체크
Planning 단계로 넘기기 전에 무엇이 확정되어야 하는지 확인한다. 미완료 항목은 후속 결정이 필요함을 뜻한다.
- [ ] 범위(In Scope/Out of Scope) 확정
- 기준: {{CHECK_SCOPE_CRITERIA}}
- [ ] 성공 지표의 측정 방식/데이터 출처 확정
- 기준: {{CHECK_METRICS_CRITERIA}}
- [ ] High 영향 리스크 우선순위 및 해소 책임자 지정
- 기준: {{CHECK_RISK_OWNER_CRITERIA}}
- [ ] 모든 오픈 질문(OQ) `Open` 상태 없음 확인
- 기준: OQ 목록에 `Open` 상태 항목이 0개이거나, 잔여 항목 전부 `Deferred` 처리 완료
- [ ] Freeze 확정 담당자(CONFIRMED_BY) 지정
- 기준: {{CHECK_CONFIRMEDBY_CRITERIA}}
# 9. 파일 처리 결과
이 Discovery 문서 생성/갱신 결과와 참조 문서를 기록한다. 이후 추적과 리뷰 시 근거로 사용한다.
- 처리 결과: {{FILE_RESULT:생성|갱신|미생성}}
- 생성 경로: {{OUTPUT_PATH}}
- 참조 문서:
- {{REFERENCE_1}}
- {{REFERENCE_2}}
- {{REFERENCE_3:필요 없으면 삭제}}
# 10. 사용자 결정 필요 항목 요약
사용자나 승인자가 결정해야 하는 항목만 모아 정리한다. 결정, 확인, 데이터 요청을 구분해서 적는다.
## DECIDE
- {{DECIDE_ITEM_1}}
- {{DECIDE_ITEM_2:필요 없으면 삭제}}
## CONFIRM
- {{CONFIRM_ITEM_1}}
- {{CONFIRM_ITEM_2:필요 없으면 삭제}}
## DATA
- {{DATA_ITEM_1}}
- {{DATA_ITEM_2:필요 없으면 삭제}}
# 11. Discovery Freeze
Planning 인계 시점의 확정 플래그와 섹션 참조만 기록한다. 내용 재작성 없이 원본 섹션을 링크로 대신한다.
## 섹션 참조
- 범위: [# 5. 요구사항 목록 > 범위 경계](#5-요구사항-목록)
- 리스크/오픈 질문: [# 6. 리스크/가정 목록](#6-리스크가정-목록)
- 성공 기준: [# 7. 초기 성공 기준](#7-초기-성공-기준)
- 인계 전 확인: [# 8. Planning으로 넘기기 전 확인 체크](#8-planning으로-넘기기-전-확인-체크)
- 사용자 결정 필요: [# 10. 사용자 결정 필요 항목 요약](#10-사용자-결정-필요-항목-요약)
## Freeze 플래그
- Handoff Decision: {{FREEZE_HANDOFF_DECISION:Planning 진행 가능|보류}}
- Handoff Rationale: {{FREEZE_HANDOFF_RATIONALE:진행 가능 또는 보류 판단 근거 1-2줄}}
- Ready for Planning: {{READY_FOR_PLANNING:false}}
- Confirmed By: {{CONFIRMED_BY:TBD}}
- Confirmed At (KST): {{CONFIRMED_AT_KST:TBD}}
# 12. 작성 가이드
템플릿 사용 시의 기본 규칙을 적는다. 실제 문서를 만들 때는 이 가이드를 기준으로 플레이스홀더를 치환한다.
- 이 파일은 템플릿이다. 실제 문서 작성 시 `{{...}}` 플레이스홀더를 구체 값으로 교체한다.
- 필요 없는 항목은 삭제하고, 부족한 항목은 같은 형식으로 추가한다.
- Open Questions는 가정으로 대체하지 말고 그대로 유지한다.
- Discovery Freeze는 문서 하단에 반드시 유지한다.
+205
View File
@@ -0,0 +1,205 @@
# 0. 문서 상태
이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다.
- 상태: {{DOC_STATUS:draft|review|confirmed}}
- 문서 ID: {{CYCLE_ID:sdlc-<3자리>_<YYYYMMDD>_<topic-slug>}}
- 이슈명: {{ISSUE_NAME:짧은 한글 또는 영문 이슈명}}
- 참조 Discovery: {{DISCOVERY_PATH:docs/sdlc/<CYCLE_ID>/1_discovery.md}}
- 작성 시각(KST): {{CREATED_AT_KST:TBD}}
- 마지막 갱신 시각(KST): {{UPDATED_AT_KST:TBD}}
# 1. Discovery 인계 요약
Discovery에서 확정된 핵심 내용을 요약한다. 원본은 1_discovery.md를 참조하며, 이 섹션은 Planning 작업의 입력 기준선이 된다.
## 이슈 목적
- {{PLANNING_ISSUE_PURPOSE:Discovery 이슈명과 핵심 목적 1-2줄}}
## 확정 범위
- In Scope
- {{PLANNING_IN_SCOPE_1}}
- {{PLANNING_IN_SCOPE_2}}
- Out of Scope
- {{PLANNING_OUT_OF_SCOPE_1}}
- {{PLANNING_OUT_OF_SCOPE_2}}
## 기능 요구사항 (FR) 요약
- FR-1: {{PLANNING_FR_1}}
- FR-2: {{PLANNING_FR_2}}
- FR-3: {{PLANNING_FR_3:필요 없으면 삭제}}
- FR-4: {{PLANNING_FR_4:필요 없으면 삭제}}
## 비기능 요구사항 (NFR) 요약
- NFR-1: {{PLANNING_NFR_1}}
- NFR-2: {{PLANNING_NFR_2:필요 없으면 삭제}}
## 이월된 오픈 질문 / 리스크
Discovery에서 `Deferred` 처리되어 Planning 단계에서 해소해야 하는 항목을 기록한다.
- {{DEFERRED_ITEM_1:없으면 "없음"}}
- {{DEFERRED_ITEM_2:필요 없으면 삭제}}
# 2. 작업 분해 (Task Breakdown)
FR/NFR 각각을 실행 가능한 단위 태스크로 분해한다. 각 태스크는 하나의 완료 조건을 가져야 한다.
| ID | 태스크 제목 | 유형 | 참조 요구사항 | 의존 태스크 | 담당자 |
|-----|-----------|------|--------------|------------|--------|
| T-1 | {{TASK_TITLE_1}} | {{TASK_TYPE_1:개발\|문서\|검토\|설계\|운영}} | {{TASK_REF_1:FR-1}} | - | {{TASK_OWNER_1:TBD}} |
| T-2 | {{TASK_TITLE_2}} | {{TASK_TYPE_2:개발\|문서\|검토\|설계\|운영}} | {{TASK_REF_2:FR-2}} | {{TASK_DEP_2:-}} | {{TASK_OWNER_2:TBD}} |
| T-3 | {{TASK_TITLE_3:필요 없으면 삭제}} | {{TASK_TYPE_3:개발\|문서\|검토\|설계\|운영}} | {{TASK_REF_3}} | {{TASK_DEP_3:-}} | {{TASK_OWNER_3:TBD}} |
| T-4 | {{TASK_TITLE_4:필요 없으면 삭제}} | {{TASK_TYPE_4:개발\|문서\|검토\|설계\|운영}} | {{TASK_REF_4}} | {{TASK_DEP_4:-}} | {{TASK_OWNER_4:TBD}} |
## 태스크 완료 조건 (DoD)
각 태스크의 완료 기준을 명시한다.
- T-1: {{TASK_DOD_1}}
- T-2: {{TASK_DOD_2}}
- T-3: {{TASK_DOD_3:필요 없으면 삭제}}
- T-4: {{TASK_DOD_4:필요 없으면 삭제}}
# 3. 공수 추정
각 태스크의 예상 공수를 적는다. 단위는 팀 기준에 맞게 선택한다(SP 또는 시간).
| ID | 태스크 제목 | 추정 공수 | 추정 단위 | 비고 |
|-----|-----------|---------|---------|------|
| T-1 | {{TASK_TITLE_1}} | {{EFFORT_1}} | {{EFFORT_UNIT:SP\|시간\|일}} | {{EFFORT_NOTE_1:필요 없으면 삭제}} |
| T-2 | {{TASK_TITLE_2}} | {{EFFORT_2}} | {{EFFORT_UNIT}} | {{EFFORT_NOTE_2:필요 없으면 삭제}} |
| T-3 | {{TASK_TITLE_3:필요 없으면 삭제}} | {{EFFORT_3}} | {{EFFORT_UNIT}} | {{EFFORT_NOTE_3:필요 없으면 삭제}} |
| T-4 | {{TASK_TITLE_4:필요 없으면 삭제}} | {{EFFORT_4}} | {{EFFORT_UNIT}} | {{EFFORT_NOTE_4:필요 없으면 삭제}} |
- 총 추정 공수: {{TOTAL_EFFORT}}
- 추정 신뢰도: {{EFFORT_CONFIDENCE:High|Medium|Low}}
- 추정 근거: {{EFFORT_BASIS:추정에 사용한 방법 또는 유사 사례}}
# 4. 일정 계획
이터레이션 또는 스프린트 단위로 태스크 배분 계획을 적는다.
## 마일스톤
| 마일스톤 | 목표 날짜 | 포함 태스크 | 완료 조건 |
|---------|---------|-----------|---------|
| M-1: {{MILESTONE_1_NAME}} | {{MILESTONE_1_DATE:TBD}} | {{MILESTONE_1_TASKS:T-1, T-2}} | {{MILESTONE_1_DONE}} |
| M-2: {{MILESTONE_2_NAME:필요 없으면 삭제}} | {{MILESTONE_2_DATE:TBD}} | {{MILESTONE_2_TASKS}} | {{MILESTONE_2_DONE}} |
## 이터레이션 계획
- 이터레이션 단위: {{ITERATION_UNIT:스프린트|주|없음(단일 배포)}}
- 이터레이션 1 ({{ITERATION_1_PERIOD:날짜 범위 또는 TBD}}): {{ITERATION_1_TASKS:T-1, T-2}}
- 이터레이션 2 ({{ITERATION_2_PERIOD:날짜 범위 또는 TBD}}): {{ITERATION_2_TASKS:T-3, T-4}}
# 5. 의존성 및 제약
태스크 간 의존 관계와 외부 의존성을 기록한다.
## 태스크 간 의존성
- {{TASK_DEPENDENCY_1:예. T-2는 T-1 완료 후 시작 가능}}
- {{TASK_DEPENDENCY_2:필요 없으면 삭제}}
## 외부 의존성
다른 팀, 시스템, 도구에 의존하는 항목을 적는다.
- {{EXTERNAL_DEP_1:예. CI/CD 파이프라인 설정 필요}}
- {{EXTERNAL_DEP_2:필요 없으면 삭제}}
## 기술/환경 제약
- {{TECH_CONSTRAINT_1}}
- {{TECH_CONSTRAINT_2:필요 없으면 삭제}}
# 6. 검증 계획 개요
Discovery의 성공 기준과 연결해 어떻게 검증할지 초안을 적는다. 상세 검증은 Verification 단계에서 정의한다.
| 성공 기준 | 검증 방법 초안 | 담당자 |
|---------|-------------|--------|
| {{VERIFY_CRITERIA_1:S-1 요약}} | {{VERIFY_METHOD_1}} | {{VERIFY_OWNER_1:TBD}} |
| {{VERIFY_CRITERIA_2:S-2 요약}} | {{VERIFY_METHOD_2}} | {{VERIFY_OWNER_2:TBD}} |
| {{VERIFY_CRITERIA_3:S-3 요약 또는 삭제}} | {{VERIFY_METHOD_3}} | {{VERIFY_OWNER_3:TBD}} |
# 7. 리스크
Planning 단계에서 새로 식별된 리스크를 기록한다. Discovery에서 이월된 리스크는 `# 1` 이월 항목에서 확인한다.
## 리스크
- R-1 ({{PLAN_RISK_LEVEL_1:High|Medium|Low}}): {{PLAN_RISK_1}}
- 완화 방안: {{PLAN_MITIGATION_1}}
- R-2 ({{PLAN_RISK_LEVEL_2:High|Medium|Low}}): {{PLAN_RISK_2:필요 없으면 삭제}}
- 완화 방안: {{PLAN_MITIGATION_2:필요 없으면 삭제}}
## 가정
Planning 수행의 전제가 되는 가정을 적는다.
- PA-1: {{PLAN_ASSUMPTION_1}}
- PA-2: {{PLAN_ASSUMPTION_2:필요 없으면 삭제}}
## 오픈 질문
Planning 진행 중 확인이 필요한 질문을 적는다.
- OQ-1: {{PLAN_OPEN_QUESTION_1}}
- 상태: {{PLAN_OQ_STATUS_1:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{PLAN_OQ_ACTION_1}}
- 종료 조건: {{PLAN_OQ_EXIT_1}}
- OQ-2: {{PLAN_OPEN_QUESTION_2:필요 없으면 삭제}}
- 상태: {{PLAN_OQ_STATUS_2:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{PLAN_OQ_ACTION_2}}
- 종료 조건: {{PLAN_OQ_EXIT_2}}
# 8. Design으로 넘기기 전 확인 체크
Design 단계로 넘기기 전에 무엇이 확정되어야 하는지 확인한다.
- [ ] 전체 태스크 목록 확정 및 담당자 지정
- 기준: {{CHECK_TASKS_CRITERIA:모든 태스크에 담당자가 지정되어야 한다}}
- [ ] 공수 추정 완료 및 총 공수 확인
- 기준: {{CHECK_EFFORT_CRITERIA:모든 태스크의 추정 공수가 채워져야 한다}}
- [ ] 마일스톤 및 이터레이션 계획 확정
- 기준: {{CHECK_SCHEDULE_CRITERIA:M-1 이상의 마일스톤과 이터레이션 경계가 정의되어야 한다}}
- [ ] 외부 의존성 해소 계획 확인
- 기준: {{CHECK_DEP_CRITERIA:외부 의존성 각 항목에 담당자 또는 해소 방안이 있어야 한다}}
- [ ] 모든 오픈 질문(OQ) `Open` 상태 없음 확인
- 기준: OQ 목록에 `Open` 상태 항목이 0개이거나, 잔여 항목 전부 `Deferred` 처리 완료
- [ ] Freeze 확정 담당자(CONFIRMED_BY) 지정
- 기준: {{CHECK_CONFIRMEDBY_CRITERIA:문서 승인 또는 인계 결정을 내릴 담당자가 명시되어야 한다}}
# 9. 파일 처리 결과
이 Planning 문서 생성/갱신 결과와 참조 문서를 기록한다.
- 처리 결과: {{FILE_RESULT:생성|갱신|미생성}}
- 생성 경로: {{OUTPUT_PATH}}
- 참조 문서:
- {{DISCOVERY_PATH:docs/sdlc/<CYCLE_ID>/1_discovery.md}}
- {{REFERENCE_1:필요 없으면 삭제}}
# 10. 사용자 결정 필요 항목 요약
사용자나 승인자가 결정해야 하는 항목만 모아 정리한다.
## DECIDE
- {{DECIDE_ITEM_1}}
- {{DECIDE_ITEM_2:필요 없으면 삭제}}
## CONFIRM
- {{CONFIRM_ITEM_1}}
- {{CONFIRM_ITEM_2:필요 없으면 삭제}}
## DATA
- {{DATA_ITEM_1}}
- {{DATA_ITEM_2:필요 없으면 삭제}}
# 11. Planning Freeze
Design 인계 시점의 확정 플래그와 섹션 참조만 기록한다. 내용 재작성 없이 원본 섹션을 링크로 대신한다.
## 섹션 참조
- 작업 분해: [# 2. 작업 분해](#2-작업-분해-task-breakdown)
- 공수/일정: [# 3. 공수 추정](#3-공수-추정), [# 4. 일정 계획](#4-일정-계획)
- 의존성: [# 5. 의존성 및 제약](#5-의존성-및-제약)
- 검증 계획: [# 6. 검증 계획 개요](#6-검증-계획-개요)
- 리스크/오픈 질문: [# 7. 리스크](#7-리스크)
- 인계 전 확인: [# 8. Design으로 넘기기 전 확인 체크](#8-design으로-넘기기-전-확인-체크)
- 사용자 결정 필요: [# 10. 사용자 결정 필요 항목 요약](#10-사용자-결정-필요-항목-요약)
## Freeze 플래그
- Handoff Decision: {{FREEZE_HANDOFF_DECISION:Design 진행 가능|보류}}
- Handoff Rationale: {{FREEZE_HANDOFF_RATIONALE:진행 가능 또는 보류 판단 근거 1-2줄}}
- Ready for Design: {{READY_FOR_DESIGN:false}}
- Confirmed By: {{CONFIRMED_BY:TBD}}
- Confirmed At (KST): {{CONFIRMED_AT_KST:TBD}}
# 12. 작성 가이드
템플릿 사용 시의 기본 규칙을 적는다. 실제 문서를 만들 때는 이 가이드를 기준으로 플레이스홀더를 치환한다.
- 이 파일은 템플릿이다. 실제 문서 작성 시 `{{...}}` 플레이스홀더를 구체 값으로 교체한다.
- 필요 없는 태스크/마일스톤 행은 삭제하고, 부족한 항목은 같은 형식으로 추가한다.
- 공수 추정은 팀 기준 단위(SP/시간/일)를 통일해서 사용한다.
- Planning Freeze는 문서 하단에 반드시 유지한다.
+187
View File
@@ -0,0 +1,187 @@
# 0. 문서 상태
이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다.
- 상태: {{DOC_STATUS:draft|review|confirmed}}
- 문서 ID: {{CYCLE_ID:sdlc-<3자리>_<YYYYMMDD>_<topic-slug>}}
- 이슈명: {{ISSUE_NAME:짧은 한글 또는 영문 이슈명}}
- 참조 Planning: {{PLANNING_PATH:docs/sdlc/<CYCLE_ID>/2_planning.md}}
- 작성 시각(KST): {{CREATED_AT_KST:TBD}}
- 마지막 갱신 시각(KST): {{UPDATED_AT_KST:TBD}}
# 1. Planning 인계 요약
Planning에서 확정된 핵심 내용을 요약한다. 원본은 2_planning.md를 참조하며, 이 섹션은 Design 작업의 입력 기준선이 된다.
## 이슈 목적
- {{DESIGN_ISSUE_PURPOSE:Planning 이슈명과 핵심 목적 1-2줄}}
## 확정 태스크 목록
| ID | 태스크 제목 | 참조 요구사항 | 담당자 |
|----|-----------|------------|--------|
| T-1 | {{DESIGN_TASK_TITLE_1}} | {{DESIGN_TASK_REF_1}} | {{DESIGN_TASK_OWNER_1:TBD}} |
| T-2 | {{DESIGN_TASK_TITLE_2}} | {{DESIGN_TASK_REF_2}} | {{DESIGN_TASK_OWNER_2:TBD}} |
| T-3 | {{DESIGN_TASK_TITLE_3:필요 없으면 삭제}} | {{DESIGN_TASK_REF_3}} | {{DESIGN_TASK_OWNER_3:TBD}} |
## 이월된 오픈 질문 / 리스크
Planning에서 `Deferred` 처리되어 Design 단계에서 해소해야 하는 항목을 기록한다.
- {{DESIGN_DEFERRED_ITEM_1:없으면 "없음"}}
- {{DESIGN_DEFERRED_ITEM_2:필요 없으면 삭제}}
# 2. 아키텍처 및 구조 설계
변경이 미치는 전체 구조와 주요 컴포넌트 관계를 설명한다.
## 전체 구조 개요
{{ARCH_OVERVIEW:시스템/모듈/파일 구조를 개요 수준으로 설명. 다이어그램 또는 목록 형태 모두 가능}}
## 주요 컴포넌트
| 컴포넌트 | 역할 | 영향 범위 |
|---------|------|---------|
| {{COMPONENT_1_NAME}} | {{COMPONENT_1_ROLE}} | {{COMPONENT_1_SCOPE}} |
| {{COMPONENT_2_NAME}} | {{COMPONENT_2_ROLE}} | {{COMPONENT_2_SCOPE}} |
| {{COMPONENT_3_NAME:필요 없으면 삭제}} | {{COMPONENT_3_ROLE}} | {{COMPONENT_3_SCOPE}} |
## 데이터 흐름
변경과 관련된 주요 데이터 흐름 또는 처리 순서를 적는다. 복잡하면 단계별 목록으로 표현한다.
- {{DATA_FLOW_1}}
- {{DATA_FLOW_2}}
- {{DATA_FLOW_3:필요 없으면 삭제}}
# 3. 상세 설계
태스크(T-N)별로 구체적인 구현/변경 방법을 기술한다.
## T-1: {{DESIGN_TASK_TITLE_1}}
- 설계 방향: {{DESIGN_DETAIL_1}}
- 변경 대상: {{DESIGN_TARGET_1:파일 경로, 함수명, 설정 키 등}}
- 입력/출력: {{DESIGN_IO_1:입력값과 출력값 또는 사이드이펙트}}
- 예외/엣지 케이스: {{DESIGN_EDGE_1:필요 없으면 삭제}}
## T-2: {{DESIGN_TASK_TITLE_2}}
- 설계 방향: {{DESIGN_DETAIL_2}}
- 변경 대상: {{DESIGN_TARGET_2}}
- 입력/출력: {{DESIGN_IO_2}}
- 예외/엣지 케이스: {{DESIGN_EDGE_2:필요 없으면 삭제}}
## T-3: {{DESIGN_TASK_TITLE_3:필요 없으면 삭제}}
- 설계 방향: {{DESIGN_DETAIL_3}}
- 변경 대상: {{DESIGN_TARGET_3}}
- 입력/출력: {{DESIGN_IO_3}}
- 예외/엣지 케이스: {{DESIGN_EDGE_3:필요 없으면 삭제}}
# 4. 인터페이스 정의
외부 시스템, 모듈 간 계약(API, 이벤트, 파일 포맷 등)을 명시한다. 해당 없으면 "해당 없음"으로 기재한다.
## API / 함수 시그니처
- {{INTERFACE_1:예. function foo(bar: string): boolean — 설명}}
- {{INTERFACE_2:필요 없으면 삭제}}
## 데이터 스키마 / 포맷
- {{SCHEMA_1:예. { id: string, status: "draft"|"confirmed" } — 설명}}
- {{SCHEMA_2:필요 없으면 삭제}}
## 이벤트 / 메시지
- {{EVENT_1:필요 없으면 삭제}}
- {{EVENT_2:필요 없으면 삭제}}
# 5. 보안 고려사항
OWASP Top 10 기준으로 이번 변경에서 주의해야 할 보안 항목을 점검한다.
| 항목 | 해당 여부 | 대응 방안 |
|------|---------|---------|
| 입력값 검증 (Injection) | {{SEC_INJECTION:해당|비해당}} | {{SEC_INJECTION_ACTION:비해당이면 삭제}} |
| 인증/인가 | {{SEC_AUTH:해당|비해당}} | {{SEC_AUTH_ACTION:비해당이면 삭제}} |
| 민감 데이터 노출 | {{SEC_DATA:해당|비해당}} | {{SEC_DATA_ACTION:비해당이면 삭제}} |
| 의존성 취약점 | {{SEC_DEP:해당|비해당}} | {{SEC_DEP_ACTION:비해당이면 삭제}} |
| 기타 | {{SEC_OTHER:필요 없으면 삭제}} | {{SEC_OTHER_ACTION:필요 없으면 삭제}} |
# 6. 리스크
Design 단계에서 새로 식별된 리스크를 기록한다. Planning에서 이월된 리스크는 `# 1` 이월 항목에서 확인한다.
## 리스크
- R-1 ({{DESIGN_RISK_LEVEL_1:High|Medium|Low}}): {{DESIGN_RISK_1}}
- 완화 방안: {{DESIGN_MITIGATION_1}}
- R-2 ({{DESIGN_RISK_LEVEL_2:High|Medium|Low}}): {{DESIGN_RISK_2:필요 없으면 삭제}}
- 완화 방안: {{DESIGN_MITIGATION_2:필요 없으면 삭제}}
## 가정
Design 수행의 전제가 되는 가정을 적는다.
- DA-1: {{DESIGN_ASSUMPTION_1}}
- DA-2: {{DESIGN_ASSUMPTION_2:필요 없으면 삭제}}
## 오픈 질문
Design 진행 중 확인이 필요한 질문을 적는다.
- OQ-1: {{DESIGN_OPEN_QUESTION_1}}
- 상태: {{DESIGN_OQ_STATUS_1:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{DESIGN_OQ_ACTION_1}}
- 종료 조건: {{DESIGN_OQ_EXIT_1}}
- OQ-2: {{DESIGN_OPEN_QUESTION_2:필요 없으면 삭제}}
- 상태: {{DESIGN_OQ_STATUS_2:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{DESIGN_OQ_ACTION_2}}
- 종료 조건: {{DESIGN_OQ_EXIT_2}}
# 7. Implementation으로 넘기기 전 확인 체크
Implementation 단계로 넘기기 전에 무엇이 확정되어야 하는지 확인한다.
- [ ] 전체 컴포넌트 및 태스크별 설계 완성
- 기준: {{CHECK_DESIGN_COMPLETE:모든 T-N 태스크에 설계 방향과 변경 대상이 채워져야 한다}}
- [ ] 인터페이스 계약 확정
- 기준: {{CHECK_INTERFACE:외부 의존 컴포넌트와의 계약이 명시되어야 한다}}
- [ ] 보안 점검 완료
- 기준: {{CHECK_SECURITY:OWASP 점검 항목 중 해당 항목은 대응 방안이 있어야 한다}}
- [ ] 모든 오픈 질문(OQ) `Open` 상태 없음 확인
- 기준: OQ 목록에 `Open` 상태 항목이 0개이거나, 잔여 항목 전부 `Deferred` 처리 완료
- [ ] Freeze 확정 담당자(CONFIRMED_BY) 지정
- 기준: {{CHECK_CONFIRMEDBY_CRITERIA:문서 승인 또는 인계 결정을 내릴 담당자가 명시되어야 한다}}
# 8. 파일 처리 결과
이 Design 문서 생성/갱신 결과와 참조 문서를 기록한다.
- 처리 결과: {{FILE_RESULT:생성|갱신|미생성}}
- 생성 경로: {{OUTPUT_PATH}}
- 참조 문서:
- {{PLANNING_PATH:docs/sdlc/<CYCLE_ID>/2_planning.md}}
- {{REFERENCE_1:필요 없으면 삭제}}
# 9. 사용자 결정 필요 항목 요약
사용자나 승인자가 결정해야 하는 항목만 모아 정리한다.
## DECIDE
- {{DECIDE_ITEM_1}}
- {{DECIDE_ITEM_2:필요 없으면 삭제}}
## CONFIRM
- {{CONFIRM_ITEM_1}}
- {{CONFIRM_ITEM_2:필요 없으면 삭제}}
## DATA
- {{DATA_ITEM_1}}
- {{DATA_ITEM_2:필요 없으면 삭제}}
# 10. Design Freeze
Implementation 인계 시점의 확정 플래그와 섹션 참조만 기록한다. 내용 재작성 없이 원본 섹션을 링크로 대신한다.
## 섹션 참조
- 아키텍처/구조: [# 2. 아키텍처 및 구조 설계](#2-아키텍처-및-구조-설계)
- 상세 설계: [# 3. 상세 설계](#3-상세-설계)
- 인터페이스: [# 4. 인터페이스 정의](#4-인터페이스-정의)
- 보안: [# 5. 보안 고려사항](#5-보안-고려사항)
- 리스크/오픈 질문: [# 6. 리스크](#6-리스크)
- 인계 전 확인: [# 7. Implementation으로 넘기기 전 확인 체크](#7-implementation으로-넘기기-전-확인-체크)
- 사용자 결정 필요: [# 9. 사용자 결정 필요 항목 요약](#9-사용자-결정-필요-항목-요약)
## Freeze 플래그
- Handoff Decision: {{FREEZE_HANDOFF_DECISION:Implementation 진행 가능|보류}}
- Handoff Rationale: {{FREEZE_HANDOFF_RATIONALE:진행 가능 또는 보류 판단 근거 1-2줄}}
- Ready for Implementation: {{READY_FOR_IMPLEMENTATION:false}}
- Confirmed By: {{CONFIRMED_BY:TBD}}
- Confirmed At (KST): {{CONFIRMED_AT_KST:TBD}}
# 11. 작성 가이드
템플릿 사용 시의 기본 규칙을 적는다. 실제 문서를 만들 때는 이 가이드를 기준으로 플레이스홀더를 치환한다.
- 이 파일은 템플릿이다. 실제 문서 작성 시 `{{...}}` 플레이스홀더를 구체 값으로 교체한다.
- 필요 없는 컴포넌트/태스크 항목은 삭제하고, 부족한 항목은 같은 형식으로 추가한다.
- 보안 고려사항은 "비해당"이라도 근거를 남긴다.
- Design Freeze는 문서 하단에 반드시 유지한다.
+155
View File
@@ -0,0 +1,155 @@
# 0. 문서 상태
이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다.
- 상태: {{DOC_STATUS:draft|review|confirmed}}
- 문서 ID: {{CYCLE_ID:sdlc-<3자리>_<YYYYMMDD>_<topic-slug>}}
- 이슈명: {{ISSUE_NAME:짧은 한글 또는 영문 이슈명}}
- 참조 Design: {{DESIGN_PATH:docs/sdlc/<CYCLE_ID>/3_design.md}}
- 작성 시각(KST): {{CREATED_AT_KST:TBD}}
- 마지막 갱신 시각(KST): {{UPDATED_AT_KST:TBD}}
# 1. Design 인계 요약
Design에서 확정된 핵심 내용을 요약한다. 원본은 3_design.md를 참조하며, 이 섹션은 Implementation 작업의 입력 기준선이 된다.
## 이슈 목적
- {{IMP_ISSUE_PURPOSE:Design 이슈명과 핵심 목적 1-2줄}}
## 확정 태스크 및 변경 대상
| ID | 태스크 제목 | 변경 대상 파일/함수 | 담당자 |
|----|-----------|-------------------|--------|
| T-1 | {{IMP_TASK_TITLE_1}} | {{IMP_TASK_TARGET_1}} | {{IMP_TASK_OWNER_1:TBD}} |
| T-2 | {{IMP_TASK_TITLE_2}} | {{IMP_TASK_TARGET_2}} | {{IMP_TASK_OWNER_2:TBD}} |
| T-3 | {{IMP_TASK_TITLE_3:필요 없으면 삭제}} | {{IMP_TASK_TARGET_3}} | {{IMP_TASK_OWNER_3:TBD}} |
## 이월된 오픈 질문 / 리스크
Design에서 `Deferred` 처리되어 Implementation 단계에서 해소해야 하는 항목을 기록한다.
- {{IMP_DEFERRED_ITEM_1:없으면 "없음"}}
- {{IMP_DEFERRED_ITEM_2:필요 없으면 삭제}}
# 2. 구현 계획
태스크(T-N)별 구현 순서와 접근 방법을 기술한다.
## 구현 순서
태스크 간 의존 관계와 우선순위를 고려한 구현 순서를 정의한다.
1. {{IMP_ORDER_1:예. T-1 — 기반 구조 구현 (다른 태스크의 의존 대상)}}
2. {{IMP_ORDER_2:예. T-2 — 핵심 기능 구현}}
3. {{IMP_ORDER_3:필요 없으면 삭제}}
## T-1: {{IMP_TASK_TITLE_1}}
- 구현 방법: {{IMP_METHOD_1:설계 방향을 실제 코드/설정으로 구현하는 접근}}
- 변경 대상: {{IMP_TARGET_1:실제 파일 경로, 함수명, 설정 키}}
- 완료 조건: {{IMP_DOD_1:이 태스크가 완료된 것으로 간주하는 기준}}
- 주의사항: {{IMP_NOTE_1:구현 중 주의해야 할 사항. 필요 없으면 삭제}}
## T-2: {{IMP_TASK_TITLE_2}}
- 구현 방법: {{IMP_METHOD_2}}
- 변경 대상: {{IMP_TARGET_2}}
- 완료 조건: {{IMP_DOD_2}}
- 주의사항: {{IMP_NOTE_2:필요 없으면 삭제}}
## T-3: {{IMP_TASK_TITLE_3:필요 없으면 삭제}}
- 구현 방법: {{IMP_METHOD_3}}
- 변경 대상: {{IMP_TARGET_3}}
- 완료 조건: {{IMP_DOD_3}}
- 주의사항: {{IMP_NOTE_3:필요 없으면 삭제}}
# 3. 변경 파일 목록
이번 Implementation에서 생성/수정/삭제되는 파일을 미리 나열한다. 구현 완료 후 실제 결과를 반영해 갱신한다.
| 파일 경로 | 변경 유형 | 관련 태스크 | 비고 |
|---------|---------|-----------|------|
| {{IMP_FILE_1}} | {{IMP_FILE_TYPE_1:생성\|수정\|삭제}} | {{IMP_FILE_TASK_1:T-1}} | {{IMP_FILE_NOTE_1:필요 없으면 삭제}} |
| {{IMP_FILE_2}} | {{IMP_FILE_TYPE_2:생성\|수정\|삭제}} | {{IMP_FILE_TASK_2}} | {{IMP_FILE_NOTE_2:필요 없으면 삭제}} |
| {{IMP_FILE_3:필요 없으면 삭제}} | {{IMP_FILE_TYPE_3:생성\|수정\|삭제}} | {{IMP_FILE_TASK_3}} | {{IMP_FILE_NOTE_3:필요 없으면 삭제}} |
# 4. 리스크 및 제약
Implementation 단계에서 새로 식별된 리스크와 제약사항을 기록한다.
## 리스크
- R-1 ({{IMP_RISK_LEVEL_1:High|Medium|Low}}): {{IMP_RISK_1}}
- 완화 방안: {{IMP_MITIGATION_1}}
- R-2 ({{IMP_RISK_LEVEL_2:High|Medium|Low}}): {{IMP_RISK_2:필요 없으면 삭제}}
- 완화 방안: {{IMP_MITIGATION_2:필요 없으면 삭제}}
## 가정
Implementation 수행의 전제가 되는 가정을 적는다.
- IA-1: {{IMP_ASSUMPTION_1}}
- IA-2: {{IMP_ASSUMPTION_2:필요 없으면 삭제}}
## 오픈 질문
Implementation 진행 중 확인이 필요한 질문을 적는다.
- OQ-1: {{IMP_OPEN_QUESTION_1}}
- 상태: {{IMP_OQ_STATUS_1:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{IMP_OQ_ACTION_1}}
- 종료 조건: {{IMP_OQ_EXIT_1}}
- OQ-2: {{IMP_OPEN_QUESTION_2:필요 없으면 삭제}}
- 상태: {{IMP_OQ_STATUS_2:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{IMP_OQ_ACTION_2}}
- 종료 조건: {{IMP_OQ_EXIT_2}}
# 5. Verification으로 넘기기 전 확인 체크
Verification 단계로 넘기기 전에 무엇이 완료되어야 하는지 확인한다.
- [ ] 모든 T-N 태스크 구현 완료
- 기준: {{CHECK_ALL_TASKS:각 태스크의 완료 조건(DoD)을 충족해야 한다}}
- [ ] 변경 파일 목록과 실제 변경 일치
- 기준: {{CHECK_FILE_LIST:3_design.md의 변경 대상과 실제 변경된 파일이 일치해야 한다}}
- [ ] 단위 테스트 또는 로컬 검증 완료
- 기준: {{CHECK_LOCAL_VERIFY:변경 사항이 로컬 환경에서 의도대로 동작하는지 확인해야 한다}}
- [ ] 모든 오픈 질문(OQ) `Open` 상태 없음 확인
- 기준: OQ 목록에 `Open` 상태 항목이 0개이거나, 잔여 항목 전부 `Deferred` 처리 완료
- [ ] Freeze 확정 담당자(CONFIRMED_BY) 지정
- 기준: {{CHECK_CONFIRMEDBY_CRITERIA:문서 승인 또는 인계 결정을 내릴 담당자가 명시되어야 한다}}
# 6. 파일 처리 결과
이 Implementation 문서 생성/갱신 결과와 참조 문서를 기록한다.
- 처리 결과: {{FILE_RESULT:생성|갱신|미생성}}
- 생성 경로: {{OUTPUT_PATH}}
- 참조 문서:
- {{DESIGN_PATH:docs/sdlc/<CYCLE_ID>/3_design.md}}
- {{REFERENCE_1:필요 없으면 삭제}}
# 7. 사용자 결정 필요 항목 요약
사용자나 승인자가 결정해야 하는 항목만 모아 정리한다.
## DECIDE
- {{DECIDE_ITEM_1}}
- {{DECIDE_ITEM_2:필요 없으면 삭제}}
## CONFIRM
- {{CONFIRM_ITEM_1}}
- {{CONFIRM_ITEM_2:필요 없으면 삭제}}
## DATA
- {{DATA_ITEM_1}}
- {{DATA_ITEM_2:필요 없으면 삭제}}
# 8. Implementation Freeze
Verification 인계 시점의 확정 플래그와 섹션 참조만 기록한다. 내용 재작성 없이 원본 섹션을 링크로 대신한다.
## 섹션 참조
- 구현 계획: [# 2. 구현 계획](#2-구현-계획)
- 변경 파일 목록: [# 3. 변경 파일 목록](#3-변경-파일-목록)
- 리스크/오픈 질문: [# 4. 리스크 및 제약](#4-리스크-및-제약)
## 확정 플래그
- Handoff Decision: {{FREEZE_HANDOFF_DECISION:보류}}
- Handoff Rationale: {{FREEZE_HANDOFF_RATIONALE:구현 완료 및 로컬 검증 후 Verification으로 인계}}
- Ready for Verification: {{READY_FOR_VERIFICATION:false}}
- Confirmed By: {{CONFIRMED_BY:TBD}}
- Confirmed At (KST): {{CONFIRMED_AT_KST:TBD}}
---
# 12. 작성 가이드
*이 섹션은 작성 참고용이다. 문서 완성 후 삭제해도 된다.*
- **변경 대상 파일 경로**: 실제 저장소 파일 경로를 명시한다. 추정이나 가상 경로를 쓰지 않는다.
- **완료 조건(DoD)**: "구현 완료"처럼 모호한 표현 대신 "파일 X에 함수 Y가 추가되고 입력 Z에 대해 올바른 결과를 반환한다"처럼 측정 가능하게 작성한다.
- **오픈 질문**: 구현 중 발생한 기술적 판단 사항, 외부 확인 필요 항목 등을 기록한다.
- **Freeze 섹션**: 모든 태스크 완료 및 로컬 검증 후 담당자가 직접 갱신한다.
+160
View File
@@ -0,0 +1,160 @@
# 0. 문서 상태
이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다.
- 상태: {{DOC_STATUS:draft|review|confirmed}}
- 문서 ID: {{CYCLE_ID:sdlc-<3자리>_<YYYYMMDD>_<topic-slug>}}
- 이슈명: {{ISSUE_NAME:짧은 한글 또는 영문 이슈명}}
- 참조 Implementation: {{IMP_PATH:docs/sdlc/<CYCLE_ID>/4_implementation.md}}
- 작성 시각(KST): {{CREATED_AT_KST:TBD}}
- 마지막 갱신 시각(KST): {{UPDATED_AT_KST:TBD}}
# 1. Implementation 인계 요약
Implementation에서 완료된 핵심 내용을 요약한다. 원본은 4_implementation.md를 참조하며, 이 섹션은 Verification 작업의 입력 기준선이 된다.
## 이슈 목적
- {{VER_ISSUE_PURPOSE:Implementation 이슈명과 핵심 목적 1-2줄}}
## 구현 완료 태스크
| ID | 태스크 제목 | 변경 파일/함수 | 완료 조건(DoD) |
|----|-----------|--------------|--------------|
| T-1 | {{VER_TASK_TITLE_1}} | {{VER_TASK_TARGET_1}} | {{VER_TASK_DOD_1}} |
| T-2 | {{VER_TASK_TITLE_2}} | {{VER_TASK_TARGET_2}} | {{VER_TASK_DOD_2}} |
| T-3 | {{VER_TASK_TITLE_3:필요 없으면 삭제}} | {{VER_TASK_TARGET_3}} | {{VER_TASK_DOD_3}} |
## 이월된 오픈 질문 / 리스크
Implementation에서 `Deferred` 처리되어 Verification 단계에서 해소해야 하는 항목을 기록한다.
- {{VER_DEFERRED_ITEM_1:없으면 "없음"}}
- {{VER_DEFERRED_ITEM_2:필요 없으면 삭제}}
# 2. 검증 계획
Discovery `# 7` 성공 기준(S-N)을 기반으로 Verification 항목을 정의한다.
## 검증 범위
- {{VER_SCOPE_1:예. 기능 요구사항(FR) 전체 충족 여부}}
- {{VER_SCOPE_2:예. 비기능 요구사항(NFR) 성능 기준 충족 여부}}
- {{VER_SCOPE_3:필요 없으면 삭제}}
## 검증 항목
| ID | 검증 항목 | 검증 방법 | 성공 기준 | 담당자 |
|----|---------|---------|---------|--------|
| VC-1 | {{VER_ITEM_1}} | {{VER_METHOD_1:수동\|자동\|혼합}} | {{VER_CRITERIA_1}} | {{VER_OWNER_1:TBD}} |
| VC-2 | {{VER_ITEM_2}} | {{VER_METHOD_2:수동\|자동\|혼합}} | {{VER_CRITERIA_2}} | {{VER_OWNER_2:TBD}} |
| VC-3 | {{VER_ITEM_3:필요 없으면 삭제}} | {{VER_METHOD_3:수동\|자동\|혼합}} | {{VER_CRITERIA_3}} | {{VER_OWNER_3:TBD}} |
| VC-4 | {{VER_ITEM_4:필요 없으면 삭제}} | {{VER_METHOD_4:수동\|자동\|혼합}} | {{VER_CRITERIA_4}} | {{VER_OWNER_4:TBD}} |
## 성공 기준 연결
Discovery의 성공 기준(S-N)과 검증 항목(VC-N)의 연결을 명시한다.
- S-1 → {{VER_S1_LINK:VC-1, VC-2 등}}
- S-2 → {{VER_S2_LINK:VC-3 등}}
- S-3 → {{VER_S3_LINK:필요 없으면 삭제}}
# 3. 검증 결과
검증 수행 후 각 항목의 결과를 기록한다. 초안 생성 시 모두 `미완료`로 초기화한다.
| ID | 검증 항목 | 결과 | 비고 |
|----|---------|------|------|
| VC-1 | {{VER_ITEM_1}} | {{VER_RESULT_1:미완료\|통과\|실패\|블로킹}} | {{VER_RESULT_NOTE_1:필요 없으면 삭제}} |
| VC-2 | {{VER_ITEM_2}} | {{VER_RESULT_2:미완료\|통과\|실패\|블로킹}} | {{VER_RESULT_NOTE_2:필요 없으면 삭제}} |
| VC-3 | {{VER_ITEM_3:필요 없으면 삭제}} | {{VER_RESULT_3:미완료\|통과\|실패\|블로킹}} | {{VER_RESULT_NOTE_3:필요 없으면 삭제}} |
## 전체 검증 결과
- 통과: {{VER_PASS_COUNT:0}} / {{VER_TOTAL_COUNT:0}}
- 실패/블로킹: {{VER_FAIL_COUNT:0}}
- 검증 완료 여부: {{VER_COMPLETE:false}}
# 4. 결함 및 재작업 사항
검증 중 발견된 결함과 재작업이 필요한 항목을 기록한다.
- BUG-1: {{BUG_1:없으면 "없음"}}
- 심각도: {{BUG_SEVERITY_1:Critical|High|Medium|Low}}
- 재작업 내용: {{BUG_FIX_1}}
- 상태: {{BUG_STATUS_1:Open|Fixed|Deferred}}
- BUG-2: {{BUG_2:필요 없으면 삭제}}
- 심각도: {{BUG_SEVERITY_2:Critical|High|Medium|Low}}
- 재작업 내용: {{BUG_FIX_2}}
- 상태: {{BUG_STATUS_2:Open|Fixed|Deferred}}
# 5. 리스크 및 오픈 질문
Verification 단계에서 새로 식별된 리스크와 오픈 질문을 기록한다.
## 리스크
- R-1 ({{VER_RISK_LEVEL_1:High|Medium|Low}}): {{VER_RISK_1}}
- 완화 방안: {{VER_MITIGATION_1}}
- R-2 ({{VER_RISK_LEVEL_2:High|Medium|Low}}): {{VER_RISK_2:필요 없으면 삭제}}
- 완화 방안: {{VER_MITIGATION_2:필요 없으면 삭제}}
## 오픈 질문
- OQ-1: {{VER_OPEN_QUESTION_1}}
- 상태: {{VER_OQ_STATUS_1:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{VER_OQ_ACTION_1}}
- 종료 조건: {{VER_OQ_EXIT_1}}
- OQ-2: {{VER_OPEN_QUESTION_2:필요 없으면 삭제}}
- 상태: {{VER_OQ_STATUS_2:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{VER_OQ_ACTION_2}}
- 종료 조건: {{VER_OQ_EXIT_2}}
# 6. Release로 넘기기 전 확인 체크
Release 단계로 넘기기 전에 무엇이 완료되어야 하는지 확인한다.
- [ ] 모든 검증 항목(VC-N) 통과
- 기준: {{CHECK_ALL_VC:VC 목록의 모든 항목이 "통과" 상태여야 한다}}
- [ ] 결함(BUG) `Open` 상태 없음
- 기준: {{CHECK_BUGS:BUG 목록에 `Open` 상태 항목이 0개여야 한다. `Deferred`는 근거와 함께 허용}}
- [ ] 성공 기준(S-N) 전체 충족
- 기준: {{CHECK_SUCCESS_CRITERIA:Discovery에서 정의된 S-N 기준이 모두 VC 항목과 연결되어 통과되었는가}}
- [ ] 모든 오픈 질문(OQ) `Open` 상태 없음 확인
- 기준: OQ 목록에 `Open` 상태 항목이 0개이거나, 잔여 항목 전부 `Deferred` 처리 완료
- [ ] Freeze 확정 담당자(CONFIRMED_BY) 지정
- 기준: {{CHECK_CONFIRMEDBY_CRITERIA:문서 승인 또는 인계 결정을 내릴 담당자가 명시되어야 한다}}
# 7. 파일 처리 결과
이 Verification 문서 생성/갱신 결과와 참조 문서를 기록한다.
- 처리 결과: {{FILE_RESULT:생성|갱신|미생성}}
- 생성 경로: {{OUTPUT_PATH}}
- 참조 문서:
- {{IMP_PATH:docs/sdlc/<CYCLE_ID>/4_implementation.md}}
- {{REFERENCE_1:필요 없으면 삭제}}
# 8. 사용자 결정 필요 항목 요약
사용자나 승인자가 결정해야 하는 항목만 모아 정리한다.
## DECIDE
- {{DECIDE_ITEM_1}}
- {{DECIDE_ITEM_2:필요 없으면 삭제}}
## CONFIRM
- {{CONFIRM_ITEM_1}}
- {{CONFIRM_ITEM_2:필요 없으면 삭제}}
## DATA
- {{DATA_ITEM_1}}
- {{DATA_ITEM_2:필요 없으면 삭제}}
# 9. Verification Freeze
Release 인계 시점의 확정 플래그와 섹션 참조만 기록한다. 내용 재작성 없이 원본 섹션을 링크로 대신한다.
## 섹션 참조
- 검증 계획: [# 2. 검증 계획](#2-검증-계획)
- 검증 결과: [# 3. 검증 결과](#3-검증-결과)
- 결함/재작업: [# 4. 결함 및 재작업 사항](#4-결함-및-재작업-사항)
## 확정 플래그
- Handoff Decision: {{FREEZE_HANDOFF_DECISION:보류}}
- Handoff Rationale: {{FREEZE_HANDOFF_RATIONALE:검증 완료 및 결함 없음 확인 후 Release로 인계}}
- Ready for Release: {{READY_FOR_RELEASE:false}}
- Confirmed By: {{CONFIRMED_BY:TBD}}
- Confirmed At (KST): {{CONFIRMED_AT_KST:TBD}}
---
# 10. 작성 가이드
*이 섹션은 작성 참고용이다. 문서 완성 후 삭제해도 된다.*
- **검증 항목(VC-N)**: Discovery 성공 기준(S-N)과 반드시 연결한다. FR/NFR 각 항목이 하나 이상의 VC와 연결되어야 한다.
- **검증 방법**: 수동(테스터가 직접 실행), 자동(CI/테스트 코드), 혼합(일부 자동 + 수동 확인) 중 선택한다.
- **성공 기준**: "정상 동작"처럼 모호한 표현 대신 "입력 X에 대해 결과 Y를 반환한다"처럼 측정 가능하게 작성한다.
- **결함(BUG)**: 검증 중 발견된 모든 문제를 기록한다. `Deferred` 처리 시 근거와 후속 처리 계획을 명시한다.
- **Freeze 섹션**: 모든 VC 통과 및 BUG `Open` 없음 확인 후 담당자가 직접 갱신한다.
+162
View File
@@ -0,0 +1,162 @@
# 0. 문서 상태
이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다.
- 상태: {{DOC_STATUS:draft|review|confirmed}}
- 문서 ID: {{CYCLE_ID:sdlc-<3자리>_<YYYYMMDD>_<topic-slug>}}
- 이슈명: {{ISSUE_NAME:짧은 한글 또는 영문 이슈명}}
- 참조 Verification: {{VER_PATH:docs/sdlc/<CYCLE_ID>/5_verification.md}}
- 작성 시각(KST): {{CREATED_AT_KST:TBD}}
- 마지막 갱신 시각(KST): {{UPDATED_AT_KST:TBD}}
# 1. Verification 인계 요약
Verification에서 완료된 핵심 내용을 요약한다. 원본은 5_verification.md를 참조하며, 이 섹션은 Release 작업의 입력 기준선이 된다.
## 이슈 목적
- {{REL_ISSUE_PURPOSE:Verification 이슈명과 핵심 목적 1-2줄}}
## 검증 결과 요약
- 검증 항목 수: {{REL_VC_TOTAL}}개
- 전체 통과 여부: {{REL_VC_ALL_PASS:true|false}}
- 결함(BUG) 잔여: {{REL_BUG_REMAIN:0}}건
## 이월된 오픈 질문 / 리스크
Verification에서 `Deferred` 처리되어 Release 단계에서 해소해야 하는 항목을 기록한다.
- {{REL_DEFERRED_ITEM_1:없으면 "없음"}}
- {{REL_DEFERRED_ITEM_2:필요 없으면 삭제}}
# 2. 배포 준비
배포 환경, 배포 전 체크리스트, 배포 순서를 정의한다.
## 배포 환경
- 대상 환경: {{REL_TARGET_ENV:예. production, staging}}
- 배포 방식: {{REL_DEPLOY_METHOD:예. git push, CI/CD 파이프라인, 수동 복사}}
- 배포 도구/채널: {{REL_DEPLOY_TOOL:예. GitHub Actions, 수동 SSH, 없음}}
## 배포 전 체크리스트
배포 실행 전에 확인해야 할 항목을 나열한다.
- [ ] {{REL_PRE_CHECK_1:예. 대상 환경 설정 파일 백업 완료}}
- [ ] {{REL_PRE_CHECK_2:예. 롤백 계획 확인 완료}}
- [ ] {{REL_PRE_CHECK_3:필요 없으면 삭제}}
## 배포 순서
변경 사항의 배포 순서를 적는다. 의존 관계가 있는 경우 순서를 명확히 기술한다.
1. {{REL_STEP_1:예. 설정 파일 배포}}
2. {{REL_STEP_2:예. 코드 변경 배포}}
3. {{REL_STEP_3:필요 없으면 삭제}}
# 3. 롤백 계획
배포 후 문제가 발생했을 때 이전 상태로 되돌리는 방법을 기술한다.
## 롤백 조건
아래 조건 중 하나라도 충족되면 롤백을 즉시 실행한다.
- {{REL_ROLLBACK_TRIGGER_1:예. 배포 후 핵심 기능 오류 발생}}
- {{REL_ROLLBACK_TRIGGER_2:예. 성능 지표가 임계값 이하로 하락}}
- {{REL_ROLLBACK_TRIGGER_3:필요 없으면 삭제}}
## 롤백 절차
1. {{REL_ROLLBACK_STEP_1:예. 이전 버전 파일/설정 복원}}
2. {{REL_ROLLBACK_STEP_2:예. 배포 채널에서 롤백 실행}}
3. {{REL_ROLLBACK_STEP_3:필요 없으면 삭제}}
## 롤백 담당자
- {{REL_ROLLBACK_OWNER:TBD}}
# 4. 배포 후 확인
배포 완료 후 정상 동작을 확인하는 방법을 기술한다.
## 스모크 테스트 항목
| 항목 | 확인 방법 | 성공 기준 |
|------|---------|---------|
| {{REL_SMOKE_ITEM_1}} | {{REL_SMOKE_METHOD_1}} | {{REL_SMOKE_CRITERIA_1}} |
| {{REL_SMOKE_ITEM_2}} | {{REL_SMOKE_METHOD_2}} | {{REL_SMOKE_CRITERIA_2}} |
| {{REL_SMOKE_ITEM_3:필요 없으면 삭제}} | {{REL_SMOKE_METHOD_3}} | {{REL_SMOKE_CRITERIA_3}} |
## 모니터링 확인 항목
배포 후 일정 시간 동안 모니터링해야 하는 지표나 로그를 기록한다.
- {{REL_MONITOR_1:예. 오류 로그 발생 여부 확인 (1시간)}}
- {{REL_MONITOR_2:필요 없으면 삭제}}
# 5. 리스크 및 오픈 질문
Release 단계에서 새로 식별된 리스크와 오픈 질문을 기록한다.
## 리스크
- R-1 ({{REL_RISK_LEVEL_1:High|Medium|Low}}): {{REL_RISK_1}}
- 완화 방안: {{REL_MITIGATION_1}}
- R-2 ({{REL_RISK_LEVEL_2:High|Medium|Low}}): {{REL_RISK_2:필요 없으면 삭제}}
- 완화 방안: {{REL_MITIGATION_2:필요 없으면 삭제}}
## 오픈 질문
- OQ-1: {{REL_OPEN_QUESTION_1}}
- 상태: {{REL_OQ_STATUS_1:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{REL_OQ_ACTION_1}}
- 종료 조건: {{REL_OQ_EXIT_1}}
- OQ-2: {{REL_OPEN_QUESTION_2:필요 없으면 삭제}}
- 상태: {{REL_OQ_STATUS_2:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{REL_OQ_ACTION_2}}
- 종료 조건: {{REL_OQ_EXIT_2}}
# 6. Operations로 넘기기 전 확인 체크
Operations 단계로 넘기기 전에 무엇이 완료되어야 하는지 확인한다.
- [ ] 배포 완료 및 스모크 테스트 통과
- 기준: {{CHECK_DEPLOY:배포 절차대로 실행되었고 스모크 테스트 전 항목이 통과되었는가}}
- [ ] 롤백 계획 확정
- 기준: {{CHECK_ROLLBACK:롤백 조건, 절차, 담당자가 모두 명시되었는가}}
- [ ] 모든 오픈 질문(OQ) `Open` 상태 없음 확인
- 기준: OQ 목록에 `Open` 상태 항목이 0개이거나, 잔여 항목 전부 `Deferred` 처리 완료
- [ ] Freeze 확정 담당자(CONFIRMED_BY) 지정
- 기준: {{CHECK_CONFIRMEDBY_CRITERIA:문서 승인 또는 인계 결정을 내릴 담당자가 명시되어야 한다}}
# 7. 파일 처리 결과
이 Release 문서 생성/갱신 결과와 참조 문서를 기록한다.
- 처리 결과: {{FILE_RESULT:생성|갱신|미생성}}
- 생성 경로: {{OUTPUT_PATH}}
- 참조 문서:
- {{VER_PATH:docs/sdlc/<CYCLE_ID>/5_verification.md}}
- {{REFERENCE_1:필요 없으면 삭제}}
# 8. 사용자 결정 필요 항목 요약
사용자나 승인자가 결정해야 하는 항목만 모아 정리한다.
## DECIDE
- {{DECIDE_ITEM_1}}
- {{DECIDE_ITEM_2:필요 없으면 삭제}}
## CONFIRM
- {{CONFIRM_ITEM_1}}
- {{CONFIRM_ITEM_2:필요 없으면 삭제}}
## DATA
- {{DATA_ITEM_1}}
- {{DATA_ITEM_2:필요 없으면 삭제}}
# 9. Release Freeze
Operations 인계 시점의 확정 플래그와 섹션 참조만 기록한다. 내용 재작성 없이 원본 섹션을 링크로 대신한다.
## 섹션 참조
- 배포 준비: [# 2. 배포 준비](#2-배포-준비)
- 롤백 계획: [# 3. 롤백 계획](#3-롤백-계획)
- 배포 후 확인: [# 4. 배포 후 확인](#4-배포-후-확인)
## 확정 플래그
- Handoff Decision: {{FREEZE_HANDOFF_DECISION:보류}}
- Handoff Rationale: {{FREEZE_HANDOFF_RATIONALE:배포 완료 및 스모크 테스트 통과 후 Operations로 인계}}
- Ready for Operations: {{READY_FOR_OPERATIONS:false}}
- Confirmed By: {{CONFIRMED_BY:TBD}}
- Confirmed At (KST): {{CONFIRMED_AT_KST:TBD}}
---
# 10. 작성 가이드
*이 섹션은 작성 참고용이다. 문서 완성 후 삭제해도 된다.*
- **배포 방식**: git 기반 프로젝트는 커밋 해시, 브랜치, 태그를 명시하면 롤백이 쉽다.
- **롤백 계획**: "문제가 생기면 롤백한다"가 아니라 구체적인 조건, 절차, 담당자를 미리 정의한다.
- **스모크 테스트**: 배포 직후 서비스가 최소한 동작하는지 확인하는 핵심 시나리오만 포함한다. 전체 기능 검증은 Verification 단계에서 완료한 것을 전제로 한다.
- **모니터링**: 배포 후 지켜봐야 하는 지표(오류율, 응답 시간, 로그 패턴 등)를 구체적으로 기록한다.
+154
View File
@@ -0,0 +1,154 @@
# 0. 문서 상태
이 문서의 현재 상태와 식별 정보를 기록한다. 문서 추적과 승인 흐름에 필요한 최소 메타데이터를 적는다.
- 상태: {{DOC_STATUS:draft|review|confirmed}}
- 문서 ID: {{CYCLE_ID:sdlc-<3자리>_<YYYYMMDD>_<topic-slug>}}
- 이슈명: {{ISSUE_NAME:짧은 한글 또는 영문 이슈명}}
- 참조 Release: {{REL_PATH:docs/sdlc/<CYCLE_ID>/6_release.md}}
- 작성 시각(KST): {{CREATED_AT_KST:TBD}}
- 마지막 갱신 시각(KST): {{UPDATED_AT_KST:TBD}}
# 1. Release 인계 요약
Release에서 완료된 핵심 내용을 요약한다. 원본은 6_release.md를 참조하며, 이 섹션은 Operations 작업의 입력 기준선이 된다.
## 이슈 목적
- {{OPS_ISSUE_PURPOSE:Release 이슈명과 핵심 목적 1-2줄}}
## 배포 결과 요약
- 배포 환경: {{OPS_DEPLOY_ENV:예. production}}
- 배포 완료 시각(KST): {{OPS_DEPLOYED_AT:TBD}}
- 스모크 테스트 결과: {{OPS_SMOKE_RESULT:통과|일부 실패|미완료}}
## 이월된 오픈 질문 / 리스크
Release에서 `Deferred` 처리되어 Operations 단계에서 해소해야 하는 항목을 기록한다.
- {{OPS_DEFERRED_ITEM_1:없으면 "없음"}}
- {{OPS_DEFERRED_ITEM_2:필요 없으면 삭제}}
# 2. 운영 모니터링
배포 후 지속적으로 모니터링해야 하는 항목과 기준을 정의한다.
## 모니터링 항목
| 항목 | 확인 방법 | 임계값 / 이상 기준 | 대응 방안 |
|------|---------|----------------|---------|
| {{OPS_MONITOR_ITEM_1}} | {{OPS_MONITOR_METHOD_1}} | {{OPS_MONITOR_THRESHOLD_1}} | {{OPS_MONITOR_ACTION_1}} |
| {{OPS_MONITOR_ITEM_2}} | {{OPS_MONITOR_METHOD_2}} | {{OPS_MONITOR_THRESHOLD_2}} | {{OPS_MONITOR_ACTION_2}} |
| {{OPS_MONITOR_ITEM_3:필요 없으면 삭제}} | {{OPS_MONITOR_METHOD_3}} | {{OPS_MONITOR_THRESHOLD_3}} | {{OPS_MONITOR_ACTION_3}} |
## 모니터링 담당자
- {{OPS_MONITOR_OWNER:TBD}}
# 3. 운영 절차 (런북)
이 변경 사항과 관련된 운영 중 발생할 수 있는 상황별 대응 절차를 정의한다.
## 정상 운영 확인 절차
배포 후 일정 주기로 정상 동작을 확인하는 절차를 기술한다.
1. {{OPS_ROUTINE_STEP_1:예. 오류 로그 확인 (일 1회)}}
2. {{OPS_ROUTINE_STEP_2:필요 없으면 삭제}}
## 장애 대응 절차
이 변경과 관련된 장애가 발생했을 때의 초기 대응 절차를 기술한다.
1. {{OPS_INCIDENT_STEP_1:예. 오류 로그에서 관련 스택 트레이스 확인}}
2. {{OPS_INCIDENT_STEP_2:예. 롤백 판단 기준 확인 후 롤백 또는 핫픽스 결정}}
3. {{OPS_INCIDENT_STEP_3:필요 없으면 삭제}}
## 에스컬레이션 경로
장애 대응 중 에스컬레이션이 필요한 경우 연락 대상을 기록한다.
- {{OPS_ESCALATION_1:TBD}}
# 4. 운영 중 발생한 이슈
운영 중 발견된 이슈를 기록한다. 초안 생성 시 비워 두고 운영 중 갱신한다.
- {{OPS_ISSUE_1:없음 (운영 중 발견 시 기록)}}
# 5. 리스크 및 오픈 질문
Operations 단계에서 새로 식별된 리스크와 오픈 질문을 기록한다.
## 리스크
- R-1 ({{OPS_RISK_LEVEL_1:High|Medium|Low}}): {{OPS_RISK_1}}
- 완화 방안: {{OPS_MITIGATION_1}}
- R-2 ({{OPS_RISK_LEVEL_2:High|Medium|Low}}): {{OPS_RISK_2:필요 없으면 삭제}}
- 완화 방안: {{OPS_MITIGATION_2:필요 없으면 삭제}}
## 오픈 질문
- OQ-1: {{OPS_OPEN_QUESTION_1}}
- 상태: {{OPS_OQ_STATUS_1:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{OPS_OQ_ACTION_1}}
- 종료 조건: {{OPS_OQ_EXIT_1}}
- OQ-2: {{OPS_OPEN_QUESTION_2:필요 없으면 삭제}}
- 상태: {{OPS_OQ_STATUS_2:Open|Answered|Deferred|Dropped}}
- 처리 방안: {{OPS_OQ_ACTION_2}}
- 종료 조건: {{OPS_OQ_EXIT_2}}
# 6. 다음 Discovery 환류
운영 중 발견된 인사이트와 개선 사항을 다음 SDLC Discovery의 입력으로 기록한다.
- {{OPS_FEEDBACK_1:없으면 "없음"}}
- {{OPS_FEEDBACK_2:필요 없으면 삭제}}
- {{OPS_FEEDBACK_3:필요 없으면 삭제}}
# 7. 확인 체크
Operations 문서가 완성되었는지 확인한다.
- [ ] 모니터링 항목 및 임계값 정의 완료
- 기준: {{CHECK_MONITORING:모니터링 항목에 임계값과 대응 방안이 명시되어야 한다}}
- [ ] 런북(정상 운영/장애 대응 절차) 정의 완료
- 기준: {{CHECK_RUNBOOK:운영 중 발생 가능한 상황에 대한 절차가 1단계 이상 있어야 한다}}
- [ ] 에스컬레이션 경로 정의 완료
- 기준: {{CHECK_ESCALATION:장애 시 연락할 담당자가 명시되어야 한다}}
- [ ] 다음 Discovery 환류 항목 작성 (없으면 "없음" 기재)
- 기준: OPS_FEEDBACK 항목이 "없음"이 아닐 경우 구체적으로 기술되었는가
- [ ] Freeze 확정 담당자(CONFIRMED_BY) 지정
- 기준: {{CHECK_CONFIRMEDBY_CRITERIA:문서 승인 담당자가 명시되어야 한다}}
# 8. 파일 처리 결과
이 Operations 문서 생성/갱신 결과와 참조 문서를 기록한다.
- 처리 결과: {{FILE_RESULT:생성|갱신|미생성}}
- 생성 경로: {{OUTPUT_PATH}}
- 참조 문서:
- {{REL_PATH:docs/sdlc/<CYCLE_ID>/6_release.md}}
- {{REFERENCE_1:필요 없으면 삭제}}
# 9. 사용자 결정 필요 항목 요약
사용자나 승인자가 결정해야 하는 항목만 모아 정리한다.
## DECIDE
- {{DECIDE_ITEM_1}}
- {{DECIDE_ITEM_2:필요 없으면 삭제}}
## CONFIRM
- {{CONFIRM_ITEM_1}}
- {{CONFIRM_ITEM_2:필요 없으면 삭제}}
## DATA
- {{DATA_ITEM_1}}
- {{DATA_ITEM_2:필요 없으면 삭제}}
# 10. Operations Freeze
이 SDLC 주기의 최종 확정 플래그를 기록한다.
## 섹션 참조
- 운영 모니터링: [# 2. 운영 모니터링](#2-운영-모니터링)
- 런북: [# 3. 운영 절차 런북](#3-운영-절차-런북)
- 다음 Discovery 환류: [# 6. 다음 Discovery 환류](#6-다음-discovery-환류)
## 확정 플래그
- Handoff Decision: {{FREEZE_HANDOFF_DECISION:보류}}
- Handoff Rationale: {{FREEZE_HANDOFF_RATIONALE:모니터링 안정화 및 런북 완비 후 주기 완료}}
- SDLC 주기 완료: {{SDLC_CYCLE_COMPLETE:false}}
- Confirmed By: {{CONFIRMED_BY:TBD}}
- Confirmed At (KST): {{CONFIRMED_AT_KST:TBD}}
---
# 11. 작성 가이드
*이 섹션은 작성 참고용이다. 문서 완성 후 삭제해도 된다.*
- **모니터링 항목**: "오류가 없는지 확인"처럼 모호한 기준 대신 "5xx 오류율 1% 이상 시 알림" 같이 수치화된 임계값을 명시한다.
- **런북**: 실제 운영자가 참고할 수 있도록 구체적인 명령, 경로, 연락처를 기록한다.
- **다음 Discovery 환류**: 이 주기에서 발견된 기술 부채, 개선 아이디어, 범위에서 제외된 요구사항 등을 기록한다. 이 항목이 다음 `/new-sdlc` 의 입력이 된다.
- **SDLC 주기 완료**: 모니터링 안정화 기간(배포 후 일정 시간 경과, 이상 없음) 확인 후 `true`로 변경한다.
+12
View File
@@ -0,0 +1,12 @@
# {{CYCLE_ID}}
| 단계 | 문서 | 상태 |
|------|------|------|
| 1. Discovery | [1_discovery.md](./1_discovery.md) | `draft` |
| 2. Planning | [2_planning.md](./2_planning.md) | `-` |
| 3. Design | [3_design.md](./3_design.md) | `-` |
| 4. Implementation | [4_implementation.md](./4_implementation.md) | `-` |
| 5. Verification | [5_verification.md](./5_verification.md) | `-` |
| 6. Release | [6_release.md](./6_release.md) | `-` |
| 7. Operations | [7_operations.md](./7_operations.md) | `-` |
| Summary | [summary.md](./summary.md) | `-` |
+16
View File
@@ -0,0 +1,16 @@
# Summary - {{CYCLE_ID:sdlc-<3자리>_<YYYYMMDD>_<topic-slug>}}
- 이슈명: {{ISSUE_NAME:짧은 한글 또는 영문 이슈명}}
- 상태: {{SUMMARY_STATUS:draft|review|confirmed}}
- 작성 시각(KST): {{CREATED_AT_KST:TBD}}
- 마지막 갱신 시각(KST): {{UPDATED_AT_KST:TBD}}
## 핵심 요약
- {{SUMMARY_POINT_1}}
- {{SUMMARY_POINT_2:필요 없으면 삭제}}
## 단계별 문서
- [Discovery](./1_discovery.md)
- [Index](./index.md)