[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102122451B1 - 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버 - Google Patents

애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버 Download PDF

Info

Publication number
KR102122451B1
KR102122451B1 KR1020180089142A KR20180089142A KR102122451B1 KR 102122451 B1 KR102122451 B1 KR 102122451B1 KR 1020180089142 A KR1020180089142 A KR 1020180089142A KR 20180089142 A KR20180089142 A KR 20180089142A KR 102122451 B1 KR102122451 B1 KR 102122451B1
Authority
KR
South Korea
Prior art keywords
application
information
service
user
development
Prior art date
Application number
KR1020180089142A
Other languages
English (en)
Other versions
KR20200013915A (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 KR1020180089142A priority Critical patent/KR102122451B1/ko
Publication of KR20200013915A publication Critical patent/KR20200013915A/ko
Application granted granted Critical
Publication of KR102122451B1 publication Critical patent/KR102122451B1/ko

Links

Images

Classifications

    • 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/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법에 있어서, 제1 사용자의 단말기로부터 상기 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득하는 단계; 상기 제1 기본 정보에 기초하여, 상기 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 상기 제1 사용자의 단말기로 제공하는 단계; 상기 제1 인터페이스를 통해 획득된 상기 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 상기 제1 애플리케이션을 생성하는 단계; 및 상기 제1 애플리케이션의 검증을 수행하고, 상기 SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 배포하는 단계를 포함할 수 있다.

Description

애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버{METHOD OF OPERATING PLATFORM SUPPORTING APPLICATION DEVELOPMENT AND SERVER PROVIDING PLATFORM}
애플리케이션의 개발을 지원하는 플랫폼을 제공하는 서버 및 서버 내의 플랫폼의 동작 방법에 관한 것이다.
스마트 폰, 스마트 TV 등을 포함하는 스마트기기는 그 기능이 제한되지 않으며, 다양한 애플리케이션의 설치를 통해 기능의 변경 또는 확장이 가능하다.
일반적으로, 애플리케이션은 개발자에 의해 개발 및 배포되는 과정을 거치게 되며, 이를 위해 개발자는 소프트웨어 개발 키트, 에디터, 에뮬레이터, 컴파일러를 각각 개발자 PC에 수동으로 설치하여, 애플리케이션을 개발하기 위한 환경을 구축할 필요가 있다. 즉, 애플리케이션을 개발하는 데에는 구축 환경 및 운영 인력의 도움을 필요로 하므로, 많은 비용과 시간이 요구된다.
또한, 개발자에게는 애플리케이션을 개발하는 데에 API(Application Programming Interface) 등과 같은 전문적인 능력이 요구되어 일반인이 애플리케이션을 개발하기 쉽지 않다.
따라서, 개발 지식이 없는 일반인들도 애플리케이션의 개발에 접근이 용이하고, 애플리케이션의 개발이 완료되더라도 운영 및 유지 보수가 가능한 시스템이 필요하다.
개발 지식이 없는 일반인들도 애플리케이션의 개발에 접근이 용이하고, 애플리케이션의 개발이 완료되더라도 운영 및 유지 보수가 가능한 플랫폼을 제공하고자 한다.
일측에 따르면, 서버에서 SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법이 제공된다. 상기 플랫폼의 동작 방법은, 제1 사용자의 단말기로부터 상기 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득하는 단계; 상기 제1 기본 정보에 기초하여, 상기 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 상기 제1 사용자의 단말기로 제공하는 단계; 상기 제1 인터페이스를 통해 획득된 상기 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 상기 제1 애플리케이션을 생성하는 단계; 및 상기 제1 애플리케이션의 검증을 수행하고, 상기 SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 배포하는 단계를 포함할 수 있다.
다른 일측에 따르면, SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼을 제공하는 서버가 제공된다. 서버는, 외부의 단말기들과 통신을 수행하는 통신 장치; 스토리지; 프로세서; 및 상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고, 상기 프로세서는, 상기 명령어들을 실행함으로써, 제1 사용자의 단말기로부터 상기 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득하고, 상기 제1 기본 정보에 기초하여, 상기 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 상기 제1 사용자의 단말기로 제공하고, 상기 제1 인터페이스를 통해 획득된 상기 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 상기 제1 애플리케이션을 생성하고, 상기 제1 애플리케이션의 검증을 수행하고, 상기 SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 배포할 수 있다.
또 다른 일측에 따르면, SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 상기 동작 방법을 하드웨어와 결합하여 실행시키기 위해 매체에 저장된 컴퓨터 프로그램이 제공된다.
서버에서 제공되는 플랫폼을 통해, 사용자는 사용자가 원하는 애플리케이션의 개발을 용이하게 할 수 있다.
서버에서 제공되는 플랫폼은, 사용자의 개발 정보를 반영하여 애플리케이션을 자동으로 생성, 등록, 배포 및 관리하는 시스템을 제공할 수 있다.
본 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 일실시예에 따라, SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼을 제공하는 서버와 플랫폼을 이용하는 사용자의 단말기 간의 동작을 설명하기 위한 개념도이다.
도 2는 일실시예에 따라, 서버에서 SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법을 설명하기 위한 흐름도이다.
도 3은 일실시예에 따라, 사용자의 단말기로부터 사용자가 제공하려는 서비스의 기본 정보를 획득하는 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따라, 서버에서 애플리케이션을 생성하는 데에 사용자의 단말기로 제공되는 플랫폼의 실행 화면을 설명하기 위한 도면이다.
도 5는 일실시예에 따라, 서버에서 사용자의 단말기로 제공된 노-코드 기반의 인터페이스를 설명하기 위한 도면이다.
도 6은 일실시예에 따라, 서버에서 서비스의 개발 정보를 학습 모델에 적용하여 애플리케이션을 생성하는 과정을 설명하기 위한 도면이다.
도 7은 일실시예에 따라, 복수 개의 계층 구조를 갖는 인공 신경망을 개략적으로 도시한 도면이다.
도 8 및 도 9는 일실시예에 따라, 서버에서 서비스의 개발 정보를 학습 모델에 적용하여 서비스에 적합한 객체 정보를 추천하는 과정을 설명하기 위한 도면이다.
도 10은 서버의 구성을 도시한 블록도이다.
이하에서는 도면을 참조하여 다양한 실시예들을 상세히 설명한다. 이하에서 설명되는 실시예들은 여러 가지 상이한 형태로 변형되어 실시될 수도 있다. 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.
한편, 본 명세서에서 어떤 구성이 다른 구성과 "연결"되어 있다고 할 때, 이는 '직접적으로 연결'되어 있는 경우뿐 아니라, '그 중간에 다른 구성을 사이에 두고 연결'되어 있는 경우도 포함한다. 또한, 어떤 구성이 다른 구성을 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한, 그 외 다른 구성을 제외하는 것이 아니라 다른 구성들 더 포함할 수도 있다는 것을 의미한다.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
본 명세서 전체에서, "서버"는 SaaS(Software as a Service) 기반의 애플리케이션의 개발을 지원하는 플랫폼을 제공할 수 있다. SaaS는 소프트웨어의 여러 기능 중에서 사용자가 필요로 하는 서비스만 이용 가능하도록 한 소프트웨어를 의미할 수 있다. 또한, SaaS는 애플리케이션 소프트웨어를 클라우드에서 제공하는 서비스로 ERP나 CRM 등 다양한 소프트웨어를 사용자가 직접 구축하거나 설치하지 않고 서비스 제공 사업자에 비용을 지불하고 필요한 만큼 소프트웨어를 사용하는 클라우드를 의미할 수 있다.
본 명세서 전체에서, "사용자의 단말기"는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), PC, 데스크 탑, 가전기기, 태블릿 PC, 전자북 단말기, 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 디지털 카메라 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
본 명세서 전체에서, "애플리케이션(application)"은 사용자의 단말기에서 실행 가능한 다양한 응용 소프트웨어를 포함하는 것으로, 그 기능은 한정되지 않는다. 또한, 애플리케이션은 소정의 업무를 수행하기 위해 고안된 일련의 컴퓨터 프로그램 집합을 의미할 수 있고, 응용프로그램을 의미할 수도 있다. 또한, 애플리케이션은 컴퓨팅 장치와 같은 시스템을 이용하여 소정의 업무를 수행하기 위한 프로그램을 의미할 수도 있다.
본 명세서 전체에서, "사용자"는 애플리케이션을 개발하는 개발자, 개발된 애플리케이션을 등록 및 배포하는 관리자, 애플리케이션을 이용하는 자 및 이용하려는 자를 의미할 수 있다.
도 1은 일실시예에 따라, SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼을 제공하는 서버와 플랫폼을 이용하는 사용자의 단말기 간의 동작을 설명하기 위한 개념도이다.
서버(10)는 SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼을 제공할 수 있다. 예를 들면, 플랫폼은 소정의 장치 또는 시스템 내에서 애플리케이션의 개발을 지원하는 환경을 의미할 수 있다.
애플리케이션을 개발 또는 생성하려는 사용자는 서버(10)에 접속하여 애플리케이션의 개발을 지원하는 플랫폼을 이용할 수 있다. 서버(10)는 클라우드 환경에서 애플리케이션의 개발을 지원하는 플랫폼을 제공하기 때문에, 사용자는 애플리케이션의 개발을 지원하는 애플리케이션 등을 사용자의 단말기에 설치하지 않고, 서버(10)에 접속하여 애플리케이션의 개발을 지원하는 플랫폼을 이용할 수 있다.
도 1에 도시된 바와 같이, 복수의 사용자는 복수의 사용자 각각의 단말기(20-1, 20-2, 20-3)로 네트워크를 통해 서버(10)에 접속할 수 있다. 복수의 사용자 각각은 서버(10)에서 제공되는 플랫폼을 이용하여, 애플리케이션을 개발할 수 있다.
예를 들면, 쇼핑몰을 운영하고자 하는 제1 사용자는 제1 사용자의 단말기(20-1)를 통해 서버(10)에 접속하고, 서버(10)에서 제공되는 플랫폼을 이용하여, 제1 사용자가 원하는 스팩 정보에 따라 쇼핑 서비스를 제공하는 제1 애플리케이션을 개발할 수 있다.
서버(10)는 제1 사용자가 플랫폼을 이용함에 따라, 제1 사용자의 단말기(20-1)로 애플리케이션의 개발 단계에 따른 실행 화면을 제공할 수 있다. 예를 들면, 서버(10)는 쇼핑 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 인터페이스를 제1 사용자의 단말기(20-1)로 제공할 수 있다.
서버(10)는 제1 사용자의 단말기(20-1)로부터 제1 사용자가 제1 애플리케이션의 생성에 이용되는 개발 정보를 수신할 수 있다. 서버(10)는 개발 정보에 기초하여, 쇼핑 서비스를 제공하는 제1 애플리케이션을 생성할 수 있다. 이 경우, 서버(10)는 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과를 이용하여, 제1 애플리케이션을 생성할 수 있다.
제1 애플리케이션이 생성되면, 서버(10)는 제1 애플리케이션의 등록 및 배포를 수행할 수 있다. 또한, 제1 애플리케이션이 업데이트 되면, 서버(10)는 업데이트된 제1 애플리케이션을 배포할 수 있다.
도 2 내지 도 10에서는 애플리케이션의 개발을 지원하는 플랫폼을 제공하는 서버 및 서버 내의 플랫폼의 동작 방법을 보다 구체적으로 설명한다.
도 2는 일실시예에 따라, 서버에서 SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법을 설명하기 위한 흐름도이다.
도 2의 단계 S210에서, 서버(10)는 제1 사용자의 단말기로부터 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득할 수 있다. 여기서, 서버(10)는 제1 사용자가 제1 사용자의 단말기에서 SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼을 이용할 수 있도록 플랫폼의 동작을 제어할 수 있다.
제1 서비스는, 서비스 제공 사업자가 소프트웨어와 데이터를 이용하여 네트워크를 기반으로 제공할 수 있는 소정의 행위를 의미할 수 있다. 예를 들면, 제1 서비스는, 쇼핑몰 사이트를 통해 상품의 판매를 제공하는 소정 행위일 수 있다. 제1 서비스는 상기의 예시에 제한되지 않는다.
예를 들면, 제1 기본 정보는, 제1 서비스의 명칭 정보, 제1 서비스의 카테고리 정보, 제1 서비스가 제공하는 서비스의 정보, 제1 서비스를 통해 제공되는 이미지 정보, 제1 서비스를 제공하는 접속 주소 중 적어도 하나를 포함할 수 있다.
단계 S220에서, 서버(10)는 제1 기본 정보에 기초하여, 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 제1 사용자의 단말기로 제공할 수 있다.
노-코드 기반의 제1 인터페이스는 제1 사용자가 제1 애플리케이션을 개발하는 데에 코딩 정보를 입력하지 않고, 제1 애플리케이션의 개발과 관련된 텍스트 정보를 입력하거나, 제시된 그래픽 정보에서 소정 내용을 선택할 수 있도록 제공되는 인터페이스를 의미할 수 있다. 또한, 노-코드 기반의 제1 인터페이스는 사용자가 필요에 따라 소정의 코딩 정보를 입력할 수 있도록 제공되는 인터페이스를 의미할 수 있다. 노-코드 기반의 인터페이스가 사용자의 단말기로 제공됨에 따라, 사용자는 개발 지식이 없더라도 애플리케이션을 개발할 수 있고, 개발 비용 및 개발 시간은 감소될 수 있다.
예를 들면, 서버(10)는 제1 사용자의 단말기로부터 제1 서비스의 제1 개발 정보 중 소정 개발 정보가 수신되면, 소정 개발 정보에 대응되는 항목들을 설정하는 위즈윅(WYSIWYG: What You See Is What You Get) 기반의 인터페이스를 제1 사용자의 단말기로 제공할 수 있다. 여기서, 위즈윅 기반의 인터페이스는 HTML 5 기술에 기반하여 생성될 수 있다. 또한, 제1 개발 정보는, 제1 서비스를 제공하는 제1 애플리케이션의 실행 화면을 구성하는 데에 필요한 정보, 제1 서비스를 제공하는 로직 정보, 제1 애플리케이션이 안정적으로 구동되기 위해 필요한 정보 등을 포함할 수 있고, 상기 예시에 제한되지 않는다.
예를 들면, 제1 서비스가 쇼핑 서비스라고 가정한다. 제1 개발 정보는, 쇼핑 애플리케이션의 실행 화면 내에서 제공되는 쇼핑 서비스들의 카테고리 정보, 카테고리 정보가 실행 화면에서 위치하는 위치 정보 등과 같이 쇼핑 애플리케이션을 개발하는 데에 이용되는 임의의 정보를 의미할 수 있다.
단계 S230에서, 서버(10)는 제1 인터페이스를 통해 획득된 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 제1 애플리케이션을 생성할 수 있다.
구체적으로, 서버(10)는 제1 개발 정보를, 소정의 학습 모델에 적용하여 제1 애플리케이션을 생성하는 데에 이용되는 적어도 하나의 코드 블록을 획득할 수 있다. 서버(10)는 적어도 하나의 코드 블록을 이용하여, 제1 애플리케이션을 생성할 수 있다. 여기서, 소정의 학습 모델은 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 이용하여 학습된 모델일 수 있다.
서버(10)는 인공 신경망을 통해 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 서비스 정보에 대응되는 객체 정보의 상관 관계, 및 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 복수의 애플리케이션들 각각을 이용하는 복수의 사용자의 행위 패턴 정보의 상관 관계 중 적어도 하나에 기초하여, 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델을 준비할 수 있다.
또한, 학습 모델은 애플리케이션의 개발을 위한 코드 블록을 획득하는 데에 이용되는 데이터 인식 모델일 수 있다. 데이터 인식 모델은, 인공 신경망(ANN: artificial Neural Network)을 기반으로 구축된 딥 러닝(deep learning)을 통해 획득된 모델일 수 있다. 예를 들면, 학습 모델은 DNN(Deep Neural Network), RNN(Recurrent Neural Network), BRDNN(Bidirectional Recurrent Deep Neural Network)과 같은 모델이 데이터 인식 모델로서 사용될 수 있으나, 이에 한정되지 않는다.
또한, 서버(10)는 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 따라, 제1 개발 정보를 학습할 수 있다. 서버(10)는 학습 결과에 기초하여, 제1 애플리케이션에서 미리 설정된 조건을 만족하여 제1 서비스가 제공되도록 적어도 하나의 코드 블록을 획득할 수 있다.
이 경우, 서버(10)는 학습 결과에 기초하여, 미리 설정된 조건을 최적으로 만족하는 최적화된 적어도 하나의 코드 블록을 획득하여, 사용자에게 추천할 수 있다. 즉, 서버(10)는 획득된 적어도 하나의 코드 블록을 사용자의 단말기로 전송할 수 있다. 또한, 사용자의 단말기는 적어도 하나의 코드 블록의 이용을 승인하는 정보를 입력 받아, 서버(10)로 전송할 수 있다.
예를 들면, 미리 설정된 조건은, 제1 애플리케이션에서 데이터를 처리하는 응답 속도, 제1 애플리케이션에서 발생될 수 있는 오류율 정보, 및 제1 애플리케이션이 동작하는 환경에서 안정성 정보 중 적어도 하나를 포함하는 내적 정보에 대한 기준 조건일 수 있다.
다른 예를 들면, 미리 설정된 조건은, 제1 애플리케이션에서 제1 서비스를 제공하는 로직 정보, 및 제1 애플리케이션에서 제1 서비스를 제공하는 데에 출력되는 레이 아웃 정보 중 적어도 하나를 포함하는 외적 정보에 대한 기준 조건일 수 있다.
서버(10)에서, 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델을 이용함으로써, 기본 코드 및 개발 언어 자체를 조작하지 않고, 마이크로 모듈화를 통해 획득된 코드 블록을 조합하여 애플리케이션을 생성할 수 있다.
또한, 서버(10)는 제1 개발 정보에 기초하여, 제1 애플리케이션에서 제공되는 제1 서비스를 객체화하는 작업 단위인 적어도 하나의 프로젝트를 생성할 수 있다. 여기서, 적어도 하나의 프로젝트는 제1 애플리케이션을 이용하는 사용자 별로 구분되어 생성될 수 있다. 서버(10)는 적어도 하나의 프로젝트에 대응되는 적어도 하나의 레이아웃을 설정하여, 제1 애플리케이션을 생성할 수 있다.
예를 들면, 서버(10)는 Gradle 기술 기반으로, 제1 개발 정보가 반영된 애플리케이션을 자동으로 생성할 수 있다. Gradle 기술은 Groovy를 이용한 빌드 자동화 시스템 기술일 수 있다. 또한, Gradle 기술은 Groovy와 유사한 도메인 언어를 채용하고, 안드로이드 스튜디오의 공식 빌드 시스템 기술일 수 있다. 또한, Gradle 기술은 Java, C/C++, Python 등과 같은 여러 가지 언어를 지원할 수 있다.
또한, 서버(10)는 Native용 어플리케이션, Mobile Web용 애플리케이션, PC Web용 애플리케이션 각각에 대응되는 제1 애플리케이션을 생성할 수 있다.
단계 S240에서, 서버(10)는 제1 애플리케이션의 검증을 수행하고, SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 배포할 수 있다.
예를 들면, 서버(10)는 Jenkins, SubVersion 등의 오픈 소스를 활용하여 제1 애플리케이션을 자동으로 배포할 수 있다. 구체적으로, Jenkins는 소프트웨어 개발 시 지속적 통합 서비스를 제공하는 툴일 수 있다. 즉, Jenkins는 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소에 빈번히 업로드 함으로써 지속적 통합이 가능하도록 할 수 있다.
또한, 서버(10)는, 매크로, Open-API 기술 기반의 마켓, 자동배포 엔진 및 애플리케이션 이미지 자동 추출 알고리즘을 활용하여, 제1 애플리케이션을 자동으로 등록하고 배포할 수 있다.
서버(10)는 제1 서비스의 제2 개발 정보에 기초하여, 제1 애플리케이션을 업데이트 할 수 있다. 서버(10)는 SaaS 기반의 플랫폼을 통해 업데이트 된 제1 애플리케이션을 배포할 수 있다. 서버(10)는 애플리케이션이 생성된 이후에도 애플리케이션의 등록, 배포, 관리하므로, 애플리케이션의 운영 및 유지 보수의 효율을 향상시킬 수 있다.
또한, 서버(10)는 Java, Spring Framework 및 MVC 모델 방식을 활용한 플랫폼 제어 인터페이스를 이용하여, 애플리케이션을 등록 및 관리를 수행할 수 있다. 예를 들면, 서버(10)는 플랫폼 제어 인터페이스에 기초하여, 애플리케이션 내의 콘텐츠를 등록 및 관리를 수행할 수 있다.
또한, 서버(10)는, 서비스 확장 및 호환성을 위한 BaaS 기반의 Back-End API 인터페이스를 제공할 수 있다.
도 3은 일실시예에 따라, 사용자의 단말기로부터 사용자가 제공하려는 서비스의 기본 정보를 획득하는 과정을 설명하기 위한 도면이다.
서버(10)는 SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼을 사용자의 단말기로 제공할 수 있다. 사용자는 소정의 서비스를 제공하는 애플리케이션을 생성하기 위해 서버(10)에서 제공되는 플랫폼을 이용할 수 있다. 사용자는 사용자의 단말기에서 플랫폼에 로그-인을 할 수 있다. 즉, 사용자는 로그-인을 수행함으로써, 사용자의 단말기에서 서버(10)가 제공하는 플랫폼에 접속할 수 있다. 그러면, 사용자의 단말기는 플랫폼의 실행 화면을 표시할 수 있다.
서버(10)는 소정의 서비스를 제공하는 애플리케이션을 생성하는 동작의 선행 동작으로, 사용자의 단말기로부터 서비스의 기본 정보를 수신할 수 있다. 도 3을 참고하면, 서버(10)는 서비스의 기본 정보를 입력하는 인터페이스를 사용자의 단말기로 제공할 수 있다. 구체적으로, 사용자의 단말기는 서비스의 명칭 정보(301), 서비스가 제공하는 정보(302), 서비스의 카테고리 정보(303), 서비스에서 제공되는 이미지 정보(304, 305), 및 서비스가 제공되는 접속 주소 정보(306)를 입력 받는 실행 화면을 표시할 수 있다. 사용자의 단말기는 실행 화면에서 서비스의 기본 정보를 입력 받고, 서비스의 기본 정보를 서버(10)로 전송할 수 있다.
도 3에서 도시된 서비스의 기본 정보를 입력받는 인터페이스를 포함하는 실행 화면은 일예시이고, 다른 형태로 제공될 수 있고, 다른 정보를 입력 받는 인터페이스를 포함하는 실행 화면으로 제공될 수 있다.
도 4는 일실시예에 따라, 서버에서 애플리케이션을 생성하는 데에 사용자의 단말기로 제공되는 플랫폼의 실행 화면을 설명하기 위한 도면이다.
서버(10)는 서비스에 대응되는 애플리케이션을 생성할 때, 서비스에 대한 구체적인 내용을 설정하기 위한 서비스 맵(401)을 생성할 수 있다. 서버(10)는 사용자 별로 서비스 맵을 생성할 수 있다. 도 4의 서비스 맵(401)은 개발자를 위한 서비스 맵일 수 있다.
도 4에 도시된 바와 같이, 사용자의 단말기는 서버(10)로부터 서비스 맵(401)을 수신하여, 표시할 수 있다. 사용자는 사용자의 단말기에 표시된 서비스 맵(401)의 내용을 각 항목 별로 확인할 수 있다.
예를 들면, 사용자는 서비스 관리 항목에서 광고 설정 관리(402) 항목에 대한 내용을 확인하고자 할 때, 서비스 맵(401)에서 광고 설정 관리(402)를 선택할 수 있다. 사용자의 단말기는 광고 설정 관리(402)를 선택하는 입력을 수신하면, 광고 설정 관리(402)에 대한 구체적인 정보를 표시할 수 있다.
사용자는 사용자의 단말기를 통해, 광고 설정 정보를 입력할 수 있다. 이 경우, 사용자는 사용자의 단말기로 광고 설정을 위한 코딩 정보를 입력할 수도 있지만, 텍스트 문자 정보를 입력할 수 있다. 예를 들면, 광고 설정 정보는, 애플리케이션의 메인 실행 화면에서 광고의 위치, 광고의 최대 허용 개수, 광고 시간의 제한 시간 중 적어도 하나의 정보를 포함할 수 있다.
사용자의 단말기는 광고 설정 정보를 서버(10)로 전송할 수 있다. 즉, 사용자의 단말기에서 표시된 플랫폼의 실행 화면에서 광고 설정 정보가 입력되면, 서버(10)는 광고 설정 정보를 플랫폼을 통해 획득할 수 있다.
서버(10)는 광고 설정 정보에 기초하여, 사용자가 요청한 광고 설정 정보를 반영한 애플리케이션을 생성할 수 있다. 이 경우, 서버(10)는 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 광고 설정 정보를 적용하여, 애플리케이션을 생성할 수 있다. 서버(10)에서 학습 모델을 이용하여 애플리케이션을 생성하는 과정은 도 6 내지 도 9에서 설명한다.
도 5는 일실시예에 따라, 서버에서 사용자의 단말기로 제공된 노-코드 기반의 인터페이스를 설명하기 위한 도면이다.
사용자의 단말기는 사용자가 제공하려는 서비스의 기본 정보를 입력 받고, 서비스의 기본 정보를 서버(10)로 전송할 수 있다. 서버(10)는 서비스의 기본 정보로부터 애플리케이션에서 서비스의 특성상 제공될 수 있는 템플릿 정보를 사용자의 단말기로 전송할 수 있다. 템플릿 정보는 서버(10)의 스토리지에 저장되어 관리될 수 있다. 템플릿 정보는, 서비스의 카테고리 별로 세분화되어 저장될 수 있다. 또한, 동일한 카테고리의 서비스에 대한 템플릿 정보도 각 서비스 내의 사항을 고려하여 세분화되어 저장될 수 있다.
예를 들면, 서비스가 쇼핑 서비스 인 경우, 서버(10)는 쇼핑 서비스에 대한 제1 템플릿 정보를 사용자의 단말기로 전송할 수 있다. 사용자의 단말기는 제1 템플릿 정보를 표시할 수 있다.
도 5를 참고하면, 사용자의 단말기는 쇼핑 서비스를 제공하는 쇼핑 애플리케이션을 생성하는 데에 이용되는 복수의 레이아웃들을 표시할 수 있다. 사용자의 단말기는 제1 레이아웃(501)을 선택하는 입력을 수신하면, 제1 레이아웃(501)을 설정하는 화면을 표시할 수 있다. 사용자의 단말기는 제1 레이아웃(501)을 설정하는 인터페이스를 노-코드 기반의 인터페이스로 제공할 수 있다. 즉, 사용자는 코딩 정보를 입력하지 않고, 코딩 정보 이외의 입력 정보를 인터페이스를 통해 입력함으로써, 제1 레이아웃(501)을 설정할 수 있다.
도 5에 도시된 바와 같이, 제1 레이아웃(501)을 설정하는 화면에는 로고 정보를 설정하는 영역(502), 항목 정보를 설정하는 영역(503), 로그인 정보 등을 설정하는 영역(504), 메인 광고를 설정하는 영역(505), 광고를 설정하는 영역(506), 공지 사항을 설정하는 영역(507)이 설정되어 표시될 수 있다.
예를 들면, 사용자의 단말기는 메인 광고를 설정하는 영역(505)의 크기를 기존 영역의 크기보다 크게 설정하는 입력을 수신함에 따라, 메일 광고를 설정하는 영역(505)의 크기를 크게 설정할 수 있다.
다른 예를 들면, 사용자의 단말기는 항목 정보를 설정하는 영역(503)에서, 제1 상위 항목을 "의류"로 설정하는 입력, 제2 상위 항목을 "화장품"으로 설정하는 입력, 제3 상위 항목을 "식품"으로 설정하는 입력, 제4 상위 항목을 "가구"로 설정하는 입력을 수신하여, 각 항목 정보를 설정할 수 있다. 또한, 사용자의 단말기는 항목 정보를 설정하는 영역(503)에서, 제5 상위 항목을 삭제하는 입력에 기초하여, 제5 상위 항목에 대응되는 영역을 삭제할 수 있다.
도 6은 일실시예에 따라, 서버에서 서비스의 개발 정보를 학습 모델에 적용하여 애플리케이션을 생성하는 과정을 설명하기 위한 도면이다.
서버(10)는 사용자의 단말기로부터 애플리케이션에서 제공되는 서비스의 개발 정보를 수신할 수 있다. 구체적으로, 사용자의 단말기는 노-코드 기반의 인터페이스에 기초하여, 사용자가 의도하고자 하는 서비스의 개발 정보를 수신할 수 있다. 사용자의 단말기는 개발 정보를 서버(10)로 전송할 수 있다.
서버(10)는 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 애플리케이션을 생성할 수 있다.
여기서, 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과는, 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 이용하여 학습된 학습 모델일 수 있다. 예를 들면, 학습 모델은 애플리케이션의 개발을 위한 코드 블록을 획득하는 모델일 수 있다.
예를 들면, 서버(10)는 인공 신경망을 통해 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 서비스 정보에 대응되는 객체 정보의 상관 관계, 및 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 복수의 애플리케이션들 각각을 이용하는 복수의 사용자의 행위 패턴 정보의 상관 관계 중 적어도 하나에 기초하여, 학습 모델을 생성할 수 있다.
복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 서비스 정보에 대응되는 객체 정보의 상관 관계는, 서비스 정보가 복수의 애플리케이션 각각에서 어떻게 객체 정보로 구현되었는지를 학습함으로써, 획득될 수 있다.
또한, 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 복수의 애플리케이션들 각각을 이용하는 복수의 사용자의 행위 패턴 정보의 상관 관계는, 복수의 사용자 각각이 서비스 정보를 어떻게 이용하였는지를 학습함으로써, 획득될 수 있다.
서버(10)는 사용자의 단말기로부터 수신된 개발 정보를 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 적용하여, 애플리케이션을 생성하는 데에 이용되는 적어도 하나의 코드 블록을 획득할 수 있다. 서버(10)는 적어도 하나의 코드 블록을 이용하여, 애플리케이션을 생성할 수 있다. 구체적으로, 서버(10)는 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 따라 사용자의 단말기로부터 수신된 개발 정보를 학습할 수 있다. 서버(10)는 학습 결과에 기초하여, 애플리케이션에서 미리 설정된 조건을 만족하여 서비스가 제공되도록 적어도 하나의 코드 블록을 획득할 수 있다.
예를 들면, 미리 설정된 조건은, 애플리케이션의 원활한 동작을 위한 애플리케이션의 내적 정보에 대한 기준 조건, 및 애플리케이션에서 제공되는 서비스 형태와 관련된 애플리케이션의 외적 정보에 대한 기준 조건 중 적어도 하나를 포함할 수 있고, 상기 예시에 제한되지 않는다.
예를 들면, 애플리케이션의 내적 정보에 대한 기준 조건은, 애플리케이션에서 데이터를 처리하는 응답 속도, 애플리케이션에서 발생될 수 있는 오류율 정보, 애플리케이션이 동작하는 환경에서의 안정성 정보 중 적어도 하나에 대한 기준 조건일 수 있다.
예를 들면, 애플리케이션의 외적 정보에 대한 기준 조건은, 애플리케이션에서 서비스를 제공하는 로직 정보, 애플리케이션에서 서비스를 제공하는 데에 출력되는 레이 아웃 정보 중 적어도 하나에 대한 기준 조건일 수 있다.
또한, 서버(10)는 사용자의 단말기로부터 수신된 개발 정보에 기초하여, 애플리케이션에서 제공되는 서비스를 객체화 하는 작업 단위인 적어도 하나의 프로젝트를 생성할 수 있다. 서버(10)는 적어도 하나의 프로젝트에 대응되는 적어도 하나의 레이아웃을 설정하여, 애플리케이션을 생성할 수 있다.
서버(10)는 생성된 애플리케이션을 서버(10) 내에서 애플리케이션을 관리하는 스토리지에 저장하고, 복수의 사용자들이 애플리케이션을 이용할 수 있도록 애플리케이션을 배포할 수 있다. 추후에, 애플리케이션의 업데이트가 있는 경우, 서버(10)는 자동으로 애플리케이션을 업데이트하여, 업데이트 된 애플리케이션을 사용자의 단말기로 제공할 수 있다.
도 7은 일실시예에 따라, 복수 개의 계층 구조를 갖는 인공 신경망을 개략적으로 도시한 도면이다.
도 7을 참고하면, 인공 신경망은 입력 레이어(710), 적어도 하나의 히든 레이어(720, 730) 및 출력 레이어(740)를 포함할 수 있다. 또한, 인공 신경망을 통한 연산은 서버(10) 내의 프로세서에서 수행될 수 있다.
또한, 히든 레이어(720, 730)에서 수행된 학습 및 훈련을 통해 각 레이어와 노드 사이의 가중치가 학습될 수 있다. 예를 들면, 서버(10) 내의 프로세서는 반복적인 학습을 통하여 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 서비스 정보와 대응되는 객체 정보의 상관 관계에 적용되는 가중치의 값을 획득할 수 있다. 또한, 서버(10) 내의 프로세서는 반복적인 학습을 통하여 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 복수의 사용자의 행위 패턴 정보의 상관 관계에 적용되는 가중치의 값을 획득할 수 있다.
서버(10)는 획득된 가중치의 값을 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 서비스 정보와 대응되는 객체 정보의 상관 관계, 또는 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 복수의 사용자의 행위 패턴 정보의 상관 관계에 다시 적용하여, 훈련된 인공 신경망에서 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델을 생성할 수 있다.
도 8 및 도 9는 일실시예에 따라, 서버에서 서비스의 개발 정보를 학습 모델에 적용하여 서비스에 적합한 객체 정보를 추천하는 과정을 설명하기 위한 도면이다.
도 8을 참고하면, 사용자의 단말기는 쇼핑 서비스를 제공하는 쇼핑 애플리케이션을 생성하는 데에 이용되는 복수의 레이아웃들을 표시할 수 있다. 사용자의 단말기는 제4 레이아웃(801)을 선택하는 입력을 수신하면, 제4 레이아웃(801)을 설정하는 인터페이스를 제공할 수 있다.
도 8에 도시된 바와 같이, 제4 레이아웃(801)을 설정하는 화면에는 주문 결제와 관련된 상품 정보를 설정하는 영역(802), 배송지를 설정하는 영역(803) 및 결제 금액을 설정하는 영역(804)이 설정되어 표시될 수 있다. 사용자의 단말기는 확인(805)을 선택하는 입력을 수신하면, 제4 레이아웃(801)의 설정이 완료되었음을 알리는 정보를 서버(10)로 전송할 수 있다.
서버(10)는 사용자의 단말기로부터 획득된 제4 레이아웃(801)의 정보 및 개발 정보를 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 적용하여, 애플리케이션을 생성하는 데에 이용되는 적어도 하나의 코드 블록을 획득할 수 있다. 예를 들면, 서버(10)는 주문 결제와 관련된 할인 수단의 영역(901) 및 할인 수단 정보의 영역(902)을 제4 레이아웃에 추가하는 적어도 하나의 코드 블록을 획득할 수 있다. 서버(10)는 기존의 제4 레이아웃에 할인 수단의 영역(901) 및 할인 수단 정보의 영역(902)이 추가된 제4 레이아웃을 생성하여 사용자의 단말기로 전송할 수 있다. 즉, 서버(10)는 서비스의 개발 정보를 학습 모델에 적용하여 서비스에 적합한 객체 정보를 추천할 수 있다.
도 9에 도시된 바와 같이, 사용자의 단말기는 변경된 제4 레이아웃을 표시할 수 있다. 사용자의 단말기는 확인(903)을 선택하는 입력을 수신하면, 제4 레이아웃의 설정이 완료되었음을 알리는 정보를 서버(10)로 전송할 수 있다. 서버(10)는 설정 완료된 제4 레이아웃을 이용하여, 애플리케이션을 생성할 수 있다.
도 10은 서버의 구성을 도시한 블록도이다.
도 10을 참고하면, 서버(10)는 통신 장치(1010), 스토리지(1020), 메모리(1030) 및 프로세서(1040)를 포함할 수 있다. 도시된 구성 요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 서버(10)가 구현될 수 있고, 그보다 적은 구성 요소에 의해서도 서버(10)가 구현될 수 있다. 이하, 상기 구성 요소들에 대해 살펴본다.
통신 장치(1010)는 다양한 유형의 통신 방식에 따라 다양한 유형의 외부 장치와 통신을 수행할 수 있다. 통신 장치(1010)는 와이파이 칩, 블루투스 칩, NFC 칩, 및 무선통신 칩 중 적어도 하나를 포함할 수 있다. 프로세서(1040)는 통신 장치(1010)를 이용하여 각종 외부 장치와 통신을 수행할 수 있다.
와이파이 칩, 및 블루투스 칩은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행할 수 있다. 와이파이 칩이나 블루투스 칩을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. NFC 칩은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다. 무선 통신 칩은 IEEE(Institute of Electrical and Electronics Engineers), 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution), 및 5G(5th Generation) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다.
스토리지(1020)는 SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼을 제공하는 서버(10)가 애플리케이션을 생성, 배포, 관리하는 데에 필요한 각종 소프트웨어 및 정보들을 저장할 수 있다. 예를 들어, 스토리지(1020)는 서버(10)에서 실행되는 프로그램, 애플리케이션, 및 플랫폼 상에서 이용되는 각종 데이터를 저장할 수 있다.
스토리지(1020)는 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과를 데이터베이스화하여 저장 및 관리할 수 있다. 예를 들면, 스토리지(1020)는 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 서비스 정보와 대응되는 객체 정보의 상관 관계를 학습한 결과 및 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 복수의 사용자의 행위 패턴 정보의 상관 관계를 학습한 결과를 저장할 수 있다.
메모리(1030)는 소프트웨어 또는 프로그램을 저장할 수 있다. 메모리(1030)는 프로세서(1040)에 의해 실행 가능한 명령어들을 저장할 수 있다.
프로세서(1040)는 메모리(1030)에 저장된 프로그램을 실행시키거나, 메모리(1030)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1030)에 저장할 수 있다. 메모리(1030)는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합으로 저장할 수 있다.
예를 들면, 메모리(1030)는 제1 사용자의 단말기로부터 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득하는 명령어들, 제1 기본 정보에 기초하여, 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 제1 사용자의 단말기로 제공하는 명령어들, 제1 인터페이스를 통해 획득된 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 제1 애플리케이션을 생성하는 명령어들, 및 제1 애플리케이션의 검증을 수행하고, SaaS 기반의 플랫폼을 통해 검증된 제1 애플리케이션을 배포하는 명령어들을 포함할 수 있다.
프로세서(1040)는 서버(10)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1040)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.
프로세서(1040)는 통신 장치(1010)를 통해 제1 사용자의 단말기로부터 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득할 수 있다. 여기서, 프로세서(1040)는 제1 사용자의 단말기에서 SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 실행 화면이 표시되도록 플랫폼의 동작을 제어할 수 있다.
예를 들면, 제1 기본 정보는, 제1 서비스의 명칭 정보, 제1 서비스의 카테고리 정보, 제1 서비스가 제공하는 서비스의 정보, 제1 서비스를 통해 제공되는 이미지 정보, 제1 서비스를 제공하는 접속 주소 중 적어도 하나를 포함할 수 있다.
프로세서(1040)는 제1 기본 정보에 기초하여, 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 제1 사용자의 단말기로 제공할 수 있다.
프로세서(1040)는 통신 장치(1010)를 통해 제1 사용자의 단말기로부터 제1 서비스의 제1 개발 정보 중 소정 개발 정보가 수신되면, 소정 개발 정보에 대응되는 항목들을 설정하는 위즈윅 기반의 인터페이스를 생성할 수 있다. 프로세서(1040)는 위즈윅 기반의 인터페이스를 통신 장치(1010)를 통해 제1 사용자의 단말기로 제공할 수 있다.
프로세서(1040)는 제1 인터페이스를 통해 획득된 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 제1 애플리케이션을 생성할 수 있다.
구체적으로, 프로세서(1040)는 제1 개발 정보를, 소정의 학습 모델에 적용하여 제1 애플리케이션을 생성하는 데에 이용되는 적어도 하나의 코드 블록을 획득할 수 있다. 프로세서(1040)는 적어도 하나의 코드 블록을 이용하여, 제1 애플리케이션을 생성할 수 있다. 여기서, 소정의 학습 모델은 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 이용하여 학습된 모델일 수 있다.
프로세서(1040)는 인공 신경망을 통해 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 서비스 정보에 대응되는 객체 정보의 상관 관계, 및 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 복수의 애플리케이션들 각각을 이용하는 복수의 사용자의 행위 패턴 정보의 상관 관계 중 적어도 하나에 기초하여, 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델을 준비할 수 있다.
프로세서(1040)는 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 따라, 제1 개발 정보를 학습할 수 있다. 프로세서(1040)는 학습 결과에 기초하여, 제1 애플리케이션에서 미리 설정된 조건을 만족하여 제1 서비스가 제공되도록 적어도 하나의 코드 블록을 획득할 수 있다.
예를 들면, 미리 설정된 조건은, 제1 애플리케이션에서 데이터를 처리하는 응답 속도, 제1 애플리케이션에서 발생될 수 있는 오류율 정보, 및 제1 애플리케이션이 동작하는 환경에서 안정성 정보 중 적어도 하나를 포함하는 내적 정보에 대한 기준 조건일 수 있다.
다른 예를 들면, 미리 설정된 조건은, 제1 애플리케이션에서 제1 서비스를 제공하는 로직 정보, 및 제1 애플리케이션에서 제1 서비스를 제공하는 데에 출력되는 레이 아웃 정보 중 적어도 하나를 포함하는 외적 정보에 대한 기준 조건일 수 있다.
또한, 프로세서(1040)는 제1 개발 정보에 기초하여, 제1 애플리케이션에서 제공되는 제1 서비스를 객체화하는 작업 단위인 적어도 하나의 프로젝트를 생성할 수 있다. 여기서, 적어도 하나의 프로젝트는 제1 애플리케이션을 이용하는 사용자 별로 구분되어 생성될 수 있다. 프로세서(1040)는 적어도 하나의 프로젝트에 대응되는 적어도 하나의 레이아웃을 설정하여, 제1 애플리케이션을 생성할 수 있다.
프로세서(1040)는 제1 애플리케이션의 검증을 수행하고, SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 애플리케이션을 배포하는 마켓 서버(10)에 등록할 수 있다. 프로세서(1040)는 통신 장치(1010)를 통해 마켓 서버(10)로 제1 애플리케이션이 배포될 수 있도록 배포 요청을 할 수 있다.
프로세서(1040)는 제1 서비스의 제2 개발 정보에 기초하여, 제1 애플리케이션을 업데이트 할 수 있다. 프로세서(1040)는 SaaS 기반의 플랫폼을 통해 업데이트 된 제1 애플리케이션을 배포할 수 있다.
전술한 서버(10)의 구성 요소들의 명칭은 달라질 수 있다. 또한, 본 개시에 따른 서버(10)는 전술한 구성 요소들 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성 요소가 생략되거나 또는 추가적인 다른 구성 요소를 더 포함할 수 있다.
한편, SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법은 컴퓨터 또는 프로세서에 의하여 실행 가능한 명령어 또는 데이터를 저장하는 컴퓨터 판독 가능 저장매체의 형태로 구현될 수 있다. 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터 판독 가능 저장매체를 이용하여 이와 같은 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 이와 같은 컴퓨터 판독 가능 저장매체는 read-only memory (ROM), random-access memory (RAM), CD, DVD, 마그네틱 테이프, 플로피 디스크, 광자기 데이터 저장 장치, 광학 데이터 저장 장치, 하드 디스크, 솔리드-스테이트 디스크(SSD), 그리고 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 저장할 수 있고, 프로세서나 컴퓨터가 명령어를 실행할 수 있도록 프로세서나 컴퓨터에 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 제공할 수 있는 어떠한 장치라도 될 수 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (15)

  1. SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법에 있어서,
    제1 사용자의 단말기로부터 상기 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득하는 단계;
    상기 제1 기본 정보에 기초하여, 상기 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 상기 제1 사용자의 단말기로 제공하는 단계;
    상기 제1 인터페이스를 통해 획득된 상기 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 상기 제1 애플리케이션을 생성하는 단계; 및
    상기 제1 애플리케이션의 검증을 수행하고, 상기 SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 배포하는 단계를 포함하고,
    상기 제1 애플리케이션을 생성하는 단계는,
    상기 제1 개발 정보를, 상기 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 이용하여 학습된, 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 적용하여, 상기 제1 애플리케이션을 생성하는 데에 이용되는 적어도 하나의 코드 블록을 획득하는 단계; 및
    상기 적어도 하나의 코드 블록을 이용하여, 미리 설정된 조건을 만족하는 상기 제1 애플리케이션을 생성하는 단계를 포함하고,
    상기 미리 설정된 조건은,
    상기 제1 애플리케이션의 내적 정보에 대한 기준 조건 및 외적 정보에 대한 기준 조건을 포함하는, 방법.
  2. 삭제
  3. 제1항에 있어서,
    인공 신경망을 통해, 상기 복수의 애플리케이션들 각각에서 제공되는 서비스 정보와 상기 서비스 정보에 대응되는 객체 정보의 상관 관계, 및 상기 서비스 정보와 상기 복수의 애플리케이션들 각각을 이용하는 복수의 사용자의 행위 패턴 정보의 상관 관계 중 적어도 하나에 기초하여 상기 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델을 준비하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서,
    상기 제1 애플리케이션을 생성하는 데에 이용되는 적어도 하나의 코드 블록을 획득하는 단계는,
    상기 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 따라, 상기 제1 개발 정보를 학습하는 단계; 및
    학습 결과에 기초하여, 상기 제1 애플리케이션에서 상기 미리 설정된 조건을 만족하여 상기 제1 서비스가 제공되도록 하는 상기 적어도 하나의 코드 블록을 획득하는 단계를 포함하는, 방법.
  5. 제4항에 있어서
    상기 미리 설정된 조건은,
    상기 제1 애플리케이션에서의 데이터를 처리하는 응답 속도, 상기 제1 애플리케이션에서 발생될 수 있는 오류율 정보, 및 상기 제1 애플리케이션이 동작하는 환경에서의 안정성 정보 중 적어도 하나를 포함하는 상기 내적 정보에 대한 기준 조건; 및
    상기 제1 애플리케이션에서 상기 제1 서비스를 제공하는 로직 정보, 및 상기 제1 애플리케이션에서 상기 제1 서비스를 제공하는 데에 출력되는 레이 아웃 정보 중 적어도 하나를 포함하는 상기 외적 정보에 대한 기준 조건을 포함하는, 방법.
  6. 제1항에 있어서,
    상기 제1 기본 정보에 기초하여, 상기 노-코드 기반의 제1 인터페이스를 상기 제1 사용자의 단말기로 제공하는 단계는,
    상기 제1 기본 정보로부터 상기 제1 서비스를 객체화 하는 데에 이용되는 상기 노-코드 기반의 제1 인터페이스가 상기 제1 사용자의 단말기에서 접속된 플랫폼의 제1 실행 화면에서 표시되도록 제어하는 단계를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 제1 인터페이스를 상기 제1 사용자의 단말기로 제공하는 단계는,
    상기 제1 사용자의 단말기로부터 상기 제1 서비스의 제1 개발 정보 중 소정 개발 정보가 수신되면, 상기 소정 개발 정보에 대응되는 항목들을 설정하는 위즈윅 기반의 인터페이스를 상기 제1 사용자의 단말기로 제공하는 단계를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득하는 단계는,
    상기 제1 사용자의 단말기로부터 상기 제1 서비스의 명칭 정보, 카테고리 정보, 제공 정보, 이미지 정보 및 접속 주소 정보 중 적어도 하나를 포함하는 상기 제1 기본 정보를 수신하는 단계를 포함하는, 방법.
  9. 제1항에 있어서,
    상기 제1 개발 정보를 이용하여, 상기 제1 애플리케이션을 생성하는 단계는,
    상기 제1 개발 정보에 기초하여, 상기 제1 애플리케이션에서 제공되는 상기 제1 서비스를 객체화하는 작업 단위인 적어도 하나의 프로젝트를 생성하는 단계; 및
    상기 적어도 하나의 프로젝트에 대응되는 적어도 하나의 레이아웃을 설정하여 상기 제1 애플리케이션을 생성하는 단계를 포함하는, 방법.
  10. 제9항에 있어서,
    상기 적어도 하나의 프로젝트는, 상기 제1 애플리케이션을 이용하는 사용자 별로 구분되어 생성되는, 방법.
  11. 제1항에 있어서,
    상기 제1 애플리케이션의 검증을 수행하고, 상기 SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 배포하는 단계는,
    상기 제1 서비스의 제2 개발 정보에 기초하여, 상기 제1 애플리케이션을 업데이트 하는 단계; 및
    상기 SaaS 기반의 플랫폼을 통해 상기 업데이트 된 제1 애플리케이션을 배포하는 단계를 포함하는, 방법.
  12. SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼을 제공하는 서버에 있어서,
    외부의 단말기들과 통신을 수행하는 통신 장치;
    스토리지;
    프로세서; 및
    상기 프로세서에 의해 실행 가능한 명령어들을 저장하는 메모리를 포함하고,
    상기 프로세서는, 상기 명령어들을 실행함으로써,
    제1 사용자의 단말기로부터 상기 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득하고,
    상기 제1 기본 정보에 기초하여, 상기 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 상기 제1 사용자의 단말기로 제공하고,
    상기 제1 인터페이스를 통해 획득된 상기 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 상기 제1 애플리케이션을 생성하고,
    상기 제1 애플리케이션의 검증을 수행하고, 상기 SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 배포하고,
    상기 프로세서는, 상기 명령어들을 실행함으로써,
    상기 제1 개발 정보를, 상기 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 이용하여 학습된, 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 적용하여, 상기 제1 애플리케이션을 생성하는 데에 이용되는 적어도 하나의 코드 블록을 획득하고,
    상기 적어도 하나의 코드 블록을 이용하여, 미리 설정된 조건을 만족하는 상기 제1 애플리케이션을 생성하고,
    상기 미리 설정된 조건은,
    상기 제1 애플리케이션의 내적 정보에 대한 기준 조건 및 외적 정보에 대한 기준 조건을 포함하는, 서버.
  13. 삭제
  14. 제12항에 있어서,
    상기 프로세서는, 상기 명령어들을 실행함으로써,
    상기 제1 기본 정보로부터 상기 제1 서비스를 객체화 하는 데에 이용되는 상기 노-코드 기반의 제1 인터페이스가 상기 제1 사용자의 단말기에서 접속된 플랫폼의 제1 실행 화면에서 표시되도록 제어하고,
    상기 제1 사용자의 단말기로부터 상기 제1 서비스의 제1 개발 정보 중 소정 개발 정보가 수신되면, 상기 소정 개발 정보에 대응되는 항목들을 설정하는 위즈윅 기반의 인터페이스를 상기 제1 사용자의 단말기로 제공하는, 서버.
  15. SaaS 기반의 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법을 하드웨어와 결합하여 실행시키기 위해 매체에 저장된 컴퓨터 프로그램에 있어서, 상기 동작 방법은,
    제1 사용자의 단말기로부터 상기 제1 사용자가 제공하려는 제1 서비스의 제1 기본 정보를 획득하는 단계;
    상기 제1 기본 정보에 기초하여, 상기 제1 서비스를 제공하는 제1 애플리케이션을 개발하는 데에 이용되는 노-코드 기반의 제1 인터페이스를 상기 제1 사용자의 단말기로 제공하는 단계
    상기 제1 인터페이스를 통해 획득된 상기 제1 서비스의 제1 개발 정보를 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 학습한 결과에 적용하여, 상기 제1 애플리케이션을 생성하는 단계; 및
    상기 제1 애플리케이션의 검증을 수행하고, 상기 SaaS 기반의 플랫폼을 통해 상기 검증된 제1 애플리케이션을 배포하는 단계를 포함하고,
    상기 제1 애플리케이션을 생성하는 단계는,
    상기 제1 개발 정보를, 상기 복수의 애플리케이션들 각각에서 제공되는 서비스를 객체화한 정보를 이용하여 학습된, 애플리케이션의 개발을 위한 코드 블록을 획득하는 학습 모델에 적용하여, 상기 제1 애플리케이션을 생성하는 데에 이용되는 적어도 하나의 코드 블록을 획득하는 단계; 및
    상기 적어도 하나의 코드 블록을 이용하여, 미리 설정된 조건을 만족하는 상기 제1 애플리케이션을 생성하는 단계를 포함하고,
    상기 미리 설정된 조건은,
    상기 제1 애플리케이션의 내적 정보에 대한 기준 조건 및 외적 정보에 대한 기준 조건을 포함하는, 컴퓨터 프로그램.
