피드로 돌아가기
I built ginvalidator — middleware-based request validation for Gin, modeled on express-validator
Dev.toDev.to
Backend

Middleware 기반 체이닝 구조로 Gin 프레임워크의 Request Validation 한계 극복

I built ginvalidator — middleware-based request validation for Gin, modeled on express-validator

Gbubemi Attah2026년 5월 13일6intermediate

Context

Gin의 기본 Struct Binding 방식은 복잡한 조건부 검증이나 비즈니스 로직이 포함된 유효성 검사에 한계가 있음. 반복되는 Regex 복제와 수동 검증 코드 중복으로 인한 유지보수 효율 저하를 해결해야 하는 상황임.

Technical Solution

  • express-validator 모델을 차용한 Middleware 기반의 Validation Chain 아키텍처 설계
  • Validator, Sanitizer, Modifier를 순차적으로 배치하여 데이터 정제와 검증을 파이프라인 형태로 처리
  • GJSON 문법을 적용하여 Body 내 Nested Field에 대한 정밀한 접근 및 검증 경로 확보
  • OneOf 인터페이스 도입을 통해 서로 다른 필드 그룹 간의 선택적 유효성 검사 로직 구현
  • CheckSchema 구조를 통해 다수의 Validation Chain을 맵 형태로 통합하여 가독성 및 관리 효율 증대
  • ValidationResult, FirstErrorByField 등 다양한 Error Reading Helper를 제공하여 UI 요구사항에 맞춘 유연한 에러 응답 설계

- 단순 타입 체크를 넘어선 비즈니스 조건부 검증 필요 시 Middleware 기반 체이닝 구조 검토 - 데이터 정제(Sanitize)와 검증(Validate) 단계를 분리하여 처리 파이프라인 구축 - 다수의 필드 검증 시 개별 체인 대신 Schema 기반의 선언적 정의 방식으로 가독성 확보 - API 응답 설계 시 클라이언트 UI 렌더링 방식에 최적화된 에러 데이터 포맷(Field-mapped Error) 제공

원문 읽기