2.5.9 verifyPassword( ) 함수 리팩터링
자바스크립트에서 동일한 기능을 구현하는 방법에는 여러 가지가 있다. 이번에는 기존 코드를 다르게 구현할 수 있는 방법을 몇 가지 소개하고, 코드를 수정했을 때 무슨 일이 일어나는지 같이 살펴보려고 한다. 예를 들어 비밀번호를 검증할 수 있는 메서드를 가진 클래스를 만든다고 가정해 보자.
코드를 스테이트풀(stateful)하게 변경하는 이유 중 하나는 애플리케이션의 여러 부분에서 이 객체를 사용할 가능성이 있기 때문이다. 어떤 부분에서는 이 객체에 규칙을 추가하고, 다른 부분에서는 이를 사용하여 비밀번호를 검증할 수 있다. 또 다른 이유는 상태 기반으로 코드를 설계하는 방법을 배우고, 이러한 코드 설계가 테스트에 어떤 영향을 미치는지 살펴본 후 그 해결책을 모색하기 위해서다.