1강 01장. 웹과 자바.

Slides:



Advertisements
Similar presentations
웹 서버 구축 숭의여대 인터넷정보과 최지영. 웹 ? 웹사이트 ? 웹서버 ? 웹서비스 ? IIS? 아파치 ?
Advertisements

8 장 웹 프로그래밍 언어의 종류. 8.1 문서의 표준화  컴퓨터와 웹을 이용하기 위해서는 컴퓨터가 이 해할 수 있는 언어를 사용.  웹 프로그래밍 언어 (Web Programming Languages) 란 인터넷에 웹 서비스를 제공하거 나 제공받기 위하여 사용하는.
BUILDING A SMARTER PLANET 공모전 개요 참가 자격 국내외 대학생/대학원생 개인 또는 5인 이하 팀 (멘토 지도교수님 또는 조교님 포함) 공모 내용 똑똑한 지구 테마로 개발 제안서 제출 후 애플리케이션 작성 개발 환경 학생 PC 또는 IBM 클라우드.
Web Programming 소개 인공지능 연구실. Artificial Intelligence Laboratory 목차  1. HTML5  2. 개발 환경 구축  3. JSP  4. 실습 2.
01 학습 내용 : 준비학습 : 인터넷 과 웹 01 장. 인터넷 이해하기 02 장. 홈페이지를 만들기 전에.
Chapter 02. 웹에 대한 이해. Chapter 02. 웹에 대한 이해 웹의 역사 HTTP 웹 애플리케이션 기술.
컴퓨터 네트워크와 인터넷.
전자상거래 원론: 제18장 전자상거래 수행전략 및 구현.
2009년 IT인재개발원 [연수생 모집요강]
제 09 장 인터넷과 월드와이드웹 한국대학교 홍길동 교수.
중앙일보 ITEA 전주대학교 IT교육원 운영계획(안)
Introduction to Servlets
HTML5 웹 프로그래밍 입문 (개정판) 1장. 인터넷과 웹환경의 발전.
APPEON SOLUTION INTRODUCTION.
Web Server (JSP, Servlet 지원)
어서와 Java는 처음이지! 제1장 기초 사항.
Web Programming 강의 소개
공개소프트웨어란? “Open Source Software(공개SW)는 저작권자가 소스 코드를 개방하여 소스 코드의 수정, 재 배포가 자유로운 SW로 규정한다 공개소프트웨어는 전세계 개발자 누구나 참여하고 있는 커뮤니티 프로젝트로 개발되며, 브랜드를 달고.
어서와 Java는 처음이지! 제1장 기초 사항 IT응용시스템공학과 김형진 교수.
컴퓨터 소프트웨어.
2 서블릿의 기초.
3장. 웹 어플리케이션과 JSP 및 Servlet의 이해 제3장.
1. JSP(Java Server Pages) 소개
9 표준 액션.
Chapter 01 : Java EE 개요. chapter 01 : Java EE 개요.
5 익셉션 처리.
웹 서비스 (Web Services).
서버의 종류와 기능 환경공학과 권진희.
1장. JSP 및 Servlet을 활용한 동적 웹 프로그래밍 소개 제1장.
1. JSP(Java Server Pages) 소개
웹과 PHP를 이해하고 APM 설치 방법을 알아보자!
메소드 호출과 힙 원격 메소드 호출 서블릿 엔터프라이즈 자바 빈즈
3 JSP의 기초.
7 JSP의 기초.
4 쿠키와 세션.
Chapter 01 : Java EE 개요. chapter 01 : Java EE 개요.
NTAS 소개 (Network Transaction Application Server)
Socket & Plug 기반의 u-Banking Platform
인터넷 보안 정보 보안 개론 5장.
(Network Transaction Application Server)
소프트웨어시스템설계(둘째주) JSP 개발 환경과 간단한 JSP 실습
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
웹 애플리케이션 개발 프레임워크와 스트러츠 웹 애플리케이션 기술 변천사를 이해한다
Web Server Program 구현 - 네트워크 프로그래밍 - 박내갑 ( ) 김상언 ( )
웹 서비스 (Web Services).
04장 웹 보안: 웹, 그 무한한 가능성과 함께 성장한 해킹
Power Java 제1장 자바 소개.
Html(front end) & jsp(back end)
JDBC (Java Database Connectivity)
객체 지향 프로그래밍.
Web Basic 김영성 인천대 OneScore
Endless Creation - 안 승례 -
1강. 웹프로그래밍 웹프로그래밍이란? JAVA웹 웹프로그램의 동작 필요한 학습 Lecturer Kim Myoung-Ho
김 정 석 Web Programming 김 정 석
NTAS 소개 (Network Transaction Application Server)
2장. 홈페이지를 만들기 전에 홈페이지 제작 목적과 제작 과정 홈페이지 제작 관련 기술들 홈페이지 제작에 필요한 준비물
myfood.com 상명대 맛집 홈페이지 구축 제안서
3장. 웹로직 서버에서의 서블릿과 JSP의 운용 3-1. 서블릿, JSP를 실행하기 전의 환경 설정
Internet Computing KUT Youn-Hee Han
Ⅳ. 컴퓨터와 생활.
Internet Computing KUT Youn-Hee Han
JSP와의 첫 만남 간간한 JSP 프로그램을 작성하면서 앞으로 학습에 필요한 과정을 익힌다.
Web & Internet [02] HTML5 기본구조와 작성법
ASP 기초개념 ASP란? ActiveX 서버 컴포넌트.
CHAPTER 6 도전! 트위터 웹 앱 개발 Jquery Mobile 5/28/2019.
웹 스크래핑.
웹 프로그래밍 기술 요약 Yang-Sae Moon Department of Computer Science
Web Server Install.
Chapter2 : 자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합개발환경(IDE)
AJAX Technology for Web2.0
Presentation transcript:

