SlideShare a Scribd company logo
자바 웹 개발 시작하기
(2주차 : 인터넷과 웹 어플리케이션의 이해)
2011. 11. 02

DEVELOPMENT #2

이덕곤
§  자바 웹 개발 기본환경 만들기
§  윈도우 설치
§  JDK 설치
§  Tomcat 설치
§  Eclipse 설치
§  Hello, World!

§  모델 1 기반의 JDBC연동 웹 프로그래밍
§  못다한 이야기 : 모델 2 기반의 웹 프로그래밍
§  못다한 이야기 계속하기(1주차 PT 활용)
§  인터넷과 웹 어플리케이션의 이해
§  인터넷과 웹
§  LAN선을 타고 돌아다니는 것들은?
§  서버와 클라이언트, 프로토콜이란?

§  웹 어플리케이션과 자바
§  왜 자바를 사용할까?
§  1960~1970년대 미국 국방부 산하의 고등 연구국
(Advanced Research Projects Agency, ARPA)의 연구용
네트워크(ARPANET)가 시초

§  지금은 일반적인 의미로 TCP/IP 프로토콜을 사용해서
연결되어 통신하는 모든 네트워크를 인터넷이라 칭함
§  메시지가 한 방향 이상으로 나뉘어 전달되거나 또는
다른 길로 전달될 수 있기 때문에, 적의 군사공격이나
기타 다른 재해로 인해 네트워크의 일부가 파괴된 경우
에도 제 기능을 발휘할 수 있는 특징을 가짐
§  1983년 ARPANET이 정지하면서 TCP/IP기반으로 전환
§  통신 : 라틴어 ‘communicare(공유하다)’, 원거리 대화
§  네트워크(망) : 서로 연결시켜주는 조직이나 체계
§  프로토콜 : 서로 다른 기종의 컴퓨터 사이에 어떤 자료를,
어떤 방식으로 언제 주고받을지 등을 정해놓은 통신규약
Hi

TCP connection
req.

Hi
TCP connection
reply.

Got the
time?
2:00

<file>
time
§  Transmission Control Protocol / Internet Protocol
§  TCP : 네트워크 전송제어 프로토콜 - 데이터를 나누고 포장하고
§  IP : 데이터를 주고 받는 것에 관한 규약 - 어디(주소)로 가야 하나?
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
§  월드 와이드 웹(World Wide Web, WWW, W3)은 인터넷에 연결된
컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보
공간. 정보 요청자 클라이언트와 제공자 서버와 네트워크의 집합
§  도메인 이름 서비스(Domain Name Service 또는 Domain Name
System, DNS)는 호스트의 도메인 이름을 호스트의 네트워크 주소로
바꾸거나 그 반대의 변환을 수행
§  Email(POP3, SMTP, IMAP) 전자 우편 서비스
§  FTP는 인터넷상의 컴퓨터들간에 파일을 교환하기 위한 프로토콜
§  텔넷(Telnet)은 자신이 사용권한을 가지고 있다는 전제하에 다른 사
람의 호스트 컴퓨터를 원격지에서 액세스할 수 있도록 해주는 방법
§  비트토렌트(BitTorrent)는 P2P(peer-to-peer) 파일 전송 프로토콜
§  HyperText Transfer Protocol
§  WWW에서 정보(HTML 문서)를 주고 받는 데에 쓰이는 통신규약

HTTP
클라이언트

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

HTTP 프로토콜
Http response
200 “” <CR> <html file in MIME format>
TCP 프로토콜

TCP

HTTP
서버

TCP

라우터
IP

이더넷
드라이버

IP 프로토콜

이더넷
프로토콜

이더넷

IP 프로토콜

IP

이더넷
드라이버

토큰링
드라이버

토큰링
프로토콜

토큰링

IP

토큰링
드라이버
§  HEAD
§  GET과 같은 요청이지만,
자료에 대한 정보만을 받는다.

