더북(TheBook)

3.4 함수를 이용한 주입 방법

예제 3-3에서 currentDay를 매개변수로 주입하여 외부 의존성을 끊고 함수 레벨에서 의존성 문제를 해결했지만, 이 방식이 썩 마음에 들지 않을 수 있다. verifyPassword2() 함수를 호출하는 모든 곳에서 어떤 날짜를 전달해야 하는지 알고 있어야 하기 때문인데, 이는 무척 번거로운 일이다.

자바스크립트는 함수형 프로그래밍과 객체 지향 프로그래밍 두 가지 스타일을 사용할 수 있다. 이 장에서는 두 스타일을 사용한 서로 다른 방식을 소개할 예정이다. 여러분은 그중 각자 상황에 맞는 방식을 선택해서 사용하면 된다.

디자인에 정답은 없다. 함수형 프로그래밍을 좋아하는 사람들은 함수형 스타일이 얼마나 단순 명료하고 깔끔하게 문제를 해결할 수 있는지 이야기할 것이다. 그러나 함수형 스타일은 배우기 어렵다는 단점이 있다. 그렇기 때문에 두 가지 방식을 모두 배우고, 상황에 가장 적합한 방식을 적용하는 것이 현명하다. 어떤 팀은 객체 지향 스타일에 더 익숙하여 객체 지향으로 프로그래밍할 것이고, 어떤 팀은 함수형 스타일을 더 좋아할 수도 있다. 필자는 패턴 자체는 크게 다르지 않으며, 단지 같은 문제를 다른 스타일로 번역할 뿐이라고 생각한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.