1. 웹 어플리케이션 (Web Application)

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

- 웹 브라우저에 URL 주소로 웹 어플리케이션에 기능을 요청하고 요청을 받은 웹 어플리케이션은 요청한 기능에 알맞은 결과 화면을 생성해서 웹 브라우저에 전송한다.

- 웹 서버, 어플리케이션 서버, 데이터베이스와 같은 구성 요소들을 필요로 한다.

- 웹 서버와 어플리케이션 서버를 연동하여 정적에(HTML, CSS, 이미지 파일 등) 대한 요청은 웹서버가 제공하고

- 동적(JSP나 서블릿) 대한 요청은 웹 서버가 어플리케이션 서버에 전달하도록 구성한다.


 구성 요소

 역할 

 주요 제품 

 웹 서버 

 웹 브라우저의 요청을 받아서 알맞은 결과를 웹 브라우저에 전송한다. 처리가 필요하다면 어플리케이션 서버를 사용한다.

 아파치(Apache), nginx 등

 어플리케이션 서버

 게시글 목록, 로그인 처리와 같은 기능을 실행(처리)하고, 그 결과를 응답으로 웹 서버에 전달한다.

 톰캣(tomcat), JBoss 등

 데이터베이스

 웹 어플리케이션이 필요로 하는 데이터를 저장한다.

 오라클(Oralce), MySQL 등

 웹 브라우저

 웹 서버에 서비스 실행을 요청하며, 웹 서버의 처리 결과를 사용자에게 보여준다.

 익스플로러, 구글크롬 등



2. CGI 방식, 어플리케이션 서버 방식

- 기본적으로 웹 어플리케이션은 웹 브라우저의 요청을 알맞게 처리하고 그에 대한 결과를 웹 브라우저에 전달한다. (요청 > 처리 > 응답)

- 이때 웹서버가 웹 어플리케이션 프로그램을 실행하는 방식에 따라서 CGI 방식, 어플리케이션 서버 방식 형태로 구분할 수 있다.

- 이 두 방식의 차이점 :  웹 서버가 직접 프로그램을 호출하는지 여부, 메모리에 로딩 방식 차이로 인한 처리량 차이

- CGI 방식 : 웹 브라우저가 웹 서버에 프로그램 실행을  요청하면 웹 서버는 펄이나 C로 작성된 CGI 프로그램을 직접 실행하고 결과를 웹 브라우저에 전송한다.

- 어플리케이션 서버 방식 : 어플리케이션 서버가 프로그램의 실행 결과를 웹 서어베 전달해주고, 웹 서버는 어플리케이션 서버로 부터 전달 받은 응답 결과를 웹 브라우저에 전송한다.


3. 스크립트 방식과 실행 코드 방식

- 스크립트 방식 : 웹 브라우저 요청 > 웹 서버 요청 받음 > 스크립트코드 번역 > 번역된 코드 실행

- 실행 코드 방식 : 웹 브라우저 요청 > 웹 서버 요청 받음 > 프로그램 실행

- 스크립트 코드 번역은 최초 요청은 대해서 한번만 발생하고, 이후의 요청에 대해서는 번역 과정 없이 앞서 번역된 코드를 실행하도록 한다.

- 실행 코드 방식의 경우 일반적으로 CGI 방식이고, 스크립트 코드 방식인 JSP나 ASP는 어플리케이션 서버 방식이다.

- 스크립트 언어를 번역한 코드가 일반 프로그램과 동일한 수준의 성능을 제공하고 있다.

- 스크립트 언어를 사용할 경우 더 쉽고 빠르게 어플리케이션을 구현할 수 있는 장점이 있다.


 비교 항목

 실행 코드 방식 

 스크립트 방식 

 코드 형태

 컴파일 된 실행 프로그램

 컴파일 되지 않은 스크립트 코드

 실행 형태

 컴파일 된 기계어 코드 직접 실행

 스크립트 코드를 해석해 뒤 실행

 코드 변경

 소스 코드를 다시 컴파일 해야 함

 스크립트 코드만 고치면 됨

 종류

 C 기반 CGI 프로그램

 JSP, ASP.net, PHP, RUby 등


4. URL, 웹 어플리케이션 주소

- URL(Uniform Resource Locator) : [프로토콜]://[호스트][:포트][경로][파일명][.확장자][쿼리문자열]

- 프로토콜 : 서버와 클라이언트가 통신할 때 사용할 프로토콜을 입력한다.

- 호스트 : 클라이언트가 접속할 서버 주소를 입력한다.

- 포트 : 서버와 클라이언트가 통신할 때 사용할 포트를 입력한다.

- 경로,파일명,.확장자 : 서버에서 가져올 자원의 위치를 입력한다.

- 쿼리문자열 : 주소 뒤에 추가로 붙는 정보로써 '파라미터(parameter)'라고 불리는 데이터를 웹 어플리케이션에 전달할 때 사용한다. 각각의 파라미터는 '&'로 구분한다.


+ Recent posts