validation

간단히 말하면 요청 값들에 대해서 **유효한 값 또는 범위 안에 있는지 등을 검사**하는 것이다.


express에서의 validation

validation 할 수 있는 지점이 크게 3개 정도 존재하는데 각각에 대해서 알아보자

Untitled

middleware Level

미들웨어 단에서 유효성 검사를 하게 되면 요청이

컨트롤러에 도달하기 전에 **잘못된 요청이라면 요청을 중지**할 수 있다.

하지만 요청이 통과하기 위해서 미들웨어를 하나 거쳐야 한다는 단점이 존재한다.

controller / service Level

여러 서비스를 결합해서 정보를 처리하려고 할 때 적합하다.

하지만 미들웨어에서 수행할 수 있는 작업임에 불구하고 두 번째 단계까지 위임한다는 단점이 있다.

DB Constraint Level

**DB 제약조건을 사용해서 유효성 검사를 제공**한다.

하지만 **데이터 검증을 마지막 Layer**에서 하게 되고 **잘못된 정보로 DB에 접근한다는 단점**이 있다.

개인적인 생각

validation 검사는 제일 앞단에서 하는게 맞다고 생각한다. 왜냐하면 잘못된 정보가