1강 01장. 웹과 자바

자바는 객체지향 프로그래밍 언어이면서 웹 프로그래밍에 적합한 언어이다 자바는 객체지향 프로그래밍 언어이면서 웹 프로그래밍에 적합한 언어이다. 따라서 오늘날 많은 웹 서비스들이 자바 기반으로 개발되어 제공되고 있으며 자바 기반 웹 서비스의 효율성을 높이기 위한 많은 기술들이 발표되고 있는 실정이다. 이 장에서는 웹과 자바 기반 웹 서비스를 이해하는데 필요한 각종 용어들의 의미를 살펴보고, 자바 기반 웹 서비스가 어떤 구조와 구성요소를 가지고 제공되는지 알아본다.

자바 기반 웹 서비스 제공 방식을 이해 웹과 관련된 기본 용어에 관해 기술 JSP의 특징 및 관련 개념을 설명 HTTP 프로토콜을 이해

웹이란? 웹의 의미 인터넷 기반의 정보 공유 서비스 유럽 입자물리학 연구소(CERN)의 팀 버너스 리가 제안 World Wide Web, WWW, 또는 W3라 함 인터넷 상에 분산되어 존재하는 다양한 정보를 통일된 방법으로 찾아볼 수 있게 하는 정보 서비스 분산된 웹 서버에 존재하는 hypertext 문서들이 서로 연결된 시스템 유럽 입자물리학 연구소(CERN)의 팀 버너스 리가 제안 웹 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간 하이퍼텍스트들이 상호 연결되어 있는 문서 시스템 하이퍼텍스트 형식으로 표현된 인터넷 상의 정보들을 효과적으로 검색하는 서비스(웹은 인터넷 상에서 동작하는 하나의 서비스) 1989년3월 물리학자 상호간의 신속한 정보 교환과 공동 연구를 위해 시작 넷스케이프의 전신인 모자익이 개발된 후 웹이 대중화

