More Related Content What's hot (20)
PDF
๋งํ๋ ์คํฐ๋ ์ฒซ ๋ฒ์งธ ๋ง๋จ Node.js
์ฐ์
์กฐ ย
Similar to Html5 (20) PPTX
ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ์งํ ๋ฐ Spring์ ๊ธ์ต๊ถ ์ ์ฉ
์ค์ ๊ณฝ ย
PDF
แแ
กแฏแแ
กแแ
ฉแธแแ
ตแแ
ก, Polymer: Web Components & Web Animations
Chang W. Doh ย
PPTX
๋ชจ๋ฐ์ผ ๊ฒ์๊ณผ ์ฑ์ ์ํ ์คํ์์ค ๊ฒ์์๋ฒ ์์ง ํ๋ก์ ํธ CloudBread ํ๋ก์ ํธ
Dae Kim ย
PDF
[์๊ฟ์ฌ/111105] html5 9์ฅ ํด๋ผ์ด์ธํธ์ธก ๋ฐ์ดํฐ๋ก ์์
ํ๊ธฐ
sung ki choi ย
PDF
HTML5/JSON ์ ์ด์ฉํด ๋ฒ์ฉ 2D ๋งต์๋ํฐ ์ ์ํ๊ธฐ
Miyu Park ย
PDF
[2012๋๋ฆฌ์ธ๋ฏธ๋] ์ค๋น ~ ๋ค์ด๋ฒ ์ ์ด๋ ๊ฒ ๋ฆ๊ฒ ๋ ?
Nts Nuli ย
PDF
HTTP ์๋ฒฝ๊ฐ์ด๋- 19์ฅ ๋ฐฐํฌ์์คํ
๋ฐ ๋ฏผ๊ท ย
PDF
OpenSource Big Data Platform - Flamingo ์๊ฐ์ ํ์ฉ
BYOUNG GON KIM ย
Html5 2. ๋ชฉ์ฐจ
1. HTML5 ?
2. HTML5 ์๋ก์ด ๊ธฐ๋ฅ โ [new form Element]
3. Offline web development
4. Data messaging API
5. Multi thread and Location API
6. ์น ๋ธ๋ผ์ฐ์ ๋ณ HTML5 ์ง์ ์ฌ๋ถ
CSS3 + HTML + JavaScript + Etc
JavaScript
์ถ์ฒ: http://caniuse.com
7. ์น ๋ธ๋ผ์ฐ์ ๋ณ HTML5 ์ง์ ์ฌ๋ถ โ ์ ์ 500์ ๋ง์
์ถ์ฒ: http://html5test.com
8. ๊ฐ๋ฐ ํ๊ฒฝ(ํ์ ์ ํธ๋ฆฌํฐ)
โข ๋ธ๋ผ์ฐ์
โข Firefox(http://www.mozilla.com/firefox)
โข Chrome(http://www.google.com/chrome)
โข Opera(http://www.opera.com)
โข Safari(http://www.apple.com/kr/safari)
โข Internet Explorer(http://windows.microsoft.com/ko-KR/internet-
explorer/downloads/ie)
โข ์๋ฒ ๊ฐ๋ฐํ๊ฒฝ
โข JDK(http://www.oracle.com/technetwork/java)
โข Apache Tomcat(http://tomcat.apache.org)
โข Node JS
โข IDE
โข Eclipse(http://www.eclipse.org/downloads)
9. ๋ฌธ์ ์ ์ธ ์์
<!DOCTYPE html>
<html lang=โkoโ>
<head>
<title>HTML ์ ์ธ</title>
<meta charset=โutf-8โ>
</head>
<body>
</body>
</html>
14. <input> ์์์ ์๋ก์ด ์์ฑ ๊ฐ
1. number
โข ์ซ์๋ฅผ ์
๋ ฅํ๊ธฐ ์ํ ํ๋
โข min, max, step ์์ฑ ์ฌ์ฉ ๊ฐ๋ฅ
2. range
โข ์ผ์ ๋ฒ์์ ์ซ์๋ฅผ ์
๋ ฅํ๊ธฐ ์ํ ํ๋
โข min, max, step ์์ฑ ์ฌ์ฉ ๊ฐ๋ฅ
3. color
โข ์์์ ์ ํํ๊ธฐ ์ํ ํ๋
15. ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ <input> ์์
File
1. multiple ์์ฑ ์ถ๊ฐ
- ์ฌ๋ฌ ๊ฐ์ ํ์ผ ์ ํ ๊ฐ๋ฅ
2. accept ์์ฑ ์ถ๊ฐ
- ์ง์ ํ MIME ํ์
์ ํ์ผ๋ง ์ ํ ๊ฐ๋ฅ
- image/*, video/*, audio/* ํํ๋ ๊ฐ๋ฅ
3. files ์์ฑ ์ถ๊ฐ
- ํ์ผ์ ์์ธ ์ ๋ณด๋ฅผ ํ์ธ
16. ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ <input> ์์
submit, image
1. form method ์์ฑ ์ถ๊ฐ
- form ์์์ method ์์ฑ์ ์ง์
2. form action ์์ฑ ์ถ๊ฐ
- form ์์์ action ์์ฑ์ ์ง์
3. form enctype ์์ฑ ์ถ๊ฐ
- form ์์์ enctype ์์ฑ์ ์ง์
<form>
<input type="submit"
formmethod="POST" formaction="/create" value="๋ฑ๋ก" />
<input type="submit"
formmethod="GET" formaction="/list" value="๋ชฉ๋ก" />
</form>
17. ์๋ก์ด ์
๋ ฅ ์์
<output>
โข ์์น ๊ณ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ํํํ๋๋ฐ ์ฌ์ฉ
- value ์์ฑ์ ์ด์ฉํ์ฌ ์ฐ๊ด์ฑ ์๋ ์์์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ํํ
์ฑ์ธ<input name="adult" type="number" min="0" value="0"> +
์ด๋ฆฐ์ด<input name="child" type="number" min="0" value="0"> =
<output onforminput="value=adult.valueAsNumber+child.valueAsNumber">ํฉ๊ณ</output>
<keygen>
โข form์ submit ํ ๋ primary key์ public key๋ฅผ ์์ฑํ์ฌ public key๋ ์๋ฒ์
์ก์ ํ๊ณ primary key๋ ๋ก์ปฌ์ ์ ์ฅ๋์ด ํด๋ผ์ด์ธํธ ์ธ์ฆ์ ์์ฑ๊ณผ ๊ฐ์ด ๋ค
์ํ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
18. ์๋ก์ด ์
๋ ฅ ์์
<progress>
1. ์งํ์ค์ธ ์์
์ ์๊ฐ์ ์ธ ํจ๊ณผ๋ฅผ ์ํ ์์
2. ์์ฑ
- value : ์๋ฃ๋ ์์
๋(0.0 ~ 1.0)
- max : ์ ์ฒด ์์
๋(0.0 ~ 1.0 ๊ธฐ๋ณธ์ 1.0)
3. ์์ ์ฌ์ด์ ๊ธฐ์ ํ ๊ฐ์ progress๋ฅผ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ์์ ์ฒ๋ฆฌ
4. position ์์ฑ์๋ ๋ฐฑ๋ถ์จ ๊ฐ์ด ์์(value/max)
19. ์๋ก์ด ์
๋ ฅ ์์
<meter> Tag
1. ์ผ์ ๋ฒ์ ์์ ๋น์จ์ด๋ ์์น๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์
2. ์์ฑ
- min : ์ต์ ๊ฐ(๊ธฐ๋ณธ๊ฐ 0)
- max : ์ต๋ ๊ฐ(๊ธฐ๋ณธ๊ฐ 1)
- value : ํ์ฌ ๊ฐ(๊ธฐ๋ณธ๊ฐ 0)
- low : ๊ฐ์ด ๋ฎ์(์๋ต ์ min๊ณผ ๊ฐ์)
- high : ๊ฐ์ด ๋์(์๋ต ์ max์ ๊ฐ์)
-optimum : ์ต์ ๊ฐ(์๋ต ์ min๊ณผ max์ ์ค๊ฐ ๊ฐ)
3. ์์ ์ฌ์ด์ ๊ธฐ์ ํ ๊ฐ์ meter๋ฅผ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ์์ ์ฒ๋ฆฌ
<meter min="0" max="100" low="60" high="90" value="100">A</meter>
<meter min="0" max="100" low="60" high="90" value="95">A</meter>
<meter min="0" max="100" low="60" high="90" value="88">B</meter>
<meter min="0" max="100" low="60" high="90" value="75">C</meter>
<meter min="0" max="100" low="60" high="90" value="65">D</meter>
<meter min="0" max="100" low="60" high="90" value="50">F</meter>
20. ์
๋ ฅ ๊ฐ ๊ฒ์ฆ
์
๋ ฅ ๊ฐ ๊ฒ์ฆ์ฉ ์์ฑ
โข ํผ์ ์ ์ถํ ๋ ์๋์ผ๋ก ์
๋ ฅ ๊ฐ ๊ฒ์ฆ
โข ์
๋ ฅ ๊ฐ ๊ฒ์ฆ์ ์คํจํ ๊ฒฝ์ฐ ํผ ์ ์ก์ด ์ด๋ฃจ์ด์ง์ง ์์
โข ์
๋ ฅ ๊ฐ ๊ฒ์ฆ์ฉ ์์ฑ
- required : ํ์ ์
๋ ฅ
- pattern : ์ ๊ทํํ์์ ์ฌ์ฉํ์ฌ ์
๋ ฅ ๊ฐ ํจํด ์ง์
- maxLength : ์ต๋ ์
๋ ฅ ๊ฐ๋ฅ ๋ฌธ์ ์
- min, max : ์ซ์/๋ ์ง ํ์ ํ๋์ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ์ง์
- step : ์ซ์/๋ ์ง ํ์ ํ๋์ ์ฆ๊ฐ ๋จ์๋ฅผ ์ง์
21. ์
๋ ฅ ๊ฒ์ฆ ๊ฐ ์์
required
โข <input type="text" name="id" required />
pattern
โข <input type="tel" name="phone"
pattern=
"^(?d{3})?[-s]d{3,4}[-s]d{4}.*?$" />
min, max, step
โข <input type="number" name="age" min="14"
max="30" step="2" />
22. ์๋ ์์ฑ ๊ธฐ๋ฅ ์ ์ด
1. ์
๋ ฅ ํญ๋ชฉ์ ์๋ ์์ฑ ๊ธฐ๋ฅ ์ ์ด
โข ์๋ ์์ฑ ๊ธฐ๋ฅ์ ๋ช
์์ ์ผ๋ก on/off
- autocomplete ์์ฑ
โข ์
๋ ฅ ํ๋ณด ๋ชฉ๋ก์ ์ง์ ์ง์
- <datalist> ์์
2. ์๋ ์์ฑ ๊ธฐ๋ฅ ์ ์ด ์์
์ธ์ด : <input type="text" name="id" list="language" />
<datalist id="language">
<option value="c" label="C์ธ์ด" />
<option value="java" label="์๋ฐ" />
<option value="vb" label="๋น์ฅฌ์ผ ๋ฒ ์ด์ง" />
</datalist>
23. ์
๋ ฅ ์์์ ๊ณตํต ์์ฑ
1. placeholder ์์ฑ
โข ์
๋ ฅ ํ๋๊ฐ ๋น์ด์์ ๋ ๋ณด์ฌ์ค ๊ฐ๋จํ ๋ฌธ์์ด ์ง์
2. autofocus ์์ฑ
โข ํ์ด์ง ๋ก๋ฉ ํ ์ต์ด ํฌ์ปค์ค ์ง์
24. ์๋ก์ด ์ด๋ฒคํธ
1. ์
๋ ฅ ํ๋์ ๋ฐ์ดํฐ ์
๋ ฅ์ด๋ ๋ณ๊ฒฝ ์ ๋ฐ์
โข input : ์
๋ ฅ ํ๋์ ๋ฐ์ดํฐ ์
๋ ฅ ์ ๋ฐ์
โข change : ์
๋ ฅ ํ๋์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ ๋ฐ์
2. ํผ ๋ด์ ์ด๋ฒคํธ ์ฐ๋
โข ํผ ์์ ํ ์์์ input/change ์ด๋ฒคํธ ๋ฐ์ ์ ํผ ์์ ๋ชจ๋ ์์์ ๋ฐ์
ํ๋ ์ด๋ฒคํธ
- forminput
- formchange
์
๋ ฅ1<input type="text" id="t1" /><br/>
์
๋ ฅ2<input type="text" id="t2"
onForminput="this.value=document.getElementById('t1').value" /><br/>
์
๋ ฅ3<input type="text" id="t3"
onForminput="this.value=document.getElementById('t1').value" /><br/>
25. File
Javascript ์์ โฆ ๋์ด ์์์ผ๋ File interface ๋ Browser ๊ฐ ๋ง ๊ฑด๋๋ฆด ์์๋ ๊ฒ
์ด ์๋๋ผ File ์ ํ Form ์ด๋ Drag & Drop ์ ํตํด์ ์ฌ์ฉ์๊ฐ ์ง์ ์ ํํ File์
ํ์ ๋๋ฏ๋ก ์์ฌํด๋ ์ข์ ๊ฒ์
๋๋ค.
28. Offline web development
1. Application Cache
2. Web storage
3. Web Database
4. Indexed DB
โข ์คํ๋ผ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์
โข ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋์ด ์์ง ์์๋ ๋์ํ๋ ์ ํ๋ฆฌ์ผ์ด์
โข ์คํ๋ผ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ด์
โข ์ค๋งํธํฐ์ด๋ ๋ท๋ถ ๋ฑ์ ๋ชจ๋ฐ์ผ ๋จ๋ง๊ธฐ์์ ๋คํธ์ํฌ ์ํ์
์๊ด์์ด ๊ณ์ ์ฌ์ฉํ ์ ์์
โข ํด๋ผ์ด์ธํธ์ ์บ์๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์๋ต์ฑ์ด ์ข์
โข ๋คํธ์ํฌ ์ ์์ด ์ค์ด๋ค์ด ์ ์ ๊ด๋ฆฌ์ ์ ๋ฆฌ
โข ์๋ฒ์ ๋คํธ์ํฌ ํธ๋ํฝ์ด ์ค์ด๋ฌ
29. Application Cache(2/1)
โข ์คํ๋ผ์ธ ๋ธ๋ผ์ฐ์ง โ ์คํ๋ผ์ธ ์ํ์์ ์ ๊ทผ ๊ฐ๋ฅ
โข ์๋ํฅ์ โ ๋ก์ปฌ์์ญ์ ์ ์ฅ๋ ๋ฆฌ์์ค๋ฅผ ๋งค์ฐ๋น ๋ฅธ ์๋๋ก ๋ก๋
โข ์๋ฒ๋ถํ๊ฐ์ โ ๋ธ๋ผ์ฐ์ ๋ ์ค์ง ๋ฆฌ์์ค๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ง ๋ค์ด๋ก
๋๋ฅผ ์๋ํ๋ค.
๊ธฐ์กด ๋ธ๋ผ์ฐ์ ์บ์ฑ ๊ฐ๋
๊ณผ ๋ค๋ฅธ์
๊ธฐ์กด ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ด ์์ฃผ ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง ๋ฐ ํ
์คํธ๊ฐ ๋ธ๋ผ์ฐ์ ์ OOO์ ์ํด ์บ์ฑ๋๋๊ฒ์ด
์๋ ๊ฐ๋ฐ์์ ์ํด ์ ์๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋์ํ๋ค.
CACHE MANIFEST
#version : 2012.07.09.04
CACHE : โข๋ช
์์ ์ผ๋ก ์บ์์ํฌ ํญ๋ชฉ์ ์ ์ํ๋ค.
โขCache ๋์ง ์๊ณ ๋งค๋ฒ ๋คํธ์ํฌ
NETWORK :
์์์ ๋ค์ด๋ฐ์ ์ฌ์ฉํ ๋ชฉ๋ก
FALLBACK : โขOffline ์ํ์์ ํ์ํ ๋ฆฌ์์ค๊ฐ ์์ ๋
์ด๋ฅผ ๋์ ํ ๋ฆฌ์์ค๋ฅผ ์ง์ ํ๋ค.
30. Application Cache(2/2)
์ฃผ์ ์ฌํญ
w3c 1.0 version ํ์ฅ์ ".manifest"๋ผ๋ ํ์ฅ์๋ฅผ ๋ถ์ฌ ์ ์ฅํ์์ผ๋.
IIS ์์ ์ด๋ฏธ ์ฌ์ฉ์ค์ธ type์ด ์์ด ์ถฉ๋,
w3c 2.x version ์์ appcache ์ ์ฅํ์ฌ ์ฌ์ฉํ๋๋ก ๊ถ๊ณ .
FALLBACK ์ฌ์ฉ์ ์ฒซ ๋ฒ์งธ URI๋ ๋ฆฌ์์ค ์ด๋ฉฐ, ๋ ๋ฒ์งธ๋ ๋์ฒด๋๋ ํ์ผ์ด๋ค.
๊ฐ๋ฐ๋จ๊ณ์์ Cache ์ฌ์ฉ์ ์ด๋ ค์์ด ์์ โ file reload โฆ.
MIME-TYPE ์ง์
โขWeb.xml โขjsp Page
<mime-mapping> <%@ page
<extension>appcache</extension> contentType="text/cach
e-manifest;
<mime-type> charset=UTF-8" %>
text/cache-manifest
</mime-type>
</mime-mapping>
31. Web Storage(3/1)
์ผ์ข
์ ํด๋ฆฌ์ด์ธํธ ์ฌ์ด๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ด๋ฉฐ, ์ด ๋ฐ์ดํฐ ๋ ์๋ฒ๊ฐ ์๋ ๊ฐ
์ฌ์ฉ์์ ๋ธ๋ผ์ฐ์ ์์ ๋ณด๊ด๋๋ค. ์ฌ์ฉ์ Key Value ํํ๋ก ์ ์ฅ ๋๊ธฐ ๋๋ฌธ์ ,
๋ณ๋์ ์ฟผ๋ฆฌ๋ฌธ๋ฒ์ด๋ ๋ณต์กํ ๋ฉ์ปค๋์ฆ์ ์ดํดํ์ง ์์๋ ๋๋ค.
ํน์ง
Localstorage ์ Sessionstorage๋ก ๊ตฌ๋ถ๋๋ค.
์ด ๋์ ์ฐจ์ด์ ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ ํ ์ข
๋ฃ๋๊ณ ๋ ํ์๋ ๋ฐ์ดํฐ๊ฐ ์ ์ง ๋๋๊ฐ?์ ์ฐจ์ด๋ค.
KEY VALUE
age 30
name Hong kil dong
โฆ โฆ
โฆ โฆ
โฆ โฆ
JAVA Map CLASS ์ KEY / VALUE ํํ
32. Web Storage(3/2)
์ฃผ์ ์ฌํญ
Web Storage๋ WebDatabase์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณต๋๋ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ค.
์ด์ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ก webStorage์ ์ ๊ทผ ํด๋ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ ์ฌ์ ์๋ค.
Ex )
Web Storage DATA
firefox Chrome X
Browser Change
Firefox Filefox O
Browser maintain
Cookie ๋์ Web Storage ์ฌ์ฉ
์ฟ ํค๋ฐ์ดํฐ๊ฐ HTTP ํค๋ ์์ฒญ์ ํฌํจ๋์ด ์ด๋ ์๋ด์๊ฐ์ ๋์ ์ํฅ์ ๋ฏธ์น๋ค.
ํนํ XHR(xmlHttpRequest)์ด ๋ง์ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋์ฑ ๊ทธ๋ ๋ค.
๊ฐ์ฅ์ข์ ์ฌ๋ก๋ ์ฟ ํค์ ํฌ๊ธฐ๋ฅผ ์ค์ฌ ์ฃผ๋๊ฒ์ด์ง๋ง HTML5์์๋ Web Storage๋ฅผ ์ฌ์ฉํ๋ค.
33. Web Storage(3/3)
Web Storage vs. Cookie
โข ๊ธฐ๋ณธ ํฌ๊ธฐ๋ 5M byte(์ฟ ํค๋ 4K byte)
โข ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ง ์์(์ฟ ํค๋ ์์ฒญ ํค๋์ ์๋์ผ๋ก ํฌํจ)
โข ๋ง๋ฃ ๊ธฐ๊ฐ์ด ์์(์ฟ ํค๋ ๋ง๋ฃ๊ธฐ๊ฐ ์ง์ )
โข ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ์ ์์(์ฟ ํค๋ ๋ฌธ์์ด๋ง ์ ์ฅ)
Local Storage
โข ๋๋ฉ์ธ๋ณ๋ก ๊ฐ๊ฐ ๋ณ๋๋ก ์์ฑ๋๋ ์ ์ฅ ์์ญ
โข ๋ค๋ฅธ ๋๋ฉ์ธ์์๋ ์ ๊ทผ ๋ถ๊ฐ๋ฅ
Session Storage
โข ๋ธ๋ผ์ฐ์ (window ๊ฐ์ฒด)์ ๊ฐ์ ์์กด ๊ธฐ๊ฐ์ ๊ฐ์ง๋ ์ ์ฅ ์์ญ
โข ๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ๋ฉด ์ธ์
์คํ ๋ฆฌ์ง ์ ๋ณด๋ ์ฌ๋ผ์ง
โข ๊ฐ๊ฐ์ ๋ธ๋ผ์ฐ์ ๊ฐ ๊ฐ์ ๋๋ฉ์ธ์ ์ ์ํ๋๋ผ๋ ์ธ์
์คํ ๋ฆฌ์ง๋ ๊ฐ๊ฐ ์์ฑ
โข ๋ธ๋ผ์ฐ์ ์ ๊ธฐ๋ฅ(์ ์ฐฝ, ์ ํญ ๋ฑ)์ ์ด์ฉํ์ฌ ์๋กญ๊ฒ ์ฐฝ์ ์ด์์ ๊ฒฝ์ฐ์๋ ์ธ
์
์คํ ๋ฆฌ์ง์ ๊ฐ์ด ๋ณต์ฌ๋๋ฉฐ ์ดํ์ ์์ ๋ ๋ด์ฉ์ ๊ฐ๊ฐ์ ์ฐฝ๋ง๋ค ๋ฐ๋ก ๊ด๋ฆฌ
โข ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ฒ๋ผ ๋๋ฉ์ธ๋ณ๋ก ๊ฐ๊ฐ ๋ณ๋๋ก ์ ์ฅ ์์ญ์ด ์์ฑ๋๋ฏ๋ก ๋์ผ ๋ธ
๋ผ์ฐ์ ์ฐฝ์ด๋ผ๊ณ ํด๋ ๋๋ฉ์ธ์ด ๋ค๋ฅด๋ฉด ์ ๊ทผ ๋ถ๊ฐ
34. Web Database (1/2)
HTML5์ ํจ๊ป ์๋ก ์๊ฒจ๋จ
๋ธ๋ผ์ฐ์ ์ ๋ด์ฅ(embedded) ๋์ด์๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋๋ฉ์ธ๋ณ๋ก ๊ฐ๊ฐ ๋ณ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณต๊ฐ์ด ์์ฑ
ํ์ฌ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๊ฐ SQLite๋ฅผ ์ฌ์ฉ
Web Database 2๊ฐ์ง ์ฌ์ฉ๋ฐฉ๋ฒ
1. ๋๊ธฐ ๋ฐฉ์
2. ๋น๋๊ธฐ ๋ฐฉ์
๋น๋๊ธฐ ๋ฐฉ์ ๋๊ธฐ๋ฐฉ์
Worker ์์๋ง ์ฌ์ฉ๊ฐ๋ฅ
openDatabase(name, version, openDatabaseSync(name, version,
displayname, estmatedSize, displayname, estmatedSize,
creationCallback) creationCallback)
SQL ๋ฌธ์ ํ์ค DDL, DCL, DML ์ ์ฌ์ฉํ๋ค.
(preparedStatement Class)
35. Web Database (2/2)
ํน์ง
โข Web database ์ฌ์ฉํ๋ ๋๋ถ๋ถ์ ์ฌ๋ก๊ฐ ๋น๋๊ธฐ API ๋ฐฉ์์ ์ฌ์ฉ
โข ๋น๋๊ธฐ API๋ non-blocking ๋ฐฉ์
โข Return ๊ฐ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ป์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์ ์๋ callback ํจ์์ ์ ํ์
โข HTML์ ํตํ transaction ์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์์ SQL ์คํ ๋ถ๊ฐ๋ฅ
Transaction ๋ถ๋ฅ
โข ์ฝ๊ธฐ/์ฐ๊ธฐ (Transaction)
โข ์ฝ๊ธฐ ์ ์ฉ (readTransaction)
์ฃผ์์
โข ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ๋ ์ ์ฒด ๋ฐ์ดํฐ ๋ฒ ์ด์ค๊ฐ ์ ๊น
36. Indexed DB
Indexed Database API๋ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ ์ฅ์์ด๋ค.
์ด๋ Web Storage, Web Database์ ํจ๊ป ์จ/์คํ๋ผ์ธ ์ํ์์ ์ฌ์ฉ ํ ์ ์๋
Client-side database ์ด๋ค.
ํน์ง
โข Web database์ ๋นํด Indexed DB๋ ์คํฌ๋ฆฝํธ๋ฆ ์ด์ํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ๋ค๋ฃจ
๊ธฐ์ ์ต์ ํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณต
โข ์๊ณ ๋ฆฌ์ฆ ๋ฐฉ์์ ์
/์ถ๋ ฅ์ ์ง์
โข ๋น๋๊ธฐ/๋๊ธฐ API ์ง์
โข ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS) ํ์์ผ๋ก ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ค๊ณ ํ ์ ์๋ค.
38. Data Messaging API
1. Communication API
1. Message Event
2. Cross Document Messaging
3. Channel Message
2. Server Sent Event
3. WEB Socket
39. Communication API โ Message Event
MessageEvent ๋ ๋์ง์ ๊ฐ์ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์์ง๋ฅผ ๋งํ๋ค.
Communication API์ ๊ธฐ๋ณธ์ด ๋๋ค.
๋ฉ์์ง ์ก์
โข postMessage(data, [ports], targetOrigin) ๋ฉ์๋๋ฅผ ์ด์ฉ
- data : ์ก์ ํ ๋ฉ์์ง(์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด)
- ports : ์ฑ๋ ๋ฉ์์ง ์ ์ก ์ ๊ณต์ ํ ํฌํธ๋ฐฐ์ด(์๋ต ๊ฐ๋ฅ)
- targetOrigin : ์์ ์ฒ์ ๋๋ฉ์ธ
๋ฉ์์ง ์์
โข ๋ฉ์์ง ์์ ์ ๋ฐ์ํ๋ message ์ด๋ฒคํธ๋ฅผ ์ด์ฉ
โข ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์์ ์ธ์๋ก ๋์ด์ค๋ MessageEvent ๊ฐ์ฒด์ ์์ฑ์ ์ด์ฉํ
์ฌ ๋ฉ์์ง ์์
๋ฉ์์ง ์ก์์ ์ฃผ์ฒด
โข ํต์ ์ข
๋ฅ๋ณ postMessage() ๋ฉ์๋์ message ์ด๋ฒคํธ ๋ฐ์
-Cross document : window ๊ฐ์ฒด
- Channel : MessagePort ๊ฐ์ฒด
-Web Workers : Worker ๊ฐ์ฒด
- Server-Sent Events : EventSource ๊ฐ์ฒด
40. Communication API โ Cross Document Messaging
Many to Many ๋ฉ์์ง ํต์ ์ ์คํํ๊ธฐ ์ํ API
ํน์ง
โข ๋์ด์์ ์นํ์ด์ง๊ฐ ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
โข Same origin policy(๋์ผ ์ถ์ฒ ์ ์ฑ
)์ด ์ ์ฉ๋์ง ์์ ๋๋ฉ์ธ ๊ฐ ํต์ ์ด ๊ฐ
โข non-blocking ๋ฐฉ์์ผ๋ก callback Method๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉ์์ง ์ ๋ฌ
โข๋ฉ์์ง ์ก์
-์์ ๋์ window์ postMessage() ๋ฉ์๋ ์ด์ฉ
โข๋ฉ์์ง ์์
-์์ ์ window์ message ์ด๋ฒคํธ ์ฒ๋ฆฌ
์ฃผ์
โข ๋ค๋ฅธ ๋๋ฉ์ธ๊ฐ์ ํต์ ์ด ๊ฐ๋ฅ ํ๊ธฐ ๋๋ฌธ์ ๋ณด์ ์ค์.
โข origin ์์ฑ์ ์ฌ์ฉํ์ฌ ํ์ธ ๋ณด์ ํ์ธ ๊ฐ๋ฅ
โข๋ฉ์์ง ์ก์ ์ ๋ค๋ฅธ ๋๋ฉ์ธ์ผ๋ก์ ๋ฉ์์ง ์ ์ก์ ๋ง๊ธฐ ์ํด postMessage()์ targetOrigin ๊ฐ์ ์์
์ฒ ๋๋ฉ์ธ์ผ๋ก ์ง์
โข๋ค๋ฅธ ๋๋ฉ์ธ์์ ๋ถ์ ์ ํ ๋ฉ์์ง๋ฅผ ๋ณด๋ผ ๊ฒฝ์ฐ์ ๋๋นํด MessageEvent์ origin ์์ฑ์ผ๋ก ์ก์ ์ฒ ๋
๋ฉ์ธ์ ํ์ธ ํ ๋ฉ์์ง ์์
41. Communication API โ Channel Messaging
Many to Many ๋ฉ์์ง ํต์ ์ ์คํํ๊ธฐ ์ํ API
ํน์ง
โข MessageChannel ์ด๋ผ๋ channel์ ์ด์ฉํ์ฌ Message ๋ฅผ ์ก์์
โข ์ถ์
๊ตฌ๊ฐ ๋๋ Channel์๋ ๋๊ฐ์ Port๊ฐ ์๋ค. (port1, port2)
โข Port1์ ์์ ๋ ๋ฉ์์ง๋ Port2๋ก,
โข Port2์ ์์ ๋ ๋ฉ์์ง๋ Port1์ผ๋ก ์ ๋ฌ๋จ
42. Server Sent Event
ํน์ง
โข ์ฌ๋ฌ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ํด์ผ ํ๋ ์น ์๋ฒ์ ํน์ง์ ๋ค์์ ํด๋ผ์ด์ธํธ ์ ๋ณด๋ฅผ ์ ์งํ๊ธฐ
์ ์๋ฒ์ ์์์ด ๋๋ฌด ๋ง์ด ์๋ชจ๋๋ฏ๋ก ์น ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ๋ฐ์ํ๋ฉด ์๋ต์
ํ ํ ํด๋ผ์ด์ธํธ์์ ์ฐ๊ฒฐ์ ์ข
๋ฃํจ
โข ์๋ฒ๋ ์ ์ํ ํด๋ผ์ด์ธํธ์์ ์ปค๋ฅ์
์ ์ ์งํ์ง ์์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ๊ธฐ ์
์๋ ์๋ต์ ํ ์ ์์
โข ์๋ฒ๋ก๋ถํฐ์ push ์๋น์ค๋ ๋ถ๊ฐ๋ฅ
์๋ฒ์ push ์๋น์ค ๋์ ๊ธฐ์ ๋ค
โข hidden frame
- hidden frame์ ์ด์ฉํ์ฌ ์ฃผ๊ธฐ์ ์ผ๋ก polling
- ๋ถํ์ํ ์์ฒญ ๋ฐ์
โข Ajax
- XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ์ฃผ๊ธฐ์ ์ผ๋ก polling
- ๋ถํ์ํ ์์ฒญ ๋ฐ์
โข Comet
- XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๊ณ ์๋ฒ์์๋ ๋ฐ๋ก ์๋ตํ์ง
์๊ณ ์ปค๋ฅ์
์ ์ ์งํ๋ค๊ฐ ์๋ฒ์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์๋ตํ๋ ๋ฐฉ์(long-polling)
- ๋ธ๋ผ์ฐ์ ๋ ์๋ฒ์ ์๋ต์ ์ฒ๋ฆฌํ ํ ๋ฐ๋ก ์ฌ์์ฒญ
- ์๋ฒ์ ์ด๋ฒคํธ ๋ฐ์ ์ ๊ณง๋ฐ๋ก ์๋ต์ ๋ฐ์ ์ ์์ผ๋ฏ๋ก ์ค์๊ฐ push ์๋น์ค์ ๊ฐ์ฅ
๊ทผ์ ํ ๋ฐฉ์
44. Geolocation API
๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์ฉ์์ ์ง๋ฆฌ์ ์์น๋ฅผ ์ฐพ์๋ด๊ณ ๊ทธ ์ ๋ณด๋ฅผ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ด์ฉ
ํ ์ ์๋๋ก ํ๋ ๊ธฐ๋ฅ
ํน์ง
โข์ฌ์ฉ์์ ์์น์ ๋ณด๋ฅผ ์ด์ฉํ๊ธฐ ์ํด ์น์ธ ์ ์ฐจ๋ฅผ ๊ฑฐ์ฒ์ผ ํจ.
โข์ง์คํํน ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์๊ณ ๊ทผ์ฒ์์ ์ดฌ์๋ ์ฌ์ง ์ ๋ณด๋ฅผ ์ ๊ธฐ์ ์ผ๋ก ์ฐ๊ฒฐ ํ
์ฌ ์๋น์ค ํ ์ ์๋ค.
โข์ฌ์ฉ์์ ์์น๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค callback๋ฉ์๋๋ก ์ ๋ฌ๋์ด ํญ์ ์ต์ ์์น ์ ๋ณด๋ฅผ
์ ์ง ํ ์ ์๋ค.
โขGPS ์ ๋ณด๋ฅผ ํ์ฉ ํ ์ ์๋ค.
โข์ง๋ฆฌ์ ๋ณด๋ฅผ ์์ ํ๋ ๊ธฐ๊ธฐ์ ํ๊ฒฝ์ ๋ฐ๋ผ ๊ณ ๋์ ๋ฐฉํฅ์ ๋ณด ๋ ์ป์์ ์๋ค.
45. Worker / Notifications (1/2)
Worker
1. ๋ธ๋ผ์ฐ์ ์ ์ค๋ ๋
โข ๊ธฐ๋ณธ์ ์ผ๋ก ์น ํ์ด์ง๋ ํ๋์ ์ค๋ ๋๋ก ์ฒ๋ฆฌ
โข ์ฒ๋ฆฌ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์คํฌ๋ฆฝํธ์ ์คํ ๋์์๋ UI(DOM, ์ฌ์ฉ
์ ์ด๋ฒคํธ ์ฒ๋ฆฌ) ์์
์ ์ฒ๋ฆฌํ ์ ์์
2. Worker
โข ๋ฉ์ธ ์ค๋ ๋(UI)์ ๋
๋ฆฝ๋์ด ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ก ์ฒ๋ฆฌ๋๋ ์คํฌ
๋ฆฝํธ
โข ์ฒ๋ฆฌ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ์์
์ ์ฌ์ฉํ๋ฉด ๋ฉ์ธ ์ค๋ ๋์ ๊ฐ์ด ๋ณํ
ํ์ฌ ๋์
โข ์์ปค๋ฅผ ์ด์ฉํ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ ๋ฉํฐ ์ฝ์ด์์ ์ต์ ํ๋ ์ฑ๋ฅ์ ๋ฐํ
โข UI ์ฒ๋ฆฌ์ ๋น์ฆ๋์ค ๋ก์ง์ ๋ถ๋ฆฌ
3. Worker์ ์ข
๋ฅ
โข ์ ์ฉ(dedicated) ์์ปค
- ์์ปค ๊ฐ์ฒด์ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๊ฐ ์ผ๋์ผ๋ก ๋์
โข ๊ณต์ (shared) ์์ปค
- ๋ค์์ ์์ปค ๊ฐ์ฒด์ ์ํด ๊ณต์ ๋๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค(๋ฐ์ด
ํฐ ๊ณต์ )
46. Worker / Notifications(2/2)
Notifications
ํฌ๋กฌ์ ๋
์์ ์ธ ์๋ฆผ์๋จ.
๋ธ๋ผ์ฐ์ ์ ํญ ๋๋ ์๋์ ํ์ฑํ ์ฌ๋ถ์ ์๊ด ์์ด ๋์ ํ๋ค.