자바 웹 개발 시작하기 (2주차 : 인터넷과 웹...

20
자바 개발 시작하기 (2주차 : 인터넷과 어플리케이션의 이해) 2011. 11. 02 DEVELOPMENT #2 이덕곤

Upload: dk-lee

Post on 14-Nov-2014

1.583 views

Category:

Technology


1 download

DESCRIPTION

Java web development 02 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해) 2011. 11. 02 벌써 2년도 넘은 자료지만 그래도 필요하신분이 있을지 몰라서... (지금보니 2년사이 많은것을 배운것 같네요 ㅎㅎ)

TRANSCRIPT

Page 1: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

2011. 11. 02

DEVELOPMENT #2

이덕곤

Page 2: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  자바 웹 개발 기본환경 만들기 §  윈도우 설치

§  JDK 설치

§  Tomcat 설치

§  Eclipse 설치

§  Hello, World!

§  모델 1 기반의 JDBC연동 웹 프로그래밍

§  못다한 이야기 : 모델 2 기반의 웹 프로그래밍

Page 3: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  못다한 이야기 계속하기(1주차 PT 활용)

§  인터넷과 웹 어플리케이션의 이해

§  인터넷과 웹

§  LAN선을 타고 돌아다니는 것들은?

§  서버와 클라이언트, 프로토콜이란?

§  웹 어플리케이션과 자바 §  왜 자바를 사용할까?

Page 4: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  1960~1970년대 미국 국방부 산하의 고등 연구국 (Advanced Research Projects Agency, ARPA)의 연구용 네트워크(ARPANET)가 시초

§  지금은 일반적인 의미로 TCP/IP 프로토콜을 사용해서 연결되어 통신하는 모든 네트워크를 인터넷이라 칭함

§  메시지가 한 방향 이상으로 나뉘어 전달되거나 또는 다른 길로 전달될 수 있기 때문에, 적의 군사공격이나 기타 다른 재해로 인해 네트워크의 일부가 파괴된 경우 에도 제 기능을 발휘할 수 있는 특징을 가짐

§  1983년 ARPANET이 정지하면서 TCP/IP기반으로 전환

Page 5: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  통신 : 라틴어 ‘communicare(공유하다)’, 원거리 대화

§  네트워크(망) : 서로 연결시켜주는 조직이나 체계

§  프로토콜 : 서로 다른 기종의 컴퓨터 사이에 어떤 자료를, 어떤 방식으로 언제 주고받을지 등을 정해놓은 통신규약

Page 6: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

Hi

Hi

Got the time?

2:00

TCP connection req.

TCP connection reply.

<file>

time

Page 7: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  Transmission Control Protocol / Internet Protocol §  TCP : 네트워크 전송제어 프로토콜 - 데이터를 나누고 포장하고

§  IP : 데이터를 주고 받는 것에 관한 규약 - 어디(주소)로 가야 하나?

