상세 컨텐츠

본문 제목

[WEB] 웹 기반 프로그래밍 - 정적 웹프로그래밍과 동적 웹프로그래밍

Backend/서버프로그래밍

by 사랑짱 2021. 6. 19. 08:55

본문

 

앞서 웹 기반 프로그램이 어떻게 자리잡게 되었는지 알아보았다.

 

이번에는 웹 기반 프로그램이 어떻게 발전하였는지, 

그리고 지금은 어떻게 웹 프로그래밍이 이루어지는지 알아보자!

 

 

◆ 정적 웹 프로그래밍(Static)이란?

웹 서버(Apache)에 미리 보여줄 HTML 페이지, CSS, 이미지, 자바스크립트 파일을

  저장해 놓고 브라우저에서 요청할 경우 그대로 전달하는 방식

- 사용자는 페이지가 변경되지 않는 한 고정된 웹페이지를 볼 수 있으며

  주로 디자인을 구성하거나 클라이언트의 이벤트를 처리

 

<문제점>

정적 웹프로그래밍에서는 관리자가 수작업으로 HTML코드를 업데이트하기 때문에

아래와 같은 문제가 발생한다.

1. 사용자에게 디자인 같은 고정된 정보만 제공가능
2. 정보 수정 시 관리자가 직접 HTML소스를 수정
3. 실시간 정보 제공받는 데 한계가 발생

 

 


 

 

 동적 웹 프로그래밍(Dynamic)이란?

 

- 정적 웹 프로그래밍의 단점을 보완한 방식으로

  관리자의 역할을 웹 애플리케이션 서버(Web Application Server, WAS)가 수행

- 클라이언트의 요청이 있을 때 데이터베이스로부터 실시간 정보를 얻어 클라이언트에게 전송

- 처음에 동적인 방식으로 프로그램을 제공하는 기능은 CGI이며 펄(Perl)이 대표적인 CGI언어임

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

 

<CGI방식의 문제점>

동적 웹 프로그래밍은 CGI방식이자 프로세스 방식으로 실행된다.

 

프로세스 방식으로 실행되면,

클라이언트가 호출할 때마다 특정기능이 새로운 메모리에 올라오게 된다.

이로 인해 아래와 같은 문제가 발생한다.

1. 같은 기능을 수행하더라도 각 경우에 대해서 처음부터 메모리에 로드하여 수행해야 한다.
2. 초기 인터넷 환경에선 사용자 수와 수행할 기능이 적으므로 실행문제를 발생시키지 않지만
   사용자 수가 급격히 늘고 기능이 복잡해지면서 이런 방식으로 서비스 수행 시 메모리 과부하가 발생한다.

 

 

위와 같은 CGI 방식을 개선하기 위해 나온 기술이
JSPASPPHP와 같은 서버사이드 스크립트 언어이다.

 

◆ JSP 

- 기본적으로 Thread 방식

- 클라이언트의 요구를 처리하는 기능은 최초 한번만 메모리에 로드

- 새로운 클라이언트가 기존의 클라이언트들과 동일한 기능을 요구한다면 재사용

 

 

 

 

관련글 더보기