KR102146557B1 - 어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체 - Google Patents

어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체 Download PDF

Info

Publication number
KR102146557B1
KR102146557B1 KR1020130134361A KR20130134361A KR102146557B1 KR 102146557 B1 KR102146557 B1 KR 102146557B1 KR 1020130134361 A KR1020130134361 A KR 1020130134361A KR 20130134361 A KR20130134361 A KR 20130134361A KR 102146557 B1 KR102146557 B1 KR 102146557B1
Authority
KR
South Korea
Prior art keywords
rendering
data
application
source code
attribute information
Prior art date
Application number
KR1020130134361A
Other languages
English (en)
Other versions
KR20150052922A (ko
Inventor
김세권
김호성
남궁은
오장훈
이종호
박강용
오지훈
허형강
현승열
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020130134361A priority Critical patent/KR102146557B1/ko
Priority to US14/534,500 priority patent/US20150128029A1/en
Publication of KR20150052922A publication Critical patent/KR20150052922A/ko
Application granted granted Critical
Publication of KR102146557B1 publication Critical patent/KR102146557B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Abstract

어플리케이션의 데이터를 렌더링 하는 방법이 개시된다. 어플리케이션의 소스 코드(source code)를 획득하여, 획득한 소스 코드로부터 어플리케이션의 실행 화면에 표시되는 데이터의 속성 정보를 추출하고, 추출된 속성 정보에 기초하여, 데이터를 렌더링함으로써, 데이터를 렌더링하는 속도 및 효율을 높일 수 있다.

Description

어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체 {Method and apparatus for rendering data of web application and recording medium thereof}
어플리케이션의 데이터를 렌더링하는 방법, 어플리케이션의 데이터를 렌더링하는 장치 및 기록매체에 관한 것이다.
최근 스마트 기기의 확산과 함께 다양한 어플리케이션들이 개발되고 있다. 특히, 다양한 어플리케이션들 중에서도 게임과 같은 동적인 어플리케이션에 대한 사용자들의 요구가 높아지면서, 이에 대한 개발 역시 증가하고 있는 추세이다.
동적인 어플리케이션은 높은 프레임레이트를 필요로 한다. 따라서, 어플리케이션 실행시 화면에 표시되는 데이터의 렌더링 속도는 어플리케이션 개발시 고려해야 하는 중요한 요소 중 하나이다. 또한, 렌더링 속도는 어플리케이션이 실행되는 디바이스의 종류 및 성능에 의해서도 영향을 받을 수 있다.
종래에는 이미 개발된 어플리케이션의 경우, 개발 단계에서 결정한 렌더링 방법을 변경할 수 없다. 따라서, 특정 디바이스에 최적화되어 개발된 어플리케이션의 경우, 디바이스의 사양이 변하거나, 다른 종류의 디바이스에서 사용될 경우, 어플리케이션 성능이 떨어진다는 문제가 있다.
어플리케이션 실행시 화면에 표시되는 데이터를 렌더링하는 경우, 어플리케이션이 실행되는 환경에 따라 렌더링 방법을 적응적으로 변경하여, 렌더링 속도를 최적으로 유지함으로써 어플리케이션의 성능을 향상시킬 수 있는 방법, 장치 및 기록매체를 제공한다.
본 발명의 일 실시예에 따라, 제 1 프레임의 그래픽스 데이터가 나타내는 적어도 하나의 객체의 제 1 공간 정보를 획득하는 단계; 상기 제 1 프레임의 그래픽스 데이터에 기초하여 상기 제 1 프레임에 포함되는 복수개의 픽셀 각각의 샘플링 모드를 결정하는 단계; 및 상기 제 1 공간 정보 및 상기 제 1 프레임에 포함되는 복수개의 픽셀 각각의 샘플링 모드에 기초하여 제 2 프레임의 그래픽스 데이터를 렌더링하는 단계를 포함하는 그래픽스 데이터를 렌더링하는 방법이 제공될 수 있다.
본 발명의 일 실시예에 따른 상기 그래픽스 데이터를 렌더링하는 방법은,
복수의 프레임들 중에서, 이전 프레임의 그래픽스 데이터가 나타내는 적어도 하나의 객체의 공간 정보 및 상기 이전 프레임에 포함되는 복수개의 픽셀 각각의 샘플링 모드에 기초하여 현재 프레임의 그래픽스 데이터를 렌더링하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따라, 어플리케이션의 소스 코드(source code)를 획득하는 단계; 상기 획득한 소스 코드로부터 상기 어플리케이션의 실행 화면에 표시되는 렌더링 데이터의 속성 정보를 추출하는 단계; 및 상기 추출된 속성 정보에 기초하여, 상기 데이터를 렌더링하는 방법을 결정하는 단계를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법이 제공될 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법에 있어서, 결정하는 단계는 결정된 렌더링 방법에 기초하여 어플리케이션의 소스 코드를 변경하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법에 있어서, 상기 어플리케이션의 소스 코드를 변경하는 단계는, 상기 획득한 제 1 소스 코드와 상기 결정된 렌더링 방법에 대응되는 제 2 소스 코드가 일치하지 않는 경우, 상기 제 1 소스 코드를 상기 제 2 소스 코드로 변경하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법에 있어서, 상기 데이터의 속성 정보를 추출하는 단계는, 상기 획득한 소스 코드를 파싱(parsing)하는 단계; 및 상기 파싱된 소스 코드로부터 상기 렌더링 데이터의 속성 정보를 추출하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법에 있어서, 상기 데이터의 속성 정보는, 상기 데이터에 포함된 객체의 형태, 음영, 색상, 위치, 재질, 크기등 GPU가 처리할 수 있는 모든 속성 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법에 있어서,렌더링 방법은, WebGL 렌더링, CSS 렌더링 및 캔버스 렌더링 중 어느 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법은 변경된 소스 코드에 기초하여 상기 어플리케이션을 재구성하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법은 상기 변경된 소스 코드에 대응되는 렌더링 방법을 선택하는 단계; 및 상기 선택된 렌더링 방법을 이용하여, 상기 데이터를 렌더링하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법은, 기설정된 시간 동안 렌더링되는 데이터의 개수를 산출하는 단계; 상기 산출된 렌더링 데이터의 개수에 기초하여 상기 데이터를 렌더링하는 방법을 재결정하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 방법에 있어서, 상기 재결정하는 단계는, 상기 산출된 렌더링 데이터의 개수가 임계값 미만인 경우, 상기 데이터를 렌더링하는 방법을 재결정할 수 있다.
본 발명의 일 실시예에 따라 어플리케이션의 소스 코드(source code)를 획득하는 입출력부; 상기 획득한 소스 코드로부터 상기 어플리케이션의 실행 화면에 표시되는 렌더링 데이터의 속성 정보를 추출하고, 상기 추출된 속성 정보에 기초하여, 상기 데이터를 렌더링하는 방법을 결정하는 제어부를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치가 제공될 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치에 있어서, 제어부는, 상기 결정된 렌더링 방법에 기초하여, 상기 어플리케이션의 소스 코드를 변경할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치에 있어서, 상기 제어부는, 상기 획득한 제 1 소스 코드와 상기 결정된 렌더링 방법에 대응되는 제 2 소스 코드가 일치하지 않는 경우, 상기 제 1 소스 코드를 상기 제 2 소스 코드로 변경할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치에 있어서, 상기 제어부는, 상기 획득한 소스 코드를 파싱(parsing)하고, 상기 파싱된 소스 코드로부터 상기 렌더링 데이터의 속성 정보를 추출할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치에 있어서, 상기 렌더링 데이터의 속성 정보는, 상기 데이터에 포함된 객체의 형태, 음영, 색상, 위치, 재질, 크기등 GPU가 처리할 수 있는 모든 속성 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치에 있어서, 상기 렌더링 방법은, WebGL 렌더링, CSS 렌더링 및 캔버스 렌더링 중 어느 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치는, 상기 변경된 소스 코드에 기초하여 상기 어플리케이션을 재구성하는 패키징(packaging)부를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치는,
상기 제어부가 변경된 소스 코드에 기초하여 선택한 렌더링 방법을 이용하여, 데이터를 렌더링하는 렌더링부를 더 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치는,
기설정된 시간 동안 렌더링되는 데이터의 개수를 산출하는 산출부를 더 포함하고,
상기 제어부는 상기 산출된 렌더링 데이터의 개수에 기초하여 상기 데이터를 렌더링하는 방법을 재결정할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치에 있어서, 상기 제어부는, 상기 산출된 데이터의 개수가 임계값 미만인 경우, 상기 데이터를 렌더링하는 방법을 재결정할 수 있다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 시스템을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 데이터를 렌더링하는 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 그래픽스 데이터를 렌더링하는 장치가 그래픽스 데이터를 렌더링하는 방법을 구체적으로 설명하는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 데이터 렌더링 장치를 도시한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 렌더링 장치가 변경된 어플리케이션의 소스 코드에 기초하여, 어플리케이션을 재구성하는 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 데이터 렌더링 장치를 도시한 블록도이다.
도 7는 본 발명의 일 실시예에 따른 데이터 렌더링 장치가 변경된 어플리케이션의 소스 코드에 기초하여, 데이터를 렌더링하는 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 그래픽스 데이터를 렌더링하는 장치를 설명하기 위한 블록도이다.
도 9는 본 발명의 일 실시예에 따른 데이터 렌더링 장치가 어플리케이션을 실행하는 중, 데이터를 렌더링하는 방법을 재결정하는 방법을 설명하기 위한 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 그래픽스 데이터를 렌더링하는 장치를 설명하기 위한 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 시스템(10)을 도시한 도면이다.
도 1에 도시된 어플리케이션의 데이터를 렌더링하는 시스템(10)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 1을 참고하면, 어플리케이션의 데이터를 렌더링하는 시스템(10)은 어플리케이션을 실행할 수 있는 디바이스(14)(이하, 디바이스) 및 어플리케이션의 데이터를 렌더링하는 장치(100)를 포함할 수 있다.
디바이스(14)는 어플리케이션에서 특정한 업무를 수행하여, 수행 결과를 화면 등의 디스플레이부에 표시할 수 있는 디바이스를 포함할 수 있다. 예를 들어, 컴퓨터, 태블릿 PC, 스마트폰 및 스마트 TV 등이 디바이스(14)에 포함될 수 있으나, 이에 한정되는 것은 아니다.
한편, 명세서 전체에서 어플리케이션은 특정한 업무를 수행하기 위해 고안된 일련의 컴퓨터 프로그램 집합을 말한다. 본 명세서에 기술되는 어플리케이션은 다양할 수 있다. 예를 들어, 게임 어플리케이션, 악기 연주 어플리케이션, 동영상 재생 어플리케이션, 지도 어플리케이션 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
또한, 본 명세서에 기술되는 어플리케이션(12)은 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어인 웹 어플리케이션을 포함할 수 있다. 이하에서는 설명상의 편의상, 웹 어플리케이션을 기준으로 하여, 본 발명의 실시예들을 설명하도록 한다. 또한, 본 명세서에서 기술되는 데이터는 화면에 표시가능한 이미지 데이터 및 스크립트 데이터 등을 포함할 수 있다.
어플리케이션의 데이터를 렌더링하는 장치(100)는 어플리케이션(12)에 대한 정보를 수신할 수 있다. 한편, 어플리케이션(12)에 대한 정보는 어플리케이션(12) 실행시 렌더링되는 데이터에 대한 속성 정보를 포함할 수 있다. 예를 들어, 어플리케이션(12)에 대한 정보는 어플리케이션(12)의 소스 코드(source code)를 포함할 수 있다. 다만, 소스 코드는 어플리케이션(12)에 대한 정보의 일 실시예일뿐, 이에 한정되는 것은 아니다.
어플리케이션(12)의 데이터를 렌더링하는 장치(100)는 데이터에 대한 속성 정보 및 디바이스의 성능 정보 중 적어도 하나를 기초로 데이터의 렌더링 방법을 결정할 수 있다. 이에 대해서는 도 2 내지 도 4를 참고하여 구체적으로 후술하도록 한다.
도 2는 본 발명의 일 실시예에 따른 어플리케이션(12)의 데이터를 렌더링하는 방법을 설명하기 위한 흐름도이다.
단계 210에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 어플리케이션(12)의 소스 코드를 획득할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 외부 디바이스로부터 어플리케이션(12)의 소스 코드를 획득할 수 있다. 다른 실시예에 따르면, 어플리케이션의 데이터를 렌더링하는 장치(100)는 내부에 저장되어 있거나 외부 디바이스로부터 획득한 어플리케이션 패키지(package)로부터 소스 코드를 획득할 수도 있다.
어플리케이션 패키지(package)는 어플리케이션(12)의 소스 코드 및 어플리케이션(12)의 실행에 필요한 파일 등이 압축되어 있는 데이터일 수 있다. 어플리케이션의 데이터를 렌더링하는 장치(100)는 어플리케이션 패키지의 압축을 해제하여, 어플리케이션 패키지(package)로부터 소스 코드를 추출할 수 있다.
단계 220에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 획득한 소스 코드로부터 렌더링되는 데이터의 속성 정보를 추출할 수 있다. 여기에서 데이터의 속성 정보는 데이터에 포함된 객체의 형태, 음영, 색상, 위치, 재질, 크기등 GPU가 처리할 수 있는 모든 속성 중 적어도 하나를 포함할 수 있다. 또한, 여기에서 객체는 데이터를 구성하고 있는 모든 그래픽적 요소일 수 있다. 예를 들어,객체는 화면에 표시되는 이미지에 포함되는 사물 또는 배경일 수 있다. 또한, 객체는 데이터를 구성하고 있는 프로그래밍적 요소를 포함할 수 있다. 예를 들어 객체는 데이터를 구성하고 있는 코드일 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 획득한 소스 코드를 파싱(parsing)할 수 있다. 어플리케이션의 데이터를 렌더링하는 장치(100)는 파싱된 소스 코드로부터 데이터의 속성 정보를 추출할 수 있다.
단계 230에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 추출된 속성 정보에 기초하여, 데이터를 렌더링하는 방법을 결정할 수 있다. 본 발명의 일 실시예에 따른 데이터를 렌더링하는 방법은 WebGL(Web Graphic Library) 렌더링, CSS(Cascading Style Sheet) 렌더링 및 캔버스 렌더링 중 어느 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 추출된 속성 정보의 크기에 기초하여, 데이터를 렌더링하는 방법을 결정할 수 있다. 예를 들어, 데이터의 속성 정보의 크기가 100바이트인 데이터 A 와 데이터의 속성 정보의 크기가 50바이트인 데이터 B가 존재할 수 있다. 어플리케이션의 데이터를 렌더링하는 장치(100)는 상대적으로 속성 정보의 크기가 작은 데이터 B에 대한 렌더링 방법을 CSS 렌더링으로 결정할 수 있다. 일반적으로 CSS 렌더링은 속성 정보의 크기가 더 작은, 데이터를 렌더링하는데 사용될 수 있다. 일반적으로, 화면에 표시되는 이미지가 복잡하지 않은 경우, 데이터의 속성 정보의 크기가 작을 수 있다.
한편, 어플리케이션의 데이터를 렌더링하는 장치(100)는 데이터 A에 대한 렌더링 방법을 WebGL 렌더링이나 캔버스 렌더링 중 어느 하나의 방법으로 결정할 수 있다. 단, WebGL 렌더링의 경우 디바이스(14)의 모바일 브라우저에서 WebGL을 지원해 주는 경우에 한해 이용할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 기설정된 그룹에 기초하여, 데이터를 렌더링하는 방법을 결정할 수 있다. 예를 들어, 사용자는 데이터의 속성 정보의 크기를 기초로 분류된 각각의 그룹에 데이터를 렌더링하는 방법들을 각각 대응시킬 수 있다. CSS 렌더링의 경우, 일반적으로 속성 정보의 크기가 작은 데이터의 렌더링에 사용될 수 있다.한편, 본 발명의 다른 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 디바이스의 성능 정보에 기초하여 데이터를 렌더링하는 방법을 결정할 수도 있다. 예를 들어, 스마트 TV와 컴퓨터에서 동일한 렌더링 방법을 사용하는 경우, 디바이스의 성능에 따라 렌더링 결과가 달라질 수 있다.구체적으로, 컴퓨터에서 제 1 렌더링 방법을 이용하는 경우, 60FPS(Frame Per Seconds)의 비율로 어플리케이션(12)의 데이터에 대한 렌더링이 수행될 수 있다. 반면에, 스마트 TV 에서는 동일한 제 1 렌더링 방법을 이용하더라도 컴퓨터와의 성능 차이로 인해컴퓨터와동일한 속도로 렌더링을 수행하기 어려울 수 있다. 본 발명의 일 실시예에 따르면, 데이터의 속성 정보 뿐만 아니라 스마트 TV의 성능을 고려하여, 어플리케이션의 데이터를 렌더링하는 방법을 결정함으로써, 스마트 TV에서 어플리케이션을 실행할 경우, 성능이 떨어지는 문제를 개선할 수 있다.
도 3은 본 발명의 일 실시예에 따른, 어플리케이션(12)의 소스 코드를 변경하는 방법을 설명하는 방법을 설명하기 위한 흐름도이다.
단계 310에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 어플리케이션(12)의 소스 코드를 획득할 수 있다.
본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 외부 디바이스로부터 어플리케이션(12)의 소스 코드를 획득할 수 있다. 다른 실시예에 따르면, 어플리케이션의 데이터를 렌더링하는 장치(100)는 내부에 저장되어 있거나 외부 디바이스로부터 획득한 어플리케이션 패키지(package)로부터 소스 코드를 획득할 수도 있다.
단계 320에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 획득한 소스 코드로부터 어플리케이션(12)의 실행 화면에 표시되는 데이터의 속성 정보를 추출할 수 있다.
단계 330에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 추출된 속성 정보에 기초하여, 데이터를 렌더링하는 방법을 결정할 수 있다. 어플리케이션의 데이터를 렌더링하는 장치(100)는 추출된 속성 정보를 기초로, 어플리케이션(12) 실행시 성능을 최적으로 유지하기 위한 렌더링 방법을 결정할 수 있다. 본 발명의 일 실시예에 따르면, 어플리케이션의 데이터를 렌더링하는 장치(100)는 추출된 속성 정보의 크기에 기초하여 데이터를 렌더링하는 방법을 결정할 수 있다. 다른 실시예에 따르면, 어플리케이션의 데이터를 렌더링하는 장치(100)는 추출된 속성 정보의 크기 및 디바이스의 성능에 기초하여 데이터를 렌더링하는 방법을 결정할 수 있다.
단계 340에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 획득한 제 1 소스 코드와 결정된 렌더링 방법에 대응되는 제 2 소스 코드가 일치하는지 여부를 판단할 수 있다. 여기에서 결정된 렌더링 방법에 대응되는 제 2 소스 코드는 결정된 렌더링 방법에 의해 실행가능한 소스 코드일 수 있다. 즉, 제 2 소스 코드는 결정된 렌더링 방법에 따라 문법적으로 작성된 소스 코드일 수 있다. 예를 들어, 결정된 렌더링 방법이 WebGL 렌더링 방법인 경우, WebGL 렌더링 방법에 따라 문법적으로 작성된 소스 코드가 WebGL 렌더링 방법에 대응되는 제 2 소스 코드일 수 있다.
단계 350에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 제 1 소스 코드를 제 2 소스 코드로 변경할 수 있다. 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 어플리케이션(12) 실행에 최적화된 렌더링 방법을 이용할 수 있도록, 단계 330에서 결정된 렌더링 방법에 대응되는 제 2 소스 코드로 기존의 어플리케이션(12)이 작성된 제 1 소스 코드를 변경할 수 있다.
어플리케이션의 데이터를 렌더링하는 장치(100)는 각각의 렌더링 방법에 따라, 사용되는 소스 코드의 문법 구조, 함수 및 변수 등에 대한 정보를 저장할 수 있다. 또한, 어플리케이션의 데이터를 렌더링하는 장치(100)는 소스 코드를 변경하기 위해 각각의 렌더링 방법간에 소스 코드 관계에 대한 정보를 저장할 수 있다.
예를 들어, WebGL 렌더링의 경우, 데이터에 포함된 객체의 좌표값을 호출하는 명령어가 X인 반면에, CSS 렌더링의 경우, 데이터에 포함된 객체의 좌표값을 호출하는 명령어가 Y일 수 있다. 어플리케이션의 데이터를 렌더링하는 장치(100)는 WebGL 렌더링에 대응되는 소스 코드를 CSS 렌더링에 대응되는 소스 코드로 변경하는 경우, 저장된 소스 코드 관계에 대한 정보를 읽어와서, 객체의 좌표값을 호출하는 명령어 X를 명령어 Y로 변경할 수 있다.
또한, 예를 들어, WebGL 렌더링의 경우, 객체의 좌표값을 호출하는 명령어 X에 대한 변수가 3개인 반면에, CSS 렌더링의 경우, 객체의 좌표값을 호출하는 명령어 Y에 대한 변수가 2개일 수 있다. 이러한 경우, 어플리케이션의 데이터를 렌더링하는 장치(100)는 렌더링 방법별로 저장되어 있는 각각의 명령어에 대해 입력되는 변수들의 관계에 대한 정보를 이용하여, 소스 코드를 변경할 수 있다.
본 발명의 일 실시예에 따른, 어플리케이션의 데이터를 렌더링하는 장치(100)는 개발자가 어플리케이션(12)을 개발할 당시에 작성한 소스 코드가, 어플리케이션(12)을 실행하는데 있어, 최적화된 렌더링 방법에 대응되는 소스 코드가 아닌 경우에도, 소스 코드를 유동적으로 변경할 수 있다. 예를 들어, 개발자가 어플리케이션(12) 개발 당시에 CSS 렌더링이 적용되도록 소스 코드를 작성하였으나, 이후, 데이터의 속성 정보를 기초로 판단한 결과, WebGL 렌더링이 가장 적합한 렌더링 방법으로 결정될 수 있다. 이러한 경우, 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 어플리케이션(12)의 소스 코드를 CSS 렌더링에 대응되는 소스 코드로부터 WebGL 렌더링에 대응되는 소스 코드로 변경할 수 있다.
또한, 어플리케이션의 데이터를 렌더링하는 장치(100)는 결정된 렌더링 방법을 이용하기 위해 필요한 적어도 하나의 템플릿을 변경할 수도 있다. 여기에서 템플릿은 각각의 렌더링 방법 별로, 데이터 관련 정보를 처리하기 위해 일련의 함수들을 구조화한 기능 블록일 수 있다.
한편, 제 1 소스 코드와 제 2 소스 코드가 일치하는 경우에는 어플리케이션의 데이터를 렌더링하는 장치(100)는 소스 코드를 변경하지 않고, 기존에 어플리케이션(12)이 작성된 소스 코드에 대응되는 렌더링 방법을 이용하여, 렌더링을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)를 도시한 블록도이다.
도 4에 도시된 어플리케이션의 데이터를 렌더링하는 장치(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 4에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 4를 참고하면, 어플리케이션의 데이터를 렌더링하는 장치(100)는 입출력부(110) 및 제어부(120)를 포함할 수 있다.
입출력부(110)는 어플리케이션(12)의 소스 코드를 획득할 수 있다. 본 발명의 일 실시예에 따른 입출력부(110)는 외부 디바이스로부터 어플리케이션(12)의 소스 코드를 획득할 수 있다.
다른 실시예에 따르면, 어플리케이션의 데이터를 렌더링하는 장치(100)는 외부 디바이스로부터 어플리케이션 패키지를 획득할 수도 있다. 여기에서, 어플리케이션 패키지(package)는 어플리케이션(12)의 소스 코드 및 어플리케이션(12)의 실행에 필요한 파일 등이 압축되어 있는 데이터일 수 있다.
제어부(120)는 획득한 소스 코드로부터 렌더링되는 데이터의 속성 정보를 추출할 수 있다. 또한, 제어부(120)는 추출된 속성 정보에 기초하여, 데이터를 렌더링하는 방법을 결정할 수 있다. 여기에서 데이터의 속성 정보는 데이터에 포함된 객체의 형태, 음영, 색상, 위치, 재질, 크기등 GPU가 처리할 수 있는 모든 속성 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 제어부(120)는 추출된 속성 정보를 기초로, 어플리케이션(12) 실행시 성능을 최적으로 유지하기 위한 렌더링 방법을 결정할 수 있다. 예를 들어, 제어부(120)는 추출된 속성 정보의 크기에 기초하여 데이터를 렌더링하는 방법을 결정할 수 있다. 다른 예에 따르면, 제어부(120)는 추출된 속성 정보의 크기 및 디바이스의 성능에 기초하여 데이터를 렌더링하는 방법을 결정할 수 있다.
제어부(120)는 결정된 렌더링 방법에 기초하여 어플리케이션(12)의 소스 코드를 변경할 수 있다. 본 발명의 일 실시예에 따른, 제어부(120)는 획득한 제 1 소스 코드와 결정된 렌더링 방법에 대응되는 제 2 소스 코드가 일치하는지 여부를 판단할 수 있다. 여기에서 결정된 렌더링 방법에 대응되는 제 2 소스 코드는 결정된 렌더링 방법에 의해, 실행가능한 소스 코드일 수 있다. 즉, 제 2 소스 코드는 결정된 렌더링 방법에 따라 문법적으로 작성된 소스 코드일 수 있다.
제어부(120)는 제 1 소스 코드와 제 2 소스 코드가 일치하지 않는 경우, 제 1 소스 코드를 제 2 소스 코드로 변경할 수 있다. 본 발명의 일 실시예에 따른 제어부(120)는 제 1 소스 코드를 결정된 렌더링 방법에 대응되는 제 2 소스 코드로 변경하여 렌더링을 수행함으로써, 어플리케이션(12) 실행에 최적화된 렌더링 방법을 이용할 수 있다.
또한, 제어부(120)는 결정된 렌더링 방법을 이용하기 위해 필요한 적어도 하나의 템플릿을 변경할 수도 있다. 여기에서 템플릿은 각각의 렌더링 방법 별로, 데이터 관련 정보를 처리하기 위해 일련의 함수들을 구조화한 기능 블록일 수 있다.
한편, 제 1 소스 코드와 제 2 소스 코드가 일치하는 경우, 제어부(120)는 소스 코드를 변경하지 않고, 기존에 어플리케이션(12)이 작성된 제 1 소스 코드에 대응되는 렌더링 방법을 이용하여, 렌더링을 수행할 수 있다.
도 5는 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)가 변경된 어플리케이션(12)의 소스 코드에 기초하여, 어플리케이션(12)을 재구성하는 방법을 설명하기 위한 흐름도이다.
단계 510에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 어플리케이션(12)의 소스 코드를 획득할 수 있다.
단계 520에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 획득한 소스 코드로부터 어플리케이션(12)의 실행 화면에 표시되는 데이터의 속성 정보를 추출할 수 있다. 여기에서 데이터의 속성 정보는 데이터에 포함된 객체의 형태, 음영, 색상, 위치, 재질, 크기등 GPU가 처리할 수 있는 모든 속성 중 적어도 하나를 포함할 수 있다.
단계 530에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 추출된 속성 정보에 기초하여, 데이터를 렌더링하는 방법을 결정할 수 있다. 어플리케이션의 데이터를 렌더링하는 장치(100)는 추출된 속성 정보를 기초로, 어플리케이션(12) 실행시 성능을 최적으로 유지하기 위한 렌더링 방법을 결정할 수 있다.
단계 540에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 획득한 제 1 소스 코드와 결정된 렌더링 방법에 대응되는 제 2 소스 코드가 일치하는지 여부를 판단할 수 있다. 여기에서 결정된 렌더링 방법에 대응되는 제 2 소스 코드는 결정된 렌더링 방법에 의해, 실행가능한 소스 코드일 수 있다. 즉, 제 2 소스 코드는 결정된 렌더링 방법에 따라 문법적으로 작성된 소스 코드일 수 있다.
단계 550에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 제 1 소스 코드를 제 2 소스 코드로 변경할 수 있다. 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 제 1 소스 코드와 제 2 소스 코드가 일치하지 않는 경우, 제 1 소스 코드를 제 2 소스 코드로 변경할 수 있다. 또한, 어플리케이션의 데이터를 렌더링하는 장치(100)는 결정된 렌더링 방법을 이용하기 위해 필요한 적어도 하나의 템플릿을 변경할 수도 있다.
단계 560에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 변경된 제 2 소스 코드에 기초하여 어플리케이션(12)을 재구성할 수 있다. 본 발명의 일 실시예에 따라 디바이스(14)는 재구성된 어플리케이션(12)을 실행하는 과정에서 결정된 렌더링 방법을 기초로, 데이터를 렌더링함으로써 어플리케이션(12)의 성능을 최적화할 수 있다.
한편, 제 1 소스 코드와 제 2 소스 코드가 일치하는 경우에는 어플리케이션의 데이터를 렌더링하는 장치(100)는 소스 코드를 변경하지 않고, 기존에 어플리케이션이 작성된 소스 코드에 대응되는 렌더링 방법을 이용하여, 렌더링을 수행할 수 있다.
도 6은 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)를 도시한 블록도이다.
도 6에 도시된 어플리케이션의 데이터를 렌더링하는 장치(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 6에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 6을 참고하면, 어플리케이션의 데이터를 렌더링하는 장치(100)는 입출력부(110), 제어부(120) 및 패키징부(130)를 포함할 수 있다.
도 6의 입출력부(110) 및 제어부(120)는 도 4의 입출력부(110) 및 제어부(120)와 대응될 수 있다.
패키징부(130)는 변경된 제 2 소스 코드에 기초하여 어플리케이션(12)을 재구성할 수 있다. 본 발명의 일 실시예에 따라 디바이스(14)는 재구성된 어플리케이션을 실행하는 과정에서 결정된 렌더링 방법을 기초로, 데이터를 렌더링함으로써 어플리케이션의 성능을 최적화할 수 있다.
도 7는 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)가 변경된 어플리케이션의 소스 코드에 기초하여, 데이터를 렌더링하는 방법을 설명하기 위한 흐름도이다.
단계 710 내지 단계 750은 도 6의 단계 610 내지 단계 650과 대응될 수 있다.
단계 760에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 제 2 소스 코드에 대응되는 렌더링 방법을 이용하여 데이터를 렌더링할 수 있다.
단계 770에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 제 1 소스 코드에 대응되는 렌더링 방법을 이용하여 데이터를 렌더링할 수 있다.
도 8은 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)를 도시한 블록도이다.
도 8에 도시된 어플리케이션의 데이터를 렌더링하는 장치(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 8에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 8을 참고하면, 어플리케이션의 어플리케이션의 데이터를 렌더링하는 장치(100)는 입출력부(110), 제어부(120) 및 렌더링부(140)를 포함할 수 있다.
도 8의 입출력부(110) 및 제어부(120)는 도 4의 입출력부(110) 및 제어부(120)와 대응될 수 있다.
한편, 렌더링부(140)는 제어부(120)에서 제 1 소스 코드를 제 2 소스 코드로 변경한 경우, 제 2 소스 코드에 대응되는 렌더링 방법을 이용하여 데이터를 렌더링할 수 있다.
반면에, 제 1 소스 코드와 제 2 소스 코드가 일치하여, 제 1 소스 코드를 변경하지 않은 경우, 렌더링부(140)는 제 1 소스 코드에 대응되는 렌더링 방법을 이용하여 데이터를 렌더링할 수 있다.
도 9는 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)가 어플리케이션을 실행하는 중, 데이터를 렌더링하는 방법을 재결정하는 방법을 설명하기 위한 흐름도이다.
단계 910에서 어플리케이션의 데이터를 렌더링하는 장치(100)는 결정된 렌더링 방법에 기초하여, 데이터를 렌더링할 수 있다. 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)는 데이터의 속성 정보에 기초하여, 판단한 결과 어플리케이션 개발 당시에 작성된 소스 코드에 대응되는 렌더링 방법이 최적화된 렌더링 방법인 경우, 개발 당시 작성된 소스 코드에 대응되는 렌더링 방법을 이용하여 렌더링을 수행할 수 있다.
한편, 어플리케이션의 데이터를 렌더링하는 장치(100)에서 판단한 결과, 어플리케이션에 최적화된 렌더링 방법에 어플리케이션 개발 당시에 작성된 소스 코드에 대응되는 렌더링 방법과 상이한 경우, 렌더링 방법을 변경하여, 데이터에 대한 렌더링을 수행할 수 있다.
단계 920에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 기설정된 시간동안 렌더링되는 데이터의 개수를 산출할 수 있다. 여기에서 데이터의 개수는 기설정된 단위에 따라 산출될 수 있다. 예를 들어, 1초에 60프레임과 같이 프레임 단위로 렌더링되는 데이터의 개수를 산출할 수 있다.
단계 930에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 산출된 데이터의 개수가 임계값 미만인지 여부를 판단할 수 있다.
단계 940에서, 어플리케이션의 데이터를 렌더링하는 장치(100)는 산출된 데이터의 개수가 임계값 미만인 경우, 데이터를 렌더링하는 방법을 재결정할 수 있다.
한편, 본 발명의 일 실시예에 따른, 어플리케이션의 데이터를 렌더링하는 장치(100)는 재결정한 데이터를 렌더링하는 방법이 실행가능한지 여부를 판단할 수 있다. 판단 결과, 실행가능한 경우, 어플리케이션의 데이터를 렌더링하는 장치(100)는 재결정된 렌더링 방법에 의해, 데이터를 렌더링할 수 있도록 현재의 소스 코드를 재결정된 렌더링 방법에 대응되는 소스 코드로 변경할 수 있다. 또한, 어플리케이션의 데이터를 렌더링하는 장치(100)는 변경된 소스 코드에 기초하여 데이터를 렌더링할 수 있다.
한편, 본 발명의 일 실시예에 따른, 어플리케이션의 데이터를 렌더링하는 장치(100)는 소정 주기로 기설정된 시간동안 렌더링되는 데이터의 개수를 산출할 수 있다. 어플리케이션의 데이터를 렌더링하는 장치(100)는 렌더링 방법을 변경한 이후에도, 기설정된 시간동안 렌더링되는 데이터의 개수를 산출하여, 산출된 데이터의 개수가 임계값 미만인 경우, 데이터를 렌더링 하는 방법을 계속적으로 재결정할 수 있다.
도 10은 본 발명의 일 실시예에 따른 어플리케이션의 데이터를 렌더링하는 장치(100)를 도시한 블록도이다.
도 10에 도시된 어플리케이션의 데이터를 렌더링하는 장치(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 10에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 10을 참고하면, 어플리케이션의 어플리케이션의 데이터를 렌더링하는 장치(100)는 입출력부(110), 제어부(120), 렌더링부(140) 및 산출부(150)를 포함할 수 있다.
도 10의 입출력부(110) 및 제어부(120)는 도 4의 입출력부(110) 및 제어부(120)와 대응될 수 있다.
입출력부(110)는 어플리케이션의 소스 코드를 획득할 수 있다. 본 발명의 일 실시예에 따른 입출력부(110)는 외부 디바이스로부터 어플리케이션(12)의 소스 코드를 획득할 수 있다. 다른 실시예에 따르면, 어플리케이션의 데이터를 렌더링하는 장치(100)는 외부 디바이스로부터 어플리케이션 패키지를 획득할 수도 있다.
제어부(120)는 획득한 소스 코드로부터 어플리케이션의 실행 화면에 표시되는 데이터의 속성 정보를 추출할 수 있다. 또한, 제어부(120)는 추출된 속성 정보에 기초하여, 데이터를 렌더링하는 방법을 결정할 수 있다. 여기에서 데이터의 속성 정보는 데이터에 포함된 객체의 형태, 음영, 색상, 위치, 재질, 크기등 GPU가 처리할 수 있는 모든 속성 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시예에 따른 제어부(120)는 추출된 속성 정보를 기초로, 어플리케이션 실행시 성능을 최적으로 유지하기 위한 렌더링 방법을 결정할 수 있다. 예를 들어, 제어부(120)는 추출된 속성 정보의 크기에 기초하여 데이터를 렌더링하는 방법을 결정할 수 있다. 다른 예에 따르면, 제어부(120)는 추출된 속성 정보의 크기 및 디바이스의 성능에 기초하여 데이터를 렌더링하는 방법을 결정할 수 있다.
제어부(120)는 결정된 렌더링 방법에 기초하여 어플리케이션의 소스 코드를 변경할 수 있다. 제어부(120)는 제 1 소스 코드와 제 2 소스 코드가 일치하지 않는 경우, 제 1 소스 코드를 제 2 소스 코드로 변경할 수 있다.
또한, 제어부(120)는 결정된 렌더링 방법을 이용하기 위해 필요한 적어도 하나의 템플릿을 변경할 수도 있다. 여기에서 템플릿은 각각의 렌더링 방법 별로, 데이터 관련 정보를 처리하기 위해 일련의 함수들을 구조화한 기능 블록일 수 있다.
한편, 제 1 소스 코드와 제 2 소스 코드가 일치하는 경우, 제어부(120)는 소스 코드를 변경하지 않고, 기존에 어플리케이션이 작성된 소스 코드에 대응되는 렌더링 방법을 이용하여, 렌더링을 수행할 수 있다.
한편, 렌더링부(140)는 제어부(120)에서 제 1 소스 코드를 제 2 소스 코드로 변경한 경우, 제 2 소스 코드에 대응되는 렌더링 방법을 이용하여 데이터를 렌더링할 수 있다.
반면에, 제 1 소스 코드와 제 2 소스 코드가 일치하여, 제 1 소스 코드를 변경하지 않은 경우, 렌더링부(140)는 제 1 소스 코드에 대응되는 렌더링 방법을 이용하여 데이터를 렌더링할 수 있다.
산출부(150)는 기설정된 시간동안 렌더링되는 데이터의 개수를 산출할 수 있다. 여기에서 데이터의 개수는 기설정된 단위에 따라 산출될 수 있다. 예를 들어, 프레임 단위로 렌더링되는 데이터의 개수를 산출할 수 있다.
또한, 산출부(150)는 산출된 데이터의 개수가 임계값 미만인지 여부를 판단할 수 있다. 산출부(150)는 산출된 데이터의 개수가 임계값 미만인 경우, 데이터를 렌더링하는 방법을 재결정할 수 있다.
한편, 본 발명의 일 실시예에 따른, 제어부(120)는 산출부(150)에서 재결정한 데이터를 렌더링하는 방법이 실행가능한지 여부를 판단할 수 있다. 판단 결과, 실행가능한 경우, 제어부(120)는 재결정된 렌더링 방법에 의해, 데이터를 렌더링할 수 있도록 현재의 소스 코드를 재결정된 렌더링 방법에 대응되는 소스 코드로 변경할 수 있다. 또한, 제어부(120)는 변경된 소스 코드에 기초하여 데이터를 렌더링하도록 렌더링부(140)를 제어할 수 있다.
본 발명의 일 실시예에 따른, 산출부(150)는 소정 주기로 기설정된 시간동안 렌더링되는 데이터의 개수를 산출할 수 있다. 산출부(150)는 렌더링 방법을 변경한 이후에도, 기설정된 시간동안 렌더링되는 데이터의 개수를 산출하여, 산출된 데이터의 개수가 임계값 미만인 경우, 데이터를 렌더링 하는 방법을 계속적으로 재결정할 수 있다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다.  소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다.  여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다.  컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다.  매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다.  이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다.  예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다.  본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다.  기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다.  또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.  “매커니즘”, “요소”, “수단”, “구성”과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.  상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다.  명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다.  또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다.  또한, “필수적인”, “중요하게” 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
10: 어플리케이션의 데이터를 렌더링하는 시스템
12: 어플리케이션
14: 디바이스
100: 어플리케이션의 데이터를 렌더링하는 장치

Claims (21)

  1. 데이터 렌더링 장치가 어플리케이션의 데이터를 렌더링하는 방법에 있어서,
    어플리케이션의 소스 코드(source code)를 획득하는 단계;
    상기 획득한 소스 코드로부터 상기 어플리케이션의 실행 화면에 표시되는 데이터의 속성 정보를 추출하는 단계;
    상기 추출된 속성 정보의 크기를 결정하는 단계; 및
    상기 결정된 속성 정보의 크기에 기초하여, 상기 데이터를 렌더링하는 방법을 결정하는 단계를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  2. 제 1항에 있어서,
    상기 결정된 렌더링 방법에 기초하여, 상기 어플리케이션의 소스 코드를 변경하는 단계를 더 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  3. 제 2항에 있어서, 상기 어플리케이션의 소스 코드를 변경하는 단계는,
    상기 획득한 제 1 소스 코드와 상기 결정된 렌더링 방법에 대응되는 제 2 소스 코드가 일치하지 않는 경우, 상기 제 1 소스 코드를 상기 제 2 소스 코드로 변경하는 단계를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  4. 제 1항에 있어서, 상기 데이터의 속성 정보를 추출하는 단계는,
    상기 획득한 소스 코드를 파싱(parsing)하는 단계; 및
    상기 파싱된 소스 코드로부터 상기 데이터의 속성 정보를 추출하는 단계를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  5. 제 1항에 있어서, 상기 데이터의 속성 정보는,
    상기 데이터에 포함된 객체의 형태, 음영, 색상, 위치, 재질, 크기에 대한 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  6. 제 1항에 있어서, 상기 렌더링하는 방법은,
    WebGL 렌더링, CSS 렌더링 및 캔버스 렌더링 중 어느 하나를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  7. 제 2 항에 있어서,
    상기 변경된 소스 코드에 기초하여 상기 어플리케이션을 재구성하는 단계를 더 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  8. 제 2 항에 있어서,
    상기 변경된 소스 코드에 대응되는 렌더링 방법을 선택하는 단계; 및
    상기 선택된 렌더링 방법을 이용하여, 상기 데이터를 렌더링하는 단계를 더 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  9. 제 8 항에 있어서,
    기설정된 시간 동안 렌더링되는 데이터의 개수를 산출하는 단계;
    상기 산출된 데이터의 개수에 기초하여 상기 데이터를 렌더링하는 방법을 재결정하는 단계를 더 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  10. 제 9 항에 있어서, 상기 재결정하는 단계는,
    상기 산출된 데이터의 개수가 임계값 미만인 경우, 상기 데이터를 렌더링하는 방법을 재결정하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 방법.
  11. 어플리케이션의 데이터를 렌더링하는 장치에 있어서,
    어플리케이션의 소스 코드(source code)를 획득하는 입출력부;
    상기 획득한 소스 코드로부터 상기 어플리케이션의 실행 화면에 표시되는 데이터의 속성 정보를 추출하고, 상기 추출된 속성 정보의 크기를 결정하고, 상기 결정된 속성 정보의 크기에 기초하여, 상기 데이터를 렌더링하는 방법을 결정하는 제어부를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  12. 제 11항에 있어서, 상기 제어부는,
    상기 결정된 렌더링 방법에 기초하여, 상기 어플리케이션의 소스 코드를 변경하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  13. 제 12항에 있어서, 상기 제어부는,
    상기 획득한 제 1 소스 코드와 상기 결정된 렌더링 방법에 대응되는 제 2 소스 코드가 일치하지 않는 경우, 상기 제 1 소스 코드를 상기 제 2 소스 코드로 변경하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  14. 제 11항에 있어서, 상기 제어부는,
    상기 획득한 소스 코드를 파싱(parsing)하고, 상기 파싱된 소스 코드로부터 상기 데이터의 속성 정보를 추출하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  15. 제 11항에 있어서, 상기 데이터의 속성 정보는,
    상기 데이터에 포함된 객체의 형태, 음영, 색상, 위치, 재질, 크기에 대한 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  16. 제 11항에 있어서, 상기 렌더링하는 방법은,
    WebGL 렌더링, CSS 렌더링 및 캔버스 렌더링 중 어느 하나를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  17. 제 12 항에 있어서, 상기 어플리케이션의 데이터를 렌더링하는 장치는,
    상기 변경된 소스 코드에 기초하여 상기 어플리케이션을 재구성하는 패키징(packaging)부를 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  18. 제 12 항에 있어서, 상기 어플리케이션의 데이터를 렌더링하는 장치는,
    상기 제어부가 변경된 소스 코드에 기초하여 선택한 렌더링 방법을 이용하여, 데이터를 렌더링하는 렌더링부를 더 포함하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  19. 제 18 항에 있어서, 상기 어플리케이션의 데이터를 렌더링하는 장치는,
    기설정된 시간 동안 렌더링되는 데이터의 개수를 산출하는 산출부를 더 포함하고,
    상기 제어부는 상기 산출된 데이터의 개수에 기초하여 상기 데이터를 렌더링하는 방법을 재결정하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  20. 제 19 항에 있어서, 상기 제어부는,
    상기 산출된 데이터의 개수가 임계값 미만인 경우, 상기 데이터를 렌더링하는 방법을 재결정하는 것을 특징으로 하는 어플리케이션의 데이터를 렌더링하는 장치.
  21. 제 1항 내지 제 10항 중 어느 하나의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020130134361A 2013-11-06 2013-11-06 어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체 KR102146557B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130134361A KR102146557B1 (ko) 2013-11-06 2013-11-06 어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체
US14/534,500 US20150128029A1 (en) 2013-11-06 2014-11-06 Method and apparatus for rendering data of web application and recording medium thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130134361A KR102146557B1 (ko) 2013-11-06 2013-11-06 어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체

Publications (2)

Publication Number Publication Date
KR20150052922A KR20150052922A (ko) 2015-05-15
KR102146557B1 true KR102146557B1 (ko) 2020-08-21

Family

ID=53008005

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130134361A KR102146557B1 (ko) 2013-11-06 2013-11-06 어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체

Country Status (2)

Country Link
US (1) US20150128029A1 (ko)
KR (1) KR102146557B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016218924A (ja) * 2015-05-25 2016-12-22 富士通株式会社 情報処理装置、電子機器、情報処理プログラム及び処理プログラム
US10979672B1 (en) * 2020-10-20 2021-04-13 Katmai Tech Holdings LLC Web-based videoconference virtual environment with navigable avatars, and applications thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
US20120167122A1 (en) 2010-12-27 2012-06-28 Nokia Corporation Method and apparatus for pre-initializing application rendering processes
US20130093780A1 (en) * 2011-10-12 2013-04-18 Google Inc. Layered digital image data reordering and related digital image rendering engine
JP5287041B2 (ja) 2007-08-29 2013-09-11 株式会社リコー データ処理システム、コンピュータ読取可能なデータ記憶媒体及び方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0107784D0 (en) * 2001-03-28 2001-05-16 Hewlett Packard Co Improvement relating to developing documents
NO20034724D0 (no) * 2003-10-22 2003-10-22 Opera Software Asa Presentasjon av HTML-innhold på en skjermterminal
US8095565B2 (en) * 2005-12-05 2012-01-10 Microsoft Corporation Metadata driven user interface
WO2008157322A1 (en) * 2007-06-13 2008-12-24 Quattro Wireless, Inc. Displaying content on a mobile device
US9576068B2 (en) * 2010-10-26 2017-02-21 Good Technology Holdings Limited Displaying selected portions of data sets on display devices
WO2012160499A1 (en) * 2011-05-23 2012-11-29 Strangeloop Networks, Inc. Optimized rendering of dynamic content
CN102929871A (zh) * 2011-08-08 2013-02-13 腾讯科技(深圳)有限公司 一种网页浏览方法、装置及移动终端
US9386341B2 (en) * 2013-05-09 2016-07-05 Espial Group Inc. Optimized HTML5 electronic programming guide application
US9497252B2 (en) * 2014-03-31 2016-11-15 International Business Machines Corporation On-demand code version switching

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110157196A1 (en) * 2005-08-16 2011-06-30 Exent Technologies, Ltd. Remote gaming features
JP5287041B2 (ja) 2007-08-29 2013-09-11 株式会社リコー データ処理システム、コンピュータ読取可能なデータ記憶媒体及び方法
US20120167122A1 (en) 2010-12-27 2012-06-28 Nokia Corporation Method and apparatus for pre-initializing application rendering processes
US20130093780A1 (en) * 2011-10-12 2013-04-18 Google Inc. Layered digital image data reordering and related digital image rendering engine

Also Published As

Publication number Publication date
KR20150052922A (ko) 2015-05-15
US20150128029A1 (en) 2015-05-07

Similar Documents

Publication Publication Date Title
CN108010112B (zh) 动画处理方法、装置及存储介质
US7698628B2 (en) Method and system to persist state
KR101623415B1 (ko) 드로잉 방법, 장치, 및 단말
US20150039996A1 (en) System and method for dynamically converting webpage, and computer-readable recording medium
US9558542B2 (en) Method and device for image processing
CN107168780B (zh) 虚拟现实场景的加载方法、设备及虚拟现实设备
KR100829564B1 (ko) 효율적으로 모션 블러 효과를 제공하는 3차원 그래픽스렌더링 방법 및 장치
US20180084302A1 (en) Method and apparatus for content insertion during video playback, and storage medium
CN109045694B (zh) 虚拟场景显示方法、装置、终端及存储介质
CN109788212A (zh) 一种分段视频的处理方法、装置、终端和存储介质
CN111857878B (zh) 骨架屏页面生成方法、装置、电子设备及存储介质
CN111833417A (zh) 安卓应用程序实现黑白模式的方法及系统
CN110910477A (zh) 页面动画显示方法、装置和计算机可读存储介质
KR102146557B1 (ko) 어플리케이션의 데이터를 렌더링하는 방법, 장치 및 기록매체
CN109343770B (zh) 交互反馈方法、设备和记录介质
CN104252362A (zh) 网页展现方法和装置
US8645822B2 (en) Multi-platform presentation system
CN110971955B (zh) 页面处理方法及装置、电子设备以及存储介质
CN110708591B (zh) 一种图像处理方法、装置及电子设备
CN111402369A (zh) 互动广告的处理方法、装置、终端设备及存储介质
CN105573705A (zh) 一种显示控制方法及终端
WO2014024255A1 (ja) 端末および動画再生プログラム
CN112367399B (zh) 滤镜效果生成方法及装置、电子设备以及存储介质
CN114092590A (zh) 电子设备及其图像渲染性能的评估方法、介质
JP7260150B2 (ja) Webサイト設計支援装置、Webサイト設計支援方法、及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant