웹 프로그래밍: WWW(이하 웹(Web)) 기반에서 동작되는 프로그래밍 방식.
하이퍼텍스트를 기반으로 이루어진 것. 문서 활용에 엄청난 편리성을 제공함.
사용자 인터페이스를 제공하게 됨, SNS와 URL 등 다양한 활용방안이 생김.
HTML
* 웹의 발전에 가장 중요한 역할을 한 마크업 언어로, 정보를 한곳에 모아주는 역할을 한다.
(마크업 언어란, 일연의 요소를 단순하게 나열한 것으로, 이때 각 요소들은 어떠한 특수 문자들에 의해 구분되며, 특수 문자 안에 포함되어 있는 일련의 구문이나 다른 항목을 어떻게 표시할지를 정하는 언어. ex) <p>문장의 단락</p> 와 같은 형태로 표현됨. 이러한 마크업 언어들 중에서 HTML은 문서의 내용을 표시하는 것에 중점을 둔 언어.
* 정적인 웹 페이지를 작성하기에 적합.
동적 웹 페이지
HTML의 단점: 프로그래밍 코드를 사용할 수 없다는 점과 데이터베이스 연동을 할 수 없다는 점.
HTML의 단점 때문에 등장한 것이 동적 웹 페이지. 옛날에 우리가 개인 홈페이지를 만들 때는 HTML 태그와 CSS, JavaScript 만으로 충분했음.
(CSS: 마크업 언어인 HTML 등이 실제 표현되는 방법을 기술하는 언어이다.)
(JavaScript: 객체 기반의 스크립트 프로그래밍 언어로, Ajax 기술에서는 ActiveX(마이크로소프트사에서 개발한 재사용 컴포넌트)를 대체하며, HTML5에서는 Canvas를 사용해 플래시(Flash)를 대체할 때 사용한다.)
(Ajax (Asynchronous JavaScript + XML): JavaScript에 의한 비동기적인(Asynchronous) 통신으로 XML 기반인 데이터를 클라이언트인 웹 브라우저와 서버 사이에서 교환하는 방법. 여기서 비동기적인 통신이란 서버가 응답을 받을 준비가 되어 있는지와 상관없이, 웹 브라우저가 서버로 정보를 전송하는 것을 뜻한다. 따라서 사용자는 언제 정보가 전송되었는지 알지 못하며, 이와 같은 방법을 사용하는 Ajax는 정보를 더 빨리 전송한다.)
하지만 요즘은 글이나 댓글들 조차 데이터 베이스에 저장이된다. HTML만으로는 방대한 대이터나 쇼핑몰과 같은 실시간으로 수많은 데이터의 변화를 처리하거나 저장하기에는 불가능하다. 그래서 CGI, ASP, PHP, JSP등이 개발 되었다. 웹 프로그래밍은 기본적으로 클라이언트/서버 방식 이다.
Sevrvlet과 JSP
Servlet은 클라이언트를 쓰레드로 처리함. 그래서 많은 클라이언트의 요구를 효과적으로 처리할 수 있다.
(쓰레드: 프로세스 내의 명령어 블록으로 프로세스 내에 있는것. 프로세스 이미 메모리를 할당받았으므로 쓰레드는 메모리를 할당받지 않는다. 하나의 프로세스를 여러 개의 쓰레드로 나누어 동시에 처리하는 것을 다중 쓰레딩 이라 한다. 다중 쓰레딩은 메모리는 점유하지 않으면서 프로그램의 수행 속도를 향상시킨다.)
JSP와 Servlet은 자바 기반으로 만들어진 웹 프로그래밍 언어. JSP는 Servlet에 비해 자바 코드에 덜 의존적이라 프로그래밍 하기가 보다 쉽고 편하다. JSP와 Servlet은 같은 처리 구조를 가진다. 보다 엄밀히 말하면 JSP는 페이지의 요청이 있을 때, 최초에 한 번 자바 코드로 변환된 후 Servlet 클래스로 컴파일 된다. 결론적으로 JSP는 실행시 Servlet으로 변환된다. 수행 속도에서는 JSP나 서블릿 간에 별 차이가 없다.
서블릿과 JSP는 상호 연계되어 작동하는데, JSP에서 정적인 부분을 담당하고 서블릿에서 보다 동적인 부분을 담당하여 효율적인 웹 사이트 구성이 가능하다. JSP는 주로 사용자용 화면인 뷰(View)의 구현에 사용되고, 서블릿은 사용자용 뷰와 프로그램 로직 사이를 제어하는 역할에 사용된다.
쓰레드 기반으로 사용자의 요청을 받아들이므로 동시에 다수의 사용자를 받아들이더라도 서버의 응답 속도가 많이 떨어지지 않는다는 장점에도 불구하고 Servlet은 그다지 사랑받지 못하고 있다. 이유는 Java 프로그램을 작성하는 형식과 같은 방식으로 웹 페이지를 작성하기 때문에 Java를 미리 학습하지 않으면 작성하기가 어렵기 때문이다.
JSP 역시 자바를 기반으로 한다. 하지만 ASP나 PHP 와 같이 서버에서 실행되는 스크립트 언어 방식으로 동적인 웹페이지를 작성하므로 서블릿의 장점은 그대로 가지고 있으며 작성하기가 쉽다는 장점이 더해졌다.
JSP는 자바 서블릿 기술을 확장시켜 웹 환경상에서 100% 순수한 자바만으로 서버 사이드 모듈을 개발할 수 있는 기술. 서버 사이드에서 백 엔드 서버와 연동하여 웹상의 최종 사용자에게 표시 가능.
JSP에 대해 요약하면,
*객체지향적이다.
*플랫폼에 독립적이다.
*보안성이 뛰어나다.
*멀티쓰레드를 지원한다
*C언어 기반으로 코드의 접근성이 용이하다
*분산 프로그래밍을 지원한다.
-은노기의 JSP 웹 프로그래밍 입문 22p 까지-