091. JSON 스키마 검증기
Hard
바이브코딩
MCPJSONValidation
문제 설명
[문제]
간단한 JSON 스키마 검증기 MCP 서버를 구현한다.
스키마(schema)란 데이터가 갖춰야 할 모양을 정해 둔 규칙이다. 여기서는 "반드시 있어야 하는 필드 목록(required_fields)"만 다룬다. 예를 들어 필수 필드가 ["name", "age"]라면, 검사 대상 데이터에 name과 age 키가 모두 있어야 통과한다. 서버는 한 벌의 스키마를 보관하고, 들어온 데이터가 그 스키마를 만족하는지 검사하며, 빠진 필드를 알려준다.
[구현할 함수]
- define_schema(required_fields: array<string>) -> int
필수 필드 목록을 받아 스키마로 설정한다. 설정 후 필수 필드 개수를 반환한다.
- validate_data(data: dict) -> bool
data가 스키마의 모든 필수 필드를 포함하면 True를 반환한다. 스키마가 아직 설정되지 않았으면 False를 반환한다.
- get_errors(data: dict) -> array<string>
data에서 빠진 필수 필드들의 배열을 반환한다. 스키마가 설정되지 않았으면 빈 배열 []을 반환한다.
[입력·상태]
서버는 필수 필드 목록(스키마) 한 벌을 유지한다. 초기에는 스키마가 설정되지 않은(빈) 상태다. data는 키-값 형태의 객체(dict)다.
[제약]
- required_fields의 각 원소와 빠진 필드는 모두 문자열이다.
- 스키마가 없는 상태에서는 validate_data는 False, get_errors는 []를 반환한다.
[예시]
define_schema(["name", "age"]) -> 2
(아래는 초기 빈 스키마 상태에서)
validate_data({"name": "A"}) -> False # 스키마 없음
get_errors({"name": "A"}) -> [] # 스키마 없음
로그인하고 풀기
AI가 자동 채점하고 즉시 정답·해설을 알려줘요. 무료.