Web History

웹 개발 역사

초코너무조코 2025. 2. 12. 17:13
728x90

1. CGI (Common Gateway Interface) – 1990년대 초반

개념

  • 웹 서버가 동적인 콘텐츠(예: 사용자 입력에 따라 변하는 웹 페이지)를 제공하기 위해 사용한 초기 기술.
  • HTML 문서만으로는 사용자 입력을 처리할 수 없으므로, 웹 서버가 프로그램을 실행하고 그 결과를 웹 페이지로 반환하는 방식.
  • 주로 Perl, C, Python, Shell Script 같은 언어로 작성됨.

작동 방식

  1. 사용자가 웹 페이지에서 데이터를 입력하고 제출하면,
  2. 웹 서버가 CGI 프로그램을 실행하고,
  3. 결과를 HTML로 변환한 후, 브라우저에 전송.

CGI 스크립트 예제 (Perl)

#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "<html><body>";
print "<h2>Hello, CGI!</h2>";
print "</body></html>";

서버가 요청마다 새로운 프로세스를 실행해야 해서 성능이 낮고, 확장성이 부족했음.


2. NSAPI/ISAPI (Netscape Server API / Internet Server API) – 1990년대 중반

개념

  • CGI의 성능 문제를 해결하기 위해 웹 서버 내부에서 직접 실행되는 API 방식.
  • NSAPI는 넷스케이프 서버용, ISAPI는 마이크로소프트 IIS(인터넷 정보 서비스) 서버용 API였어.

특징

  • CGI처럼 매 요청마다 새로운 프로세스를 생성하지 않고, 웹 서버의 스레드에서 실행됨 → 성능 향상.
  • 하지만 서버에 종속적인 코드라서 이식성이 낮고, 유지보수가 어려웠어.

ISAPI 예제 (C++)

#include <httpfilt.h>
BOOL WINAPI GetFilterVersion(HTTP_FILTER_VERSION *pVer) {
    pVer->dwFilterVersion = HTTP_FILTER_REVISION;
    strcpy(pVer->lpszFilterDesc, "Simple ISAPI Filter");
    return TRUE;
}

성능은 좋았지만, 개발이 어렵고 서버에 종속적이라 유지보수에 어려움이 많음.


3. 서버사이드 스크립팅 (ASP, PHP 등) – 1990년대 후반

개념

  • CGI, NSAPI/ISAPI의 단점을 보완하기 위해 등장한 기술.
  • 서버에서 직접 HTML을 생성할 수 있는 스크립트 언어 기반의 웹 프로그래밍 방식.
  • 대표적인 기술:
    • ASP (Active Server Pages) – 마이크로소프트가 개발
    • PHP (Hypertext Preprocessor) – 오픈소스, LAMP(Linux, Apache, MySQL, PHP) 스택의 핵심

특징

  • HTML 내에서 직접 프로그래밍이 가능 → CGI보다 사용이 쉬웠음.
  • 데이터베이스 연동이 용이 → 동적 웹사이트 구축이 쉬워짐.
  • 하지만 비즈니스 로직과 UI가 혼합되어 유지보수가 어려웠음.

ASP 예제 (VBScript)

<%
Response.Write "<h2>Hello, ASP!</h2>"
%>

PHP 예제

<?php
echo "<h2>Hello, PHP!</h2>";
?>

CGI보다 빠르고, 배우기 쉬웠지만, 여전히 코드가 섞여서 유지보수 어려움이 있었음.


JSP와 서블릿이 등장한 이유

  1. CGI는 매 요청마다 새로운 프로세스를 실행 → 성능 문제 
  2. NSAPI/ISAPI는 서버 종속적 → 플랫폼 독립성이 부족 
  3. ASP, PHP 등 서버사이드 스크립팅 언어는 비즈니스 로직과 UI가 섞여 유지보수가 어려움 

👉 Java 기반의 웹 개발 기술이 필요해졌고, JSP와 서블릿이 등장!

  • 서블릿은 순수 Java 코드 기반,
  • JSP는 HTML과 Java를 함께 사용할 수 있도록 지원.
  • 그리고 이후 스프링(Spring)으로 발전하면서 더욱 강력한 웹 애플리케이션 개발이 가능해졌어. 

정리: 웹 개발 기술 발전 흐름

시기 기술 특징 문제점
1990년대 초반 CGI (Perl, C, Python) 요청마다 새로운 프로세스 실행 성능 저하
1990년대 중반 NSAPI/ISAPI (C, C++) 서버 내부에서 실행 → 성능 개선 서버 종속적, 유지보수 어려움
1990년대 후반 ASP, PHP 서버에서 직접 HTML 생성, CGI보다 빠름 UI와 비즈니스 로직이 섞임
1999년~ JSP & 서블릿 (Java 기반 웹 개발) Java로 웹 개발 가능, 유지보수 용이 코드가 많아지고 복잡해짐
2000년대 이후 Spring Framework MVC 아키텍처, 대규모 시스템 개발 가능 학습 곡선이 있음

 

 

728x90