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말고 다른 표현방법 연구