[Web] 1. 웹 프로그래밍과 JSP

2024. 8. 5. 21:48자바 웹 개발/서블릿 기초

1. 웹 프로그래밍의 기본

 

JSP 이전에 아파치를 이용해 웹 페이지를 브라우저에 표시하는 방식이 존재하였음. 이 방식을 정적(static) 웹 프로그래밍이라고 합니다. 정적 웹 프로그래밍은 서버에 HTML/CSS/image/JS 파일을 저장해 놓고 요청을 받으면 그대로 전달하는 방식입니다. 정적 웹 프로그래밍은 실시간으로 변하는 정보를 담기 어렵기 때문에 최근에는 사용되지 않는다. 하지만 정적 웹 프로그밍 요소는 여전히 화면 디자인과 기능 처리를 담당하여 사용되고 있으니 공부가 필요하다. 

 

2. 정적 웹 프로그래밍

 

정적 웹 프로그래밍이 새로운 정보를 제공하려면 관리자가 정보를 수정하여 클라이언트에 제공해야한다. 하지만 이는 정보 속도가 빨라지고 있는 현실에서는 불가능하다. 즉, 정적 웹 프로그래밍의 특징은 다음과 같다. 

 

클라이언트 <=> 웹 서버 <=> 관리자

3. 동적 웹 프로그래밍

관리자가 하던 역할을 웹 애플리케이션 서버가 수행한다. 동적 웹 프로그래밍에서는 실시간 정보가 저장된 데이터베이스에 클라이언트 요청이 있을 때마다 데이터베이스에 접근하여 정보를 제공할 수 있다. 

 

클라이언트 <=> 웹 서버 <=> 웹 애플리케이션 서버 <=> 데이터베이스 

 

처음에 동적인 방식으로 프로그램을 제공하는 기능은 CGI(Common Gate Interface, 공용 게이트웨이 인터페이스)였다. 대표적인 CGI 프로그래밍 언어가 펄(perl)이다. 하지만 CGI 방식은 웹 애플리케이션 서버에서 실행되는 기능들이 모두 프로세스 방식으로 실행된다. 그래서 모든 요청에 대해 처음부터 메모리에 기능을 로드하여 수행해야한다. 사용자가 많으면 메모리에 과부하가 걸리는 단점이 있다. 

 

이를 해결하기 위해 JSP, ASP, PHP가 등장하였다. 

 

4. JSP 프로그램의 특징

 

JSP는 스레드 방식으로 실행하기 때문에 CGI보다 효율적으로 기능한다. JSP는 클라이언트의 요구를 처리하는 기능은 최초 한 번만 메모리에 로드된다. 클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능을 재사용한다. 따라서 각 요청에 에 대한 기능을 메모리에 따로 로드하지 않아도 된다. 현재 대부분의 웹은 스레드 방식으로 동작한다.