작업을 하다보면 기 작업한 페이지를 다시 찾아 수정해야 하는 일이 빈번하게 발생한다. 만약 html 각각의 페이지마다 반복되는 공통단(예를 들어 푸터)을 수정해야 한다면, 모든 페이지를 다 수정해야한다. 몇 페이지 안되는 작은 규모의 사이트라면 몰라도, 수백 페이지에 달하는 전체 페이지를 하나씩 바꾸는 것은 매우 무의미한 일이며, 편집기로 ‘일괄 찾아 바꾸기’도 위험하다. 띄어쓰기 하나만 달라져도 찾지 못할테고, 코드의 정렬에도 악영향을 끼칠테니 말이다. 하지만 공통단을 별도의 파일로 관리한다면 해당 파일 하나만 수정해도 사이트 전체에 적용이 되니 편리할 것이다.
바로 이러한 이점 때문에 퍼블리셔도 로컬에 웹서버를 세팅하여 작업할 때가 있다. 자주 쓰이는 UI 컴포넌트를 분할해 별도의 파일로 구성해두었다가 필요할 때마다 불러오는 방법을 활용하기 위해 include 구문을 활용한다.
페이지를 분할하는 기준은 사전에 개발팀과 간단히 협의하는 것이 좋다. 필요한 부분만 소스 복사하여 본인의 개발페이지에 새로 입력하는 개발자가 있는가 하면, 퍼블리싱 파일을 그대로 가져와 내용 부분만 채우는 개발자도 있다. 전자의 경우 페이지 분리는 어차피 개발자가 다시 할테니 별로 상관하지 않을 것이고, 후자의 경우 개발 방식 맞추어 파일을 분할하기를 원할 것이다. 이 부분을 사전에 협의한다면 상호간의 작업 효율을 높이는데 큰 도움이 된다.
다만 현업 측에서 요구하는 작업 산출물의 형태가 html일 경우에는 이 방법을 포기하는 것이 좋다. 또는 개발을 입히지 않은 순수 퍼블리싱 코드만 들어간 jsp 파일을 잘 보존해두었다가 웹사이트 자동 추출도구 HTTrack Website Copier의 힘을 빌리는 것도 괜찮은 방법이다.
jsp 인클루드 구문
<%@page contentType="text/html;charset=utf-8"%>
<%@include file="../include/header.jsp"%>
<!-- Contents Area -->
<!-- //Contents Area -->
<%@include file="../include/footer.jsp"%>
<%@page contentType="text/html;charset=utf-8"%>
는 페이지 인코딩이며, 이를 입력하지 않을시 서버 세팅에 따라 본문의 한글 깨짐 현상이 있으니 유의하자.
php 인클루드 구문
<?php include "../include/header.php" ?>
<!-- Contents Area -->
<!-- //Contents Area -->
<?php include "../include/footer.php" ?>
asp 인클루드 구문
절대경로 지정시 – virtual
<!-- #include virtual="/include/header.asp" -->
<!-- Contents Area -->
<!-- //Contents Area -->
<!-- #include virtual="/include/footer.asp" -->
상대경로 지정시 – file
<!-- #include file="../include/header.asp" -->
<!-- Contents Area -->
<!-- //Contents Area -->
<!-- #include file="../include/footer.asp" -->