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