웹서버란
웹서버와 웹클라이언트를 구현하기 위해서는 인터넷이 필요하다.
웹은 컴퓨터 서버에서 자료를 보관하고 있고 클라이언트가 단말기를 이용하여 자료를 요청하면 받아서 사용 할 수 있는 시스템으로 되어있다. 여기서 우리는 자료를 저장하고 있는 컴퓨터를 웹 서버라고 한다.
대량의 자료를 보관하기에 고성능의 컴퓨터가 사용되며 서버를 운용하는데 많은 인력이 투입된다.
단말기 : 컴퓨터, 휴대폰
통신 장비 : 교환기, 허브, 라우터, 게이트웨이
통신 매체 : 꼬임선, 동축선, 광케이블
단말과 단말이 통신하기 위해서는 유선 또는 무선으로 연결이 가능하다. 연결하는 과정에서는 반드시 통신 장비가 필요하다.
통신망에는 비교적 가까운 거리를 연결하는 근거리통신망(LAN)이 있고, 도시를 넘어서 전세계까지를 잇는 광역통신망(WAN)이 있다.
TCP/IP
총체적인 통신 프로토콜. 서로 다른 운영체제를 사용하는 컴퓨터 간의 데이터 통신이 가능하도록 만 든 것으로 이 안에 웹 브라우저에서 사용하는 프로토콜이 포함되어 있는데 이는 HTTP라고 부른다.
웹의 동작 방식으로는 웹 클라이언트가 HTTP프로토콜을 이용하여 데이터를 요청(URL 형태로 요청) 하면 웹 서버에서 HTTP(Hyper Text Transfer Protocol)로 응답을 하는데 이때 HTML문서(HTML, Javascript, CSS)로 응답을 한다.
인터넷(internet)
네이티브 애플리케이션
워드프로세서, 스프레드시트 등 컴퓨터에서 동작되는 소프트웨어 프로그램
개인의 컴퓨터 상에서 입출력이 가능하다. 개인의 컴퓨터에 애플리케이션을 설치 해야 한다.
웹 애플리케이션
사용자 컴퓨터가 아니라 웹 서버상에서 진행이 된다. (대부분)
HTMl로 표현된 문서가 공통의 웹 브라우저 상에 출력이 된다. 사용자의 컴퓨터에 별도로 설치할 필요가 없다.
웹 애플리케이션을 사용하기 위해서는 인터넷을 필요로 한다.
동적 웹 애플리케이션
웹서버는 준비되어있는 콘텐츠를 클라이언트의 요청이 있을 때마다 보내주는 일을 하는데 인터넷이 점점 발전하게 되면서 컴퓨터가 자동으로 콘텐츠를 갱신해주는 기능이 필요로 해졌다. 예를 들면 날씨 정보, 접속자 수, 인기글, 상품의 재고 등과 같은 정보들이 있다.
이를 이용하기 위해서는 웹서버에서 작동하는 프로그램이 필요하다 (사람 : 클라이언트 대신 콘텐츠를 생성 한다)
CGI 기술
* 동적 콘텐츠 생성 및 웹 브라우저에 입력을 받아 처리하는 애플리케이션 제작이 가능해짐 (검색, 게시판 등등)
문제점 1. 옛날에는 펄을 이용하여 프로그램을 제작했는데 객체지향 프로그램 미지원으로 대규모 개발에 부적합했었다.
문제점 2. 웹 브라우저로 요청이 도착할 때마다 프로그램을 기동했는데 접속 수가 수만번에 이르는 사이트에서는 프로그램이 요청 속도를 따라 잡지 못하는 경우가 발생했다.
웹서버가 요청할 때마다 만들어서 프로그램을 실행
서블릿(Servlet)
CGI의 문제점을 개선하기 위해 만들어졌다. (초기엔 웹이 아니라 가전제품 제어를 위해 만들어졌음)
자바를 이용하기에 객체지향 기능을 완벽하게 지원하여 대규모 개발도 가능하졌다.
당시 많이 사용하던 C언어와 문법이 비슷해 개발자들이 사용하기 편했고 멀티스레드와 보안, 네트워크 통신 등 중요한 기술들을 지원했다.
프로그램을 매번 기동할 필요가 없기에 비교적 고속으로 작동한다.
웹서버 내부에서 이미 만들어져있는 서블릿을 실행
서블릿의 문제점 = html만 있는 문서와 html에 자바가 포함된 문서를 비교해보면 서블릿 문서는 가독성이 많이 떨어지며 화면 디자인 변경이 어렵다. 화면의 디자인을 변경하려고 할 때마다 프로그램을 변경해야 하기 때문에 디자이너가 확인하기 까다로운 문서로 자칫 잘못하면 프로그램을 망가뜨릴수도 있다. 프로그램 입장도 비슷하게 수정 작업이 어려운 문서다.
JSP
서블릿의 단점을 개선하기 위해 생성된 기술.
뼈대는 HTML에 거의 근접한 형태로 만들고, 동적으로 출력하고 싶은 부분은 <%%> 스크립틀릿 안에 자바언어로 기술할 수 있다.
개발자는 스크립틀릿만 보고 웹 디자이너는 HTML만 보고 수정하면 된다.
프레임워크
재사용 할 수 있는 부분을 뼈대로 만들어서 확장하요 사용 할 수 있는, 즉 개발을 더욱 쉽게 하기 위해 만들어진 것.
프레임워클르 토대로 필요한 부분만 추가하여 만들기 때문에 프로그램을 비교적 단기간에 개발할 수 있음.
웹 애플리케이션 프레임 워크에는 .NET, 스트러츠(자바기반), Node.js(자바스크립트 기반), jQuery(자바 스크립트 기반)이 있다.
인터넷
전 세계의 컴퓨터를 상호간에 접속하고 통신할 수 있도록 한 네트워크 [ : 네트(net)를 상호간(inter)에 연결하는 것 ]
URL
URL 은 스킴(sheme), 호스트명(host name), 경로명(Path name)으로 구성되어 있다.
스킴
스킴은 통신 방식으로 웹 애플리케이션에서는 대부분 http를 이용한다. 그 외에도 (mailto : 이메일 스킴, ftp, file)등이 있다.
호스트
호스트는 www(로컬도메인).abc.com(도메인) 식으로 구성되어 있다. 로컬명과 도메인명으로 나눌 수 있다.
원래는 IP주소로 식별하는데 ip주소가 너무 어렵기 때문에 도메인 명을 이용하여 사용하게 됨.
경로명
경로명은 컴퓨터상의 리소스 위치르 나타낸다.
www.abc.com/index.html 과 같은 형태로 해당 도메인 위치에서 어떤 자료를 가져올건지를 정하는 역할이 된다.