§  GET
§  URL에 해당하는 자료의
전송을 요청한다.

§  POST
§  서버가 처리할 수 있는
자료를 보낸다.

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

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

§  200 - 요청이 정상적으로 처리됨
§  400 - 클라이언트의 요청이 잘못된
구문으로 구성됨
§  401 - 접근이 허용되지 않음
§  404 - 지정된 URL을 처리하기 위한
자원이 존재하지 않음
§  500 - 서버 내부에러.
예를 들어, JSP에서 예외가 발생하는
경우가 해당된다.
§  503 - 서버가 일시적으로 서비스를
제공할 수 없음.
급격하게 부하가 몰리거나 서버가
임시 보수 중인 경우가 해당된다.
Internet
(HTTP)
HTML JAVAScript 등

§  클라이언트와 서버의
요청(Request)과 응답(Response)
관계 속에서 이루어짐
§  클라이언트 프로그래밍
§  자바스크립트, HTML, CSS

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

JSP, ASP, PHP 등
§  CGI란?
§  '서버-사이드 스크립트언어' 의 시초
§  게시판이나 방명록을 구현할 때 많이 사용됨
§  C/C++, PERL등 다양한 프로그래밍 언어로 구현 가능함
§  사용자의 수가 늘어날 수록 동일한 프로세스가 서버에 생성됨

§  CGI의 동작 원리
int main(int argc, char ** argv)
{
printf("Content-type: text/htmlnn");
printf("<html><body>
<h2>Hello World CGI VERSION</h2>
</body></html>n);
}
§  CGI의 단점
§  클라이언트의 요청만큼 프로세서를 생성 => 처리량에 한계가 있다.

§  확장 CGI
§  처음 클라이언트의 요청에 따라 라이브러리를 메모리에 로딩한 후, 메모리에
적재된 라이브러리를 사용해서 클라이언트의 요청을 처리하는 방식
§  다수의 요청이라도 한 개에 해당하는 메모리만을 사용하기 때문에 일반적인
CGI에 비해 효율적이다.

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

