카테고리 없음
검증(Validation) 정리
creator7087
2025. 3. 28. 20:09
1. Validation이란?
클라이언트에서 전송한 데이터가 유효한지 확인하는 과정. 데이터를 검증하여 오류를 방지하고, 안정적인 애플리케이션 운영을 돕는다.
2. Validation의 역할
- 검증을 통해 적절한 메시지를 사용자에게 제공해야 한다.
- 검증 오류로 인해 시스템이 비정상적으로 동작해서는 안 된다.
- 사용자가 입력한 데이터는 검증 과정에서 사라지지 않고 유지되어야 한다.
3. 검증의 종류
검증 방식특징장점단점
프론트 검증 | 클라이언트(UI)에서 검증 수행 | 빠른 피드백 제공 | 보안에 취약 |
서버 검증 | 백엔드에서 요청 데이터를 검증 | 필수적인 보안 조치 | 프론트 없이 단독 사용 시 UX 저하 |
데이터베이스 검증 | DB의 제약 조건(Not Null 등)으로 검증 | 최종 방어선 역할 | 검증 시점이 가장 늦음 |
4. Spring에서의 Validation
- BindingResult
- Errors 인터페이스를 상속받아 검증 오류를 저장하고 조회하는 역할
- Spring에서 검증 시 활용하는 객체
- 검증 대상 객체 바로 뒤에 위치해야 함
- Bean Validation
- 표준 검증 방식으로, Hibernate Validator를 주로 사용
- 주요 어노테이션: @NotBlank, @NotNull, @NotEmpty 등
5. @ModelAttribute vs. @RequestBody
구분@ModelAttribute@RequestBody
바인딩 방식 | 필드 단위로 개별 바인딩 | 객체 단위로 바인딩 |
검증 방식 | 일부 필드 오류가 있어도 나머지 필드 검증 가능 | 특정 필드 오류 발생 시 전체 객체 검증 불가능 |
변환 실패 시 | 컨트롤러 호출 및 검증 진행 | 컨트롤러 호출 자체가 안 됨 |
🔍 핵심 질문
- 프론트, 서버, 데이터베이스 검증을 모두 수행해야 하는 이유는 무엇인가?
- BindingResult를 사용하는 이유와 Errors 인터페이스와의 차이점은?
- @ModelAttribute와 @RequestBody의 가장 큰 차이점은 무엇인가?