Presentation is loading. Please wait.

Presentation is loading. Please wait.

1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.

Similar presentations


Presentation on theme: "1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장."— Presentation transcript:

1 1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장

2 1. 웹 동작방식 WWW (World Wide Web)
인터넷상에 분산되어 존재하는 온갖 종류의 정보를 통일된 방법으로 찾아볼 수 있게 하는 광역 정보 서비스 및 소프트웨어 1989년 CERN (European Council for Nuclear Research)의 Tim Berners-Lee가 제안 Web Server 내에서 Hypertext 형태의 Home Page라는 단위로 보관 및 관리되며, Link라고 하는 기능에 의해 인터넷상에 지리적으로 분산되어 있는 세계 각지의 Hypertext와 연결 인터넷 익스플로러(Internet Explorer), 파이어폭스(Firefox) 제1장

3 1. 웹 동작방식 HTTP (HyperText Transfer Protocol)
웹 클라이언트와 웹 서버 사이에 대화하는 방법 및 데이터 정보를 웹 서버에서 웹 클라이언트로 전송하는 방법을 정의하는 표준 프로토콜 시작되는 URL (Uniform Resource Locator)를 입력함으로써 웹 서버의 데이터 정보를 획득 인터넷 프로토콜로서 HTTP를 사용하겠다는 의미 무상태(stateless) 프로토콜 서버가 클라이언트의 요청에 응답한 이후에 클라이언트의 상태에 대하여 어떠한 것도 자체적으로 유지관리하지 않는다는 것 하부에서 데이터의 올바른 전송을 위해 TCP/IP 사용 웹 클라이언트와 웹 서버간의 정보를 주고 받는 모습 제1장

4 1. 웹 동작방식 HTTP 에 기반한 통신의 4 단계 1) 연결 설정하기 2) 요청 메시지 전송하기
클라이언트는 디폴트로 서버의 포트 80번에 TCP 연결 2) 요청 메시지 전송하기 요청 라인 GET: 웹 서버로의 행위를 정의하는 메소드(method) GET, POST index.html: 서버에 있는 파일에 대한 상대적 URL로서 요청대상 경로 HTTP/1.0: 클라이언트가 사용 중인 HTTP 프로토콜 버전 GET /index.html HTTP/1.0 제1장

5 1. 웹 동작방식 HTTP 에 기반한 통신의 4 단계 2) 요청 메시지 전송하기 (계속)
요청 헤더 헤더 정보들은 한 라인에 하나씩 기술 각 라인은 헤더 이름과 값으로 구성 헤더 정보의 끝에는 반드시 공백라인을 추가해서 요청 메시지의 끝임을 서버에 알림 accept : image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,... accept-language : ko ua-cpu : x86 user-agent : Mozilla/4.0 (compatible; MSIE 7.0;... ... [공백 라인] 제1장

6 1. 웹 동작방식 HTTP 에 기반한 통신의 4 단계 2) 요청 메시지 전송하기 (계속)
웹 클라이언트가 서버에게 전달하는 정보들 제1장

7 1. 웹 동작방식 HTTP 에 기반한 통신의 4 단계 3) 응답 메시지 전송하기 응답 라인
OK 200: 요청에 의한 현재 응답이 성공적으로 수행되었다는 것을 나타냄 응답 코드 설명 100~199: 요청이 현재 처리되는 중 200~299: 성공 300~399: 리다이렉션(redirection) 400~499: 클라이언트 쪽의 에러 500~599: 서버 쪽의 에러 HTTP/1.0 OK 200 제1장

8 1. 웹 동작방식 HTTP 에 기반한 통신의 4 단계 3) 응답 메시지 전송하기 4) 연결 끊기 응답 헤더
헤더 정보들은 한 라인에 하나씩 기술 각 라인은 헤더 이름과 값으로 구성 헤더 정보의 끝에는 반드시 공백라인을 추가해서 요청 메시지의 끝임을 서버에 알림 브라우저는 공백 라인을 보자마자 실제 HTML 문서를 받을 준비를 함 4) 연결 끊기 클라이언트나 서버 혹은 둘 다 연결을 닫는다. Server: Apache MIME-version:1.0 Content-type:text/html Content-length: 107 [공백 라인] <html> <HEAD> <Title> A Sample HTML file </Title> </HEAD> <body> The rest of the document goes here </body> </html> 제1장

