1장 웹 프로그래밍의 개요 이장에서 배울 내용: 월드 와이드 웹(World Wide Web, WWW)기반에서 동작되는 웹 프로그래밍에 대해 학습하고 , 이러한 웹 기반에서 동작되는 웹 어플리케이션이 어떠한 방식으로 발전해 왔는지 알아본다. 또한 이러한 웹 어플리케이션의 처리방식인 CGI방식과 웹 어플리케이션 서버방식에 대해 이해한다. 김은옥(oda94@naver.com)
목차 웹 프로그래밍이란 무엇인가? 웹 프로그래밍 언어의 종류 및 개요 웹 프로그래밍과 웹 어플리케이션 웹 어플리케이션 처리방식 웹 어플리케이션 구현 방식
웹 프로그래밍이란 무엇인가? 월드 와이드 웹(World Wide Web, WWW : 이하 웹(Web))기반에서 동작되는 프로그래밍 방식 하이퍼텍스트를 기반 웹 브라우저라는 일관된 사용자 인터페이스(User Interface, UI)를 제공 전문자료들에 대한 접근이 쉬워지게 되어 현실적인 정보의 공유가 이루어짐
웹 프로그래밍이란 무엇인가? HTML(HyperText Markup Language) 마크업 언어로, 정보를 한곳에 모아주는 역할 마크업 언어(Markup Language): 일련의 요소를 단순하게 나열한 것으로, 이때 각 요소들은 어떠한 특수문자들에 의해 구분되며, 특수 문자 안에 포함되어있는 일련의 구문이나 다른 항목을 어떻게 표시할지를 정하는 언어. HTML은 변화하지 않는내용을 표현하는 정적인 웹 페이지를 작성하기에는 적합하나, 변화되는 내용을 표시하는 동적인 웹 페이지를 작성할 수 없음.
웹 프로그래밍이란 무엇인가? 정적 웹 페이지와 동적 웹 페이지 정적 웹 페이지: 프로그래밍 코드를 사용할 수 없고 데이터베이스연동을 할 수 없음 HTML 동적 웹 페이지: 동적으로 변화하는 데이터를 처리하고 표시하기 위해서 개발됨 CGI, ASP, PHP, JSP
웹 프로그래밍 언어의 종류 및 개요 CGI(Common Gateway Interface) 주로 C/C++언어사용 서버의 리소스를 많이 사용하는 문제 때문에, 현재 UNIX 플랫폼 외에는 거의 사용되지 않음
웹 프로그래밍 언어의 종류 및 개요 ASP(Active Server Page) ASP는 비주얼 베이직(Visual Basic) 언어를 기반으로 사용 스크립트 방식으로 동적인 웹 페이지를 작성할 수 있도록 지원하는 기술, 서버에서 실행하는 스크립트 언어 단점으로는 특정 플랫폼인 윈도우즈 플랫폼에서 웹 서버로 IIS(Internet Information Server)만을 사용.
웹 프로그래밍 언어의 종류 및 개요 PHP(Personal HomePage tools, Professional Hypertext Preprocessor) C 언어를 기반으로 만들어진 서버에서 실행되는 스크립트 언어 장점 : PHP는 배우기 쉽고, 개발 속도가 빠름 단점: 컴포넌트를 사용할 수 없음, 보안에 취약해 PHP 기반으로 만들어진 웹사이트들은 해킹의 대상이 됨. Malicious Source Injection(외부 파일 실행 공격 기법)에 의한 해킹
웹 프로그래밍 언어의 종류 및 개요 Servlet 과 JSP 자바 언어 기반의 서버사이드 스크립트 멀티쓰레딩(Multi Thread)에 의해 사용자 요구를 처리하고 가공해서 이에 대한 결과를 사용자에게 응답 서블릿과 JSP는 상호 연계되어 작동 JSP에서 정적인 부분을 담당하고 서블릿에서 보다 동적인 부분을 담당하여 보다 효율적인 웹 사이트 구성이 가능
웹 프로그래밍 언어의 종류 및 개요 Servlet 과 JSP JSP의 특징 객체 지향적이다. 플랫폼에 독립적이다. 보안성이 뛰어나다. 멀티쓰레드를 지원한다. C 언어 기반으로 코드의 접근성이 용이하다. 분산 프로그래밍을 지원한다.
웹 프로그래밍과 웹 어플리케이션 웹 어플리케이션 웹 프로그래밍과 웹 어플리케이션의 관계 웹을 기반으로 실행되는 프로그램 웹 프로그래밍을 통해 웹 어플리케이션을 구현
웹 프로그래밍과 웹 어플리케이션 웹 어플리케이션의 구조
웹 프로그래밍과 웹 어플리케이션 웹 어플리케이션의 처리 순서 ① 웹 브라우저가 웹 서버에 어떠한 페이지를 요청. ② 그러면 해당 웹 서버는 웹 브라우저의 요청을 받아서 요청된 페이지의 로직 및 데이터베이스와의 연동을 위해 웹 어플리케이션 서버에 이들의 처리를 요청. ③ 이때 웹 어플리케이션 서버는 데이터베이스와의 연동이 필요하면 데이터베이스와 데이터의 처리를 수행. ④ 로직 및 데이터베이스 작업의 처리 결과를 웹 서버에 돌려보냄. ⑤ 결과를 받은 웹 서버는 그 결과를 다시 웹 브라우저에게 응답.
웹 프로그래밍과 웹 어플리케이션 웹 어플리케이션의 구성요소 웹 어플리케이션의 구성요소 기능 웹 브라우저 (Web Browser) 웹 어플리케이션에서 클라이언트이며, 사용자의 작업창. 모든 사용자의 요청은 웹 브라우저를 통해서 웹 서버로 전달. 웹 서버 (Web Server) 웹 브라우저의 요청을 받아들이는 곳으로, 웹 브라우저가 요청한 작업의 결과를 웹 브라우저에게 응답을 담당하는 곳. 또한 요청된 페이지의 로직의 수행 및 데이터베이스와의 연동을 위해 웹 어플리케이션 서버에 이들의 처리를 요청하는 작업을 수행. 웹 어플리케이션 서버 (Web Application Server, WAS) 웹 브라우저가 요청한 작업에 필요한 프로그래밍 로직의 처리 및 데이터베이스와의 연동을 처리. 이때 처리결과를 웹 브라우저로 응답하기 위해서 처리결과를 웹 서버로 보냄. 데이터베이스 (Database) 데이터의 저장소로 웹에서 발생한 데이터는 모두 이곳에 저장. 게시판의 글들, 회원의 정보 등. 사용자의 입장에서 가장 안쪽에 있기 때문에 데이터베이스 서버를 Back-end Server라고도 부름.
웹 어플리케이션 처리방식 CGI방식 웹서버가 어플리케이션 프로그램을 직접 호출하는 구조. 처리방식은 프로세스를 생성하여 처리. 하나의 요청에 대해 1개의 프로세스가 생성이 되어서 그 요청을 처리한 뒤 종료.
웹 어플리케이션 처리방식 웹 어플리케이션 서버방식 웹 서버가 직접 어플리케이션 프로그램의 처리를 웹 어플리케이션 서버에게 처리를 넘겨주고 어플리케이션 서버가 어플리케이션 프로그램을 처리. 여러 명의 사용자가 동일한 페이지를 요청하여 같은 어플리케이션 프로그램을 처리할 때 오직 한 개의 프로세스만을 할당하고, 사용자의 요청을 쓰레드(Thread) 방식으로 처리.
웹 어플리케이션 구현 방식 실행 코드 방식 미리 컴파일 된 실행프로그램을 사용자가 요청하면 실행 실행 코드 방식 사용 CGI
웹 어플리케이션 구현 방식 스크립트 코드 방식 사용자의 요청이 있을 때, 스크립트 코드를 번역해서 번역된 코드를 실행 스크립트 코드의 번역은 해당 페이지가 최초로 요청된 맨 처음에 단 한번만 실행. 그 이후에는 해당페이지의 요청이 있는 경우에는 번역된 코드가 실행 스크립트 코드 방식 사용 ASP, JSP등의 웹 어플리케이션 서버방식