🚀 94sssh
Published on

2026.03.22

[실전 API 설계] - 19. 고급 JSON 스키마를 활용한 입력값 유효성 검증

19.2. 유효성 검증 세부 기능

19.2.1. readOnly, writeOnly 프로퍼티

JSON 스키마의 readOnly 값이 true면 읽기 전용, false면 읽기, 쓰기가 모두 가능하다.

writeOnly 값이 true면 값 변경만 가능, 읽을 수는 없음. false면 쓰기, 읽기 모두 가능

필드truefalse주 용도
readOnly읽기만 가능읽기, 쓰기 가능응답에만 사용(ID)
writeOnly쓰기만 가능읽기, 쓰기 가능요청 본문에만 사용(비밀번호)

둘 모두 기본값은 false다.

19.2.2. 숫자 제약사항 강제

키워드용도경곗값 포함
maximum상한값 정의o
minimum하한값 정의o
exclusiveMaximum상한값 정의x
exclusiveMinimum하한값 정의x

exclusiveMaximum, exclusiveMinimum의 기본값은 false다.

-multipleOf: 정수 배수 표현, 소숫점 이하 자릿수 제한 가능

19.2.3. 문자열 형식 강제

  • minLength: 최소 길이 지정
  • maxLength: 최대 길이 지정
  • pattern: 정규 표현식 지정

19.2.4. 배열 제약사항 강제

  • minItems: 최소 개수 지정
  • maxItems: 최대 개수 지정
  • uniqueItems: true시 중복 요소 허용 x, false시 허용

minItems를 1로 지정하더라도 required 필드에 포함되지 않으면, 요소가 1개인 배열도 유효하고 배열 필드 자체가 아예 존재하지 않아도 유효하다.

19.2.5. 열거형 정의

  • enum: 정의된 값만 허용

19.2.6. 필수 프로퍼티와 선택 프로퍼티 목록

기본적으로는 모든 프로퍼티는 선택 프로퍼티.

  • required: 개별 프로퍼티가 아니라 object에 지정. 필수 프로퍼티의 이름 목록을 값으로 가짐.