웹이란? 하이퍼텍스트 W3C 텍스트 뿐만 아니라 이미지, 동영상과 같은 멀티미디어 요소를 포함한 웹 페이지 텍스트 뿐만 아니라 이미지, 동영상과 같은 멀티미디어 요소를 포함한 웹 페이지 웹 브라우저를 이용해 볼 수 있으며, hyperlink로 다른 하이퍼텍스트와 연결됨 HTLM로 표현되며 HTTP 프로토콜을 사용하여 전송됨 W3C 월드와이드 웹 컨소시엄이 HTML, HTTP 등의 웹 관련 기술을 관리함 URL(Uniform Resource Locator) 네트워크 상에 존재하는 자원의 위치, 웹 사이트 상의 웹 페이지 뿐만 아니라 네트워크 상의 모드 자원의 위치 이러한 자원을 이용하려면 적당한 프로토콜을 알아야 함 scheme://domain:port/path?query_string#fragment_id 프로토콜 이름(스킴 이름): //(id:pass@)호스트이름 호스트이름이 필요없는 형태 mailto:xxx@xxx.com HTTP 1999년에 1.1이 발표됨 HTTP로 전달되는 요청/응답은 http: 로 시작하는 URL

웹 문서 정적 웹 문서 클라이언트가 서버에게 요청하면 응답되는 컨텐츠 클라이언트가 요청하면 항상 동일한 문서가 전달되는 경우 클라이언트가 요청하면 항상 동일한 문서가 전달되는 경우 정적인 텍스트로 문서의 내용이 바뀌지 않음

<HTML> <HEAD> <TITLE>내 홈 페이지</TITLE> </HEAD> <BODY> <h2>방문을 환영합니다.</h2> </BODY> </HTML>

웹 문서 동적 웹 문서 클라이언트에 전달되는 문서의 내용이 동적으로 바뀜 웹 문서에 동적인 요소를 포함시켜 클라이언트에 전송 클라이언트(웹 브라우저)가 해석하여 보여줌 JavaScript, Applet 서버가 어플리케이션을 통해 문서를 동적으로 생성한 후 클라이언트에 전송 CGI, JSP, ASP, PHP 등의 기술

웹 문서 정적 웹 문서 동적 웹 문서(서버 측 처리) Client Web Server Web Application Server 요청 a.html Client Web Server HTML 문서 동적 웹 문서(서버 측 처리) 요청 a.jsp Web Application Server Client Web Server HTML 문서 JSP 스크립트를 HTML 문서로 변환

<TITLE> Hello JSP! </TITLE> </HEAD> <BODY> <%@ page language="java" contentType="text/html;charset=euc-kr" %> <HTML> <HEAD> <TITLE> Hello JSP! </TITLE> </HEAD> <BODY> 지금 시간은 : <% out.print(new java.util.Date( )); %> </BODY> </HTML> 디렉티브 (Directive) 스크립트릿 (Scriptlet)

웹 어플리케이션의 구성 웹 브라우저 웹 서버 웹 어플리케이션 서버 데이터베이스 웹 서비스를 요청하고 결과를 제공받는 클라이언트 클라이언트의 요청을 처리하도록 프로세스를 관리 웹 어플리케이션 서버 JSP 프로그램을 실행시키고 결과를 웹 서버에 전달 데이터베이스 웹 서비스 수행에 필요한 데이터를 저장

웹 서버 웹 어플리케이션 서버 웹 브라우저 (웹 컨테이너/EJB 컨테이너 ) 데이터베이스 In Java Platform, Enterprise Edition, a web container, also known as a Servlet container "implements the web component contract of the Java EE architecture".[1] This contract specifies a runtime environment for web components that includes security, concurrency, lifecycle management, transaction, deployment, and other services. A web container provides the same services as a JSP container as well as a federated view of the Java EE (formerly J2EE) platform APIs. 서블릿이나 JSP 페이지를 웹 컴포넌트라 함(그 외의 것은 EJB 컴포넌트로 비즈니스 로직을 처리) 서블릿은 Java 클래스이며 동적인 요청을 처리하고 응답을 만듦 JSP 페이지는 텍스트기반 문서로 서블릿으로 실행됨 웹 컴포넌트외에 비즈니스로직을 처리하는(EJB) 모듈까지 포함하여 어플리케이션 서버라 함 웹 컨테이너는 JSP 페이지와 서블릿 컴포넌트의 실행을 관리 ■ Java EE server: The runtime portion of a Java EE product. A Java EE server provides EJB and web containers. ■ Enterprise JavaBeans (EJB) container:Manages the execution of enterprise beans for Java EE applications. Enterprise beans and their container run on the Java EE server. ■ Web container:Manages the execution of JSP page and servlet components for Java EE applications. Web components and their container run on the Java EE server.

