KR102352265B1 - 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법 - Google Patents

웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법 Download PDF

Info

Publication number
KR102352265B1
KR102352265B1 KR1020210175126A KR20210175126A KR102352265B1 KR 102352265 B1 KR102352265 B1 KR 102352265B1 KR 1020210175126 A KR1020210175126 A KR 1020210175126A KR 20210175126 A KR20210175126 A KR 20210175126A KR 102352265 B1 KR102352265 B1 KR 102352265B1
Authority
KR
South Korea
Prior art keywords
web application
web
development platform
providing
application development
Prior art date
Application number
KR1020210175126A
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 KR1020210175126A priority Critical patent/KR102352265B1/ko
Application granted granted Critical
Publication of KR102352265B1 publication Critical patent/KR102352265B1/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/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

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

Abstract

본 기술에 따른 웹 브라우저를 통해 웹 애플리케이션의 개발 및 설치를 위한 웹 애플리케이션 개발 플랫폼을 제공하는 웹 애플리케이션 개발 플랫폼 제공 방법은, 웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 애플리케이션 개발 플랫폼과 관련된 프레임워크의 소스 코드를 컴파일하여 상기 프레임워크에 대응되는 컴파일 파일을 생성하는 단계, 상기 웹 애플리케이션 개발 플랫폼 제공 장치가 웹 서버에 상기 컴파일 파일을 제공하는 단계, 상기 웹 서버가 상기 컴파일 파일을 이용하여 상기 프레임워크를 설치하는 단계, 사용자 장치가 사용자로부터 상기 웹 애플리케이션의 소스 코드를 입력받는 단계, 상기 사용자 장치가 상기 웹 애플리케이션 개발 플랫폼 제공 장치에 상기 웹 애플리케이션의 소스 코드를 제공하는 단계, 상기 웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 애플리케이션의 소스 코드를 컴파일하여 상기 웹 애플리케이션에 대응되는 어셈블리 파일을 생성하는 단계, 상기 웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 서버에 상기 어셈블리 파일을 제공하는 단계 및 상기 웹 서버가 상기 어셈블리 파일을 이용하여 상기 프레임워크 상에 상기 웹 애플리케이션을 설치하는 단계를 포함한다.

Description

웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법{SYSTEM AND METHOD FOR PROVIDING WEB APPLICATION DEVELOPMENT PLATFORM}
본 발명은 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법에 관한 것이다.
통합개발환경(Integrated Development Environment, IDE)은 개발자가 소프트웨어를 개발하는 과정에 필요한 모든 작업을 하나의 소프트웨어에서 처리할 수 있는 환경을 제공한다. 통합개발환경 소프트웨어 개발 이후 콘솔과 터미널을 통한 개발이 가능해졌으며, 다양한 운영체제와 플랫폼에서 개발을 할 수 있게 되었다. 또한 일부 소프트웨어는 여러 개의 프로그래밍 언어를 함께 지원한다.
또한, 클라우드 환경에 맞춘 클라우드 IDE가 개발되었다. 클라우드 IDE는 운영체제와 웹브라우저의 종류에 관계 없이 사용 가능하다. 이로 인해 웹 브라우저만 있으면 시간과 공간의 제약없이 사용자가 필요한 개발 환경에서 작업할 수 있다.
본 발명의 실시 예는 웹 브라우저를 통해 웹 애플리케이션 개발 플랫폼을 제공하는 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법을 제공한다.
본 발명의 실시 예에 따른, 웹 브라우저를 통해 웹 애플리케이션의 개발 및 설치를 위한 웹 애플리케이션 개발 플랫폼을 제공하는 웹 애플리케이션 개발 플랫폼 제공 방법은, 웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크의 소스 코드를 컴파일하여 상기 프레임워크에 대응되는 컴파일 파일을 생성하는 단계, 상기 웹 애플리케이션 개발 플랫폼 제공 장치가 웹 서버에 상기 컴파일 파일을 제공하는 단계, 상기 웹 서버가 상기 컴파일 파일을 이용하여 상기 프레임워크를 설치하는 단계, 사용자 장치가 사용자로부터 상기 웹 애플리케이션의 소스 코드를 입력받는 단계, 상기 사용자 장치가 상기 웹 애플리케이션 개발 플랫폼 제공 장치에 상기 웹 애플리케이션의 소스 코드를 제공하는 단계, 상기 웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 애플리케이션의 소스 코드를 컴파일하여 상기 웹 애플리케이션에 대응되는 어셈블리 파일을 생성하는 단계, 상기 웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 서버에 상기 어셈블리 파일을 제공하는 단계 및 상기 웹 서버가 상기 어셈블리 파일을 이용하여 상기 프레임워크에 상기 웹 애플리케이션을 설치하는 단계를 포함한다.
상기 어셈블리 파일을 생성하는 단계는, 상기 웹 애플리케이션에 할당되는 고유의 어댑터를 설정하는 단계, 상기 웹 애플리케이션과 관련된 식별 정보를 생성하는 단계 및 상기 어댑터, 상기 식별 정보 및 상기 웹 애플리케이션을 실행시키기 위한 파일을 포함시켜 상기 어셈블리 파일을 생성하는 단계를 포함할 수 있다.
상기 웹 애플리케이션을 설치하는 단계는, 상기 어셈블리 파일을 감지하는 단계, 상기 웹 애플리케이션과 상기 프레임워크가 연결되도록 상기 어댑터를 설정하는 단계, 상기 식별 정보를 검사하여 상기 웹 애플리케이션을 인식하는 단계 및 상기 어셈블리 파일을 상기 프레임워크와 연계된 레지스터에 등록함으로써 상기 웹 애플리케이션을 설치하는 단계를 포함할 수 있다.
상기 어셈블리 파일을 제공하는 단계는, 상기 웹 애플리케이션 개발 플랫폼 제공 장치가 통신 파이프라인을 통해 상기 웹 서버에 상기 어셈블리 파일의 배포를 알리기 위한 메시지를 제공하는 단계, 상기 웹 서버가 상기 통신 파이프라인을 통해 상기 웹 애플리케이션 개발 플랫폼 제공 장치에 상기 어셈블리 파일의 요청을 제공하는 단계 및 상기 웹 애플리케이션 개발 플랫폼 제공 장치가 통신 파이프라인을 통해 상기 웹 서버에 상기 어셈블리 파일을 제공하는 단계를 포함할 수 있다.
상기 웹 애플리케이션 개발 플랫폼 제공 방법은, 상기 웹 애플리케이션을 설치하는 단계 이후에, 상기 사용자 장치가 상기 사용자로부터 상기 웹 애플리케이션의 사용 요청을 입력받는 단계, 상기 사용자 장치가 상기 웹 서버에 상기 사용 요청을 제공하는 단계, 상기 웹 서버가 상기 사용 요청을 검사하여 상기 어댑터를 기초로 상기 웹 애플리케이션을 식별하는 단계, 상기 웹 서버가 상기 식별된 웹 애플리케이션을 웹 애플리케이션 지도에 등록하는 단계, 상기 웹 서버가 웹 애플리케이션 리소스 저장부에 상기 웹 애플리케이션을 실행시키기 위한 파일을 저장하는 단계, 상기 웹 서버가 상기 웹 애플리케이션을 실행시키기 위한 파일에 접근하기 위한 가상 경로를 설정하는 단계, 상기 웹 서버가 컨텍스트 데이터 캐시 저장부에 상기 웹 애플리케이션과 관련된 컨텍스트 데이터를 저장하는 단계, 상기 어댑터를 활성화하는 단계 및 상기 사용 요청에 따라 상기 웹 애플리케이션을 실행시키는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 웹 서버는, 웹 애플리케이션 개발 플랫폼 제공 장치로부터 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크에 대응되는 컴파일 파일을 수신하고, 상기 컴파일 파일을 이용하여 상기 프레임워크를 설치하는 프레임워크 관리부, 웹 애플리케이션에 대응되는 어셈블리 파일을 감지하고, 상기 어셈블리 파일을 이용하여 상기 프레임워크 상에 상기 웹 애플리케이션을 설치하는 웹 애플리케이션 제어부, 상기 프레임워크와 연계되고, 상기 설치된 웹 애플리케이션을 관리하는 레지스터, 상기 어셈블리 파일에 내장된 상기 웹 애플리케이션을 실행시키기 위한 파일을 추출하여 저장하는 웹 애플리케이션 리소스 저장부 및 상기 웹 애플리케이션과 관련된 컨텍스트 데이터를 저장하는 컨텍스트 데이터 캐시 저장부를 포함하고, 상기 웹 애플리케이션 제어부는, 상기 웹 애플리케이션에 할당되는 고유의 어댑터를 이용하여 상기 웹 애플리케이션의 실행 및 설치를 위해 상기 프레임워크와 상기 웹 애플리케이션을 연결시킨다.
본 발명의 일 실시 에에 따른 웹 애플리케이션 개발 플랫폼 제공 장치는, 사용자 장치에 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스를 제공하고, 상기 사용자 장치로부터 상기 사용자 인터페이스를 통해 입력된 웹 애플리케이션의 소스 코드를 수신하는 사용자 인터페이스 제어부, 상기 웹 애플리케이션 개발 플랫폼를 제공하기 위한 프레임워크를 관리하는 웹 애플리케이션 개발 플랫폼 관리부, 상기 프레임워크의 소스 코드를 컴파일하여 상기 프레임워크에 대응되는 컴파일 파일을 생성하고, 상기 웹 애플리케이션의 소스 코드를 컴파일하여 상기 웹 애플리케이션에 대응되는 어셈블리 파일을 생성하는 소스 코드 컴파일러 및 웹 서버에 상기 프레임워크가 설치되도록 상기 프레임워크에 대응되는 컴파일 파일을 제공하고, 상기 웹 서버에 상기 웹 애플리케이션이 설치되도록 상기 어셈블리 파일을 제공하는 웹 서버 제어부를 포함하고, 상기 소스 코드 컴파일러는, 상기 웹 애플리케이션에 할당되는 고유의 어댑터를 설정하고, 상기 어댑터를 포함시켜 상기 어셈블리 파일을 생성한다.
본 기술에 따른 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법은 웹 브라우저를 통해 웹 애플리케이션 개발 플랫폼을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼 제공 시스템을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼 제공 시스템의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼 제공 장치의 구성도이다.
도 4는 본 발명의 실시 예에 따른 웹 서버의 구성도이다.
도 5는 본 발명의 실시 예에 따른 웹 애플리케이션을 설치하는 예를 설명하기 위한 도면이다.
도 6은 본 발명의 실시 예에 따른 복수의 웹 서버들에 웹 애플리케이션을 설치하는 예를 설명하기 위한 도면이다.
도 7은 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼 제공 방법을 나타내는 흐름도이다.
도 8은 본 발명의 실시 예에 따른 웹 애플리케이션을 실행시키는 방법을 나타내는 흐름도이다.
도 9a 및 도 9b는 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼을 통해 제공되는 서비스의 일 예를 설명하기 위한 도면이다.
도 10a 및 도 10b는 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼을 통해 제공되는 서비스의 다른 예를 설명하기 위한 도면이다.
본 명세서의 실시 예를 설명함에 있어 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우, 그 상세한 설명은 생략될 수 있다.
본 명세서에서 사용되는 "포함한다", "포함할 수 있다" 등의 표현은 개시된 해당 기능, 동작, 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작, 구성요소 등을 제한하지 않는다. 또한, 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.  
본 명세서에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명을 설명한다.
도 1은 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼 제공 시스템(10)을 설명하기 위한 도면이다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 시스템(10)은 웹 브라우저를 통해 사용자 장치(100)로 웹 애플리케이션 개발 플랫폼을 제공할 수 있다. 웹 애플리케이션 개발 플랫폼은 통합 개발 환경 플랫폼으로써 웹 브라우저를 통해 웹 애플리케이션의 개발 및 설치를 위한 플랫폼일 수 있다. 웹 브라우저는 웹 관련 정보들을 볼수 있게 해주는 프로그램일 수 있다. 예를 들어, 웹 브라우저는 인터넷 익스플로러(Internet Explorer, IE), 파이어폭스(Fire Fox), 크롬(Chrome), 사파리(Safari), 오페라(Opera) 등을 포함할 수 있다.
도 1을 참조하면, 웹 애플리케이션 개발 플랫폼 제공 시스템(10)은 사용자 장치(100), 웹 애플리케이션 개발 플랫폼 제공 장치(200) 및 복수의 웹 서버(300)들을 포함한다.
사용자 장치(100)는 예를 들어, 개인용 컴퓨터(Personal Computer), 스마트폰(Smart Phone), 태블렛(Tablet) PC 등 다양한 형태의 장치를 포함할 수 있으나, 반드시 이에 한정되는 것은 아니며, 디스플레이 수단, 입출력 수단, 정보처리 수단 및 유무선 네트워크를 통한 통신 수단을 구비한 다양한 형태의 장치들을 포함할 수 있다.
웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 장치(100)에 설치된 웹 브라우저와 연계하여 사용자에게 웹 애플리케이션 개발 플랫폼을 제공하는 장치일 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 서비스 및 웹 사이트를 하나의 웹 애플리케이션으로 컴파일하여 웹 애플리케이션 개발 플랫폼에서 사용하는 서비스를 제공할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발 플랫폼에 영향없이 언제든지 웹 애플리케이션들을 설치하거나 수정하는 서비스를 제공할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 브라우저를 통해 직접 웹 애플리케이션을 개발하고 운용하는 서비스를 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)에 설치된 각 웹 애플리케이션은 하나의 실행파일로 컴파일된 뒤, 웹 애플리케이션 개발 플랫폼에서 이용될 수 있다. 사용자는 시간과 장소에 구애받지 않고 웹 애플리케이션 개발 플랫폼 제공 장치(200)의 웹 애플리케이션 개발 플랫폼을 통해 웹 애플리케이션을 설치 및 수정할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발에 필요한 다양한 환경요소를 웹 브라우저 내에 통합시키고, 사용자는 웹 애플리케이션 개발 플랫폼 제공 장치(200)를 통해 자유롭게 웹 애플리케이션 개발 프로젝트를 수행할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발 프로젝트를 통해 생성된 웹 애플리케이션을 단 시간 내에 인터넷에서 사용할 수 있도록 서비스를 제공할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 브라우저를 통해 전세계의 개발자들과 함께 프로젝트를 수행할 수 있는 협업 공간을 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 다양한 클라우드 서비스에서 사용 가능한 웹 애플리케이션 개발 플랫폼을 제공할 수 있다. 클라우드 서비스는 내부 저장공간이 외부 클라우드 서버에 저장한 뒤 다운로드 받는 서비스로써 예를 들어, azure, AWS(Amazon Web Services), Google Cloud, 등을 포함할 수 있다. 예를 들어, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 복수의 웹 서버(300)들과 연계하여 웹 애플리케이션 개발 플랫폼을 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 데이터 및 웹 애플리케이션의 원격통신을 위한 파이프라인을 제공할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발 플랫폼을 통해 컴파일된 웹 애플리케이션 파일을 웹 서버(300)에 제공할 수 있다. 이때, 웹 애플리케이션은 어셈블리(Assembly) 파일로 웹 서버(300)에 제공될 수 있다. 어셈블리 파일은 하나 이상의 웹 애플리케이션들을 포함할 수 있다. 예를 들어, 웹 서버(300)로 제공된 어셈블리 파일은 웹 서버(300)의 웹 애플리케이션 제어부에 의해 자동으로 감지될 수 있다. 감지된 어셈블리 파일의 웹 애플리케이션들은 웹 서버(300)의 웹 애플리케이션 개발 플랫폼 레지터에 등록될 수 있다. 사용자가 웹 애플리케이션에 대한 사용을 요청하면, 웹 서버(300)는 요청된 웹 애플리케이션을 포함하는 어셈블리 파일을 로드하여 실행할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발 플랫폼과 관련된 정보의 제공, 웹 애플리케이션 개발 플랫폼을 위한 각종 사용자 인터페이스의 제공 등 다양한 역할을 수행할 수 있다. 사용자 장치(100)의 디스플레이부(미도시)에는 웹 애플리케이션 개발 플랫폼 제공 장치(200)에서 제공하는 사용자 인터페이스 화면이 표시되어, 사용자의 웹 애플리케이션의 개발에 있어 편의를 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 데이터와 사용자 인터페이스 사이에서 데이터의 처리 및 다양한 비즈니스 로직을 개발하기 위한 서비스를 제공할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 RESTful API를 기반으로 서비스를 제공할 수 있다. RESTful API는 REST(Representational State Transfer) API를 제공하는 웹 서비스일 수 있다. 인터넷 표준으로써 RESTful API는 다양한 웹 개발 언어에서 사용할 수 있으므로, 웹 애플리케이션 개발 플랫폼 제공 장치(200)에서 제공되는 웹 애플리케이션 개발 플랫폼은 사용자의 현재 개발중인 모든 프로젝트에 적용될 수 있고, API 허브로써 역할을 수행할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)를 통한 API 시스템 구축은 사용자가 필요로 하는 웹 애플리케이션 개발에 보다 유용하고 편리한 방법을 제공할 수 있고, 시스템 확장 및 진화 능력을 클라우드에서 직접 제공받을 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 RESTful API 기능, API 허브 기능, Token 인증 기능, Single Access Point 기능 등을 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 프로세서(processor)와 메소드(method)로 구성된 데이터 서비스를 제공할 수 있다. 이때, 프로세서는 서비스 실행블록을 의미하고, 하나의 서비스는 하나 이상의 프로세서를 포함할 수 있다. 메소드는 서비스 실행단위를 의미하고, 데이터 처리 방법을 정의할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 대쉬보드, 쇼핑몰, 소셜 네트워크 등 다양한 형태의 웹 사이트 개발하기 위한 서비스를 제공할 수 있습니다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발에 사용된 복수의 파일들을 하나의 라이브러리 파일로 컴파일하여 바로 실행할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 한번의 클릭으로 여러 서버를 동시에 사용할 수 있는 분산 환경을 제공할 수 있다.
이에 따라, 본 발명의 실시 예에 따르면, 사용자는 사용자 장치(100)에 소프트웨어 개발 키트(software development kit, SDK), 에디터, 에뮬레이터, 컴파일러 등을 직접 설치할 필요없이, 웹 애플리케이션 개발 플랫폼 제공 장치(200)에 접속하는 것 만으로 웹 애플리케이션을 개발할 수 있는 환경을 제공받을 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발 플랫폼에 의해 생성된 복수의 웹 애플리케이션들을 각각 독립적인 단위로 관리하고 실행시킬 수 있다. 즉, 복수의 웹 애플리케이션들은 비동기적으로 동작될 수 있다. 예를 들어, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 제1 웹 애플리케이션과 관련된 소스 코드를 업데이트하는 동안에 제2 웹 애플리케이션을 실행시킬 수 있다. 이때, 제2 웹 애플리케이션의 동작은 중단되지 않을 수 있다. 또한, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 각 웹 애플리케이션과 관련된 소스 코드를 컴파일하고, 컴파일된 소스 코드를 웹 서버(300)로 제공할 수 있다. 이때, 컴파일된 소스 코드는 어셈블리 형식으로 구성될 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발 플랫폼과 관련된 다양한 정보를 저장할 수 있다. 또한, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 장치(100)를 통해 사용자에 의해 입력된 사용자의 ID, 패스워드, 소스 코드 등을 저장하고 관리할 수 있다.
일 실시 예에서, 웹 서버(300)는 클라우드 서비스를 제공하는 장치일 수 있다. 웹 서버(300)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)와 연계하여 웹 애플리케이션 개발 플랫폼을 제공하기 위한 데이터들을 저장할 수 있다.
도 2는 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼 제공 시스템의 동작을 설명하기 위한 도면이다.
도 2에서, 웹 서버(300)는 도 1의 복수의 웹 서버(300)들 중 어느 하나 일 수 있다.
도 2를 참조하면, 사용자 장치(100)는 웹 브라우저를 통해 사용자에게 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스를 제공할 수 있다. 사용자 장치(100)는 사용자 인터페이스를 통해 사용자로부터 개발하려는 웹 애플리케이션의 소스 코드를 입력받을 수 있다. 사용자 장치는 입력받은 소스 코드를 웹 애플리케이션 개발 플랫폼 제공 장치(200)에 제공할 수 있다.
일 실시 에에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 장치(100)로 사용자 인터페이스를 제공하고, 사용자 장치(100)로부터 웹 애플리케이션의 소스 코드를 수신할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션의 소스 코드를 컴파일하여 웹 애플리케이션을 설치 및 실행시키기 위한 어셈블리 파일을 생성할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 서버(300)에 어셈블리 파일을 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자가 웹 애플리케이션의 소스 코드를 수정하면, 사용자 장치(100)로부터 수정된 소스 코드를 수신할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 수정된 소스 코드를 컴파일하여 새로운 어셈블리 파일을 생성하고, 새로운 어셈블리 파일을 웹 서버(300)에 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 복수의 클라우드 서비스들을 포함하는 클라우드 서비스 리스트를 제공할 수 있다. 사용자가 복수의 클라우드 서비스들 중 어느 하나를 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 복수의 웹 서버들 중 사용자에 의해 선택된 클라우드 서비스를 제공하는 웹 서버(300)에 어셈블리 파일을 제공할 수 있다.
일 실시 예에서, 웹 서버(300)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)로부터 어셈블리 파일을 수신하고, 수신된 어셈블리 파일을 이용하여 웹 애플리케이션을 설치할 수 있다. 예를 들어, 웹 서버(300)는 웹 애플리케이션 개발 플랫폼과 연계된 웹 애플리케이션 제어부를 포함할 수 있다. 웹 애플리케이션 제어부는 어셈블리 파일을 감지할 수 있다.
일 실시 예에서, 웹 서버(300)는 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크를 관리할 수 있다. 이때, 프레임워크는 웹 애플리케이션 개발에 필수적이고 표준적인 부분에 해당하는 설계와 구현을 재사용 가능하도록, 일련의 협업화된 형태의 클래스들로 제공하는 소프트웨어 모듈 또는 환경을 의미할 수 있다. 또한, 웹 서버(300)는 프레임워크와 연계된 레지스터를 포함할 수 있다. 웹 서버(300)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)로부터 어셈블리 파일을 수신하면, 수신된 어셈블리 파일을 레지스터에 등록함으로써 웹 애플리케이션을 설치할 수 있다.
일 실시 예에서, 웹 서버(300)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)로부터 새로운 어셈블리 파일을 수신하면, 새로운 어셈블리 파일을 이용하여 웹 애플리케이션을 업데이트할 수 있다.
일 실시 예에서, 웹 서버(300)는 사용자의 실행 요청에 따라 어셈블리 파일을 로딩함으로써 웹 애플리케이션을 실행시킬 수 있다. 예를 들어, 웹 서버(300)에 포함된 웹 애플리케이션 제어부는 사용자의 실행 요청을 감지하여 어셈블리 파일을 로딩함으로써 웹 애플리케이션을 실행시킬 수 있다.
일 실시 에에서, 웹 서버(300)는 웹 애플리케이션의 소스 코드가 수정되는 동안에 사용자의 실행 요청에 따라 웹 애플리케이션 개발 플랫폼에 의해 설치된 다른 웹 애플리케이션을 독립적으로 실행시킬 수 있다. 예를 들어, 사용자는 웹 애플리케이션 개발 플랫폼을 통해 제1 웹 애플리케이션 및 제2 웹 애플리케이션을 개발하고, 웹 서버(300)에 설치할 수 있다. 이후, 사용자가 제1 웹 애플리케이션의 소스 코드를 수정하는 동안에 제2 웹 애플리케이션에 대해 실행을 요청하면, 웹 서버(300)는 제1 웹 애플리케이션의 수정 동작과 무관하게 제2 웹 애플리케이션을 독립적으로 실행시킬 수 있다.
도 3은 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼 제공 장치의 구성도이다.
도 3을 참조하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스 제공부(210), 웹 애플리케이션 개발 플랫폼 관리부(220), 소스 코드 컴파일러(230) 및 웹 서버 제어부(240)를 포함한다.
사용자 인터페이스 제공부(210)는 사용자 장치(100)에 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스를 제공할 수 있다. 또한, 사용자 인터페이스 제공부(210)는 사용자 장치(100)로부터 사용자 인터페이스를 통해 입력된 웹 애플리케이션의 소스 코드를 수신할 수 있다.
웹 애플리케이션 개발 플랫폼 관리부(220)는 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크를 관리할 수 있다.
소스 코드 컴파일러(230)는 프레임워크의 소스 코드를 컴파일하여 프레임워크에 대응되는 컴파일 파일을 생성할 수 있다. 또한, 소스 코드 컴파일러(230)는 웹 애플리케이션의 소스 코드를 컴파일하여 웹 애플리케이션에 대응되는 어셈블리 파일을 생성할 수 있다.
일 실시 예에서, 소스 코드 컴파일러(230)는 웹 애플리케이션에 할당되는 고유의 어댑터를 설정하고, 어댑터를 포함시켜 어셈블리 파일을 생성할 수 있다. 어셈블리 파일은 소스 코드를 어댑터로 포장한 하나의 패키지일 수 있다. 어댑터는 프레임워크와 웹 애플리케이션을 연결해 주는 구성으로, 어댑터를 이용하여 웹 애플리케이션이 프레임워크에 플러그인/플러그아웃 할 수 있다.
예를 들어, 소스 코드 컴파일러(230)는 웹 애플리케이션에 할당되는 고유의 어댑터를 설정하고, 웹 애플리케이션과 관련된 식별 정보를 생성할 수 있다. 웹 애플리케이션과 관련된 식별 정보는 고유 아이디, 경로 및 암호화된 토큰을 포함할 수 있다. 소스 코드 컴파일러(230)는 어댑터, 식별 정보 및 웹 애플리케이션을 실행시키기 위한 파일을 포함시켜 어셈블리 파일을 생성할 수 있다. 웹 애플리케이션을 실행시키기 위한 파일은 어셈블리 파일에 내장되는 것으로, 소스 코드, 웹페이지, 스크립트, 스타일시트, 이미지 및 기타 파일들을 포함할 수 있다. 또한, 웹 애플리케이션을 실행시키기 위한 파일 중 어셈블리 파일에 내장되지 않은 스크립트, 스타일시트 번들(Bundle) 매니저 등은 웹 서버 제어부(240)에 의해 별도로 웹 서버(300)에 제공될 수 있다.
웹 서버 제어부(240)는 웹 서버(300)에 프레임워크가 설치되도록 프레임워크에 대응되는 컴파일 파일을 제공할 수 있다. 또한, 웹 서버 제어부(240)는 웹 서버(300)에 웹 애플리케이션이 설치되도록 어셈블리 파일을 제공할 수 있다.
일 실시 예에서, 웹 서버 제어부(240)는 통신 파이프라인을 통해 웹 서버와 통신할 수 있다. 웹 애플리케이션 개발 플랫폼 제공 장치(200)에 설치된 프레임워크와 웹 서버(300)에 설치된 프레임워크는 통신 파이프라인을 통해 메시지를 주고받을 수 있다. 웹 서버 제어부(240)는 웹 서버(300)에 어셈블리 파일의 배포를 알리기 위한 메시지를 제공할 수 있다. 웹 서버 제어부(240)는 통신 파이프라인을 통해 웹 서버(300)로부터 어셈블리 파일의 요청을 수신할 수 있다. 웹 서버 제어부(240)는 통신 파이프라인을 통해 웹 서버(300)에 어셈블리 파일을 제공할 수 있다.
일 실시 예에서, 웹 서버(300)에 웹 애플리케이션이 설치된 뒤 해당 웹 애플리케이션에 새로운 기능이 추가되거나 기존의 기능을 수정하는 경우, 소스 코드 컴파일러(230)는 기능이 추가되거나 수정된 웹 애플리케이션의 소스 코드를 컴파일하여 새로운 어셈블리 파일을 생성할 수 있다. 웹 서버 제어부(240)는 새로운 기능이 추가되거나 수정된 웹 애플리케이션이 설치되도록 웹 서버(300)에 새로운 어셈블리 파일을 제공할 수 있다.
도 4는 본 발명의 실시 예에 따른 웹 서버의 구성도이다.
도 4를 참조하면, 웹 서버(400)는 프레임워크 관리부(310), 웹 애플리케이션 제어부(320), 레지스터(330), 웹 애플리케이션 리소스 저장부(340) 및 컨텍스트 데이터 캐시 저장부(350)를 포함한다.
프레임워크 관리부(310)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)로부터 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크에 대응되는 컴파일 파일을 수신할 수 있다. 또한, 프레임워크 관리부(310)는 컴파일 파일을 이용하여 프레임워크를 설치할 수 있다.
웹 애플리케이션 제어부(320)는 웹 애플리케이션에 대응되는 어셈블리 파일을 감지하고, 어셈블리 파일을 이용하여 프레임워크에 웹 애플리케이션을 설치할 수 있다.
일 실시 예에서, 웹 애플리케이션 제어부(320)는 웹 애플리케이션에 할당되는 고유의 어댑터를 이용하여 웹 애플리케이션의 실행 및 설치를 위해 프레임워크와 웹 애플리케이션을 연결시킬 수 있다.
예를 들어, 웹 애플리케이션 제어부(320)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)로부터 제공된 어셈블리 파일을 감지할 수 있다. 웹 애플리케이션 제어부(320)는 웹 애플리케이션과 프레임워크가 연결되도록 어댑터를 설정할 수 있다. 어댑터를 통한 연결은 프레임워크에 설치된 다른 웹 애플리케이션의 동작을 중지시키지 않으면서 언제든지 수행될 수 있다. 웹 애플리케이션 제어부(320)는 식별 정보를 검사하여 웹 애플리케이션을 인식할 수 있다. 웹 애플리케이션 제어부(320)는 어셈블리 파일을 레지스터(330)에 등록함으로써 웹 애플리케이션을 설치할 수 있다.
레지스터(330)는 프레임워크와 연계되고, 프레임워크에 설치된 웹 애플리케이션을 관리할 수 있다. 레지스터(330)에 등록된 웹 애플리케이션은 수정되거나 삭제될 수 있다.
웹 애플리케이션 리소스 저장부(340)는 어셈블리 파일에 내장된 웹 애플리케이션을 실행시키기 위한 파일을 추출하여 저장할 수 있다.
컨텍스트 데이터 캐시 저장부(350)는 웹 애플리케이션과 관련된 컨텍스트 데이터를 저장할 수 있다.
일 실시 예에서, 웹 애플리케이션이 설치된 뒤, 사용자 장치(100)는 사용자로부터 웹 애플리케이션의 사용 요청을 입력받을 수 있다. 이 경우, 웹 애플리케이션 제어부(320)는 사용자 장치(100)로부터 사용 요청을 수신할 수 있다. 웹 애플리케이션 제어부(320)는 사용 요청을 검사하여 어댑터를 기초로 웹 애플리케이션을 식별할 수 있다. 어댑터는 고유의 식별자를 가지고 있기 때문에, 프레임워크를 통해 사용 요청을 검사하여 해당 웹 애플리케이션으로 연결할 수 있다. 웹 애플리케이션 제어부(320)는 식별된 웹 애플리케이션을 웹 애플리케이션 지도에 등록할 수 있다. 지도는 로드된 웹 애플리케이션을 사용하기 위한 구성일 수 있다. 이후, 웹 애플리케이션 리소스 저장부(350)는 웹 애플리케이션을 실행시키기 위한 파일을 저장할 수 있다. 또한, 웹 애플리케이션 제어부(320)는 웹 애플리케이션을 실행시키기 위한 파일에 접근하기 위한 가상 경로를 설정할 수 있다. 컨텍스트 데이터 캐시 저장부(350)는 웹 애플리케이션과 관련된 컨텍스트 데이터를 저장할 수 있다. 이후, 웹 애플리케이션 제어부(320)는 어댑터를 활성화할 수 있다. 웹 애플리케이션 제어부(320)는 사용 요청에 따라 웹 애플리케이션을 실행시킨 뒤, 실행 결과를 사용자 장치(100)에 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 제어부(320)는 새로운 기능이 추가되거나 수정된 웹 애플리케이션에 대응되는 새로운 어셈블리 파일을 감지할 수 있다. 웹 애플리케이션 제어부(320)는 새로운 어셈블리 파일을 프레임워크에 등록시켜 웹 애플리케이션에 새로운 기능을 추가하거나 수정할 수 있다. 또한, 웹 애플리케이션 제어부(320)는 어셈블리 파일을 삭제함으로써, 웹 애플리케이션에서 삭제된 어셈블리 파일에 대응되는 기능을 제거할 수 있다. 이에 따라, 웹 애플리케이션을 다시 시작할 필요없이 기능이 추가, 수정 및 삭제될 수 있다.
도 5는 본 발명의 실시 예에 따른 웹 애플리케이션을 설치하는 예를 설명하기 위한 도면이다.
도 5를 참조하면, 웹 서버(300)는 프레임워크를 설치하고, 프레임워크를 통해 웹 애플리케이션을 설치 및 관리할 수 있다. 웹 애플리케이션은 어셈블리 파일 형태로 프레임워크에 설치될 수 있다.
도 6은 본 발명의 실시 예에 따른 복수의 웹 서버들에 웹 애플리케이션을 설치하는 예를 설명하기 위한 도면이다.
도 6을 참조하면, 웹 서버는 물리적으로 제한된 메모리와 프로세서를 갖고 있어서 한 개의 서버가 담당할 수 있는 자원은 제한적일 수 있다. 이 경우, 웹 사이트를 구현하기 위해 복수의 웹 서버가 필요할 수 있다. 제1 웹 서버(300-1)와 제2 웹 서버(300-2)는 동일한 웹 사이트를 구현하기 위한 프레임워크를 설치할 수 있다. 웹 애플리케이션을 설치하려는 경우, 웹 애플리케이션 제공 장치(200)는 어셈블리 파일을 제1 웹 서버(300-1)와 제2 웹 서버(300-2)에 각각 제공할 수 있다. 제1 웹 서버(300-1)와 제2 웹 서버(300-2)는 제공받은 어셈블리 파일을 이용하여 웹 애플리케이션을 설치할 수 있다.
도 7은 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼 제공 방법을 나타내는 흐름도이다.
도 7에 도시된 방법은 예를 들어, 도 1에 도시된 웹 애플리케이션 개발 플랫폼 시스템(10)에 의해 수행될 수 있다.
도 7을 참조하면, 단계 S701에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크의 소스 코드를 컴파일하여 프레임워크에 대응되는 컴파일 파일을 생성할 수 있다.
단계 S703에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 서버(300)에 프레임워크에 대응되는 컴파일 파일을 제공할 수 있다.
단계 S705에서, 웹 서버(300)는 컴파일 파일을 이용하여 프레임워크를 설치할 수 있다.
단계 S707에서, 사용자 장치(100)는 사용자로부터 웹 애플리케이션의 소스 코드를 입력받을 수 있다.
단계 S709에서, 사용자 장치(100)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)에 웹 애플리케이션의 소스 코드를 제공할 수 있다.
단계 S711에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션의 소스 코드를 컴파일하여 웹 애플리케이션에 대응되는 어셈블리 파일을 생성할 수 있다. 구체적으로, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 애플리케이션에 할당되는 고유의 어댑터를 설정하고, 웹 애플리케이션과 관련된 식별 정보를 생성할 수 있다. 또한, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 어댑터, 식별 정보 및 웹 애플리케이션을 실행시키기 위한 파일을 포함시켜 어셈블리 파일을 생성할 수 있다.
단계 S713에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 서버(300)에 어셈블리 파일을 제공할 수 있다. 구체적으로, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 통신 파이프라인을 통해 웹 서버(300)에 어셈블리 파일의 배포를 알리기 위한 메시지를 제공할 수 있다. 이후, 웹 서버(300)는 통신 파이프라인을 통해 웹 애플리케이션 개발 플랫폼 제공 장치(200)에 어셈블리 파일의 요청을 제공할 수 있다. 이후, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 통신 파이프라인을 통해 웹 서버(300)에 어셈블리 파일을 제공할 수 있다.
단계 S715에서, 웹 서버(300)는 어셈블리 파일을 이용하여 프레임워크에 웹 애플리케이션을 설치할 수 있다. 구체적으로, 웹 서버(300)는 어셈블리 파일을 감지할 수 있다. 웹 서버(300)는 웹 애플리케이션과 프레임워크가 연결되도록 어댑터를 설정하고, 식별 정보를 검사하여 웹 애플리케이션을 인식할 수 있다. 또한, 웹 서버(300)는 어셈블리 파일을 레지스터에 등록함으로써 웹 애플리케이션을 설치할 수 있다.
도 8은 본 발명의 실시 예에 따른 웹 애플리케이션을 실행시키는 방법을 나타내는 흐름도이다. 도 8은 도 7에 도시된 방법에 의해 웹 서버(300)에 프레임워크가 설치된 이후에 수행되는 방법일 수 있다.
도 8에 도시된 방법은 예를 들어, 도 1에 도시된 웹 애플리케이션 개발 플랫폼 시스템(10)에 의해 수행될 수 있다.
도 8을 참조하면, 단계 S801에서, 사용자 장치(100)는 사용자로부터 웹 애플리케이션의 사용 요청을 입력받을 수 있다.
단계 S803에서, 사용자 장치(100)는 웹 서버(300)에 사용 요청을 제공할 수 있다.
단계 S805에서, 웹 서버(300)는 사용 요청을 검사하여 어댑터를 기초로 웹 애플리케이션을 식별할 수 있다.
단계 S807에서, 웹 서버(300)는 식별된 웹 애플리케이션을 웹 애플리케이션 지도에 등록할 수 있다.
단계 S809에서, 웹 서버(300)는 웹 애플리케이션 리소스 저장부에 웹 애플리케이션을 실행시키기 위한 파일을 저장할 수 있다.
단계 S811에서, 웹 서버(300)는 웹 애플리케이션을 실행시키기 위한 파일에 접근하기 위한 가상 경로를 설정할 수 있다.
단계 S813에서, 웹 서버(300)는 컨텍스트 데이터 캐시 저장부에 웹 애플리케이션과 관련된 컨텍스트 데이터를 저장할 수 있다.
단계 S815에서, 웹 서버(300)는 어댑터를 활성화할 수 있다.
단계 S817에서, 웹 서버(300)는 사용 요청에 따라 상기 웹 애플리케이션을 실행시키고, 사용자 장치(100)에 사용 요청에 대한 응답을 제공할 수 있다.
도 9a 및 도 9b는 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼을 통해 제공되는 서비스의 일 예를 설명하기 위한 도면이다.
웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 브라우저를 통해 사용자 장치(100)로 웹 애플리케이션 개발 플랫폼을 제공할 수 있다. 예를 들어, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 장치(100)에 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스를 제공할 수 있다.
도 9a는 웹 애플리케이션 개발 플랫폼 기본 화면의 사용자 인터페이스를 나타낼 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹사이트 개발, 서비스 개발, 자바스크립크(JavaScript), 자바(Java), 파이썬 Python, C 언어, 데이터 베이스 등 다양한 프로그래밍 언어들을 제공할 수 있다. 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스는 새로운 프로젝트를 생성하는 기능(910)을 포함할 수 있다. 이때, 프로젝트는 사용자가 개발하고자 하는 웹 애플리케이션을 의미할 수 있다. 사용자는 새로운 프로젝트를 생성하는 기능(910)을 선택하고, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자의 선택에 응답하여 사용자 인터페이스를 통해 프로그래밍 언어 리스트를 제공할 수 있다. 사용자는 프로그래밍 언어 리스트 중 개발에 이용될 프로그래밍 언어를 선택할 수 있고, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자에 의해 선택된 프로그래밍 언어와 관련된 웹 애플리케이션 개발 플랫폼을 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스는 프로젝트들을 정렬하여 나타내는 기능(920)을 포함할 수 있다. 예를 들어, 사용자가 “All”영역을 선택하면 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 모든 프로젝트들의 정보를 제공할 수 있다. 다른 예로, 사용자가 “Java”영역을 선택하면 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 “Java”와 관련된 프로젝트들의 정보를 제공할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스는 프로젝트 리스트(930)를 포함할 수 있다. 프로젝트 리스트(930)는 생성된 프로젝트들의 명칭, 관련된 프로그래밍 언어 등을 포함할 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스는 생성된 프로젝트들의 정보(940a, 940b, 940c)를 포함할 수 있다. 프로젝트들의 정보(940a, 940b, 940c)는 프로젝트의 명칭, 관련된 프로그래밍 언어, 프로젝트에 대한 요약 정보, 생성된 날짜 등을 포함할 수 있다.
도 9b는 사용자에 의해 선택된 프로젝트의 사용자 인터페이스를 나타낼 수 있다.
일 실시 예에서, 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스는 프로젝트에 포함된 파일들의 리스트(950)를 포함할 수 있다. 사용자는 파일들의 리스트 중 어느 하나의 파일을 선택하고, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 사용자에 의해 선택된 파일에 저장된 소스 코드들(960)을 제공할 수 있다. 사용자는 파일에 저장된 소스 코드들(960)을 수정할 수 있다.
일 실시 예에서, 사용자 인터페이스는 “Run”기능, “View”기능, “Output”기능 등을 포함할 수 있다. 사용자가 “Run”기능을 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 프로젝트에 대응되는 애플리케이션을 실행시킬 수 있다. 또한, 사용자가 “View”기능을 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 애플리케이션이 실행되는 결과(970)를 제공할 수 있다. 또한, 사용자가 “Output”기능을 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 컴파일된 프로젝트를 컴파일하고, 사용자 인터페이스를 통해 컴파일된 결과(980)를 제공할 수 있다. 이때, 컴파일된 결과는 컴파일의 성공 여부, 오류 내용 등을 포함할 수 있다.
도 10a 및 도 10b는 본 발명의 실시 예에 따른 웹 애플리케이션 개발 플랫폼을 통해 제공되는 서비스의 다른 예를 설명하기 위한 도면이다.
웹 애플리케이션 개발 플랫폼 제공 장치(200)는 웹 브라우저를 통해 사용자 장치(100)로 코딩 교육 서비스를 제공할 수 있다. 예를 들어, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 장치(100)에 코딩 교육 서비스의 사용자 인터페이스를 제공할 수 있다.
도 10a는 코딩 교육 서비스 기본 화면의 사용자 인터페이스를 나타낼 수 있다.
일 실시 예에서, 코딩 교육 서비스의 사용자 인터페이스는 코딩 교육 문제 생성 기능(1010)을 포함할 수 있다. 사용자가 코딩 교육 문제 생성 기능(1010)을 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 코딩 교육 문제를 생성하기 위한 사용자 인터페이스를 제공할 수 있다.
일 실시 예에서, 코딩 교육 서비스의 사용자 인터페이스는 코딩 교육 문제 선택 검색 기능(1020)을 포함할 수 있다. 사용자는 코딩 교육 문제 선택 검색 기능(1020)을 통해 난이도를 선택하거나 키워드를 입력하여 코딩 교육 문제를 검색할 수 있다.
일 실시 예에서, 코딩 교육 서비스의 사용자 인터페이스는 코딩 교육 서비스와 관련된 정보들(1030)을 포함할 수 있다. 코딩 교육 서비스와 관련된 정보들(1030)은 코딩 교육 문제 리스트, 각 코딩 교육 문제의 난이도, 선택 횟수, 실행 횟수, 문제 해결 비율 등을 포함할 수 있다. 사용자는 코딩 교육 리스트 중 어느 하나의 코딩 교육 문제를 선택할 수 있다. 사용자 장치(100)는 웹 애플리케이션 개발 플랫폼 제공 장치(200)에 사용자가 선택한 코딩 교육 문제를 요청하고, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 장치(100)에 요청된 코딩 교육 문제에 대한 사용자 인터페이스를 제공할 수 있다.
도 10b는 사용자에 의해 선택된 코딩 교육 문제의 사용자 인터페이스를 나타낼 수 있다.
코딩 교육 서비스의 사용자 인터페이스는 코딩 교육 문제와 관련된 정보들을 포함할 수 있다. 예를 들어, 사용자 인터페이스는 코딩 교육 문제에 대한 설명을 제공하는 영역, 코딩 교육 문제에 대한 정답 소스 코드를 제공하는 영역, 사용자 인터페이스를 통해 입력된 코딩 교육 문제에 대한 소스 코드 입력이 가능한 영역(1040), 소스 코드의 실행 결과를 요청하는 기능, 소스 코드의 실행 결과에 따라 코딩 교육 문제의 정답 여부를 제공하는 영역, 코딩 교육 문제와 관련된 힌트를 제공하는 영역, 코딩 교육 문제와 관련된 텍스트 정보 및 영상 정보를 제공하는 영역 등을 포함할 수 있다.
일 실시 예에서, 코딩 교육 문제에 대한 소스 코드 입력이 가능한 영역(1040)은 복수의 소스 코드들 중 일부가 비어있는 소스 코드 세트 및 사용자의 소스 코드 입력을 안내하기 위한 가이드 정보를 포함할 수 있다. 사용자 인터페이스의 “Run”기능은 소스 코드의 실행 결과를 요청하는 기능을 나타낼 수 있다. 사용자 인터페이스의 “Output”기능은 소스 코드의 컴파일 결과를 제공하는 기능일 수 있다.
예를 들어, 사용자는 코딩 교육 문제에 대한 소스 코드 입력이 가능한 영역(1040)에 소스 코드를 입력한 뒤 “Document”기능을 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 소스 코드를 컴파일하고, 사용자 인터페이스를 통해 코딩 교육 문제에 대한 정답 여부를 제공할 수 있다. 사용자가 “Ouput”기능을 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 소스 코드의 컴파일 결과를 제공할 수 있다. 사용자가 “Solution”기능을 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 코딩 교육 문제에 대한 정답 소스 코드를 제공할 수 있다. 사용자가 “Document” 기능을 선택하면, 웹 애플리케이션 개발 플랫폼 제공 장치(200)는 사용자 인터페이스를 통해 코딩 교육 문제와 관련된 텍스트 정보 및 영상 정보를 제공할 수 있다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 웹 애플리케이션 개발 플랫폼 제공 시스템
100: 사용자 장치
200: 웹 애플리케이션 개발 플랫폼 제공 장치
300: 웹 서버