KR1020180089142A 2018-07-31 2018-07-31 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버 KR102122451B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180089142A KR102122451B1 (ko) 2018-07-31 2018-07-31 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180089142A KR102122451B1 (ko) 2018-07-31 2018-07-31 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버

Publications (2)

Publication Number Publication Date
KR20200013915A KR20200013915A (ko) 2020-02-10
KR102122451B1 true KR102122451B1 (ko) 2020-06-12

Family

ID=69627378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180089142A KR102122451B1 (ko) 2018-07-31 2018-07-31 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버

Country Status (1)

Country Link
KR (1) KR102122451B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102348565B1 (ko) * 2021-06-17 2022-01-07 이도열 노코드 기반 창업 정보공유 플랫폼을 이용한 창업 정보 제공시스템
KR102586591B1 (ko) * 2022-10-27 2023-10-10 (주) 제이탑미래기술 노 코드 기반의 포털 서비스 제공 플랫폼 시스템
KR102729877B1 (ko) 2023-12-27 2024-11-13 (주)이즈피엠피 마이스 행사유형별 맞춤형 특화서비스를 제공하기 위한 데이터기반 모듈형 웹페이지 자동화 생성관리 시스템

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102244419B1 (ko) * 2020-11-10 2021-04-27 옴니스랩스 주식회사 사용자 참여 기반의 인공 지능 서비스 방법 및 이러한 방법을 수행하는 장치
KR102275763B1 (ko) * 2021-01-14 2021-07-09 주식회사 누리콘 딥러닝 모델로부터 딥러닝 어플리케이션을 자동으로 생성하는 방법 및 시스템
CN113778446B (zh) * 2021-09-15 2024-02-13 航天新通科技有限公司 一种低代码应用开发平台
KR102679271B1 (ko) * 2023-03-09 2024-06-27 김훈 프론트엔드 개발을 위한 템플릿 에디터를 이용한 웹페이지 제작 서비스 제공 시스템
KR102707998B1 (ko) * 2023-05-26 2024-09-20 주식회사 메타플라이어 서비스 모듈의 결합을 제공하는 로우코드 기반 서비스 빌더를 이용한 스마트 관광 서비스 생성에 관한 방법
KR102645660B1 (ko) * 2023-09-04 2024-03-11 주식회사 콩벤처스 인공지능에 기반한 애플리케이션 생성방법 및 그 시스템
KR102643830B1 (ko) * 2023-11-07 2024-03-08 올거나이즈코리아 주식회사 기업 업무 자동화를 위한 대형 언어 모델 기반 애플리케이션 제공 방법 및 시스템
KR102704008B1 (ko) * 2024-03-25 2024-09-06 (주)인스웨이브시스템즈 인공지능 기반 앱 빌드 및 배포 지원 시스템 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055571A (ja) * 2016-09-30 2018-04-05 横河電機株式会社 アプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、及び端末装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101275871B1 (ko) * 2011-10-13 2013-06-18 연세대학교 산학협력단 SaaS 환경에서의 홈페이지 제작 시스템 및 방법, 그 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체
KR20130063952A (ko) * 2011-12-07 2013-06-17 한국전자통신연구원 클라우드 컴퓨팅 환경에서 어플리케이션 개발을 지원하기 위한 시스템 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018055571A (ja) * 2016-09-30 2018-04-05 横河電機株式会社 アプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、及び端末装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102348565B1 (ko) * 2021-06-17 2022-01-07 이도열 노코드 기반 창업 정보공유 플랫폼을 이용한 창업 정보 제공시스템
KR102586591B1 (ko) * 2022-10-27 2023-10-10 (주) 제이탑미래기술 노 코드 기반의 포털 서비스 제공 플랫폼 시스템
KR102729877B1 (ko) 2023-12-27 2024-11-13 (주)이즈피엠피 마이스 행사유형별 맞춤형 특화서비스를 제공하기 위한 데이터기반 모듈형 웹페이지 자동화 생성관리 시스템

