KR102624044B1 - 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버 - Google Patents

템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버 Download PDF

Info

Publication number
KR102624044B1
KR102624044B1 KR1020230061766A KR20230061766A KR102624044B1 KR 102624044 B1 KR102624044 B1 KR 102624044B1 KR 1020230061766 A KR1020230061766 A KR 1020230061766A KR 20230061766 A KR20230061766 A KR 20230061766A KR 102624044 B1 KR102624044 B1 KR 102624044B1
Authority
KR
South Korea
Prior art keywords
template
server
terminal device
information
control unit
Prior art date
Application number
KR1020230061766A
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 KR1020230061766A priority Critical patent/KR102624044B1/ko
Application granted granted Critical
Publication of KR102624044B1 publication Critical patent/KR102624044B1/ko

Links

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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버에 관한 것으로, 본 발명의 일 실시예에 의한 템플릿 기반 애플리케이션 생성 방법은 서버의 서버 통신부가 단말 장치로부터 템플릿 생성에 필요한 업종 정보 또는 키워드를 하나 이상 수신하는 제1단계와, 서버의 서버 제어부가 수신한 업종 정보 또는 키워드를 이용하여 하나 이상의 추천 템플릿을 템플릿 저장부에서 추출하는 제2단계와, 서버 통신부가 추천 템플릿을 단말 장치에게 전송한 후 단말 장치로부터 추천 템플릿에 대한 선택 정보를 수신하는 제3단계와, 서버 제어부가 선택 정보를 적용하여 소스 코드 및 실행 가능한 프로그램 패키지를 생성하고, 서버 통신부가 패키지를 단말 장치에게 전송하는 제4단계를 포함한다.

Description

