[JSP] 1.1 웹 어플리케이션과 웹 프로그래밍

2022. 4. 5. 22:29JAVA/Servlet&JSP

웹 어플리케이션이란 무엇인가?

  • 웹을 기반으로 실행되는 프로그램
  • 웹 브라우저의 요청을 알맞게 처리해서 결과를 생성해서 보여주는 프로그램

 

웹 어플리케이션의 구성 요소들

  • 웹 브라우저 : 사용자에게 화면(유저 인터페이스)을 제공
  • 웹 서버 : 웹 브라우저의 요청을 받아서 알맞은 결과를 웹 브라우저에게 전송합니다. 만약 프로그램 처리가 필요하면 어플리케이션 서버를 사용하거나 프로그램을 직접 호출하여 결과를 생성합니다.
  • 어플리케이션 서버 : 게시판의 글 목록, 로그인 처리와 같은 기능을 처리하고 그 결과를 웹 서버에 전달합니다.
  • 데이터베이스 : 사이트의 정보를 저장합니다. 예를 들어 회원정보, 게시판 글 데이터 등을 저장합니다.

 

1. CGI(Common Gateway Interface) 방식과 어플리케이션 서버 방식

웹 어플리케이션의 처리 순서

웹 서버가 웹 어플리케이션을 사용하는 방식의 종류

  • CGI(Common Gateway Interface) 방식
  • 어플리케이션 서버 방식

CGI란 무엇인가?

웹 서버와 프로그램 사이에 정보를 주고 받는 규칙을 의미함.

 

CGI 방식과 어플리케이션 서버 방식간의 차이점

웹 서버가 직접 프로그램을 호출하는지의 여부에 따라 다릅니다.

 

CGI 방식의 요청 처리 방식

웹 브라우저가 프로그램 실행을 요청한 경우 웹서버가 직접 CGI 프로그램 등을 직접 실행합니다. 그리고 실행한 프로그램이 생성한 결과를 웹 브라우저에게 전송합니다.

 

웹 어플리케이션 서버 방식

  • 웹서버가 웹 어플리케이션 서버를 통해서 간접적으로 웹 어플리케이션 프로그램을 실행
  • JSP와 ASP는 모두 어플리케이션 서버 방식을 취함
  • 어플리케이션 서버 방식의 전체 처리량이 CGI 방식보다 높음
    • CGI 방식은 동시에 여러개의 CGI 프로그램 실행을 요청받으면 요청 개수만큼 프로그램을 생성해야함
    • 요청 개수만큼의 프로그램들은 많은 메모리 공간을 요구함
    • 어플리케이션 서버 방식은 다수의 브라우저가 같은 프로그램을 요청하더라도 관련 프로그램을 메모리에 한번만 로딩함
    • 어플리케이션 서버 방식이 더 메모리 양을 적게 사용하기 때문에 더 많은 브라우저의 요청을 처리할 수 있으므로 전체 처리량이 CGI 방식보다 높음

다수의 브라우저가 동일한 프로그램을 요청받았을 때 CGI 방식

 

다수의 브라우저가 동일한 프로그램을 요청받았을 때 어플리케이션 서버 방식

 

처리 속도와 처리량

  • 처리 속도 : 어떤 작업을 수행하는데 걸리는 시간, 예를 들어 한 식당에서 요리사를 하나의 CPU로 비유했을때 음식이 나오는데 걸리는 시간을 처리 속도라 부를 수 있습니다.
  • 처리량 : 일정한 시간 동안 얼마나 많은 양의 작업을 처리했는지를 의미함. 예를 들어 A 식당에는 요리사(CPU)가 하나 있고 음식이 나오는 시간이 10초 걸린다고 합니다. 그리고 B 식당에는 요리사가 4명이 있지만 음식이 나오는 시간은 20초 걸린다고 합니다. 손님이 계속 음식을 요청한다고 가정하고 100초 동안 나오는 음식의 수는 A식당은 10개가 완성되고 B식당은 20개가 완성됩니다. 처리속도는 A식당이 빠를 수는 있지만 같은 시간 동안의 처리량은 B식당이 더 많다는 것을 알 수 있습니다.

 

2. 실행 코드 방식 구현 vs 스크립트 방식 구현

실행 코드 방식과 스크립트 방식 비교

기계어란 무엇인가?

  • 컴퓨터가 이해할 수 있는 코드 집합
  • 소스 코드는 컴퓨터가 이해할 수 없음
  • 소스 코드를 컴퓨터가 이해할 수 있는 언어로 변환해주는 과정이 필요한데, 그 과정을 컴파일(compile)이라고 함

 

실행 코드 방식과 스크립트 방식의 차이

  • 스크립트 방식은 중간에 스크립트 코드를 번역하는 과정이 포함됨
  • 실행 코드 방식보다 스크립트 방식이 실행속도가 더 빠름
    • 스크립트 코드 번역이 한번만 실행되기 때문에 이후 요청은 번역된 코드를 실행함

References

JSP 2.0 프로그래밍 기초부터 중급까지