문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 HTML (문단 편집) == 트랜스 컴파일러 == 2016년 즈음부터는 웹 환경이 나날이 대형화되고 복잡해짐에 따라 웹 사이트의 근간을 이루는 HTML, [[CSS]], [[JavaScript]]는 모두 대안 언어나 기술이 존재한다. HTML은 열고 닫는 태그를 일일이 오타 없이 쓰는 게 불편하고 마크업 언어인 탓에 템플릿 지원이 되지 않고 객체 지향적으로 작성이 불가능한 등의 여러 단점이 있다. 그래서 이것을 극복하고자 [[https://pugjs.org|Pug]](구 JADE)라는 컴파일러(트랜스컴파일러)가 만들어졌다. 들여쓰기로 블럭을 구분하고 변수나 템플릿 기능을 추가하고 자주 사용하는 {{{id}}}, {{{class}}} 속성을 특수 문법을 통해 간편하게 지원하는 등 여러 편의 기능을 제공한다. 그렇지만 Pug 자체는 컴파일러이고 컴파일 결과가 HTML로 나오는 것이라서 Pug만으론 홈페이지에 동적인 기능을 삽입하기 곤란하다. 어디까지나 정적 HTML 문서를 만들어내는 데 특화된 언어 및 유틸리티이다. [[jQuery]] 와 궁합이 잘 맞는 편이다. jQuery를 사용할 때에는 {{{class}}} 속성을 매우 자주 쓰게 되는데 Pug에서는 점 하나만 찍으면 클래스 지정이 가능하고 들여쓰기를 강제하는 문법 구조 때문에 태그의 부모자식 관계를 파악하기도 쉽다. 또한 결과물이 평범한 HTML 문서이기 때문에(사용자가 작성하지 않은 어떠한 메타데이터도 추가하지 않는다) 업무를 인수인계할 때 받을 사람이 Pug를 도저히 사용할 수 없다고 판단되면 마지막으로 컴파일한 HTML 파일을 대신 전달해주어도 아무 문제가 없다. 서버 사이드 렌더링 기능을 사용하지 않고 순수하게 트랜스컴파일러만 사용해 정적 HTML을 생성하는 프로젝트 한정. 물론 이때는 minify 옵션을 꺼서 사람이 읽을 수 있는 HTML을 생성하게 해 줘야 한다. 그리고 Pug는 트랜스컴파일러이지 Virtual DOM의 일종이 아니다. 그래서 최종 결과물인 홈페이지의 렌더링 속도를 가속해주지는 못한다. 엄격하게 구조화된 HTML을 생성하기 때문에 HTML 문서 자체의 파싱 속도는 빠르지만 DOM 조작 속도를 개선하지는 못한다는 소리다. Pug 홈페이지에서는 서버 사이드 렌더링 언어로 Pug를 소개하고 있는데 정적 컴파일도 가능한 언어이다. 또한 node.js에서 돌아가는 라이브러리인 탓에(컴파일러 겸 라이브러리) express 프레임워크와도 궁합이 좋은 편이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기