템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버{METHOD OF APPLICATION GENERATION BASED ON TEMPLATE AND SERVER IMPLEMENTING THEREOF}
본 발명은 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버에 관한 것이다.
모바일 장치들이 다양하게 사용되는 과정에서 모바일 장치들에 설치될 애플리케이션의 개발 역시 활발해지고 있다. 특히 애플리케이션의 개발은 다양한 개발 툴을 통해 용이하게 개발 과정이 지원되고 있다.
그런데, 개발 과정의 지원은 개발 주체가 어떤 기능을 포함시킬 것인지를 결정해야 유용하게 사용할 수 있는데, 실제로 애플리케이션을 개발하고자 하는 주체가 애플리케이션 개발에 처음이거나 개발 경험이 없을 경우, 애플리케이션에 대한 세부적인 구성을 설계함에 있어 한계가 있다.
이에, 애플리케이션을 개발함에 있어서 직관적으로 필요한 기능을 확인하고 추가나 삭제를 할 수 있는 기술이 필요하다. 또한, 애플리케이션이 사용될 분야에 따라 이를 지원하는 기술이 필요하다.
본 발명은 사용자가 입력한 애플리케이션 적용 분야와 기능을 포함하는 애플리케이션을 자동으로 개발하고 이를 마켓에 등록할 수 있도록 한다.
본 발명은 사용자의 니즈에 적합한 템플릿을 적용하여 애플리케이션을 자동으로 생성하고자 한다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제들로 제한되지 않으며, 여기서 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시예에 의한 템플릿 기반 애플리케이션 생성 방법은 서버의 서버 통신부가 단말 장치로부터 템플릿 생성에 필요한 업종 정보 또는 키워드를 하나 이상 수신하는 제1단계와, 서버의 서버 제어부가 수신한 업종 정보 또는 키워드를 이용하여 하나 이상의 추천 템플릿을 템플릿 저장부에서 추출하는 제2단계와, 서버 통신부가 추천 템플릿을 단말 장치에게 전송한 후 단말 장치로부터 추천 템플릿에 대한 선택 정보를 수신하는 제3단계와, 서버 제어부가 선택 정보를 적용하여 소스 코드 및 실행 가능한 프로그램 패키지를 생성하고, 서버 통신부가 패키지를 단말 장치에게 전송하는 제4단계를 포함한다.
본 발명의 일 실시예에 의한 템플릿 기반 애플리케이션을 생성하는 서버는 단말 장치와 통신하는 서버 통신부와 단말 장치에게 전송할 추천 템플릿을 생성하고 단말 장치의 선택 정보에 대응하여 실행 가능한 프로그램 패키지를 생성하는 서버 제어부와 다수의 템플릿을 업종 정보 또는 키워드에 대응하여 저장하는 템플릿 저장부를 포함한다.
본 발명의 일 실시예에 의한 템플릿 기반 애플리케이션을 생성하는 서버는 서버 통신부가 단말 장치로부터 템플릿 생성에 필요한 업종 정보 또는 키워드를 하나 이상 수신한 후 서버의 서버 제어부가 수신한 업종 정보 또는 키워드를 이용하여 하나 이상의 추천 템플릿을 템플릿 저장부에서 추출하며, 서버 통신부가 추천 템플릿을 단말 장치에게 전송한 후 단말 장치로부터 추천 템플릿에 대한 선택 정보를 수신하며, 서버 제어부가 선택 정보를 적용하여 소스 코드 및 실행 가능한 프로그램 패키지를 생성하고, 서버 통신부가 패키지를 단말 장치에게 전송한다.
본 발명을 구현할 경우, 사용자가 입력한 애플리케이션 적용 분야와 기능을 포함하는 애플리케이션을 자동으로 개발하고 이를 마켓에 등록할 수 있다.
본 발명을 구현할 경우, 사용자의 니즈에 적합한 템플릿을 적용하여 애플리케이션을 자동으로 생성할 수 있다.
본 발명이 제공하는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 여기서 언급되지 않은 또 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 의한 서버의 구성을 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 의한 단말 장치의 구성을 보여주는 도면이다.
도 3은 본 발명의 일 실시예에 의한 서버가 앱을 생성 및 등록하는 과정을 보여주는 도면이다.
도 4는 본 발명의 일 실시예에 의한 템플릿 생성에 대한 상세한 처리 과정을 보여주는 도면이다.
도 5는 본 발명의 일 실시예에 의한 템플릿 풀의 구성을 보여주는 도면이다.
도 6은 본 발명의 일 실시예에 의한 메뉴의 추가 구성을 가능하게 하는 과정을 보여주는 도면이다.
도 7은 본 발명의 일 실시예에 의한 템플릿에 기반한 앱이 생성되어 사용되는 과정에서 각 메뉴에 대한 평점을 계산하는 과정을 보여주는 도면이다.
도 8은 본 발명의 일 실시예에 의한 사용자 경험 데이터를 누적 저장한 실시예이다.
도 9는 본 발명의 일 실시예에 의한 서버가 템플릿을 추천하고 앱 사용자 경험 데이터를 누적하는 과정을 보여주는 도면이다.
도 10은 본 발명의 일 실시예에 의한 템플릿에 새로운 메뉴를 추가한 인터페이스이다.
도 11은 본 발명의 일 실시예에 의한 각 메뉴별 사용에 대한 평점을 등록하고 이를 다시 템플릿의 각 메뉴를 평가하는 과정을 보여주는 도면이다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다. 또한, 본 발명의 일부 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가질 수 있다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질, 차례, 순서 또는 개수 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 다른 구성 요소가 "개재"되거나, 각 구성 요소가 다른 구성 요소를 통해 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
본 명세서에서는 사용자가 입력한 애플리케이션(application) 적용 분야와 기능을 포함하는 애플리케이션을 자동으로 개발하고 이를 마켓에 등록하는 과정과 이를 구현하는 서버에 대해 살펴본다. 또한 본 명세서에서는 이러한 애플리케이션의 추후 사용 과정에서 발생한 정보들에 기반하여 애플리케이션을 업데이트하거나 다른 애플리케이션을 개발하는데 적용하는 과정 및 이들을 구현하는 서버에 대해 살펴본다. 이하 본 명세서에는 애플리케이션을 줄여서 "앱"이라 지칭할 수 있다.
도 1은 본 발명의 일 실시예에 의한 서버의 구성을 보여주는 도면이다. 서버(100)의 구성요소는 서버 통신부(110), 템플릿 저장부(120), 서버 제어부(150)이며, 서버 제어부(150)는 인공지능 모듈(130)을 포함할 수 있다. 서버(100)는 템플릿 기반 애플리케이션을 생성하여 단말 장치(도 2의 200)에게 제공한다. 또한 서버(100)는 해당 애플리케이션이 단말 장치에서 실행되는 과정에서 산출된 정보들을 다시 템플릿 추천에 반영할 수 있다. 그 결과 서버(100)는 사용자의 니즈에 적합한 템플릿을 적용하여 애플리케이션을 생성할 수 있다.
서버 통신부(110)는 단말 장치와 통신하며 데이터를 송수신한다. 서버 제어부(150)는 단말 장치(200)에게 전송할 추천 템플릿을 생성하고 단말 장치(200)의 선택 정보에 대응하여 실행 가능한 프로그램 패키지를 생성한다.
그리고 서버 통신부(110)는 인공지능 모듈(130)을 이용하여 템플릿 추천 과정에서 단말 장치(200)가 제공하는 업종 정보나 키워드에 적합한 템플릿을 추천할 수 있다.
템플릿 저장부(120)는 다수의 템플릿을 업종 정보 또는 키워드에 대응하여 저장한다.
서버(100)의 각 구성요소가 동작하는 과정을 살펴보면 다음과 같다. 서버 통신부(110)가 단말 장치(200)로부터 템플릿 생성에 필요한 업종 정보 또는 키워드를 하나 이상 수신한다(제1단계, 도 3의 S1). 그리고 서버 제어부(150)는 수신한 업종 정보 또는 키워드를 이용하여 하나 이상의 추천 템플릿을 템플릿 저장부(120)에서 추출한다(제2단계, 도 3의 S2).
그리고 서버 통신부(110)가 추천 템플릿을 단말 장치(200)에게 전송한 후 단말 장치(200)로부터 추천 템플릿에 대한 선택 정보를 수신할 수 있다(제3단계, 도 3의 S3). 그리고 서버 제어부(150)는 수신한 선택 정보를 적용하여 소스 코드 및 실행 가능한 프로그램 패키지를 생성한다(제4단계, 도 3의 S4~S11). 그리고 서버 통신부(110)가 패키지를 단말 장치(200)에게 전송하면 단말 장치(200)는 해당 프로그램 패키지를 실행할 수 있다. 이와 같은 과정은 도 3에서 상세하게 살펴본다.
도 2는 본 발명의 일 실시예에 의한 단말 장치의 구성을 보여주는 도면이다. 단말 장치는 스마트폰, 태블릿, 노트북 등을 일 실시예로 하며 서버에게 앱 생성에 필요한 정보를 전송하고 그에 따른 중간 결과물 또는 최종 결과물을 확인한다.
단말 통신부(210)는 서버(100)와 통신을 수행하고 단말 제어부(250)는 단말 통신부(210)가 수신한 정보를 처리한다. 예를 들어 서버(100)가 전송한 추천 템플릿을 단말 저장부(230)에 일시 저장한 후 디스플레이부(220)를 통해 템플릿을 출력할 수 있다.
또한 사용자가 디스플레이부(220)의 터치 스크린 또는 기타 키보드나 마우스 등의 입력 장치를 통해 템플릿을 선택하거나 템플릿을 구성하는 메뉴의 추가 또는 삭제를 선택하면, 단말 제어부(250)는 이를 반영한 선택 정보를 생성하고 단말 통신부(210)는 선택 정보를 서버(100)에게 전송한다.
도 3은 본 발명의 일 실시예에 의한 서버가 앱을 생성 및 등록하는 과정을 보여주는 도면이다.
단말 장치(200)는 디스플레이부(220)에 표시된 사용자 업종에 대한 정보, 타겟 분야에 대한 정보 등과 키워드 등을 서버에게 전송한다(S1). 이때, 사용자 업종, 타겟 분야는 미리 서버(100)에 분류되어 저장된 상태를 일 실시예로 한다.
서버(100)가 각종 업종 정보, 타겟 분야에 대한 정보나 키워드를 단말 장치(200)로 전송한 후, 단말 장치(200)는 이를 디스플레이부(220)에 표시한 후 사용자가 특정 업종이나 타겟 분야를 선택할 수 있다. 키워드는 단말 장치(200)에서 입력될 수 있고 또는 서버(100)가 앞서 단말 장치(200)에게 다수의 키워드로 전달한 것일 수 있다.
서버(100)의 서버 제어부(150)는 인공 지능 모듈(130)을 포함할 수 있으며, 이를 적용하여 전송된 키워드나 업종, 타겟 분야에 대응하는 애플리케이션의 분석 정보와 템플릿을 템플릿 저장부(120)에서 검색 및 추출하여 이를 단말 장치(200)에게 전송한다(S2). 이때, 템플릿은 해당 템플릿에서 기본적으로 제공되는 메뉴(예를 들어 로그인, 회원가입, 게시판 등)를 포함할 수 있다. 그리고 전송하는 템플릿은 하나 또는 둘 이상이 될 수 있다.
단말 장치(200)는 구현하고자 하는 애플리케이션에 적합한 메뉴 또는 기능을 제공하는 템플릿을 선택하거나, 특정 템플릿에 소정의 메뉴 또는 기능을 추가하여 그 결과를 서버(100)에게 전송할 수 있다(S3).
서버(100)의 서버 제어부(150)는 단말 장치(200)가 전송한 선택 사항 혹은 추가 사항을 반영하여 그에 대응하는 애플리케이션 소스 코드를 자동으로 생성한다(S4). 이때 소스 코드는 템플릿 별로 미리 구현되어 있으며, 서버 제어부(150)는 단말 장치(200)가 수정하거나 추가한 내용을 반영하여 일부 소스 코드를 수정 또는 추가할 수 있다.
그리고 서버(100)는 생성한 애플리케이션 소스 코드 빌드 및 APK 파일을 자동으로 생성하여 단말 장치(200)에게 전송한다(S5).
이후 단말 장치(200)는 해당 APK 파일을 실행시켜서 해당 애플리케이션의 동작 과정을 검증한다(S6). 만약 검증 과정에서 기능이나 메뉴 등의 변경이 필요한 경우 S2~S5 과정을 반복한다.
변경이 필요하지 않은 경우, 서버(100)는 선택된 템플릿에 기반한 기획서를 자동 생성하여 단말 장치로 전송한다(S7). 그리고 단말 장치(200)는 기획서를 수정하고 수정된 내용을 서버에게 전송한다(S8). 수정된 내용에 따라 서버(100)는 템플릿을 추가하고 애플리케이션 코드를 수정한다(S9). 그리고 서버는 최종 기획서 및 최종 애플리케이션을 빌드한다(S10). 그리고 서버(100)는 최종 애플리케이션을 마켓에 등록한다(S11).
즉, 서버 통신부(110)가 실행 가능한 프로그램 패키지를 단말 장치(200)에게 전송한 이후 단말 장치(200)가 수신한 패키지를 검증한다. 그리고 검증 결과에 대한 응답 메시지를 단말 장치(200)가 송신하면 서버 제어부(150)가 선택 정보에 기반한 기획서를 자동으로 생성하고 서버 통신부(110)가 기획서를 단말 장치(200)에게 전송한다.
그리고 단말 장치(200)가 기획서에 대해 검증하고 검증 결과에 대한 응답 메시지를 송신하면 서버 제어부(150)가 실행 가능한 프로그램 패키지를 마켓에 등록하여 해당 애플리케이션을 다른 사용자들이 다운로드받고 설치할 수 있도록 한다.
도 3의 플로우를 적용할 경우, 앱 개발이 어려운 창업자 및 중소 사업자는 앱 서비스의 플랫폼에 기반하여 인공 지능이 제공하는 경쟁 앱을 분석할 수 있다. 또한, 서버(100)가 제공하는 애플리케이션 템플릿을 이용하여 스스로 애플리케이션을 제작하고 이를 활용한 애플리케이션 기획서를 서버(100)가 자동으로 작성한다, 이를 기반으로 빠르고 저렴하게 서버(100)가 제공하는 플랫폼 기반으로 애플리케이션이 마켓에 등록되어 유통될 수 있다.
또한, 본 서버(100)는 제작된 애플리케이션들 상호간에 홍보를 할 수 있도록 교차 홍보 및 광고 서비스를 제공하고 이에 기반한 수익화를 추구한다. 또한 플랫폼 오픈을 통한 프론트 개발 툴이 결합되거나 프론트 개발자가 소정의 개발 소스나 코드를 제공할 경우 양방향 플랫폼 서비스를 제공할 수 있다.
일반적으로 기획서는 앱 개발 의뢰자 또는 기획자가 문서를 만들어서 개발업체에 제공해야 하는 문서이다. 경험이 없는 의뢰자/기획자인 경우는 개발업체에서 기획서 샘플을 제공해 줄 경우 문서를 바탕으로 수정할 수 있지만 그렇지 않은 경우는 의뢰자 또는 기획자가 기획서를 직접 작성해야 하는데, 이때 의뢰자나 기획자가 기획서에 포함될 내용을 선별하거나 작성하는 것은 한계가 있을 수 있다 또한, 개발해야 할 내용을 명확하게 확정하기 위해서 내용 조율 및 앱 제작 의도를 정확히 작성하기까지 많은 시일이 소요될 수 있다.
본 발명의 실시예에 의한 서버(100)가 제공하는 앱 서비스 플랫폼을 활용하는 경우 의뢰자 또는 기획자는 단말 장치(200)를 이용하여 앱에 들어갈 화면(로그인, 메인, 회원가입 등)을 제공되는 템플릿을 선택하여 기획서를 생성하고 다운로드를 선택하면 템플릿에서 선택한 화면들이 순서대로 정렬될 수 있다. 또한 이들 템플릿에 기반하여 앱 의뢰자가 추가 내용을 작성할 수 있는 기획서 문서가 별도로 제공될 수 있다. 제공된 기획서 문서에 앱 의뢰자/기획자가 내용을 추가하여 앱 제작 의도와 각 화면 별 상세 내용을 추가 작성한 후 앱 서비스 플랫폼의 자동코드생성과 연동이 되어 앱을 생성할 수 있게 된다.
샘플 기획서를 제공받아 작성한다면 앱 의뢰자가 내용을 작성 및 수정, 그림들도 다 그려야 하지만, 서버(100)에서 자동 생성된 기획서는 템플릿에서 선택한 내용들이 생성된 기획서 문서에 자동으로 배치되므로 기획서 내용 작성에 상당 시간을 단축시켜준다. 선택된 템플릿에 대한 앱 화면의 입력상자, 버튼 등 다양한 요소들의 소스코드도 바로 생성해 주므로 앱 최초 테스트하는 시작일자를 상당 줄일 수 있게 된다.
템플릿을 임의로 선택하여 기획서로 저장하고 최종 확정이 되면 서버(100)는 최종 선택되어진 템플릿을 기반으로 앱 소스코드를 생성하고 최종 결과물인 apk를 생성하여 단말 장치(200)로 전송하여 단말 장치(200)가 apk를 설치하여 테스트를 진행할 수 있다.
즉, 서버(100)의 기획서 자동생성 기능을 통해 시간을 절약하며 코드 재사용 및 표준화를 통해 개발 생산성을 향상시킬 수 있고 기획 오류로 인한 앱 제작의 오류도 크게 줄여 안정적인 서비스를 제공할 수 있다.
또한, 서버(100)가 생성한 기획서는 온라인으로 앱 의뢰자와 플랫폼 제공자에게 공유되어 동시에 접속하며 기획서 내용을 추가 및 수정할 수 있다.
도 4는 본 발명의 일 실시예에 의한 템플릿 생성에 대한 상세한 처리 과정을 보여주는 도면이다. 앞서 도 3의 S2 단계를 상세히 살펴본다.
서버 제어부(150)는 템플릿들이 저장된 템플릿 저장부(120)에서 키워드 기반으로 검색을 수행한다(S21). 키워드는 사용자가 단말 장치(200)에 입력하거나 또는 선택한 키워드, 또는 업종이나 타겟 분야에 대한 키워드를 포함한다. 템플릿 저장부(120)는 템플릿 풀에 해당한다.
서버 제어부(150)는 인공지능 모듈(130)이 제시하는 유사 키워드, 인접 키워드, 추천 키워드 등을 이용하여 템플릿 저장부(120)에서 키워드에 해당하는 템플릿 또는 매칭 점수가 높은 템플릿을 검색하여 후보 템플릿을 추출한다(S22).
그리고 서버 제어부(150)는 키워드와 후보 템플릿 사이의 일치도를 분석하여 평점을 예측하고 그에 따라 필터링을 수행한다(S23). 그리고 서버 제어부(150)는 필터링 결과 남는 템플릿들에 대해 순위를 생성한다(S24). 이후 서버(100)는 하나 이상의 추천 템플릿을 출력하여 이를 단말 장치(200)에게 전송한다(S25).
서버 제어부(150)가 키워드를 사용함에 있어서 인공지능 모듈(130)이 제공하는 컨텐츠 기반 추천(Content Based Recommender, CBR), 협업 필터링(Collaborative Filtering, CF)을 적용할 수 있다. 또한, 업종에 대한 템플릿을 선택함에 있어서는 서버 제어부(150)가 인공지능 모듈(130)이 제공하는 지식 기반 추천(Knowledge-Based Recommender, KBR)를 적용할 수 있다.
서버 제어부(150)는 위의 세 가지 방식(CBR, CF, KBR)을 적용하여 S21~S23에 대해 하이브리드 결과물을 산출할 수 있다.
일 실시예로 서버 제어부(150)는 단말 장치의 제1사용자 정보를 이용하여 선택 정보들(메뉴의 추가 또는 삭제, 템플릿의 선택 등)의 유사도가 기준 이상인 제2사용자 정보를 검색하고 제2사용자가 선호하는 템플릿, 즉 제2사용자 정보에 대응하는 템플릿을 추출하여 추천할 수 있다.
예를 들어 서버 제어부(150)는 단말 장치(200)가 제공하는 사용자 정보와 유사한 대상자를 선정하고, 유사 대상자가 과거에 선호한 템플릿 중 추천 대상자가 선택하지 않은 템플릿을 선정하고 단말 장치(200)에게 선정된 템플릿을 추천할 수 있다.
CBR 방식 및 CF 방식의 경우 키워드에 중점을 두어 템플릿을 추천할 수 있다. 한편, KBR 방식의 경우 업종 정보를 활용할 수 있다.
서버 제어부(150)는 3가지 방식을 적용한 결과를 혼합하되, 또한 현재 단말 장치(200)의 사용자와 유사한 사용자가 과거 선택했던 템플릿 역시 추천 템플릿으로 제공하여 사용자들의 템플릿 선택 행위의 유사도를 반영할 수 있다. 사용자의 유사도의 일 실시예로 코사인 유사도를 사용할 수 있다.
이 과정에서 서버 제어부(150)는 코사인 유사도(Cosine Similarity)를 사용할 수 있다. 코사인 유사도는 아래 수학식 1과 같이 두 사용자의 유사도 또는 한 사용자에게 추천하고자 하는 템플릿과 다른 사용자가 선택한 템플릿 사이의 유사도를 측정하는데 적용될 수 있다.
인공지능 모듈(130)은 콘텐츠 기반 추천알고리즘으로 신규 템플릿도 추천할 수 있다. CBR은 모든 단말 장치(200)의 사용자에게 유사하지 않아도 특정한 템플릿을 추천할 수 있다. 한편 CF는 특정 템플릿과 유사한 템플릿만 추천할 수 있다.
따라서 서버 제어부(150)는 CBR 및 CF의 결과물을 적용하고 신규 추천 템플릿은 지식 기반 추천알고리즘(KBR)으로 추가 보완하여 하나 이상의 템플릿을 제공할 수 있다. 이는 서버 제어부(150)가 과거 단말 장치(200)가 전송한 사용자의 업종, 적용 사례 또는 분야별 정보를 활용하는 것을 일 실시예로 한다.
또한, 템플릿 저장부(120)는 과거 사용자들이나 단말 장치(200)가 선택한 템플릿 풀에 대한 선택 정보를 누적 저장하여 추후 다른 사용자나 다른 단말 장치에게 템플릿 풀을 제공함에 있어 누적 저장한 결과를 반영할 수 있다. 즉 서버 제어부(150)는 사용자의 선택 과정을 템플릿을 추천하는데 있어 필요한 정보로 활용할 수 있다.
또한, 서버 제어부(150)는 후보 템플릿 추출 과정에서 최근 해당 업종/키워드에서 신규 등록된 다른 애플리케이션의 Interface 등과 비교 결과를 표시하여 단말 장치(200)가 이러한 비교 결과를 출력하여 직관적으로 템플릿을 선택할 수 있도록 한다.
도 4의 실시예를 정리하면 다음과 같다.
서버 제어부(150)가 템플릿 저장부(120)에서 후보 템플릿을 추출한 후, 다수의 추출된 후보 템플릿을 평점에 기반하여 필터링을 수행한다(S22, S23). 이때 평점은 템플릿 또는 템플릿의 메뉴에 대해 사용자들이 부여한 평점 또는 템플릿을 이용하여 개발된 애플리케이션을 사용자들이 사용하는 과정에서 발생한 사용자 경험 데이터(User Experience Data)를 포함한다.
사용자 경험 데이터란 애플리케이션이 설치된 단말 장치(200)이 특정 메뉴 상태에서 체류하거나 해당 메뉴를 유지한 시간, 특정 메뉴를 선택한 시간 또는 횟수 등에 대한 정보를 포함한다. 사용자 경험 데이터는 템플릿에 기반하여 생성된 애플리케이션이 어떤 중요도를 가지는지를 알려준다. 따라서 서버 제어부(150)는 템플릿에 기반하여 생성된 애플리케이션이 실행 후 생성하는 사용자 경험 데이터들을 누적 저장하여 추후 템플릿을 수정하거나 추천할 경우에 누적 저장된 정보들을 반영한다.
도 5는 본 발명의 일 실시예에 의한 템플릿 풀의 구성을 보여주는 도면이다. 업종에 따라 템플릿을 각각 제공하는 실시예이다. 각 템플릿들에서 인트로, 메인, 회원가입, 로그인, 마이페이지는 공통된 구성요소이다. 물론, 각 업종에 따라 인트로나 메인 구성이 상이할 수 있다.
IT 업종에는 "쇼핑몰" 및 "참고 사이트"라는 메뉴가 있으며, 또한 공공 DB 연결 메뉴가 있다. IT 업종 템플릿은 해당 분야에서 자주 사용하는 쇼핑몰, 정보 제공 등 세부 항목을 설정하고 해당 정보와 데이터베이스(데이터베이스 포맷 또는 공공 데이터베이스 등)를 연결하는 링크를 제공할 수 있다.
제조 업종 템플릿에는 "쇼핑몰" 및 "주문제작" 메뉴가 있다. 그리고, 요식업종에는 "주문"과 "맛집 소개"라는 메뉴가 있다. 요식업 템플릿은 다수의 공개된 음식점 정보를 데이터베이스로 제공하도록 연결 링크를 제공할 수 있다.
각 템플릿의 세부 메뉴들은 화면 별로 필요한 입력창이나 버튼을 포함하며, 템플릿을 다운로드하거나 디스플레이부(220)에 표시한 단말 장치(200)는 입력창이나 버튼의 위치, 크기 등을 조절할 수 있다. 또한 단말 장치(200)는 유사한 입력창이나 버튼을 추가할 수 있다.
각 메뉴는 n개의 서브메뉴를 포함할 수 있으며, 단말 장치(200)는 서브메뉴 중 일부만을 포함하도록 선택할 수 있다. 또한, 단말 장치(200)는 유사한 서브메뉴를 선택해서 새로운 서브메뉴를 추가할 수 있다. 또한, 단말 장치(200)는 템플릿을 다운로드 받거나 템플릿을 디스플레이부(220)에 표시한 후 새로운 메뉴를 더 추가할 수도 있다.
이와 같이 서버(100)의 템플릿 저장부(120)는 다수의 업종별 템플릿을 저장할 수 있고 또한 키워드에 따라 템플릿을 저장할 수 있다.
또한, 템플릿 저장부(120)는 업종별로 다수의 템플릿을 저장할 수 있으며, 추후 사용자들이 입력한 키워드나 사용자들이 선택한 템플릿에 대해 가중치를 부여하여 추후 다른 사용자의 템플릿 요청에 대응할 수 있다. 서버(100)는 템플릿 저장부(120)에 저장된 템플릿을 이용하여 업종별 특화된 메뉴 및 템플릿 제공과 공공데이터 활용 기능을 제공할 수 있다.
같은 업종 사용자가 구성한 템플릿 구성 노출 및 선택된 경우 데이터로 저장하여 내부 추천 템플릿 구성 데이터로 활용할 수 있다.
템플릿 풀은 다양한 입력창, 버튼, 화면 전환 등에 대한 정보를 포함할 수 있으며, 또한 단말 장치(200)가 다양하게 추가할 수 있도록 미리 정의된 메뉴/서브 메뉴를 추가하는 메뉴가 구성될 수 있다.
도 5의 실시예를 적용할 경우, 서버 제어부(150)는 동일 또는 유사 업종 사용자가 구성한 템플릿을 추천할 수 있다. 예를 들어, 서버 제어부가 업종 정보를 기준으로 동일 업종 또는 유사 업종의 템플릿을 템플릿 저장부(120)에서 검색한다. 그리고 검색한 템플릿 중에서 단말 장치의 제1사용자 정보를 이용하여 앞서 선택 정보들의 유사도가 기준 이상인 제2사용자 정보에 대응하는 템플릿을 추출하여 추천할 수 있다.
도 6은 본 발명의 일 실시예에 의한 메뉴의 추가 구성을 가능하게 하는 과정을 보여주는 도면이다.
단말 장치(200)는 S25 단계에서 서버(100)로부터 전송된 추천 템플릿 중 하나를 선택한다(S31). 그리고 단말 장치(200)는 선택한 템플릿에서 메뉴/서브메뉴 추가를 서버(100)에게 요청한다(S32).
서버(100)는 선택된 템플릿에서 과거 자주 추가된 메뉴/서브메뉴를 리스트하여 단말 장치에게 전송한다(S33). 이 과정에서 후보가 되는 메뉴나 서브메뉴에 대한 정보는 템플릿 저장부(120)에 템플릿 별로 저장될 수 있다.
이후 단말 장치(200)가 서버(100)로부터 수신한 리스트 중 하나의 메뉴/서브메뉴를 선택하거나, 단말 장치(200)가 새로운 메뉴/서브메뉴의 내용을 작성하여 서버(100)에게 전송한다(S34).
이후 서버(100)는 수신한 내용에 따라 템플릿에 메뉴/서브메뉴를 추가한 결과물을 생성하여 단말 장치(100)에게 전송하고(S35), 단말 장치(200)는 S31 내지 S34 과정을 반복할 수 있다.
또한, 메뉴나 서브메뉴의 삭제는 별도의 리스트 전송 과정 없이 이루어질 수 있다.
예를 들어, 도 6의 S31 및 S32에서 단말 장치(200)는 템플릿에서 특정 메뉴나 서브메뉴를 삭제하는 요청을 서버(100)에게 전송할 수 있다. 이와 같이 템플릿에 대해 단말 장치(200)가 메뉴를 추가 또는 삭제한 히스토리, 템플릿을 선택한 히스토리는 서버(100)에 누적 저장된다. 그리고 서버 제어부(150)는 다른 단말 장치(200)에게 템플릿을 추천하는 S2, S22 또는 S32의 과정에서 전술한 히스토리 정보를 사용하여 추천의 정확도를 높일 수 있다.
즉, 단말 장치(200)는 서버(100)로부터 수신한 템플릿 다수들 중에서 하나를 선택하거나, 혹은 하나의 템플릿에 대해 수정한 정보를 선택 정보로 생성하여 서버(100)에게 전송할 수 있다. 선택 정보는 단말 장치(200)가 하나 이상의 추천 템플릿 중 하나를 선택한 정보를 포함할 수 있다. 또한 선택 정보는 단말 장치(200)가 선택한 템플릿 내의 메뉴의 추가 또는 삭제에 대한 정보를 포함할 수 있다.
그리고, 서버 제어부(150)는 템플릿 내의 메뉴의 추가 또는 삭제에 대한 정보가 누적되면 누적된 정보를 반영한 새로운 템플릿을 템플릿 저장부에 저장하여 이후 템플릿을 추천하는 과정에서 새로운 템플릿을 포함시킬 수 있다.
또한 메뉴의 추가 또는 삭제의 정보를 누적시키는 과정은 다음의 과정을 포함할 수 있다. 서버(100)는 해당 템플릿에 기반하여 생성된 애플리케이션의 실행 과정에서 발생한 사용자 경험 데이터 역시 누적 저장한다. 서버 제어부(150)는 누적된 데이터들을 이용하여 템플릿 내에서 중요도가 높은 메뉴와 중요도가 낮은 메뉴를 선별하고, 해당 템플릿의 구성을 변경하거나 메뉴의 순서를 조정할 수 있다.
도 7은 본 발명의 일 실시예에 의한 템플릿에 기반한 앱이 생성되어 사용되는 과정에서 각 메뉴에 대한 평점을 계산하는 과정을 보여주는 도면이다. 서버(100)는 단말 장치(200)로부터 단말 장치에 설치된 앱에서 메뉴 또는 서브메뉴를 선택한 시간을 포함하는 사용자 경험 데이터를 수신한다(S51).
예를 들어 앱 실행 후, 앱 유저들이 특정 메뉴에 머무르는 시간, 특정 메뉴에서 서브 메뉴를 선택하는 횟수, 혹은 특정 메뉴나 서브 메뉴를 선택한 후, 다시 "Back" 또는 "Home" 을 눌러 해당 메뉴나 서브메뉴에서 체류한 시간이 짧은 경우 등이 모두 사용자 경험 데이터에 포함된다.
서버(100)는 수신한 사용자 경험 데이터에 기반하여 앱 개발에 적용된 템플릿의 메뉴 또는 서브메뉴의 평점을 업데이트한다(S52). 그리고 서버(100)는 추후에 업데이트된 평점에 따라 템플릿 추천 프로세스 진행한다(S53).
이는 특정 메뉴나 서브메뉴에 오래 체류하는 경우 해당 메뉴/서브메뉴가 앱 사용자들에게 중요한 부분이므로 추후 해당 템플릿을 구현할 경우 해당 메뉴나 서브메뉴를 좀더 상위 계층에 포함되도록 서버(100)가 템플릿을 조정하거나 혹은 새로운 템플릿을 생성하는 것을 일 실시예로 한다.
또한, 서버(100)는 앱 사용자 별 백(back)(main 혹은 이전 단계로의 이동) 버튼 또는 홈(home) 버튼을 누르는 사용자 경험 데이터를 현상을 템플릿 별로 누적저장하여 사용자가 잘못 누르는 경우 인터페이스 교체를 제안하거나 혹은 이러한 교체 사항을 반영하여 새로운 템플릿을 생성할 수 있다.
예를 들어 Main 화면에서 A라는 메뉴를 선택한 사용자가 곧바로 back을 누르고, 이와 같은 과정이 다수의 사용자들로부터 발생할 경우, A라는 메뉴는 사용자들이 관심을 가지고 눌렀으나 원하는 정보를 제공하지 못하는 메뉴이므로 서버(100)는 해당 앱의 업그레이드 또는 해당 앱과 관련된 템플릿에 대해 Main 인터페이스에서 해당 부분을 제거하거나 재배치하는 제안 메시지를 생성할 수 있다.
그리고 해당 앱의 개발을 의뢰했던 단말 장치(200)가 앱의 사용 빈도나 사용 패턴 등에 대한 리포트를 받을 경우 앞서의 제안 메시지가 함께 단말 장치(200)에게 제공될 수 있다. 단말 장치(200)가 제안 메시지에 따라 애플리케이션 수정을 요청할 경우, 서버(100)는 수정된 내용의 애플리케이션을 빌드하여 마켓에 등록하고 애플리케이션이 업데이트(버전 변경)되었음을 다수의 애플리케이션 설치 단말들에게 통지한다. 이와 같은 통지에 따라 애플리케이션을 설치한 단말들이 업데이트를 선택하면 새로운 애플리케이션이 단말 장치에 설치된다.
다른 실시예로 Main 화면에서 두 단계 이상 들어간 B 메뉴를 선택한 앱 사용자들의 해당 메뉴에서의 체류 시간이 증가하고, 이와 같은 사용자 경험 데이터가 다수의 사용자들로부터 생성되어 서버(100)로 전송될 경우, B라는 메뉴는 사용자들의 관심이 높은 메뉴이므로 서버(100)는 해당 앱의 Main 인터페이스에 해당 B 메뉴를 바로 선택할 수 있도록 재배치하는 제안 메시지를 생성할 수 있다.
마찬가지로 해당 앱의 개발을 의뢰했던 단말 장치(200)가 앱의 사용 빈도나 사용 패턴 등에 대한 리포트를 받을 경우 앞서의 제안 메시지가 함께 단말 장치(200)에게 제공될 수 있다.
또한, 서버(100)는 각 앱 및 해당 앱의 개발 기초가 되었던 템플릿에 기반하여 사용자 경험 데이터를 반영하여 템플릿의 구성을 재배치할 수 있다. 예를 들어 서버(100)는 업종별 템플릿 선택 빈도/시간 등을 분석하여 템플릿의 구성을 재배치할 수 있다.
또한, 서버(100)는 동일 업종이 아닌 타업종의 템플릿 선택 빈도/시간 등을 분석하여 템플릿의 구성을 재배치할 수 있다. 이 경우, 이종의 업종들 간의 템플릿이 서로 관련성이 있거나 인접 분야인 경우, 서버(100)는 특정 분야의 업데이트된 템플릿 구성을 다른 분야에도 적용할 수 있다.
도 8은 본 발명의 일 실시예에 의한 사용자 경험 데이터를 누적 저장한 실시예이다. 인덱스는 데이터베이스에 저장된 메뉴의 식별 정보이다. 업종 코드는 템플릿 추천이나 키워드 검색 시 적용되는 업종의 식별자이다. 상이한 업종에 대해 상이한 업종 코드가 설정될 수 있다. 예를 들어 C0001은 요식업, C0002는 쇼핑몰 등으로 설정될 수 있다.
메뉴명은 메뉴에 대한 정보를 의미한다. 메뉴코드는 업종코드와 결합되며 메뉴 인덱스는 템플릿이나 앱의 홈 화면을 기준으로 설정된다. 57 또는 58의 제1행을 살펴보면 C0001(요식업)에서 로그인 메뉴는 메뉴 코드가 C0001-L0001이며 인덱스는 0001로 설정된다. 해당 템플릿 또는 해당 템플릿을 이용하여 개발된 앱에서 해당 메뉴가 선택된 횟수가 "선택횟수" 항목에 저장된다. 물론, 선택횟수 외에 체류 시간 정보 역시 데이터베이스에 포함될 수 있다. 그리고 이에 기반하여 서버(100)가 산출한 메뉴 별 평점평균이 "평점평균" 항목에 저장된다.
또는 템플릿을 확인하는 앱 개발 과정에서 사용자가 각 템플릿의 메뉴들에 대해 평점을 부여할 수 있으며, 이러한 평점이 누적되어 추후 템플릿 추천 시 이용될 수 있다.
57은 모든 템플릿/앱 사용자들의 선택횟수 및 평점평균을 저장한 실시예이며, 58은 각 템플릿/앱 사용자 아이디 별로 해당 메뉴에 대해 활동한 평점평균을 저장한 실시예이다.
이외에도 앞서 back/home 버튼을 누르는 경우 등도 서버(100)가 메뉴 별로 평점평균을 계산 시 파라미터로 입력될 수 있다.
도 9는 본 발명의 일 실시예에 의한 서버가 템플릿을 추천하고 앱 사용자 경험 데이터를 누적하는 과정을 보여주는 도면이다. 단말 장치(200)가 특정한 키워드를 입력하거나 특정 업종을 입력하면(S61, S62), 서버(100)는 그에 해당하는 추천 템플릿 풀에서 추천 템플릿을 검색한다. 예를 들어 템플릿 풀은 제1키워드, 제2키워드 등 키워드 별로 템플릿 풀이 설정되며 이는 템플릿 저장부(120)에 키워드 별로 저장될 수 있다.
또한, 업종별로 템플릿 풀이 설정되며 템플릿 저장부(120)에 업종 별로 저장될 수 있다.
서버(100)는 입력된 키워드와 업종에 따라 하나 이상의 추천 템플릿을 출력한다. 뿐만 아니라, 서버(100)는 입력된 업종과 관련성이 있는 타업종 템플릿 풀 혹은 새로 추가된 템플릿 풀에서도 추천 템플릿을 검색할 수 있다.
그 결과 서버(100)는 하나 이상의 추천 템플릿을 추출하여 단말 장치(200)에게 제공한다(S64).
이후 단말 장치(200)가 특정한 템플릿을 선택하면(S65) 서버는 이와 같은 선택 사항과 앞서 단말 장치(200)가 입력한 키워드/업종 등과 S64에서 템플릿을 추출하는데 사용된 파라미터 등을 템플릿 저장부(120) 혹은 별도의 데이터베이스나 인공지능 모듈(130)에 저장한다(S66). 추후 인공지능 모듈(130)을 통한 분석에 반영하거나 또는 통계 데이터를 생성할 때 반영할 수 있다.
S65~S67 단계를 적용함으로써 서버 제어부(150)와 인공지능 모듈(130)은 템플릿 풀에서 특정 키워드와 업종에 따라 사용자가 선택한 템플릿 풀에 대한 선택 정보를 누적 저장하여 추후 다른 사용자에게 템플릿 풀을 제공함에 있어 이전의 결과를 반영할 수 있으며, 이로 인해 사용자의 선택 과정이 더 정밀한 추천 정보를 생성하는데 이용될 수 있다.
또한, S65 단계에서 단말 장치(200)는 추천 템플릿들 중에서 템플릿을 선택하는 과정에서 둘 이상의 템플릿을 머징(merging)할 수 있다. 예를 들어, 템플릿 A의 제1메뉴, 제2메뉴, 제3메뉴 및 템플릿 B의 제4메뉴, 제5메뉴를 머징하여 하나의 새로운 템플릿이 생성될 수 있다. 단말 장치(200)가 둘 이상의 추천 템플릿을 이용하여 새로운 템플릿을 생성할 경우 서버(100)는 신규 템플릿 풀에 해당 템플릿을 저장할 수 있다.
또한, 이와 같은 템플릿의 머징 과정은 서버(100)의 서버 제어부(150)가 수행할 수도 있다.
예를 들어, 추천 템플릿으로 템플릿 A의 추천 점수 및 템플릿 B의 추천 점수가 일정 범위 이내인 경우, 서버 제어부(150)는 템플릿 A, B를 각각 단말 장치(200)에게 전송할 수 있다. 또는 다른 실시예로 서버 제어부(150)는 템플릿 A-B의 주요 메뉴를 머지(merge)하여 단말 장치(200)에게 전송할 수 있다.
예를 들어 템플릿 A는 Main 아래에 메뉴들의 구성이 "가입 - 로그인 - 상점 위치 - 예약 - 현재 밀집도"인 경우를 가정한다. 또한, 템플릿 B는 Main 아래에 메뉴들이 "가입 - 로그인 - 상점 위치 - 메뉴 설명 - 예약 전화 연결"로 구성된 경우를 가정한다.
서버(100)는 각 템플릿 A, B를 각각 단말 장치(200)에게 제공할 수도 있고 상이한 두 개의 메뉴를 결합한 새로운 템플릿을 단말 장치(200)에게 제공할 수 있다. 일 실시예로 새로운 템플릿의 구성요소는 Main 아래에 "가입 - 로그인 - 상점 위치 - 예약 - 예약 전화 연결"을 포함할 수 있다. 이는 서버 제어부(150)가 템플릿 A의 예약 및 템플릿 B의 예약 전화 연결을 각각 머지한 경우이다.
서버(100)가 머지한 템플릿에 대한 단말 장치(200)의 선택이 증가할 경우, 새로운 템플릿을 자동으로 생성할 수 있다.
따라서, 최초에 템플릿 풀은 키워드와 업종에 대응하는 템플릿들로 구성될 수 있으나, 이후 서버(100)와 단말 장치(200)가 새롭게 머징한 템플릿이 증가할 경우 서버(100)는 이를 다시 신규 템플릿 풀에 저장하여 템플릿의 수를 증가시킨다.
단말 장치(200)는 각 메뉴별 템플릿 선택화면에서 추천된 구성 또는 직접 선택한 템플릿 구성을 서버(100)에게 전송하여 추천/선택한 내용을 포함하여 앱의 생성을 요청할 수 있다.
또한, 단말 장치(200)가 최종 선택한 템플릿 화면 구성을 서버(100)에 저장하여 앱에 적용하면 서버(100)는 이번에 선택한 템플릿의 메뉴 구성을 타 사용자들이 참고할 데이터셋으로 저장하여 다른 사용자들에게 제공할 수 있다.
또한, 단말 장치(200)가 직접 구성한 템플릿 메뉴를 포함한 앱의 노출기회를 부여하여 서버(100)는 다양한 템플릿을 확보할 수 있다.
도 10은 본 발명의 일 실시예에 의한 템플릿에 새로운 메뉴를 추가한 인터페이스이다. 후보 템플릿 추출 과정에서 최근 해당 업종/키워드에서 신규 등록된 다른 애플리케이션의 인터페이스(Interface) 등과 비교 결과를 표시한 인터페이스이다. 도 10은 서버(100)가 템플릿 리스트를 생성하여 단말 장치(200)에 전송하고 단말 장치(200)의 디스플레이부(220)가 화면 상에 템플릿들을 나열한 실시예이다.
서버(100)는 추천 템플릿을 단말 장치(200)에게 전송하고, 각 메뉴를 단말 장치(200)가 선택 혹은 추가할 수 있도록 한다. 또한 단말 장치(200)에 표시된 각 메뉴별 선택화면은 업종/키워드의 선택빈도가 높은 추천 템플릿 화면을 상단에 노출하도록 서버(100)가 추천 템플릿 리스트를 생성할 수 있다(Group A).
서버(100)는 신규 등록된 템플릿을 랜덤하게 단말 장치(200)의 추천 템플릿의 하단(다음 라인)에 노출하도록 리스트를 생성하여 신규 템플릿도 노출이 되어 선택될 가능성을 높일 수 있다(Group B). 그리고 서버(100)는 신규 템플릿들이 노출된 하단에 해당 업종에 등록된 일반 템플릿을 노출시켜 단말 장치(200)가 템플릿을 선택할 수 있도록 한다(Group C).
도 11은 본 발명의 일 실시예에 의한 각 메뉴별 사용에 대한 평점을 등록하고 이를 다시 템플릿의 각 메뉴를 평가하는 과정을 보여주는 도면이다.
도 11의 실시예를 적용할 경우, 서버(100)는 템플릿을 선택한 단말 장치(200)의 사용자가 선택한 메뉴에 대해 부여한 평점 또는 선택값, 점수 등을 기초데이터로 취합한다(S71). 그리고 서버(100)는 전술한 사용자들이 각 항목에 대해 부여한 평점을 메뉴 별로 취합하여 매트릭스 형태로 데이터 변환한다(S72).
이후 서버(100)는 업종별로 추천 템플릿을 예측한다(S73). 메뉴에 대한 평점이 유사한 템플릿은 서로 관련성이 있는 것으로 판단할 수 있다. 또한, 서버(100)는 유사한 사용자에 대해 가중치를 두어 필터링한다(S74). 여기서 유사한 사용자란 동일 또는 유사한 메뉴에 대해 유사한 평점을 부여한 사용자들을 의미한다. 서버(100)는 수학식 1을 적용하여 유사한 사용자에 대해 가중치를 두어 필터링을 수행할 수 있다. 가중치 계산은 사용자간 코사인 유사도를 계산하여 유사도값이 1에 근접할수록 유사하다고 판단하여 필터링하는 것을 일 실시예로 한다.
그리고 해당 템플릿을 적용한 앱이 출시된 이후 앱 사용자들이 선택한 앱의 메뉴의 사용 빈도 및 평점을 지속적으로 관리하며 데이터 재계산하여 추천에 활용한다(S75).
표 1은 템플릿을 다운로드 받거나 온라인으로 확인 가능한 단말 장치가 각 메뉴에 대해 평점을 부여한 경우이다. 또는 서버(100)는 단말 장치(200)가 템플릿 내의 메뉴를 선택하거나 추가 혹은 삭제하는 등 템플릿을 수정하거나 추가하는 경우에 이러한 행위를 숫자로 변환하여 평점을 산출할 수 있다.
또는 이러한 평점은 단말 장치(200)의 사용자가 직접 템플릿의 각 메뉴에 대해 평점을 입력할 수도 있다. 예를 들어 사용자는 단말 장치(200)을 통해 템플릿의 각 메뉴에 대해 긍정 반응(예를 들어 좋아요, 추천 등) 또는 부정 반응을 입력하면 서버(100)는 이를 평점으로 전환할 수 있다.
사용자 아이디 업종별 메뉴 아이디 평점
0 196 242 3.0
1 186 302 3.0
2 22 377 1.0
3 244 51 2.0
4 166 346 1.0
5 298 474 4.0
6 115 265 2.0
7 253 465 5.0
8 305 451 3.0
9 6 86 3.0
표 2는 각각의 템플릿에 대해 단말 장치가 부여한 메뉴 별 평점을 매트릭스 형태로 표시한 것이다. 서버(100)는 각 템플릿에 대한 평점을 사용자-메뉴 별로 구성할 수 있다.
item 211 212 213 214 215 216 217 218 219
user
290 3 4 2
291 4 4 4 4 4
292 3
293 4 3 4 4 3 2
294
295 5 5 5 4 5
296 4
297 4 3 2 4 3
298 5 3 5
299 4 4 5 5
서버 제어부(150)는 표 1 및 표 2에 기반하여 업종별로 어떤 템플릿을 추천할 지 예측한다.
뿐만 아니라, 서버(100)는 추후 해당 앱평점은 해당 메뉴의 체류 시간, 해당 메뉴의 재방문 횟수, 전체 앱 메뉴들 중에서 해당 메뉴의 사용 시간, 사용자가 직접 입력한 점수 등을 토대로 산출될 수 있다.
본 발명의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니며, 본 발명의 목적 범위 내에서 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성 요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 저장매체(Computer Readable Media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시예를 구현할 수 있다. 컴퓨터 프로그램의 저장매체로서는 자기 기록매체, 광 기록매체, 반도체 기록소자를 포함하는 저장매체를 포함한다. 또한 본 발명의 실시예를 구현하는 컴퓨터 프로그램은 외부의 장치를 통하여 실시간으로 전송되는 프로그램 모듈을 포함한다.
전술된 실시예는 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해되어야 하며, 본 발명의 범위는 전술된 상세한 설명보다는 후술될 특허청구범위에 의해 나타내어질 것이다. 그리고 이 특허청구범위의 의미 및 범위는 물론, 그 등가개념으로부터 도출되는 모든 변환 및 변형 가능한 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 서버 200: 단말장치

Claims (14)

  1. 서버의 서버 통신부가 단말 장치로부터 템플릿 생성에 필요한 업종 정보 또는 키워드를 하나 이상 수신하는 제1단계;
    상기 서버의 서버 제어부가 상기 수신한 업종 정보 또는 키워드를 이용하여 하나 이상의 추천 템플릿을 템플릿 저장부에서 추출하는 제2단계;
    상기 서버 통신부가 상기 추천 템플릿을 상기 단말 장치에게 전송한 후 상기 단말 장치로부터 상기 추천 템플릿에 대한 선택 정보를 수신하는 제3단계; 및
    상기 서버 제어부가 상기 선택 정보를 적용하여 소스 코드 및 실행 가능한 프로그램 패키지를 생성하고, 상기 서버 통신부가 상기 패키지를 상기 단말 장치에게 전송하는 제4단계를 포함하며,
    상기 제2단계는
    상기 서버 제어부가 템플릿 저장부에서 후보 템플릿을 추출하여 상기 후보 템플릿을 평점에 기반하여 필터링을 수행하는 단계를 더 포함하며,
    상기 평점은 상기 템플릿 또는 상기 템플릿의 메뉴에 대해 사용자들이 부여한 평점 또는 상기 템플릿을 이용하여 개발된 애플리케이션을 사용자들이 사용하는 과정에서 발생한 사용자 경험 데이터를 포함하며,
    상기 사용자 경험 데이터는 상기 개발된 애플리케이션의 설치 후 상기 애플리케이션의 메뉴에서 체류하거나 상기 메뉴를 유지한 시간, 특정 메뉴를 선택한 시간 또는 횟수를 포함하며,
    상기 서버 제어부는 상기 애플리케이션의 앱 유저가 상기 메뉴를 선택한 후 곧바로 이전 단계로의 이동 버튼 또는 홈 버튼을 누르는 사용자 경험 데이터를 상기 템플릿 별로 누적 저장하여 새로운 템플릿을 생성하는, 템플릿 기반 애플리케이션 생성 방법.
  2. 제1항에 있어서,
    상기 제3단계에 있어서,
    상기 선택 정보는 상기 하나 이상의 추천 템플릿 중 하나를 선택한 정보 및 상기 선택한 템플릿 내의 메뉴의 추가 또는 삭제에 대한 정보를 포함하며,
    상기 서버 제어부는 상기 템플릿 내의 메뉴의 추가 또는 삭제에 대한 정보가 누적되면 상기 누적된 정보를 반영한 새로운 템플릿을 상기 템플릿 저장부에 저장하는 단계를 더 포함하는, 템플릿 기반 애플리케이션 생성 방법.
  3. 제2항에 있어서,
    상기 서버 제어부는 상기 단말 장치의 제1사용자 정보를 이용하여 상기 선택 정보들의 유사도가 기준 이상인 제2사용자 정보에 대응하는 템플릿을 추출하여 추천하는 단계를 더 포함하는, 템플릿 기반 애플리케이션 생성 방법.
  4. 제1항에 있어서,
    상기 제2단계는
    상기 서버 제어부가 상기 업종 정보를 기준으로 동일 업종 또는 유사 업종의 템플릿을 템플릿 저장부에서 검색하고, 검색한 템플릿 중에서 상기 단말 장치의 제1사용자 정보를 이용하여 상기 선택 정보들의 유사도가 기준 이상인 제2사용자 정보에 대응하는 템플릿을 추출하여 추천하는 단계를 더 포함하는, 템플릿 기반 애플리케이션 생성 방법.
  5. 제1항에 있어서,
    상기 제4단계는
    상기 서버 통신부가 상기 실행 가능한 프로그램 패키지를 상기 단말 장치에게 전송한 이후 상기 단말 장치가 상기 패키지를 검증한 응답 메시지를 송신하면 상기 서버 제어부가 상기 선택 정보에 기반한 기획서를 자동으로 생성하여 상기 서버 통신부가 상기 기획서를 상기 단말 장치에게 전송하는 단계; 및
    상기 단말 장치가 상기 기획서에 대해 검증한 응답 메시지를 송신하면 상기 서버 제어부가 상기 실행 가능한 프로그램 패키지를 마켓에 등록하는 단계를 포함하는, 템플릿 기반 애플리케이션 생성 방법.
  6. 제1항에 있어서,
    상기 서버 제어부는 상기 사용자 경험 데이터를 반영하여 상기 템플릿의 구성을 재배치하는 제안 메시지를 상기 단말 장치에게 제공하는, 템플릿 기반 애플리케이션 생성 방법.
  7. 제6항에 있어서,
    상기 서버 제어부는 상기 업종 정보를 기준으로 동일 업종 또는 유사 업종의 템플릿의 구성을 재배치하는, 템플릿 기반 애플리케이션 생성 방법.
  8. 단말 장치와 통신하는 서버 통신부;
    상기 단말 장치에게 전송할 추천 템플릿을 생성하고 상기 단말 장치의 선택 정보에 대응하여 실행 가능한 프로그램 패키지를 생성하는 서버 제어부; 및
    다수의 템플릿을 업종 정보 또는 키워드에 대응하여 저장하는 템플릿 저장부를 포함하며,
    상기 서버 통신부가 단말 장치로부터 템플릿 생성에 필요한 업종 정보 또는 키워드를 하나 이상 수신한 후 상기 서버의 서버 제어부가 상기 수신한 업종 정보 또는 키워드를 이용하여 하나 이상의 추천 템플릿을 템플릿 저장부에서 추출하며,
    상기 서버 통신부가 상기 추천 템플릿을 상기 단말 장치에게 전송한 후 상기 단말 장치로부터 상기 추천 템플릿에 대한 선택 정보를 수신하며,
    상기 서버 제어부가 상기 선택 정보를 적용하여 소스 코드 및 실행 가능한 프로그램 패키지를 생성하고, 상기 서버 통신부가 상기 패키지를 상기 단말 장치에게 전송하며,
    상기 서버 제어부가 템플릿 저장부에서 후보 템플릿을 추출하여 상기 후보 템플릿을 평점에 기반하여 필터링을 수행하며,
    상기 평점은 상기 템플릿 또는 상기 템플릿의 메뉴에 대해 사용자들이 부여한 평점 또는 상기 템플릿을 이용하여 개발된 애플리케이션을 사용자들이 사용하는 과정에서 발생한 사용자 경험 데이터를 포함하며,
    상기 사용자 경험 데이터는 상기 개발된 애플리케이션의 설치 후 상기 애플리케이션의 메뉴에서 체류하거나 상기 메뉴를 유지한 시간, 특정 메뉴를 선택한 시간 또는 횟수를 포함하며,
    상기 서버 제어부는 상기 애플리케이션의 앱 유저가 상기 메뉴를 선택한 후 곧바로 이전 단계로의 이동 버튼 또는 홈 버튼을 누르는 사용자 경험 데이터를 상기 템플릿 별로 누적 저장하여 새로운 템플릿을 생성하는, 템플릿 기반 애플리케이션을 생성하는 서버.
  9. 제8항에 있어서,
    상기 선택 정보는 상기 하나 이상의 추천 템플릿 중 하나를 선택한 정보 및 상기 선택한 템플릿 내의 메뉴의 추가 또는 삭제에 대한 정보를 포함하며,
    상기 서버 제어부는 상기 템플릿 내의 메뉴의 추가 또는 삭제에 대한 정보가 누적되면 상기 누적된 정보를 반영한 새로운 템플릿을 상기 템플릿 저장부에 저장하는, 템플릿 기반 애플리케이션을 생성하는 서버.
  10. 제9항에 있어서,
    상기 서버 제어부는 상기 단말 장치의 제1사용자 정보를 이용하여 상기 선택 정보들의 유사도가 기준 이상인 제2사용자 정보에 대응하는 템플릿을 추출하여 추천하는, 템플릿 기반 애플리케이션을 생성하는 서버.
  11. 제8항에 있어서,
    상기 서버 제어부가 상기 업종 정보를 기준으로 동일 업종 또는 유사 업종의 템플릿을 템플릿 저장부에서 검색하고, 검색한 템플릿 중에서 상기 단말 장치의 제1사용자 정보를 이용하여 상기 선택 정보들의 유사도가 기준 이상인 제2사용자 정보에 대응하는 템플릿을 추출하여 추천하는, 템플릿 기반 애플리케이션을 생성하는 서버.
  12. 제8항에 있어서,
    상기 서버 통신부가 상기 실행 가능한 프로그램 패키지를 상기 단말 장치에게 전송한 이후 상기 단말 장치가 상기 패키지를 검증한 응답 메시지를 송신하면 상기 서버 제어부가 상기 선택 정보에 기반한 기획서를 자동으로 생성하여 상기 서버 통신부가 상기 기획서를 상기 단말 장치에게 전송하며,
    상기 단말 장치가 상기 기획서에 대해 검증한 응답 메시지를 송신하면 상기 서버 제어부가 상기 실행 가능한 프로그램 패키지를 마켓에 등록하는, 템플릿 기반 애플리케이션을 생성하는 서버.
  13. 제8항에 있어서,
    상기 서버 제어부는 상기 사용자 경험 데이터를 반영하여 상기 템플릿의 구성을 재배치하는 제안 메시지를 상기 단말 장치에게 제공하는, 템플릿 기반 애플리케이션을 생성하는 서버.
  14. 제13항에 있어서,
    상기 서버 제어부는 상기 업종 정보를 기준으로 동일 업종 또는 유사 업종의 템플릿의 구성을 재배치하는, 템플릿 기반 애플리케이션을 생성하는 서버.
KR1020230061766A 2023-05-12 2023-05-12 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버 KR102624044B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230061766A KR102624044B1 (ko) 2023-05-12 2023-05-12 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230061766A KR102624044B1 (ko) 2023-05-12 2023-05-12 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버

Publications (1)

Publication Number Publication Date
KR102624044B1 true KR102624044B1 (ko) 2024-01-11

Family

ID=89533494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230061766A KR102624044B1 (ko) 2023-05-12 2023-05-12 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버

Country Status (1)

Country Link
KR (1) KR102624044B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003331069A (ja) * 2002-05-13 2003-11-21 Nec System Technologies Ltd システム構築支援方法およびシステム
KR102360646B1 (ko) * 2021-07-09 2022-02-10 주식회사 스윙투앱 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템
KR20230041454A (ko) * 2021-09-17 2023-03-24 주식회사 팀솔루션 머신러닝 기반의 웹 페이지 템플릿 추천 방법 및 이를 위한 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003331069A (ja) * 2002-05-13 2003-11-21 Nec System Technologies Ltd システム構築支援方法およびシステム
KR102360646B1 (ko) * 2021-07-09 2022-02-10 주식회사 스윙투앱 유저 계정의 입력 정보에 기반한 어플리케이션 자동 제작 시스템
KR20230041454A (ko) * 2021-09-17 2023-03-24 주식회사 팀솔루션 머신러닝 기반의 웹 페이지 템플릿 추천 방법 및 이를 위한 장치

Similar Documents

Publication Publication Date Title
US10083019B2 (en) Providing application functionality for uninstalled applications
US9256761B1 (en) Data storage service for personalization system
US20220215121A1 (en) Interfaces for specifying input datasets, computational steps, and outputs of a data pipeline
CN102737333B (zh) 用于计算用户和要约到微小细分的匹配的顺序引擎
US20140244784A1 (en) Website Impersonation System and Method
US20230274080A1 (en) System, method, and apparatus for a unified document surface
CN115836287A (zh) 目标推荐方法、装置及存储介质
KR102581333B1 (ko) 향상된 온라인 리서치를 위한 시스템 및 방법
JP6865942B1 (ja) プログラム、方法、情報処理装置、及びシステム
CN107735785A (zh) 自动信息检索
US20210224246A1 (en) Content management
KR102547033B1 (ko) 키워드 인식 기능을 활용하여 사용자가 선택한 방식으로 정보를 제공하는 방법
KR20190036834A (ko) SaaS 어플리케이션 연동 서비스의 제공장치 및 그 제공방법
KR102624044B1 (ko) 템플릿 기반 애플리케이션 생성 방법 및 이를 구현하는 서버
JP2006155601A (ja) 製品構成設計支援システム
US11681682B2 (en) Data processing system and cache update control method
CN111723134A (zh) 信息处理方法、装置、电子设备及存储介质
US11275729B2 (en) Template search system and template search method
KR101351079B1 (ko) 데이터베이스와 연동되는 프로그램을 제어하는 서비스 제공 방법 및 시스템
KR101791784B1 (ko) 해시 태그를 이용한 명함 관리 방법 및 시스템
KR20200139038A (ko) 게임 의뢰자와 제작자 간을 중계하는 장치 및 방법
França et al. Evaluating cloud microservices with director
CN114721931B (zh) 一种数据处理方法、装置、设备及存储介质
US20240202466A1 (en) Adapting prompts selected from prompt task collections
US20240202458A1 (en) Generating prompt recommendations for natural language processing tasks

Legal Events

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