Claims (7)

  1. 웹 브라우저를 통해 웹 애플리케이션의 개발 및 설치를 위한 웹 애플리케이션 개발 플랫폼을 제공하는 웹 애플리케이션 개발 플랫폼 제공 방법에 있어서,
    웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크의 소스 코드를 컴파일하여 상기 프레임워크에 대응되는 컴파일 파일을 생성하는 단계;
    상기 웹 애플리케이션 개발 플랫폼 제공 장치가 웹 서버에 상기 컴파일 파일을 제공하는 단계;
    상기 웹 서버가 상기 컴파일 파일을 이용하여 상기 프레임워크를 설치하는 단계;
    사용자 장치가 사용자로부터 상기 웹 애플리케이션의 소스 코드를 입력받는 단계;
    상기 사용자 장치가 상기 웹 애플리케이션 개발 플랫폼 제공 장치에 상기 웹 애플리케이션의 소스 코드를 제공하는 단계;
    상기 웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 애플리케이션의 소스 코드를 컴파일하여 상기 웹 애플리케이션에 대응되는 어셈블리 파일을 생성하는 단계;
    상기 웹 애플리케이션 개발 플랫폼 제공 장치가 상기 웹 서버에 상기 어셈블리 파일을 제공하는 단계; 및
    상기 웹 서버가 상기 어셈블리 파일을 이용하여 상기 프레임워크에 상기 웹 애플리케이션을 설치하는 단계;를 포함하는 웹 애플리케이션 개발 플랫폼 제공 방법.
  2. 제1 항에 있어서, 상기 어셈블리 파일을 생성하는 단계는,
    상기 웹 애플리케이션에 할당되는 고유의 어댑터를 설정하는 단계;
    상기 웹 애플리케이션과 관련된 식별 정보를 생성하는 단계; 및
    상기 어댑터, 상기 식별 정보 및 상기 웹 애플리케이션을 실행시키기 위한 파일을 포함시켜 상기 어셈블리 파일을 생성하는 단계;를 포함하는 웹 애플리케이션 개발 플랫폼 제공 방법.
  3. 제2 항에 있어서, 상기 웹 애플리케이션을 설치하는 단계는,
    상기 어셈블리 파일을 감지하는 단계;
    상기 웹 애플리케이션과 상기 프레임워크가 연결되도록 상기 어댑터를 설정하는 단계;
    상기 식별 정보를 검사하여 상기 웹 애플리케이션을 인식하는 단계; 및
    상기 어셈블리 파일을 상기 프레임워크과 연계된 레지스터에 등록함으로써 상기 웹 애플리케이션을 설치하는 단계;를 포함하는 웹 애플리케이션 개발 플랫폼 제공 방법.
  4. 제1 항에 있어서, 상기 어셈블리 파일을 제공하는 단계는,
    상기 웹 애플리케이션 개발 플랫폼 제공 장치가 통신 파이프라인을 통해 상기 웹 서버에 상기 어셈블리 파일의 배포를 알리기 위한 메시지를 제공하는 단계;
    상기 웹 서버가 상기 통신 파이프라인을 통해 상기 웹 애플리케이션 개발 플랫폼 제공 장치에 상기 어셈블리 파일의 요청을 제공하는 단계; 및
    상기 웹 애플리케이션 개발 플랫폼 제공 장치가 통신 파이프라인을 통해 상기 웹 서버에 상기 어셈블리 파일을 제공하는 단계;를 포함하는 웹 애플리케이션 개발 플랫폼 제공 방법.
  5. 제2 항에 있어서,
    상기 웹 애플리케이션을 설치하는 단계 이후에, 상기 사용자 장치가 상기 사용자로부터 상기 웹 애플리케이션의 사용 요청을 입력받는 단계;
    상기 사용자 장치가 상기 웹 서버에 상기 사용 요청을 제공하는 단계;
    상기 웹 서버가 상기 사용 요청을 검사하여 상기 어댑터를 기초로 상기 웹 애플리케이션을 식별하는 단계;
    상기 웹 서버가 상기 식별된 웹 애플리케이션을 웹 애플리케이션 지도에 등록하는 단계;
    상기 웹 서버가 웹 애플리케이션 리소스 저장부에 상기 웹 애플리케이션을 실행시키기 위한 파일을 저장하는 단계;
    상기 웹 서버가 상기 웹 애플리케이션을 실행시키기 위한 파일에 접근하기 위한 가상 경로를 설정하는 단계;
    상기 웹 서버가 컨텍스트 데이터 캐시 저장부에 상기 웹 애플리케이션과 관련된 컨텍스트 데이터를 저장하는 단계;
    상기 어댑터를 활성화하는 단계; 및
    상기 사용 요청에 따라 상기 웹 애플리케이션을 실행시키는 단계;를 더 포함하는 웹 애플리케이션 개발 플랫폼 제공 방법.
  6. 웹 애플리케이션 개발 플랫폼 제공 장치로부터 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크에 대응되는 컴파일 파일을 수신하고, 상기 컴파일 파일을 이용하여 상기 프레임워크를 설치하는 프레임워크 관리부;
    웹 애플리케이션에 대응되는 어셈블리 파일을 감지하고, 상기 어셈블리 파일을 이용하여 상기 프레임워크에 상기 웹 애플리케이션을 설치하는 웹 애플리케이션 제어부;
    상기 프레임워크와 연계되고, 상기 설치된 웹 애플리케이션을 관리하는 레지스터;
    상기 어셈블리 파일에 내장된 상기 웹 애플리케이션을 실행시키기 위한 파일을 추출하여 저장하는 웹 애플리케이션 리소스 저장부; 및
    상기 웹 애플리케이션과 관련된 컨텍스트 데이터를 저장하는 컨텍스트 데이터 캐시 저장부;를 포함하고,
    상기 웹 애플리케이션 제어부는,
    상기 웹 애플리케이션에 할당되는 고유의 어댑터를 이용하여 상기 웹 애플리케이션의 실행 및 설치를 위해 상기 프레임워크와 상기 웹 애플리케이션을 연결시키는 웹 서버.
  7. 사용자 장치에 웹 애플리케이션 개발 플랫폼의 사용자 인터페이스를 제공하고, 상기 사용자 장치로부터 상기 사용자 인터페이스를 통해 입력된 웹 애플리케이션의 소스 코드를 수신하는 사용자 인터페이스 제어부;
    상기 웹 애플리케이션 개발 플랫폼을 제공하기 위한 프레임워크를 관리하는 웹 애플리케이션 개발 플랫폼 관리부;
    상기 프레임워크의 소스 코드를 컴파일하여 상기 프레임워크에 대응되는 컴파일 파일을 생성하고, 상기 웹 애플리케이션의 소스 코드를 컴파일하여 상기 웹 애플리케이션에 대응되는 어셈블리 파일을 생성하는 소스 코드 컴파일러; 및
    웹 서버에 상기 프레임워크가 설치되도록 상기 프레임워크에 대응되는 컴파일 파일을 제공하고, 상기 웹 서버에 상기 웹 애플리케이션이 설치되도록 상기 어셈블리 파일을 제공하는 웹 서버 제어부;를 포함하고,
    상기 소스 코드 컴파일러는,
    상기 웹 애플리케이션에 할당되는 고유의 어댑터를 설정하고, 상기 어댑터를 포함시켜 상기 어셈블리 파일을 생성하는 웹 애플리케이션 개발 플랫폼 제공 장치.
