이번주에 HTML모두 끝내야한다. 월욜부턴 다른거,
웹사이트 아이템이란 부분이 중요하다.(싸이월드, 불법도박 싸이트, 페이스복, 트위터, 아이러브 스쿨 등등 성공한 사이트 아이템들은 많다.)
디자인은 디자이너가 하니까 우리들은 동작하는 모듈을 신경써야한다.(날짜를 선택하면 영화가 나옴 예매할수있는 달력이 나옴. 시간이 나옴. 시간에는 몇좌석이 비어있는지 나옴 이런거)
웹프로그래머가 될꺼고 웹프로그래밍을 해서 웹어플리케이션을 만든다. (웹마스터란 직업은 없다. 서버 디자인 프로그래밍 다하는 직업 ㅡㅡ; 2000년도 초반에 있던 직업인데 학원에서 만든거... 그런건 없다.)
나눠서 전문화 되어있다. 프로그래머로 처음가는걸로 해야 프로그래머만 시킨다. 시키는것만 일단 잘해야한다. 이것도 할줄알아요 노노..,
Web Programming과 Web Application이란 무엇이고 어떠한 방식으로 동작되는지를 배운다.
Web Progamming Language인 JSP가 무엇인지를 이해하고, Servlet서블릿과의 관계도 알아본다.
Web Programming의 개요
개인 Homepage: HTML tag와 JavaScript만으로도 충분히 작성이 가능.
Business Web Site를 구축할 경우: HTMLTag와 JavaScript 만으로는 기업의 방대한 Data나 Shopping Mall과 같은 실시간으로 수많은 데이터의 변화를 처리하거나 저장하기에는 불가능.
동적으로 변하는 데이터를 처리하고 표시에 문제가 발생.
동적으로 변화하는 데이터를 처리하고 표시하기 위해서 개발된 것들이 CGI, ASP, PHP, JSP이다.
(CGI가 가장먼저 나옴.-c언어로 작업, 클라이언트가 들어오면 그 클라이언트가 들어온걸 프로세스로 보기 때문에 컴퓨터의 부하가 심하다.)
(ASP 라는 지식만 가지고 웹사이트를 전부다 만들수 없다. asp는 선지식으로 비쥬얼 베이지직이라던가 할줄알아야, asp를 가지고 제작한다. 2000년도 초반때 asp하던 사람들은 싹갈렸다. 기능이 떨어져서)
(그다음에 나온게 닷넷. 우리나라에서 닷넷 사용률은 거의 바닥을 치고있다.)
(php는 저가쪽 프로젝트에서 많이 쓴다. 못만드는것이 없다. 현재는 php와 jsp를 많이쓴다.)
(대한민국 공공기관의 90%이상은 jsp다.)
(인터넷창을 키고(클라이언트) 주소를 입력하는건 그 주소를 갖고 있는 컴퓨터의 결과를 가지고 오는것이 웹브라우저가 하는 역활이고 웹프로그래머는 결과를 만드는 역할이다.)
(JSP는 서버측에서 동작하는것을 다루는것이다. 톰킷이 서버)
(서버와 클라이언트 부분을 할줄 알아야 취업하는데 어려움이 없다.)
Web Programming은 기본적으로 Client/Server 방식이다.
Client(Web Browser)가 특정Page를 Web Server에 Request(리퀘스트- 요청)하게 되면 Web Server가 이를 처리한 후 결과를 Client(Web Browser) 에게 Response(응답)을 하게 되는 구조이다.
Web Programming Language의 종류
CGI(Common Gateway Interface)
CGI는 Common Gateway Interface의 약자로 사전적인 의미는
World Wide Web(WWW)Server와 Back end Program(Gateway라고 부른다) 사이에서 정보를 주고받는 데 사용.
Gateway의 개발 언어로는 UNIX Platform서는 문자열처리가 간단한 Perl, Windows Platform 에서는 Visual Basic 등이 사용.
Service시 Resource를 많이 사용하는 단점이 있음.
ASP(Active Server Page)
?Microsoft사에서 만들어진 ASP는 Visual Basic이라는 Language에서 사용되는 문법들을 사용하여 Active Content를 만들어 내기 위한 Skill.
ASP 는 ActiveX란 Component를 직접 사용할 수 있고, 그런 Component를 개발하기 위한 기능도 제공.
특정 Web Server와 OS에 동작한다는 단점을 가지고 있으며, Windows Platform에서 Web Server로 IIS(Internet Information Server)만을 사용
PHP(Personal HomePage tools, Professional Hypertext Preprocessor) (저가형 프로젝트 주도는 PHP)
?ASP와는 달리 특정영역에서만 동작하지 않고, C 언어의 문법과 유사하기 때문에 기존의 개발자들이 접근이 쉬움.
또한 적은 명령어들로서 Programming이 가능하게 되어 있기 때문에 편리성이란 측면에서 많은 이점이 있으나 많은 요구들에 대한 PHP가 지원해주는 기능들이 미약함.
Servlet서블릿/JSP (비싼 프로젝트 주도는 JSP)(Servlet서블릿은 자바소스안에 html이 들어가 있어. 굉장히 복잡한구조로 만든다는 단점이 있다.)
?Servlet(Server + Applet) :?? Sun 사에서 내놓은 기술로서 Java라는 Language를 기반으로 하여 Active Content를 생성하는 기술. Java code안에 HTML tag가 혼재되어 있어서 그 효율성이 떨어짐.
JSP(Java Server Pages) : ? JSP 또한 Java 라는 Language를 기반으로 하여 만들어진 것이지만, ASP, PHP처럼 Active Content를 생성하기 위해 Script Language Type으로 Program을 작성할 수 있어 개발자에게 쉬운 개발을 할 수 있게 함. 사용자가 직접 tag를 정의해서 사용할 수 있는 Custom tag를 지정할 수 있는 기능을 갖고 있다.
Servlet서블릿/JSP 톰킷이라는 그위에서 작성해서 클라이언트에 보내주고 있는 작업을 하고 있는거다.?? 이거 개념이 정확히 서야 된다. 한번 물어볼것.
그외 닷넷등이 있다.(몇개 빠져있음)
=========================================
Web Programming과 Web Application(웹을 기반으로 실행되는) -웹프로그래밍을 해서 웹 어플리케이션을 구현하는거다.
Web Application: Web을 기반으로 실행되는 Program .
Web Programming과 Web Application의 관계: Web Programming을 통해 Web Application을 구현.
=========================================
:Programming의 종류
-Applicatiobn 제작 : 운영체제에 있는 UI와 기능을 추가한 프로그램.
스타...게임, 아래한글, MS OFFICE, V3.... 대표적인 일반 어플리케이션
이런 업체들을 SM업체라고 한다. 솔루션을 개발, 어플리 케이션 제작을 하는 그런업체
-Web Application 제작 : 무조건 브라우저를 통한 실행
포탈사이트, 쇼핑몰, 게임사이트,.....
SI업체라고 한다.(외부관리...) 그 회사는 삼성 회사에서 관리한다. 그럼 삼성가서 하는거다.
-Moblie Web Application 제작 : 스마트 기기, 탭용 브라우저를 통한 실행,
(웹어플리케이션을 만드는 사람이 모바일 어플리케이션까지 요즘엔 다 만든다. 월급은 더안준다.)
-App 제작 : 스마트 기기, 탭용 Aplication 제작,
-하이브리드 App제작 : 데이타는 Web Application/Moblie Web Application 에서 만든 데이터를 같이 사용하고 스마트기기, 탭용 Application에서 실행하는....
(하이브리드는 시내주행만 하는 사람들에게 필요한차다. 이것도 마찬가지. ) (스머프 게임 디자인이나 그래픽같은거는 앱에다 넣고 데이터를 주고 받고 관리하는것은 웹에서 관리한다. 바뀌는 데이터를 웹애서 주고 받을 수 있도록, 앱에다 그 처리 로직을 만든다.) 프로그램이 쭉 발전되는 상황들
(웹도 그렇지만 앱은 디자인을 조금 할줄알아야한다. 사람들의 보는 시선 떄문에)
(프로그래밍 해서 집어넣고 그 프로그래밍에 인해서 기계가 움직이는....)
(일단 베이스는 웹. 웹에서 잘갖다 만들면 스마트 기기에서 다 갖다쓰는)
(남의 사이트에서 스마트기기로 데이터를 받고 그걸활용해서 앱을 만든다. 예를들어, 버스도착알림, 하철이, 중앙도서관 데이터를 뽑아다가 도서가 대여됐는지 등등)(대한민국에 잘팔리는 앱중에 하나가 엄마들에게 파는 앱니다. 집안 원격관리등등)
Web Programming과 Web Application
Web Browser가 Web Server에 어떠한 Page를 request하게되면 해당 Web Server는 Web Browser의 request을 받아서 request된 page의 logic 및 DB와의 연동을 위해 Application Server에 이들의 처리를 요청.
이때 Application Server는 DB와의 연동이 필요하면 DB와 Data의 처리를 수행.
logic 및 DB작업의 처리 결과를 Web Server에 돌려보냄.
그러면 Web Server는 결과를 다시 Web Browser에 응답하게 됨.
Web Application의 구성요소
Web Browser
Web에서 Client이며,? User의 Task Window이라 할 수 있다.
Web Server
Web Browser(웹서버)의 요청을 받아들이는 곳으로 작업의 결과도 Web Browser에게 응답을 하는 곳이다. 요청된 페이지의 logic 및 DB와의 연동을 위해 Application Server에 이들의 처리를 요청하는 작업을 수행한다.
Web Application의 구성요소
Web Application Server(WAS)
요청된 페이지의 logic 및 DB와의 연동을 처리하는 부분이다.
DataBase
Data의 Storage로 Web에서 발생한 Data는 모두 이곳에 저장. 게시판의 글들, 회원의 정보 등등
CGI방식과 Web Application Server 방식
CGI방식
CGI방식은 Web Server가 Application Program을 직접 호출하는 구조를 가짐.
Application Program은 처리방식에 있어서 Process를 생성하여 처리하게 되는데, 한 요청에 대해 한 Process가 생성이 되어서 그 요청을 처리한 뒤 종료하는 구조 .
CGI방식과 Web Application Server 방식
CGI방식 (한명당 하나의 프로그램이 돈다. 한대의 서버가 여러명의 클라이언트 처리를 못한다. 수십대 수백대 서버를 놓고 서비스를 해야한다는 단점이있다.) 예전에 야후에서 CGI방식으로 속옷모델 동영상실시간으로 뿌린개 있는데 서버를 천대 놓고 했다고한다.
CGI방식은 Web Server가 Application Program을 직접 호출하는 구조를 가짐.
Application Program은 처리방식에 있어서 Process를 생성하여 처리하게 되는데, 한 요청에 대해 한 Process가 생성이 되어서 그 요청을 처리한 뒤 종료하는 구조 .
CGI방식과 Web Application Server 방식
Web Application Server(WAS)방식 (그래서 cgi때문에 나온게 와스다. WAS)
WAS방식은 Web Server가 직접 Application Program을 처리하는 것이 아니라, WAS에게 처리를 넘겨주고 Application Server가 Application Program을 처리.
WAS 방식은 여러 명의 사용자가 동일한 페이지를 요청하여 같은 Application Program을 처리할 때 오직 한 개의 Program만을 할당하고 사용자의 요청을 Thread 방식으로 처리.
JSP(자바서버페이지)와 JAVA의 관계 - 뒤로 갈수록 jsp의 역할은 눈에 보여주는 역할로 많이간다.-네이버 로그인전 화면에서 로그인을 하면 로그인의 화명 누구님 메일 몇 통 구독함 등등 의 화면으로 바꿔주는것이 JSP다. HTML에선 못한다.-네이버에서 IT,연예 탭 누르면 메인 화면에 뜨는 라인이 있는데 HTML은 일일일 링크 걸어줘야하나. jsp는 프로그래밍으로 만들어주는것이 가능하다.
JSP는 Java Server Pages의 약자로 Sun Microsystems사의 Java Servlet기술을 확장시킨 Web 환경 상에서 100% 순수한 Java만으로 Server side Module을 개발하기 위한 기술.?
JSP는 DBMS(데이터관리)와 같은 Back-end Server와 연동하여 이들 Back-end Server 의 Data를 가공하여 Web상의 최종적 사용자에게 Display 할 수 있고, 여러 조건에 따라 Display 할 수 있는 내용들을 동적으로 처리할 수 있는 기능을 제공.
JSP는 Java라는 language를 기반으로 만들어진 것이며
다음과 같은 특징을 가지고 있다.
객체 지향적
플랫폼 독립적
네트워크 지향적
뛰어난 보안성
멀티스레드 기능
친근한 코드
J2EE를 구성하는 기술
Java는 J2SE(Standard Edition), J2EE(Enterprise Edition), J2ME(Micro Edition)으로 나누어져 개발되는데 JSP는 J2EE를 구성하는 기술 중 하나.
J2EE는 Container(우리가 설치한 톰캣을 갖다가 웹 콘테이너라고한다.)가 관리하는 container-managed component Group과 Service API Group으로 나눈다. // J2EE를알면 자바개발자 상으로 올라가는거다.
J2EE를 구성하는 기술
Container측면과 ServiceAPI측면을 구별하는 이유
분야마다? 전문가들이? Individually Componet? 하나만? 개발.
개발자들은? Business logic? 개발에? 집중할? 수? 있다.
Container
Web Container(톰캣) :??Servlet과 JSP에?대한?실행환경을 제공.
EJB? Container(EJB에대한 실행환경을 제공) :? Enterprise JavaBean에?대한?실행환경?제공
Container를 구성하는 3가지 기술들
Servlet
JSP(Java Server Page)
EJB(Enterprise Java Beans)
Service API
Service API(Application Interface)는?실제로?사용하는?각종Service? 환경을? 제공.
Servlet Outline
Servlet은 MultiThreading에 의해 User 요구를 처리하고 가공해서 이에 대한 결과를 보냄.
Servlet이 Java code에 의존적.
Servlet과 JSP는 상호연계되어 JSP에서 Static part(정적인 멈춰있는)을 담당. Servlet에서 Active(동적인)처리를 위한 부분으로 사용되어보다 효율적인 WebSite 구성.
JSP는 주로 User용 View의 구현에 사용되고 Servlet은 User용 View와 Program logic사이를 Control해주는 역할에 주로 사용.
HTTP와 Servlet 동작원리
HTTP -파일만 주고 받는거다. 일반적인 텍스트 그림들을 주고받으면서 데이터처리할수 있는.
HTTP은 Connectionless(커넥션리스)(client(클라이언트)의 요청에 응답한 후 바로 Connection(작업끝낸후 상태관계없이)을 끊음)과 Stateless(Server의 State가 어떤지 간에 상관없이 요청을 함)의 특징을 가짐.
HTTP method
Get-http header(겟방식은 데이터를 서버쪽으로 전송하고 싶을때 url에 저장하고 보내는것이 겟방식. 그러나 용량이 크거나(25자로 제한) 은행같은곳에서는(계좌번호찍힘)쓰지못한다.)에 정보를 실어 보냄,?default,Start-line의 url뒤에 붙음,전달속도 빠름,256byte가 한계,적은 양의 데이터를 전송 시 좋다.
Post-http(패킷이라는 부분에다가 데이터를 보내고 작업할떄 포스트)의 body에 정보를 실어 보냄,?데이터 사이즈의 제한이 없음.
파워포인트, 책에 있는 내용, 책신청한것 까지 해서 잘봐야한다.
=========================================
html은 동작 하면 동작한대로만 보이고(움직임없이) jsp는 이차저차해서 동작이 된다.
예를 들어 강사가 보여준 예제에 html은 그냥 쳐넣은 시간만 보여주고 jsp는 시간이 계속해서 가고 있었다.
=========================================
<%@ page contentType = "text/html; charset=euc-kr"%>
<%@ page import = "java.util.Date"%>
<%
Date now = new Date();
%>
<html>
<head><title>현재시간</title></head>
<body>
현재 시각;
<%=now %>
</body>
</html>
//이것은 jsp 파일로 구동함 뉴->jsp 파일 선택
=========================================
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
오늘은 2011년 10월 7일 금요일입니다.<br>
현재시간은 오후2시 08분입니다.
</body>
</html>
//이것은 html 파일로 구동함. 위의 jsp파일은 시간이 가는 반면 이건 html은 정해진것만 보여줌
//서블릿은 디버깅이 안되기 떄문에 일일이 문자로 넣어주는거라 요즘엔 잘 안쓰인다.
//서블릿은 혼자만들어서 동작하거나 아니면 html이 넘겨준 데이터를 받아서 처리한다.
=========================================
Java Resourcess->src(에다 서블릿 파일과 자바 파일을 넣어준다.)
//이건 자바파일로 생성해서 넣음
import java.io.*;
public class HangulConversion {
public static String toEng (String ko) {
if (ko == null) {
return null;
}
try {
return new String(ko.getBytes("euc-kr"),"8859_1");
} catch(Exception e) {
return ko;
}
}
public static String toKor (String en) {
if (en == null) {
return null;
}
try {
return new String (en.getBytes("8859_1"), "euc-kr");
} catch(Exception e) {
return en;
}
}
}
//애들은 포주 나이트 삐끼가 일거리 물어와서 여자둘이요 하면 여자둘 넣어줌
////////////////////////////////////////////////////////////////
//이건 서블릿 파일로 생성해서 넣음
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TodayMenu extends HttpServlet{
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
res.setContentType("text/html;charset=euc-kr");
PrintWriter out = res.getWriter();
out.println("<HTML>");
out.println("<HEAD><title>SELECT & POST</title></head>");
out.println("<body>");
out.println("<center><h3>오늘점심은</h3></center>");
String values[] = req.getParameterValues("lunch");
for(int i=0;i<values.length;i++){
out.print("<br>");
out.print(HangulConversion.toKor(values[i]));
}
out.println(" 이나 먹어야 겠다");
out.println("</body></HTML>");
}
}
//애들은 포주 나이트 삐끼가 일거리 물어와서 여자둘이요 하면 여자둘 넣어줌
/////////////////////////////////////
//WebContent->html,htm,jsp를 넣는다.
<HTML>
<HEAD>
<TITLE> SELECT & POST </TITLE>
</HEAD>
<BODY>
<h3>오늘점심은 무엇을 먹을까?(2개이상 선택)</h3>
<form method="post" action="/ssol/TodayMenu">
<input type="checkbox" name="lunch" checked = "on">개자식
<input type="checkbox" name="lunch" >소자식
<input type="checkbox" name="lunch" >말자식
</select>
<input type="submit">
</form>
</BODY>
</HTML>
//WebContent에 html파일 생성 집어넣는다. 구동시킨다. 애가 나이트 삐끼
=========================================
톰캣-어플리케이션 서버
'개발 관련 > JAVA 수업' 카테고리의 다른 글
선언문 - 디렉티브 - request - get - parameter - 24일차 (0) | 2011.10.17 |
---|---|
jsp 기초 및 톰캣 - 23일차 (0) | 2011.10.17 |
톰캣 오라클 셋팅과 간단실행 방법과 앞으로의 방향-21일차 (0) | 2011.10.07 |
소켓 네트워크 20111005 20일차(수업+코딩) JAVA기초 (0) | 2011.10.06 |
IO 스트림, 네트워크 - 19일차 (0) | 2011.10.05 |
댓글