웹 어플리케이션 웹 어플리케이션의 실행 위치 클라이언트 측 서버 측 웹 브라우저에서 스크립트를 해석하여 페이지를 생성 애플릿, JavaScript, 플래시 등 보안의 문제 서버 측 웹 어플리케이션 서버가 수행한 결과를 브라우저에 전송 Java 서블릿, JSP, CGI, ASP 등 서버의 부담 동적웹응용은 업무 처리를 위해 일련의 트랜잭션을 처리하는 프로그램 집합. 데이터 처리를 포함 클라이언트 스크립트 요청하는 파일을 그대로 브라우저로 전송하고 브라우저가 그 파일 내에 있는 스크립트 언어를 해석하여 페이지 자체를 동적으로 만들어 주는 기술 종류 자바스크립트(JavaScript) DHTML(Dynamic HTML) CSS (Cascading Style Sheet) Flash 와 관련된 Actionscript Ajax (Asynchronous JavaScript and XML) 최근 Web 2.0의 패러다임을 실현하기 위해서 클라이언트 측 스크립팅 기술의 중요성이 크게 부각

웹 어플리케이션 컴파일 방식과 스크립트 방식 컴파일 방식은 실행 파일이나 바이트 코드가 만들어져 사용됨 Perl, C, C++, Java 서블릿, JSP 스크립트 방식은 매 요청마다 스크립트를 해석하여 실행하는 방식 클라이언트 측/서버 측 스크립트

CGI와 WAS CGI(Common Gateway Interface) 동적 컨텐츠를 생성하기 위한 서버 프로그래밍 방식 웹 서버를 통해 소프트웨어를 호출하는 방법 프로그램을 사용하여 HTML 코드를 만듦 초기 웹 프로그래밍에 사용된 기술 클라이언트의 요청이 있으면 해당 프로그램을 실행시키기 위해 개별 프로세스를 생성함 동일한 CGI를 요청해도 요청의 개수만큼 프로세스를 생성

CGI 프로그램 printf(“<html><head><title>CGI 문서</title></head>”); printf(“\n<body>”); printf(“\n \”저희 사이트를 방문해 주셔서 감사합니다.\””); printf(““\n</body></html>”); ...

CGI와 WAS WAS(Web Application Server) 동적인 웹 서비스를 전담하는 별도의 서버 모든 요청에 대해 매번 프로세스를 생성하지 않고 하나의 자바 가상 기계 내에서 수행함 요청을 처리하기 위해 스레드를 생성함 CGI 별도의 WAS가 필요하지 않다. C, Perl 등의 언어로 개발할 수 있다. client의 요청이 많아질수록 성능이 급격히 떨어진다. WAS 별도의 WAS가 필요하다. Java, .NET 등의 언어로 개발할 수 있다. client의 요청이 많아지더라도 성능이 급격히 떨어지지는 않는다.

CGI와 WAS CGI : 웹 서버가 응용 프로그램을 직접 호출 WAS : 동적 웹 서비스를 담당하는 서버 클라이언트의 요청이 많아지면 급격히 성능이 저하됨 program Client Web Server program program WAS : 동적 웹 서비스를 담당하는 서버 스레드 방식을 사용함 교재 23쪽 그림1.3 아래에서 프로세스가 아니고 프로그램임 thread Web Application Server Client Web Server thread thread

웹 서버와 웹 어플리케이션 서버 웹 서버 클라이언트로부터의 요청을 받고 결과를 전달하는 기능 HTTP 프로토콜을 사용함 Apache HTTP Server, IIS HTTP 프로토콜을 사용함 클라이언트와 웹 서버 사이에 웹 문서를 전송하기 위한 통신 규약 웹 서버를 HTTP 서버라고도 함 Windows 서버의 IIS

