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