KR101787527B1 - 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법 - Google Patents

다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법 Download PDF

Info

Publication number
KR101787527B1
KR101787527B1 KR1020160038855A KR20160038855A KR101787527B1 KR 101787527 B1 KR101787527 B1 KR 101787527B1 KR 1020160038855 A KR1020160038855 A KR 1020160038855A KR 20160038855 A KR20160038855 A KR 20160038855A KR 101787527 B1 KR101787527 B1 KR 101787527B1
Authority
KR
South Korea
Prior art keywords
code
platform
information
business logic
logic
Prior art date
Application number
KR1020160038855A
Other languages
English (en)
Other versions
KR20170112171A (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 KR1020160038855A priority Critical patent/KR101787527B1/ko
Priority to US15/140,680 priority patent/US9823908B2/en
Publication of KR20170112171A publication Critical patent/KR20170112171A/ko
Application granted granted Critical
Publication of KR101787527B1 publication Critical patent/KR101787527B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/47Retargetable compilers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션의 개발을 위한 프레임워크를 지원하는 방법은, 상기 프레임워크를 지원하기 위한 장치가, 플랫폼 독립적인 UI(User Interface) 정보 및 범용 언어로 작성된 비즈니스 로직(Business Logic) 정보를 획득하는 단계를 포함한다. 상기 지원 방법은, 상기 장치가, 상기 다중 플랫폼 중의 적어도 하나의 플랫폼을 위한 UI 코드로서, 상기 획득된 UI 정보에 대응되는 플랫폼 종속적인 UI 코드를 생성하는 프로세스, 및 상기 적어도 하나의 플랫폼을 위한 비즈니스 로직 코드로서, 상기 획득된 비즈니스 로직 정보에 대응되는 비즈니스 로직 코드를 생성하는 프로세스를 수행하는 단계를 더 포함한다.

Description

다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법{FRAMEWORK SUPPORTING APPARATUS FOR DEVELOPING CLIENT APPLICATION UNDER MULTI-PLATFORM ENVIRONMENT, AND METHOD USING THE SAME}
본 발명은 클라이언트 애플리케이션 개발을 위한 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법에 관한 것이며, 더 구체적으로는 복수 개의 플랫폼을 지원하는 클라이언트 애플리케이션 개발을 용이하게 하기 위하여 이용되는 개발 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법에 관한 것이다.
최근 스마트폰 등 서로 다른 운영체제와 다양한 형태를 가진 모바일 기기의 사용이 대중화되면서 애플리케이션 개발 및 운영이 매우 복잡해지고 있다. 그러한 애플리케이션은 시장 또는 고객의 요구에 따라 특정 플랫폼 위에서뿐만 아니라 다수의 플랫폼 위에서 작동될 필요가 있을 수 있다. 하나의 애플리케이션을 안드로이드(Android), iOS, 윈도우 8 등 다양한 플랫폼에서 지원하기 위하여 애플리케이션 개발 업체 및 개발자가 각 플랫폼에 따라 별도로 개발을 진행한다면 많은 시간과 비용을 투자하여야 한다. 이에 따라 한번의 개발로 여러 플랫폼을 지원하여 특정 플랫폼에 국한되지 않는 클라이언트 애플리케이션 개발 기술에 대한 관심이 높아지고 있다.
종래의 일반적인 크로스 플랫폼의 클라이언트 애플리케이션 개발 기술은 특정 플랫폼에서 작동할 수 있는 클라이언트 애플리케이션을 특정 플랫폼과 다른 이종의 플랫폼에서 작동하도록 하는 기술이다. 더 상세하게는, 종래의 크로스 플랫폼의 클라이언트 애플리케이션 개발 기술에서는, 클라이언트 애플리케이션이 이종의 플랫폼에서 작동할 수 있도록 각 플랫폼 상에 작동하는 가상의 플랫폼을 제공하고 클라이언트 애플리케이션을 그 가상 플랫폼 위에서 작동할 수 있도록 하는 방식이 제공되었다. 예를 들면 JavaTM 가상 기계 기술 및 웹 브라우저 상에서 작동하는 웹 애플리케이션 기술이 여기에 포함된다.
종래의 방식으로서 이러한 별도 플랫폼을 도입하여 개발된 클라이언트 애플리케이션은 이종의 플랫폼만의 고유한 리소스(resource)에 직접 접근할 수 없는바, 종래의 방식은 플랫폼의 차이를 고려하지 않는 UI를 통하여 이종의 플랫폼이 가지고 있는 고유의 기능들(예컨대 각 플랫폼에서의 네이티브(native) API, 및 고유한 UI의 특징적 요소들)을 직접적으로 사용하지 못하며, 결과적으로 사용자로 하여금 이질감을 느끼게 한다는 문제, 그리고/또는 각 플랫폼의 네이티브 API를 활용하지 못함으로써 실행 시 성능이 저하된다는 문제가 발생한다.
또한, 종래에 기업이 하나의 애플리케이션을 다양한 플랫폼에서 지원하기 위하여 각 플랫폼마다 별도의 개발과정을 거쳐야 했는바, 이는 각 플랫폼마다 다른 개발자를 운용해야 하고 각 플랫폼마다 별도의 개발 기간을 진행해야 하기 때문에 높은 생산 비용이 불가피하다.
본 발명은 하나의 일관된 UI 정보를 가지고 다수의 플랫폼에서 작동하는 UI 코드를 자동으로 생성해냄으로써 종래의 크로스 플랫폼 클라이언트 개발 방식과 동등한 정도로 개발 시간을 단축하면서도 그 생성된 UI 코드에 의해 제공되는 UI가 플랫폼 고유의 UI적 특징을 가지며 네이티브 애플리케이션과 동일한 성능을 가지도록 하는 것을 목적으로 한다.
또한, 본 발명은 UI 코드와 비즈니스 로직 코드를 각각 생성하고 관리함으로써 플랫폼에 맞춤형으로 개발 환경을 제공하고자 하는 것을 다른 목적으로 한다.
본 발명의 일 태양에 따르면, 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션의 개발을 위한 프레임워크를 지원하는 방법이 제공되는바, 그 방법은, 상기 프레임워크를 지원하기 위한 장치가, 플랫폼 독립적인 UI(User Interface) 정보 및 범용 언어로 작성된 비즈니스 로직(Business Logic) 정보를 획득하는 단계; 및 상기 장치가, (i) 상기 다중 플랫폼 중의 적어도 하나의 플랫폼을 위한 UI 코드로서, 상기 획득된 UI 정보에 대응되는 플랫폼 종속적인 UI 코드를 생성하는 프로세스, 및 (ii) 상기 적어도 하나의 플랫폼을 위한 비즈니스 로직 코드로서, 상기 획득된 비즈니스 로직 정보에 대응되는 비즈니스 로직 코드를 생성하는 프로세스를 수행하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션의 개발을 위한 프레임워크를 지원하는 프로그램 제품으로서, 상기 지원 프로그램이 상기 프레임워크를 지원하기 위한 장치에서 실행되는 때에, (a) 상기 장치가, 플랫폼 독립적인 UI 정보 및 범용 언어로 작성된 비즈니스 로직 정보를 획득하는 단계; 및 (b) 상기 장치가, (i) 상기 다중 플랫폼 중의 적어도 하나의 플랫폼을 위한 UI 코드로서, 상기 획득된 UI 정보에 대응되는 플랫폼 종속적인 UI 코드를 생성하는 프로세스, 및 (ii) 상기 적어도 하나의 플랫폼을 위한 비즈니스 로직 코드로서, 상기 획득된 비즈니스 로직 정보에 대응되는 비즈니스 로직 코드를 생성하는 프로세스를 수행하는 단계;를 수행하게 하는 컴퓨터 프로그램 제품이 제공된다.
본 발명의 또 다른 태양에 따르면, 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션의 개발을 위한 프레임워크를 지원하기 위한 장치로서, (a) 플랫폼 독립적인 UI 정보 및 범용 언어로 작성된 비즈니스 로직 정보를 획득하는 통신부; 및 (b) (i) 상기 다중 플랫폼 중의 적어도 하나의 플랫폼을 위한 UI 코드로서, 상기 획득된 UI 정보에 대응되는 플랫폼 종속적인 UI 코드를 생성하는 프로세스, 및 (ii) 상기 적어도 하나의 플랫폼을 위한 비즈니스 로직 코드로서, 상기 획득된 비즈니스 로직 정보에 대응되는 비즈니스 로직 코드를 생성하는 프로세스를 수행하는 프로세서;를 포함하는, 장치가 제공된다.
본 발명에 의하면, 기존의 크로스 플랫폼 기술들이 가지고 있던 한계를 극복하여, 각 플랫폼의 네이티브 API를 이용할 수 있도록 함으로써 사용자가 이질감을 느끼지 않도록 플랫폼과 일관되는 UI를 제공하면서도 보다 빠른 성능을 나타내는 클라이언트 애플리케이션 개발이 가능해진다.
또한, 본 발명에 의하면, UI 코드와 비즈니스 로직 코드를 각각 생성하고 관리함으로써 플랫폼에 맞춤형으로 개발 환경을 제공할 수 있다.
또한, 본 발명에 의하면, 네이티브 애플리케이션과 동일한 성능을 가지도록 할 수 있다.
또한, 본 발명에 의하면, 한번의 개발을 통하여 다양한 플랫폼에 적합한 애플리케이션을 제공할 수 있기 때문에 애플리케이션 개발의 생산성과 편의성의 향상을 도모할 수 있다.
또한, 본 발명에 의하면, 애플리케이션을 운용하는 도중 애플리케이션의 기능을 개선할 필요가 있거나 기능이 추가될 필요가 있는 경우 유지보수 비용을 낮출 수 있으며 유지보수의 용이성 또한 배가된다.
본 발명의 실시예들에서 기술적 해법을 더 분명하게 보여주기 위하여 실시예들의 설명에 이용될 필요가 있는 도면들이 아래에서 간단히 설명될 것이다. 물론, 아래에 제시된 도면들은 본 발명의 실시예들 중 단지 일부일 뿐이며, 해당 기술분야의 통상의 기술자에게 있어서는 발명적 작업이 이루어짐 없이 이 도면들에 기초하여 다른 도면들이 얻어질 수 있다.
도 1은 본 발명의 일 실시예에 있어서 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션의 개발을 위한 프레임워크를 지원하기 위한 장치의 동작을 개략적으로 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따라 도 1의 프레임워크를 지원하기 위한 장치에 의하여 개별 플랫폼에 적합한 클라이언트 애플리케이션이 생성되는 과정을 개략적으로 도시한 개념도이다.
도 3은 본 발명의 일 실시예에 따라 상기 프레임워크를 지원하기 위한 장치를 더 상세하게 도시한 블록도이다.
본 발명의 목적들, 기술적 해법들 및 장점들을 분명하게 하기 위하여, 본 발명의 실시예들의 더 상세한 설명이 첨부된 도면들을 참조하여 논의될 것이다. 이들 실시예는 본 발명 기술분야의 통상의 기술자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다.
또한, 본 발명의 상세한 설명 및 청구항들에 걸쳐, '포함하다'라는 단어 및 그것의 변형은 다른 기술적 특징들, 부가물들, 구성요소들 또는 단계들을 제외하는 것으로 의도되지 않는다. 해당 기술분야의 통상의 기술자에게 본 발명의 다른 목적들, 장점들, 특성들이, 일부는 본 설명서로부터, 그리고 일부는 본 발명의 실시로부터 드러날 것이다. 아래 예시들 및 도면들은 실례로서 제공되며, 본 발명을 한정하는 것으로 의도되지 않는다.
더욱이 본 발명은 본 명세서에 표시된 실시예들의 모든 가능한 조합들을 망라한다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
본 명세서에 달리 표시되거나 분명히 문맥에 모순되지 않는 한, 단수로 지칭된 항목은, 그 문맥이 달리 요구하지 않는 한, 복수의 것을 아우른다. 이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 있어서 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션의 개발을 위한 프레임워크를 지원하기 위한 장치의 동작을 개략적으로 설명하는 도면이다.
도 1을 참조하면, 상기 프레임워크를 지원하기 위한 장치(100)는 통신부(110)와 프로세서(120)를 포함할 수 있다.
구체적으로, 통신부(110)는 사용자 인터페이스 정보(10) 및 비즈니스 로직(Business Logic) 정보(20)를 획득할 수 있다.
또한, 프로세서(120)는 상기 통신부(110)가 획득한 사용자 인터페이스 정보(10)에 대응되는 사용자 인터페이스 코드(30) 및 상기 통신부(110)가 획득한 비즈니스 로직 정보(20)에 대응되는 비즈니스 로직 코드(40)를 생성할 수 있는데, 사용자 인터페이스 코드(30)를 생성하는 프로세스를 수행하기 위하여 사용자 인터페이스 생성기(User Interface Generator)를 포함할 수 있고, 비즈니스 로직 코드(40)를 생성하는 프로세스를 수행하기 위하여 로직 번역기(Logic Translator)를 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따라 도 1의 장치(100)에 의하여 개별 플랫폼(예컨대, 안드로이드, iOS 등)에 적합한 클라이언트 애플리케이션이 생성되는 과정을 개략적으로 도시한 개념도이다.
도 2를 참조하면, 개발자가 사용하는 클라이언트 애플리케이션, 장치(100)에 포함되어 있는 번역 모듈(50), 각각의 플랫폼의 예시로서 안드로이드 애플리케이션 및 iOS 애플리케이션을 도시하고 있다.
구체적으로, 클라이언트 애플리케이션은 사용자 인터페이스 정보(11) 및 비즈니스 로직 정보(12)을 포함하고 있고, 번역 모듈(50)은 사용자 인터페이스 코드 생성기(51) 및 로직 코드 번역기(52)를 포함하고 있으며, 안드로이드 애플리케이션 및 iOS 애플리케이션은 각각 해당되는 사용자 인터페이스 코드(31, 32) 및 비즈니스 로직 코드(41, 42)를 포함하고 있다.
보다 구체적으로, 사용자 인터페이스 정보(11)는 사용자와의 상호작용을 지원하는 기능을 수행하고, 비즈니스 로직 정보(12)는 애플리케이션 내부의 처리 루틴에 해당할 수 있다.
다음으로, 클라이언트 애플리케이션 개발자가 본 프레임워크를 통하여 클라이언트 애플리케이션의 사용자 인터페이스 정보(11)와 비즈니스 로직 정보(21)를 작성하게 되면, 해당 내용은 통신부(110)에 의하여 장치(100)에 입력된 후, 프로세서(120)에 의하여 수행되는 사용자 인터페이스 생성기(51)와 비즈니스 로직 번역기(52)를 각각 거쳐 각 플랫폼에 적합한 사용자 인터페이스 코드(31, 32)와 로직 코드(41, 42)로 전환된다.
참고로, 각각의 비즈니스 로직(21, 41, 42)의 경우 각 플랫폼마다 사용하는 프로그래밍 언어가 다를 뿐, 지원하는 요소나 방법들이 플랫폼마다 크게 다르지 않기 때문에 상대적으로 플랫폼에 대체로 비종속적(독립적)이라고 할 수 있는 반면, 사용자 인터페이스(11, 31, 32)는 각 플랫폼마다 지원하는 요소나 요소를 지원하는 방법이 다르기 때문에 상대적으로 플랫폼 종속적일 수 있다.
장치(100)는 플랫폼에 비종속적인 클라이언트 애플리케이션의 UI 구성을 위하여 독립적인 UI 요소들을 정의하는 사용자 인터페이스 정보를 통하여 기술하는 것을 허용한다. 그러한 사용자 인터페이스 정보는 예컨대 SGML, HTML, XML, XHTML, SVG, MathML, MXML, XAML, TEX, LATEX, PTEX, JSON, SAMI와 같은 마크업 언어로 작성될 수 있다.
더 구체적으로, 상기 사용자 인터페이스 정보는 매니페스트 정보(manifest 정보), 메타데이터(metadata 정보), 리소스(이미지, 비디오, 컬러 등), 기타 UI 관련 정보를 포함할 수 있다. 그 중 매니페스트 정보는 애플리케이션 전체에 대한 정보 등을 나타내며, 이 매니페스트 정보에는 애플리케이션의 이름이나 전환할 타겟 플랫폼에 대한 정보 등이 기술되어 있다. 한편, 메타데이터 정보에는 특정 페이지의 레이아웃 정보 등과 같은 애플리케이션의 화면 구성에 대한 정보 등이 기술되어 있다.
도 3은 본 발명의 일 실시예에 따라 상기 프레임워크를 지원하기 위한 장치를 더 상세하게 도시한 블록도이다.
도 3을 참조하면, 장치(100)는 레거시 컨버터(1), 사용자 인터페이스 코드 생성기(51), 로직 코드 번역기(52) 및 애플리케이션 빌더(55)를 포함할 수 있다.
구체적으로, 레거시 컨버터(1)는 기존 애플리케이션을 본 프레임워크(장치(100)에 의해 제공되는 프레임워크)에 의하여 다양한 플랫폼에 제공할 수 있도록 지원하기 위하여 기존 애플리케이션의 UI를 본 프레임워크에 제공하는 사용자 인터페이스 정보의 형식으로 변환해주는 구성요소이다. 본 발명에서 비즈니스 로직의 경우에는 범용적인 하나의 언어를 사용하기 때문에 비즈니스 로직의 변경 없이 본 레거시 컨버터에 의한 기존 애플리케이션의 UI 변경만으로 다양한 플랫폼 기반의 애플리케이션으로의 전환을 지원할 수 있게 된다. 다만, 반드시 필요한 구성요소는 아닐 것이다.
다음으로, UI 코드 생성기(51)는 개발자가 작성한 사용자 인터페이스 정보나 레거시 컨버터에 의하여 변환된 사용자 인터페이스 정보를 전달받아 각 플랫폼에 적합한 사용자 인터페이스 코드를 생성하고 파일로 저장하는 과정을 수행하며 구체적으로는 다음과 같다.
먼저, 매니페스트 정보(11a), 메타데이터 정보(11b) 및 기타 UI 관련 정보(미도시)가 리소스(이미지, 비디오, 컬러 등)(11c)와 함께 UI 코드 생성기(51)에 전달된다. 해당 정보들은 파싱(parsing)되어 요소 레지스트리(Element Registry)(51a)에 저장된다. 플랫폼 코드 생성기(51b)는 요소 레지스트리(51a)에 저장된 정보를 읽어 들이고 매니페스트 정보(11a)에서 지정한 타겟 플랫폼에 적합한 UI 코드들을 생성한다. 이렇게 생성된 각 플랫폼에 해당하는 사용자 인터페이스 코드들은 소스 생성기(Source Generator)(51c)가 전달받아 해당 플랫폼의 소스 코드 파일로 전환된 후 애플리케이션 빌더(Application Builder)(55)에 전달될 수 있다.
다음으로, 로직 코드 번역기(52)에서는 범용적인 하나의 언어로 작성된 비즈니스 로직 정보를 각 플랫폼에 적합한 로직 코드로 전환하고 파일로 저장하는 과정이 이루어지는바 구체적으로는 다음과 같다.
먼저, 코드 분석기(Code Analyzer)(52a)는 개발자로부터 작성된 비즈니스 로직 코드를 전달받아 트리 형태로 파싱한다. 그 다음, 전처리기(PreProcessor)(52b)는 로직에 존재하긴 하지만 실제 실행되지 않는 데드 코드(Dead code) 삭제 등과 같은 코드 최적화와 같은 작업들을 수행할 수 있다. 플랫폼 코드 번역기(Platform Code Translator)(52c)에서는 전처리기(52b)에 의하여 처리된 코드를 타겟 플랫폼에 적합한 로직 코드로 변환하여 후처리기(PostProcessor)(52d)에 전달한다. 후처리기(52d)에서는 각 플랫폼 별로 지정된 추가 작업을 수행한다. 이렇게 후처리기(52d)에 의하여 처리된 코드는 최종적으로 각 플랫폼의 로직 코드로 되어 애플리케이션 빌더(55)에 전달될 수 있다.
최종적으로 애플리케이션 빌더(55)는 UI 코드 생성기(51)와 로직 코드 번역기(52)로부터 전달받은 각 플랫폼의 사용자 인터페이스 코드와 로직 코드를 컴파일하여 각 플랫폼에서 실행가능한 애플리케이션을 생성한다. 상기 사용자 인터페이스 코드 및 로직 코드는 본 발명에 의하여 제공되는 장치(100)에 포함된 애플리케이션 빌더(55)에 의하여 링크/컴파일되거나 개별적인 플랫폼에 제공되는 여타 컴파일러에 의하여 링크/컴파일될 수 있는바, 이에 의하여 실행가능한 형태의 클라이언트 애플리케이션이 생성된다. 참고로, 컴파일러는 링커를 포함할 수도 있을 것이다.
상기 실시예로서 여기에서 설명된 기술의 이점은, 다수의 플랫폼에 적합한 사용자 인터페이스 코드를 생성할 수 있는 공통된 사용자 인터페이스 정보를 한 번에 작성할 수 있다는 점과, 그러한 사용자 인터페이스 정보를 통하여 생성된 사용자 인터페이스 코드는 마찬가지로 범용 언어로부터 각 플랫폼에 적합하게 번역(translate)된 비즈니스 로직 코드와 함께 링크/컴파일되어 클라이언트 애플리케이션이 생성될 수 있는, 전체적으로 각 플랫폼에 적합한 최종 코드 셋을 형성한다는 점이다.
위 실시예의 설명에 기초하여 해당 기술분야의 통상의 기술자는, 본 발명이 소프트웨어 및 하드웨어의 결합을 통해서 달성되거나 하드웨어만으로만 달성될 수 있지만 주로 전자의 경우로 달성될 것이라는 점을 명확하게 이해할 수 있다. 본 발명의 기술적 해법의 대상물 또는 선행 기술들에 기여하는 부분은 소프트웨어의 형태로 표현될 수 있고, 상기 컴퓨터 소프트웨어 제품은, 예컨대 플로피 디스크, 하드 디스크, 광학 디스크 등등의 컴퓨터 저장 매체에 저장될 수 있으며, (개인용 컴퓨터, 서버, 네트워크 장치 등등일 수 있는) 컴퓨팅 장치가 본 발명의 다양한 실시예들에 따른 방법을 수행하도록 하거나 본 발명의 다양한 실시예들에 언급된 체계를 구현하기 위하여 범용 하드웨어 장치를 본 발명의 장치로 구성하기 위한 위에서 언급된 방법의 여러 인스트럭션(instruction)을 포함한다. 그 범용 하드웨어 장치는 인스트럭션들을 저장하기 위한 ROM/RAM 등과 같은 메모리, 상기 메모리와 결합되고 상기 메모리에 저장된 지시들을 실행하도록 구성되는 CPU와 같은 프로세서를 포함하며, 개발자들에 의하여 작성된 코드들을 전달받기 위한 키보드, 마우스, 기타 외부 입력장치 또는 저장장치를 아우르는 통신부를 구비할 수 있다.
위에서 설명된 내용들은 본 발명의 실시가능한 한 가지 실시예일 뿐, 본 발명을 한정하도록 의도된 것은 아닌바, 본 발명의 원리 및 사상 내에 속하는 임의의 변경물들, 균등적 대체물들, 및 개량물들이 본 발명의 보호 범위 내에 포함되어야 할 것이다.

Claims (14)

  1. 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션의 개발을 위한 프레임워크를 지원하는 방법에 있어서,
    (a) 상기 프레임워크를 지원하기 위한 장치가, 레거시 컨버터(legacy converter)를 이용하여 기(旣) 작성되어 있는 UI 코드를 변환한 플랫폼 독립적인 UI(User Interface) 정보를 획득하고, 범용 언어로 작성된 비즈니스 로직(Business Logic) 정보를 획득하는 단계;
    (b) 상기 장치가, (i) 상기 다중 플랫폼 중의 적어도 하나의 플랫폼을 위한 UI 코드로서, 상기 획득된 UI 정보에 대응되는 플랫폼 종속적인 UI 코드를 생성하는 프로세스, 및 (ii) 상기 적어도 하나의 플랫폼을 위한 비즈니스 로직 코드로서, 상기 획득된 비즈니스 로직 정보에 대응되는 비즈니스 로직 코드를 생성하는 프로세스를 수행하는 단계; 및
    (c) 상기 장치가, 상기 생성된 UI 코드 및 상기 생성된 비즈니스 로직 코드에 의하여, 상기 적어도 하나의 플랫폼 위에서 실행가능한 클라이언트 애플리케이션을 생성하는 단계;
    를 포함하되,
    상기 장치가 UI 코드 생성기, 로직 코드 번역기 및 애플리케이션 빌더를 포함하고, 상기 UI 코드 생성기에는 요소 레지스트리, 플랫폼 코드 생성기, 소스 생성기가 포함되어 있으며, 상기 로직 코드 번역기에는 코드 분석기, 전처리기, 플랫폼 코드 번역기, 후처리기가 포함되어 있는 상태에서, (i) 매니페스트 정보, 메타데이터 정보 및 리소스 정보를 포함하는 상기 획득된 UI 정보가 상기 UI 코드 생성기에 전달되고, 상기 정보들 중 적어도 일부는 파싱(parsing)되어 상기 요소 레지스트리에 저장되며, 상기 플랫폼 코드 생성기는 상기 매니페스트 정보에 포함된 타겟 플랫폼을 참조하여 상기 요소 레지스트리에 저장된 정보들을 읽어 상기 타겟 플랫폼에 적합한 UI 코드를 생성하고, 상기 소스 생성기는 상기 타겟 플랫폼에 적합한 UI 코드를 상기 타겟 플랫폼의 소스 코드 파일로 전환한 후 상기 애플리케이션 빌더에 전달하며, (ii) 상기 획득된 비지니스 로직 정보는 상기 로직 코드 번역기의 코드 분석기로 파싱(parsing)되고, 상기 전처리기에 의해 데드 코드(Dead code) 삭제를 포함한 코드 최적화 작업이 수행되며, 상기 플랫폼 코드 번역기에서는 상기 전처리기에 의하여 처리된 코드를 상기 타겟 플랫폼에 적합한 로직 코드로 변환하여 상기 후처리기에 전달하고, 상기 후처리기는 상기 타겟 플랫폼에 지정된 추가 작업을 수행하며 상기 타겟 플랫폼의 로직 코드를 파일로 전환한 후 상기 애플리케이션 빌더에 전달하며, (iii) 상기 애플리케이션 빌더는 획득한 상기 소스 코드 파일과 상기 로직 코드 파일을 컴파일하여 상기 타겟 플랫폼 위에서 실행가능한 클라이언트 애플리케이션을 생성하는 것을 특징으로 하는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 생성된 UI 코드는 상기 플랫폼의 네이티브 API(Native API)를 직접 이용하는 UI 코드인 것을 특징으로 하는 방법.
  4. 제1항에 있어서,
    상기 UI 정보의 적어도 일부는, 마크업 언어(markup language)로 작성된 것을 특징으로 하는 방법.
  5. 제4항에 있어서,
    상기 마크업 언어는, 하나의 플랫폼에 종속되지 않고 독립적인 UI 요소들을 정의한 SGML, HTML, XML, XHTML, SVG, MathML, MXML, XAML, TEX, LATEX, PTEX, JSON 및 SAMI 중의 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  6. 삭제
  7. 삭제
  8. 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션의 개발을 위한 프레임워크를 지원하기 위한 장치로서,
    레거시 컨버터(legacy converter)를 이용하여 기(旣) 작성되어 있는 UI 코드를 변환한 플랫폼 독립적인 UI 정보를 획득하고, 범용 언어로 작성된 비즈니스 로직 정보를 획득하는 통신부; 및
    (i) 상기 다중 플랫폼 중의 적어도 하나의 플랫폼을 위한 UI 코드로서, 상기 획득된 UI 정보에 대응되는 플랫폼 종속적인 UI 코드를 생성하는 프로세스, 및 (ii) 상기 적어도 하나의 플랫폼을 위한 비즈니스 로직 코드로서, 상기 획득된 비즈니스 로직 정보에 대응되는 비즈니스 로직 코드를 생성하는 프로세스를 수행하고, 상기 생성된 UI 코드 및 상기 생성된 비즈니스 로직 코드에 의하여, 상기 적어도 하나의 플랫폼 위에서 실행가능한 클라이언트 애플리케이션을 생성하는 프로세스를 수행하는 프로세서;
    를 포함하되,
    상기 장치가 UI 코드 생성기, 로직 코드 번역기 및 애플리케이션 빌더를 포함하고, 상기 UI 코드 생성기에는 요소 레지스트리, 플랫폼 코드 생성기, 소스 생성기가 포함되어 있으며, 상기 로직 코드 번역기에는 코드 분석기, 전처리기, 플랫폼 코드 번역기, 후처리기가 포함되어 있는 상태에서, (i) 매니페스트 정보, 메타데이터 정보 및 리소스 정보를 포함하는 상기 획득된 UI 정보가 상기 UI 코드 생성기에 전달되고, 상기 정보들 중 적어도 일부는 파싱(parsing)되어 상기 요소 레지스트리에 저장되며, 상기 플랫폼 코드 생성기는 상기 매니페스트 정보에 포함된 타겟 플랫폼을 참조하여 상기 요소 레지스트리에 저장된 정보들을 읽어 상기 타겟 플랫폼에 적합한 UI 코드를 생성하고, 상기 소스 생성기는 상기 타겟 플랫폼에 적합한 UI 코드를 상기 타겟 플랫폼의 소스 코드 파일로 전환한 후 상기 애플리케이션 빌더에 전달하며, (ii) 상기 획득된 비지니스 로직 정보는 상기 로직 코드 번역기의 코드 분석기로 파싱(parsing)되고, 상기 전처리기에 의해 데드 코드(Dead code) 삭제를 포함한 코드 최적화 작업이 수행되며, 상기 플랫폼 코드 번역기에서는 상기 전처리기에 의하여 처리된 코드를 상기 타겟 플랫폼에 적합한 로직 코드로 변환하여 상기 후처리기에 전달하고, 상기 후처리기는 상기 타겟 플랫폼에 지정된 추가 작업을 수행하며 상기 타겟 플랫폼의 로직 코드를 파일로 전환한 후 상기 애플리케이션 빌더에 전달하며, (iii) 상기 애플리케이션 빌더는 획득한 상기 소스 코드 파일과 상기 로직 코드 파일을 컴파일하여 상기 타겟 플랫폼 위에서 실행가능한 클라이언트 애플리케이션을 생성하는 것을 특징으로 하는 장치.
  9. 삭제
  10. 제8항에 있어서,
    상기 생성된 UI 코드는 상기 플랫폼의 네이티브 API(Native API)를 직접 이용하는 UI 코드인 것을 특징으로 하는 장치.
  11. 제8항에 있어서,
    상기 UI 정보의 적어도 일부는, 마크업 언어(markup language)로 작성된 것을 특징으로 하는 장치.
  12. 제11항에 있어서,
    상기 마크업 언어는, 하나의 플랫폼에 종속되지 않고 독립적인 UI 요소들을 정의한 SGML, HTML, XML, XHTML, SVG, MathML, MXML, XAML, TEX, LATEX, PTEX, JSON 및 SAMI 중의 적어도 하나를 포함하는 것을 특징으로 하는 장치.
  13. 삭제
  14. 삭제
KR1020160038855A 2016-03-31 2016-03-31 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법 KR101787527B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160038855A KR101787527B1 (ko) 2016-03-31 2016-03-31 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법
US15/140,680 US9823908B2 (en) 2016-03-31 2016-04-28 Apparatus for providing framework to develop client application executed on multiple platforms, and method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160038855A KR101787527B1 (ko) 2016-03-31 2016-03-31 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법

Publications (2)

Publication Number Publication Date
KR20170112171A KR20170112171A (ko) 2017-10-12
KR101787527B1 true KR101787527B1 (ko) 2017-10-24

Family

ID=59961519

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160038855A KR101787527B1 (ko) 2016-03-31 2016-03-31 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법

Country Status (2)

Country Link
US (1) US9823908B2 (ko)
KR (1) KR101787527B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102352265B1 (ko) * 2021-12-08 2022-01-17 하승석 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107894901A (zh) * 2017-11-01 2018-04-10 福建新大陆支付技术有限公司 一种传统金融应用向智能终端平台迁移的方法及系统
CN110580147B (zh) * 2018-06-07 2022-07-05 阿里巴巴集团控股有限公司 一种应用程序的开发方法和装置
CN109799988B (zh) * 2018-12-13 2022-03-15 深圳壹账通智能科技有限公司 iOS页面布局方法、终端设备及计算机可读存储介质
KR102293178B1 (ko) * 2019-03-27 2021-08-25 주식회사 티맥스 소프트 데이터 변환 서버 및 컴퓨터 프로그램
KR101995571B1 (ko) 2019-05-15 2019-07-02 진영식 렌즈용 스페이서 제조장치
CN111273917A (zh) * 2019-07-19 2020-06-12 深圳市鸿合创新信息技术有限责任公司 一种安卓应用的安装方法
KR102094479B1 (ko) 2019-08-22 2020-03-27 진영식 렌즈용 스페이서 제조장치
KR102517420B1 (ko) * 2021-07-29 2023-04-03 주식회사 소디스 차량에 탑재되는 연결 제어 장치 및 연결 제어 장치의 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101195413B1 (ko) 2011-12-23 2012-10-29 주식회사 한글과컴퓨터 어플리케이션 개발 장치 및 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6640249B1 (en) * 1999-08-31 2003-10-28 Accenture Llp Presentation services patterns in a netcentric environment
CA2348706A1 (en) * 2001-05-25 2002-11-25 Ibm Canada Limited-Ibm Canada Limitee Converting user interface source code of a legacy application to web pages
US20060123345A1 (en) * 2004-12-06 2006-06-08 International Business Machines Corporation Platform-independent markup language-based gui format
US20060212408A1 (en) * 2005-03-17 2006-09-21 Sbc Knowledge Ventures L.P. Framework and language for development of multimodal applications
US8006223B2 (en) * 2007-06-13 2011-08-23 International Business Machines Corporation Method and system for estimating project plans for packaged software applications
US7971180B2 (en) * 2007-06-13 2011-06-28 International Business Machines Corporation Method and system for evaluating multi-dimensional project plans for implementing packaged software applications
US20120023479A1 (en) * 2010-07-21 2012-01-26 Moress Gregory S method and a computer program product for automatically generating a user interface for an application program
US9038019B2 (en) * 2013-02-05 2015-05-19 Sap Se Paige control for enterprise mobile applications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101195413B1 (ko) 2011-12-23 2012-10-29 주식회사 한글과컴퓨터 어플리케이션 개발 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
손현승, 김우열, 김영철, 이종 스마트폰 앱을 위한 모델 변환 도구 개발, 2013 추계학술발표회 논문집, 한국정보과학회, 2013.11..*

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102352265B1 (ko) * 2021-12-08 2022-01-17 하승석 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법

Also Published As

Publication number Publication date
US20170286073A1 (en) 2017-10-05
US9823908B2 (en) 2017-11-21
KR20170112171A (ko) 2017-10-12

Similar Documents

Publication Publication Date Title
KR101787527B1 (ko) 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법
El-Kassas et al. Taxonomy of cross-platform mobile applications development approaches
CN110020307B (zh) 一种客户端视图的绘制方法和装置
US8959477B2 (en) Scripting language for business applications
CN105354014B (zh) 应用界面渲染展示方法及装置
US9442744B2 (en) Multilingual build integration for compiled applications
US8745573B2 (en) Platform-independent application development framework
CN106997298B (zh) 一种应用资源获取方法及装置
US8762963B2 (en) Translation of programming code
CN110780853A (zh) 前端框架及开发方法、存储介质、电子设备
CN105354013A (zh) 应用界面渲染方法及装置
CN116069325B (zh) 前端项目构建方法、装置、设备及计算机可读存储介质
Soukaras et al. IoTSuite: a ToolSuite for prototyping internet of things applications
CN113031932A (zh) 项目开发方法、装置、电子设备及存储介质
CN112114890A (zh) 小程序的处理方法、装置、设备及存储介质
JP2007122135A (ja) 開発支援装置、開発支援方法、および、開発支援プログラム
CN107025124B (zh) 网页技术开发单机软件的系统架构
US11604662B2 (en) System and method for accelerating modernization of user interfaces in a computing environment
CN115113850A (zh) 一种跨平台应用的构建、运行方法、服务器、终端和系统
CN110362317B (zh) 一种代码转换方法、装置和存储介质
Cirilo et al. Model driven RichUbi: a model driven process for building rich interfaces of context-sensitive ubiquitous applications
Cooper et al. GWT in Practice
Hjort Evaluation of React Native and Flutter for cross-platform mobile application development
Lachgar et al. Dsl and code generator for accelerating ios apps development
Kao et al. Designing an XML-based context-aware transformation framework for mobile execution environments using CC/PP and XSLT

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