문제 › 091

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