9 1. 웹 동작방식 HTTP 프로토콜 실험 1) cmd 창에서 “telnet www.egov.go.kr 80” 입력
2) 다음을 입력하고 엔터 telnet을 통한 전자민원 웹 서버 접속시도 GET /index.html HTTP/1.0 제1장

10 전자민원 웹 사이트의 응답 메시지 및 첫 화면의 HTML 소스
1. 웹 동작방식 HTTP 프로토콜 실험 3) HTTP 응답 메시지 및 전자민원 웹 사이트의 첫 화면에 해당하는 HTML 소스가 화면에 출력 지금까지 수행한 내용은 웹 브라우저에서 " 주소를 입력 한 후 엔터를 입력했을 때 브라우저 내부에서 발생되는 일과 동일 다만 브라우저는 전달받은 응답 메시지 및 HTML 소스를 해석하여 폰트의 사이즈 및 색상을 조정하고 이미지 처리 등을 수행 전자민원 웹 사이트의 응답 메시지 및 첫 화면의 HTML 소스 제1장

11 2. 웹 프로그래밍과 동적 웹 페이지 정적 웹페이지의 한계
임의의 사용자가 페이지를 가져와서 브라우저상에 보기 전에 이미 그 페이지의 모든 내용이 정해짐 [예제 1.1] Tomcat 설치 폴더\webapps\jspbook\ch01\welcome.html 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>내 홈 페이지</title> </head> <body> <table border=“0”> <tr> <td><h1>내 홈 페이지</h1></td> </tr> <td> <h4>환영합니다!</h4> <h5>정적 웹페이지입니다.</h5> </td> </table> </body> </html> 제1장 정적 웹 페이지 수행 모습

12 2. 웹 프로그래밍과 동적 웹 페이지 동적 웹페이지 사용자가 페이지를 요청하는 시점에 그 페이지를 새롭게 구성하는 행위를 수행
[예제 1.2] Tomcat 설치 폴더\webapps\jspbook\ch01\welcome.jsp 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 page contentType="text/html;charset=utf-8" %> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>내 홈 페이지</title> </head> <body> <table border=“0”> <tr> <td><h1>내 홈 페이지</h1></td> </tr> <td> <%= “<h4>환영합니다!</h4>” %> <% out.println("<h5>동적 웹페이지입니다.</h5>"); %> </td> </table> </body> </html> 동적 웹 페이지 수행 모습 제1장

13 2. 웹 프로그래밍과 동적 웹 페이지 정적 vs. 동적 웹페이지 정적 웹 페이지와 동적 웹 페이지의 수행 방식 비교
JSP 스크립트를 HTML으로 변환 제1장

14 2. 웹 프로그래밍과 동적 웹 페이지 전통적인 CGI 방식의 동적 웹 페이지 작성 기술
CGI (Common Gateway Interface) 정식 프로그래밍 언어나 스크립트가 아니라 웹 서버와 서버에서 수행중인 일반 프로세스 사이에 정보를 주고받는 규칙 Perl, C, C++ 등의 언어를 지원 프로그램을 호출하여 개별 프로세스를 생성 전통적인 CGI 방식의 웹 요청 처리 방식 제1장

15 2. 웹 프로그래밍과 동적 웹 페이지 전통적인 CGI 방식의 동적 웹 페이지 작성 기술 CGI 방식의 문제점
각각의 클라이언트 요청에 대하여 독립적인 별도의 프로세스가 생성 가령, 5개의 웹 브라우저가 똑같은 URL을 통하여 동일한 CGI 실행을 요청하면 요청 개수만큼 동일한 시간에 같은 프로세스를 5개 생성 중복된 같은 요청에 대한 CGI의 대처 방법 제1장

