문제 › 101

101. 미니 레디스

Hard 바이브코딩 MCPDatabaseKeyValue
문제 설명
[문제] 미니 Redis MCP 서버를 구현한다. Redis는 키(key)에 값(value)을 저장해 두고 빠르게 꺼내 쓰는 키-값 저장소다. 여기서는 단순화하여 문자열 키에 문자열 값을 저장하고, 키별로 만료 시간(초)을 메타데이터로 기록할 수 있게 한다. 단, 실제 시간 경과에 따른 만료는 구현하지 않는다(시간에 의존해 채점이 불안정해지므로 만료 시간은 저장만 한다). 서버는 키 -> 값 저장소를 유지하며, 시작 시 비어 있다. [구현할 함수] - set_value(key: str, value: str) -> int 키에 값을 저장한다(기존 키면 덮어쓴다). 저장 후 전체 키 개수를 반환한다. - get_value(key: str) -> str 키의 값을 반환한다. 키가 없으면 빈 문자열. - set_expiry(key: str, expiry: int) -> bool 키의 만료 시간(초)을 메타데이터로 설정한다. 키가 존재하면 True, 없으면 False. (실제 만료는 검증하지 않는다.) - keys() -> 문자열 배열 저장된 모든 키의 배열을 반환한다. 없으면 빈 배열. [입력·상태] 키·값은 문자열, expiry는 정수(초)다. 저장소는 호출 간에 유지된다. [제약] - 존재하지 않는 키에 대한 get_value는 빈 문자열, set_expiry는 False를 반환한다. - 같은 키에 set_value를 다시 호출하면 값만 바뀌고 키 개수는 늘지 않는다. [예시] set_value("k", "v"), get_value("k") -> "v" set_value("k", "v"), keys() -> ["k"] set_value("k", "v"), set_expiry("k", 10) -> true (빈 상태) get_value("없음") -> "" (빈 상태) set_expiry("없음", 10) -> false (빈 상태) keys() -> []
로그인하고 풀기 AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.