Node.js

[NodeJS] 템플릿엔진

반응형

템플릿 엔진의 필요성

html을 컨트롤하기 위해 여러 템플릿엔진들이 있습니다. 템플릿엔진을 사용하면 서버에서 온 데이터들을 조금 더 쉽게 다룰 수 잇다는 장점이 있습니다.

  1. 대부분의 템플릿엔진은 html에 비해 문법이 간단하여 코드량을 줄일 수 있습니다.
  2. 데이터만 바뀌는 경우가 굉장히 많으므로 재사용성을 높일 수 있습니다.
  3. 유지 보수에 용이합니다.

 

 

템플릿엔진에는 Server Side Template Engine과 Client Side Template Engine 이 있습니다.

 

  • Server Side Template Engine

서버에서 미리 정의된 Template에 넣어 html을 그려서 클라이언트에 전달하는 방식입니다.

동적으로 생성되는 부분만 템플릿에 소스 코드를 끼워넣는 방식으로 동작합니다.

자스크립트의 템플릿엔진으로는 ejs나 pug등이 이 경우에 속합니다.

전에 배운 jinja2도 여기에 속합니다.

 

 

 

  • Client Side Template Engine

html 형태로 코드를 작성할 수 있으며 동적으로 DOM을 그리게 해주는 역할 입니다. 즉, 데이터를 받아서 DOM객체에 동적으로 그려주는 프로세스를 담당합니다.

mustache가 여기에 속합니다.

 

장점: 앱처럼 사용할 수 있다(웹앱), 서버와 통신하지 않아서 화면 전환이 빠릅니다.

단점: 처음 가져오는 파일이 많다보니 첫 화면을 띄울 때 비교적 오래 걸립니다.

 

 

템플릿엔진을 사용하는 것이 장점이 분명하지만 또 다른 문법을 배워야한다는 점은 생산성 측면에서 단점이 될 수도 있다고 생각합니다.

 

 

 

 

 

 

 

반응형