인프런 커뮤니티 질문&답변

박종혁님의 프로필 이미지

작성한 질문수

mongoDB 기초부터 실무까지(feat. Node.js)

PUT /user/:userId

age 예외 처리를 별도로 하신 이유가 궁금합니다.

해결된 질문

작성

·

191

2

이미 Schema 정의 할 때 age 를 number 로 했기 때문에, 디비에 저장할 때 number 값을 전달하지 않으면 에러가 발생해서 catch 에서 처리할 수 있을거 같은데요.

업데이트 전에 필드를 validation 하면 모든 필드에 대해서 일일히 다 해줘야 할 것 같은데, 그렇게 하는 이유가 있을까요?

그리고, catch 에러에서 number 값을 입력하지 않아서 발생한 오류임을 알 수 있는 방법(e.g., 에러 코드)이 있나요?

답변 2

1

김시훈님의 프로필 이미지
김시훈
지식공유자

통상적으로는 3번의 validation을 검증합니다.

  1. 클라이언트에서 요청을 보내기 전에 검증

  2. 데이터베이스에 요청을 보내기 전에 서버에서 검증

  3. 최종적으로 디비에서 검증.

이렇게 하는 이유는 간단합니다. 부하 및 보안 관리입니다. 클라에서 실수를 할 수도 있고 무엇보다 API 엔드포인트가 충분히 외부에 노출될 수 있기 때문에 서버에서 당연히 검증을 해줘야 합니다. 디비 검증은 최종 검증이라고 보시면 됩니다

 

0

박종혁님의 프로필 이미지
박종혁
질문자

클라 검증 -> 서버 검증 -> 디비 검증!

답변 감사합니다.