본문 바로가기
WEB

웹의 개요

by 둥바 2022. 6. 7.
웹(web)이란?

- 월드 와이드 웹(WWW, W3; World Wide Web)의 줄임말

- 전 세계를 연결하는 거미줄과 같은 네트워크 상의 인터넷 망을 통해 서로 정보를 공유하는 정보 서비스 공간

웹 정보의 작성 및 표현

- 웹의 모든 정보는 HTML(Hyper Text Markup Language) 언어로 표현되는 웹 문서로 작성

- HTTP(Hyper Text Transfer Protocol) 통신 규약을 통해 전달

HTTP란
1) 데이터를 주고 받기 위한 프로토콜
2) HTTP 프로토콜은 Header 영역과 Body 영역으로 나뉜다.
Header 영역에는 인증과 관련된 정보값들이 들어갈 수 있으며,
Body 부분에는 데이터를 전달하는 XML(또는 JSON - 데이터를 패킷 방식으로 보냄)이 들어갈 수 있다.

- 전달된 웹 문서는 웹 브라우저에 의해서 해석되어 사용자에게 제공된다. 즉 웹 브라우저가 있어야만 HTML 해석 가능.

- 팀 너버스 리(웹의 선구자, HTML 최초 개발자)는 웹 관련 모든 코드를 공개했으며, W3C를 통해서 HTTP,HTML의 표준 등을 제안했고 최초의 웹 브라우저인 'Word wide Web'도 제공했다.

 

네트워크상 웹서비스 구조

웹 브라우저 -> 유저의 검색(요청) -> 웹 서버(요청 처리) -> 웹 어플리케이션 서버(프로그램 작동) - DB가 필요시에 DB에 요청 - 쿼리가 날아오면 DB에서 그 결과값을 웹 앱 서버에 -> 웹 서버 -> 클라이언트 쪽으로 응답

 

웹 마크업 언어의 발전

- 마크업(markup)

문서 내용 자체가 아닌 내용에 관한 크기나 모양,표시 위치와 같은 부가적인 정보

마크업 언어 특징
SGML HTML과 모든 마크업 언어의 기반인 된 마크업 언어
다양한 전자 문서들의 구조와 내용을 명세하기 위한  표준
HTML 쉽고 편리한 웹 페이지 작성용 마크업 언어
웹 기술의 출발점이 된 웹 문서 표준
XML 문서나 정보의 교환을 위한 웹 표준
XHTML HTML에 XML장점 접목했으나 현재에는 진행 중단
HTML5 웹 페이지에서 웹 애플리케이션까지 지원하는 마크업 언어이자 플랫폼 기술 , 현재 진행 중 차세대 웹 문서 표준

 

웹 브라우저 : HTML 소스를 번역하여 화면에 출력

1. 익스플로러 - 마이크로소프트 : 가장 범용적인 브라우저, 액티브 X 기술 지원, 보완 취소 및 웹 표준 준수율 낮음

2. 크롬 - 구글 : 가볍고 빠른 브라우저, 안드로이드 호환성으로 최근 점유율 향상

3. 파이어폭스 - 모질라 : 공개 코드로 개발중인 점유율 높은 브라우저 / 빠른 속도와 보안, 프라이버시에 강점

4. 사파리 - 애플 : 간결한 디자인, 독특한 기능, 모바일용으로도 많이 사용

5. 오페라 - 오페라 소프트웨어 : 적은 용량과 빠른 속도, 모바일용으로 사용

 

cf) W3C : 웹 표준기관

 

프로그램들이 어떤 브라우저에서는 잘 돌아가고, 어떤 브라우저에서는 돌아가지 않을 수 있는데 그 이유는 엔진이 달라서이기 때문이다. 엔진이 해석하는 과정에서 브라우저마다 되는 게 있고, 안 되는 게 있음. (갭이 컸음) 이제는 성능도 좋아지고 엔진도 비슷해졌다.

 

웹 브라우저 엔진

- 단순한 번역기(interperter) 이상의 역할을 수행하는 웹 브라우저의 핵심

- HTML, CSS, 자바스크립트 코드를 받아 해석하고 처리하는 기능 수행

 

웹 브라우저 GUI -> 브라우저)

로더(loader) -> HTML의 경우) DOM 파서 -> DOM 트리 -> 자바스크립트 섞여있으면 자바스크립트 엔진으로

로더(loader) -> CSS의 경우) CSS 파서 -> Style,Layout 해석 -> 그래픽이기 때문에 렌더링 엔진 돌면서 -> 렌더링트리(프린트) -> 렌더링 엔진에 의해서 페인터(배치 및 그리기) -> 웹 브라우저에 보내줌 

 

웹 브라우저 엔진의 종류

1) 게코 - 모질라 파이어폭스

2) 웹킷 - 구글 크롬, 애플 사파리

3) 트라이던트 - IE

4) 프레스토 - 오페라

 

웹 브라우저 엔진의 요소

1) DOM 트리 구성 : DOM 파서에 의해서

HTML 문서를 파서(parser)를 통해 파싱(다른 형태의 데이터로 변환)해서 메모리에 'DOM(Document Object Model) 트리' 라는 내부 트리 구성

2) 렌터 트리 구성 : 렌더 엔진

렌터 트리(DOM 트리 중 화면에 보여지는 엘리먼트만을 선별하여 만든 내부 저장 구조 )

3) 레이아웃 구성

구성된 렌더 트리를 웹 브라우저 화면의 지정된 영역에 매핑하여 배치하여 레이아웃 구성

CSS스타일이 분석되어 적용된다.

4) 페인팅 : 페인터