웹 서버와 웹 어플리케이션 서버 웹 서버의 구체적 기능 클라이언트가 요청한 웹 문서를 찾아 전달 문제가 있으면 정해진 코드 값으로 응답 클라이언트 요청에 대한 기본적 사용자 인증을 처리 프로그램 실행 요청이 있으면 처리 후 그 결과를 전달 여러 웹 클라이언트로부터의 요구를 하나의 웹 서버가 처리하게 되면 서버의 부하가 가중되고 속도 및 보안 등의 성능에 문제가 생기게 된다. 이러한 이유 때문에 여러 개의 웹 서버가 동시에 구동되도록 하는 방법을 사용하기도 하지만 이보다는 [그림 1.1]에서와 같이 웹 서버의 기능을 구조적으로 분리하여 처리하려는 목적으로 제시된 것이 바로 웹 어플리케이션 서버이다.

웹 서버와 웹 어플리케이션 서버 웹 어플리케이션 서버 Client 서버의 성능을 개선하기 위해 웹 서버의 기능을 분리 웹 서비스의 처리를 위해 동적 페이지를 만들거나 비즈니스 로직을 담당 Web Browser Web Server 어플리케이션 서버는 어플리케이션의 실행 환경을 제공 여러 컴포넌트로 구성. 대개 웹 서버와 같은 머신에서 수행되며 동적 페이지를 만드는 것이 주된 일. 대부분의 상용 WAS들은 웹 서버나 컨테이너의 기능 외에 트랜잭션, 보안, 트래픽 관리, DB 연결 관리, 사용자 관리 등 다양하고 강력한 기능을 제공하는 패키지들로 구성된다. 웹 서버와 연동됨 Java EE Web Server Apache, IIS client가 요청한 페이지를 그대로 client에게 전달 WAS WebLogic, WebSphere, iPlanet, Oracle 9iAS JEUS 여러 client의 요청을 동시에 처리 client 요청의 처리에 필요한 business logic의 실행 .NET 또는 J2EE platform 사용 Web Application Server(WAS) Client

자바와 웹 프로그래밍 서블릿 Server + Applet Java 언어에 기초한 웹 프로그램의 개발 기술 확장된 CGI 방식이나 마찬가지로 디자인과 로직 처리가 혼재 CGI와 달리 스레드 기술을 이용 Java 언어로 서블릿 클래스를 만들고 컴파일된 바이트 코드를 서버에 탑재하여 웹 서비스를 제공 소스를 수정하면 다시 컴파일하여 서버에 탑재해야 함 교재 7장 개발 작업의 효율성이 낮은 문제점이 노출되었다. 이후, 서블릿의 이러한 단점을 보완하기위해 스크립트 방식의 자바 기반 웹 프로그래밍 표준으로 JSP가 제안되었다. JSP는 일일이 프로그램 코드를 컴파일 하여 탑재하는 방식이 아니라 JSP로 작성된 소스코드를 서버에 탑재하면 웹 어플리케이션 서버나 웹 컨테이너가 자동으로 JSP 페이지들을 컴파일 하여 웹 서비스를 제공하는 방식을 채택하였기 때문에 개발 작업의 효율성도 높아졌고 이에 따라 웹 서비스를 제공하는 주요 기술로 자리를 잡게 되었다. JSP 표준으로 개발된 프로그램은 웹 어플리케이션 서버에 의해 서블릿 클래스로 변환되고 컴파일되어 서비스를 제공한다. 따라서 JSP 표준이 웹 서비스의 주요 기술이 되었다고 해서 서블릿 기술이 없어지거나 사용되지 않는 것은 아니며 두 가지 표준은 웹 서비스를 제공하는 주요 기술로 함께 발전하고 있다.

서블릿 프로그램 public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html; charset=EUC_KR"); java.io.PrintWriter out = response.getWriter(); out.println("<HTML><HEAD><TITLE>로그인</TITLE></HEAD>"); out.println<BODY><H2>헬로 서블릿</H2>"); out.println(“오늘의 날짜와 시간은 : “+new java.util.Date()); out.println("</BODY></HTML>"); }

