300x250
I. 차세대 웹 응용 개발을 위한 HTML 표준, HTML5의 개요
가. HTML5의 정의
- W3C에서 만들고 있는 차세대 웹 표준으로 특정 기업의 독점 기술에 의존하지 않는공개되고 표준화된 웹 환경을 만들기 위해 기술
- add-on 또는 plug-in 없이도 웹 사용이 가능하도록 광범위하면서도 자세하게 규약 제정
- 문서 구조(DOM)와 마크업(Markup) 표준, API 표준으로 구성되고, 추가적인 플러그인 없이 Rich Web응용을 가능하게 함
나. 웹표준의 발전과 HTML5
웹표준의 발전
- 1991: HTML
- 1994: HTML2
- 1996: CSS+자바스크립트
- 1997: HTML4
- 1998: CSS2
- 2000: XHTML
- 2005: AJAX
- 2009: HTML5
- 1989년 팀버너스리에 의해 처음 개발된 후 HTML2, HTML3.2, 1999년 HTML4.01로발전함
- 2004년 애플, 모질라, 오페라 등이 WHATWG(Web Hypertext Application Technology Working Group) 결성 이후 리치 웹 응용의 실용적 플랫폼에 목적을 둔 HTML, CSS,DOM 및 자바스크립트 개선 표준개발 시작
- 2007년 이후 W3C가 인계받아 HTML5 표준 개발WD(Working Draft) 수준으로 진행
II. HTML5 표준의 구성
가. 시맨틱 마크업 부분
- 기존 HTML4보다 명확한 의미표현이 가능하도록 26개 정도의 새로운 마크업 추가로검색엔진 등 웹 콘텐츠 기반의 다양한 서비스나 응용의 개선된 기능 제공 가능
HTML <div id = "header"> | |
<div id ="nav"> | |
<div class="article"> | <div id ="sidebar"> |
<dif class = "section"> | |
<div id="footer"> |
HTML5 <header> | |
nav | |
<article> | <aside> |
<section> | |
<footer> |
- 기존 HTML4.X이하 버전과 HTML5와의 가장 큰 특징은 위의 예와 같이 <article>, <section>과 같은 다양한 목적으로 사용되던 사용자 정의 형식의 태그들이 모두 표준화로사용될 수 있다는 것
요소 | 내용 |
section | - 문서나 어플리케이션의 섹션 |
nav | - 네비게이션을 위해 구성된 섹션 |
article | - 문서 내의 독립적인 글 블로그 글이나 뉴스 본문 등 |
aside | - 문서의 주 내용이 아닌 관련성이 낮은 내용 본문과 관련없는 사이트 링크 광고, nav 요소의 그룹 등 |
header | - 소개나 네비게이션 기능들의 묶음 |
footer | - section의 footer를 나타냄. 저자나 저작권등 |
나. AP 부분
- 웹 기반의 응용 개발을 지원하기 위해 새로운 기능 추가
신규 API | 설명 |
Timed media playback | - 내장 비디오 및 오디오 재생을 위한 video, audio 요소 |
Offline Web database | - 오프라인 웹 애플리케이션 기반 API |
Document editing | - 새 전역 content editable 속성과 함께 지원 되는 편집 API 기능 |
Drag-and-drop | - draggable 속성과 함께 지원 되는 드래그앤 드롭 API 기능 |
Browser history management | - 페이지 앞/뒤 네비게이션을 지원할 방문 기록 표시용 API 기능(보안제한 모델이 있음) |
MIME type and protocol handler registration | - 웹 애플리케이션이 독립적으로 특정 프로토콜 및 미디어 형식을 등록 할 수 있는 API |
Microdata | - 사용자가 정의의 엘리먼트 지원 |
Canvas | - 웹상에서 2차원 그래픽 표현 (immediate mode ) |
Cross-document messaging | - 다중 메시징 처리 기능 |
III. HTML5의 표준범위와 주요기능
가. HTML5의 주요 표준 범위
설명 | 주요 표준 |
HTML5 : A vocabulary and associated APIs for HTML and XHTML | - 가장 기본적인 HTML5 표준인으로 표준 전체에 공통적인 부분에 대한 내용과 마크업 부분에 대한 표준 |
HTML Microdala | - HTML 문서에서 시맨틱 마크업을 간단히 내장시키기 위한 메커니즘에 대한 표준 |
Canvas 2D API | - 웹에서 즉시모드(Immediate mode)로 2차원 그래픽을 그리기 위한 2D Canvas Drawing API 표준 |
HTML Canvas 2D Context | - Canvas 태그 내 각종 객체를 회전, 변환하고 그레디언트, 이미지 생성 등 각종 효과를 주는 기능에 대한 표준 |
Server-Sent Events | - 서버가 데이터를 웹 페이지로 푸쉬하기 할 때 사용하기 위한EventSource 인터페이스에 대한 표준 |
Web Storage | - 웹 클라이언트에서 키와 값이 쌍으로 구성된 데이터를 영구적으로 저장하기 위한 API 표준 |
HTML5 Communications | - 소스 도메인과 상관없이 문서들 간에 커뮤니케이션을 가능하게 하는 메시징 메커니즘 표준 (크로스 도메인문서 접근을 가능) |
Web Workers | - 웹 응용 개발자가 쓰레드와 같은 개념으로 백그라운드 워커를 생성할 수 있도록하는 API 표준 |
Web SQL Database | - 다양한 SQL을 사용해 질의할 수 있는 데이터베이스에 저장된데이터를 위한 API 표준 |
Web Sockets API | - 웹 응용이 서버 측의 프로세스와 직접적인 양방향 통신을 위한 API 표준 |
WebSimpleDB API | - 트랜젝션 데이터베이스에서 정열된 키와 값이 쌍으로 구성된 데이터를 저장하거나 검색하기 위한 API |
Geolocation API | - 디바이스의 지리적 위치 정보를 제공하는 API 표준 |
File API | - 웹 응용이 파일 정보 파일 리스트에 대한 정보 접근 그리고 파일 자체의 데이터를 읽기 위한 API 표준 |
나. HTML5의 주요 기능과 WBC 표준과의 관계
주요 기능 | 설명 | 관련 W3C 표준명 |
웹폼 (Web Form) |
- 사용자의 입력정보를 받기 위해 사용되는 입력형태에 대한 정의에 사용되는 마크업, 애트리뷰트와 이벤트 | HTML5 |
캔버스 (Canvas) |
- 웹에서 즉시모드(immediate mode)로 2차원 그래픽을 그리기 위한 API와 canvas 내 각종 객체를 회전, 변환하고 그레디언트, 이미지 생성 등 각종 효과를 주는 기능에 대한 API | Canvas 2D API HTML Canvas 2D Context |
SVG (Scalable Vector Graphic) |
- XML 기반의 2차원 벡터 그래픽을 표현하기 위한 언어 | HTML5 |
Video/Audio | - Video 비디오 또는 영화를 보여주기 위해 사용되는 미디어 엘리먼트이며, audio는 사운드나 오디오 스트림 HTML5을 표현하기 위한 미디어 엘리먼트 |
HTML5 |
Geolocation | - 디바이스의 지리적 위치 정보를 제공하는 API 표준 | Geolocation API |
오프라인 웹 응용 (Offline Web Application) |
- 인터넷 연결이 지원되지 않는 경우에도 웹 응용이 정상적으로 수행될 수 있도록 지원하는 기능으로 응용에 대한 캐싱과 데이터에 대한 캐싱으로 구성 | HTML5 Web SQL Database |
웹 SQL 데이터베이스 (Web SQL Database) |
- 다양한 표준 SQL을 사용해 질의할 수 있는 데이터베이스 기능에 대한 API | Web SQL Database |
로컬저장소 (Local Storage) |
- 기존의 쿠키의 기능을 개선하기 위한 목적으로 개발된기능으로 웹 클라이언트에서 키와 값이 쌍으로 구성된 데이터를 영구적으로 저장하는 기능 | Web Storage |
웹 소캣 (Web Socket) |
- 웹 응용이 서버 측의 프로세스와 직접적인 양방향 통신을 위한 API | The WebSocket API |
웹 워커 (Web Worker) |
- 웹 응용을 위한 쓰레드(Thread) 기능에 대한 API | Web Workers |
IV. HTML5의 보안 취약성과 모바일 웹 생태계에 미치는 영향
가. HTML5의 주요 보안 취약성
주요 보안 취약성 | 설명 |
Cross-Document Messaging |
- HTML4에서는 보안을 위해 다른 도메인의 페이지로 데이터를 전달하거나 다른 도메인 페이지의 데이터 접근이 불가능 하였음 - HTML5에서는 postMessage라는 API를 통해 다른 도메인에서 실행 중인 자바스크립트에 데이터를 전달하는 기능 추가되어 요청을 한 도메인에 대한 체크가 되지 않을 경우 악의적인 메시지에 노출될 위험성 존재함 |
Local Storage | - SQL을 통해 오프라인 시에도 데이터를 활용할 수 있는 클라이언트 사이트 오프라인 데이터베이스 - 민감한 정보(패스워드, 주민번호, 이메일 내용 등)가 저장되어 있을 경우, SSLunique database 생성하여 사용, SQL Injection 방지를 위한 prepared SQL 구문을 사용하여야 함 |
Attribute Abuse | - autofocus의 악의적 사용 : window에 포커스를 줄 수 있으며, window에 포커스가 있을 때 악의적 코드가 실행되도록 할 수 있음 - poster srcdoc과 같은 외부 리소스에 접근하기 위한 attribute 사용 시, 악의적인 리소스에 접근에 대한 제어 필요 - 이런 속성들은 어플리케이션의 풍부한 기능성을 위해 새로 추가되었으나(결함은 아님) 악의적인 사용자에 의해 악용될 수 있을만큼 개발에 주의가 필요함 |
inline Mulmedia and SVG | - (audio), (video>, <svg)와 같은 새로운 태그를 지원하기 위해 HTML5를 지원하는 브라우저들은 각자만의 구현을 해야 하므로, 안전성에 대한 버그들이 브라우저마다 각기 다르게 존재할 수 있음 (예: 초기 구글 크롬에서 크로스도메인 관련한 버그 존재) |
Input Validation | - 클라이언트에서 입력값에 대해 검증하는 것은 변조가 가능하므로 반드시 서버사이드에서 입력값에 대한 검증이 필요함 (예: 정규식을 체크하는 코드가 DoS 공격(예: 무한루프로 메시지 전송)하는 코드로 변조가 가능함) |
나. HTML5가 웹 생태계에 미치는 영향
1) 모바일웹 콘텐츠/응용 개발 시 지원 기능 향상
- HTML5 표준에 추가되는 개선 기능으로 모바일웹 응용 개발에 다양한 특장점을 갖게 됨
HTML5 지원 기능 | 기술 특징 | 모바일 웹 서비스 장점 |
오프라인 웹응용 기능 | - 오프라인 환경에서도 웹 응용이 정상적으로 실행 - 용용 캐싱(Application Cashing) 기능 - 웹 SQL 데이터베이스 기능 |
모바일 웹 접속과 무관하게 정상 동작 가능 |
Geolocation | - 브라우저가 디바이스의 위치정보를 접근 가능 - 디바이스 API 표준, 네비게이션 기능 - 사진 동영상 등에 위치정보 추가 가능 |
인터넷 지도 서비스 연동, 파일관리 서비스 등 다양한 웹 응요 개발 가능 |
웹폼(Web Form) | - 사용자의 입력정보를 받기 위해 입력 양식 - 전자메일, URL, 숫자, 범위, 달력 등 12개 항목 추가 |
모바일 디바이스 인터페이스 기능 향상 |
웹 소켓(Web Socket) | - 웹응용과 서버 측 프로세스와 양방향 통신 지원기능 - XHR(XMLHttpRequest) 헤더메시지 교환기능 대체 - 브라우저의 양방향 통신 채널 제공 |
웹응용과 서버는 데이터 교환만 수행 (속도 개선) |
V. HTML5의 현황과 전망
가. HTML5가 시장에 미치는 영향
시장 | 제약 사항 |
PC 시장 | - 사용자 취임 및 사용자 PC 환경에 따라 HTML5를 지원하지 못하는 다양한 브라우저 설치되어 있음 - 웹접근성을 위해 HTML5를 지원하지 못하는 브라우저에서도 실행되는 어플리케이션 개발로 인한 비용 증가 예상됨 |
모바일 시장 |
- 단말기마다 다양한 디바이스에 접근하기위한 표준 미비 - 보안 취약성에 대한 개발자의대응 능력 미흡 |
나. 모바일서비스 기업의 기술 전략 현황
1) 구글
- 전략적으로 개발하던 구글 기어스(Google Gears)를 포기하고 HTML5에 집중
- 유튜브(Youtube)에서 플래시 플러그인(Flash Plug-In)없이 표준 기반으로 동영상을서비스하는 HTML5 기반의동영상 서비스 시작
- 안드로이드의 웹 플랫폼에도 이미 HTML5의 일부 기능을 제공, 최근 W3C의 HTML5 관련 WG에 적극적으로 참여
2) 애플
- 아이패드를 발표하면서 앞으로 아이폰과 아이패드에서 플래시를 배제하고 HTML5를적용할 것임을 시사했으며, 이미 아이튠즈 등 주요 소프트웨어에 웹의 표준 기술을 적극적으로 도입
다. 모바일 웹 서비스 활성화를 위한 방안
- 웹 기술만을사용하여 하드웨어 및 OS 기반의 디바이스를 제어가 가능한 위한 하이브리드 모바일 앱을 위한 HTML5 표준 필요
- HTML5와 대응되는 기술인 Flash, 실버라이트 등과 같은 플러그인 기술 사용에 대한적절한 적용 능력과 HTML5 적용으로 인해 발생 가능한 문제 (브라우저 호환성, 보안취약성 등)에 대한 대응 능력 향상
[참고] 웹 App과 네이티브 App 비교
항목 | Web App | Native App |
개발 효율성 | - 플랫폼에 관계 없이 한번만 개발 (안드로이드 아이폰, 블랙베리………) |
- 특정 플랫폼 전용이므로 각 플랫폼 별로 각각 개발해야 함 |
개발 플랫폼 | - 꼭 Mac 이 필요하지는 않음 | - Mac 이 필요 (iPhone ) - Android 는 멀티플랫폼 (Win, Mac, Linux) |
개발 언어 | - HTML, CSS Javascript | - Objective C (IPhone), Java (Android ) |
비용 | - 개발 및 유지 비용 저렴 - 앱 개발자 등록 비용 없음 |
- 개발 및 유지 비용 증가 - 앱 등록 비용 매년 지불($99 (iPhone) or $35 (Android)) |
개발 방법 | - 기존의 웹 개발 방법으로 개발 가능 | - 플랫폼 별 전용 개발 환경과 언어를 사용하여 개발 - XCode(iPhone), Eclipse (Android ) |
배포 방법 | - 자동 배포 - 서버에서 바로바로 업데이트가능 |
- 사용자가 직접 설치 및 업그레이드, 업그레이드 할 때 마다 검수(iPhone ) |
디바이스 연계 | - 제한적디바이스 사용(카메라, 마이크등) | - 디바이스의 모든 기능을 활용 |
수익 모델 | - 자체 결제 시스템 또는 광고수익 | - App Store/Market를 통한 판매/수익 & 광고 |
- 네이티브 앱 : 컴퓨터나 스마트폰에 설치해 사용하는 애플리케이션
- 웹앱: 브라우저를 통해 사용하는 애플리케이션
반응형
'IT > 정보관리기술사' 카테고리의 다른 글
[네트워크 보안] 방화벽 구축 유형 (0) | 2022.07.15 |
---|---|
[네트워크 보안] 방화벽의 이해 (0) | 2022.07.15 |
[기업경영전략] IT 투자분석 및 TCO 절감 방안 (0) | 2022.06.14 |
[인터넷 일반] 웹 접근성(Web Contents Accessibility) (0) | 2022.06.07 |
[인터넷일반] REST(REpresentational State Transfer) (0) | 2022.06.04 |