KR102360646B1 - 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템 - Google Patents

유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템 Download PDF

Info

Publication number
KR102360646B1
KR102360646B1 KR1020210090375A KR20210090375A KR102360646B1 KR 102360646 B1 KR102360646 B1 KR 102360646B1 KR 1020210090375 A KR1020210090375 A KR 1020210090375A KR 20210090375 A KR20210090375 A KR 20210090375A KR 102360646 B1 KR102360646 B1 KR 102360646B1
Authority
KR
South Korea
Prior art keywords
information
application
code
user account
source
Prior art date
Application number
KR1020210090375A
Other languages
English (en)
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 KR1020210090375A priority Critical patent/KR102360646B1/ko
Application granted granted Critical
Publication of KR102360646B1 publication Critical patent/KR102360646B1/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/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • 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/40Transformation of program code
    • G06F8/41Compilation
    • 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/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

본 발명은 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템에 있어서, 유저 계정으로부터 어플리케이션을 제작하기 위해 필요한 정보인 입력 정보를 수신하는 경우, 어플리케이션을 제작하기 위한 어플리케이션 제작 프로세스를 시작하는 제작 시작부; 상기 어플리케이션 제작 프로세스가 시작되는 경우, 상기 수신된 입력 정보를 기반으로, 제작할 어플리케이션의 플랫폼 타입(platform type)을 확인하여, 확인된 플랫폼 타입에 대응되는 레시피 정보를 로드하는 레시피 로드부; 상기 레시피 정보의 로드가 완료되면, 상기 로드된 레시피 정보에 기반한 제1 소스 코드(source code)에 상기 입력 정보를 결합하여, 상기 제작할 어플리케이션에 대한 최종 소스 정보를 생성하는 최종 소스 생성부; 및 상기 최종 소스 정보의 생성이 완료되면, 상기 최종 소스 정보를 기반으로, 오브젝트 파일을 생성하여, 상기 생성된 오브젝트 파일을 기반으로, 상기 어플리케이션에 대한 실행 파일을 생성하는 실행 파일 생성부;를 포함하는 것을 특징으로 한다. 이 외에도 본 문서를 통해 파악되는 다양한 실시예들이 가능하다.

Description