KR1020210175126A 2021-12-08 2021-12-08 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법 KR102352265B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210175126A KR102352265B1 (ko) 2021-12-08 2021-12-08 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210175126A KR102352265B1 (ko) 2021-12-08 2021-12-08 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR102352265B1 true KR102352265B1 (ko) 2022-01-17

Family

ID=80051716

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210175126A KR102352265B1 (ko) 2021-12-08 2021-12-08 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102352265B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023171896A1 (ko) * 2022-03-08 2023-09-14 주식회사 마키나락스 개발환경을 제공하는 방법
WO2024034946A1 (ko) * 2022-08-09 2024-02-15 (주)인스웨이브시스템즈 멀티플랫폼 지원 애플리케이션 빌드 및 배포 시스템과 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172371A1 (en) * 2000-10-20 2003-09-11 Werner Offenmuller System and method for managing software applications, particularly manufacturing execution system (MES) applications
KR100889977B1 (ko) * 2001-03-30 2009-03-24 샌드체리, 인코포레이티드 응용프로그램 및 서비스 서버 관리를 위한 프로토콜독립형 제어 모듈을 이용한 매체 세션 틀
JP5727413B2 (ja) * 2012-05-08 2015-06-03 株式会社野村総合研究所 アプリケーション開発支援システムおよびアプリケーション開発支援プログラム
KR101787527B1 (ko) * 2016-03-31 2017-10-24 주식회사 티맥스 소프트 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030172371A1 (en) * 2000-10-20 2003-09-11 Werner Offenmuller System and method for managing software applications, particularly manufacturing execution system (MES) applications
KR100889977B1 (ko) * 2001-03-30 2009-03-24 샌드체리, 인코포레이티드 응용프로그램 및 서비스 서버 관리를 위한 프로토콜독립형 제어 모듈을 이용한 매체 세션 틀
JP5727413B2 (ja) * 2012-05-08 2015-06-03 株式会社野村総合研究所 アプリケーション開発支援システムおよびアプリケーション開発支援プログラム
KR101787527B1 (ko) * 2016-03-31 2017-10-24 주식회사 티맥스 소프트 다중 플랫폼 위에서 실행되는 클라이언트 애플리케이션 개발용 프레임워크를 지원하기 위한 장치 및 이를 사용한 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023171896A1 (ko) * 2022-03-08 2023-09-14 주식회사 마키나락스 개발환경을 제공하는 방법
WO2024034946A1 (ko) * 2022-08-09 2024-02-15 (주)인스웨이브시스템즈 멀티플랫폼 지원 애플리케이션 빌드 및 배포 시스템과 방법