Also Published As

Publication number Publication date
KR20200013915A (ko) 2020-02-10

Similar Documents

Publication Publication Date Title
KR102122451B1 (ko) 애플리케이션의 개발을 지원하는 플랫폼의 동작 방법 및 플랫폼을 제공하는 서버
US11853728B2 (en) System integrating a mobile device application creation, editing and distribution system with a website design system
CN105556468B (zh) 从应用本身内初始化和引导的应用定制的方法和系统
CN105765527B (zh) 用于定制的软件开发包(sdk)的方法和装置
US9645797B2 (en) Development system and method for providing external functionality
CN105814539B (zh) 用于代码虚拟化和远程进程调用生成的方法和装置
US8832644B2 (en) Systems and methods for a mobile application development and deployment platform
US9430207B1 (en) Automated cross-platform native mobile application generation with cloud driven user interface and workflow synthesis
US20100281475A1 (en) System and method for mobile smartphone application development and delivery
US9483253B1 (en) Methods for customization of default applications on a mobile communication device
US9678745B2 (en) Automatic submission of applications to applications stores
Colombo-Mendoza et al. MobiCloUP!: a PaaS for cloud services-based mobile applications
KR20150047219A (ko) 스마트폰 어플리케이션 제작 시스템 및 제작 방법
CN107463406A (zh) 发布移动应用的方法和电子设备
KR101161946B1 (ko) 스마트폰 어플리케이션 제작 시스템 및 그 방법
US20200285450A1 (en) System for providing instant preview of a mobile application under development
KR101584276B1 (ko) 어플리케이션 제작 서비스 제공 방법
US9218162B1 (en) Cross-platform mobile application specification and automatic synthesizer
KR101515998B1 (ko) 공간 마켓 위젯 제공 방법, 그리고 이를 구현한 마켓 서버와 사용자 단말
US11468898B2 (en) Common skill store for different virtual assistants
Machiraju et al. Conversations as platforms
US20210334092A1 (en) System For Providing Instant Preview Of A Mobile Application Under Development
KR20180124618A (ko) 휴대용 단말기 카드섹션 소프트웨어 개발 시스템
Mulatu et al. Hybrid Mobile Learning Architecture for Higher Education
US10733630B1 (en) Method of accessing services from a mobile communication device

Legal Events

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