유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템{AUTOMATIC APPLICATION CREATION SYSTEM BASED ON USER ACCOUNT INPUT INFORMATION}
본 발명은 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템에 관한 것으로서, 구체적으로는 유저 계정으로부터 입력 정보를 수신하는 경우, 입력 정보를 기반으로 제작할 어플리케이션의 플랫폼 타입을 확인하고, 확인된 플랫폼 타입에 대응되는 레시피 정보를 로드하여, 레시피 정보에 기반한 소스 코드와 입력 정보를 기반으로, 어플리케이션을 자동으로 생성함으로써, 전문 지식이 없는 일반인들도 쉽게 어플리케이션을 제작하도록 하는 효과를 제공하는 기술에 관한 것이다.
카카오톡, 쿠팡, 배달의민족, 삼성 페이는 국내 스마트폰 사용자 대다수가 사용하고 있는 어플리케이션이다. 앱 생태계가 발달하면서 오프라인 중심이던 산업 구조가 모바일로 이전되고 있는 추세이다. 이러한 추세에 따라, 다양한 산업 분야에서도 손쉽게 고객들을 유치하고 다양한 수익 구조를 구축하기 위하여 어플리케이션을 활용한 기술을 개발하고 있다. 그러나, 어플리케이션의 제작은 소프트웨어와 관련된 전문 지식을 보유하고 있는 전공인들에 의해 주로 이루어지고 있기 때문에, 자본력이 부족한 스타트 업이나 소프트웨어와 관련된 전문 지식을 보유하고 있는 전공인이 없는 기업들은 어플이케이션 제작에 큰 어려움이 존재하며, 어플리케이션 제작 의뢰에도 고비용이 지출되는 문제점이 있었다.
이에 따라, 일반인들도 어플리케이션을 쉽게 제작하기 위한 다양한 기술들이 개발되고 있다.
일 예로서, 한국공개특허 10-2012-0014389(스마트폰 어플리케이션 제작 솔루션)에는 사용자가 어플리케이션 비주얼 제작 프로그램에 포함된 그래픽 유저 인터페이스 기능 및 소스 변환기 기능을 통해 어플리케이션을 생성하는 기술이 개시되어 있다.
그러나, 상술한 선행기술은 단순히 어플리케이션 비주얼 제작 프로그램 내에 위치한 화면 구성 등을 마우스 드래그&드롭(drag&drop)으로 변경하여 생성하는 기술만이 개시되어 있을 뿐, 유저 계정으로부터 입력 정보를 수신하는 경우, 자동으로 어플리케이션을 생성하는 어플리케이션 제작 프로세스를 시작하여, 입력 정보를 기반으로 제작할 어플리케이션의 플랫폼 타입을 확인하고, 확인된 플랫폼 타입에 대응되는 레시피 정보를 로드하여, 레시피 정보에 기반한 소스 코드와 입력 정보를 기반으로, 어플리케이션을 자동으로 생성하는 기술은 개시되어 있지 않아, 이를 해결할 수 있는 기술의 필요성이 대두되고 있다.
이에 본 발명은, 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템을 통해 유저 계정으로부터 입력 정보를 수신하는 경우, 입력 정보를 기반으로 제작할 어플리케이션의 플랫폼 타입을 확인하고, 확인된 플랫폼 타입에 대응되는 레시피 정보를 로드하여, 레시피 정보에 기반한 소스 코드와 입력 정보를 기반으로, 어플리케이션을 자동으로 생성함으로써, 소프트웨어와 관련된 전문 지식을 보유하고 있지 않은 일반인들도 저비용으로 쉽게 간편하게 어플리케이션을 제작하도록 하는 것에 그 목적이 있다.
본 발명의 일 실시예에 따른 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템에 있어서, 유저 계정으로부터 어플리케이션을 제작하기 위해 필요한 정보인 입력 정보를 수신하는 경우, 어플리케이션을 제작하기 위한 어플리케이션 제작 프로세스를 시작하는 제작 시작부; 상기 어플리케이션 제작 프로세스가 시작되는 경우, 상기 수신된 입력 정보를 기반으로, 제작할 어플리케이션의 플랫폼 타입(platform type)을 확인하여, 확인된 플랫폼 타입에 대응되는 레시피 정보를 로드하는 레시피 로드부; 상기 레시피 정보의 로드가 완료되면, 상기 로드된 레시피 정보에 기반한 제1 소스 코드(source code)에 상기 입력 정보를 결합하여, 상기 제작할 어플리케이션에 대한 최종 소스 정보를 생성하는 최종 소스 생성부; 및 상기 최종 소스 정보의 생성이 완료되면, 상기 최종 소스 정보를 기반으로, 오브젝트 파일을 생성하여, 상기 생성된 오브젝트 파일을 기반으로, 상기 어플리케이션에 대한 실행 파일을 생성하는 실행 파일 생성부;를 포함하는 것을 특징으로 한다.
상기 입력 정보는, 상기 제1 소스 코드에 결합되는 리소스(resource) 정보 및 상기 제작할 어플리케이션의 플랫폼 타입이 어떤 타입인지를 확인하기 위한 프로토타입(prototype) 정보를 포함하되, 상기 플랫폼 타입은, 안드로이드 타입(android type), 아이오에스 타입(ios type) 및 모바일 웹 타입(mobile web type)을 포함하는 것이 바람직하다.
상기 레시피 정보는, 기 저장된 레시피 테이블에 포함된 복수 개의 레시피 정보 중 상기 최종 소스 정보에 기반한 제2 소스 코드를 생성하기 위한 하나의 정보로써, 상기 확인된 플랫폼 타입에 대응되는 정보이되, 상기 리소스 정보가 결합되는 코드 정보인 제1 소스 코드, 상기 제1 소스 코드에 상기 리소스 정보를 결합하는 과정인 빌드 프로세스에 기반한 빌드(build) 정보, 상기 제2 소스 코드를 지정된 신택스(syntax) 정보에 기반하여 생성되도록 하는 코드 수정 정보, 상기 제2 소스 코드를 상기 레시피 정보에 대응되는 플랫폼 타입의 특성에 기반하여 생성되도록 하는 코드 변경 정보를 포함하는 것이 가능하다.
상기 최종 소스 생성부는, 상기 레시피 정보의 로드가 완료되는 경우, 상기 리소스 정보를 상기 로드된 레시피 정보에 포함된 제1 소스 코드에 결합하기 위한 결합 프로세스를 시작하는 결합 프로세스 시작부; 상기 결합 프로세스가 시작되는 경우, 상기 빌드 정보에 기반한 빌드 프로세스에 따라 상기 제1 소스 코드에 상기 리소스 정보를 결합하여, 상기 제작할 어플리케이션에 대한 최종 소스 정보를 생성하는 코드 결합부; 상기 코드 결합부에 의해 상기 최종 소스 정보의 생성이 완료된 경우, 상기 최종 소스 정보에 기반한 제2 소스 코드에 대한 오류 검사를 시작하는 코드 오류 탐색부; 상기 코드 오류 탐색부에 의해 상기 제2 소스 코드가 지정된 신택스 정보에 기반하여 생성되지 않은 것이 확인되는 경우, 상기 코드 수정 정보를 기반으로, 상기 제2 소스 코드의 코드 값을 상기 지정된 신택스 정보에 따라 수정하는 코드 수정부; 및 상기 코드 오류 탐색부에 의해 상기 제2 소스 코드가 상기 확인된 플랫폼 타입에 대응하지 않은 것이 확인되는 경우, 상기 코드 변경 정보를 기반으로, 상기 제2 소스 코드의 코드 값을 상기 확인된 플랫폼 타입에 대응하도록 변경하는 코드 변경부;를 포함하는 것이 가능하다.
상기 최종 소스 생성부는, 상기 유저 계정으로부터 플러그인 모듈(plugin module) 정보를 수신하는 경우, 상기 생성된 최종 소스 정보에 기반한 제2 소스 코드에 상기 플러그인 모듈 정보를 결합하되, 상기 제2 소스 코드에 상기 플러그인 모듈 정보를 결합하기 이전에, 상기 제2 소스 코드와 상기 플러그인 모듈 정보 간에 호환성 검사를 실시하는 것이 가능하다.
상기 실행 파일 생성부는, 상기 최종 소스 생성부에 의해 상기 최종 소스 정보의 생성이 완료된 경우, 파일 생성 프로세스를 시작하는 파일 생성 프로세스 시작부; 및 상기 파일 생성 프로세스가 시작되는 경우, 상기 최종 소스 정보에 기반한 제2 소스 코드를 지정된 컴파일러(compiler)를 통해 변환하여, 상기 오브젝트 파일을 생성하는 오브젝트 파일 생성부;를 포함하되, 상기 지정된 컴파일러는, 상기 오브젝트 파일을 생성하기 위해 상기 제2 소스 코드를 상기 확인된 플랫폼 타입의 언어(language)로 변환하는 프로그램인 것이 가능하다.
상기 실행 파일 생성부는, 보안 결합부;를 더 포함하고, 상기 보안 결합부는, 상기 오브젝트 파일의 생성이 완료되는 경우, 상기 유저 계정으로부터 수신한 패키지 아이디(package id) 및 어플리케이션 고유 인증서 정보(keystore & certificate)를 상기 오브젝트 파일에 결합하는 보안 정보 결합부; 상기 보안 정보 결합부에 의해 상기 오브젝트 파일에 상기 패키지 아이디및 상기 어플리케이션 고유 인증서 정보의 결합이 완료되면, 상기 유저 계정에 대한 고유 어플리케이션으로 암호화된 어플리케이션의 실행 파일을 생성하는 최종 어플리케이션 파일 생성부;를 포함하는 것이 가능하다.
어플리케이션 제공부;를 더 포함하고, 상기 어플리케이션 제공부는, 상기 유저 계정에 대한 고유 어플리케이션으로 암호화된 어플리케이션의 실행 파일의 생성이 완료되면, 상기 유저 계정에게 상기 실행 파일을 전송하여, 상기 어플리케이션 제작 프로세스를 종료하는 것이 가능하다.
본 발명인 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템을 통해 소프트웨어와 관련된 전문 지식이 없는 일반인들도 쉽고 간편하게 어플리케이션을 제작할 수 있다.
또한, 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템은 소스 코드와 유저 계정이 입력한 외부 플러그인 정보 간의 호환성 검사를 실시하여, 소스 코드에 결합되는 외부 플러그인이 오류 없이 작동되도록 할 수 있다.
또한, 소스 코드에 리소스 정보 결합이 완료되면, 결합된 소스 코드에 대한 오류 검사를 실시함으로써, 실행 파일을 생성하기 전에 코드 오류를 수정할 수 있다.
도 1은 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 최종 소스 생성부를 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 최종 소스 생성부를 설명하기 위한 다른 도면이다.
도 4는 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 실행 파일 생성부를 설명하기 위한 블록도이다.
도 5는 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 기능 수행 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 실행 파일 생성부를 설명하기 위한 다른 도면이다.
도 7는 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 내부 구성의 일 예를 설명하기 위한 도면이다.
이하에서는, 다양한 실시 예들 및/또는 양상들이 이제 도면들을 참조하여 개시된다. 하기 설명에서는 설명을 목적으로, 하나이상의 양상들의 전반적 이해를 돕기 위해 다수의 구체적인 세부사항들이 개시된다. 그러나, 이러한 양상(들)은 이러한 구체적인 세부사항들 없이도 실행될 수 있다는 점 또한 본 발명의 기술 분야에서 통상의 지식을 가진 자에게 인식될 수 있을 것이다. 이후의 기재 및 첨부된 도면들은 하나 이상의 양상들의 특정한 예시적인 양상들을 상세하게 기술한다. 하지만, 이러한 양상들은 예시적인 것이고 다양한 양상들의 원리들에서의 다양한 방법들 중 일부가 이용될 수 있으며, 기술되는 설명들은 그러한 양상들 및 그들의 균등물들을 모두 포함하고자 하는 의도이다.
본 명세서에서 사용되는 "실시 예", "예", "양상", "예시" 등은 기술되는 임의의 양상 또는 설계가 다른 양상 또는 설계들보다 양호하다거나, 이점이 있는 것으로 해석되지 않을 수도 있다.
또한, "포함한다" 및/또는 "포함하는"이라는 용어는, 해당 특징 및/또는 구성요소가 존재함을 의미하지만, 하나이상의 다른 특징, 구성요소 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는 것으로 이해되어야 한다.
또한, 제 1, 제 2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, 본 발명의 실시 예들에서, 별도로 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명의 실시 예에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(100)(이하, 자동 제작 시스템으로 칭함)은 제작 시작부(101), 레시피 로드부(103), 최종 소스 생성부(105) 및 실행 파일 생성부(107)를 포함할 수 있다.
일 실시예에 따르면, 상기 제작 시작부(101)는 유저 계정으로부터 어플리케이션을 제작하기 위해 필요한 정보인 입력 정보(101a)를 수신하는 경우, 어플리케이션을 제작하기 위한 어플리케이션 제작 프로세스를 시작할 수 있다. 상기 어플리케이션 제작 프로세스는 유저 계정으로부터 수신한 입력 정보(101a)를 기반으로, 어플리케이션을 자동으로 제작하는 프로세스일 수 있다.
일 실시예에 따르면, 상기 입력 정보(101a)는 리소스(resource) 정보 및 프로토타입(prototype) 정보를 포함할 수 있다. 상기 리소스 정보는 제작하는 어플리케이션이 동작할 때 사용하는 문자열, 이미지, 오디오, 동영상, 메뉴 레이아웃 등을 포함하는 정보일 수 있다. 예를 들어, 상기 리소스 정보는 유저 계정의 전자 장치를 통해 출력되는 자동 제작 시스템(100)의 화면 내에서 유저 계정에 의해 입력되는 앱 이름, 앱 아이콘, 대기화면 배경, 화면 레이아웃 디자인, 배경 색상 등을 포함할 수 있다.
일 실시예에 따르면, 상기 프로토타입 정보는 상기 어플리케이션 제작 프로세스에 의해 제작되는 어플리케이션의 플랫폼 타입(platform type)이 어떤 타입인지를 확인하기 위한 정보일 수 있다. 상기 플랫폼 타입은 안드로이드 타입(android type), 아이오에스 타입(ios type) 및 모바일 웹 타입(mobile web type)을 포함하며, 전자 장치에서 구동되는 운영체제 플랫폼을 의미할 수 있다. 예를 들어, 상기 프로토타입 정보는 유저 계정의 전자 장치를 통해 출력되는 자동 제작 시스템(100)의 화면 내에서 유저 계정에 의해 선택되는 플랫폼 정보일 수 있다. 또는, 상기 프로토타입은, 상기 자동 제작 시스템(100)이 플랫폼 타입을 식별 가능하도록 하는 어플리케이션 시제작 정보일 수 있다.
일 실시예에 따르면, 상기 레시피 로드부(103)는 상기 어플리케이션 제작 프로세스가 시작되는 경우, 수신된 입력 정보(101a)를 기반으로, 제작할 어플리케이션의 플랫폼 타입을 확인하여, 확인된 플랫폼 타입에 대응되는 레시피 정보를 로드할 수 있다. 상기 레시피 로드부(103)는 상기 입력 정보(101a)를 어플리케이션으로 구현하기 위해 상기 입력 정보(101a)를 구현할 수 있는 플랫폼 타입에 대응되는 레시피 정보를 기 저장된 레시피 테이블에서 로드할 수 있다. 상기 기 저장된 레시피 테이블은 복수 개의 레시피 정보를 포함할 수 있으며, 플랫폼 타입마다 존재할 수 있다.
일 실시예에 따르면, 상기 레시피 로드부(103)에 의해 로드되는 레시피 정보는 상기 복수 개의 레시피 정보 중 상기 확인된 플랫폼 타입에 대응되는 정보로써, 상기 리소스 정보가 결합되는 코드 정보인 제1 소스 코드, 상기 제1 소스 코드에 상기 리소스 정보를 결합하는 과정인 빌드 프로세스에 기반한 빌드(build) 정보, 상기 제2 소스 코드를 지정된 신택스(syntax) 정보에 기반하여 생성되도록 하는 코드 수정 정보, 상기 제2 소스 코드를 상기 레시피 정보에 대응되는 플랫폼 타입의 특성에 기반하여 생성되도록 하는 코드 변경 정보를 포함할 수 있다. 상기 레시피 정보에 포함된 정보들을 통해 최종 소스 정보를 생성하는 자세한 설명은 도 2에서 설명하도록 한다.
일 실시예에 따르면, 상기 최종 소스 생성부(105)는 상기 레시피 정보의 로드가 완료되면, 상기 로드된 레시피 정보에 기반한 제1 소스 코드(source code)에 상기 입력 정보를 결합할 수 있다. 상기 최종 소스 생성부(105)는 상기 제1 소스 코드에 상기 입력 정보를 결합함으로써, 상기 제작할 어플리케이션에 대한 최종 소스 정보를 생성할 수 있다.
예를 들어, 상기 최종 소스 생성부(105)는 유저 계정의 전자 장치를 통해 출력 중인 자동 제작 시스템(100)의 화면 내에서 유저 계정으로부터 앱 이름 및 앱 아이콘을 포함하는 리소스 정보를 수신하는 경우, 수신된 리소스 정보를 상기 제1 소스 코드 중 어플리케이션 이름 및 어플리케이션의 항목을 결정하는 소스 코드 란에 상기 리소스 정보를 입력함으로써, 결합시킬 수 있다. 즉, 상기 최종 소스 생성부(105)는 상기 유저 계정에게 입력할 리소스 정보의 항목을 지정하여 제공하고, 제공된 항목에 대응되는 리소스 정보를 유저 계정으로부터 수신하는 경우, 수신된 리소스 정보의 속성에 대응되는 제1 소스 코드의 소스 코드 란에 리소스 정보를 입력함으로써, 제1 소스 코드에 리소스 정보를 결합시킬 수 있다. 상기 제1 소스 코드는 상기 제작할 어플리케이션이 동작해서 처리하고자 하는 기능을 나타내는 코드 값으로써, 리소스 정보가 결합되기 위한 코드일 수 있다. 이 때, 상기 리소스 정보는 상기 제1 소스 코드에 의해 식별 또는 인식되는 문자열로 변환되어 결합될 수 있다.
일 실시예에 따르면, 상기 최종 소스 생성부(105)는 유저 계정으로부터 수신되는 리소스 정보를 상기 제1 소스 코드에 결합 완료하는 경우, 최종 소스 정보를 생성할 수 있다. 상기 최종 소스 정보는 상기 제1 소스 코드에 리소스 정보가 결합 완료된 정보일 수 있다.
일 실시예에 따르면, 상기 실행 파일 생성부(107)는 상기 최종 소스 정보의 생성이 완료되면, 오브젝트 파일을 생성할 수 있다. 상기 오브젝트 파일은 상기 최종 소스 정보에 대응되는 제2 소스 코드를 지정된 컴파일러(compiler)를 통해 상기 확인된 플랫폼에서 구동되는 언어로 변환됨에 따라 생성되는 파일일 수 있다.
일 실시예에 따르면, 상기 실행 파일 생성부(107)는 상기 생성된 오브젝트 파일을 기반으로, 상기 어플리케이션에 대한 실행 파일(107a)을 생성할 수 있다. 상기 어플리케이션에 대한 실행파일은 exe 확장자를 가지는 파일일 수 있다. 상기 실행 파일 생성부(107)와 관련된 자세한 설명은 도 4 및 도 6에서 설명하도록 한다.
도 2는 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 최종 소스 생성부를 설명하기 위한 블록도이다.
도 2를 참조하면, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(예: 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(100))(이하, 자동 제작 시스템으로 칭함)은 최종 소스 생성부(200)(예: 도 1의 최종 소스 생성부(105))를 포함할 수 있다.
일 실시예에 따르면, 상기 최종 소스 생성부(200)는 레시피 정보의 로드가 완료되면, 상기 로드된 레시피 정보에 기반한 제1 소스 코드(source code)에 입력 정보를 결합할 수 있다. 상기 최종 소스 생성부(105)는 상기 제1 소스 코드에 상기 입력 정보를 결합함으로써, 상기 제작할 어플리케이션에 대한 최종 소스 정보를 생성할 수 있다. 상기 레시피 정보 및 입력 정보와 관련된 자세한 설명은 도 1을 참고하도록 한다.
일 실시예에 따르면, 상기 최종 소스 생성부(200)는 결합 프로세스 시작부(201), 코드 결합부(203), 코드 오류 탐색부(205), 코드 수정부(207) 및 코드 변경부(209)를 포함할 수 있다.
일 실시예에 따르면, 상기 결합 프로세스 시작부(201)는 상기 레시피 정보의 로드가 완료되는 경우, 상기 리소스 정보(201a)를 상기 로드된 레시피 정보에 포함된 제1 소스 코드에 결합하기 위한 결합 프로세스를 시작할 수 있다. 상기 레시피 정보는 상기 제작 시스템의 데이터베이스(201b)에 저장된 레시피 테이블에 저장된 상태일 수 있다. 이 때, 상기 로드되는 레시피 정보는, 상기 입력 정보를 기반으로 확인된 플랫폼 타입에 대응되는 어플리케이션을 제작하기 위한 정보일 수 있다.
일 실시예에 따르면, 상기 리소스 정보(201a)는, 어플리케이션 자동 제작 프로세스(예: 도 1의 어플리케이션 자동 제작 프로세스)를 통해 생성된 어플리케이션이 동작 시, 사용하는 문자열, 이미지, 오디오, 동영상, 메뉴 레이아웃 등을 포함하는 정보일 수 있다.
일 실시예에 따르면, 상기 코드 결합부(203)는 상기 결합 프로세스가 시작되는 경우, 상기 빌드 정보에 기반한 빌드 프로세스에 따라 상기 제1 소스 코드에 상기 리소스 정보(201a)를 결합할 수 있다. 상기 빌드 정보는 제1 소스 코드에 상기 리소스 정보(201a)가 결합됨에 따라 생성되는 제2 소스 코드가 전자 장치에서 실행할 수 있는 독립(standalone) 소프트웨어 가공물(어플리케이션)으로 변환하는 일련의 과정을 포함하는 정보일 수 있다. 즉, 상기 빌드 정보에 기반한 빌드 프로세스에 따라 상기 제1 소스 코드에 상기 리소스 정보(201a)를 결합되어야지만 전자 장치에서 구동되는 어플리케이션을 제작할 수 있다.
다른 실시예에 따르면, 상기 코드 결합부(203)는 상기 유저 계정에게 입력할 리소스 정보(201a)의 항목(예: 앱 이름 항목, 배경 지정 항목, 색상 항목 등)을 지정하여 제공할 수 있다. 상기 코드 결합부(203)는 제공된 항목에 대응되는 리소스 정보(201a)를 유저 계정으로부터 수신하는 경우, 수신된 리소스 정보의 속성에 대응되는 제1 소스 코드의 소스 코드 란에 리소스 정보를 순차적으로 입력하여, 제1 소스 코드에 리소스 정보를 결합할 수 있다,
일 실시예에 따르면, 상기 코드 결합부(203)는 상기 제1 소스 코드에 상기 리소스 정보(201a)의 결합이 완료되는 경우, 제작할 어플리케이션에 대한 최종 소스 정보를 생성할 수 있다. 상기 최종 소스 정보는 상기 제1 소스 코드에 상기 리소스 정보(201a)가 결합되어 생성된 제2 소스 코드일 수 있다.
일 실시예에 따르면, 상기 코드 오류 검색부(205)는 상기 최종 소스 정보의 생성이 완료된 경우, 상기 최종 소스 정보에 기반한 제2 소스 코드에 대한 오류 검사를 시작할 수 있다. 이 때, 시작되는 오류 검사는 제2 소스 코드가 상기 레시피 정보에 기반하여 작성되었는지를 확인하는 검사일 수 있다.
일 실시예에 따르면, 상기 코드 수정부(207)는 상기 코드 오류 검색부(205)에 의해 상기 제2 소스 코드가 지정된 신택스 정보에 기반하여 생성되지 않은 것이 확인된 경우, 코드 수정 정보를 기반으로, 제2 소스 코드의 소스 값을 지정된 신택스 정보에 기반하여 수정할 수 있다. 상기 코드 수정 정보는 레시피 정보에 포함된 정보들 중 하나일 수 있다. 상기 지정된 신택스(syntax) 정보는 제작할 어플리케이션의 모습, 형태, 구조가 어떻게 보이는지에 대해 정의하는 정보로써, 보다 정확하게는 기계어를 약속된 구문(지정된 신택스 정보)으로 구성된 프로그래밍 언어 즉, 코드 값을 작성하도록 하는 기준 정보일 수 있다.
일 실시예에 따르면, 상기 코드 수정부(207)는 상기 제2 소스 코드의 코드 값이 상기 지정된 신택스 정보에 기반하여 작성되지 않은 경우, 작성되지 않은 부분의 코드 값을 탐색하여, 탐색된 코드 값을 상기 지정된 신택스 정보에 기반하여 수정할 수 있다.
일 실시예에 따르면, 상기 코드 변경부(209)는, 상기 코드 오류 탐색부(205)에 의해 상기 제2 소스 코드가 확인된 플랫폼 타입에 대응하지 않은 것이 확인되는 경우, 코드 변경 정보를 기반으로, 상기 제2 소스 코드의 코드 값을 상기 확인된 플랫폼 타입에 대응하도록 변경할 수 있다.
일 실시예에 따르면, 상기 코드 변경부(209)는, 상기 제2 소스 코드의 코드 값이 상기 확인된 플랫폼 타입의 특성에 대응되도록 작성되지 않은 경우, 코드 변경 정보를 통상 상기 확인된 플랫폼 타입의 특성에 대응되도록 변경할 수 있다. 예를 들어, 안드로이트 타입의 특성의 경우, 어플리케이션 프레임웍 특성(안드로이드 어플리케이션의 기본 뼈대가 되는 주요 요소인 컴포넌트들과 다양한 모바일 기능을 활용할 수 있도록 다양한 API를 제공하는 특성), 통합 브라우저 특성(WebKit 엔진을 기반으로 한 브라우저를 제공하여 간단한 사용으로 웹 화면을 바로 실행하는 특성) 및 그래픽 특성(사용자가 원하는 디자인으로 2D, 3D 그래픽 처리가 가능합니다. 특히 3D 는 OpenGL ES 1.0을 기반으로 제공하는 특성)을 가지고 있는데, 상기 제2 소스 코드의 코드 값이 상기와 같은 특성들을 반영하지 못한 코드 값인 경우, 상기 코드 변경부(209)는 상기 특성을 반영하지 못하는 코드 값을 탐색하여, 탐색된 코드 값을 상기 코드 변경 정보를 기반으로 변경할 수 있다. 즉, 상기 코드 변경 정보는 각각의 플랫폼 타입마다 가지고 있는 특성이 구현되도록 하는 코드 값 정보일 수 있다.
도 3은 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 최종 소스 생성부를 설명하기 위한 다른 도면이다.
도 3을 참조하면, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(예: 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(100))(이하, 자동 제작 시스템으로 칭함)은 최종 소스 생성부(301)(예: 도 1의 최종 소스 생성부(105))를 포함할 수 있다.
일 실시예에 따르면, 상기 최종 소스 생성부(301)는 유저 계정으로부터 플러그인 모듈(plugin module) 정보를 수신하는 경우, 최종 소스 정보에 기반한 제2 소스 코드(303)에 상기 플러그인 모듈 정보(305)를 결합할 수 있다. 상기 플러그인 모듈 정보(305)는 추가 기능 정보로써, 호스트 응용 어플리케이션과 서로 응답하는 프로그램일 수 있다. 보다 정확하게는 유저 계정이 어플리케이션의 기능을 확장하기 위해 추가하는 프로그램으로, 애드온(add on) 프로그램일 수 있다.
일 실시예에 따르면, 상기 최종 소스 생성부(301)는 상기 제2 소스 코드(303)에 상기 플러그인 모듈 정보(305) 결합 시, 제2 소스 코드(303)와 상기 플러그인 모듈 정보(305) 간에 호환성 검사를 실시할 수 있다. 상기 최종 소스 생성부(301)는 상기 호환성 검사를 실시함에 따라, 상기 제2 소스 코드(303)에 상기 플러그인 모듈 정보(305)가 결합되는지 여부를 판단하고, 결합된 상태에서 제2 소스 코드(303)의 코드 값에 기반한 동작 수행이 오류 없이 수행되는지를 판단할 수 있다. 즉, 상기 최종 소스 생성부(301)는 상기 호환성 검사를 통해 상기 제2 소스 코드(303)에 상기 플러그인 모듈 정보(305)가 제대로 결합되어, 어플리케이션이 브라우저, 데이터베이스, 하드웨어, 운영 체제, 모바일 장치 및 네트워크의 모든 측면에서 제대로 작동하는지를 확인할 수 있다.
도 4는 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 실행 파일 생성부를 설명하기 위한 블록도이다.
도 4를 참조하면, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(예: 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(100))(이하, 자동 제작 시스템으로 칭함)은 실행 파일 생성부(400)(예: 도 1의 실행 파일 생성부(107))를 포함할 수 있다.
일 실시예에 따르면, 상기 실행 파일 생성부(400)는 상기 최종 소스 정보의 생성이 완료되면, 오브젝트 파일을 생성할 수 있다.
일 실시예에 따르면, 상기 실행 파일 생성부(400)는 파일 생성 프로세스 시작부(401) 및 오브젝트 파일 생성부(403)를 포함할 수 있다.
일 실시예에 따르면, 상기 파일 생성 프로세스 시작부(401)는 최종 소스 생성부(예: 도 1의 최종 소스 생성부(105))에 의해 최종 소스 정보의 생성이 완료된 경우, 파일 생성 프로세스를 시작할 수 있다. 상기 파일 생성 프로세스는 오브젝트 파일을 생성하기 위한 프로세스일 수 있다. 상기 최종 소스 정보와 관련된 설명은 도 1 내지 도 3을 참고하도록 한다.
일 실시예에 따르면, 상기 오브젝트 파일 생성부(403)는 상기 파일 생성 프로세스가 시작되는 경우, 상기 최종 소스 정보에 기반한 제2 소스 코드를 지정된 컴파일러(compiler)(403a)를 통해 변환하여, 상기 오브젝트 파일을 생성할 수 있다. 상기 지정된 컴파일러(403a)는 오브젝트 파일을 생성하기 위해 상기 제2 소스 코드(401a)의 코드 값을 확인된 플랫폼 타입의 언어(language)로 변환하는 프로그램으로써, 플랫폼 타입마다 존재하는 프로그램일 수 있다. 즉, 상기 오브젝트 파일 생성부(403)는, 상기 지정된 컴파일러를 통해 지정된 신택스(syntax) 정보에 기반하여 코드 값이 작성된 제2 소스 코드(401a)를 확인된 플랫폼 타입의 언어(예: 코드)로 변환하고, 오브젝트 파일로 생성함으로써, 확인된 플랫폼 타입의 운영 체제에서 상기 오브젝트 파일에 기반한 어플리케이션이 구동되도록 할 수 있다.
예를 들어, 안드로이드(android) 타입의 플랫폼 언어는 자바(java) 언어이고, 아이오에스(ios) 타입의 플랫폼 언어는 스위프트(swift) 언어이고, 모바일 웹(mobile web) 타입의 플랫폼 언어는 자바스크립트(java script) 언어일 수 있다. 즉, 상기 오브젝트 파일 생성부(403)는 확인된 플랫폼 타입이 아이오에스(ios)인 경우, 제2 소스 코드에 기반한 코드 값을 지정된 컴파일러(403a)를 통해 스위프트(swift) 언어로 변환하여, 스위프트 언어로 작성된 오브젝트 파일을 생성할 수 있다.
도 5는 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 기능 수행 과정을 설명하기 위한 도면이다.
도 5를 참조하면, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(예: 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(100))(이하, 자동 제작 시스템으로 칭함)은 유저 계정에게 입력 정보를 수신하기 위하여, 상기 유저 계정에게 입력 정보를 입력하도록 요청하는 화면들(500)을 제공할 수 있다.
일 실시예에 따르면, 상기 자동 제작 시스템은 상기 유저 계정에게 상기 화면들(500) 제공할 수 있다. 상기 자동 제작 시스템은 상기 화면들(500) 중 제1 화면(501)을 제공하여, 상기 유저 계정에게 제작할 어플리케이션의 이름, 아이콘, 대기 화면, URL 모바일 사이트의 링크 정보를 포함하는 제1 리소스 정보를 수신할 수 있다.
일 실시예에 따르면, 상기 자동 제작 시스템은 상기 제1 리소스 정보의 수신을 완료하는 경우, 상기 화면들(500) 중 제2 화면(503)을 제공할 수 있다. 상기 자동 제작 시스템은 상기 화면들(500) 중 상기 제2 화면(503)을 제공하여, 상기 유저 계정에게 제작할 어플리케이션의 레이아웃 정보를 포함하는 제2 리소스 정보를 수신할 수 있다. 이 때, 상기 레이아웃 정보는 유저 계정에 의해 입력된 외부 정보뿐만 아니라 상기 자동 제작 시스템에서 제공하는 복수 개의 레이아웃 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 상기 자동 제작 시스템은 상기 제2 리소스 정보의 수신을 완료하는 경우, 상기 화면들(500) 중 제3 화면(505)을 제공할 수 있다. 상기 자동 제작 시스템은 상기 화면들(500) 중 상기 제3 화면(505)을 제공하여, 상기 유저 계정에게 제작할 어플리케이션의 레이아웃의 색상 정보를 포함하는 제3 리소스 정보를 수신할 수 있다.
일 실시예에 따르면, 상기 자동 제작 시스템은 상기 제3 리소스 정보의 수신을 완료하는 경우, 상기 자동 제작 시스템은 상기 화면들(500) 중 상기 제4 화면(507)을 제공하여, 상기 유저 계정에게 제작할 어플리케이션의 항목을 설정하기 위해 필요한 정보인 항목 설정 정보를 포함하는 제4 리소스 정보를 수신할 수 있다.
일 실시예에 따르면, 상기 자동 제작 시스템은 상기 제4 리소스 정보의 수신을 완료하는 경우, 상기 자동 제작 시스템은 상기 화면들(500) 중 상기 제5 화면(509)을 제공하여, 상기 유저 계정에게 제작할 어플리케이션을 소개하는 정보인 소개 정보를 포함하는 제4 리소스 정보를 수신할 수 있다.
일 실시예에 따르면, 상기 자동 제작 시스템은 상기 제1 리소스 정보, 제2 리소스 정보, 제3 리소스 정보, 제4 리소스 정보 및 제5 리소스 정보의 수신을 완료하는 경우, 레시피 정보에 기반한 제1 소스 코드에 상기 상기 제1 리소스 정보, 제2 리소스 정보, 제3 리소스 정보, 제4 리소스 정보 및 제5 리소스 정보를 결합하여, 제2 소스 코드를 생성함으로써, 상기 제2 소스 코드에 대응되는 최종 소스 정보(511)를 생성할 수 있다.
즉, 상기 자동 제작 시스템은 유저 계정으로부터 리소스 정보를 수신하는 경우, 레시피 정보에 포함된 빌드 정보에 기반한 빌드 프로세스에 기반하여, 제1 코드 소스에 리소스 정보를 결합할 수 있다.
또한, 상기 자동 제작 시스템은 상기 유저 계정으로부터 제1 리소스 정보를 수신함에 따라 상기 유저 계정에게 상기 제2 화면(503)을 제공하는 경우, 상기 제1 소스 코드에 상기 수신된 제1 리소스 정보를 결합하고, 상기 유저 계정으로부터 제2 리소스 정보를 수신하는 경우, 상기 유저 계정에게 상기 제3 화면(505)을 제공하는 동안 상기 수신된 제2 리소스 정보를 상기 제1 소스 코드에 결합할 수 있다.
도 6은 본 발명의 일 실시예에 따른 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템의 실행 파일 생성부를 설명하기 위한 다른 도면이다.
도 6을 참조하면, 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(예: 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템(100))(이하, 자동 제작 시스템으로 칭함)은 실행 파일 생성부(예: 도 1의 실행 파일 생성부(109))를 포함할 수 있다.
일 실시예에 따르면, 상기 실행 파일 생성부는 보안 정보 결합부(601) 및 최종 어플리케이션 파일 생성부(603)를 포함할 수 있다.
일 실시예에 따르면, 상기 보안 정보 결합부(601)는 오브젝트 파일(601a)의 생성이 완료되는 경우, 유저 계정으로부터 수신한 패키지 아이디(package id) 및 어플리케이션 고유 인증서 정보(keystore & certificate)를 상기 오브젝트 파일(601a)에 결합할 수 있다. 상기 오브젝트 파일(601a)을 생성하는 자세한 설명은 도 4를 참고하도록 한다. 상기 패키지 아이디 및 상기 어플리케이션 고유 인증서 정보는 유저 계정의 성명 정보를 포함하는 보안 정보(601b)일 수 있다. 즉, 상기 유저 계정은 상기 보안 정보(601b)를 상기 오브젝트 파일(601a)에 결합함으로써, 상기 오브젝트 파일(601a)에 대응되는 어플리케이션에 대한 전반적인 관리(예: 업데이트 및 패치) 및 소유 권한을 행사할 수 있다.
일 실시예에 따르면, 상기 보안 정보 결합부(601)는 오브젝트 파일(601a)에 패키지 아이디를 결합할 수 있다. 상기 패키지 아이디는 오브젝트 파일에 기반한 어플리케이션을 구분하는 고유 값으로써, 다른 어플리케이션들과 구분되도록 하는 구성일 수 있다. 상기 보안 정보 결합부(601)는 상기 오브젝트 파일에 패키지 아이디를 결합한 상태에서, 상기 오브젝트 파일에 고유 인증서 정보를 결합할 수 있다. 상기 고유 인증서 정보는 인증서 파일을 포함하고 있는 데이터베이스 파일일 수 있다. 예를 들어, 상기 고유 인증서 정보는 키 스토어(keystore) 파일 내에 체인(chain) 인증서(certificate) 파일을 저장하고 있는 정보일 수 있다.
일 실시예에 따르면, 상기 최종 어플리케이션 파일 생성부(603)는 상기 보안 정보 결합부(601)에 의해 상기 오브젝트 파일(601a)에 상기 보안 정보(601b)의 결합이 완료되는 경우, 유저 계정에 대한 고유 어플리케이션으로 암호화된 어플리케이션의 실행 파일을 생성할 수 있다. 즉, 상기 최종 어플리케이션 파일 생성부(603)는 확장자 obj를 가지는 오브젝트 파일(601a)을 어플리케이션에 대한 실행 파일로 생성할 수 있다.. 상기에서 언급되는 유저 계정에 대한 고유 어플리케이션은 유저 계정으로부터 수신된 보안 정보(601b)가 오브젝트 파일(601a)에 결합됨에 따라, 생성되는 어플리케이션에 대한 권한 정보를 온전히 유저 계정이 소유하고 있어, 유저 계정을 제외한 나머지 다른 유저 계정은 상이 어플리케이션에 대한 관리 작업을 수행할 수 없다.
일 실시예에 따르면, 상기 자동 제작 시스템은 어플리케이션 제공부(미도시)를 더 포함할 수 있다. 상기 어플리케이션 제공부는 유저 계정에 대한 고유 어플리케이션으로 암호화된 어플리케이션의 실행 파일의 생성이 완료되면, 상기 유저 계정에게 상기 실행 파일을 전송할 수 있다. 상기 어플리케이션 제공부는 상기 유저 계정에게 상기 실행 파일을 전송함에 따라 어플리케이션 제작 프로세스를 종료할 수 있다.
도 7는 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 내부 구성의 일 예를 설명하기 위한 도면이다.
도 7는 본 발명의 일 실시 예에 따른 컴퓨팅 장치의 내부 구성의 일 예를 도시하였으며, 이하의 설명에 있어서, 상술한 도 1 내지 6에 대한 설명과 중복되는 불필요한 실시 예에 대한 설명은 생략하기로 한다.
도 7에 도시한 바와 같이, 컴퓨팅 장치(10000)은 적어도 하나의 프로세서(processor)(11100), 메모리(memory)(11200), 주변장치 인터페이스(peripEHRal interface)(11300), 입/출력 서브시스템(I/O subsystem)(11400), 전력 회로(11500) 및 통신 회로(11600)를 적어도 포함할 수 있다. 이때, 컴퓨팅 장치(10000)은 촉각 인터페이스 장치에 연결된 유저 단말이기(A) 혹은 전술한 컴퓨팅 장치(B)에 해당될 수 있다.
메모리(11200)는, 일례로 고속 랜덤 액세스 메모리(high-speed random access memory), 자기 디스크, 에스램(SRAM), 디램(DRAM), 롬(ROM), 플래시 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(11200)는 컴퓨팅 장치(10000)의 동작에 필요한 소프트웨어 모듈, 명령어 집합 또는 그밖에 다양한 데이터를 포함할 수 있다.
이때, 프로세서(11100)나 주변장치 인터페이스(11300) 등의 다른 컴포넌트에서 메모리(11200)에 액세스하는 것은 프로세서(11100)에 의해 제어될 수 있다.
주변장치 인터페이스(11300)는 컴퓨팅 장치(10000)의 입력 및/또는 출력 주변장치를 프로세서(11100) 및 메모리 (11200)에 결합시킬 수 있다. 프로세서(11100)는 메모리(11200)에 저장된 소프트웨어 모듈 또는 명령어 집합을 실행하여 컴퓨팅 장치(10000)을 위한 다양한 기능을 수행하고 데이터를 처리할 수 있다.
입/출력 서브시스템(11400)은 다양한 입/출력 주변장치들을 주변장치 인터페이스(11300)에 결합시킬 수 있다. 예를 들어, 입/출력 서브시스템(11400)은 모니터나 키보드, 마우스, 프린터 또는 필요에 따라 터치스크린이나 센서 등의 주변장치를 주변장치 인터페이스(11300)에 결합시키기 위한 컨트롤러를 포함할 수 있다. 다른 측면에 따르면, 입/출력 주변장치들은 입/출력 서브시스템(11400)을 거치지 않고 주변장치 인터페이스(11300)에 결합될 수도 있다.
전력 회로(11500)는 단말기의 컴포넌트의 전부 또는 일부로 전력을 공급할 수 있다. 예를 들어 전력 회로(11500)는 전력 관리 시스템, 배터리나 교류(AC) 등과 같은 하나 이상의 전원, 충전 시스템, 전력 실패 감지 회로(power failure detection circuit), 전력 변환기나 인버터, 전력 상태 표시자 또는 전력 생성, 관리, 분배를 위한 임의의 다른 컴포넌트들을 포함할 수 있다.
통신 회로(11600)는 적어도 하나의 외부 포트를 이용하여 다른 컴퓨팅 장치와 통신을 가능하게 할 수 있다.
또는 상술한 바와 같이 필요에 따라 통신 회로(11600)는 RF 회로를 포함하여 전자기 신호(electromagnetic signal)라고도 알려진 RF 신호를 송수신함으로써, 다른 컴퓨팅 장치와 통신을 가능하게 할 수도 있다.
이러한 도 7의 실시 예는, 컴퓨팅 장치(10000)의 일례일 뿐이고, 컴퓨팅 장치(11000)은 도 7에 도시된 일부 컴포넌트가 생략되거나, 도 7에 도시되지 않은 추가의 컴포넌트를 더 구비하거나, 2개 이상의 컴포넌트를 결합시키는 구성 또는 배치를 가질 수 있다. 예를 들어, 모바일 환경의 통신 단말을 위한 컴퓨팅 장치는 도 7에 도시된 컴포넌트들 외에도, 터치스크린이나 센서 등을 더 포함할 수도 있으며, 통신 회로(1160)에 다양한 통신방식(WiFi, 3G, LTE, Bluetooth, NFC, Zigbee 등)의 RF 통신을 위한 회로가 포함될 수도 있다. 컴퓨팅 장치(10000)에 포함 가능한 컴포넌트들은 하나 이상의 신호 처리 또는 어플리케이션에 특화된 집적 회로를 포함하는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어 양자의 조합으로 구현될 수 있다.
본 발명의 실시 예에 따른 방법들은 다양한 컴퓨팅 장치를 통하여 수행될 수 있는 프로그램 명령(instruction) 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 특히, 본 실시 예에 따른 프로그램은 PC 기반의 프로그램 또는 모바일 단말 전용의 어플리케이션으로 구성될 수 있다. 본 발명이 적용되는 애플리케이션은 파일 배포 시스템이 제공하는 파일을 통해 이용자 단말에 설치될 수 있다. 일 예로, 파일 배포 시스템은 이용자 단말이기의 요청에 따라 상기 파일을 전송하는 파일 전송부(미도시)를 포함할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시 예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 (collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨팅 장치상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술 분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (8)

  1. 하나 이상의 프로세서 및 상기 프로세서에서 수행 가능한 명령들을 저장하는 하나 이상의 메모리를 포함하는 컴퓨팅 장치에서 구현되는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템에 있어서,
    유저 계정으로부터 어플리케이션을 제작하기 위해 필요한 정보인 입력 정보를 수신하는 경우, 어플리케이션을 제작하기 위한 어플리케이션 제작 프로세스를 시작하는 제작 시작부;
    상기 어플리케이션 제작 프로세스가 시작되는 경우, 상기 수신된 입력 정보를 기반으로, 제작할 어플리케이션의 플랫폼 타입(platform type)을 확인하여, 확인된 플랫폼 타입에 대응되는 레시피 정보를 로드하는 레시피 로드부;
    상기 레시피 정보의 로드가 완료되면, 상기 로드된 레시피 정보에 기반한 제1 소스 코드(source code)에 상기 입력 정보를 결합하여, 상기 제작할 어플리케이션에 대한 최종 소스 정보를 생성하는 최종 소스 생성부; 및
    상기 최종 소스 정보의 생성이 완료되면, 상기 최종 소스 정보를 기반으로, 오브젝트 파일을 생성하여, 상기 생성된 오브젝트 파일을 기반으로, 상기 어플리케이션에 대한 실행 파일을 생성하는 실행 파일 생성부;를 포함하되,
    상기 입력 정보는,
    상기 제1 소스 코드에 결합되는 리소스(resource) 정보 및 상기 제작할 어플리케이션의 플랫폼 타입이 어떤 타입인지를 확인하기 위한 프로토타입(prototype) 정보를 포함하되,
    상기 플랫폼 타입은,
    안드로이드 타입(android type), 아이오에스 타입(ios type) 및 모바일 웹 타입(mobile web type)을 포함하고,
    상기 레시피 정보는,
    기 저장된 레시피 테이블에 포함된 복수 개의 레시피 정보 중 상기 최종 소스 정보에 기반한 제2 소스 코드를 생성하기 위한 하나의 정보로써, 상기 확인된 플랫폼 타입에 대응되는 정보이되,
    상기 리소스 정보가 결합되는 코드 정보인 제1 소스 코드, 상기 제1 소스 코드에 상기 리소스 정보를 결합하는 과정인 빌드 프로세스에 기반한 빌드(build) 정보, 상기 제2 소스 코드를 지정된 신택스(syntax) 정보에 기반하여 생성되도록 하는 코드 수정 정보, 상기 제2 소스 코드를 상기 레시피 정보에 대응되는 플랫폼 타입의 특성에 기반하여 생성되도록 하는 코드 변경 정보를 포함하고,
    상기 최종 소스 생성부는,
    상기 레시피 정보의 로드가 완료되는 경우, 상기 리소스 정보를 상기 로드된 레시피 정보에 포함된 제1 소스 코드에 결합하기 위한 결합 프로세스를 시작하는 결합 프로세스 시작부;
    상기 결합 프로세스가 시작되는 경우, 상기 빌드 정보에 기반한 빌드 프로세스에 따라 상기 제1 소스 코드에 상기 리소스 정보를 결합하여, 상기 제작할 어플리케이션에 대한 최종 소스 정보를 생성하는 코드 결합부;
    상기 코드 결합부에 의해 상기 최종 소스 정보의 생성이 완료된 경우, 상기 최종 소스 정보에 기반한 제2 소스 코드에 대한 오류 검사를 시작하는 코드 오류 탐색부;
    상기 코드 오류 탐색부에 의해 상기 제2 소스 코드가 지정된 신택스 정보에 기반하여 생성되지 않은 것이 확인되는 경우, 상기 코드 수정 정보를 기반으로, 상기 제2 소스 코드의 코드 값을 상기 지정된 신택스 정보에 따라 수정하는 코드 수정부; 및
    상기 코드 오류 탐색부에 의해 상기 제2 소스 코드가 상기 확인된 플랫폼 타입에 대응하지 않은 것이 확인되는 경우, 상기 코드 변경 정보를 기반으로, 상기 제2 소스 코드의 코드 값을 상기 확인된 플랫폼 타입에 대응하도록 변경하는 코드 변경부;를 포함하는 것을 특징으로 하는 것을 특징으로 하는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    상기 최종 소스 생성부는,
    상기 유저 계정으로부터 플러그인 모듈(plugin module) 정보를 수신하는 경우, 상기 생성된 최종 소스 정보에 기반한 제2 소스 코드에 상기 플러그인 모듈 정보를 결합하되,
    상기 제2 소스 코드에 상기 플러그인 모듈 정보를 결합하기 이전에, 상기 제2 소스 코드와 상기 플러그인 모듈 정보 간에 호환성 검사를 실시하는 것을 특징으로 하는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템.
  6. 제5항에 있어서,
    상기 실행 파일 생성부는,
    상기 최종 소스 생성부에 의해 상기 최종 소스 정보의 생성이 완료된 경우, 파일 생성 프로세스를 시작하는 파일 생성 프로세스 시작부; 및
    상기 파일 생성 프로세스가 시작되는 경우, 상기 최종 소스 정보에 기반한 제2 소스 코드를 지정된 컴파일러(compiler)를 통해 변환하여, 상기 오브젝트 파일을 생성하는 오브젝트 파일 생성부;를 포함하되,
    상기 지정된 컴파일러는,
    상기 오브젝트 파일을 생성하기 위해 상기 제2 소스 코드를 상기 확인된 플랫폼 타입의 언어(language)로 변환하는 프로그램인 것을 특징으로 하는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템.
  7. 제6항에 있어서,
    상기 실행 파일 생성부는,
    보안 결합부;를 더 포함하고,
    상기 보안 결합부는,
    상기 오브젝트 파일의 생성이 완료되는 경우, 상기 유저 계정으로부터 수신한 패키지 아이디(package id) 및 어플리케이션 고유 인증서 정보(keystore & certificate)를 상기 오브젝트 파일에 결합하는 보안 정보 결합부;
    상기 보안 정보 결합부에 의해 상기 오브젝트 파일에 상기 패키지 아이디및 상기 어플리케이션 고유 인증서 정보의 결합이 완료되면, 상기 유저 계정에 대한 고유 어플리케이션으로 암호화된 어플리케이션의 실행 파일을 생성하는 최종 어플리케이션 파일 생성부;를 포함하는 것을 특징으로 하는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템.
  8. 제7항에 있어서,
    어플리케이션 제공부;를 더 포함하고,
    상기 어플리케이션 제공부는,
    상기 유저 계정에 대한 고유 어플리케이션으로 암호화된 어플리케이션의 실행 파일의 생성이 완료되면, 상기 유저 계정에게 상기 실행 파일을 전송하여, 상기 어플리케이션 제작 프로세스를 종료하는 것을 특징으로 하는 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템.
KR1020210090375A 2021-07-09 2021-07-09 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템 KR102360646B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210090375A KR102360646B1 (ko) 2021-07-09 2021-07-09 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210090375A KR102360646B1 (ko) 2021-07-09 2021-07-09 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템

Publications (1)

Publication Number Publication Date
KR102360646B1 true KR102360646B1 (ko) 2022-02-10

Family

ID=80253730

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210090375A KR102360646B1 (ko) 2021-07-09 2021-07-09 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템

Country Status (1)

Country Link
KR (1) KR102360646B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102624044B1 (ko) * 2023-05-12 2024-01-11 주식회사 엠바스 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080018025A (ko) * 2006-08-23 2008-02-27 (주)지앤씨인터렉티브 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
KR20150124530A (ko) * 2014-04-28 2015-11-06 주식회사 다빈치소프트웨어연구소 어플리케이션 빌드 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체
KR20160081200A (ko) * 2014-12-31 2016-07-08 권혁준 스크립트 기반 마이크로컨트롤러 펌웨어 개발 플랫폼

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080018025A (ko) * 2006-08-23 2008-02-27 (주)지앤씨인터렉티브 모바일 어플리케이션의 생성 방법 및 이를 구현하기 위한프로그램을 기록한 기록매체
KR20150124530A (ko) * 2014-04-28 2015-11-06 주식회사 다빈치소프트웨어연구소 어플리케이션 빌드 시스템 및 그 제어방법과, 그 제어방법을 실행하기 위한 프로그램을 기록한 기록 매체
KR20160081200A (ko) * 2014-12-31 2016-07-08 권혁준 스크립트 기반 마이크로컨트롤러 펌웨어 개발 플랫폼

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102624044B1 (ko) * 2023-05-12 2024-01-11 주식회사 엠바스 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버

Similar Documents

Publication Publication Date Title
EP3605324B1 (en) Application development method and tool, and storage medium thereof
US20210096704A1 (en) User interface logical and execution view navigation and shifting
KR102107872B1 (ko) 컴파일러 기반 난독화 기법
US8533666B2 (en) Interactive design environments to visually model, debug and execute resource oriented programs
US9934007B2 (en) Method for operating tool in working environment and machine using such method
KR101854975B1 (ko) 패키지 파일에 대한 기능 확장 방법 및 시스템
US10809981B2 (en) Code generation and simulation for graphical programming
US20130275957A1 (en) Customizing appliances
Masiello et al. Mastering React Native
US20200125336A1 (en) System and method for enhancing component based development models with auto-wiring
JP2021502648A (ja) Fpgaクラウドホストの開発方法およびシステム
Fursin Collective knowledge: organizing research projects as a database of reusable components and portable workflows with common interfaces
CN105074652B (zh) 用于向打印机远程提供应用功能的方法和计算机系统
US11775142B2 (en) Preferential automation view curation
KR102360646B1 (ko) 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템
EP2972801A2 (en) Executable guidance experiences based on implicitly generated guidance models
CN105518618A (zh) 配置成将针对视觉元素的输入路由到图形框架的输入对象
US20210271458A1 (en) Managing an app method and system
KR20240009129A (ko) 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템
JP2017220236A (ja) クライアント改ざん判断システムおよび方法
US10545729B2 (en) Computer program interface
JP2019192134A (ja) 情報処理装置、その処理方法及びプログラム
US11675802B1 (en) Graphical user interface and flexible architecture for a rule engine
JP7335591B2 (ja) コンピューティングシステムおよび情報処理方法
JP7319516B2 (ja) プログラム、情報処理装置及びその制御方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant