Page 1

웹 프로그래밍 1x2급 자격 연수(정보x컴퓨터)

이윤호


1x2급 자격연수

강사 소개 ˆ 이름 : 이윤호(李潤浩) ˆ 약력 € 1991.2 : 성균관대학교 정보공학과(학사) € 1993.2 : 성균관대학교 대학원 정보공학과(석사) € 1993.3 ~ 2000.4 : 한국통신(KT) 전임연구원 € 2000.5 ~ 2005.1 : KBS인터넷㈜ 기술지원팀장 € 2005.2 ~ 현재 : 성균관대학교 컴퓨터공학과 박사과정 € 2006.6 ~ 현재 : ㈜애니온소프트 기술이사

ˆ 관심분야 € 정보보호 : DRM, 전자투표, 암호알고리즘 등 € 인터넷/멀티미디어 : 동영상서비스, 웹개발 등

2 / 26


1x2급 자격연수

World Wide Web ˆ Web의 시작과 발전 € 팀 버너스 리(Tim Berners Lee)에 의해 시작 Š Š Š Š Š Š Š

~1980 : "정보의 연결" 작업 구상 1990 : World Wide Web 명명 1990. 10 : HTML, HTTP, URI 개발 1990. 12 : 최초의 웹주소 info.cern.ch를 만들고 접속 성공 1991. 12 : Hypertext91 학회에서 WWW 발표 1994. 05 : CERN 강당에서 최초의 Web 회의 개최 1994. 10 : W3C 창립 (미국 MIT)

3 / 26


1x2급 자격연수

ˆ 웹의 구성

Represent/Organize Information Information

Information + HTML + WebServer + Browser

Render Information

Deploy Information

4 / 26


1x2급 자격연수

ˆ HyperText € " 기존 직선구조의 글과는 달리, 다각적으로 정보에 접근할 수 있는 체계이다. 단편적인 정보들을 하이퍼링크라는 고리를 이용하여 엮는다. 이를 통해서 이미 알고 있는 내용은 건너뛸 수 있고, 더 알아보고 싶은 내용은 자세히 읽어보는 등 다양한 각도에서 정보를 얻을 수 있다. " € " 조직화된 정보"

5 / 26


1x2급 자격연수

웹 서비스와 웹 개발 ˆ 웹 서비스의 3대 요소 € 웹서버 Æ Apache, IIS, Sun WebServer 등 € 스크립트 Æ HTML, PHP, ASP, Perl, JavaScript, VBScript 등 Æ ActiveX 프로그램 € 데이터베이스 Æ MySQL, mSQL, SQLServer 등 Æ 필수 요소는 아니지만, 대부분의 웹 사이트는 데이터베이스를 사용하고 있음

6 / 26


1x2급 자격연수

ˆ 웹 개발의 절차 € 기획 Š 사이트 개발의 목적, 구성, 기능 등을 정의 Æ 기획자 + 디자이너 + 개발자

€ 디자인 Š 사이트 디자인 (시안) 제작 Æ 현재는 HTML 스크립팅을 포함한다.

€ 프로그래밍 Š 서버/클라이언트 스크립트 프로그래밍 Æ 서버 : PHP, ASP, Perl 등 / 클라이언트 : JavaScript

본 강의의 중심이 되는 부분

7 / 26


1x2급 자격연수

ˆ 웹개발 준비~ € 편집기 Š Namo Editor, Dreamweaver,

Frontpage

???

Š 일반 텍스트 에디터를 더 선호한다 Æ Ultra Edit 또는 EditPlus 등 (에디터의 FTP 기능을 이용하여 웹서버에 접속)

€ 디자이너의 작업 파일 Š 대개 작업툴을 이용하여 HTML 파일을 생성하기 때문에 소스 코드가 지저분(!)한 경우가 많다. Æ 개발자는 소스 코드를 보면서 작업해야 하기 때문에 이로 인한 어려움이 있다.

8 / 26


1x2급 자격연수

ˆ 자료(데이터) 송x수신 € 클라이언트(browser)와 서버(web server)의 데이터 송x수신 Š 데이터 송x수신 방법은 웹 개발에 있어 반드시 알아야 하는 개발 환경

€ 클라이언트 Æ 서버 Š URL (Uniform Resource Locator) + 파라미터 http://news.naver.com/news/list.php?mode=LSD&section_id=001&menu_id=001&view=1

URL

€ 서버 Æ 클라이언트

Parameters 추가로 전송할 데이터

Š 데이터 : HTML 문서, 텍스트 문서, 이미지 파일, 프로그램 실행 파일 등 서버의 데이터 전송은 반드시 클라이언트의 요청에 의해 시작된다 9 / 26


1x2급 자격연수

€ URL Redirection Š URL은 클라이언트의 요청을 나타낸다. Š 서버는 URL을 해석하여 어떤 문서를 요청했는지 알 수 있다. 클라이언트는 A.html을 요청했지만, 서버가 B.html을 전송할 수 있을까? Š 가능하다 Æ URL Redirection ! URL http://www.url.com/A.html

File

B.html

웹서버

브라우저 A.html

redirection

B.html

단, 서버에 A.html이 있어야 가능하다 !! 10 / 26


1x2급 자격연수

€ 클라이언트가 서버로 전송하는 데이터 Š URL 다음에 지정하는 parameter를 이용하는 방법 Æ 간단하고 짧은 데이터 전송에 적합 매우 큰 file 등의 데이터는 어떻게 전송할 수 있을까?

€ 클라이언트의 데이터 전송 방법 2가지 GET과 POST Š GET 방식 Æ parameter를 이용하는 방식 (URL 뒤의 ? 로 시작하는 부분) Æ 조금 더 엄밀히 말하면, 서버의 환경 변수를 이용하는 방법 Š POST 방식 Æ GET 방식과는 달리 HTTP 프로토콜의 헤더를 이용하는 방식 Æ 전송 데이터를 눈으로 확인할 수 없다 Æ 조금 더 엄밀히 말하면, stdin(standard input)을 이용하는 방법 POST 방식의 장점 전송되는 데이터의 양에 제한이 없다 (2,047 바이트 이상) 11 / 26


1x2급 자격연수

ˆ 웹 개발의 종류 € 프로그램(스크립트)의 실행 주체에 따라 구분 Š 서버 스크립트 : 웹 서버가 프로그램을 실행 Š 클라이언트 스크립트 : 웹 브라우저가 프로그램을 실행

€ 선택의 기준 Š 개발하고자 하는 프로그램의 용도에 따라, 서버 스크립트로 할 것인지 클라이언트 스크립트로 할 것인지 결정 데이터베이스 접속 프로그램

사용자 선택에 따라 HTML 변경

클라이언트의 서버 데이터베이스 접속은 불가능

선택할 때마다 서버에 접속하는 것은 비효율적

서버 스크립트 선택

클라이언트 스크립트 선택 12 / 26


1x2급 자격연수

ˆ 실행 과정 분석

PHP 엔진 실행결과

PHP

실행

웹서버

Server Script

HTML

Client Script

HTML 출력

Internet Script 엔진

브라우저

실행결과

실행

HTML HTML

Client Script

HTML

HTML 파서

출력 13 / 26


1x2급 자격연수

ˆ 웹 개발 언어의 종류 € 일반 응용프로그램 개발 : C/C++ € 웹 프로그램 개발 Š 서버 프로그래밍 Æ PHP, JSP, ASP, Perl, C/C++, ActiveX Š 클라이언트 프로그래밍 Æ JavaScript, VBScript + ActiveX Š PHP : "PHP: Hypertext Preprocessor" (cf. LINUX = Linux Is Not UniX) Æ Apache, MySQL과 함께 APM으로 불리우며, 가장 많이 사용 Š JSP : "Java Server Pages" Æ Java를 기반으로 하며, 금융권에서 많이 사용 Š ASP : "Active Server Pages" Æ 윈도우즈 환경에서만 실행되며 Visual Basic 문법과 유사 Š JavaScript : 클라이언트 프로그래밍에 가장 많이 사용된다. Æ Java를 기반으로 하며, Java의 축소판이다.

PHP

JavaScript 14 / 26


1x2급 자격연수

€ 쉬어가는 페이지, Recursive Initialism Š 약칭을 풀어 썼을 때, 약칭이 다시 나타나는 형태 (Recursive Acronym) → GNU : GNU's Not Unix → Cygnus : Cygnus, Your GNU Support → Linux : Linux Is Not UniX Š Acronym과 Backronym(Bacronym) → Acronym은 여러 단어의 頭문자를 이용하여 새로운 단어로 만듦 (Radar = RAdio Detection And Ranging) → Backronym은 頭문자 단어를 만들고 뜻을 갖다 붙임 (wiki, 하와이語 'quick'에서 "What I Know Is"로 변화) Š Backronym이 원래의 의미를 대체하는 경우도 있음 - IBM : International Business Machines → I've Been Moved - LG : Lucky Goldstar → Life's Good - DVD : Digital Video Disc → Digital Versatile Disc

15 / 26


1x2급 자격연수

ˆ PHP € History Š 1994 : 프로그래머 Rasmus Lerdorf에 의해 개발 → C로 개발된 CGI 형태

Š 1995. 6 : Personal Home Page Tools 공개 → PHP Form Interpreter (PHP/FI) 추가 후 공개 → PHP2 Š 1997 : Zeev Suraski와 Andi Gutmans가 parser를 다시 개발 (PHP3) → 이름도 "PHP: Hypertext Preprocessor"로 변경 Š 1999 : Suraski와 Gutmans는 PHP core를 재개발 → Zend 엔진 → Zend Technologies 설립 Š 2000 : Zend 엔진 1.0을 이용한 PHP4 공개 Š 2004 : PHP5 공개 (Zend 엔진 II 기반)

16 / 26


1x2급 자격연수

PHP: 20,016,421 domains, 1,208,663 IP addresses 출처 : NetCraft

17 / 26


1x2급 자격연수

출처 : http://www.tiobe.com/tpci.htm

18 / 26


1x2급 자격연수

ˆ Apache € History Š 1994년 중반, NCSA httpd 웹서버로부터 시작 → NCSA httpd 개발에 참여한 Robert McCool이 개발 Š 2002년 4월, Apache 2 발표

€ Apache의 유래 Š 미국 인디안을 기리기 위한 이름(Apache) Š Apache 프로젝트가 기존 NCSA httpd 1.3의 패치로부터 시작(patchy)

19 / 26


1x2급 자격연수

Š 2007년 6월의 경우 Apache 서버의 점유율은 53.85% → Microsoft IIS는 31.74%

출처 : http://news.netcraft.com/

20 / 26


1x2급 자격연수

ˆ MySQL € History Š Apache나 PHP가 non-profit 그룹에 의해 개발, 유지되는 반면, MySQL은 for-profit 회사에서 개발, 유지 → MySQL AB (CEO : Mårten Mickos), 스웨덴 → MySQL AB에서는 DB 지원, 서비스 제공 (유상) Š 1995. 5 : 내부적으로 공개 Š 1998. 1 : Windows 버전 공개 Š 2003. 3 : MySQL 4.0 공개 (현재 5.1) ※ 현재까지 약 1,000만 copy가 설치된 것으로 추산 (http://www.mysql.com)

21 / 26


1x2급 자격연수

출처 : JoinVision E-Services GmbH, July 2006

22 / 26


1x2급 자격연수

ˆ PEAR € PEAR란? Š PEAR = PHP Extension and Application Repository

€ History Š 1999년, 동일한 기능을 하는 코드의 재사용을 위해 Stig S. Bakken이 PEAR 프 로젝트를 시작 → Perl을 위한 CPAN(Comprehensive Perl Archive Network)과 유사

€ PEAR의 목적 Š Š Š Š Š

오픈 소스코드 라이브러리의 구조화 및 제공 코드 배포와 패키지 관리를 위한 시스템 제공 PHP 코딩의 표준 스타일 제공 PECL(PHP Extension Community Library) 제공 PHP/PEAR community를 지원하기 위한 웹사이트, 메일링리스트, 다운로드 서 버 제공

23 / 26


1x2급 자격연수

24 / 26


1x2급 자격연수

ˆ 웹 서비스의 특징 Î 웹 프로그램을 개발할 때 꼭 알아야 할 개발 환경 !!

€ Stateful과 Stateless Š Stateful : 상태를 기억하는 메모리가 있어, 직전의 상태를 알 수 있다. Š Stateless : 이전 상태를 기억하지 못한다.

WEB은 Stateless 환경이다

€ Web은 Stateless이면서 Connectionless의 특성을 갖는다. Š 클라이언트는 URL을 전송하면서 접속을 요청하고, 서버는 요청된 문서를 전송하며, 전송이 끝나면 연결은 종료된다 Æ Connectionless Š 접속을 요청한 클라이언트를 구별하지 않는다 Æ Stateless

Stateful 특성이 필요한 경우는 없을까? 쇼핑몰 사이트의 장바구니?

로그인 정보는? 25 / 26


1x2급 자격연수

€ Stateless와 Stateful Stateless

Stateful 웹서버

웹서버 각 브라우저를 구분 브라우저 구분 불가능! 메모리 Request

Request

브라우저

Request

브라우저

브라우저

Request

메모리 Request

브라우저

브라우저

메모리 Request

브라우저

€ Stateless Æ Stateful Š Stateful 환경이 필요할 때 사용하는 것이 Cookie(쿠키)와 Session(세션)이다.

쿠키는 클라이언트 메모리를 사용

세션은 서버 메모리를 사용 26 / 26

Web Programming-Part_01  

Web Programming Introduction Page

Read more
Read more
Similar to
Popular now
Just for you