웹 프로그래밍 언어 종류
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)
- 하나의 프로세스 내에서 해당 프로세스가 할당받은 자원을 공유하며 실행되는 독립적인 작업단위
- 프로세스의 자원을 참조할 뿐 새로 할당받을 필요가 없기 때문에 프로세스를 생성하는 것보다 훨씬 빠른 생성 속도를 가진다.