1. 웹프로그래밍 기초
- 웹 어플리케이션 : 웹 기반 어플리케이션
- 웹 브라우저에 서비스를 제공하기 위해 필요로 하는 구성 요소들
구성 요소 |
역할 |
주요 제품 |
웹 서버 |
- 웹브라우저의 요청을 받아서 결과를 웹브라우저에 전송, 만약 처리가 필요하면 어플리케이션 서버와 프로그램을 직접 호출 - 정적인 HTML, 이미지, CSS,Java Script 제공시 사용 |
아피치, nginx 등 |
어플리케이션 서버 |
게시글 목록, 로그인 처리와 같은 기능을 실행, 그 결과를 웹 서버에 전달 |
Tomcat, JBoss |
데이터베이스 |
웹 어플리케이션이 필요로 하는 데이터 저장 |
Oracle, MySQL, MSSQL |
웹 브라우저 |
웹 서버에 서비스 실행 요청, 웹 서버의 처리결과를 보여준다 |
인터넷, 구글크롬, 파이어 폭스 |
- 정적인 HTML, CSS. 이미지 파일 등은 웹서버가 제공하도록 하고 JSP나 서블릿에 대한 요청은 웹 서버가 어플리케이션 서버에 전달하도록 구성하는 것이 일반적. 이는 각각의 성능 차이 때문
1.1 CGI방식과 어플리케이션 서버 방식
- 웹 어플리케이션이 실행되는 과정은 ‘요청-처리-응답’의 3단계 과정
-실행하는 방식에 따라 ‘CGI방식’과 ‘어플리케이션 서버’방식 두가지 존재, 두가지의 차이점은 웹 서버가 직접 프로그램을 호출하는지 여부에 있다.
(1) CGI방식(Common Gatewaty Interface)
-웹 서버와 프로그램 사이에 정보를 주고 받는 규칙, CGI프로그래밍이란 펄이나 C/C++ 언어 등을 사용하여 웹 서버가 실행할 수 있는 프로그램을 작성하는 것을 의미
-웹 브라우저가 웹서버에 실행을 요청하면, 웹 서버는 펄이나 C로 작성된 CGI프로그램을 직접 실행, 생성한 결과를 웹 브라우저에 전송
(2) 어플리케이션 서버 방식
-웹 어플리케이션 서버를 통해서 간접적으로 웹 어플리케이션 프로그램 실행
-JSP와 asp.NET 은 모두 위와 같은 방식
- 접속자가 많은 서비스의 경우 CGI방식보다 어플리케이션 서버 방식의 성능(처리량)이 더좋게 나타난다.
같은 프로그램이더라도 CGI방식은 요청이 발생할 때마다 요청 개수만큼 메모리에 로딩되어 전체적인 성능 저하 발생
어플리케이션 서버 방식은 CGI방식과 달리 다수의 웹 브라우저가 같은 웹 어플리케이션을 요청하더라도 한번만 로딩, 메모리 사용량이 적다.
è 안정적인 웹 서비스를 제공, 포탈 같은 대량의 트래픽이 발생하는 곳에서 이방식을 채택하여 서비스의 안정성을 높이고 있다.
1.2 스크립트 방식과 실행코드 방식
비교 항목 |
실행 코드 방식 |
스크립트 방식 |
코드 형태 |
컴파일 된 실행 프로그램 |
컴파일 되지 않은 스크립트 코드 |
실행 방식 |
컴파일 된 기계어 코드 직접 실행 |
스크립트 코드를 해석한 뒤 실행 |
코드 변경 |
소스 코드를 다시 컴파일 해야 함 |
스크립트 코드만 고치면 됨 |
종류 |
C 기반 CGI프로그램 |
JSP, ASP.net, php, RUBY |
- 실행 코드 방식 : 웹 브라우저 요청 전송 -> 웹 서버 요청 받음 -> 프로그램 실행
- 스크립트 방식 : 웹 브라우저 요청 전송 -> 웹 서버 요청 받음 -> 스크립트코드 번역 ->번역된 코드 실행
-스크립트 코드 번역은 최초 요청에 한번만 발생, 이후는 번역된 코드를 실행하여 번역횟수 최소화
-전체 처리속도 면에서 스크립트 방식이 빠름. 왜냐면 실행코드 방식은 CGI방식이고, 스크립트는 어플리케이션 방식이기 때문
-스크립트 코드방식이 익히기 쉽고 더 빨리 개발 가능
3.1 서블릿과 JSP
(1) 서블릿 : 웹 개발을 위해 만든 표준, 서블릿 규약에 따라 만든 클래스
서블릿은 실행 코드방식, 데이터를 바꾸고 싶으면 코드를 수정하고 컴파일하고 클래스를 알맞은 곳에 복사해주는 작업을 반복. 이는 개발 생산성을 낮추는 요인이 되었다. 이 후 이를 보완하기 위해 스크립트방식의 표준인 JSP 개발, JSP는 코드를 수정하면 바로 변경 내용이 반영
(2)JSP(JavaServer Pages)
- 자바언어를 기반으로 자바기능을 그대로 사용 가능
- HTTP와 같은 프로토콜에 따라 클라이언트의 요청을 처리하고 응답
- HTML, XML 등 클라이언트가 요청한 문서를 생성하는데 주로 사용
- 서블릿/EJB 등의 엔터프라이즈 기술들과 잘 융합
3.2 웹 컨테이너 : 웹 어플리케이션을 실행 할 수 있는 컨테이너이다.
'Software Development > Web' 카테고리의 다른 글
[Node.js]5.HTTP (0) | 2015.05.23 |
---|---|
[Node.js]4.자바스크립트 기본 (0) | 2015.05.23 |
[Node.js]3.IDE설치 (0) | 2015.05.21 |
[Node.js]2.설치 (0) | 2015.05.21 |
[Node.js]1. 개념 (0) | 2015.05.21 |