티스토리 뷰

donaricano-btn
반응형

프론트엔드에서 '만' 유효성 검사를 하는 것이 좋지 않다. 이에대해 자세하게 설명한 블로그가 있다. 내용을 요약하면 클라이언트의 개발자 도구로 유효성 검사 부분을 무력화 하는 것이 충분히 가능하기 때문에 반드시 서버에서 유효성 검사를 해 줘야 한다는 것이다.

 

그래서 유효성 검사를 하는 안전한 방법은 두 가지다.

 

  • 프론트와 백엔드 양쪽에 모두 검증 코드를 작성한다.
  • 백엔드에 검증 코드를 작성 후, 백엔드 결과에 따라 프론트는 메세지만 노출한다.

이런 사실은 미리 알고 있었기 때문에 나는 항상 백엔드에서 검증코드를 만들어 왔는데 실무에서 직접 유효성 검사 코드를 작성하다보니 역시 프론트단에서도 유효성 검사는 필요하다.

 

사실 개발자 도구를 통한 회피는 쉽게 발생하는 일이 아닌데 프론트엔드에서 쉽게 처리할 수 있는 부분을 매번 서버에 질의를 던지고 답변을 받는 것은 아무래도 비효율적이다. 프론트엔드에서 유효성 검사를 하면 폼 작성 -> 프론트엔드 유효성 검사 -> 오류메세지 출력 세 단계를 거치면 되는데 서버에서만 유효성 검사를 하게 되면 폼 작성 -> 전송 -> 백엔드 유효성검사 -> (오류 발생시) 다시 클라이언트로 전송 -> 오류 메세지 출력 이라는 복잡한 단계를 거치게 된다. 서버 입장에서는 불필요한 리소스가 추가되는 것이다. 사용자는 반응속도 차이를 경험할 수 밖에 없다.

 

비동기적으로 작성하지 않으면 페이지를 벗어나게 되는 문제도 발생한다. (항상 비동기적 방식만을 사용할 수는 없기 때문) 사용자 입장에서는 입력 form이 초기화 되는 불편을 겪게 된다.

 

그렇기 때문에 클라이언트와 서버 양측에서 유효성 검사를 하는 것이 좋다. 더 좋다는 것은 '정답'은 아니라는 것이다. 때로는 서버에서만 유효성 검사를 할 수도 있다. 하지만 가능하다면 양 쪽에서 다 검사하는 것이 조금 더 안전한 방법이라고 생각한다.

반응형
donaricano-btn
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함