[서블릿 - 웹프로그램의 발전 과정, 종류]

yedy·2023년 5월 16일
0

[Servlet]

목록 보기
2/6
post-thumbnail

✔️ 서블릿

웹 기반 프로그램(웹 브라우저에서 실행되는 서비스)

  • 프로그램 발전 과정
  1. 클라이언트 PC 기반 프로그램
    ex) CD로 프로그램 설치하는 방식
  2. 클라이언트/서버 프로그램
    ex) 이제는 다같이! 야후의 꾸러기 사이트 같은 것.. 모두가 동일한 화면
  3. 웹 기반 프로그램
    ex) 사용자들마다 웹을 보는데 다 다른 커스텀으로 보는 것. 내가 저장한 내용이 나오도록 하는 것

✔️ 클라이언트 PC 기반 프로그램

클라이언트 PC에서 실행되는 자바 로 구현한 환율 계산기

파운드로 유로화 변환 기능이 추가된 환율 계산기

-> 소스 코드를 추가 후 다시 모든 클라이언트 PC에 설치하거나 업그레이드를 해야 한다 ㅠ 자동 업그레이드가 안되는 것!

✔️ 클라이언트/서버 기반 프로그램

클라이언트(사용자) : 사용자 pc에서 실행되면서 입력받는 기능 그리고 서버에서 전송된 데이터를 화면에 출력해 주는 기능(데이터 송수신 기능만 제공)
서버 : 모든 중요한 실제 기능을 실행!

클라이언트 프로그램응은 화면 기능과 데이터 송수신만 제공
모든 기능은 서버에서 수행 !!

서버가 담당하는 계산기 기능

클라이언트/서버 기반 프로그램의 특징

  • 기능이 변경되어도 모두 서버에서 처리하므로 클라이언트 프로그램은 수정할 필요가 없음
  • 중요한 기능은 서버에서 처리하므로 보안 측면에서도 우수함
  • 그러나 사용자에 관련된 화면 기능이 바뀌면 클라이언트 프로그램도 수정해서 다시 설치해야함

✔️ 웹 기반 프로그램

화면과 데이터 처리를 모두 서버에서 수행함

  1. 브라우저에서 웹 페이지를 요청한다.
  2. 브라우저는 서버에서 전송된 HTML을 화면에 표시한다.

웹 기반 환율 계산기 동작 과정
1. 화면에서 처리할 데이터를 입력 후 서버에 요청
2. 서버는 브라우저에서 전송된 데이터를 받아서 처리
3. 서버는 처리 결과를 브리우저로 전송해서 결과를 보여준다!

웹 기반 프로그램의 특징

  • 화면과 로직을 서버에서 모두 처리하므로 클라이언트가 특별히 수행할 작업이 없음
  • 모든 기능이 서버에서 처리되므로 보안 면에서도 월등히 우수함.

화면과 계산 기능을 모두 처리하는 환율 계산기


🔺 웹 기반 프로그램이 인기가 있는 이유

  • 플랫폼 독립성 : 웹 기반 프로그램은 특정 운영 체제나 플랫폼에 종속되지 않음. 사용자는 웹 브라우저만 있으면 어디서든 웹 기반 프로그램에 접근 가능. 이는 모바일 기기, 태블릿, 데스크톱 등 다양한 장치에서 일관된 사용자 경험을 제공할 수 있음을 의미.

  • 쉬운 배포와 업데이트 : 사용자가 소프트웨어를 설치할 필요가 X. 개발자는 새로운 버전의 sw를 배포하거나 업데이트가 간편해진다. 사용자는 항상 최신버전을 사용할 수 있고 업데이트에 대한 번거로움이 줄어든다.

  • 다중 사용자 접근 : 여러 사용자가 동시에 애플리케이션에 접속하여 데이터를 공유하고 협업 가능.

  • 업데이트와 버그 수정의 용이성 : 서버에서 실행되기 때문에 업데이트와 버그 수정이 상대적으로 쉽다. 사용자들은 새로운 기능과 개선사항을 빠르게 받아볼 수 있고, 버그 수정이 이루어지면 모은 사용자에게 즉시 반영.

🔺 웹 기반 프로그램이 인기가 있는 이유

  • 접근성과 편의성 : 인터넷에 연결된 장치에서 접근할 수 있으므로 지리적 제약이X. 사용자는 집, 사무실, 카페 또는 이동 중에도 엑세스 할 수 있다. 또한 사용자가 소프트웨어를 설치하거나 구성할 피료가 없으므로 사용자 경험이 간소화되고 사용이 편리.

  • 상호 운용성 : 다른 시스템과의 상호 운용성 달성 가능. API를 통해 다른 애플리케이션과 데이터를 공유하고 통합 가능

  • 사용자 경험 개선 : 최신 웹 기술과 디자인을 활용하여 풍부하고 직관적인 사용자 인터페이스를 구성.


✔️ 정적(static) 웹 프로그래밍

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

정적(static) 웹 프로그래밍 구성요소 (고정된 화면이나 정보표시에 사용)

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

정적 웹프로그래밍의 문제점

✔️ 동적 웹 프로그래밍

실시간 정보를 미리 db에 저장해 놓고 클라이언트가 요청시 결과 전송


WAS : 환율 조회 기능을 메모리에 업로드해서 데이터뷰에 연동 후 조회한 결과를 반환

✔️ JSP 프로그램의 특징

브라우저 요청시 스레드 방식으로 실행하므로 CGI보다 효율적으로 기능을 수행함
스레드 방식 : 프로그램이 동시에 여러 작업을 처리할 수 있는 실행 모델 동기화 처리에 주의해야 하고 프로그래머가 직접 추가적인 동기화 기능을 구현해야 한다.

  • 클라이언트1이 환율 정보 요청시 WAS는 환율 조회 기능을 메모리에 생성한 후 데이터베이스와 연동해서 환율 정보를 얻어온 후 클라이언트1에게 결과를 반환
  • 다시 클라이언트 2가 환율 정보 요청 시 기존에 서비스를 담당했던 환율 정보 기능이 메모리에 존재하므로 이 환율 조회 기능을 이용해서 환율 정보를 가져옴
  • 따라서 각각의 요청에 대한 기능을 메모리에 따로 로드하지 않음(재사용)

JSP 동작 방식의 특징

  • 프로세스 방식이 아닌 스레드 방식으로 실행
  • 클라이언트 요구를 처리하는 기능은 최초 한번만 메모리에 로드됨
  • 클라이언트가 동일한 기능을 요구하면 기존에 사용한 기능을 재사용함
  • 따라서 프로세스 방식으로 동작하는 것보다 훨씬 빠르게 수행할 수 있음

JSP 프로그램은 다수의 사용자가 동시에 요청하는 웹 프로그램에 적합하다!
프로그램 실행에 가장 많이 시간이 걸리는 부분은 메모리에 로드하는 과정


profile
공주 개발자

0개의 댓글