Page 8: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
Page 9: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  월드 와이드 웹(World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간. 정보 요청자 클라이언트와 제공자 서버와 네트워크의 집합

§  도메인 이름 서비스(Domain Name Service 또는 Domain Name System, DNS)는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행

§  Email(POP3, SMTP, IMAP) 전자 우편 서비스

§  FTP는 인터넷상의 컴퓨터들간에 파일을 교환하기 위한 프로토콜

§  텔넷(Telnet)은 자신이 사용권한을 가지고 있다는 전제하에 다른 사 람의 호스트 컴퓨터를 원격지에서 액세스할 수 있도록 해주는 방법

§  비트토렌트(BitTorrent)는 P2P(peer-to-peer) 파일 전송 프로토콜

Page 10: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  HyperText Transfer Protocol §  WWW에서 정보(HTML 문서)를 주고 받는 데에 쓰이는 통신규약

IP 프로토콜

IP 프로토콜

이더넷 프로토콜

HTTP 클라이언트

TCP

HTTP 프로토콜

IP

TCP 프로토콜

HTTP 서버

TCP

IP

토큰링 프로토콜

토큰링

IP

토큰링 드라이버

라우터

이더넷

이더넷 드라이버

토큰링 드라이버

이더넷 드라이버

Http request GET “http://www.ee.ucla.edu”<CR>

Http response 200 “” <CR> <html file in MIME format>

Page 11: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  HEAD §  GET과 같은 요청이지만,

자료에 대한 정보만을 받는다.

§  GET §  URL에 해당하는 자료의

전송을 요청한다.

§  POST §  서버가 처리할 수 있는

자료를 보낸다.

§  PUT §  해당 URL에 자료를 저장한다.

§  DELETE §  해당 URL의 자료를 삭제한다.

§  200 - 요청이 정상적으로 처리됨

§  400 - 클라이언트의 요청이 잘못된 구문으로 구성됨

§  401 - 접근이 허용되지 않음

§  404 - 지정된 URL을 처리하기 위한 자원이 존재하지 않음

§  500 - 서버 내부에러. 예를 들어, JSP에서 예외가 발생하는 경우가 해당된다.

§  503 - 서버가 일시적으로 서비스를 제공할 수 없음. 급격하게 부하가 몰리거나 서버가 임시 보수 중인 경우가 해당된다.

Page 12: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  클라이언트와 서버의 요청(Request)과 응답(Response) 관계 속에서 이루어짐

§  클라이언트 프로그래밍 §  자바스크립트, HTML, CSS

§  서버사이드 프로그래밍 §  웹 어플리케이션

§  웹 서비스

HTML JAVAScript 등 JSP, ASP, PHP 등

Internet (HTTP)

Page 13: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  CGI란? §  '서버-사이드 스크립트언어' 의 시초

§  게시판이나 방명록을 구현할 때 많이 사용됨

§  C/C++, PERL등 다양한 프로그래밍 언어로 구현 가능함

§  사용자의 수가 늘어날 수록 동일한 프로세스가 서버에 생성됨

§  CGI의 동작 원리 int main(int argc, char ** argv)

{

printf("Content-type: text/html\n\n");

printf("<html><body>

<h2>Hello World CGI VERSION</h2>

</body></html>\n);

}

Page 14: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  CGI의 단점 §  클라이언트의 요청만큼 프로세서를 생성 => 처리량에 한계가 있다.

§  확장 CGI §  처음 클라이언트의 요청에 따라 라이브러리를 메모리에 로딩한 후, 메모리에

적재된 라이브러리를 사용해서 클라이언트의 요청을 처리하는 방식 §  다수의 요청이라도 한 개에 해당하는 메모리만을 사용하기 때문에 일반적인

CGI에 비해 효율적이다.

§  확장 CGI 언어 §  자바 기반의 확장 CGI 프로그래밍

§  서블릿(Servlet) : Server + Let(허용)의 합성어 §  웹(HTTP) + 자바 프로그래밍, Java 프로그래밍 기반의 확장 CGI

§  자바 기반의, 확장 CGI 기반의, 스크립트 방식의 프로그래밍 §  JSP(Java Server Pages)

§  서블릿보다 쉽게 동적 웹 페이지를 생성할 수 있는 프로그래밍 언어 §  웹(HTTP) + 프로그래밍(Java) + 스크립트(Script) 기능 §  스크립트 방식의 서버 측 프로그래밍(Server Side Programming)

Page 15: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

Public class CMemberTest extends HttpServlet{

public void doget(HttpServeletRequest request, HttpServeletResponse response)

throws ServletException, IOException { response.setContentType(“text/html; UTF-

8”); PrintWriter out = response.getWriter(); out.printerln(“<HTML><HEAD><TITLE>로

그인</TITLE></HEAD></HTML>”); out.printerln(“<BODY><H2>Hello World :

헬로월드</H2>”); out.printerln(“오늘의 날짜와 시간은 : “new j

ava.util.Date()); out.printerln(“</BODY></HTML>”); } }

<%@ page contentType=“Text/html; charset=UTF-8” %>

<HTML> <HEAD><TITLE>Hello World</TITLE><HEA

D> <BODY><H2>Hello World : 헬로월드</H2> 오늘의 날짜와 시간은 : <%= new java.util.Dat

e() %> </BODY> </HTML>

Page 16: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  자바 = 표준 + 구현체 (고도의 추상화)

§  자바를 기반으로 하는 스크립트 언어로 자바가 제공하는 기능을 그대로 사용할 수 있다.

§  자바를 기반 => 플랫폼에 상관없이 사용할 수 있다.

§  서블릿/EJB 등의 엔터프라이즈 기술들과 잘 융합된다.

§  표현 언어, 표현식, 스크립트릿 등 다양한 스크립트 요소와 액션 태그 등을 제공함으로써 보다 쉽게 웹 어플리케이션을 프로그래밍 할 수 있도록 도와준다.

§  이러쿵 저러궁

§  사실은… (대기업은 여러가지 다 사용. 왜 그럴까?)

Page 17: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  "The power of the web is in its universality. Access by everyone regardless of disability is an essential aspect."

§  Tim Berners-Lee

§  "웹의 힘은 보편성에 있다. 불리한 조건에 관계없이 누구나 접근하는 것은 필수적인 측면이다."

§  팀 버너스 리

Page 18: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  TCP IP 네트워킹 §  http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/

TCP_IP

§  소설같은 JSP §  http://www.jabook.com/jabook2/bs/bsView2.do?ba_no

=2&bs_no=23&c_page=1

§  웹 프로그래밍 언어 비교하기 §  http://www.emh.co.kr/xhtml/server_side_scripting_lan

guages.html

Page 19: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

§  스프링 웹 개발

§  RESTful (REpresentational State Transfer)

§  컨트롤러

§  뷰, 표현방법 : JSP, EL, JSTL

§  JSON : Gson

§  과제 : JSP말고 다른 표현방법 연구

Page 20: 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)