49
3
장
-
익스프레스로 시간 절약
서도 이미 익스프레스는 눈에 띄지 않게 편리한 기능들을 제공해주었습니다. 이전 장에서는
req
.
url
을 정규화해 어떤 자원을 요청했는지 판단했던 게 기억하십니까? 직접 쿼리스트링과
마지막 슬래시를 없애고, 소문자로 바꿔야 했습니다. 익스프레스의 라우터는 이런 작업을 자동
으로 처리합니다. 지금은 이런 기능이 별것 아닌 것으로 보일 수 있지만, 우리는 아직 익스프레
스 라우터의 기능을 수박 겉핥기 식으로밖에 만나지 않았습니다.
3.3.1.
뷰와 레이아웃
‘모델 뷰 컨트롤러
model view controller
’ 패러다임에 익숙하다면 뷰 개념도 낯설지 않을 겁니다. 요
점만 말하면, 뷰는 사용자에게 전송되는 것입니다. 웹사이트라면 보통
HTML
이지만,
PNG
나
PDF
, 기타 클라이언트에서 렌더링할 수 있는 것은 무엇이든 전송할 수 있습니다. 이 책에서
말하는 뷰는
HTML
을 뜻합니다.
뷰는 정적일 필요가 없으므로 이미지나
CSS
파일 같은 정적 자원과는 다릅니다. 각 요청에 맞
는
HTML
을 즉석에서 만들어 커스텀 페이지를 제공할 수 있습니다.
익스프레스는 여러 가지 뷰 엔진을 지원하며 이들이 제공하는 추상화 수준도 여러 가지입니다.
익스프레스는 뷰 엔진 제이드
Jade
를 매우 잘 지원하는데, 제이드 역시
TJ
할로웨이척이 만들었
으므로 어쩌면 당연한 일입니다. 제이드가 채택한 접근법 역시 최소 지향입니다. 제이드에 쓰
는 코드는 꺽쇠(< >)를 쓰지 않고 닫는 태그도 없으므로 전혀
HTML
처럼 보이지 않