SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
자바 웹 개발 시작하기
(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 : 데이터를 주고 받는 것에 관한 규약 - 어디(주소)로 가야 하나?
§  월드 와이드 웹(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주차 : 인터넷과 웹 어플리케이션의 이해)

Mais conteúdo relacionado

Mais procurados

자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)
자바 웹 개발 시작하기 (8주차 : 명세서, 단위테스트, 통합)DK Lee
 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs근호 최
 
overview of spring4
overview of spring4overview of spring4
overview of spring4Arawn Park
 
스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)스프링군살없이세팅하기(The way to setting the Spring framework for web.)
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
 
Meteor 0.3.6 Preview
Meteor 0.3.6 PreviewMeteor 0.3.6 Preview
Meteor 0.3.6 PreviewJuntai Park
 
Node.js DBMS short summary
Node.js DBMS short summaryNode.js DBMS short summary
Node.js DBMS short summaryHoChul Shin
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Kim Hunmin
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs기동 이
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.jsWoo Jin Kim
 
Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구Node.js를 사용한 Big Data 사례연구
Node.js를 사용한 Big Data 사례연구ByungJoon Lee
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나JeongHun Byeon
 
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기
XECon2015 :: [2-2] 박상현 - React로 개발하는 SPA 실무 이야기XpressEngine
 
Gradle & IntelliJ & Vert.x
Gradle & IntelliJ & Vert.xGradle & IntelliJ & Vert.x
Gradle & IntelliJ & Vert.xKwnaghwan Cho
 
Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용Vert.x 세미나 이지원_배포용
Vert.x 세미나 이지원_배포용지원 이
 
Resource Handling in Spring MVC
Resource Handling in Spring MVCResource Handling in Spring MVC
Resource Handling in Spring MVCArawn Park
 
spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례spring.io를 통해 배우는 spring 개발사례
spring.io를 통해 배우는 spring 개발사례Daehwan Lee
 
파크히어 Realm 사용 사례
파크히어 Realm 사용 사례파크히어 Realm 사용 사례
파크히어 Realm 사용 사례선협 이
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기John Kim
 
React 튜토리얼 2차시
React 튜토리얼 2차시React 튜토리얼 2차시
React 튜토리얼 2차시태현 김
 

Mais procurados (20)

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

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

WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징trustinlee
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?Opennaru, inc.
 
JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍Myungjin Lee
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)jeongseokoh
 
Web hacking introduction
Web hacking introductionWeb hacking introduction
Web hacking introductionJinkyoung Kim
 
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1J B
 
Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장JeongBong Kim
 
루비온레일즈 API 서버 - 1) 인터넷 구조에 대한 대략적인 이해
루비온레일즈 API 서버 - 1) 인터넷 구조에 대한 대략적인 이해루비온레일즈 API 서버 - 1) 인터넷 구조에 대한 대략적인 이해
루비온레일즈 API 서버 - 1) 인터넷 구조에 대한 대략적인 이해Junghyun Park
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요dgmit2009
 
Websocket.. whit http, tcp
Websocket.. whit http, tcpWebsocket.. whit http, tcp
Websocket.. whit http, tcpdana238767
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How ToJi-Woong Choi
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTPNAVER D2
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012devCAT Studio, NEXON
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Channy Yun
 
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기John Kim
 
build a linux webhosting server
build a linux webhosting serverbuild a linux webhosting server
build a linux webhosting server정현 윤
 
멀티클라우드 Service Mesh
멀티클라우드 Service Mesh멀티클라우드 Service Mesh
멀티클라우드 Service MeshJeong-Ho Na
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술정혁 권
 

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

WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징WebSocket 기반 쌍방향 메시징
WebSocket 기반 쌍방향 메시징
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
200.마이크로서비스에 적합한 오픈소스 WAS는 무엇?
 
JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)
 
Web hacking introduction
Web hacking introductionWeb hacking introduction
Web hacking introduction
 
Servlet3
Servlet3Servlet3
Servlet3
 
HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1HeadFisrt Servlet&JSP Chapter 1
HeadFisrt Servlet&JSP Chapter 1
 
Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장
 
루비온레일즈 API 서버 - 1) 인터넷 구조에 대한 대략적인 이해
루비온레일즈 API 서버 - 1) 인터넷 구조에 대한 대략적인 이해루비온레일즈 API 서버 - 1) 인터넷 구조에 대한 대략적인 이해
루비온레일즈 API 서버 - 1) 인터넷 구조에 대한 대략적인 이해
 
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
 
Websocket.. whit http, tcp
Websocket.. whit http, tcpWebsocket.. whit http, tcp
Websocket.. whit http, tcp
 
[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To[오픈소스컨설팅]Tomcat6&7 How To
[오픈소스컨설팅]Tomcat6&7 How To
 
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP[D2 CAMPUS]웹 개발자의 스펙 : HTTP
[D2 CAMPUS]웹 개발자의 스펙 : HTTP
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)
 
vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기vert.x 를 활용한 분산서버 개발하기
vert.x 를 활용한 분산서버 개발하기
 
build a linux webhosting server
build a linux webhosting serverbuild a linux webhosting server
build a linux webhosting server
 
멀티클라우드 Service Mesh
멀티클라우드 Service Mesh멀티클라우드 Service Mesh
멀티클라우드 Service Mesh
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
 

Último

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 

Último (6)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 

자바 웹 개발 시작하기 (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 : 데이터를 주고 받는 것에 관한 규약 - 어디(주소)로 가야 하나?
  • 8.
  • 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말고 다른 표현방법 연구