201. PRD 기반 이슈 트래커
Medium
바이브코딩
Vibe ContestVibe HackathonMCPProject ManagementCRUD
문제 설명
[문제]
팀의 이슈(할 일/버그 항목)를 관리하는 이슈 트래커 MCP 서버를 구현한다. 서버 인스턴스 안에 이슈 목록을 리스트로 유지하며, 각 이슈는 {id, title, priority, assignee, status} 형태다. 새 이슈가 생기면 status 초기값은 "open" 이다. 초기 상태에는 이슈가 하나도 없다.
[구현할 함수]
- create_issue(title: str, description: str, priority: str, assignee: str) -> int
제목, 설명, 우선순위(high/medium/low), 담당자를 받아 이슈를 새로 만든다. 이슈 id 는 1부터 시작해 만들 때마다 1씩 자동 증가하며, 새로 부여된 이슈 id 를 반환한다.
- get_issues(status: str, priority: str) -> int
필터에 맞는 이슈 개수를 반환한다. status, priority 가 둘 다 빈 문자열이면 전체 이슈 수를 반환하고, 값이 주어지면 그 값에 일치하는 이슈만 센다.
- update_status(issue_id: int, status: str) -> bool
해당 id 의 이슈 상태를 바꾼다. 상태는 open, in_progress, resolved, closed 중 하나다. 성공하면 True, 존재하지 않는 id 면 False 를 반환한다.
- assign_issue(issue_id: int, assignee: str) -> bool
해당 id 의 이슈 담당자를 바꾼다. 성공하면 True, 존재하지 않는 id 면 False 를 반환한다.
- get_summary() -> List[int]
[전체 이슈 수, open 상태 수, in_progress 상태 수, closed 상태 수] 형태의 정수 배열을 반환한다.
[입력/상태]
서버는 이슈 리스트를 유지한다. id 는 1부터 자동 증가하는 정수다.
[제약]
- 초기 상태에는 이슈가 없다(get_summary 는 [0,0,0,0]).
- 존재하지 않는 issue_id 에 대한 변경은 False 를 반환한다.
[예시] (각 예시는 초기 빈 상태에서 시작)
create_issue("로그인 버그", "...", "high", "김개발") -> 1 # 첫 이슈 id
get_issues("open", "") -> 0 # 등록 전 상태
update_status(999, "in_progress") -> False # 없는 id
assign_issue(999, "박서버") -> False # 없는 id
get_summary() -> [0, 0, 0, 0] # 빈 상태
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.