1. CGI(Common Gateway Interface)

  • 응용 프로그램과 웹 서버 사이의 정보를 주고받는 방식이나 규약들을 정해 놓은 것
  • 단순한 HTML 방식으로는 동적인 웹 페이지를 만들기가 어렵기 때문에 서버측에서 동적인 데이터를 처리해 클라이언트에 HTML 문서로 전송해 줄 수 있는 응용 프로그램(웹 프로그램)이 필요해져서 만들어졌다.
  • 현재 웹 프로그래밍은 대부분 ASP, PHP, JSP를 이용한 것이 대부분인데, DBMS와의 간편한 연동, 객체 지향적인 특성, 편한 개발 환경 등 강력한 기능을 갖추었기 때문이다.

🔸 DBMS(Database Management System)

  • 데이터베이스 관리자라고도 불리며 다수의 컴퓨터 사용자들이 데이터베이스 안에 데이터를 기록하거나 접근할 수 있게 해주는 프로그램
  • DBMS는 데이터베이스 내의 정보를 검색하거나, 데이터베이스에 정보를 저장하기 편리하고 효율적인 환경을 제공하며, 응용 소프트웨어별로 흩어져 있는 자료들을 통합하고 통합된 자료들을 각 응용 소프트웨어가 공유하여 정보의 체계적인 활용을 가능하게 한다.
  • 일반적인 형태의 DBMS는 관계형 데이터베이스 관리 시스템(RDBMS)인데, RDBMS의 표준화된 사용자 및 프로그램 인터페이스를 SQL(Strutured Query Language)이라고 한다.
  • RDBMS로는 오라클(Oracle), 사이베이스(Sybase), 인포믹스(Infomix)등이 쓰인다.

🔸 인터페이스(Interface)

  • 사물과 사물간의 소통이 가능하도록 만들어진 매개체 또는 규약
  • 웹 프로그래밍에서는 서버와 응용 프로그램 간의 원활한 통신이 가능하도록 만들어진 규약을 말한다.

🔸 스크립트 언어(Script Language)

  • C와 같은 일반적인 프로그래밍 언어는 컴파일러에 의해 컴파일 되어 2진수로 되어있는 기계어로 변환되어야지만 컴퓨터 상에서 실행될 수 있다.
  • 이와는 달리 컴파일이 필요 없이 해석기(인터프리터)에 의해 즉시 실행될 수 있는 프로그램 언어를 스크립트 언어라고 한다.
  • 대표적으로 브라우저에 의해 해석되어 실행되는 JavaScript가 있으며, Unix의 쉘 스크립트, 윈도우의 Batch 파일도 스크립트 언어라 할 수 있다.


2. ASP(Active Server Page)

  • C#(.Net)과 유사하다.
  • 동적인 웹 페이지의 구현을 위해 Visual Basic 언어를 기반으로 만들어진 VBScript라는 스크립트 언어를 사용해서 구성된 웹 프로그래밍 기술
  • 쉬운 문법을 가지고 있어 빠르고 쉽게 개발할 수 있고 Active-X 및 DDL 컴포넌트를 사용하여 어느 정도의 확장성도 갖추었지만 웹 서버로 오직 Windows 기반의 IIS(Internet Information Server)만을 사용할 수 있기 때문에 플랫폼에 비독립적이라는 큰 단점을 가디고 있다.
  • 또한 Java 기반의 JSP에 비해 시스템 자원의 효율성과 확장성이 떨어진다.


3. PHP(Personal Hypertext Preprocessor)

  • ASP와 유사한 스크립트 기반의 언어이지만 C를 기반으로 만들어져서 빠른 속도를 가지고 있다.
  • 다양한 플랫폼에서 사용 가능하며 100% 무료로 사용할 수 있다.
  • 하지만 서버측의 지원 인프라가 매우 부족하여 확장성이 떨어지고, 기업형의 복잡한 시스템 구조에 적용하기가 힘들고 보안상의 약점을 가지고 있다.


4. JSP

  • Java를 기반으로 만들어진 서블릿(Servlet)이라는 동적 웹 구현 기술이 개발된다.
  • 서블릿은 객체지향적이며 플랫폼 독립적인 자바의 장점을 그대로 웹에서 구현할 수 있었으며 스레드(Thread) 기반의 요청 처리 방식을 채택했기에 사용자가 많을수록 효율적으로 동작하는 기술이었다.
  • 하지만 익히기가 쉽지 않은 편이었기 때문에 유저인터페이스의 구현이 쉬운 ASP의 장점을 수용하여 JSP가 개발된다.
  • JSP 또한 스크립트 기반으로 개발되어 훨씬 쉽게 작성할 수 있었고 서블릿과 함께 구동함으로써 서블릿의 기능을 그대로 사용할 수 있고 자바빈즈(JavaBeans), EJB같은 기술로 보다 강력한 객체지향적 지원이 가능해졌다.
  • 또한 JSTL을 지원하게 되면서 웹 프로그램의 가독성이 좋아지고 유지 및 보수가 훨씬 쉬워지는 장점을 가지게 되었다.
  • 이러한 장점들은 대규모 프로젝트에서 유용하기 때문에 최근에는 일정 규모 이상의 웹사이트를 개발할 때에는 주로 JSP를 사용한다.

🔸 프로세스(Process)

  • 실행 중인 프로그램을 나타내는 말로 태스크(Task)라고도 한다.
  • 윈도우와 같이 멀티태스킹을 지원하는 운영체제에서는 동시에 실행되고 있는 여러 개의 프로세스에 대하여 CPU메모리 자원을 안정되게 분배해 주어야 하며 이러한 역할은 그 운영체제의 성능을 결정하는 데 있어 아주 중요한 요소이다.
  • 그런데 운영체제는 똑같은 프로그램이 두 개 이상 실행되면 같은 프로그램이라 하더라도 서로 다른 자원을 할당해 두 개 이상의 프로세스를 만든다.
  • 이는 실행되는 프로그램의 수가 늘어날수록 할당해야 하는 자원이 늘어나게 되어 굉장히 비효율적이고 성능의 하락을 가져올 것이다.
  • 이러한 단점을 극복하기 위해 개발된 것이 스레드(Thread)이다.

🔸 스레드(Thread)

  • 하나의 프로세스 내에서 해당 프로세스가 할당받은 자원을 공유하며 실행되는 독립적인 작업단위
  • 프로세스의 자원을 참조할 뿐 새로 할당받을 필요가 없기 때문에 프로세스를 생성하는 것보다 훨씬 빠른 생성 속도를 가진다.

태그: ,

카테고리:

업데이트: