[clojure] Clojure 스키마를 이용한 데이터 유효성 검사

Clojure는 데이터 구조를 지정하고 유효성을 검사하는 유용한 라이브러리인 schema을 제공합니다. 이를 사용하여 데이터의 유효성을 검사하고 보장할 수 있습니다.

스키마 정의

먼저, 다음과 같이 schema.core 네임스페이스를 포함시킨 후 스키마를 정의합니다.

(require '[schema.core :as s])

(def Person
  {:name s/Str
   :age  s/Int})

위의 예시에서 Personname이 문자열이고 age가 정수인 데이터 구조를 나타냅니다.

데이터 유효성 검사

이제 스키마를 사용하여 데이터의 유효성을 검사할 수 있습니다.

(s/validate Person {:name "Alice", :age 30})

위의 코드는 Person 스키마를 사용하여 주어진 데이터가 유효한지 검사합니다. 데이터가 스키마와 일치하지 않으면 검증이 실패하고 유효하지 않은 값에 대한 오류를 반환합니다.

스키마 기반 데이터 변환

또한, schema를 사용하여 데이터를 변환할 때 스키마를 기반으로 하는 함수를 정의할 수 있습니다.

예를 들어, 다음과 같이 transform 함수를 사용하여 Person 스키마에 따라 데이터를 변환할 수 있습니다.

(defn transform [data]
  (if (s/validate Person data)
    (str "Name: " (:name data) ", Age: " (:age data))
    "Invalid data"))

이제 transform 함수를 사용하여 데이터를 변환하고, 유효성이 검증된 경우에만 변환된 데이터를 반환할 수 있습니다.

이와 같이 Clojure의 schema를 사용하여 데이터 유효성 검사와 변환을 간편하게 처리할 수 있습니다.

더 많은 정보는 Clojure 스키마 공식 문서를 참조하세요.