웹개발기술의변화방향 - isquery.com 리치웹기술의현황 웹기반표준 바이너리...
Transcript of 웹개발기술의변화방향 - isquery.com 리치웹기술의현황 웹기반표준 바이너리...
리치 웹 기술의 성장
• 과거의 유산– 웹 브라우저 전쟁 및 비표준 웹 브라우저 (IE6)
– 플러그인 양산 ActiveX, NS Plugin, Flash
• 웹 2.0과 웹 애플리케이션– 브로드밴드 환경 하에 사용자 참여 기반의 웹 플랫폼 성장
– Ajax 기반의 리치 웹 애플리케이션 성장 (구글맵, 지메일)
– 현대적 웹 브라우저의 기술 혁신 (파이어폭스, 사파리, 크롬)
• 새로운 트렌드– HTML5 기반 리치 웹 애플리케이션 제공
– 모바일 및 태블릿 OS에서 적극 이용 가능
웹 개발의 중요 원칙
• 기술 요소의 분리 (Separation of Functions)– 구조(HTML), 표현(CSS), 동작(DOM Script)의 분리
• 점진적 기능 향상 (Progressive Enhancement)– HTML의 기능을 기반으로 CSS, JavaScript, Plugin
등 기능을 단계적으로 향상 시킴
• 단계적 기능 축소 (Graceful Degradation)– 반대로 기능을 단계적으로 축소하더라도 중요한 기능
은 수행되도록 해야 함.
• 하위 및 상위 호환성 (Backward/Forward Compatibility)– 웹 브라우저별 이전 버전의 기능을 제공하면서도 향
후 버전에 탑재될 미래 표준에 대한 기능 역시 제공
Plug-in
DBDB
<html><title> <?=$title?> </title><body><font size=2>Hello! World</font><?=mysql_query(“SELECT name…)?></body></html>
CGI
Internet
초창기 웹 개발 방식 (1990년 초반)
Plug-in
DBDBModel
Internet
View
Controller
<! DOCTYPE XHTML…><title>$title</title><body><h1>Hello, Wolrd</h1></body></html>
body { font-size: 9pt;}h1 {color:blue;}
Function popup(url) {window.open(url);
}
Structure
Presentation
Behavior
XHTML
CSS Layout
DOM Script
MS .NET
Spring Stru
ts
웹 표준 시대 (200년대 중반)
Plug-in
DBDBModelInternet
View
Controller
{"Name": "Cheeso", "Rank": 7}
Structure
Presentation
Behavior
Ajax OpenAPI
RubyOnRails
jQuery
Gears
Ajax 시대 (2000년대 후반)
Plug-in
InternetStructure
Presentation
Behavior
Ajax
LocalStorage
LocalStorage
diskdisk
NoSQL
CloudComputing
{"Name": "Cheeso", "Rank": 7}RESTful
소셜 웹 시대의 웹 개발 (2010년)
HTML5 디자인 원칙
• 호환성– 기존의 HTML 문서를 최대한 지원, 단계적 기능 축소(Graceful
degradation), 기존 기능 재사용 및 엄격한 잣대를 대지 않는 것
• 유용성– 실제 웹 개발자들이 겪고 있는 가장 중요한 문제를 순위에 따라
나누되 문제점을 분리해서 독립적으로 해결 함.
• 상호 호환성– 브라우저 엔진 호환을 위해 최대한 자세한 스펙을 기술하되 복
잡하지 않고 오류 처리 방법을 꼭 기술.
• 보편적 접근성– 미디어 포맷 독립성, 전 세계 언어 지원, 웹 접근성 보장
<input type="datetime">
<input type="range">
<input type="url">
And many more…
<input type="text"list="list"><datalist id="list">
<option value="Mr">
...</datalist>
2. Web Form
3. 멀티미디어
• 비디오 및 오디오– 멀티미디어 서비스가 주류 콘
텐츠로 편입
– 거의 모두 플러그인 기반으로제공되고 있음 (c.f. Open Video)
– 브라우저에 네이티브 지원 필요성 (c.f. OGG)
• Canvas– 간단한 2D Graphics
4. 오프라인 지원 및 스토리지
• 데이터를 클라이언트 사이드에서 저장 필요
• 웹 애플리케이션의 오프라인 기능 지원 필요– 데이터베이스 서비스 지원
– SQLite database 및 DOM storage api (key/value pairs)
• 구현 브라우저– Firefox, Safari, Opera, Google Chrome and IE8
5. 웹 워커
• 일반 애플리케이션은 Thread와 Process를 가짐
• 웹 애플리케이션에 동시 실행 가능성 부여
• 오버로드가 심한 애플리케이션에서 분리된 Thread로 실행 가능– Dedicated (think: bound to a single tab)
– Shared (shared among multiple windows in an origin)
– Persistent (run when the browser is “closed”)
• 구현 중: Firefox 3.5, Safari and Google Chrome
모바일 OS가 주목 받는 이유
• 왜 모바일 OS인가?– 데스크톱 OS가 태블릿에서 실패했기 때문
– 모바일과 데스크톱 사이의 영역을 새롭게 정의
– 인터넷 기반의 웹 애플리케이션의 성장
– 전혀 새로운 소프트웨어 생태계 주도
• 태블릿 애플리케이션의 구도– 태블릿 OS의 네이티브 개발 환경
• iPhone OS, Android, WindowsPhone, Symbian…– 차세대 웹 표준 기반 개발 환경
• HTML5 (Audio, Video, Canvas, SVG, CSS3, WebSocket…)
무엇이 문제인가?
Even Google was not rich enough to support all of the different mobile platforms from Apple’s AppStore to those of the BlackBerry, Windows Mobile, Android and the many variations of the Nokia platform
- Vic Gundotra, Google Engineering VP
모바일에서 주요 구현 현황
√√ √√ √√ √√
√√ √√ √√ √√
√√ √√ √√
√√ √√ √√ √√
Canvas
Video/Audio
WebGL
SVG
Workers √√ √√ √√ √√
Plug-in
InternetNoSQL
CloudComputing
{"Name": "Cheeso", "Rank": 7}
Structure
Presentation
Behavior
Ajax RESTful
LocalStorage
LocalStorage
Web Storage
Web Socket
SelectorAPI
Canvas
Geolocation
Drag&Drop
diskdisk
Casandra
Hbase
Amazon AWS
MS Azure
HTML5 시대의 웹 프레임웍
CSS3
HTML5
AppCacheWebGL
온라인 기반 애플리케이션
• Canvas 이용 간단한 멀티미디어 기능 구현 가능• 광고 및 온라인 게임 등 활용
Hand of Greedhttp://brainiumstudios.com/webapp/Spin the Bottlehttp://www.idean.com/iphone/spin/
하이브리드형 애플리케이션
• 아이폰 앱 안에 웹 기반 UI 제공
• 네이티브+웹 기반 형태로 앱스토어에서 다운로드 가능
Harmonious - 웹 기반 스케치패드http://harmoniousapp.com/
오프라인 애플리케이션
• HTML5기술+로컬 저장소만 이용한 애플리케이션
• App Cache 혹은 앱스토어를 통해 배포 가능
Monocle - 웹 기반 eBook Reader http://monocle.inventivelabs.com.au/