Validation Layers

빠른 안내는 앱에서, 최종 강제는 데이터베이스에서 한다

검증을 여러 계층에 두는 이유는 같은 일을 반복하려는 것이 아닙니다. 사용성, 업무 맥락, 저장 가능 상태를 각 계층이 나누어 책임지기 위해서입니다.

프론트엔드

입력 직후 안내

사용자가 고치기 쉬운 시점에 형식과 필수값을 알려 줍니다.

좋음 이메일 형식, 필수 입력
한계 브라우저 조작과 우회 가능
서버

업무 흐름 판단

권한, 상태 전이, 외부 조건처럼 요청 맥락이 필요한 규칙을 봅니다.

좋음 주문 취소 가능 시간
한계 배치와 직접 SQL은 빠질 수 있음
DB 제약 조건

저장 상태 제한

선언되고 활성화된 PK, FK, CHECK, NOT NULL이 모든 쓰기 경로의 마지막 기준이 됩니다.

좋음 중복 키, 고아 참조 거부
주의 지연·비활성화는 통제 필요
앱을 거치지 않는 쓰기 배치 적재, 마이그레이션, 관리자 SQL, 다른 서비스
->
DB 제약이 마지막 기준 앱 검증이 빠져도 활성 제약이 깨진 저장 상태를 막습니다.

핵심 애플리케이션 검증은 친절한 안내와 업무 흐름을 담당하고, 데이터 품질의 최종 책임은 가능한 한 데이터베이스 제약 조건에 둡니다.