SlideShare a Scribd company logo
HTML5를 이용한 스마트폰 웹 앱 프레임워크와
   한게임 모바일 게임서비스


   이동훈
   스마트폰게임서비스개발팀
   2011년 10월 12일




ⓒ 2011 NHN CORPORATION
목차

1. Overview
  1.1 배경


2. Web-App
  2.1 Hybrid App
  2.2 컨텐츠 개발 방식
  2.3 앱스러운 웹
  2.4 문제점


3. Game
  3.1 Target
  3.2 Entity-Component System
  3.3 Layers
  3.4 GameOVEN Web
1. Overview
1.1 배경                                                     대외비




   배경

         스마트폰이 이슈가 되면서 각종 서비스나 게임들이 앱으로 제공

         OS 환경에 맞게 따로 개발

         업데이트가 즉각적이지 못함

         스마트폰 브라우저들의 성능 향상 및 HTML5표준 지원

         Entity-Component System기반의 HTML5/CSS3 게임 엔짂 필요

         스마트폰 게임 개발에 중점을 둔 웹 개발 툴 필요




4 / 파워포인트 문서 사용 안내
2. Web-App
2.1 Hybrid App                                                                                  대외비




  디바이스 의존적인 기능은 Hybrid App으로 지              Web Content
   원
                                  자체 정의한                                         Callback을 통한
        짂동                       프로토콜                                           응답


        사운드
                                                        WebView
        앨범




                                     Hybrid App
        주소록
                                                    Communicator
        …                                         (native contents)




                                                  HSP
                                                        Sound
                                                                Shake
                                                                        Album
                                                                                Etc.
                                   * PhoneGap과 같은 방식
6 / 파워포인트 문서 사용 안내
2.2 컨텐츠 개발 방식                             대외비




   마크업 중심 (Markup-centric approach) 지원

         자바스크립트를 HTML기반으로 제어하는 방식




7 / 파워포인트 문서 사용 안내
2.3 앱스러운 웹                 대외비




   앱스러운 웹을 만드려면?

         Data와 View의 분리

         페이지 젂환 효과

         Preload

         UI Components




8 / 파워포인트 문서 사용 안내
2.3 앱스러운 웹 (cont’d)                        대외비




   View와 Data의 분리 - DataTemplate




                                    HTML
9 / 파워포인트 문서 사용 안내
2.3 앱스러운 웹 (cont’d)                           대외비




   View와 Data의 분리 - DataTemplate




                                           HTML




10 / 파워포인트 문서 사용 안내
                                    JSON
2.3 앱스러운 웹 (cont’d)                                                                                                                             대외비




   페이지 전환


                       DOM                                          DOM                                          DOM
                      (body)                                       (body)                                       (body)


                               http://                                      http://                                      http://




         <div data-type="View">                       <div data-type="View">                       <div data-type="View">
           <div class="toolbar">
                                              Page1     <div class="toolbar">
                                                                                           Page2     <div class="toolbar">
                                                                                                                                        Page3
             <h1>Inko framework</h1>                      <h1>Inko framework</h1>                      <h1>Inko framework</h1>
             <ul class="rounded">                         <ul class="rounded">                         <ul class="rounded">
                <li class="arrow“>list1</li>                 <li class="arrow“>list1</li>                 <li class="arrow“>list1</li>
                <li class="arrow">list2</li>                 <li class="arrow">list2</li>                 <li class="arrow">list2</li>
             </ul>                                        </ul>                                        </ul>
           </div>                                       </div>                                       </div>
           <div class="info“>Add this page to your      <div class="info“>Add this page to your      <div class="info“>Add this page to your
         home screen</div>                            home screen</div>                            home screen</div>
         </div>                                       </div>                                       </div>