§  자바 기반의, 확장 CGI 기반의, 스크립트 방식의 프로그래밍
§  JSP(Java Server Pages)
§  서블릿보다 쉽게 동적 웹 페이지를 생성할 수 있는 프로그래밍 언어
§  웹(HTTP) + 프로그래밍(Java) + 스크립트(Script) 기능
§  스크립트 방식의 서버 측 프로그래밍(Server Side Programming)
Public class CMemberTest extends HttpServl
et{
public void doget(HttpServeletRequest requ
est, HttpServeletResponse response)
throws ServletException, IOException
{
response.setContentType(“text/html; UTF8”);
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>
§  자바 = 표준 + 구현체 (고도의 추상화)
§  자바를 기반으로 하는 스크립트 언어로 자바가 제공하는 기능을
그대로 사용할 수 있다.
§  자바를 기반 => 플랫폼에 상관없이 사용할 수 있다.
§  서블릿/EJB 등의 엔터프라이즈 기술들과 잘 융합된다.
§  표현 언어, 표현식, 스크립트릿 등 다양한 스크립트 요소와
액션 태그 등을 제공함으로써 보다 쉽게 웹 어플리케이션을
프로그래밍 할 수 있도록 도와준다.
§  이러쿵 저러궁
§  사실은… (대기업은 여러가지 다 사용. 왜 그럴까?)
§  "The power of the web is in its universality.
Access by everyone regardless of disability is
an essential aspect."
§  Tim Berners-Lee
§  "웹의 힘은 보편성에 있다.
불리한 조건에 관계없이 누구나 접근하는 것은
필수적인 측면이다."
§  팀 버너스 리
§  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
§  스프링 웹 개발
§  RESTful (REpresentational State Transfer)
§  컨트롤러
§  뷰, 표현방법 : JSP, EL, JSTL
§  JSON : Gson
§  과제 : JSP말고 다른 표현방법 연구
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)

More Related Content

PDF
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
PDF
20131217 html5
PDF
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
PDF
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
PDF
자바 웹 개발 시작하기 (4주차 : MVC)
PDF
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
PDF
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
PDF
20141229 dklee docker
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
20131217 html5
자바 웹 개발 시작하기 (7주차 : 국제화, 확인검증, 예외처리)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (4주차 : MVC)
자바 웹 개발 시작하기 (9주차 : 프로젝트 구현 – 추가적인 뷰)
자바 웹 개발 시작하기 (5주차 : 스프링 프래임워크)
20141229 dklee docker

What's hot (20)

PDF
Node.js 기본
PDF
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
PPTX
Leadweb Nodejs
PDF
overview of spring4
PPTX
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
KEY
Meteor 0.3.6 Preview
PPTX
Node.js DBMS short summary
PDF
Facebook은 React를 왜 만들었을까?
PPTX
Nodejs, PhantomJS, casperJs, YSlow, expressjs
PDF
진짜기초 Node.js
PPTX
Node.js를 사용한 Big Data 사례연구
PDF
Front-end Development Process - 어디까지 개선할 수 있나
PPTX
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
PDF
Gradle & IntelliJ & Vert.x
PPTX
Vert.x 세미나 이지원_배포용
PDF
Resource Handling in Spring MVC
PDF
spring.io를 통해 배우는 spring 개발사례
PDF
파크히어 Realm 사용 사례
PDF
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
PDF
React 튜토리얼 2차시
Node.js 기본
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
Leadweb Nodejs
overview of spring4
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
Meteor 0.3.6 Preview
Node.js DBMS short summary
Facebook은 React를 왜 만들었을까?
Nodejs, PhantomJS, casperJs, YSlow, expressjs
진짜기초 Node.js
Node.js를 사용한 Big Data 사례연구
Front-end Development Process - 어디까지 개선할 수 있나
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
Gradle & IntelliJ & Vert.x
Vert.x 세미나 이지원_배포용
Resource Handling in Spring MVC
spring.io를 통해 배우는 spring 개발사례
파크히어 Realm 사용 사례
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
React 튜토리얼 2차시
Ad

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

PDF
JSP 프로그래밍 #01 웹 프로그래밍
PDF
WoO 2012-Web 서비스 기술
PDF
IT 일반기술 강의자료_ed10
PDF
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
PDF
웹을 지탱하는 기술
PDF
웹을 지탱하는 기술
PDF
Web server page_ed10
PDF
Web server
PDF
웹기반원격감시제어 2010 CPD
PPTX
HTTP web server 구현
PDF
웹개발자가 알아야할 기술
PPTX
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
PPTX
HTTP 발표자료 - 김연수
PDF
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
PDF
Basic of web ref.웹을지탱하는기술_01
PPTX
Servlet&jsp 1장
PPTX
HeadFisrt Servlet&JSP Chapter 1
 
PPTX
Web http spec
PPTX
Web http spec(basic)
PPTX
Web http spec
JSP 프로그래밍 #01 웹 프로그래밍
WoO 2012-Web 서비스 기술
IT 일반기술 강의자료_ed10
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
웹을 지탱하는 기술
웹을 지탱하는 기술
Web server page_ed10
Web server
웹기반원격감시제어 2010 CPD
HTTP web server 구현
웹개발자가 알아야할 기술
[15.09.17] 인터넷과 웹의 역사 그리고 현재의 트렌드
HTTP 발표자료 - 김연수
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
Basic of web ref.웹을지탱하는기술_01
Servlet&jsp 1장
HeadFisrt Servlet&JSP Chapter 1
 
Web http spec
Web http spec(basic)
Web http spec
Ad

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

  • 1. 자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해) 2011. 11. 02 DEVELOPMENT #2 이덕곤
  • 2. §  자바 웹 개발 기본환경 만들기 §  윈도우 설치 §  JDK 설치 §  Tomcat 설치 §  Eclipse 설치 §  Hello, World! §  모델 1 기반의 JDBC연동 웹 프로그래밍 §  못다한 이야기 : 모델 2 기반의 웹 프로그래밍
  • 3. §  못다한 이야기 계속하기(1주차 PT 활용) §  인터넷과 웹 어플리케이션의 이해 §  인터넷과 웹 §  LAN선을 타고 돌아다니는 것들은? §  서버와 클라이언트, 프로토콜이란? §  웹 어플리케이션과 자바 §  왜 자바를 사용할까?
  • 4. §  1960~1970년대 미국 국방부 산하의 고등 연구국 (Advanced Research Projects Agency, ARPA)의 연구용 네트워크(ARPANET)가 시초 §  지금은 일반적인 의미로 TCP/IP 프로토콜을 사용해서 연결되어 통신하는 모든 네트워크를 인터넷이라 칭함 §  메시지가 한 방향 이상으로 나뉘어 전달되거나 또는 다른 길로 전달될 수 있기 때문에, 적의 군사공격이나 기타 다른 재해로 인해 네트워크의 일부가 파괴된 경우 에도 제 기능을 발휘할 수 있는 특징을 가짐 §  1983년 ARPANET이 정지하면서 TCP/IP기반으로 전환
  • 5. §  통신 : 라틴어 ‘communicare(공유하다)’, 원거리 대화 §  네트워크(망) : 서로 연결시켜주는 조직이나 체계 §  프로토콜 : 서로 다른 기종의 컴퓨터 사이에 어떤 자료를, 어떤 방식으로 언제 주고받을지 등을 정해놓은 통신규약
  • 7. §  Transmission Control Protocol / Internet Protocol §  TCP : 네트워크 전송제어 프로토콜 - 데이터를 나누고 포장하고 §  IP : 데이터를 주고 받는 것에 관한 규약 - 어디(주소)로 가야 하나?
  • 9. §  월드 와이드 웹(World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터들을 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간. 정보 요청자 클라이언트와 제공자 서버와 네트워크의 집합 §  도메인 이름 서비스(Domain Name Service 또는 Domain Name System, DNS)는 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행 §  Email(POP3, SMTP, IMAP) 전자 우편 서비스 §  FTP는 인터넷상의 컴퓨터들간에 파일을 교환하기 위한 프로토콜 §  텔넷(Telnet)은 자신이 사용권한을 가지고 있다는 전제하에 다른 사 람의 호스트 컴퓨터를 원격지에서 액세스할 수 있도록 해주는 방법 §  비트토렌트(BitTorrent)는 P2P(peer-to-peer) 파일 전송 프로토콜
  • 10. §  HyperText Transfer Protocol §  WWW에서 정보(HTML 문서)를 주고 받는 데에 쓰이는 통신규약 HTTP 클라이언트 Http request GET “http://www.ee.ucla.edu”<CR> HTTP 프로토콜 Http response 200 “” <CR> <html file in MIME format> TCP 프로토콜 TCP HTTP 서버 TCP 라우터 IP 이더넷 드라이버 IP 프로토콜 이더넷 프로토콜 이더넷 IP 프로토콜 IP 이더넷 드라이버 토큰링 드라이버 토큰링 프로토콜 토큰링 IP 토큰링 드라이버
  • 11. §  HEAD §  GET과 같은 요청이지만, 자료에 대한 정보만을 받는다. §  GET §  URL에 해당하는 자료의 전송을 요청한다. §  POST §  서버가 처리할 수 있는 자료를 보낸다. §  PUT §  해당 URL에 자료를 저장한다. §  DELETE §  해당 URL의 자료를 삭제한다. §  200 - 요청이 정상적으로 처리됨 §  400 - 클라이언트의 요청이 잘못된 구문으로 구성됨 §  401 - 접근이 허용되지 않음 §  404 - 지정된 URL을 처리하기 위한 자원이 존재하지 않음 §  500 - 서버 내부에러. 예를 들어, JSP에서 예외가 발생하는 경우가 해당된다. §  503 - 서버가 일시적으로 서비스를 제공할 수 없음. 급격하게 부하가 몰리거나 서버가 임시 보수 중인 경우가 해당된다.
  • 12. Internet (HTTP) HTML JAVAScript 등 §  클라이언트와 서버의 요청(Request)과 응답(Response) 관계 속에서 이루어짐 §  클라이언트 프로그래밍 §  자바스크립트, HTML, CSS §  서버사이드 프로그래밍 §  웹 어플리케이션 §  웹 서비스 JSP, ASP, PHP 등
  • 13. §  CGI란? §  '서버-사이드 스크립트언어' 의 시초 §  게시판이나 방명록을 구현할 때 많이 사용됨 §  C/C++, PERL등 다양한 프로그래밍 언어로 구현 가능함 §  사용자의 수가 늘어날 수록 동일한 프로세스가 서버에 생성됨 §  CGI의 동작 원리 int main(int argc, char ** argv) { printf("Content-type: text/htmlnn"); printf("<html><body> <h2>Hello World CGI VERSION</h2> </body></html>n); }
  • 14. §  CGI의 단점 §  클라이언트의 요청만큼 프로세서를 생성 => 처리량에 한계가 있다. §  확장 CGI §  처음 클라이언트의 요청에 따라 라이브러리를 메모리에 로딩한 후, 메모리에 적재된 라이브러리를 사용해서 클라이언트의 요청을 처리하는 방식 §  다수의 요청이라도 한 개에 해당하는 메모리만을 사용하기 때문에 일반적인 CGI에 비해 효율적이다. §  확장 CGI 언어 §  자바 기반의 확장 CGI 프로그래밍 §  서블릿(Servlet) : Server + Let(허용)의 합성어 §  웹(HTTP) + 자바 프로그래밍, Java 프로그래밍 기반의 확장 CGI §  자바 기반의, 확장 CGI 기반의, 스크립트 방식의 프로그래밍 §  JSP(Java Server Pages) §  서블릿보다 쉽게 동적 웹 페이지를 생성할 수 있는 프로그래밍 언어 §  웹(HTTP) + 프로그래밍(Java) + 스크립트(Script) 기능 §  스크립트 방식의 서버 측 프로그래밍(Server Side Programming)
  • 15. Public class CMemberTest extends HttpServl et{ public void doget(HttpServeletRequest requ est, HttpServeletResponse response) throws ServletException, IOException { response.setContentType(“text/html; UTF8”); 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>
  • 16. §  자바 = 표준 + 구현체 (고도의 추상화) §  자바를 기반으로 하는 스크립트 언어로 자바가 제공하는 기능을 그대로 사용할 수 있다. §  자바를 기반 => 플랫폼에 상관없이 사용할 수 있다. §  서블릿/EJB 등의 엔터프라이즈 기술들과 잘 융합된다. §  표현 언어, 표현식, 스크립트릿 등 다양한 스크립트 요소와 액션 태그 등을 제공함으로써 보다 쉽게 웹 어플리케이션을 프로그래밍 할 수 있도록 도와준다. §  이러쿵 저러궁 §  사실은… (대기업은 여러가지 다 사용. 왜 그럴까?)
  • 17. §  "The power of the web is in its universality. Access by everyone regardless of disability is an essential aspect." §  Tim Berners-Lee §  "웹의 힘은 보편성에 있다. 불리한 조건에 관계없이 누구나 접근하는 것은 필수적인 측면이다." §  팀 버너스 리
  • 18. §  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
  • 19. §  스프링 웹 개발 §  RESTful (REpresentational State Transfer) §  컨트롤러 §  뷰, 표현방법 : JSP, EL, JSTL §  JSON : Gson §  과제 : JSP말고 다른 표현방법 연구