Server Side Script

분류없음 2007.03.30 20:43
Server Side Script(서버 사이드 스크립트. 이하 SSS)란 웹의 관점에서 바라보았을 때 서버에서 실행되는 스크립트 언어를 가리킨다.

구체적으로는 클라이언트가 서버로 파일을 요청할 때, 미리 웹서버에 지정된 확장자를 클라이언트가 요청하는 경우 서버가 클라이언트에게 요청받은 내용을 전달하기 전에 지정된 스크립트 엔진을 이용해서 클라이언트가 지정된 내용 중 SSS로 작성된 부분을 스크립트 엔진이 실행해서 SSS로 작성된 코드 부분을 실행된 결과로 치환한 뒤 그 결과를 클라이언트로 보내게 된다.

보통 SSS가 하는 역할은 클라이언트가 파일을 HTTP로 요청하면서 HTTP 헤더에 부가적인 정보를 보내면 웹서버(정확히는 스크립트 엔진)는 그 정보를 이용해서 DB 서버에 접속, 결과를 도출해서 사용자에게 동적인 내용을 보여주는 것을 기본으로 한다. 이런 역할의 대표적인 것으로는 인터넷 게시판 등이 있다.

그렇지만 지금은 클라이언트에서 전달한 내용으로 동적인 내용을 구성하는 것을 넘어서 세션을 이용해서 사용자를 구별해서 각 사용자마다 다른 개인화 서비스를 제공한다거나 그래픽 라이브러리를 이용해서 동적인 이미지 생성을 해서 새로운 컨텐츠를 생산해내는 등 지금에 와서는 그 역할이 지극히 다양해졌다.

SSS를 공부하다 보면 가장 자주보는 실수가 바로 Client Side Script로 처리가 가능한 부분을 SSS로 처리하려고 하여 Client Side Script 안에 다시 SSS를 삽입하여 원하는 결과를 얻으려고 하는 행위 등이 있다. 이를 테면 JavaScript와 ASP를 공부중인 학생이 JavaScript로 쿠키의 값을 얻으려고 하였으나 JavaScript의 쿠키 값을 읽어들이는 루틴이 복잡하다고 생각하여 자바스크립트 중간에 ASP로 쿠키를 읽어들이는 코드를 넣는다던가 하는 부분 등이다. 이런 점을 막기 위해선 Server Side Script와 Client Side Script의 실행되는 위치를 명확하게 주지시킬 필요가 있다.

여담으로 マサキ君은 예전에 학교에서 ASP를 가르쳐주시던 선생님께서 'ASP같은 서버 사이드 스크립트들은 말하자면 HTML 생성기라고 생각하면 되지'라고 가르쳐주시던게 퍼득 떠오른다.

또한 웹 개발에 처음 뛰어드려는 사람은 Server Side Script와 Client Side Script의 실행 위치와 능력의 한계, 두 스크립트 언어의 차이점을 명확히 알아둘 필요가 있다.

대표적인 Server Side Script는 ASP, PHP, JSP 등이 있으며, 이러한 SSS들의 대다수는 보통 HTML 태그 중간에 여는 꺽쇠와 정해진 한개의 문자를 조합해서 여는 태그로 삼고 역시 정해진 문자 하나와 닫는 꺽쇠를 이용해서 닫는 태그로 삼고 그 사이에 언어에 맞는 코드를 집어넣게 된다. 예를 들어 ASP는 <%로 시작해서 %>로 끝나며 PHP는 <?로 시작해서 ?>로 끝나며 그 사이에 프로그램 코드가 들어가게 된다. 만약 웹서버 설정을 잘못해서 지정 확장자에 스크립트 언어로 맵핑하는 것을 잊었다던가 Server Side Script와 Client Side Script의 차이점을 잘 모르는 사람이 실수로 클라이언트에서 실행하게 되면 SSS의 코드는 모두 무시되고 처리된다. 이것은 <로 시작해서 >로 끝나는 항목이 있으면 태그로 인식하는 브라우저의 특정(정확히는 기존 HTML 4.01의 특성)에 기인한 것이다.
Posted by マサキ君