TIL DAY4 | validation과 verification 차이

정예원·2021년 8월 29일
2
post-thumbnail

이번주 목요일날 진행한 멘토링에서
멘토님에게 질문을 받았는데 아무말도 하지 못햇다.
너무 부끄러웠다. 🤦‍♀️
분명히 공부했다고 생각했는데 나는 개념정리도 제대로 하지 않고
함수형 프로그래밍을 공부하고 코드를 짜고있었다.
이번을 계기로 애매하게 알았던, 사실 몰랐던 개념들을 정리해보고자 한다. 😉


오늘은 멘토링때 대답하지 못한 validation과 verification의 차이에 대해 알아보자!
정보처리기사 공부하면서 암기했던 부분인데 까먹었다..하하ㅏ하..나 hoxy 시험만 보면 모든것을 잊어버리는 병에 걸린건가..
오랜만에 정보처리기사 책을 펼쳐 개념들을 다시 확인해보았다.

validation(검사) : 사용자의 입장에서 개발한 소프트웨어가 고객의 요구사항에 맞게 구현되었는지를 확인하는 것이다.
verification(검증) : 개발자의 입장에서 개발한 소프트웨어가 명세서에 맞게 만들어졌는지 점검하는 것이다.

사실 이러한 개념으로는 정확히 이해가 가지 않기 때문에
조금 더 쉬운 설명들로 이해해보자!

✔ validation

Are we building the right system?

  • 우리가 올바른 제품을 빌드하고 있나?
  • 실제 제품을 검사하고 테스트하는 동적인 방법이다.
  • 최종적으로 만든 결과물이 잘 나왔는지를 말한다.
  • 검증은 항상 코드실행을 수반한다.

✔ verification

Are we building the system right?

  • 우리가 제품을 올바르게 빌드하고 있나?
  • 디자인과 코드를 검사하는 정적인 방법이다.
  • 각 단계의 요구사항을 잘 지켜가며 만들었는지를 확인하는 것이다.
  • 검사는 인간기반의 문서와 파일의 검사이다.

쉽게말하면

validation은 사용자의 관점에서 우리가 제품을 잘 만들고 있는가
verification은 논리적인 관점에서 해당 스펙대로 잘 수현했는가

✌2가지 예시를 살펴보자.

1. Token 인증은 validation일까 verification일까?

정답은 verification이다.

우선 Token이 무엇인지부터 알아보자.
일반적으로 로그인은 서버의 session을 통해 이루어진다. 서버는 접속중인 client들을 이 session을 통해 관리한다. 사이트에 접속하면 session에 해당 client가 기록되고 로그인을 하게 되면 해당 client가 로그인한 것을 저장한다.
이후 해당 client는 로그인이 요구되는 정보에 접근할 수 있다.
하지만 이 방식은 접속자수가 늘어나면 서버의 메모리 사용량이 증가하여 성능에 영향을 미친다.

그래서 REST API에서는 서버가 session을 가지는 방식이 아닌 Token인증 방식을 사용한다.
로그인 API로 id와 password가 일치함이 확인되면 서버는 Token을 방행하고, 로그인 후 이용가능한 API들에는 유효한 Token이 있는 경우에만 사용할 수 있게 한다.

이는 사용자의 니즈와 관련없이 개발자의입장에서 소프트웨어를 개발하는 과정에서 고려해야 할 부분이기 때문에 verification이다.

2. form 검사는 validation일까 verification일까?

정답은 validation이다.

만약 사용자가 회원가입을 한다고 가정해보자.
이 경우 아이디와 비밀번호가 조건에 맞는지, 필수요소를 모두 잘 작성했는지 확인해야 한다.

이것은 사용자 입장에서 사용자가 실수로 유효하지 않은 데이터를 입력하는 경우를 방지하기 위함이기 때문에 validation이라고 볼 수 있다.

profile
hello world!

0개의 댓글