자바와 웹 프로그래밍 JSP 서블릿을 서버측 스크립트로 구성한 언어 특징 J2EE를 구성하는 기술 중의 하나 특징 스크립트 방식 Java 언어의 특성을 활용 표현 언어, 표현식, 액션 태그 등의 스크립트적 요소를 제공 다양한 개발 환경이 오픈 소스로 제공됨 웹 컨테이너가 자동으로 JSP 페이지들을 서블릿으로 변환하고 컴파일 하여 웹 서비스를 제공하는 방식

클라이언트 WAS / 웹 컨테이너 변환 요청(.jsp) 서블릿 JSP 페이지 (Java 프로그램) 컴파일 서블릿 (클래스 파일) 응답(HTML) 최초 요청 시에 해당 페이지에 대해 컴파일을 통하여 서블릿이 구성되고 메모리로 적재 이후 요청들에 대해서는 이미 적재되어 있는 서블릿에서 바로 응답 서버의 자원을 효율적으로 활용하면서 동시에 응답속도도 상당히 빠르다. JSP는 다른 언어에 비해 느리게 처리되는 편이 아니다. 웹 사이트의 응답 속도는 언어 자체의 영향 보다는 서버의 관리 기술 및 로직 처리의 적정성 및 효율성에 더 많은 의존도가 있다 클라이언트 WAS / 웹 컨테이너

자바와 웹 프로그래밍 왜 JSP인가? .NET 기술은 윈도우 환경에 의존적이어서 개발과 운용 환경에 제약이 있음 폐쇄적/개방적

컨테이너 서블릿이 실행되기 위한 환경 서블릿 컨테이너 자바 실행 환경 웹 서버 서블릿/JSP 컨테이너 Java로 구현된 서블릿 엔진 Tomcat, WebLogic, WebSphere, IAS 등

컨테이너 JSP 컨테이너 JSP 프로그램을 서블릿 프로그램으로 변환하는 기능의 프로그램 서블릿 컨테이너에 의해 실행됨 대부분의 서블릿 컨테이너와 WAS들은 JSP 컨테이너를 포함함 JSP 컨테이너는 JSP 엔진과 동의어 JSP 컨테이너는 JSP 페이지를 번역, 실행,처리 JSP는 서블릿으로 구현되어 있음 웹 서버가 Java로 작성되었다면 JSP 컨테이너는 웹서버에 포함되어 있음 그렇지 않으면 웹 서버에 의해 사용됨

HTTP 프로토콜의 이해 HTTP 전송 계층 TCP 프로토콜에 기초한 어플리케이션 계층 프로토콜 WWW 서비스를 위해 웹 서버와 클라이언트가 통신하는 규약 특징 Connection oriented & Stateless 요청을 위해 접속을 해야 함 서버가 응답한 후에 서버는 클라이언트의 상태를 유지하지 않음 웹 서버의 부담을 줄이나 상태 관리를 위해 쿠키나 세션 등이 필요 HTTP 요청과 응답 형식의 통신 연결 설정, 요청 메시지 전송, 응답 메시지 전송, 연결 끊기 데이터를 주고받기 위한 프로토콜은 크게 서비스 계층과 전송 계층으로 구분 HTTP는 HTML 형태로 만들어진 멀티미디어 정보를 주고받기 위해 사용되는 서비스 계층 프로토콜 TCP/IP는 인터넷에 연결된 호스트 간에 서로 데이터를 주고받을 수 있게 하는 전송 계층 프로토콜 HTTP 외에 FTP, Telnet, SMTP 등이 공통적으로 이용하는 데이터 전송 수단 HTTP는 클라이언트가 서버에 TCP 접속을 처리한 후에 요청/응답 형식으로 통신하는 기술이다. 그러므로 서버와 클라이언트가 주고받는 요청 및 응답 메시지는 HTTP를 이용한 통신의 핵심이라 할 수 있다. 각 메시지는 시작 라인, 헤더, 메시지 몸체로 구성되어 있다.