구성된 레이아웃을 실제 화면의 브라우저 창에 표현

 

웹 브라우저의 처리 과정

a. MVC (Model View Controller) 구조를 그대로 따른다.

b. MVC 개발 방식

- 프로그램 개발 모듈을 화면(View), 데이터(Model) , 기능(Controller) 영역으로 분할하여 

분석, 설계, 상호작용을 통해 전체 프로그램 실행되는 구조로 개발하는 방식

- 대표적인 설계/아키텍쳐

MVC 패턴요소 처리 대상(코드) 기능 브라우저 구성요소
모델 HTML코드 (문서)데이터 DOM 파서
CSS코드 (디자인)레이아웃 렌더 엔진
기능 제어기 Javascript 코드 동적 처리 자바스크립트 엔진

 

HTML 버전

91 HTML 1.0

90년대 중반 HTML 2.0 / CSS1 /JavaScript 

99 HTML 4.01 (4.01과 5는 서로 호환가능)

00년대에 XHTML 1.1 있었으나 사라짐

06 jQuery , 이후에 jQuery Mobile 

14 2차 웹 브라우저 전쟁(표준화) : HTML5 도입, CSS3

 

웹 표준

- 웹 프로그래밍에서 지켜야 하는 표준적 규칙, 어떤 운영체제나 웹 브라우저에서도 비교적 동일한 디자인과 기능 구현 목적

- 우리나라의 경우 많은 사이트가 웹 표준 어기고 인터넷 익스플로러에서만 작동되는 비표준 기술과 액티브 x 기술 남용하여 다른 브라우저 및 모바일 기기에서 정상적으로 이용할 수 없는 문제가 발생

 

why 웹 표준을 따라야 하는가?

- 다양한 장치의 접근성 지원

- 구조 표현의 분리로 디자인, 기획, 개발 업무 단순화

- 배워야 하는 내용이 제한되어 개발 부담 감소

- 웹 브라우저 상,하위 버전 간의 호환성 유지

- 다양한 플랫폼에서 실행 가능한 단일 프로그램 개발로 개발 및 유지비용 감소 

- 장애인, 노약자 등에 대한 보편적 웹 접근성 지원

- 유효성 검사 서비스(w3c제공) 를 통해 웹 표준 준수 여부 빠르게 검증

 

HTML5 API 주요 기능

- 캔버스 : 2차원 그래픽 API

- 멀티미디어 : 별도의 플레이어 없이 실행 가능 미디어,오디오 API 제공

- 위치정보

- 오프라인 웹 

- 웹 데이터베이스

- 로컬 저장소 : 간단한 데이터 저장 위한 API 제공

- 웹 소켓 : 서버와의 실시간 데이터 교환 위한 API 제공

- 웹 워커 : 웹 어플리케이션을 위한 스레드 관련 API 제공

 

자바스크립트

- java(jsp) : 컴파일 언어, 서버에서 실행

- javascript : 인터프리터 언어(한 줄 씩 실행), 클라이언트(웹 브라우저)에서 실행

- 가변자료형이기 때문에 var a = 10; // a는 number형 또는 a= "안녕" //a는 문자형

-jQuery : 자바스크립트 라이브러리

 

HTML5 문서의 기본 구조

DOCTYPE 문서 선언부 : HTML 문서의 버전 표시

<html>엘리먼트 영역

          <head>엘리먼트 영역</head>

          <body>엘리먼트 영역</body>

</html>

- 문서 선언부 제외하고는 <html>시작 태그로 시작해서 </html>종료 태그로 끝남

- <html>태그 안에는 <head></head>태그 쌍이 먼저 오고 <body></body>태그 쌍이 온다.

 

HTML5 문서

- <!DOCTYPE html> 선언 : 웹 브라우저에 html5로 작성되어있음을 알림

- HTML5 문서 자체는 아스키 코드로 작성된 일반 텍스트 파일이므로, 문서 작성은 일반 텍스트 편집기로도 가능

- 파일 확장자는 .html이나 .htm으로 저장 가능하며, 웹 브라우저를 통해 문서 결과 확인

 

HTML5의 기본 요소

- 태그(tag) : '<'와 '>'로 둘러싸인 문자열로 시작태그와 종료태그로 구성 

- 내용(content) : 태그로 둘러싸인 문자열

- 엘리먼트 : 태그와 내용을 모두 포함한 전체 문자열 - 계층적으로 상위 엘리먼트 안에 하위 엘리먼트 존재 가능

- 속성(attribute) : 엘리먼트의 상셍한 표현 기능, 시작 태그 안에서 사용 <h1 style="color:blue";>

- 속성값(value) : 속성값은 " " 또는 ' '로 감싸기 <h1 style="color:blue";>

 

 

태그와 엘리먼트

- 태그 : 웹 브라우저가 해석해야 할 대상, 엘리먼트의 시작과 끝을 지칭하는 구성 요소 중 하나

엘리먼트 내용에 대한 의미나 역할을 표현하는 일종의 명령어

- 엘리먼트 : 문서의 논리적 구성요소, 서로 관련된 태그 조각과 내용 조각들의 조합

- 태그는 '형식'을, 엘리먼트는 '형식+내용'을 의미

 

 

 

 

'WEB' 카테고리의 다른 글

UI 설계 및 구현  (0) 2022.06.22
XML, JSP 맛보기 및 입력 태그  (0) 2022.06.13
HTML5 레이아웃 및 시맨틱 태그  (0) 2022.06.09
HTML5 기본 태그  (0) 2022.06.08
톰캣 설치 및 웹 개발환경 설정  (0) 2022.06.06