h1.웹 어플리케이션의 진화
CGI (Common Gateway Interface)
- 웹을 동적으로 만들기 위해 등장한 최초의 해법
- CGI는 HTML만으로 만들어진 정적인 화면을 동적으로 만들어 주는 웹 서버 프로그래밍을 하기 위한 규약으로, 곧 웹 서버
프로그래밍의 기반이라고 할 수 있다. - CGI 는 특정한 언어를 지칭하는 것이 아니기 때문에 여러 가지의 프로그래밍 언어로 구현 할 수 있으며 일반적으로 사용될
수 있는 언어로는 C, C++, Perl, JAVA, PHP, ASP, Visual Basic, 델파이등이 이용되고 있으며 사용 하기가 쉬운
PHP, ASP, JSP 가 많이 사용되고 있다 - 보안상의 약점이 있음에도 불구하고 현재까지 지속적으로 사용되고 있다.
- 넷스케이프 네비게이터가 자바를 지원함으로 애플릿을 많이 사용하기 시작함
- 애플릿은 많은 취약점이 있었지만 많은 사람들이 애플릿을 통하여 자바라는 프로그램 언어를 접하게 됨.
- 클라이언트에 무거은 프로그램이 설치되고, JVM 버전 문제 등으로 많은 불편 초래하여 사용이 줄어 듬
- 항상 웹 페이지 안에서 자바를 지원하는 웹 브라우저에 의해서만 실행 됨.
- 미국의 넷스케이프사가 클라이언트에서 독립적으로 실행되는 프로그램을 작성하기 위한 스크립트 언어로 LiveScript를 발표
- 썬 마이크로시스템사와 공통 프로젝트를 진행하여 라이브스크립트를 확장시킨 자바스크립트를 만들어 발표.
- 페이지를 하나의 객체로 처리할 수 있는 도큐먼트 객체 모델을 탄생.
- W3C(World Wide Web Consortium)에서 표준으로 체택 함.
서블릿, JSP, ASP, PHP
① 서블릿(Servlet)
- 서블릿은 웹 어플리케이션을 만들기 위한 JAVA 프로그램으로 CGI 표준을 따르고 있음.
- 기존의 자바 언어를 쉽게 확장하여 사용 할 수 있으며 자바언어가 가진 특징을 모두 사용 할 수 있음.
- 서블릿이 나오므로 더 이상 자바코드를 애플릿과 함께 구동할 필요 없이 개발자가 제어할 수 있는 어플리케이션 서버에서 수행 시킬 수 있게 됨.
② JSP(Java Server Page)
- JSP는 서블릿 기술을 바탕으로 이루어져 있으며 서블릿 보다 쉽고 빠르게 웹 응용프로그램을 작성할 수 있다.
- 기본적으로 JAVA Servlet과 같다
- 웹전용 스크립트 언어로써 PHP, ASP과 비슷하지만 JAVA의 막강한 기능을 그대로 사용 할 수 있다.
- JSP를 해석하는 엔진이 필요하고, 그 엔진을 통해서 Servlet java, class 파일을 생성한다.
- 처음 웹에서 요청하면 Servlet 파일이 생성되어 속도가 느리나, 한번 컴파일된 java, class 파일을 웹에서 재 요청시 이후부터는 JAVA Servlet과 완전히 동일하다.
③ ASP(Active Server Page)
- Web Application을 쉽게 개발할 수 있도록 Micorsoft사의 IIS(Internet Information Server)에 내장되어 있는 기술
- 마이크로소프트사는 ASP에 강력한 개발도구를 지원하고, 자사의 웹서버와 잘 통합될 수 있도록 함.
④ PHP (Personal Hypertext Preprocessor)
- 1994년 라스머스 러도프(Rasmus Lerdorf)가 개발한 서버에서 해석되는 스크립트 언어
- 아파치 웹 서버에 통합되도록 설계
- 개발 목적은 동적인 웹 문서를 빠르게 작성
- 공개된 무료 소스이며 Linux의 Apache Web Server에서 최적의 환경을 제공
플래쉬(Flash)
① Flash란?
웹(web)상에서 동적인 animation을 구현할 수 있도록 해주는 매크로 미디어사의 web animation 프로그램.
② Flash의 역사
1997년 Future Wave Software사에서 GIF Animation을 대체하는 새로운 솔루션인 Future Splash Animator가 출시.
이 솔루션을 매크로미디어사가 에서 인수 플래쉬라는 새로운 모습으로 변화되기 시작하였다.
③ Flash의 특징
- 벡터 이미지(vector image)
- 벡터 이미지 점과 선 등을 수학적으로 계산하여 기억하는 방식
- 확대/축소가 자유롭다.
- 참고로 벡터 이미지를 사용하는 방법으로는 Scalable Vector Graphics (SVG) 라는 것도 있음
SVG는 2차원 그래픽을 표현하기 위해 XML을 기반으로 만들어진 언어로서 W3C(World Wide Web Consortium)에 의해
제안된 XML 그래픽 표준입니다 - 비트 맵 이미지 (bitmap image)는 픽셀 기반 이미지며, 파일 용량이 큼, 확대/축소 할 경우 이미지 손상을 가져옴
- 뛰어난 압축률
- Flash animation 파일은 GIF animation파일 크기의 1/10 정도.
- 사용자와의 상호작용
- 사용자가 누르는 버튼이나 키보드 등의 작동에 대한 반응이 가능하게 제작할 수 있음.
DHTML 비약적 기술
- DHTML 은 사실 HTML, CSS, 자바스크립트, DOM의 합성이다.
- 이들 기술을 결합하여 개발자들이 실행중에 웹 페이지의 내용과 구조를 수정하는 것이 가능해졌다.
- IE와 넷스케이프 모두 DHTML을 지원했지만, 브라우저에 따라 구현 내용이 달라져 불편을 초래하였다.
XML 및 유사 기술들
- MXML (Maximum eXperience Markup Language)
- 매크로미디어에서 개발한 플렉스(Flex) 기술과 함께 사용할 수 있는 마크업 언어
- 플렉스에서 어떤 컴포넌트를 어떻게 보이도록 할 것인가를 기술하는 마크업 언어
- XAMJ
- 오픈소스 진영에서 내놓은 디자인을 위한 XML
- 자바 기반이므로 객체지향 언어의 모든 기능을 그대로 사용할 수 있다.
Ajax (Asynchronous JavaScript and XML)
- Ajax는 대부분의 브라우저에서 동작하고 어떠한 자체 소프트웨어나 하드웨어도 필요도 하지 않는다.
- Ajax의 최대 장점준 하나는 새로운 언어를 배우거나 기존에 사용했던 서버측의 기술을 버릴 필요가 없다는 것이다.
- 중요한 건 Ajax는 기본적인 인터넷의 Request/Response 패러다임으로부터의 중요한 전환점이다.
- 웹 어플리케이션 개발자들은 아무 문제없이 서버와 비동기적으로 소통할 수 있게 되었다.
문서에 대하여