[go] JSON 데이터 유효성 검사 모듈 사용하기

GO에서 JSON 데이터 유효성 검사하기

GO 언어는 서버 측 백엔드 프로그래밍에 적합한 언어로 널리 사용됩니다. JSON은 데이터를 교환하기 위한 일반적인 형식으로 사용되며, 때로는 이 데이터의 유효성을 확인해야 할 필요가 있습니다. GO 언어에서는 이를 위해 내장된 기능과 다양한 서드파티 라이브러리를 사용할 수 있습니다.

내장된 기능을 사용한 유효성 검사

GO의 encoding/json 패키지는 JSON 데이터를 다루는 데 도움이 됩니다. 예를 들어, 특정 구조체(Struct)의 JSON 데이터 유효성을 검사하려면, 해당 구조체 필드에 태그를 추가하여 유효성 규칙을 정의할 수 있습니다.

type User struct {
    Name string `json:"name,omitempty"`
    Age  int    `json:"age,omitempty"`
}

func validateJSON(data []byte) error {
    var user User
    if err := json.Unmarshal(data, &user); err != nil {
        return err
    }
    // 유효성 검사 루틴 추가
    if user.Age < 0 {
        return errors.New("나이는 음수일 수 없습니다")
    }
    return nil
}

위 예시에서는 User 구조체의 Age 필드를 음수 값으로 설정하는 경우에 대한 유효성 검사를 하고 있습니다.

서드파티 라이브러리를 활용한 유효성 검사

GO 언어에서는 gookit/validate와 같은 다양한 서드파티 라이브러리를 사용하여 JSON 데이터의 유효성을 검사할 수 있습니다. 이러한 라이브러리들은 다양한 유효성 검사 규칙을 지원하고 있어, 빠르고 쉽게 유효성을 확인할 수 있습니다.

type User struct {
    Name string `json:"name,omitempty" validate:"required|minLen:3"`
    Age  int    `json:"age,omitempty" validate:"required|min:0"`
}

func validateJSON(data []byte) error {
    var user User
    if err := json.Unmarshal(data, &user); err != nil {
        return err
    }
    // 사용자 정의 루틴을 통한 유효성 검사
    v := validate.Struct(user)
    if !v.Validate() {
        return errors.New(v.Errors.One())
    }
    return nil
}

위 예시에서는 gookit/validate 라이브러리를 사용하여 User 구조체의 필드에 대한 유효성 검사를 수행하는 방법을 보여주고 있습니다.

마치며

GO 언어에서는 내장된 기능과 다양한 서드파티 라이브러리를 사용하여 JSON 데이터의 유효성을 검사할 수 있습니다. 데이터의 정합성을 유지하고 안정적인 서버 애플리케이션을 개발하기 위해 JSON 유효성 검사를 적극적으로 활용할 수 있습니다.

더 많은 정보는 아래 GO언어 공식 사이트 및 gookit/validate 라이브러리의 문서에서 확인할 수 있습니다.