[꼼꼼한 개발자] 꼼코더
02. [자바 웹을 다루는 기술] - 웹 프로그래밍과 JSP 본문
반응형
🧍🏻♂️ 정적(static) 웹 프로그래밍
- 설명
- 웹 서버(Apache)에 미리 보여줄 HTML, CSS, JS 파일을 미리 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식이다.
- 사용자변경 혹은 페이지 변경이 되지 않는 한 고정된 웹 페이지를 보게된다.
- 주로 화면의 디자인을 구성하거나 클라이언트의 이벤트를 처리한다.
- 환율 정보나 주가 정보 등 실시간 정보를 표시하는 데는 적합하지 않다.
- 구성요소
- 웹 서버 : 각 클라이언트에게 서비스를 제공하는 컴퓨터를 의미한다.
- 클라이언트 : 네트워크로 서버에 접속한 후 서버로부터 서비스를 제공받는 컴퓨터를 의미한다.
- HTTP : www 서비스를 제공하는 통신 규약을 의미 웹 서버와 클라이언트는 이 프로토콜을 이용하여 정보를 주고받는다.
- HTML : www 서비스를 제공하기 위한 표준 언어이다.
- JS : HTML 웹 페이지의 여러 가지 동적인 기능을 제공하는 스크립트 언어이다.
- CSS : HTML 문서에서 서체나 색상, 정렬 등 세부적인 HTML 페이지의 디자인 관련된 기능을 말한다.
- 문제점
- 실시간으로 변하는 환율 정보나 주가 정보를 제공하기 위해서는 관리자가 수작업으로 HTML 코드를 주기적으로 업데이트해야 한다. 예) 10분 간격으로 환율 정보를 소스파일에 수정한다.
- 사용자에게 디자인과 같은 고정된 정보만 제공할 수 있다.
- 실시간 정보를 제공받기를 원하는 사용자들에게 적합하지 않은 방식이다.
🏃🏻♂️ 동적(Dynamic) 웹 프로그래밍
- 설명
- 정적 웹 프로그래밍에서 관리자의 역할을 웹 애플리케이션 서버(Web Application Server, Was)가 수행한다.
- 클라이언트의 요청이 있을 때마다 데이터베이스에 접근해서 실시간 정보를 얻어 클라이언트에게 전송한다.
- 처음에는 동적인 방식으로 프로그램을 제공하는 기능은 CGI(Common Gate Interface, 공용 게이트웨이 인터페이스)였다. CGI의 대표적인 언어는 펄(Perl)이다
- 동적(Dynamic) 동작
- 클라이언트(사용자)들이 환율 정보를 웹 서버에 요청한다.
- 웹 서버는 받았던 요청을 웹 애플리케이션 서버(WAS)에 요청한다.
- 웹 애플리케이션 서버(WAS)는 데이터베이스에 실시간으로 저장된 환율정보를 조회하여 클라이언트에게 반환한다.
🧎🏻♂️ 공용 게이트웨이 인터페이스(CGI)
- 설명
- 초기 웹 프로그램에서 사용하는 방식이었다.
- 프로세스(Process) 방식으로 실행된다.
- 서버의 부하가 심하다.
- 프로세스 방식으로 동작
- 클라이언트 1(사용자)이 환율 정보를 웹 서버에 요청한다.
- 웹 서버는 받았던 요청을 웹 애플리케이션 서버(WAS)에 요청한다.
- 웹 애플리케이션 서버(WAS)는 환율조회기능을 메모리에 업로드하여 데이터베이스에 연동 후 조회한 결과를 클라이언트에게 반환한다.
- 또다시 클라이언트 2(사용자)가 환율 정보를 웹 서버에 요청한다.
- 웹 서버는 받았던 요청을 다시 웹 애플리케이션 서버(WAS)에 요청한다.
- 웹 애플리케이션 서버(WAS)는 환율조회기능을 또 다시 메모리에 업로드하여 데이터베이스에 연동 후 조회한 결과를 클라이언트에게 반환한다.
- 문제점
- CGI 방식은 같은 기능을 수행하더라도 각 경우에 대해서 처음부터 메모리에 로드해서 수행해야 한다.
- 초기 인터넷 환경에선 사용자 수와 수행할 기능이 적으므로 실행 문제를 발생시키지 않는다.
- 사용자 수가 급격히 늘고 기능이 복잡해지면서 이런 방식으로 서비스 수행 시 메모리에 과부하가 걸리는 문제를 발생시킨다.
- 이러한 문제를 해결하면서 나온 기술들이 JSP, ASP, PHP이다.
💻 JSP(Java Sever Page) 프로그래밍
- 설명
- 브라우저 요청 시 스레드(thread) 방식으로 실행하므로 CGI보다 효율적으로 기능을 수행함
- 스레드 방식으로 동작
- 클라이언트 1(사용자)이 환율 정보를 요청한다.
- 웹 서버는 받았던 요청을 웹 애플리케이션 서버(WAS)에 요청한다.
- 웹 애플리케이션 서버(WAS)는 환율조회기능을 메모리에 업로드하여 데이터베이스에 연동 후 조회한 결과를 클라이언트 1에게 반환한다.
- 다시 클라이언트 2(사용자)가 환율 정보를 요청한다.
- 3번 메모리에 로드된 환율정보기능을 재사용하여 클라이언트 2에게 반환한다.
- 장점
- 클라이언트 요구를 처리하는 기능은 최초 한 번만 메모리에 로드된다.
- 클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능을 재사용한다.
- 프로세스 방식으로 동작하는 것보다 훨씬 빠르게 수행할 수 있다.
위 자료는 ‘자바 웹을 다루는 기술’의 저자 이병승 님의 강의를 참고하여 작성하였습니다.
https://www.youtube.com/user/126leebs
'Servlet, JSP > 자바 웹을 다루는 기술' 카테고리의 다른 글
01. [자바 웹을 다루는 기술] - 프로그램의 발전 과정 (0) | 2023.01.11 |
---|
Comments