/ Retrospective

별로 유명하지 않은 템플릿 엔진을 써온 결과

예전에, PHP 에서 유명한 Template Engine 인 Smarty 를 사용하다가 Raintpl 로 변경 한 적이 있었다. 변경 한 이유는 성능 문제.

수십개에 달하는 html 페이지들을 모두 raintpl 으로 변경하는 작업을 한 뒤에, 실제로 성능 향상은 있었지만 작업량에 비하여 기대한 만큼의 성능 향상은 아니었다. 그래도 어쨌거나 의미 있는 작업이긴 했었다.

하지만, 이후에 계속해서 raintpl 으로 유지하며 작업하다보니 장점과 단점이 확실히 느껴졌고, 결국 장점보다 단점이 많은 것으로 정리가 됐다. '성능 좋은 다른 유명한 엔진으로 바꾸는게 좋았을 걸' 하는 생각이 들었다. 내가 발견한 장점과 단점은 아래와 같다.

장점

  • 버그가 있을 경우 직접 수정해서 고치면 된다.
  • 버그가 많은 오픈소스이기 때문에 수정해서 커밋할 꺼리가 많다. 기여하다보면 재밌다.
  • 파싱엔진이 견고하지 못한 만큼 복잡한 로직이 없어 작동 성능이 좋다.
  • 성능 향상을 위한 튜닝을 직접 쉽게 할 수 있다.

단점

  • IDE에서 해당 언어에 대한 자동완성 기능을 지원하지 않아서, HTML을 작성 할 때 Syntax Reformat 에서 큰 문제가 된다.
  • 견고하지 못한 파싱엔진으로 인해, 새로운 문법을 추가할 경우 뜻 밖의 불상사로 멘붕을 겪을 수 있다. (해당 문법을 1개 라인에 2번 이상 쓸 수 없다든가..)
  • 커스터마이징이 쉽다보니 템플릿엔진의 목적을 잊어버리고 나도 모르게 템플릿 엔진에서 실행되기에 과도한 기능을 끼워넣어버린다.

옛날에는 IDE 없이 단순 Syntax Highlighting 만 되는 에디터로 쉽게 코딩하고 빠르게 코딩했지만 최근 몇년간은 똑똑한 IDE에 적응되서 IDE가 해당 언어를 제대로 지원하지 않으면 사용하기가 너무 불편해졌다. 이 관점 때문에 Raintpl 에 매우 큰 불편함을 느끼게 됐다.

그래서, PHP에서 다음에 템플릿 엔진을 사용한다면 Twig 를 사용할 예정이다. 이미 두세번 써보니 꽤나 괜찮고, 내가 사용하는 PHPStorm 에서도 지원한다. Smarty 는 쓰지 않을 것이다. 이제 너무 늙었고 느리다.