Back-end/JSP

프로그램의 발전 과정, 웹 프로그래밍과 JSP

메델 2023. 1. 19. 10:00

1장 프로그램의 발전 과정

 

웹 프로그램은 클라이언트 PC 기반 프로그램 → 클라이언트 서버 기반 프로그램   웹 기반 프로그램 순으로 발전해왔다.

 

(1)  클라이언트 PC 기반 프로그램

:일반 클라이언트 PC에서 클라이언트가 직접 설치해서 사용한다.

 

(한계점)

 1. 기능이 자주 변경되는 프로그램의 경우 수시로 사용자 PC마다 프로그램을 업데이트하거나 새로 설치해야한다.

 2.  만약에 클라이언트 프로그램에 데이터베이스 접속정보가 들어 있다면 정보가 쉽게 노출될 수 있어 보안에 취약하다.

 

(2) 클라이언트 - 서버 기반 프로그램

: 기존 클라이언트가 수행하는 모든 기능을 서버에서 수행하며 클라이언트는 데이터 송신과 수신, 화면 출력만 한다.

클라이언트 - 서버 기반 프로그램 구조도

 

(장점)

1. 클라이언트 - 서버 기반 프로그램은 기능이 변경되어도 모두 서버에서 처리하므로 클라이언트 프로그램을 수정할 필요가 없다.

2. 중요한 기능은 서버에서 처리하므로 클라이언트 PC 기반 프로그램보다 데이터 보안 측면에서 우수하다.

 

(한계점)

1.  유저에 대한 화면 기능이 바뀌면 클라이언트 프로그램도 수정해야한다.

 

(3) 웹 기반 프로그램

: 사용자가 사용하는 프로그램의 기능이나 화면이 바뀌면 서버에서 모두 처리한다.

 

(특징)

1. 화면과 로직 모두 서버에서 처리하므로 클라이언트가 특별히 수행할 작업이 없다.

2. 모든 기능이 서버에서 처리되므로 보안 측면에서도 우수하다.

 

웹 브라우저 기반 프로그램 구조

 

1. 클라이언트는 자신이 설치하는 클라이언트 프로그램을 직접 설치하는 것이 아니라 사용자 컴퓨터의 웹 브라우저를 통해 화면에 해당하는 HTML 문서를 서버에 요청

2. 서버에서 요청받은 HTML 문서를 브라우저에 전송하여 해당 기능을 담당하는 화면 표시

웹 기반 환율 계산기 동작 과정

 

1. 화면에서 처리할 데이터를 입력받아 서버에 처리 요청

2. 서버는 화면에서 입력한 데이터를 받아서 처리

3. 서버는 처리 결과를 웹 브라우저로 전송하여 결과를 보여준다.

 

2장 웹 프로그래밍과 JSP

(1)  정적 웹 프로그래밍

  • 웹 서버에 미리 보여줄 HTML 페이지, CSS, 이미지, 자바 스크립트 파일을 저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식
  • 유저는 페이지가 변경되지 않는 한 고정된 웹 페이지를 보게 된다 → 실시간 정보를 표시하는데는 적합하지 않음
  • 화면의 디자인을 구성하거나 클라이언트의 이벤트 처리
  • 정부 수정 시 관리자가 직접 HTML 소스를 수정하여 사용자에게 정보 제공

정적 웹 프로그래밍의 구성요소 

  • 웹 서버 : 각 클라이언트에게 서비스를 제공하는 컴퓨터를 의미
  • 클라이언트: 네트워크로 서버에 접속한 후 서버로부터 서비스를 제공받는 컴퓨터를 의미
  • HTTP 프로토콜: www 서비스를 제공하는 통신 규약을 의미한다. 웹 서버와 클라이언트는 HTTP 프로토콜을 이용해 정보를 주고받는다.
  • HTML(Hyper Text Markup Language): www 서비스를 제공하기 위한 표준 언어 
  • 자바스크립트: HTML 웹 페이지의 여러가지 동적인 기능을  제공하는 스크립트 언어
  • CSS: HTML 문서에서 글시체나 색상, 정렬 등 세부적인 HTML 페이지의 디자인에 관련한 여러 가지 기능 제공 

(2)  동적 웹 프로그래밍

: 빠르게 변하는 사용자들의 요구를 만족 시키고자 동적으로 기능을 처리하는 방식으로 웹 프로그래밍 수행

 

  • 관리자가 하던 역할을 웹 애플리케이션 서버가 수행
  • 데이터베이스에 클라이언트의 요청이 있을 때마다 데이터베이스에 접근하여 실시간 정보를 클라이언트에서 제공

동적인 방식으로 환율 정보를 얻는 과정

 

CGI(Common Gate Interface, 공용 게이트웨이 인터페이스)

  • 초기 웹 프로그래밍에서 사용하던 방식
  • 프로세스 방식으로 실행 
  • 서버의 부하가 심하다 
  • 프로그래밍 언어인 perl이 대표적인 CGI 프로그래밍 언어 

 

프로세스 방식으로 동작하는 과정

CGI의 문제점

: 동일한 기능을 수행하더라도 각 경우에 대해 처음부터 메모리에 기능을 load하여 수행해야한다. 초기 인터넷 환경에서는 이러한 방식이 문제가 없었으나 오늘 날처럼 사용자 수도 많고 동시에 처리해야할 일이 많은 상황에서 이러한 방식으로 서비스를 한다면 메모리에 과부하가 일어나 기능 수행이 어렵다. 

 

→ 이러한 문제점을 개선하여 나온 것이 JSP, ASP, PHP와 같은 동적 웹 프로그래밍 기술

 

(3)  JSP 프로그램 특징

  • 프로그램 방식이 아닌 스레드 방식으로 실행
  • 클라이언트의 요구를 처리하는 기능은 최초 한 번만 메모리에 load
  • 클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능을 재사용

 

스레드 방식으로 동작하는 JSP

 

동일한 기능을 요구하는 경우 각각의 요청에 대한 기능을 메모리에 따로따로 load하지 않아도 된다.

프로그램을 외부장치에서 메모리를 로드하는 것은 스레드로 수행하면 거치지 않아도 되기 때문에 CGI 프로그램보다 빠르게 동작한다.

 

(참고: 자바 웹을 다루는 기술)

'Back-end > JSP' 카테고리의 다른 글

Servlet 비즈니스 로직 처리  (0) 2023.01.24
Servlet 기초  (0) 2023.01.21
Servlet 이란?  (0) 2023.01.20
웹 애플리케이션  (0) 2023.01.19