본문 바로가기
스프링 부트/자바 웹을 다루는 기술

2.3 동적 웹 프로그래밍

by 989898 2024. 1. 16.

이번에는 동적인 방식을 알아보자. 그림 2-2를 볼까?? 그림 2-1에서 관리자가 하던 역할을 웹 애플리케이션 서버가 수행한다. 따라서 이번에는 실시간 환율 정보가 저장되어 있는 데이터베이스에 클라이언트의 요청이 있을 때마다 데이터베이스에 접근하여 실시간 정보를 클라이언트에게 제공할 수 있다. 최근에는 빠르게 변하는 사용자들의 요구를 만족시키고자 이처럼 동적으로 기능을 처리하는 방식으로 웹 프로그래밍을 수행한다.

처음에 동적인 방식으로 프로그램을 제공하는 기능은 CGI(Common Gate Interface, 공용 게이트웨이 인터페이스)였다. 프로그래밍 언어인 펄(perl)이 대표적인 CGI 프로그래밍 언어이다. CGI 동작 방식의 대표적인 특징은 다음과 같다.

 

 초기 웹 프로그램에서 사용하는 방식입니다.

 프로세스 방식으로 실행됩니다.

 서버의 부하가 심합니다.

 

CGI 방식은 웹 애플리케이션 서버에서 실행되는 기능들이 모두 프로세스(process)방식으로 실행된다. (그림 2-3)

클라이언트 1이 환율 정보를 요청하면 웹 애플리케이션 서버는 환율 조회 기능을 수행하는 프로세스(process)를 메모리에 생성한다. 그리고 데이터베이스와 연동하여 클라이언트 1에게 환율 정보를 반환한다. 그리고 다시 클라이언트 2에게서 환율 정보 요청을 받으면 또 다시 환율 조회 기능을 하는 프로세스를 메모리에 생성한 후 기능을 수행한다.

 

이처럼 CGI 방식은 같은 기능을 수행하더라도 각 경우에 대해 처음부터 메모리에 기능을 로드(load)하여 수행해야 한다. 물론 초기 인터넷 환경에서는 사용자 수도 적고 할 기능도 적어 이런 방식으로 실행해도 문제가 없었다. 하지만 요즘처럼 인터넷 환경이 발전하고 사용자 수가 급격히 늘어나 동시에 처리해야 할 일이 많은 상황에서 이런 방식으로 서비스 한다면 메모리에 과부하가 걸려 기능 수행에 어려움이 생길 수 밖에 없다.

 

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

지금부터 이 동적 웹 프로그래밍 기술들에 대해 본격적으로 알아보자.