Similar Documents

Publication Publication Date Title
CN109656538B (zh) 应用程序的生成方法、装置、系统、设备和介质
CN108287694B (zh) 应用程序构建方法、系统、计算机设备和存储介质
WO2018228211A1 (zh) 应用转换方法、装置及设备
EP3605324A1 (en) Application development method and tool, device, and storage medium thereof
US9983892B2 (en) Deep linking to mobile application states through programmatic replay of user interface events
US11249734B2 (en) Tri-affinity model driven method and platform for authoring, realizing, and analyzing a cross-platform application
KR102352265B1 (ko) 웹 애플리케이션 개발 플랫폼 제공 시스템 및 방법
US10114861B2 (en) Expandable ad hoc domain specific query for system management
US20150220308A1 (en) Model-based development
US11846972B2 (en) Method and apparatus for generating software test reports
CN111176629A (zh) 一种应用开发的方法和装置
CN112149109A (zh) 模块化权限控制管理方法及系统
CN110750243A (zh) 项目代码开发方法和系统
CN114879939A (zh) 生成微服务的方法、系统、电子设备及存储介质
CN107368339B (zh) 容器入口程序运行方法、系统、设备及存储介质
CN117112060A (zh) 组件库构建方法、装置、电子设备及存储介质
US9026997B2 (en) Systems and methods for executing object-oriented programming code invoking pre-existing objects
Kim et al. X-droid: A quick and easy android prototyping framework with a single-app illusion
CN112835568A (zh) 一种项目构建方法和装置
US11604662B2 (en) System and method for accelerating modernization of user interfaces in a computing environment
CN116166907B (zh) 一种使用WebAssembly和服务页面编译技术开发Web应用的方法及装置
CN112631563A (zh) 基于框架的系统开发方法、装置、计算机设备及存储介质
CN112445473A (zh) 客户端布局方法与装置、存储介质、电子设备
KR20130020135A (ko) 통합 개발 환경에서의 코드 동시 개발자 리스트 제공 시스템 및 방법
CN110825370A (zh) 移动端应用开发方法、装置及系统

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant