웹 어플리케이션이란?

웹 어플리케이션 형식

WEB-INF : web.xml 파일을 포함

src : 자바(.java) 소스 코드가 위치

classes : 자바 소스 코드를 컴파일 한 클래스 파일이 위치

lib : 웹 어플리케이션을 실행하는 데 필요한 jar 파일 위치

 

웹 어플리케이션과 웹 프로그래밍

- '웹 어플리케이션'은 웹을 기반으로 실행되는 어플리케이션을 의미한다.

- 우리는 웹 브라우저(인터넷 익스플로러, 크롬, 파이어폭스 등)에 주소를 입력함으로써 웹 어플리케이션에 기능을 요청하고, 요청을 받은 웹 어플리케이션은 요청한 기능에 알맞은 결과 화면을 생성해서 웹 브라우저에 전송한다.

- 웹 브라우저가 요청한 기능을 제공하기 위해서는 보통 웹 서버, 어플리케이션 서버, 데이터베이스와 같은 구성 요소들을 필요로 한다.

▲ 웹 브라우저에 서비스를 제공하기 위해 필요로 하는 구성 요소들

 

구성 요소  역할  주요 제품 
웹 서버   - 웹 브라우저의 요청을 받아서 알맞은 결과를 웹 브라우저에 전송한다. 만약 프로그램 처리가 필요하다면 어플리케이션 서버를 사용하거나 프로그램을 직접 호출하여 결과를 생성한다.
 - 주로 정적인 HTML, 이미지, CSS, 자바 스크립트 파일을 웹 브라우저에 제공할 때 웹 서버를 사용한다.
아파치(Apache), nginx 등 
어플리케이션 서버  - 게시글 목록, 로그인 처리와 같은 기능을 실행(처리)하고, 그 결과를 응답으로 웹 서버에 전달한다. 톰캣(Tomcat), JBoss 등 
데이터베이스  - 웹 어플리케이션이 필요로 하는 데이터를 저장한다.  오라클(Oracle), MySQL, MSSQL 등
웹 브라우저   - 웹 서버에 서비스 실행을 요청하며, 웹 서버의 처리 결과를 사용자에게 보여준다.  인터넷 익스플로러, 구글 크롬, 파이어 폭스 등 

 

- 어플리케이션 서버도 웹 서버와 마찬가지로 정적인 HTML이나 CSS, 이미지 등을 제공할 수 있는데, 웹 서버에서 정적인 HTML과 이미지 등을 제공하고 어플리케이션 서버가 프로그램(기능)을 제공하는 이유는 성능 때문이다. 일반적으로 아파치와 같은 웹 서버는 정적인 HTML과 CSS를 제공하는데 초점이 맞춰져 있고, 톰캣이나 웹로직과 같은 어플리케이션 서버는 JSP, 서블릿과 같은 프로그램을 실행하여 결과를 제공하는데 초점이 맞춰져 있다. 따라서 위 그림과 같이 웹 서버와 어플리케이션 서버를 연동하여 정적인 HTML, CSS, 이미지 파일 등은 웹 서버가 제공하도록 하고 JSP나 서블릿에 대한 요청은 웹 서버가 어플리케이션 서버에 전달하도록 구성하는 것이 일반적이다.

 

CGI방식과 어플리케이션 서버 방식

- 웹 어플리케이션은 웹 브라우저의 요청을 알맞게 처리하고 그에 대한 결과를 웹 브라우저에 전달한다. 즉 '요청 - 처리 - 응답'의 3단계 과정으로 정리할 수 있다.

 

▲ 웹 어플리케이션 실행 순서

- 웹 서버는 웹 어플리케이션 프로그램을 사용해서 웹 브라우저의 요청을 처리한다. 이때 웹 서버가 웹 어플리케이션 프로그램을 실행하는 방식에 따라서 CGI 방식, 어플리케이션 서버 방식 두 가지 형태로 웹 어플리케이션 동작 방식을 구분할 수 있다.