🍃 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 |