{ "schemaVersion": "1.0", "title": "피처 플래그 관리 시스템", "lang": "ko", "prd": { "oneLiner": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "goal": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "whyNow": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "category": "사내 운영 시스템", "platforms": [ "웹" ], "problem": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "solution": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "alternatives": "이메일, 메신저, 스프레드시트, 수동 대장", "differentiator": "요청·처리·운영 데이터를 하나의 연결된 기준으로 관리한다.", "targets": [ { "name": "기능을 출시·실험하는 제품·개발팀", "role": "요청자·실무 사용자", "needs": "필요한 업무를 빠르게 등록하고 상태를 알고 싶다.", "pain": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다." }, { "name": "플랫폼·릴리스 운영 담당자", "role": "운영 관리자", "needs": "처리 우선순위와 이력을 관리하고 지표를 확인하고 싶다.", "pain": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다." }, { "name": "시스템·정책 관리자", "role": "운영·보안 관리자", "needs": "권한, 정책, 감사 기록을 관리하고 싶다.", "pain": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다." } ], "scenarios": [ { "text": "실무 사용자는 필요한 업무를 등록하고 상태를 확인한다.", "start": "P1" }, { "text": "운영 담당자는 대기 업무를 처리하고 예외를 조치한다.", "start": "P5" }, { "text": "시스템·정책 관리자는 정책과 권한을 검토한다.", "start": "P9" }, { "text": "시스템·정책 관리자는 감사 기록과 운영 지표를 검토한다.", "start": "P10" } ], "northStar": "기한 내 완료된 운영 요청 비율", "kpis": [ { "name": "기한 내 처리 비율", "target": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "baseline": "측정 전", "method": "상태 변경과 목표 기한을 월별 집계", "refs": [ "F6" ] }, { "name": "운영 가시성", "target": "핵심 업무 100% 추적", "baseline": "측정 전", "method": "등록 기록과 리포트 연결 비율", "refs": [ "F11" ] }, { "name": "감사 가능 운영 비율", "target": "핵심 변경 100% 기록", "baseline": "측정 전", "method": "감사 로그와 변경 이력 월별 점검", "refs": [ "F12" ] } ], "inScope": [ "피처 플래그와 대상 규칙 등록", "플래그·환경·대상·변경 이력 조회", "검토·승인·점진 출시·중단·정리 처리", "플래그 사용·실험·출시 위험 리포트", "피처 플래그와 대상 규칙 등록 유효성·중복 검증", "검색·필터·이력 관리", "담당자·우선순위·SLA 관리", "승인·정책 검토", "예외·반려·재처리", "알림·구독 관리", "외부 연동·데이터 동기화", "역할·권한·감사 관리" ], "nonGoals": [ "외부 고객 포털", "회계·급여 등 인접 시스템 전체 대체" ], "assumptions": [ "사용자와 조직 정보는 사내 SSO에서 제공된다.", "운영 정책과 분류 기준을 담당자가 관리한다." ], "risks": [ "초기 분류와 운영 기준이 불명확하면 잘못된 처리로 이어질 수 있다.", "기준 데이터가 갱신되지 않으면 운영 신뢰가 떨어진다." ], "openQuestions": [ "긴급 처리 기준과 승인 절차는 무엇인가?", "완료 후 검증과 재오픈 기준은 무엇인가?" ], "constraints": [ "상태·담당자·우선순위 변경은 감사 로그로 남긴다.", "접근 권한은 역할별로 제한한다.", "권한, 정책, 상태 변경은 감사 로그로 남긴다." ] }, "requirements": [ { "id": "R1", "title": "접수와 데이터 품질", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F1", "title": "피처 플래그와 대상 규칙 등록", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "피처 플래그와 대상 규칙 등록 기본 처리 규칙", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "피처 플래그와 대상 규칙 등록 예외·감사 처리", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F2", "title": "피처 플래그와 대상 규칙 등록 유효성·중복 검증", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "피처 플래그와 대상 규칙 등록 유효성·중복 검증 기본 처리 규칙", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "피처 플래그와 대상 규칙 등록 유효성·중복 검증 예외·감사 처리", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R2", "title": "업무 기록과 검색", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F3", "title": "플래그·환경·대상·변경 이력 조회", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "플래그·환경·대상·변경 이력 조회 기본 처리 규칙", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "플래그·환경·대상·변경 이력 조회 예외·감사 처리", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F4", "title": "검색·필터·이력 관리", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "검색·필터·이력 관리 기본 처리 규칙", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "검색·필터·이력 관리 예외·감사 처리", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R3", "title": "처리와 책임", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F5", "title": "검토·승인·점진 출시·중단·정리 처리", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "검토·승인·점진 출시·중단·정리 처리 기본 처리 규칙", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "검토·승인·점진 출시·중단·정리 처리 예외·감사 처리", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F6", "title": "담당자·우선순위·SLA 관리", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "담당자·우선순위·SLA 관리 기본 처리 규칙", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "담당자·우선순위·SLA 관리 예외·감사 처리", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R4", "title": "승인과 예외", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F7", "title": "승인·정책 검토", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "승인·정책 검토 기본 처리 규칙", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "승인·정책 검토 예외·감사 처리", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F8", "title": "예외·반려·재처리", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "예외·반려·재처리 기본 처리 규칙", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "예외·반려·재처리 예외·감사 처리", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R5", "title": "알림과 연동", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F9", "title": "알림·구독 관리", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "알림·구독 관리 기본 처리 규칙", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "알림·구독 관리 예외·감사 처리", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F10", "title": "외부 연동·데이터 동기화", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "외부 연동·데이터 동기화 기본 처리 규칙", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "외부 연동·데이터 동기화 예외·감사 처리", "desc": "플래그 정의, 환경, 대상 규칙, 승인, 점진 출시, 감사 이력, 만료 정리를 연결한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] }, { "id": "R6", "title": "운영 분석과 통제", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "features": [ { "id": "F11", "title": "플래그 사용·실험·출시 위험 리포트", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "status": "todo", "priority": "high", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "플래그 사용·실험·출시 위험 리포트 기본 처리 규칙", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "플래그 사용·실험·출시 위험 리포트 예외·감사 처리", "desc": "기능 공개 조건과 대상, 롤백 결정이 코드·메신저·문서에 흩어져 출시 위험과 기술 부채가 커진다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] }, { "id": "F12", "title": "역할·권한·감사 관리", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "status": "todo", "priority": "mid", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ], "specs": [ { "title": "역할·권한·감사 관리 기본 처리 규칙", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] }, { "title": "역할·권한·감사 관리 예외·감사 처리", "desc": "위험한 기능 출시의 롤백 시간을 줄이고 만료 플래그를 95% 이상 정리한다. 변경·실패·재처리 조건과 이력을 남긴다.", "acceptance": [ { "text": "필수 정보, 변경 이력, 담당자와 상태가 감사 가능하게 기록된다.", "done": false } ] } ] } ] } ], "ia": { "sections": [ { "id": "S1", "title": "접수와 데이터 품질", "pages": [ { "id": "P1", "title": "운영 대시보드", "type": "top", "refs": [ "F1", "F1:0", "F3", "F4:0", "F7:1", "F11" ], "children": [] }, { "id": "P2", "title": "업무 목록", "type": "page", "refs": [ "F3", "F3:0", "F4", "F1:0", "F4:1", "F8", "F11:0" ], "children": [] }, { "id": "P3", "title": "등록 화면", "type": "page", "refs": [ "F1", "F1:1", "F2", "F5", "F8:0", "F11:1" ], "children": [] } ] }, { "id": "S2", "title": "업무 기록과 검색", "pages": [ { "id": "P4", "title": "상세 기록", "type": "page", "refs": [ "F3:1", "F4:1", "F11", "F2", "F5:0", "F8:1", "F12" ], "children": [] }, { "id": "P5", "title": "처리 작업 공간", "type": "page", "refs": [ "F5", "F5:0", "F6", "F2:0", "F5:1", "F9", "F12:0" ], "children": [] } ] }, { "id": "S3", "title": "처리와 책임", "pages": [ { "id": "P6", "title": "승인·예외 큐", "type": "page", "refs": [ "F7", "F7:0", "F8", "F2:1", "F6", "F9:0", "F12:1" ], "children": [] }, { "id": "P7", "title": "알림·연동", "type": "page", "refs": [ "F9", "F9:0", "F10", "F3", "F6:0", "F9:1" ], "children": [] } ] }, { "id": "S4", "title": "운영 분석과 통제", "pages": [ { "id": "P8", "title": "운영 리포트", "type": "page", "refs": [ "F11", "F11:0", "F3:0", "F6:1", "F10" ], "children": [] }, { "id": "P9", "title": "정책·권한 설정", "type": "page", "refs": [ "F10:1", "F12", "F3:1", "F7", "F10:0" ], "children": [] }, { "id": "P10", "title": "감사 로그", "type": "page", "refs": [ "F8:1", "F12:0", "F12:1", "F4", "F7:0", "F10:1" ], "children": [] } ] } ] }, "flow": { "start": "P1", "transitions": [ { "from": "P1", "to": "P2", "ref": "F1" }, { "from": "P2", "to": "P3", "ref": "F2" }, { "from": "P3", "to": "P4", "ref": "F3" }, { "from": "P4", "to": "P5", "ref": "F4" }, { "from": "P5", "to": "P6", "ref": "F5" }, { "from": "P5", "to": "P6", "ref": "F7" }, { "from": "P6", "to": "P5", "ref": "F8" }, { "from": "P5", "to": "P7", "ref": "F6" }, { "from": "P7", "to": "P8", "ref": "F9" }, { "from": "P8", "to": "P9", "ref": "F10" }, { "from": "P9", "to": "P10", "ref": "F12" }, { "from": "P10", "to": "P4", "ref": "F11" }, { "from": "P4", "to": "P1", "label": "운영 현황 갱신" } ] } }