16 2. 웹 프로그래밍과 동적 웹 페이지 어플리케이션 서버 방식의 동적 웹 페이지 작성 기술
어플리케이션 서버를 통하여 간접적으로 관련 스크립트를 호출하여 수행 Tomcat이 바로 JSP 스크립트 엔진을 포함하는 어플리케이션 서버의 대표적인 소프트웨어 어플리케이션 서버 방식의 웹 요청 처리 방식 제1장

17 2. 웹 프로그래밍과 동적 웹 페이지 어플리케이션 서버 방식의 동적 웹 페이지 작성 기술 CGI에 비해 가지는 장점
다수의 웹 브라우저가 같은 요청을 하더라도 어플리케이션 서버는 관련된 스크립트에 대한 프로세스를 하나만 수행 CGI 방식에 비하여 CPU 점유도나 메모리 점유도에 있어서 상당히 효율적 동시에 더 많은 웹 브라우저의 요청을 처리할 수 있다는 것을 의미하며 이는 곧 안정적인 웹 서비스를 제공할 수 있는 기반 각 웹 요청에 대해서 어플리케이션 서버는 쓰레드 (Thread)로서 처리 Thread One Process 중복된 같은 요청에 대한 어플리케이션 서버 방식의 대처 방법 제1장

18 3. 스크립팅(Scripting) 기술 컴파일 코드 방식 vs. 스크립팅 코드 방식 컴파일 코드 방식 스크립팅 코드 방식 종류
CGI 관련 프로그램인 Perl, C, C++ 과 서블릿 프로그램 JSP, PHP, ASP 코드 형태 컴파일된 기계어코드 (Binary Code) 또는 바이트코드 (Byte Code) 컴파일되기 전 상태인 일반적인 스크립트 코드 컴파일 방법 코드 구현 이후 컴파일과정을 직접 수행해야 함 코드 구현 이후 컴파일과정은 웹 요청 시 자동으로 수행됨 코드 변경 코드를 직접 다시 재컴파일해야 함 스크립트 내에서 코드를 수정만 하면 되며 재컴파일은 웹 요청 시 자동으로 수행됨 프로그래머는 소스만 작성 not 컴파일 제1장

19 3. 스크립팅(Scripting) 기술 서버측 스크립팅 기술 ASP(Active Server Page)
마이크로소프트(Microsoft)의 대표적 기술 VBScript를 이용해서 매우 쉽게 배우고 사용할 수 있다. 기존에 이미 개발되어 있는 COM 객체를 활용함으로써 개발자들은 필요한 프로그램을 코딩하는 시간을 줄일 수 있다. 닷넷 (.NET) 플랫폼 ASP.NET 단점 마이크로소프트에서 개발한 운영 체제 및 개발 환경에 종속 값비싼 마이크로소프트 계열 운영 체제 및 데이터베이스와 통합 개발 환경을 사용해야 한다. 제1장

20 3. 스크립팅(Scripting) 기술 서버측 스크립팅 기술
PHP(Professional Hypertext Preprocessor) Windows, Unix, Linux 운영체제에서 가장 빠르게 동작하는 웹 사이트 구성 가능 오픈소스 모델로 개발되는 언어이기 때문에 다양한 운영 체제와 웹 서버 환경에서 운영될 수 있도록 포팅 소규모 개발자들에게 매우 쉽게 접근할 수 있는 웹 개발 언어 가볍고 사용하기 쉽다 풍부한 DB 지원 기능을 제공 단점 일반적인 프로그래밍 언어가 가지고 있는 풍부한 기능이 부족 객체지향 (Object-oriented) 프로그래밍 언어가 가지고 있는 캡슐화, 상속성, 재사용성, 모듈화 특성이 PHP는 잘 구현되어 있지 않다. 중대형급 규모의 웹 어플리케이션 개발에는 잘 사용되지 않는다. 제1장

