요즘은 회사에서 flask + jinja2 를 사용하고 있다. 내가 fullstack 개발자처럼 일하다보니 프론트엔드도 같이 해야 하는데 그러다보니 더 싶게 일 할 수 있는 방법은 없는지 고민하게 된다. 그러다 vue.js 에 관심을 갖게 되었다. react.js 는 뭔가 시작하기 무거운 느낌이 있었는데 vue.js 는 시작해 볼 수 있겠다는 생각이 들었다. backend 를 파이썬으로 하고 frontend 를 vue 같은 자바스크립트 프레임워크로 하면 문제가 SEO를 위한 server side rendering 을 지원할 방법이 없다는 것이다.  둘 다 node 계열이면 문제가 없는데 이렇게 섞어 쓰면 조금은 문제가 생긴다.  

 그래서 python 으로는 vue.js 를 서버사이드로 완전한 HTML 을 뽑아낼 수 없는지 찾고 있는데, 방법이 없다. 그러다 jinja2 extension 을 만들면 가능하지 않을까 하는 헛된 생각을 하고 있다. 원할 때, HTML 을 완전히 flask + jinja2 의 도움으로 뽑을 수 있고, 또 client side rendering 이 필요할 때는 vue.js 의 도움으로 Client Side Rendering 을 할 수도 있지 않을까 하는 안좋은(이 안좋다는 말의 의미는 내가 또 나 혼자 해서는 실현 가능성 없는 생각이라는 의미가 포함되어 있다.) 생각을 하고 있다. 

  jinja2 가 단순히 변수를 변경해 가면서 html 을 렌더링 하는 줄 알았는데 내부적으로 dom 을 파싱해 가면서 분석하면서 동작하고 있었다. 이 dom 파싱을 이용할 수 있는 방법이 jinja2 extension 을 만드는 방법이다. (여기에 대해서 더 알고 싶다면 https://github.com/mitsuhiko/jinja2-htmlcompress 코드를 분석해 보기 바란다.)

또, 이렇게 쓸데없는 생각을 하고 있다. 그런데 이렇게 생각하면 몇 년 지나면 프로젝트가 생기더라. 누가 좀 만들어 주었으면 좋겠다.