SPRING

Spring Validation

도원좀비 2025. 3. 25. 19:41

🍃 Validation 개념과 BindingResult 활용법

1️⃣  Validation이란?

  • 사용자의 입력값이 유효한지 검증하는 과정
  • 검증은 프론트, 서버, DB 세 군데 모두에서 수행
  • 잘못된 입력으로 인한 UX 문제 예방

2️⃣  왜 서버 검증이 필수인가?

  • 프론트는 조작 가능 → 신뢰 불가
  • 서버는 로직 보장 + API 응답 포맷 제공
  • DB는 최후의 방어선 (NOT NULL, DEFAULT 등)

3️⃣  Spring의 BindingResult

  • BindingResult는 검증 오류를 담는 객체
  • @ModelAttribute 바인딩 → 실패 시에도 컨트롤러는 호출됨
  • BindingResult가 있으면 오류 발생 시에도 400 Bad Request로 막히지 않고 컨트롤러 진입 가능
@PostMapping("/member")
public String save(@ModelAttribute MemberDto dto, BindingResult bindingResult) {
    if (dto.getAge() == null || dto.getAge() < 0) {
        bindingResult.rejectValue("age", "invalid.age", "나이는 0 이상이어야 합니다.");
    }
    ...
}
  • 바인딩 실패 시에도 나머지 필드는 정상 처리됨

'SPRING' 카테고리의 다른 글

Spring JPA  (0) 2025.03.26
Bean Validation  (1) 2025.03.25
Spring Bean 등록과 의존성 주입  (0) 2025.03.25
Spring과 객체 지향 설계  (0) 2025.03.25
Spring SOLID원칙  (0) 2025.03.25