Web Application - 웹 어플리케이션

웹 애플리케이션이란?

웹을 사용해서 기능을 제공하는 것을 웹 애플리케이션이라고 합니다.

- 쇼핑사이트
- 인터넷 뱅킹
- SNS
- 게시판
- 검색엔진
- e-러닝

대충 훑어봐도 위와같은 다양한 웹 애플리케이션이 있습니다.

왜 등장하게 된걸까

본래 HTTP를 사용한 웹 구조는 사전에 준비된 콘텐츠를 클라이언트의 리퀘스트에 맞게 반환하는 것 입니다.
그러나 웹 보급후 이것만으로 부족하여 프로그램이 HTML 등의 콘텐츠를 생성할 필요가 생기게 되었습니다.
이런 프로그램에 의해서 생성된 콘텐츠를 동적 콘텐츠라 부르며, 사전에 준비된 콘텐츠는 정적 콘텐츠라고 부르고 있습니다.
웹 애플리케이션은 동적 콘텐츠에 해당합니다.

CGI

Common Gateway Interface(이하 CGI)를 들어보셨나요
이는 웹 서버가 클라이언트에서 받은 리퀘스트를 프로그램에 전달하기 위한 구조입니다.
CGI에 의해 프로그램은 동적으로 콘텐츠를 생성 할 수 있습니다.

CGI를 사용한 프로그램을 CGI 프로그램이라 부르는데 Perl, PHP, Ruby, C언어 등의 프로그래밍 언어가 사용되고있습니다.

간단하게 표현하자면 두개 이상의 컴퓨터가 자료를 주고받게 할수 있는 프로그램, 주고받는 행위 자체를 의미합니다.

Servlet

서블릿은 서버상에서 HTML등의 동적 컨텐츠를 생성하기 위한 프로그램을 가리킵니다.
CGI의 경우 리퀘스트마다 프로그램을 기동하기 때문에 대량 액세스가 있다면 웹 서버에 부하가 걸리게 됩니다.
하지만 서블릿은 웹 서버와 같은 프로세스속에서 동작하기 때문에 비교적 부하를 적게 하여 동작시킬 수 있습니다.

위에 적은 CGI의 단점 때문에 웹 서버가 직접 프로그램을 실행하는 서블릿이나 mod_perl과 같은 구조가 개발되고 보급되고 있습니다.

요약

- cgi : 프로세스 생성 쓰레드 x, 사용자가 많을경우 메모리 낭비
- 서블릿 : cgi의 업그레이드, 요청 시 쓰레드 단위 실행가능, 한번 로드된 라이브러리 여러요청에 사용가능

마치며

웹어플리케이션, cgi, 서블릿에 대해서 간단하게 알아보았습니다.
다음 포스트에서는 웹 공격 기술에 대해서 알아봅시다.