티스토리 뷰

728x90
반응형

Web ?

인터넷이 등장하고 30년 후인 1990년, 스위스에서 개발된 프로그램

이 프로그램은 그 전부터 개발되고 있었는데 해당 연구소에 인터넷이 보급되면서 완성되었습니다. 이 웹이 완성되면서 인터넷이 가지고 있던 (잠재 되어있던?) 무한한 기능들을 발휘할 수 있게 되었습니다.

예를 들어 인터넷은 특정 집단들 사이에서만 네트워크를 구성하여 정보를 공유하였는데, 웹이 개발되면서 일반 대중들에게 까지 퍼져 나가게 됩니다.

WWW = World Wide Web 말 그대로 세계에 펼쳐 있는 망의 역할을 하게 됩니다. 

초기의 원시 웹은 아주 간단했는데, 오직 html로만 작성되어 있었습니다. (http://info.cern.ch 웹의 시작) 이 웹의 개발자는 웹 페이지의 소스코드를 모든 이용자들이 볼 수 있게 설정해 놨고 누구도 제한없이 html을 사용하도록 정했습니다. 이는 지금까지 이어져오고 있고 웹이 빠른시간에 엄청난 발전을 할 수 있게 되는 큰 원동력이었죠.

HTML

웹 페이지를 만드는 데 가장 기초적이면서 필수적인 프로그래밍 언어입니다.
모든 HTML로 작성된 웹 페이지에서 해당 페이지의 소스 코드를 볼 수 있으며 간단하게 메모장으로도 코드를 작성할 수 있습니다. 가장 중요한 문법으로는 '태그'가 있습니다.

태그는 대부분 <></>와 같이 시작과 끝을 나타내는 두 개의 태그가 짝을 이루고, 시작만을 나타내는 태그도 존재합니다. 태그는 200개가 넘게 존재하지만 그 중 약 25개 정도로 이루어진 웹 페이지가 절반 이상을 차지하므로 꼭 다 알 필요는 없습니다. (https://www.advancedwebranking.com/html/ 페이지를 통계적으로 분석해 놓은 정보를 올려 놓은 사이트)
태그를 사용할 때 가장 중요한 점은 각 태그의 용도에 맞게 사용하는 것입니다. 정보를 검색하는 정보 검색 엔진들은 이 태그를 이용해 웹 페이지들을 찾습니다. 따라서 무분별하게 태그를 사용하여 프로그래밍을 하면 의도치 않게 여러 부분에서 손해를 보게 됩니다. 

즉, 프로그래밍을 할 때 어떤 언어든 자신이 코딩한 내용의 의미가 그 코드에 명시적으로 나타나고, 그 의미가 컴퓨터에게도 그대로 전달 될 수 있도록 하는 것이 좋은 프로그래밍입니다.

서버와 클라이언트

자신이 만든 웹 페이지를 다른 사람들에게 공유하고 싶으면 웹 서버가 필요합니다.

클라이언트(사용자)들은 웹 브라우저를 통해 필요한 정보를 얻기 위해 주소 등을 입력하게 되고 해당 주소의 서버에게 그 정보를 요청하게 됩니다. 서버는 필요한 정보를 찾아 클라이언트에게 제공하게 됩니다.

이 서버를 구축하는 방법으로는 OS별로 자신이 직접 서버 환경을 구축하는 방법과 서버 호스팅 업체(oracle, apache 등)를 통해 무료나 유료로 서버를 빌려 자신의 웹을 공유할 수 있는 방법이 있습니다.

WAS

웹 서버 + 웹 컨테이너 기능을 수행하는 Web Application Server 입니다.
웹 컨테이너는 서버가 해석하지 못하는 동적 언어인 PHP, JSP같은 언어들을 해석하여 HTML로 바꿔 서버에게 전달해주는 소프트웨어입니다. 이 언어들을 Back-End 언어라고도 하는데, HTML이 개발된 4~5년 뒤에 정보량이 많아지면서 웹 페이지의 수가 많아지고, 그에 따른 여러 불편함을 느끼게 되면서 효율적으로 웹 페이지를 프로그래밍 하고 제어하기 위해 개발된 언어입니다.
기본적으로 웹 브라우저나 웹 서버는 HTML같은 정적인 언어들만을 해석할 수 있기 때문에(Javascript는 웹 브라우저에서 해석하기도 합니다.) 웹 컨테이너에게 Back-End언어들의 해석을 부탁하게 됩니다. 그러면 앞서 말한 것 처럼 웹 컨테이너는 이를 HTML로 바꿔주어 서버에게 전달해줍니다.
이 역할을 다 수행할 수 있는 서버가 바로 WAS입니다.

웹 프로그램 흐름

클라이언트 (request)→ 웹 서버( 웹 컨테이너 → 데이터베이스 → 웹 컨테이너 →)웹 서버 (response)→ 클라이언트


728x90
반응형

'Spring&Spring Boot > JSP' 카테고리의 다른 글

Servlet Mapping  (0) 2019.01.11
JSP와 Servlet 비교  (1) 2019.01.11
Servlet 개요  (0) 2019.01.11
JSP 개요  (0) 2019.01.10
개발 환경 구축하기(JDK,eclipse,tomcat)  (0) 2019.01.08
댓글