21 3. 스크립팅(Scripting) 기술 서버측 스크립팅 기술 JSP (Java Server Page)
썬 마이크로시스템즈(Sun Microsystems)에서 개발한 Java 언어 기반의 웹 스크립트 언어 스크립팅 기반의 웹 프로그래밍을 지원 서블릿은 컴파일 코드 방식을 따라야 하기 때문에 웹 개발자 입장에서는 불편한 점이 많았다. Java라는 훌륭한 객체지향 언어의 여러 가지 기능을 지원받는다. 클래스 라이브러리(Class libraries), 객체 지향적 코딩, 확실하고 풍부한 보안, 언어 자체가 갖는 우아함 처리 효율면에서도 좋은 평가 웹 요청 시 이미 메모리에 적재된 서블릿 코드에서 바로 응답이 가능 코드의 유지관리 보수 측면에 많은 강점 MVC (Model-View-Controller) 모델 풍부한 클래스 라이브러리를 활용할 수 있다 제1장

22 3. 스크립팅(Scripting) 기술 클라이언트측 스크립팅 기술 서버 측 스크립팅 기술 종류
웹 서버 내에 코딩해 놓은 파일을 서버 측에서 동작하는 어플리케이션 서버가 직접 처리하여 그 결과를 브라우저로 보내주는 기술 클라이언트 측 스크립팅 기술 요청하는 파일을 그대로 브라우저로 전송하고 브라우저가 그 파일 내에 있는 스크립트 언어를 해석하여 페이지 자체를 동적으로 만들어 주는 기술 종류 자바스크립트(JavaScript) DHTML(Dynamic HTML) CSS (Cascading Style Sheet) Flash 와 관련된 Actionscript Ajax (Asynchronous JavaScript and XML) 최근 Web 2.0의 패러다임을 실현하기 위해서 클라이언트 측 스크립팅 기술의 중요성이 크게 부각 제1장

23 4. 왜 JSP 인가? Java의 강력한 컴퓨팅 플랫폼 기술 활용 Java의 컴퓨팅 플랫폼 제1장

24 4. 왜 JSP 인가? 프리젠테이션 로직과 비즈니스 로직의 분리 왜 분리가 중요한가?
프리젠테이션 로직(Presentation Logic) 브라우저 화면에서의 표현을 꾸미는 절차 및 기능 비즈니스 로직(Business Logic) 사용자의 요청에 대한 내부적인 처리 절차 및 기능 JSP는 프리젠테이션 로직과 비즈니스 로직을 효율적으로 분리하여 동적 웹 사이트를 구축할 수 있는 훌륭한 스크립트 왜 분리가 중요한가? 웹페이지의 디자인이 변경되더라도 내부 비즈니스 로직을 처리하는 JSP 및 자바빈즈(Javabeans) 코드를 변경할 필요가 없기 때문 결제 시스템 변경과 같은 비즈니스 로직이 완전히 바뀌는 상황이라도 프리젠테이션 로직을 담당하는 코드에는 전혀 영향을 미치지 않기 때문 서로 독립적으로 유지보수 가능 제1장

25 4. 왜 JSP 인가? 컴포넌트의 재사용 JSTL, EL, 커스텀 태그 등을 활용한 개발 용이성
주소 검색 기능, 한글 처리 기능, 데이터베이스 연결 기능 등을 공통 컴포넌트로 개발 JSTL, EL, 커스텀 태그 등을 활용한 개발 용이성 JSTL (Java Standard Tag Library) EL (Expression Language) 커스텀 태그 (Custom Tag) 웹 어플리케이션 개발을 용이하게 하고 동적 웹 사이트 개발시간을 대폭적으로 단축시켜주는 용도로 활용이 가능 제1장

26 4. 왜 JSP 인가? 서버 자원의 효율적 관리 최초 요청 시에 해당 페이지에 대해 컴파일을 통하여 서블릿이 구성되고 메모리로 적재 이후 요청들에 대해서는 이미 적재되어 있는 서블릿에서 바로 응답 서버의 자원을 효율적으로 활용하면서 동시에 응답속도도 상당히 빠르다. JSP는 다른 언어에 비해 느리게 처리되는 편이 아니다. 웹 사이트의 응답 속도는 언어 자체의 영향 보다는 서버의 관리 기술 및 로직 처리의 적정성 및 효율성에 더 많은 의존도가 있다. 제1장


Download ppt "1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장."

Similar presentations


Ads by Google