SlideShare a Scribd company logo
SIGONG media
์Šค๋งˆํŠธ ์—ฐ๊ตฌ์†Œ
์•ˆ ์ƒ ๊ธธ ๋Œ€ ๋ฆฌ
2012 . 07 . 10
๋ชฉ์ฐจ

1.   HTML5 ?
2.   HTML5 ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ โ€“ [new form Element]
3.   Offline web development
4.   Data messaging API
5.   Multi thread and Location API
1. HTML5?
์›น ๋ธŒ๋ผ์šฐ์ € ์ ์œ ์œจ(์œ ๋Ÿฝ)
์›น ๋ธŒ๋ผ์šฐ์ € ์ ์œ ์œจ(๊ตญ๋‚ด)
์›น ๋ธŒ๋ผ์šฐ์ €๋ณ„ HTML5 ์ง€์› ์—ฌ๋ถ€

CSS3 + HTML + JavaScript + Etc




 JavaScript




                   ์ถœ์ฒ˜: http://caniuse.com
์›น ๋ธŒ๋ผ์šฐ์ €๋ณ„ HTML5 ์ง€์› ์—ฌ๋ถ€ โ€“ ์ ์ˆ˜ 500์  ๋งŒ์ 




               ์ถœ์ฒ˜: http://html5test.com
๊ฐœ๋ฐœ ํ™˜๊ฒฝ(ํ•„์š” ์œ ํ‹ธ๋ฆฌํ‹ฐ)

 โ€ข ๋ธŒ๋ผ์šฐ์ €
    โ€ข 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)
๋ฌธ์„œ ์„ ์–ธ ์˜ˆ์ œ


<!DOCTYPE html>
<html lang=โ€œkoโ€>
<head>
<title>HTML ์„ ์–ธ</title>
<meta charset=โ€œutf-8โ€>
</head>
<body>

</body>
</html>
2. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ
์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ




 1.   Canvas
 2.   Video
 3.   Form ์š”์†Œ
 4.   ๋“œ๋ž˜๊ทธ & ๋“œ๋กญ
 5.   ํŒŒ์ผ API
Canvas
 ๊ทธ๋ž˜ํ”ฝ(2D/3D)์„ ์ž์œ ๋กญ๊ฒŒ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋Š” ์˜์—ญ
Video
 ๊ทธ๋ž˜ํ”ฝ(2D/3D)์„ ์ž์œ ๋กญ๊ฒŒ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋Š” ์˜์—ญ




  ์ปจํ…Œ์ด๋„ˆ   ๋น„๋””์˜ค ์ฝ”๋ฑ    ์˜ค๋””์˜ค ์ฝ”๋ฑ

  MP4    H.264     AAC

  WebM   VP8       Vorbis

  Ogg    Theora    Vorbis
<input> ์š”์†Œ์˜ ์ƒˆ๋กœ์šด ์†์„ฑ ๊ฐ’

 1. number
     โ€ข ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ
     โ€ข min, max, step ์†์„ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 2. range
      โ€ข ์ผ์ • ๋ฒ”์œ„์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ
      โ€ข min, max, step ์†์„ฑ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 3. color
      โ€ข ์ƒ‰์ƒ์„ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•œ ํ•„๋“œ
๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ <input> ์š”์†Œ

 File
     1. multiple ์†์„ฑ ์ถ”๊ฐ€
        - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ ์„ ํƒ ๊ฐ€๋Šฅ
     2. accept ์†์„ฑ ์ถ”๊ฐ€
        - ์ง€์ •ํ•œ MIME ํƒ€์ž…์˜ ํŒŒ์ผ๋งŒ ์„ ํƒ ๊ฐ€๋Šฅ
        - image/*, video/*, audio/* ํ˜•ํƒœ๋„ ๊ฐ€๋Šฅ
     3. files ์†์„ฑ ์ถ”๊ฐ€
        - ํŒŒ์ผ์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ™•์ธ
๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ <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>
์ƒˆ๋กœ์šด ์ž…๋ ฅ ์š”์†Œ

 <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๋Š” ๋กœ์ปฌ์— ์ €์žฅ๋˜์–ด ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ์ƒ์„ฑ๊ณผ ๊ฐ™์ด ๋‹ค
    ์–‘ํ•œ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
์ƒˆ๋กœ์šด ์ž…๋ ฅ ์š”์†Œ

 <progress>
    1. ์ง„ํ–‰์ค‘์ธ ์ž‘์—…์˜ ์‹œ๊ฐ์ ์ธ ํšจ๊ณผ๋ฅผ ์œ„ํ•œ ์š”์†Œ
    2. ์†์„ฑ
         - value : ์™„๋ฃŒ๋œ ์ž‘์—…๋Ÿ‰(0.0 ~ 1.0)
         - max : ์ „์ฒด ์ž‘์—…๋Ÿ‰(0.0 ~ 1.0 ๊ธฐ๋ณธ์€ 1.0)
    3. ์š”์†Œ ์‚ฌ์ด์— ๊ธฐ์ˆ ํ•œ ๊ฐ’์€ progress๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฒ˜๋ฆฌ
    4. position ์†์„ฑ์—๋Š” ๋ฐฑ๋ถ„์œจ ๊ฐ’์ด ์žˆ์Œ(value/max)
์ƒˆ๋กœ์šด ์ž…๋ ฅ ์š”์†Œ

 <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>
์ž…๋ ฅ ๊ฐ’ ๊ฒ€์ฆ

 ์ž…๋ ฅ ๊ฐ’ ๊ฒ€์ฆ์šฉ ์†์„ฑ
   โ€ข ํผ์„ ์ œ์ถœํ•  ๋•Œ ์ž๋™์œผ๋กœ ์ž…๋ ฅ ๊ฐ’ ๊ฒ€์ฆ
   โ€ข ์ž…๋ ฅ ๊ฐ’ ๊ฒ€์ฆ์— ์‹คํŒจํ•  ๊ฒฝ์šฐ ํผ ์ „์†ก์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์Œ
   โ€ข ์ž…๋ ฅ ๊ฐ’ ๊ฒ€์ฆ์šฉ ์†์„ฑ
      - required : ํ•„์ˆ˜ ์ž…๋ ฅ
      - pattern : ์ •๊ทœํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ๊ฐ’ ํŒจํ„ด ์ง€์ •
      - maxLength : ์ตœ๋Œ€ ์ž…๋ ฅ ๊ฐ€๋Šฅ ๋ฌธ์ž ์ˆ˜
      - min, max : ์ˆซ์ž/๋‚ ์งœ ํ˜•์‹ ํ•„๋“œ์˜ ์ตœ์†Œ๊ฐ’๊ณผ ์ตœ๋Œ€๊ฐ’์„ ์ง€์ •
      - step : ์ˆซ์ž/๋‚ ์งœ ํ˜•์‹ ํ•„๋“œ์˜ ์ฆ๊ฐ ๋‹จ์œ„๋ฅผ ์ง€์ •
์ž…๋ ฅ ๊ฒ€์ฆ ๊ฐ’ ์˜ˆ์ œ

 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" />
์ž๋™ ์™„์„ฑ ๊ธฐ๋Šฅ ์ œ์–ด


 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>
์ž…๋ ฅ ์š”์†Œ์˜ ๊ณตํ†ต ์†์„ฑ


 1. placeholder ์†์„ฑ
      โ€ข ์ž…๋ ฅ ํ•„๋“œ๊ฐ€ ๋น„์–ด์žˆ์„ ๋•Œ ๋ณด์—ฌ์ค„ ๊ฐ„๋‹จํ•œ ๋ฌธ์ž์—ด ์ง€์ •

 2. autofocus ์†์„ฑ
      โ€ข ํŽ˜์ด์ง€ ๋กœ๋”ฉ ํ›„ ์ตœ์ดˆ ํฌ์ปค์Šค ์ง€์ •
์ƒˆ๋กœ์šด ์ด๋ฒคํŠธ


 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/>
File




 Javascript ์—์„œ โ€ฆ ๋˜์–ด ์žˆ์—ˆ์œผ๋‚˜ File interface ๋Š” Browser ๊ฐ€ ๋ง‰ ๊ฑด๋“œ๋ฆด ์ˆ˜์žˆ๋Š” ๊ฒƒ
 ์ด ์•„๋‹ˆ๋ผ File ์„ ํƒ Form ์ด๋‚˜ Drag & Drop ์„ ํ†ตํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์„ ํƒํ•œ File์—
 ํ•œ์ •๋˜๋ฏ€๋กœ ์•ˆ์‹ฌํ•ด๋„ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
http://slides.html5rocks.com
3. Offline web development
Offline web development

 1.   Application Cache
 2.   Web storage
 3.   Web Database
 4.   Indexed DB



 โ€ข    ์˜คํ”„๋ผ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
      โ€ข ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์•„๋„ ๋™์ž‘ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

 โ€ข    ์˜คํ”„๋ผ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ด์ 
      โ€ข ์Šค๋งˆํŠธํฐ์ด๋‚˜ ๋„ท๋ถ ๋“ฑ์˜ ๋ชจ๋ฐ”์ผ ๋‹จ๋ง๊ธฐ์—์„œ ๋„คํŠธ์›Œํฌ ์ƒํƒœ์™€
        ์ƒ๊ด€์—†์ด ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ
      โ€ข ํด๋ผ์ด์–ธํŠธ์— ์บ์‹œ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์‘๋‹ต์„ฑ์ด ์ข‹์Œ
      โ€ข ๋„คํŠธ์›Œํฌ ์ ‘์†์ด ์ค„์–ด๋“ค์–ด ์ „์› ๊ด€๋ฆฌ์— ์œ ๋ฆฌ
      โ€ข ์„œ๋ฒ„์˜ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์ด ์ค„์–ด๋“ฌ
Application Cache(2/1)

 โ€ข   ์˜คํ”„๋ผ์ธ ๋ธŒ๋ผ์šฐ์ง• โ€“ ์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ
 โ€ข   ์†๋„ํ–ฅ์ƒ โ€“ ๋กœ์ปฌ์˜์—ญ์— ์ €์žฅ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋งค์šฐ๋น ๋ฅธ ์†๋„๋กœ ๋กœ๋“œ
 โ€ข   ์„œ๋ฒ„๋ถ€ํ•˜๊ฐ์†Œ โ€“ ๋ธŒ๋ผ์šฐ์ €๋Š” ์˜ค์ง ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ์—๋งŒ ๋‹ค์šด๋กœ
     ๋“œ๋ฅผ ์‹œ๋„ํ•œ๋‹ค.

๊ธฐ์กด ๋ธŒ๋ผ์šฐ์ € ์บ์‹ฑ ๊ฐœ๋…๊ณผ ๋‹ค๋ฅธ์ 
 ๊ธฐ์กด ๋ธŒ๋ผ์šฐ์ €์™€ ๊ฐ™์ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฏธ์ง€ ๋ฐ ํ…์ŠคํŠธ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์˜ OOO์— ์˜ํ•ด ์บ์‹ฑ๋˜๋Š”๊ฒƒ์ด
 ์•„๋‹Œ ๊ฐœ๋ฐœ์ž์— ์˜ํ•ด ์ •์˜๋œ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋™์ž‘ํ•œ๋‹ค.



  CACHE MANIFEST

  #version : 2012.07.09.04

  CACHE :                    โ€ข๋ช…์‹œ์ ์œผ๋กœ ์บ์‹œ์‹œํ‚ฌ ํ•ญ๋ชฉ์„ ์ •์˜ํ•œ๋‹ค.
                             โ€ขCache ๋˜์ง€ ์•Š๊ณ  ๋งค๋ฒˆ ๋„คํŠธ์›Œํฌ
  NETWORK :
                             ์ƒ์—์„œ ๋‹ค์šด๋ฐ›์•„ ์‚ฌ์šฉํ•  ๋ชฉ๋ก
  FALLBACK :                 โ€ขOffline ์ƒํƒœ์—์„œ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์„ ๋•Œ
                             ์ด๋ฅผ ๋Œ€์‹ ํ•  ๋ฆฌ์†Œ์Šค๋ฅผ ์ง€์ •ํ•œ๋‹ค.
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>
Web Storage(3/1)
 ์ผ์ข…์˜ ํด๋ฆฌ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์ด๋ฉฐ, ์ด ๋ฐ์ดํ„ฐ ๋Š” ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ๊ฐ
 ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ณด๊ด€๋œ๋‹ค. ์‚ฌ์šฉ์‹œ Key Value ํ˜•ํƒœ๋กœ ์ €์žฅ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ,
 ๋ณ„๋„์˜ ์ฟผ๋ฆฌ๋ฌธ๋ฒ•์ด๋‚˜ ๋ณต์žกํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ดํ•ดํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

ํŠน์ง•
 Localstorage ์™€ Sessionstorage๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

 ์ด ๋‘˜์˜ ์ฐจ์ด์ ์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์™„์ „ํžˆ ์ข…๋ฃŒ๋˜๊ณ  ๋‚œ ํ›„์—๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€ ๋˜๋Š”๊ฐ€?์˜ ์ฐจ์ด๋‹ค.

             KEY                          VALUE
             age                             30
            name                        Hong kil dong
              โ€ฆ                              โ€ฆ
              โ€ฆ                              โ€ฆ
              โ€ฆ                              โ€ฆ

  JAVA Map CLASS ์˜ KEY / VALUE ํ˜•ํƒœ
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๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
Web Storage(3/3)
Web Storage vs. Cookie
 โ€ข   ๊ธฐ๋ณธ ํฌ๊ธฐ๋Š” 5M byte(์ฟ ํ‚ค๋Š” 4K byte)
 โ€ข   ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š์Œ(์ฟ ํ‚ค๋Š” ์š”์ฒญ ํ—ค๋”์— ์ž๋™์œผ๋กœ ํฌํ•จ)
 โ€ข   ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์ด ์—†์Œ(์ฟ ํ‚ค๋Š” ๋งŒ๋ฃŒ๊ธฐ๊ฐ„ ์ง€์ •)
 โ€ข   ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Œ(์ฟ ํ‚ค๋Š” ๋ฌธ์ž์—ด๋งŒ ์ €์žฅ)

Local Storage
 โ€ข   ๋„๋ฉ”์ธ๋ณ„๋กœ ๊ฐ๊ฐ ๋ณ„๋„๋กœ ์ƒ์„ฑ๋˜๋Š” ์ €์žฅ ์˜์—ญ
 โ€ข   ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์—์„œ๋Š” ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ

Session Storage
 โ€ข   ๋ธŒ๋ผ์šฐ์ €(window ๊ฐ์ฒด)์™€ ๊ฐ™์€ ์ƒ์กด ๊ธฐ๊ฐ„์„ ๊ฐ€์ง€๋Š” ์ €์žฅ ์˜์—ญ
 โ€ข   ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ซํžˆ๋ฉด ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ ์ •๋ณด๋„ ์‚ฌ๋ผ์ง
 โ€ข   ๊ฐ๊ฐ์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ™์€ ๋„๋ฉ”์ธ์— ์ ‘์†ํ•˜๋”๋ผ๋„ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋Š” ๊ฐ๊ฐ ์ƒ์„ฑ
 โ€ข   ๋ธŒ๋ผ์šฐ์ €์˜ ๊ธฐ๋Šฅ(์ƒˆ ์ฐฝ, ์ƒˆ ํƒญ ๋“ฑ)์„ ์ด์šฉํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ์ฐฝ์„ ์—ด์—ˆ์„ ๊ฒฝ์šฐ์—๋Š” ์„ธ
     ์…˜ ์Šคํ† ๋ฆฌ์ง€์˜ ๊ฐ’์ด ๋ณต์‚ฌ๋˜๋ฉฐ ์ดํ›„์— ์ˆ˜์ •๋œ ๋‚ด์šฉ์€ ๊ฐ๊ฐ์˜ ์ฐฝ๋งˆ๋‹ค ๋”ฐ๋กœ ๊ด€๋ฆฌ
 โ€ข   ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์ฒ˜๋Ÿผ ๋„๋ฉ”์ธ๋ณ„๋กœ ๊ฐ๊ฐ ๋ณ„๋„๋กœ ์ €์žฅ ์˜์—ญ์ด ์ƒ์„ฑ๋˜๋ฏ€๋กœ ๋™์ผ ๋ธŒ
     ๋ผ์šฐ์ € ์ฐฝ์ด๋ผ๊ณ  ํ•ด๋„ ๋„๋ฉ”์ธ์ด ๋‹ค๋ฅด๋ฉด ์ ‘๊ทผ ๋ถˆ๊ฐ€
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)
Web Database (2/2)
ํŠน์ง•
 โ€ข   Web database ์‚ฌ์šฉํ•˜๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋ก€๊ฐ€ ๋น„๋™๊ธฐ API ๋ฐฉ์‹์„ ์‚ฌ์šฉ
 โ€ข   ๋น„๋™๊ธฐ API๋Š” non-blocking ๋ฐฉ์‹
 โ€ข   Return ๊ฐ’์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์˜๋œ callback ํ•จ์ˆ˜์ •์˜ ํ•„์š”
 โ€ข   HTML์„ ํ†ตํ•œ transaction ์ด๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ถ€์—์„œ SQL ์‹คํ–‰ ๋ถˆ๊ฐ€๋Šฅ


Transaction ๋ถ„๋ฅ˜
 โ€ข   ์ฝ๊ธฐ/์“ฐ๊ธฐ (Transaction)
 โ€ข   ์ฝ๊ธฐ ์ „์šฉ (readTransaction)




์ฃผ์˜์ 
 โ€ข   ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ ๋•Œ ์ „์ฒด ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๊ฐ€ ์ž ๊น€
Indexed DB
 Indexed Database API๋Š” ๊ตฌ์กฐ์  ๋ฐ์ดํ„ฐ ์žฅ์†Œ์ด๋‹ค.
 ์ด๋Š” Web Storage, Web Database์™€ ํ•จ๊ป˜ ์˜จ/์˜คํ”„๋ผ์ธ ์ƒํƒœ์—์„œ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋Š”
 Client-side database ์ด๋‹ค.

ํŠน์ง•
 โ€ข   Web database์— ๋น„ํ•ด Indexed DB๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฆ‰ ์ด์š”ํ•œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃจ
     ๊ธฐ์— ์ตœ์ ํ™”๋œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต
 โ€ข   ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฉ์‹์˜ ์ž…/์ถœ๋ ฅ์„ ์ง€์›
 โ€ข   ๋น„๋™๊ธฐ/๋™๊ธฐ API ์ง€์›
 โ€ข   ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS) ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์„ค๊ณ„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
4. Data messaging API
Data Messaging API

 1. Communication API
     1. Message Event
     2. Cross Document Messaging
     3. Channel Message
 2. Server Sent Event
 3. WEB Socket
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 ๊ฐ์ฒด
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 ์†์„ฑ์œผ๋กœ ์†ก์‹ ์ฒ˜ ๋„
     ๋ฉ”์ธ์„ ํ™•์ธ ํ›„ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ 
Communication API โ€“ Channel Messaging
 Many to Many ๋ฉ”์‹œ์ง€ ํ†ต์‹ ์„ ์‹คํ˜„ํ•˜๊ธฐ ์œ„ํ•œ API

ํŠน์ง•
 โ€ข   MessageChannel ์ด๋ผ๋Š” channel์„ ์ด์šฉํ•˜์—ฌ Message ๋ฅผ ์†ก์ˆ˜์‹ 
 โ€ข   ์ถœ์ž…๊ตฌ๊ฐ€ ๋˜๋Š” Channel์—๋Š” ๋‘๊ฐœ์˜ Port๊ฐ€ ์žˆ๋‹ค. (port1, port2)
 โ€ข   Port1์— ์ˆ˜์‹ ๋œ ๋ฉ”์‹œ์ง€๋Š” Port2๋กœ,
 โ€ข   Port2์— ์ˆ˜์‹ ๋œ ๋ฉ”์‹œ์ง€๋Š” Port1์œผ๋กœ ์ „๋‹ฌ๋จ
Server Sent Event
ํŠน์ง•
โ€ข   ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ƒ๋Œ€ํ•ด์•ผ ํ•˜๋Š” ์›น ์„œ๋ฒ„์˜ ํŠน์ง•์ƒ ๋‹ค์ˆ˜์˜ ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๊ธฐ
    ์—” ์„œ๋ฒ„์˜ ์ž์›์ด ๋„ˆ๋ฌด ๋งŽ์ด ์†Œ๋ชจ๋˜๋ฏ€๋กœ ์›น ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด ์‘๋‹ต์„
    ํ•œ ํ›„ ํด๋ผ์ด์–ธํŠธ์™€์˜ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•จ

โ€ข   ์„œ๋ฒ„๋Š” ์ ‘์†ํ•œ ํด๋ผ์ด์–ธํŠธ์™€์˜ ์ปค๋„ฅ์…˜์„ ์œ ์ง€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•˜๊ธฐ ์ „
    ์—๋Š” ์‘๋‹ต์„ ํ•  ์ˆ˜ ์—†์Œ

โ€ข    ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ์˜ push ์„œ๋น„์Šค๋Š” ๋ถˆ๊ฐ€๋Šฅ
์„œ๋ฒ„์˜ push ์„œ๋น„์Šค ๋Œ€์•ˆ ๊ธฐ์ˆ ๋“ค
โ€ข hidden frame
      - hidden frame์„ ์ด์šฉํ•˜์—ฌ ์ฃผ๊ธฐ์ ์œผ๋กœ polling
      - ๋ถˆํ•„์š”ํ•œ ์š”์ฒญ ๋ฐœ์ƒ
โ€ข Ajax
    - XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฃผ๊ธฐ์ ์œผ๋กœ polling
      - ๋ถˆํ•„์š”ํ•œ ์š”์ฒญ ๋ฐœ์ƒ
โ€ข Comet
      - XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์„œ๋ฒ„์—์„œ๋Š” ๋ฐ”๋กœ ์‘๋‹ตํ•˜์ง€
      ์•Š๊ณ  ์ปค๋„ฅ์…˜์„ ์œ ์ง€ํ•˜๋‹ค๊ฐ€ ์„œ๋ฒ„์— ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‘๋‹ตํ•˜๋Š” ๋ฐฉ์‹(long-polling)
      - ๋ธŒ๋ผ์šฐ์ €๋Š” ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋ฐ”๋กœ ์žฌ์š”์ฒญ
      - ์„œ๋ฒ„์˜ ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ๊ณง๋ฐ”๋กœ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์‹ค์‹œ๊ฐ„ push ์„œ๋น„์Šค์™€ ๊ฐ€์žฅ
      ๊ทผ์ ‘ํ•œ ๋ฐฉ์‹
5. Multi thread
  and Location API
Geolocation API
 ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์ง€๋ฆฌ์  ์œ„์น˜๋ฅผ ์ฐพ์•„๋‚ด๊ณ  ๊ทธ ์ •๋ณด๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ด์šฉ
 ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ

ํŠน์ง•
 โ€ข์‚ฌ์šฉ์ž์˜ ์œ„์น˜์ •๋ณด๋ฅผ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์Šน์ธ ์ ˆ์ฐจ๋ฅผ ๊ฑฐ์ฒ˜์•ผ ํ•จ.
 โ€ข์ง€์˜คํƒœํ‚น ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๊ณ  ๊ทผ์ฒ˜์—์„œ ์ดฌ์˜๋œ ์‚ฌ์ง„ ์ •๋ณด๋ฅผ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ ํ•˜
 ์—ฌ ์„œ๋น„์Šค ํ•  ์ˆ˜ ์žˆ๋‹ค.
 โ€ข์‚ฌ์šฉ์ž์˜ ์œ„์น˜๊ฐ€ ๋ณ€๊ฒฝ๋ ๋•Œ๋งˆ๋‹ค callback๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌ๋˜์–ด ํ•ญ์ƒ ์ตœ์‹ ์œ„์น˜ ์ •๋ณด๋ฅผ
 ์œ ์ง€ ํ•  ์ˆ˜ ์žˆ๋‹ค.
 โ€ขGPS ์ •๋ณด๋ฅผ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 โ€ข์ง€๋ฆฌ์ •๋ณด๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ธฐ๊ธฐ์˜ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ๊ณ ๋„์™€ ๋ฐฉํ–ฅ์ •๋ณด ๋„ ์–ป์„์ˆ˜ ์žˆ๋‹ค.
Worker / Notifications (1/2)

 Worker
 1. ๋ธŒ๋ผ์šฐ์ €์˜ ์Šค๋ ˆ๋“œ
      โ€ข ๊ธฐ๋ณธ์ ์œผ๋กœ ์›น ํŽ˜์ด์ง€๋Š” ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋กœ ์ฒ˜๋ฆฌ
      โ€ข ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ์‹คํ–‰ ๋™์•ˆ์—๋Š” UI(DOM, ์‚ฌ์šฉ
      ์ž ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ) ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Œ

  2. Worker
      โ€ข ๋ฉ”์ธ ์Šค๋ ˆ๋“œ(UI)์™€ ๋…๋ฆฝ๋˜์–ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๋กœ ์ฒ˜๋ฆฌ๋˜๋Š” ์Šคํฌ
      ๋ฆฝํŠธ
      โ€ข ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ์ž‘์—…์— ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์™€ ๊ฐ™์ด ๋ณ‘ํ–‰
      ํ•˜์—ฌ ๋™์ž‘
      โ€ข ์›Œ์ปค๋ฅผ ์ด์šฉํ•œ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ๋Š” ๋ฉ€ํ‹ฐ ์ฝ”์–ด์—์„œ ์ตœ์ ํ™”๋œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜
      โ€ข UI ์ฒ˜๋ฆฌ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ๋ถ„๋ฆฌ

  3. Worker์˜ ์ข…๋ฅ˜
      โ€ข ์ „์šฉ(dedicated) ์›Œ์ปค
          - ์›Œ์ปค ๊ฐ์ฒด์™€ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ผ๋Œ€์ผ๋กœ ๋Œ€์‘
      โ€ข ๊ณต์œ (shared) ์›Œ์ปค
          - ๋‹ค์ˆ˜์˜ ์›Œ์ปค ๊ฐ์ฒด์— ์˜ํ•ด ๊ณต์œ ๋˜๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ํ”„๋กœ์„ธ์Šค(๋ฐ์ด
          ํ„ฐ ๊ณต์œ )
Worker / Notifications(2/2)

 Notifications
  ํฌ๋กฌ์˜ ๋…์ž์ ์ธ ์•Œ๋ฆผ์ˆ˜๋‹จ.
  ๋ธŒ๋ผ์šฐ์ €์˜ ํƒญ ๋˜๋Š” ์œˆ๋„์˜ ํ™œ์„ฑํ™” ์—ฌ๋ถ€์— ์ƒ๊ด€ ์—†์ด ๋™์ž‘ ํ•œ๋‹ค.
Thank You.

More Related Content

What's hot (20)

PPTX
Servlet&jsp 1แ„Œแ…กแ†ผ
JeongBong Kim
ย 
PPT
์ž๋ฐ”์•ผ ๋†€์ž PPT
JinKyoungHeo
ย 
PDF
Handlebars
Han Jung Hyun
ย 
PPTX
Node.js DBMS short summary
HoChul Shin
ย 
PPTX
Json view ์˜ˆ์ œ ์„ค๋ช…
Hyung Eun Jin
ย 
PPTX
Web Components 101 polymer & brick
yongwoo Jeon
ย 
PPTX
7. html5 api
์€์‹ฌ ๊ฐ•
ย 
PDF
Web server page_ed10
hungrok
ย 
PPTX
5-1. html5 graphics
JinKyoungHeo
ย 
PDF
Express ํ”„๋ ˆ์ž„์›Œํฌ
Choonghyun Yang
ย 
PDF
๋ง‰ํ•˜๋Š” ์Šคํ„ฐ๋”” ์ฒซ ๋ฒˆ์งธ ๋งŒ๋‚จ Node.js
์—ฐ์›… ์กฐ
ย 
PDF
JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ #05 HTML๊ณผ JSP
Myungjin Lee
ย 
PDF
[APM] Homepage bbs
Kim Heejin
ย 
PPTX
Mongo db ์ตœ๋ฒ”๊ท 
beom kyun choi
ย 
PDF
JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ #04 JSP ์˜ ๊ธฐ๋ณธ
Myungjin Lee
ย 
PPTX
Hacosa jquery 1th
Seong Bong Ji
ย 
PDF
Express framework tutorial
์šฐ๋ฆผ ๋ฅ˜
ย 
PDF
JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ #03 ์„œ๋ธ”๋ฆฟ
Myungjin Lee
ย 
PDF
Html5 web workers
Woo Jin Kim
ย 
PPTX
REST API ์„ค๊ณ„
Terry Cho
ย 
Servlet&jsp 1แ„Œแ…กแ†ผ
JeongBong Kim
ย 
์ž๋ฐ”์•ผ ๋†€์ž PPT
JinKyoungHeo
ย 
Handlebars
Han Jung Hyun
ย 
Node.js DBMS short summary
HoChul Shin
ย 
Json view ์˜ˆ์ œ ์„ค๋ช…
Hyung Eun Jin
ย 
Web Components 101 polymer & brick
yongwoo Jeon
ย 
7. html5 api
์€์‹ฌ ๊ฐ•
ย 
Web server page_ed10
hungrok
ย 
5-1. html5 graphics
JinKyoungHeo
ย 
Express ํ”„๋ ˆ์ž„์›Œํฌ
Choonghyun Yang
ย 
๋ง‰ํ•˜๋Š” ์Šคํ„ฐ๋”” ์ฒซ ๋ฒˆ์งธ ๋งŒ๋‚จ Node.js
์—ฐ์›… ์กฐ
ย 
JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ #05 HTML๊ณผ JSP
Myungjin Lee
ย 
[APM] Homepage bbs
Kim Heejin
ย 
Mongo db ์ตœ๋ฒ”๊ท 
beom kyun choi
ย 
JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ #04 JSP ์˜ ๊ธฐ๋ณธ
Myungjin Lee
ย 
Hacosa jquery 1th
Seong Bong Ji
ย 
Express framework tutorial
์šฐ๋ฆผ ๋ฅ˜
ย 
JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ #03 ์„œ๋ธ”๋ฆฟ
Myungjin Lee
ย 
Html5 web workers
Woo Jin Kim
ย 
REST API ์„ค๊ณ„
Terry Cho
ย 

Similar to Html5 (20)

PPTX
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ์ง„ํ™” ๋ฐ Spring์˜ ๊ธˆ์œต๊ถŒ ์ ์šฉ
์ค‘์„  ๊ณฝ
ย 
PDF
Polymerแ„„แ…กแ„…แ…กแ„Œแ…กแ†ธแ„€แ…ต
Han Jung Hyun
ย 
PDF
แ„‹แ…กแ†ฏแ„‹แ…กแ„‡แ…ฉแ†ธแ„‰แ…ตแ„ƒแ…ก, Polymer: Web Components & Web Animations
Chang W. Doh
ย 
PDF
์›น ํ‘œ์ค€์˜ ๋ฏธ๋ž˜- HTML5 (2006)
Channy Yun
ย 
PDF
20131217 html5
DK Lee
ย 
KEY
Html5 performance
yongwoo Jeon
ย 
PDF
Node.js ์ฒซ๊ฑธ์Œ
SeungHyun Lee
ย 
PPTX
๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„๊ณผ ์•ฑ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ๊ฒŒ์ž„์„œ๋ฒ„ ์—”์ง„ ํ”„๋กœ์ ํŠธ CloudBread ํ”„๋กœ์ ํŠธ
Dae Kim
ย 
PDF
์›นํ‘œ์ค€ ๊ต์œก
Aria (In Suk) Kim
ย 
PDF
[์•„๊ฟˆ์‚ฌ/111105] html5 9์žฅ ํด๋ผ์ด์–ธํŠธ์ธก ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•˜๊ธฐ
sung ki choi
ย 
PDF
HTML5 ์ŠคํŽ™ ์†Œ๊ฐœ
Toby Yun
ย 
PDF
HTML5/JSON ์„ ์ด์šฉํ•ด ๋ฒ”์šฉ 2D ๋งต์—๋””ํ„ฐ ์ œ์ž‘ํ•˜๊ธฐ
Miyu Park
ย 
PDF
Portfolio
ByungHak Jang
ย 
PPTX
CouchDB - Introduction - Korean
์ •๋ช…ํ›ˆ Jerry Jeong
ย 
PDF
[2012๋„๋ฆฌ์„ธ๋ฏธ๋‚˜] ์˜ค๋น ~ ๋„ค์ด๋ฒ„ ์™œ ์ด๋ ‡๊ฒŒ ๋Šฆ๊ฒŒ ๋– ?
Nts Nuli
ย 
PDF
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ- 19์žฅ ๋ฐฐํฌ์‹œ์Šคํ…œ
๋ฐ• ๋ฏผ๊ทœ
ย 
PDF
Flamingo project v4
BYOUNG GON KIM
ย 
PDF
OpenSource Big Data Platform : Flamingo Project
BYOUNG GON KIM
ย 
PDF
OpenSource Big Data Platform - Flamingo ์†Œ๊ฐœ์™€ ํ™œ์šฉ
BYOUNG GON KIM
ย 
PDF
OpenSource Big Data Platform - Flamingo v7
BYOUNG GON KIM
ย 
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ์ง„ํ™” ๋ฐ Spring์˜ ๊ธˆ์œต๊ถŒ ์ ์šฉ
์ค‘์„  ๊ณฝ
ย 
Polymerแ„„แ…กแ„…แ…กแ„Œแ…กแ†ธแ„€แ…ต
Han Jung Hyun
ย 
แ„‹แ…กแ†ฏแ„‹แ…กแ„‡แ…ฉแ†ธแ„‰แ…ตแ„ƒแ…ก, Polymer: Web Components & Web Animations
Chang W. Doh
ย 
์›น ํ‘œ์ค€์˜ ๋ฏธ๋ž˜- HTML5 (2006)
Channy Yun
ย 
20131217 html5
DK Lee
ย 
Html5 performance
yongwoo Jeon
ย 
Node.js ์ฒซ๊ฑธ์Œ
SeungHyun Lee
ย 
๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„๊ณผ ์•ฑ์„ ์œ„ํ•œ ์˜คํ”ˆ์†Œ์Šค ๊ฒŒ์ž„์„œ๋ฒ„ ์—”์ง„ ํ”„๋กœ์ ํŠธ CloudBread ํ”„๋กœ์ ํŠธ
Dae Kim
ย 
์›นํ‘œ์ค€ ๊ต์œก
Aria (In Suk) Kim
ย 
[์•„๊ฟˆ์‚ฌ/111105] html5 9์žฅ ํด๋ผ์ด์–ธํŠธ์ธก ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•˜๊ธฐ
sung ki choi
ย 
HTML5 ์ŠคํŽ™ ์†Œ๊ฐœ
Toby Yun
ย 
HTML5/JSON ์„ ์ด์šฉํ•ด ๋ฒ”์šฉ 2D ๋งต์—๋””ํ„ฐ ์ œ์ž‘ํ•˜๊ธฐ
Miyu Park
ย 
Portfolio
ByungHak Jang
ย 
CouchDB - Introduction - Korean
์ •๋ช…ํ›ˆ Jerry Jeong
ย 
[2012๋„๋ฆฌ์„ธ๋ฏธ๋‚˜] ์˜ค๋น ~ ๋„ค์ด๋ฒ„ ์™œ ์ด๋ ‡๊ฒŒ ๋Šฆ๊ฒŒ ๋– ?
Nts Nuli
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ- 19์žฅ ๋ฐฐํฌ์‹œ์Šคํ…œ
๋ฐ• ๋ฏผ๊ทœ
ย 
Flamingo project v4
BYOUNG GON KIM
ย 
OpenSource Big Data Platform : Flamingo Project
BYOUNG GON KIM
ย 
OpenSource Big Data Platform - Flamingo ์†Œ๊ฐœ์™€ ํ™œ์šฉ
BYOUNG GON KIM
ย 
OpenSource Big Data Platform - Flamingo v7
BYOUNG GON KIM
ย 
Ad

Html5

  • 1. SIGONG media ์Šค๋งˆํŠธ ์—ฐ๊ตฌ์†Œ ์•ˆ ์ƒ ๊ธธ ๋Œ€ ๋ฆฌ 2012 . 07 . 10
  • 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>
  • 11. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ 1. Canvas 2. Video 3. Form ์š”์†Œ 4. ๋“œ๋ž˜๊ทธ & ๋“œ๋กญ 5. ํŒŒ์ผ API
  • 12. Canvas ๊ทธ๋ž˜ํ”ฝ(2D/3D)์„ ์ž์œ ๋กญ๊ฒŒ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋Š” ์˜์—ญ
  • 13. Video ๊ทธ๋ž˜ํ”ฝ(2D/3D)์„ ์ž์œ ๋กญ๊ฒŒ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋Š” ์˜์—ญ ์ปจํ…Œ์ด๋„ˆ ๋น„๋””์˜ค ์ฝ”๋ฑ ์˜ค๋””์˜ค ์ฝ”๋ฑ MP4 H.264 AAC WebM VP8 Vorbis Ogg Theora Vorbis
  • 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์— ํ•œ์ •๋˜๋ฏ€๋กœ ์•ˆ์‹ฌํ•ด๋„ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • 27. 3. Offline web development
  • 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 ์„œ๋น„์Šค์™€ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ ๋ฐฉ์‹
  • 43. 5. Multi thread and Location API
  • 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 ํฌ๋กฌ์˜ ๋…์ž์ ์ธ ์•Œ๋ฆผ์ˆ˜๋‹จ. ๋ธŒ๋ผ์šฐ์ €์˜ ํƒญ ๋˜๋Š” ์œˆ๋„์˜ ํ™œ์„ฑํ™” ์—ฌ๋ถ€์— ์ƒ๊ด€ ์—†์ด ๋™์ž‘ ํ•œ๋‹ค.