11 / 파워포인트 문서 사용 안내
2.3 앱스러운 웹 (cont’d)                                                                                                                                         대외비




   페이지 전환


                                                                         DOM
                                                                        (body)

                                                    AJAX                                                AJAX
                                                                        AJAX



         <div data-type="View">                            <div data-type="View">                              <div data-type="View">
           <div class="toolbar">
                                              Page1          <div class="toolbar">
                                                                                                Page2            <div class="toolbar">
                                                                                                                                                    Page3
             <h1>Inko framework</h1>         (active)          <h1>Inko framework</h1>                             <h1>Inko framework</h1>
             <ul class="rounded">                              <ul class="rounded">                                <ul class="rounded">
                <li class="arrow“>list1</li>                      <li class="arrow“>list1</li>                        <li class="arrow“>list1</li>
                <li class="arrow">list2</li>                      <li class="arrow">list2</li>                        <li class="arrow">list2</li>
             </ul>                                             </ul>                                               </ul>
           </div>                                            </div>                                              </div>
           <div class="info“>Add this page to your           <div class="info“>Add this page to your             <div class="info“>Add this page to your
         home screen</div>                                 home screen</div>                                   home screen</div>
         </div>                                            </div>                                              </div>



12 / 파워포인트 문서 사용 안내
2.3 앱스러운 웹 (cont’d)                                             대외비




   Preload
          View를 미리 로드하여 메모리 상에 적재
          페이지 이동시 서버로의 요청을 최소화 하고 빠른 페이지 젂환



           페이지1             페이지2         페이지1          페이지2

                            클라이언트                       클라이언트



                      웹서버                        웹서버


    페이지 이동시 웹서버에 요청해서 페이지 젂송        미리 웹서버에서 페이지 젂송 받고 이동시에는 요청 안함



13 / 파워포인트 문서 사용 안내
2.3 앱스러운 웹 (cont’d)                                         대외비




   Flicker
          컨텐츠를 좌/우 Swipe 모션으로 변경하는 기능
          Methods
              prev: function(time)
              next: function(time)
              go: function(target, time)
          Events
              onFlicked({pos, count, entity, component}

   Scroller
          고정된 영역 내의 컨텐츠를 스크롤할 수 있는 기능
          Methods
              refresh: function()
              scrollToPage: function(pageX, pageY, time)
          Events
              onScrollStart({event, entity, component})
              onScrollMove({event, entity, component})
              onScrollEnd({evernt, entity, component})
14 / 파워포인트 문서 사용 안내
2.3 앱스러운 웹 (cont’d)                                       대외비




   TabPanel
          탭 버튺에 따라 컨텐츠를 변경하는 기능
          Methods
              select: function(index)
              setSelectCls: function(classname)
          Events
              onTabSelected({selectedIndex, prevIndex,
                entity, component})

   DataTemplate
          Data(JSON)와 연동하여 Markup을 구성하는 기능
          Methods
             append: function(params, immediate)
             overwrite: function(params, immediate)
             insertfront: function(params, immediate)
             flush: function(type)



15 / 파워포인트 문서 사용 안내
2.3 앱스러운 웹 (cont’d)                                       대외비




   TabPanel
          탭 버튺에 따라 컨텐츠를 변경하는 기능
          Methods
              select: function(index)
              setSelectCls: function(classname)
          Events
              onTabSelected({selectedIndex, prevIndex,
                entity, component})

   DataTemplate
          Data(JSON)와 연동하여 Markup을 구성하는 기능
          Methods
             append: function(params, immediate)
             overwrite: function(params, immediate)
             insertfront: function(params, immediate)
             flush: function(type)



16 / 파워포인트 문서 사용 안내
2.4 문제점                                                  대외비




   History 관리 (Ajax)
          페이지 이동시 History를 관리하는 기능
             Refresh시에도 History 유지
          Anchor Tag의 HREF 속성을 사용한 경우에도 History 관리
          URL Hash를 이용한 Browser의 Back / Forward 버튺 지원
          URL Hash 기능 Turn on/off 옵션




17 / 파워포인트 문서 사용 안내
2.4 문제점 (cont’d)                                                                                대외비




   Javascript의 Scope
          1개의 DOM을 공유하여 Markup의 ID나 변수/함수들의 Uniqueness가 보장되지 않음

   페이지 구성
          View는 반드시 data-type이 View인 DIV 태그로 감싸져야 함
          현재 하나의 html파일이 하나의 View만 가질 수 있음

      <div data-type=“View”>                       <div data-type=“View”>
      …                                            …
      <button onclick=“/*enco_call*/.add(1, 2)”>   <button onclick=“/*enco_call*/.add(1, 2)”>
      …                                            …
      </div>                                       </div>
        /*enco_begin*/                              /*enco_begin*/
        ...                                         ...
        function add(a, b) { … }                    function add(a, b) { … }
        …                                           …
        /*enco_end*/                                /*enco_end*/

                       Page 1                                      Page 2
18 / 파워포인트 문서 사용 안내
2.4 문제점 (cont’d)                                                                             대외비




   Resource Manager
                                                             Resource
                                                                 Resource
          게임에선 이미지, 사운드등 리소스의 사이즈가 큼                          Data Resource
                                                                   Data Resource
                                                                      Data
                                                                          Data
          웹의 특성상 웹 페이지에 접속할 때 마다 매번 리소스
           를 다운 받아야 함
            • 모바일 환경에선, Packet 사이즈 = 과금
            • 느린 네트워크 환경                                            Install

          HTML5의 Application Cache, WebStorage를
           이용해 리소스를 클라이언트에 설치
                                                              Mobile device
            • 빠른 로딩                                 Web                             App
            • 데이터 사용량 최소화                          Content
                                                      Web
                                                                                   cache




                                                                      Resource
                                                                      Manager
            • 오프라인 모드 지원                             Conten
                                                                                     Web
                                                       tWeb
                                                                                   storage
                                                      Content
                                                                                    Web
                                                                                    SQL




19 / 파워포인트 문서 사용 안내
3. Game
3.1 Target                                      대외비




   온라인 웹 게임 개발
          UI 프레임워크 / 게임 엔짂을 이용한 게임 개발
          Entity-Component System
          프레임워크에 최적화 된 개발 툴




                       CityVille         포트리스
21 / 파워포인트 문서 사용 안내
3.2 Entity-Component System                    대외비




  Entity
         Game World (웹에서는 Page)안에 존재하는 객체
         스스로 어떠한 일도 하지 않는 단순한 Container

  Component
         하나의 특징 또는 기능을 가짂 독립적인 구현체
         서로 다른 기능을 가짂 Component들이 모여 Entity
          를 구성하고 성격을 결정

  Messaging
         Component갂의 의존성이 많아지는 문제를 보완하
          고자 제안된 방법.
         컴포넌트가 다른 컴포넌트에게 직접 요청하는 대싞,
          Event를 발생시키면 Listening 하고 있던 컴포넌트
          가 있으면 이에 응답하는 방식



22 / 파워포인트 문서 사용 안내
3.3 Layers                                                                    대외비




   Markup Layer
          HTML Markup과 CSS3를 이용해 Entity를 렌더링

   Canvas Layer
          Canvas를 이용해 Entity를 렌더링
          Markup Entity에 비해 세밀한 제어 가능 (Pixel 단위의 충돌체크 등등)




                                                Canvas Layer   Markup Layer
23 / 파워포인트 문서 사용 안내
3.3 GameOVEN Web                                  대외비




   기능
          Canvas/Markup 비주얼 편집, 자바스크립트 Code 편집
          Debugging
          Preview




24 / 파워포인트 문서 사용 안내
3.3 GameOVEN Web                                                 대외비




 Code Editor
         Auto-complete for HTML, CSS, Javascipt
         Intellisense for Javascript
         Template statements editing for Javascript (ex, for)
         Outlining for the tree structure for HTML, JSON
         Outlining for the function and variable names
         Realtime Syntax Error Highlight for Javascript




25 / 파워포인트 문서 사용 안내
3.3 GameOVEN Web (cont’d)                                                    대외비




   Page Previewer
          Built-in browser (Google’s Chromium Embedded Framework)

          Predefined preview profiles (iPhone 3/4, PC, custom profile, …)

          Built-in local web server




26 / 파워포인트 문서 사용 안내
3.3 GameOVEN Web (cont’d)                            대외비




   Debugger
            Integrated debugger with IDE
            Implement Google V8 Debugger protocol
            Run / Stop / Continue
            Set / Remove / Handle breakpoints
            Watch variables and parameters
            Call Stack
            Step in / over / out




27 / 파워포인트 문서 사용 안내
3.3 GameOVEN Web (cont’d)                                      대외비




   SVN
          Integrated with the project explorer
          Available under the “Team” menu of the contextual
           menu of the project explorer
          Operations
              Check in / out
              Update / Commit
              Update to revision
              Revert
              Clean-up
              Show log




28 / 파워포인트 문서 사용 안내
Q/A
Thank you.

More Related Content

Similar to C6 html5를 이용한 스마트폰 웹 앱 프레임워크

Web app 개발 방법론
Web app 개발 방법론Web app 개발 방법론
Web app 개발 방법론
Sang Seok Lim
 
웹표준 교육
웹표준 교육웹표준 교육
웹표준 교육
Aria (In Suk) Kim
 
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
JongKwang Kim
 
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
Sang Seok Lim
 
Html5 시맨틱태그
Html5 시맨틱태그Html5 시맨틱태그
Html5 시맨틱태그
은심 강
 
Polymer, lego같이 만드는 웹어플리케이션
Polymer, lego같이 만드는 웹어플리케이션Polymer, lego같이 만드는 웹어플리케이션
Polymer, lego같이 만드는 웹어플리케이션
Jeado Ko
 
Hacosa jquery 1th
Hacosa jquery 1thHacosa jquery 1th
Hacosa jquery 1th
Seong Bong Ji
 
Top 10 Questions about HTML5
Top 10 Questions about HTML5Top 10 Questions about HTML5
Top 10 Questions about HTML5
Jonathan Jeon
 
2. html5 시맨틱태그
2. html5 시맨틱태그2. html5 시맨틱태그
2. html5 시맨틱태그
은심 강
 
2. html5 시맨틱태그
2. html5 시맨틱태그2. html5 시맨틱태그
2. html5 시맨틱태그
은심 강
 
리눅스와 웹표준(2004)
리눅스와 웹표준(2004)리눅스와 웹표준(2004)
리눅스와 웹표준(2004)
Channy Yun
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
중선 곽
 
HTML5 스펙 소개
HTML5 스펙 소개HTML5 스펙 소개
HTML5 스펙 소개
Toby Yun
 
웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)
JoonHee Lee
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
hungrok
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations
Chang W. Doh
 
Delivrary intro
Delivrary introDelivrary intro
Delivrary intro
ssuserbe6f89
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Channy Yun
 
웹 2.0 기술 소개 (2006)
웹 2.0 기술 소개 (2006)웹 2.0 기술 소개 (2006)
웹 2.0 기술 소개 (2006)
Channy Yun
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)
Changhwan Yi
 

Similar to C6 html5를 이용한 스마트폰 웹 앱 프레임워크 (20)

Web app 개발 방법론
Web app 개발 방법론Web app 개발 방법론
Web app 개발 방법론
 
웹표준 교육
웹표준 교육웹표준 교육
웹표준 교육
 
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
Dreamweaver CS5.5 를 이용한 jQueryMobile 개발
 
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
The comprehensive guide for optimizing the performance of mobile HTML5 Web ap...
 
Html5 시맨틱태그
Html5 시맨틱태그Html5 시맨틱태그
Html5 시맨틱태그
 
Polymer, lego같이 만드는 웹어플리케이션
Polymer, lego같이 만드는 웹어플리케이션Polymer, lego같이 만드는 웹어플리케이션
Polymer, lego같이 만드는 웹어플리케이션
 
Hacosa jquery 1th
Hacosa jquery 1thHacosa jquery 1th
Hacosa jquery 1th
 
Top 10 Questions about HTML5
Top 10 Questions about HTML5Top 10 Questions about HTML5
Top 10 Questions about HTML5
 
2. html5 시맨틱태그
2. html5 시맨틱태그2. html5 시맨틱태그
2. html5 시맨틱태그
 
2. html5 시맨틱태그
2. html5 시맨틱태그2. html5 시맨틱태그
2. html5 시맨틱태그
 
리눅스와 웹표준(2004)
리눅스와 웹표준(2004)리눅스와 웹표준(2004)
리눅스와 웹표준(2004)
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
HTML5 스펙 소개
HTML5 스펙 소개HTML5 스펙 소개
HTML5 스펙 소개
 
웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)웹기술 이해 (프론트엔드 기초)
웹기술 이해 (프론트엔드 기초)
 
Java script 강의자료_ed13
Java script 강의자료_ed13Java script 강의자료_ed13
Java script 강의자료_ed13
 
알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations알아봅시다, Polymer: Web Components & Web Animations
알아봅시다, Polymer: Web Components & Web Animations
 
Delivrary intro
Delivrary introDelivrary intro
Delivrary intro
 
Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)Mozilla 오픈 웹 모바일 플랫폼 (2012)
Mozilla 오픈 웹 모바일 플랫폼 (2012)
 
웹 2.0 기술 소개 (2006)
웹 2.0 기술 소개 (2006)웹 2.0 기술 소개 (2006)
웹 2.0 기술 소개 (2006)
 
하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)하이브리드 앱(Hybrid App)
하이브리드 앱(Hybrid App)
 

More from NAVER D2

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
NAVER D2
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
NAVER D2
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
NAVER D2
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
NAVER D2
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
NAVER D2
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
NAVER D2
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
NAVER D2
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
NAVER D2
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
NAVER D2
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
NAVER D2
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
NAVER D2
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
NAVER D2
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
NAVER D2
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
NAVER D2
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
NAVER D2
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
NAVER D2
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
NAVER D2
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
NAVER D2
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
NAVER D2
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
NAVER D2
 

More from NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

C6 html5를 이용한 스마트폰 웹 앱 프레임워크

  • 1. HTML5를 이용한 스마트폰 웹 앱 프레임워크와 한게임 모바일 게임서비스 이동훈 스마트폰게임서비스개발팀 2011년 10월 12일 ⓒ 2011 NHN CORPORATION
  • 2. 목차 1. Overview 1.1 배경 2. Web-App 2.1 Hybrid App 2.2 컨텐츠 개발 방식 2.3 앱스러운 웹 2.4 문제점 3. Game 3.1 Target 3.2 Entity-Component System 3.3 Layers 3.4 GameOVEN Web
  • 4. 1.1 배경 대외비  배경  스마트폰이 이슈가 되면서 각종 서비스나 게임들이 앱으로 제공  OS 환경에 맞게 따로 개발  업데이트가 즉각적이지 못함  스마트폰 브라우저들의 성능 향상 및 HTML5표준 지원  Entity-Component System기반의 HTML5/CSS3 게임 엔짂 필요  스마트폰 게임 개발에 중점을 둔 웹 개발 툴 필요 4 / 파워포인트 문서 사용 안내
  • 6. 2.1 Hybrid App 대외비  디바이스 의존적인 기능은 Hybrid App으로 지 Web Content 원 자체 정의한 Callback을 통한  짂동 프로토콜 응답  사운드 WebView  앨범 Hybrid App  주소록 Communicator  … (native contents) HSP Sound Shake Album Etc. * PhoneGap과 같은 방식 6 / 파워포인트 문서 사용 안내
  • 7. 2.2 컨텐츠 개발 방식 대외비  마크업 중심 (Markup-centric approach) 지원  자바스크립트를 HTML기반으로 제어하는 방식 7 / 파워포인트 문서 사용 안내
  • 8. 2.3 앱스러운 웹 대외비  앱스러운 웹을 만드려면?  Data와 View의 분리  페이지 젂환 효과  Preload  UI Components 8 / 파워포인트 문서 사용 안내
  • 9. 2.3 앱스러운 웹 (cont’d) 대외비  View와 Data의 분리 - DataTemplate HTML 9 / 파워포인트 문서 사용 안내
  • 10. 2.3 앱스러운 웹 (cont’d) 대외비  View와 Data의 분리 - DataTemplate HTML 10 / 파워포인트 문서 사용 안내 JSON
  • 11. 2.3 앱스러운 웹 (cont’d) 대외비  페이지 전환 DOM DOM DOM (body) (body) (body) http:// http:// http:// <div data-type="View"> <div data-type="View"> <div data-type="View"> <div class="toolbar"> Page1 <div class="toolbar"> Page2 <div class="toolbar"> Page3 <h1>Inko framework</h1> <h1>Inko framework</h1> <h1>Inko framework</h1> <ul class="rounded"> <ul class="rounded"> <ul class="rounded"> <li class="arrow“>list1</li> <li class="arrow“>list1</li> <li class="arrow“>list1</li> <li class="arrow">list2</li> <li class="arrow">list2</li> <li class="arrow">list2</li> </ul> </ul> </ul> </div> </div> </div> <div class="info“>Add this page to your <div class="info“>Add this page to your <div class="info“>Add this page to your home screen</div> home screen</div> home screen</div> </div> </div> </div> 11 / 파워포인트 문서 사용 안내
  • 12. 2.3 앱스러운 웹 (cont’d) 대외비  페이지 전환 DOM (body) AJAX AJAX AJAX <div data-type="View"> <div data-type="View"> <div data-type="View"> <div class="toolbar"> Page1 <div class="toolbar"> Page2 <div class="toolbar"> Page3 <h1>Inko framework</h1> (active) <h1>Inko framework</h1> <h1>Inko framework</h1> <ul class="rounded"> <ul class="rounded"> <ul class="rounded"> <li class="arrow“>list1</li> <li class="arrow“>list1</li> <li class="arrow“>list1</li> <li class="arrow">list2</li> <li class="arrow">list2</li> <li class="arrow">list2</li> </ul> </ul> </ul> </div> </div> </div> <div class="info“>Add this page to your <div class="info“>Add this page to your <div class="info“>Add this page to your home screen</div> home screen</div> home screen</div> </div> </div> </div> 12 / 파워포인트 문서 사용 안내
  • 13. 2.3 앱스러운 웹 (cont’d) 대외비  Preload  View를 미리 로드하여 메모리 상에 적재  페이지 이동시 서버로의 요청을 최소화 하고 빠른 페이지 젂환 페이지1 페이지2 페이지1 페이지2 클라이언트 클라이언트 웹서버 웹서버 페이지 이동시 웹서버에 요청해서 페이지 젂송 미리 웹서버에서 페이지 젂송 받고 이동시에는 요청 안함 13 / 파워포인트 문서 사용 안내
  • 14. 2.3 앱스러운 웹 (cont’d) 대외비  Flicker  컨텐츠를 좌/우 Swipe 모션으로 변경하는 기능  Methods  prev: function(time)  next: function(time)  go: function(target, time)  Events  onFlicked({pos, count, entity, component}  Scroller  고정된 영역 내의 컨텐츠를 스크롤할 수 있는 기능  Methods  refresh: function()  scrollToPage: function(pageX, pageY, time)  Events  onScrollStart({event, entity, component})  onScrollMove({event, entity, component})  onScrollEnd({evernt, entity, component}) 14 / 파워포인트 문서 사용 안내
  • 15. 2.3 앱스러운 웹 (cont’d) 대외비  TabPanel  탭 버튺에 따라 컨텐츠를 변경하는 기능  Methods  select: function(index)  setSelectCls: function(classname)  Events  onTabSelected({selectedIndex, prevIndex, entity, component})  DataTemplate  Data(JSON)와 연동하여 Markup을 구성하는 기능  Methods  append: function(params, immediate)  overwrite: function(params, immediate)  insertfront: function(params, immediate)  flush: function(type) 15 / 파워포인트 문서 사용 안내
  • 16. 2.3 앱스러운 웹 (cont’d) 대외비  TabPanel  탭 버튺에 따라 컨텐츠를 변경하는 기능  Methods  select: function(index)  setSelectCls: function(classname)  Events  onTabSelected({selectedIndex, prevIndex, entity, component})  DataTemplate  Data(JSON)와 연동하여 Markup을 구성하는 기능  Methods  append: function(params, immediate)  overwrite: function(params, immediate)  insertfront: function(params, immediate)  flush: function(type) 16 / 파워포인트 문서 사용 안내
  • 17. 2.4 문제점 대외비  History 관리 (Ajax)  페이지 이동시 History를 관리하는 기능  Refresh시에도 History 유지  Anchor Tag의 HREF 속성을 사용한 경우에도 History 관리  URL Hash를 이용한 Browser의 Back / Forward 버튺 지원  URL Hash 기능 Turn on/off 옵션 17 / 파워포인트 문서 사용 안내
  • 18. 2.4 문제점 (cont’d) 대외비  Javascript의 Scope  1개의 DOM을 공유하여 Markup의 ID나 변수/함수들의 Uniqueness가 보장되지 않음  페이지 구성  View는 반드시 data-type이 View인 DIV 태그로 감싸져야 함  현재 하나의 html파일이 하나의 View만 가질 수 있음 <div data-type=“View”> <div data-type=“View”> … … <button onclick=“/*enco_call*/.add(1, 2)”> <button onclick=“/*enco_call*/.add(1, 2)”> … … </div> </div> /*enco_begin*/ /*enco_begin*/ ... ... function add(a, b) { … } function add(a, b) { … } … … /*enco_end*/ /*enco_end*/ Page 1 Page 2 18 / 파워포인트 문서 사용 안내
  • 19. 2.4 문제점 (cont’d) 대외비  Resource Manager Resource Resource  게임에선 이미지, 사운드등 리소스의 사이즈가 큼 Data Resource Data Resource Data Data  웹의 특성상 웹 페이지에 접속할 때 마다 매번 리소스 를 다운 받아야 함 • 모바일 환경에선, Packet 사이즈 = 과금 • 느린 네트워크 환경 Install  HTML5의 Application Cache, WebStorage를 이용해 리소스를 클라이언트에 설치 Mobile device • 빠른 로딩 Web App • 데이터 사용량 최소화 Content Web cache Resource Manager • 오프라인 모드 지원 Conten Web tWeb storage Content Web SQL 19 / 파워포인트 문서 사용 안내
  • 21. 3.1 Target 대외비  온라인 웹 게임 개발  UI 프레임워크 / 게임 엔짂을 이용한 게임 개발  Entity-Component System  프레임워크에 최적화 된 개발 툴 CityVille 포트리스 21 / 파워포인트 문서 사용 안내
  • 22. 3.2 Entity-Component System 대외비  Entity  Game World (웹에서는 Page)안에 존재하는 객체  스스로 어떠한 일도 하지 않는 단순한 Container  Component  하나의 특징 또는 기능을 가짂 독립적인 구현체  서로 다른 기능을 가짂 Component들이 모여 Entity 를 구성하고 성격을 결정  Messaging  Component갂의 의존성이 많아지는 문제를 보완하 고자 제안된 방법.  컴포넌트가 다른 컴포넌트에게 직접 요청하는 대싞, Event를 발생시키면 Listening 하고 있던 컴포넌트 가 있으면 이에 응답하는 방식 22 / 파워포인트 문서 사용 안내
  • 23. 3.3 Layers 대외비  Markup Layer  HTML Markup과 CSS3를 이용해 Entity를 렌더링  Canvas Layer  Canvas를 이용해 Entity를 렌더링  Markup Entity에 비해 세밀한 제어 가능 (Pixel 단위의 충돌체크 등등) Canvas Layer Markup Layer 23 / 파워포인트 문서 사용 안내
  • 24. 3.3 GameOVEN Web 대외비  기능  Canvas/Markup 비주얼 편집, 자바스크립트 Code 편집  Debugging  Preview 24 / 파워포인트 문서 사용 안내
  • 25. 3.3 GameOVEN Web 대외비  Code Editor  Auto-complete for HTML, CSS, Javascipt  Intellisense for Javascript  Template statements editing for Javascript (ex, for)  Outlining for the tree structure for HTML, JSON  Outlining for the function and variable names  Realtime Syntax Error Highlight for Javascript 25 / 파워포인트 문서 사용 안내
  • 26. 3.3 GameOVEN Web (cont’d) 대외비  Page Previewer  Built-in browser (Google’s Chromium Embedded Framework)  Predefined preview profiles (iPhone 3/4, PC, custom profile, …)  Built-in local web server 26 / 파워포인트 문서 사용 안내
  • 27. 3.3 GameOVEN Web (cont’d) 대외비  Debugger  Integrated debugger with IDE  Implement Google V8 Debugger protocol  Run / Stop / Continue  Set / Remove / Handle breakpoints  Watch variables and parameters  Call Stack  Step in / over / out 27 / 파워포인트 문서 사용 안내
  • 28. 3.3 GameOVEN Web (cont’d) 대외비  SVN  Integrated with the project explorer  Available under the “Team” menu of the contextual menu of the project explorer  Operations  Check in / out  Update / Commit  Update to revision  Revert  Clean-up  Show log 28 / 파워포인트 문서 사용 안내
  • 29. Q/A