서버 편 스크립트이다. 서버 클라이언트 개념을 살짝 언급하면 서버는 어딘가 존재하는 클라이언트를 대응하는 프로그램이고, 클라이언트는 내가 보고 있는 프로그램이다. 내가 보고 있는 브라우저가 클라이언트이다.
내가 보고 있는 스마트폰앱이 클라이언트이다. 요즘은 컴퓨터에서만 또는 스마트폰에서만 동작되는 프로그램은 거의 없다고 생각된다. 시계앱이라든가 계산기 정도가 아닐지, 시계앱도 요즘은 다양한 앱들이 많아서 서버 연동될 가능성이 높아보인다.
서버와 클라이언트는 상호 통신을 한다. 브라우저를 켜고 특정 웹사이트에 접속을 하려고 하면 클라이언트에서 요청이 서버로 가고, 서버에서 해당 페이지를 응답해준다. 서버와 클라이언트가 통신을 한다. 이때 서버측에 있는 프로그램을 서버 사이드 프로그램이라고 한다.
서버 사이드 스크립트는 프로그램 중에서도 스크립트 형태의 프로그램을 지칭한다. 웹사이트 접속 시 클라이언트에서 해석되어지고, 실행되는 프로그램은 클라이언트 사이드 프로그램이다. 여기서 해석되어지고라고 표현것이 스크립트 언어의 특징이고, 실시간의 의미이다. 그리고 이러한 요청가운데, 서버의 특정 기능 호출 시 서버 내에서 동작되는 기능이 있다. 이것을 서버 사이드 스크립트라고 한다. 예를 들면 DB 접속이라든가 내부 로직 같은 것은 서버 내에서 동작을 하고, 클라이언트까지 그 코드가 내려오지는 않는다. 서버에서 실행된다. 필요한 경우 결과 값은 클라이언트로 보내지기도 한다.
예를 들어 메일을 전송하는 웹사이트에 접속했다고 하면 메일 쓰기 페이지는 클라이언트 영역에 해당된다. 메일을 작성을 하고 해당 폼에서 전송 버튼을 누르면 브라우저에서 작성된 내용이 먼저 서버로 전송이 되고, 서버에서 받은 내용을 메일 서버를 통해서 타 메일 서버로 전송을 한다. 이때 서버에서 받은 내용을 DB에 저장할 수도 있고, 필요에 따라서 첨부파일의 경우 파일로 남길 수도 있다. 이것은 서버 사이드의 영역이고, 서버 내에서 처리가 된다.
서버 사이드 프로그램은 클라이언트로 전송이 안되는 부분이며, 보안적인 측면에서도 리스크가 있어서 클라이언트로 오지 않는다. 스크립트 언어 특성상 코드가 그대로 노출이 된다. 브라우저에서 소스 보기 기능을 제공을 한다. 클라이언트 코드의 경우는 바로 볼 수가 있다. 서버 코드는 클라이언트로 전송되지 않아서 볼 수는 없다. 이러한 서버 사이드 스크립트 개발은 스크립트 언어의 장점인 개발이 쉽다는 점을 장점으로 가진다. 스크립트의 특성상 복잡한 로직 개발에는 어려움이 있을 수 있다.
최근 node.js라든가 python, php 언어들이 서버 사이드 스크립트에 해당된다. 서버 개발에 시간이 매우 단축될 수 있으며, 수정도 간편할 수 있다. node.js의 경우는 그 자체로써 서버 기능을 가지고 있어서 성능면에서 오히려 우수하다는 평가를 받고 있다. 과거 대표적인 서버 사이드 프로그램은 asp, jsp였다. 현재도 많이 사용되고 있고, 페이지를 개발하면서 서버의 값들을 보여줄 수 있는 유연함이 있어서 많이 사용된다. active server page라는 의미에서 보면 기존 페이지들이 정적이였다고 하면 값들을 바꾸거나 보여줄 수 있다는 점에서 좀더 기능을 포함하였다. Ajax와는 다른 개념으로써의 다양한 값들의 노출이다. Ajax의 경우에는 현재 페이지가 로딩되면서 값을 가져올 수 있다는 점에서 동적 페이지 구성이 가능한 것이고, asp는 DB의 값이나 파일의 값을 불러 들여서 보여줄 수 있는 수준의 다양성을 의미한다.
아래 영상으로도 올렸어요~ 참고하세요~!
책처럼 전체를 보기를 원하시면 아래 링크를 클릭하시고 북마크 하셔서 보시면 편리합니다.
안드로이드 사용하시는 분이시면 '기술노트' 받으시면 스마트폰으로도 전체 책처럼 보실 수 있습니다.
https://play.google.com/store/apps/details?id=com.hitouch.wikibook
'쉽게 풀어본 IT 기술 ' 카테고리의 다른 글
Java 기반 서버 - J2EE (0) | 2018.08.31 |
---|---|
jQuery는 무엇인가? 자바스크립트는 쉽다? (0) | 2018.08.31 |
스크립트로 서버 개발하는 node.js (0) | 2018.08.31 |