문제 › 201

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가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.