70
한 권으로 끝내는 Node & Express
5.2.
논리
vs
표현
대체로 웹사이트에는 논리(종종 ‘비즈니스 논리’라 부르는데 필자는 상업적 편향이라 생각해
이 용어는 사용하지 않습니다)와 표현 두 가지 ‘영역’이 있습니다. 웹사이트의 논리는 순수한
지적 영역이라 생각해도 됩니다. 예를 들어 메도라크 여행사에서 스쿠터를 빌리려는 고객은 반
드시 유효한 운전면허가 있어야 한다는 규칙이 있다고 합시다. 이 규칙은 매우 단순한 데이터
기반 규칙입니다. 스쿠터를 예약할 때마다 사용자에게 유효한 운전면허가 있어야 합니다. 표
현은 이러한 논리와 직접적인 연결은 없습니다. 주문 페이지의 마지막 폼에 체크박스로 표현할
수도 있고, 고객이 유효한 운전면허 번호를 제공하면 메도라크에서 유효성 검사를 할 수도 있
습니다. 이건 중요한 차이점입니다. 논리 영역은 가능한 한 명확하고 단순해야 하지만, 표현 영
역은 필요에 따라 복잡할 수도, 단순할 수도 있습니다. 또 표현은 사용성과 미학을 고려해야 하
지만, 논리는 그렇지 않습니다.
가능하면 항상 논리와 표현을 명확히 구분해야 합니다. 방법은 여러 가지입니다. 이 책에서는
논리를 자바스크립트 모듈로 캡슐화하는 데 중점을 둡니다. 반면 표현은
HTML
과
CSS
, 멀티
미디어, 자바스크립트, 제이쿼리
jQuery
같은 프론트엔드 라이브러리의 조합입니다.
5.3.
테스트 타입
이 책에서 설명할 테스트 타입은 크게 단위 테스트와 통합 테스트 두 가지 카테고리로 나뉩니
다(필자는 ‘시스템 테스트’를 통합 테스트의