KR20180060191A - Method for sharing objectless model defined declaratively without platform constraints and apparatus thereof - Google Patents
Method for sharing objectless model defined declaratively without platform constraints and apparatus thereof Download PDFInfo
- Publication number
- KR20180060191A KR20180060191A KR1020160159398A KR20160159398A KR20180060191A KR 20180060191 A KR20180060191 A KR 20180060191A KR 1020160159398 A KR1020160159398 A KR 1020160159398A KR 20160159398 A KR20160159398 A KR 20160159398A KR 20180060191 A KR20180060191 A KR 20180060191A
- Authority
- KR
- South Korea
- Prior art keywords
- client
- model
- unit
- application
- client application
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Description
본 발명은 플랫폼의 제약 없이 선언적으로 정의된 무목적성 모델을 공유하는 방법 및 장치에 관한 것으로, 더욱 상세하게는 타입추론 언어 기반으로 선언적으로 정의된 무목적성 모델을 공유하는 애플리케이션 프레임워크를 제공하여 플랫폼의 제약 없이 하나의 모델을 공유할 수 있는 방법 및 장치에 관한 것이다.Field of the Invention The present invention relates to a method and apparatus for sharing a declaratively defined non-purpose model without constraints of a platform, and more particularly, to an application framework sharing a declaratively defined non-purpose model based on a type- The present invention relates to a method and an apparatus that can share a single model without constraint of the method.
전 세계적으로 정보 통신 기술이 발달 및 보급화됨에 따라 웹 환경과 모바일 환경에서 구동되는 다양한 플랫폼이 생겨나고 있다.As information and communication technologies are developed and popular all over the world, various platforms are being developed that operate in the web environment and the mobile environment.
이에 따라 웹과 모바일 환경 모두에서 서비스를 제공하기 위하여 소프트웨어 개발자들은 웹과 모바일 환경 모두에 대하여 각각의 애플리케이션을 개발하고 있는데, 동일하거나 거의 유사한 애플리케이션을 웹과 모바일 환경 모두에서 개발하기 위하여 불필요한 노력을 반복하고 있어 문제가 된다.In order to provide services in both web and mobile environments, software developers are developing applications for both web and mobile environments. Repeating unnecessary efforts to develop the same or nearly similar applications in both web and mobile environments And it becomes a problem.
또한, 모바일 환경이라고 하더라도, 모바일 장치가 구동되는 플랫폼 환경이 상이할 경우에는 별도로 개발해야 하는 문제점이 있다.Further, even in a mobile environment, there is a problem that the mobile environment needs to be separately developed when the platform environment in which the mobile device is driven is different.
예를 들면, 모바일 단말의 경우 대표적으로 윈도우 플랫폼, 안드로이드 플랫폼, Ios 플랫폼에서 구동되고 각각의 플랫폼은 이를 지원하는 개발 언어 또한 모두 상이하기 때문에 같은 프로그램 소스 코드를 개발하여 서로 공유하는 것이 용이하지 않다.For example, mobile terminals typically run on Windows platforms, Android platforms, and IOS platforms, and each platform has a different development language to support it, so it is not easy to develop and share the same program source code.
한편, 애플리케이션을 개발하는 데 있어 널리 활용되는 개발방법론 중 하나가 MVC(Model-View-Controller) 패턴이다.On the other hand, one of the widely used development methodologies for developing applications is the Model-View-Controller (MVC) pattern.
MVC 패턴은 소프트웨어 공학에서 사용되는 아키텍처 패턴으로서, 이 패턴을 성공적으로 사용하면 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있어 널리 적용되고 있다.The MVC pattern is an architectural pattern used in software engineering. Successful use of this pattern allows for separation of business logic from the user interface, making it easy to modify the visual elements of the application or business logic running behind it have.
여기서 모델은 애플리케이션의 데이터를 표현하고, 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타내며, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호 동작을 관리할 수 있다.Where the model represents the data of the application and the view represents user interface elements such as text, checkbox items, etc., and the controller can manage the interactions between the data and the business logic.
종래는 MVC 패턴을 적용하여 각각의 플랫폼 환경에 따른 애플리케이션을 개발하면, 각각의 플랫폼 환경에서 각각 MVC 패턴을 갖도록 구현하는 것이 일반적이다. 이러한 경우, 플랫폼 상호간의 연계에 어려움을 겪을 뿐 아니라 동일한 노력을 반복해야 되는 문제점이 있다.Conventionally, when an application according to each platform environment is developed by applying an MVC pattern, it is generally implemented to have an MVC pattern in each platform environment. In such a case, there is a problem in that it is difficult not only to interlink the platforms but also to repeat the same efforts.
따라서, MVC패턴이 각각의 플랫폼이나 개발 언어에 종속되지 않고 독자적으로 구현되고 공유됨으로써 개발 인력 및 비용을 절감할 수 있는 개발 환경이 필요한 실정이다. Therefore, it is necessary to develop a development environment that can save development manpower and cost by independently implementing and sharing MVC pattern without depending on each platform or development language.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 통합 애플리케이션 프레임워크 처리 장치를 제공하는데 있다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and it is an object of the present invention to provide an integrated application framework processing apparatus.
상기 목적을 달성하기 위한 본 발명은, 통합 애플리케이션 프레임워크 처리 장치를 제공한다.In order to achieve the above object, the present invention provides an integrated application framework processing apparatus.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 통합 애플리케이션 프레임워크 처리 장치는, 모델-뷰-컨트롤러(Model-View-Controller, MVC) 패턴을 기초로, 서버 애플리케이션 및 클라이언트 애플리케이션이 모델을 공유하여 서로 연동하도록 지원하는 통합 애플리케이션 프레임워크를 처리할 수 있다.According to an aspect of the present invention, there is provided an integrated application framework processing apparatus including: a server application and a client application that share a model based on a Model-View-Controller (MVC) You can handle an integrated application framework that supports interworking.
여기서, 통합 애플리케이션 프레임워크는, 적어도 하나의 데이터 인터페이스를 포함하는 모델부, 모델부를 공유하여, 서버 애플리케이션에서 모델부가 호환되도록 적어도 하나의 데이터 인터페이스를 변환하여 재구성하는 서버 애플리케이션 제공부 및 모델부를 공유하여, 적어도 하나의 클라이언트 애플리케이션에서 모델부가 호환되도록 적어도 하나의 데이터 인터페이스를 변환하여 재구성하는 클라이언트 애플리케이션 제공부를 포함할 수 있다.Here, the integrated application framework shares a model unit and a model unit including at least one data interface, and shares a server application providing unit and a model unit for converting and reconfiguring at least one data interface so that the model application is compatible with the server application And a client application providing unit for converting and reconfiguring the at least one data interface so that model attaching is compatible in at least one client application.
여기서, 클라이언트 애플리케이션 제공부 또는 서버 애플리케이션 제공부는, 모델부와 연동되어 적어도 하나의 데이터 인터페이스에 따른 데이터를 재정의하도록 지원할 수 있다.Here, the client application providing unit or the server application providing unit may be interworked with the model unit to support redefining data according to at least one data interface.
여기서, 적어도 하나의 클라이언트 애플리케이션은, Ios, 안드로이드 및 웹 플랫폼 중 적어도 하나에 기초하여 구현될 수 있다.Here, the at least one client application may be implemented based on at least one of Ios, Android and web platform.
여기서, 통합 애플리케이션 프레임워크는, 타입추론을 지원하고 다른 프로그래밍 언어와 공동 사용 가능한(interoperable) 프로그래밍 언어에 기반하여 구현될 수 있다.Here, the integrated application framework can be implemented based on a programming language that supports type inference and is interoperable with other programming languages.
여기서, 공동 사용 가능한 프로그래밍 언어는, 코틀린(kotlin)을 포함할 수 있다.Here, a commonly available programming language may include kotlin.
여기서, 클라이언트 애플리케이션 제공부는, 모델부의 변경 여부를 확인하여, 변경된 적어도 하나의 데이터 인터페이스를 적어도 하나의 클라이언트 애플리케이션에서 지원하는 플랫폼에 따른 데이터 인터페이스로 변환하여 재구성할 수 있다.Here, the client application providing unit may confirm whether the model unit has been changed, and reconfigure at least one changed data interface into a data interface corresponding to a platform supported by at least one client application.
여기서, 클라이언트 애플리케이션 제공부는, 재구성된 데이터 인터페이스에 따라 구현된 데이터의 변경 여부를 확인하여, 모델부에 변경 사항을 반영할 수 있다.Here, the client application providing unit may check whether the data implemented according to the reconfigured data interface is changed, and reflect the change in the model unit.
여기서, 데이터의 변경 여부는, 모델부에 포함된 적어도 하나의 데이터페이스에 따른 데이터의 추가, 삭제, 변경 중 적어도 하나를 수행하는 것을 의미할 수 있다.Here, the change of the data may mean performing at least one of adding, deleting, and changing data according to at least one data face included in the model unit.
여기서, 서버 애플리케이션 제공부는, JSON 요청 파라미터 핸들러(JSon Request Parameter Handler), JSON 응답 핸들러(JSon Response Handler) 중 적어도 하나를 지원할 수 있다.Here, the server application providing unit may support at least one of a JSON Request Parameter Handler and a JSON Response Handler.
여기서, 클라이언트 애플리케이션 제공부는, JSON 요청 파라미터 시리얼라이저(JSon Request Parameter Serializer), JSON 응답 디시리얼라이저(JSon Response Deserializer), 리액티브 리스폰스 커뮤니케이터(Reactive Response Communicator) 중 적어도 하나를 지원할 수 있다.Here, the client application providing unit may support at least one of a JSON Request Parameter Serializer, a JSON Response Deserializer, and a Reactive Response Communicator.
여기서, 클라이언트 애플리케이션 제공부는, 적어도 하나의 클라이언트 애플리케이션에 따라 별도로 구성되어, 각종 템플릿으로 이루어진 사용자 인터페이스를 제공하는 클라이언트 뷰(client view) 및 적어도 하나의 클라이언트 애플리케이션에 따라 별도로 구성되어, 클라이언트 뷰와 모델부 상호간의 메시지를 제어하는 클라이언트 콘트롤러(client controller)를 더 포함할 수 있다.Here, the client application providing unit is separately configured according to at least one client application, and is separately configured according to at least one client application and a client view that provides a user interface composed of various templates, And may further include a client controller for controlling mutual messages.
여기서, 통합 애플리케이션 프레임워크는 기록매체에 기록된 프로그램에 의해 제공될 수 있다.Here, the integrated application framework may be provided by a program recorded on a recording medium.
상기와 같은 본 발명에 따른 통합 애플리케이션 프레임워크 처리 장치를 이용할 경우에는 여러 플랫폼을 지원하는 통합 애플리케이션 개발시 모델을 공유하여 개발 인력의 중복 투자를 줄이고, 개발 편의를 도모할 수 있다.When the integrated application framework processing apparatus according to the present invention as described above is used, it is possible to reduce the redundant investment of the development worker and to improve the development convenience by sharing the model when developing integrated applications supporting various platforms.
또한, 기본 코드량이 감소하는 효과가 있을 수 있다.In addition, there may be an effect of reducing the basic code amount.
또한, 코드의 정합성이 증가할 수 있고, 코드의 응집도를 높일 수 있어 코드 점프가 10% 이상 감소할 수 있다.In addition, the coherence of the code can be increased, the degree of cohesion of the code can be increased, and the code jump can be reduced by 10% or more.
도 1은 MVC 패턴에 대한 개념도이다.
도 2는 MVC패턴이 적용된 통합 개발 애플리케이션의 개발 환경을 설명하기 위한 예시도이다.
도 3은 각각의 개발 환경에서 일반적으로 사용되는 개발 언어를 설명하기 위한 예시도이다.
도 4는 본 발명의 일실시예에 따른 통합 애플리케이션 프레임워크에 대한 제1 구성도이다.
도 5는 본 발명의 일실시예에 따른 통합 애플리케이션 프레임워크에 대한 제2 구성도이다.
도 6은 본 발명의 일실시예에 따른 통합 애플리케이션 프레임워크에 따라 구현된 애플리케이션이 탑재되는 시스템에 대한 구성도이다.1 is a conceptual diagram of an MVC pattern.
2 is an exemplary diagram illustrating a development environment of an integrated development application to which an MVC pattern is applied.
3 is an exemplary diagram for explaining a development language generally used in each development environment.
4 is a first configuration diagram of an integrated application framework according to an embodiment of the present invention.
5 is a second configuration diagram for an integrated application framework according to an embodiment of the present invention.
6 is a configuration diagram of a system in which an application implemented according to an integrated application framework according to an embodiment of the present invention is mounted.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 MVC 패턴에 대한 개념도이다.1 is a conceptual diagram of an MVC pattern.
도 1을 참조하면, MVC 패턴은 모델(Model), 뷰(View), 컨트롤러(Controller)를 포함하여 구성될 수 있다.Referring to FIG. 1, the MVC pattern may include a model, a view, and a controller.
먼저, 모델(Model)은 애플리케이션에 관한 데이터를 담고 있고, 모델의 상태에 변화가 있을 때 컨트롤러(Controller)와 뷰(View)에 이를 통보(Notification)할 수 있다. 이와 같은 통보를 통해서 뷰는 최신의 결과를 보여줄 수 있고, 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가·제거·수정할 수 있다. 어떤 MVC 구현에서는 통보 대신 뷰나 컨트롤러가 직접 모델의 상태를 읽어올 수 있다.First, the model contains data about the application and can notify the controller and the view when there is a change in the state of the model. With this notification, the view can show the latest results, and the controller can add, remove, and modify the applicable commands as the model changes. In some MVC implementations, a view or controller can read the state of the model directly instead of a notification.
컨트롤러는 모델에 명령을 보냄으로써 모델의 상태를 변경(state change)할 수 있다. 또, 컨트롤러가 뷰로부터 사용자 동작에 관한 이벤트를 받으면, 이에 따라 모델을 업데이트할 수 있고, 응답과 관련된 뷰(view selection)에 명령을 보냄으로써 모델의 표시 방법을 바꿀 수 있다.The controller can change the state of the model by sending commands to the model. Also, when the controller receives an event about a user action from a view, it can update the model accordingly, and can change the way the model is displayed by sending a command to the view selection associated with the response.
뷰는 모델로부터 정보를 얻어와(state query) 사용자가 볼 결과물을 생성할 수 있다. 사용자의 이벤트를 컨트롤러에 전달할 수 있고, 컨트롤러가 뷰를 선택하도록 할 수 있다.A view can obtain information from the model (state query) and produce results that the user will see. You can pass your events to the controller, and let the controller choose a view.
다만, 여기서의 각 구성들은 설계에 따라 변경될 수 있으며, 여기서는 예시적으로 설명된 것으로 이해되어야 한다.It should be understood, however, that each of the configurations herein may be modified according to the design, and is exemplarily described herein.
도 2는 MVC패턴이 적용된 통합 개발 애플리케이션의 개발 환경을 설명하기 위한 예시도이다. 도 3은 각각의 개발 환경에서 일반적으로 사용되는 개발 언어를 설명하기 위한 예시도이다.2 is an exemplary diagram illustrating a development environment of an integrated development application to which an MVC pattern is applied. 3 is an exemplary diagram for explaining a development language generally used in each development environment.
도 2를 참조하면, 일반적으로 여러 플랫폼을 지원하는 하나의 통합 애플리케이션 프로젝트를 개발하기 위해서는 적어도 하나 이상의 클라이언트(client)에서 동작하는 애플리케이션, 서버에서 동작하는 애플리케이션이 구성되어야 하며, 서버는 데이터베이스관리시스템(databse management system, DBMS)과 연동될 수 있다.2, in order to develop an integrated application project supporting various platforms, at least one application running on a client or an application running on a server must be configured, databse management system (DBMS).
여기서, 적어도 하나의 클라이언트에서 동작하는 애플리케이션은 모바일 장치에서 구동되는 경우, 모바일 장치에서 지원하는 플랫폼에 따라 구성될 수 있는데, 예를 들면 안드로이드 환경의 모바일 장치라면 Java및 XML(Extensible Markup Language)포맷을 이용하여 구현될 수 있고, IOS 환경의 모바일 장치라면, Objective-C나 Swift 프로그래밍 언어를 이용하여 구현될 수 있다.In this case, when an application running on at least one client is run on a mobile device, it may be configured according to a platform supported by the mobile device. For example, if the mobile device is an Android environment, Java and XML (Extensible Markup Language) And may be implemented using an Objective-C or Swift programming language if the mobile device is an IOS environment.
또한, 클라이언트가 웹 브라우져 환경에서 구동되는 장치라면, Html(HyperText Markup Language), CSS(Cascading Style Sheets), Javascript 로 구현될 수 있다.In addition, if the client is a device running in a web browser environment, it can be implemented in HTML (HyperText Markup Language), CSS (Cascading Style Sheets), and Javascript.
여기서 클라이언트 애플리케이션이 탑재되어 구동되는 장치들의 예를 들면, 통신 가능한 데스크탑 컴퓨터(desktop computer), 랩탑 컴퓨터(laptop computer), 노트북(notebook), 스마트폰(smart phone), 태블릿 PC(tablet PC), 모바일폰(mobile phone), 스마트 워치(smart watch), 스마트 글래스(smart glass), e-book 리더기, PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 디지털 카메라(digital camera), DMB(digital multimedia broadcasting) 재생기, 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), PDA(Personal Digital Assistant) 등일 수 있다.Examples of the devices on which the client application is mounted and operated include a desktop computer, a laptop computer, a notebook computer, a smart phone, a tablet PC, a mobile computer, A mobile phone, a smart watch, a smart glass, an e-book reader, a portable multimedia player (PMP), a portable game machine, a navigation device, a digital camera, a DMB digital multimedia broadcasting player, a digital audio recorder, a digital audio player, a digital video recorder, a digital video player, a PDA (Personal Digital Assistant) have.
한편, 서버에서 동작하는 애플리케이션은 일반적으로 자바(java)의 스프링 프레임워크를 이용하거나, JSON(JavaScript Object Notation) 포맷을 활용할 수도 있고, JSP(Javaserver pages)를 활용하여 구현될 수 있다.On the other hand, an application running on a server can be implemented using Java Spring Framework, JSON (JavaScript Object Notation) format, or JSP (Javaserver pages).
이처럼, 각각의 애플리케이션이 동작하는 플랫폼 또는 환경에 따라 사용되는 프로그래밍 언어 또는 포맷이 상이하므로 개발자로서는 각각의 플랫폼에 따라 개별적으로 프로젝트를 진행하여 애플리케이션을 구현하거나, 하나의 플랫폼에서 구현된 애플리케이션을 다른 플랫폼으로 이식하는 과정을 추가로 진행해야하는 문제가 있을 수 있다.As described above, since the programming language or format used differs depending on the platform or environment in which each application operates, the developer can implement the application by individually executing the project according to the respective platform, There may be a problem that the process of transplanting into the liver must be further performed.
도 3을 참조하면, 통합 애플리케이션 개발 프로젝트에 MVC 패턴이 적용되는 과정을 설명할 수 있다.Referring to FIG. 3, a process of applying an MVC pattern to an integrated application development project can be described.
통합 애플리케이션 개발에 앞에서 설명한 MVC 패턴을 적용하면, 각각의 서버(server)와 모바일(mobile), 브라우저(brower) 환경에 따라 독립적으로 모델(model), 뷰(view), 컨트롤러(controller)를 구현하는 것이 일반적이다.Applying the MVC pattern described above to the development of an integrated application, a model, a view, and a controller can be independently implemented according to each server, mobile, and browser environment. It is common.
이것은, 도 2에서와 같이 애플리케이션이 동작하는 플랫폼이 상이하고 지원하는 프로그래밍 언어 또한 상이한 점에서 기인할 수 있다.This can be attributed to the fact that the platform on which the application runs is different and the programming language it supports is also different, as in Fig.
이처럼, 개별적으로 모델, 뷰, 컨트롤러가 구현되는 경우 여러 클라이언트 애플리케이션 및 서버 애플리케이션 상호간에 독립한 모델을 사용하므로, 각 개발자마다 나누어 프로젝트를 진행하는 경우에는 상호간 모델에서 사용하는 파라미터, 리턴 타입 등을 협의해야 하는 불편이 있고, 동일한 기능을 갖는 코드를 개별적으로 구성하는 까닭에 기본 코드량이 증가하는 문제점이 있다.As described above, when a model, a view, and a controller are individually implemented, a plurality of client applications and server applications are independent of each other. Therefore, when a project is divided for each developer, parameters and return types used in the mutual models are negotiated There is a problem that the basic code amount increases because the code having the same function is individually composed.
도 4는 본 발명의 일실시예에 따른 통합 애플리케이션 프레임워크에 대한 제1 구성도이다.4 is a first configuration diagram of an integrated application framework according to an embodiment of the present invention.
도 4를 참조하면, 통합 애플리케이션 프레임워크(10)는 모델-뷰-컨트롤러(Model-View-Controller, MVC) 패턴을 기초로, 서버 애플리케이션 및 클라이언트 애플리케이션이 모델을 공유하여 서로 연동하도록 지원하는 장치에서 처리(processing)될 수 있다.Referring to FIG. 4, the
여기서, 통합 애플리케이션 프레임워크(10)는, 적어도 하나의 데이터 인터페이스를 포함하는 모델부(11), 상기 모델부를 공유하여, 서버 애플리케이션에서 상기 모델부가 호환되도록 상기 적어도 하나의 데이터 인터페이스를 변환하여 재구성하는 서버 애플리케이션 제공부(12) 및 상기 모델부(11)를 공유하여, 적어도 하나의 클라이언트 애플리케이션에서 상기 모델부(11)가 호환되도록 상기 적어도 하나의 데이터 인터페이스를 변환하여 재구성하는 클라이언트 애플리케이션 제공부(13)를 포함할 수 있다.Here, the
여기서, 서버 애플리케이션 제공부(12)는 서버 애플리케이션을 개발하는 개발자에게 제공되어 서로 다른 플랫폼 기반의 프로그래밍 언어에서도 모델부(11)가 호환될 수 있도록 할 수 있고, 클라이언트 애플리케이션 제공부(13)는 클라이언트 애플리케이션을 개발하는 개발자에게 제공되어 서로 다른 플랫폼 기반의 프로그래밍 언어에서도 모델부(11)가 호환되도록 할 수 있다.Here, the server
여기서, 적어도 하나의 데이터 인터페이스의 예를 들면 다음과 같다.Here, an example of at least one data interface is as follows.
val add = post<AddTodo, Todo>()
val edit = put<EditTodo, Todo>()
val delete = delete<UUID, Unit>()
val list = get<Unit, Array<Todo>>()
data class AddTodo(val message: String)
data class EditTodo(val id: UUID, val message: String)
data class Todo(val id: UUID, val message: String)
}class TodoRemote: Remote () {
val add = post <AddTodo, Todo> ()
val edit = put <EditTodo, Todo> ()
val delete = delete <UUID, Unit> ()
val list = get <Unit, Array <Todo >> ()
data class AddTodo (val message: String)
data class EditTodo (val id: UUID, val message: String)
data class Todo (val id: UUID, val message: String)
}
모델부(11)는 상기의 표 1과 같이 데이터 인터페이스를 가질 수 있는데, 구체적으로, 변수 add, edit, delete, list 및 클래스 AddTodo, EditTodo, Todo에 대하여 파라미터의 종류 및 타입(String, Array 등등) 등이 정의될 수 있다.The
여기서, 클라이언트 애플리케이션 제공부(13) 또는 서버 애플리케이션 제공부(12)는, 모델부(11)와 연동되어 적어도 하나의 데이터 인터페이스에 따른 데이터를 재정의하도록 지원할 수 있다. Here, the client
여기서, 서버 애플리케이션에서 재정의되는 예시는 다음과 같다.Here, an example redefined in the server application is as follows.
add { TodoRemote.Todo(UUID.randomUUID(), it.message).apply { todos += this } }
list { todos }
edit { param ->
todos = todos.map { if (it.id != param.id) it else TodoRemote.Todo(id = it.id, message = param.message) }.toTypedArray()
todos.find { it.id == param.id }!!
}
delete { id ->
todos = todos.filter { it.id != id }.toTypedArray()
}
}val remote = TodoRemote (). apply {
add {TodoRemote.Todo (UUID.randomUUID (), it.message) .apply {todos + = this}}
list {todos}
edit {param ->
(id = it.id, message = param.message)} .toTypedArray () {if (it.id! = param.id)
todos.find {it.id == param.id} !!
}
delete {id ->
todos = todos.filter {it.id! = id} .toTypedArray ()
}
}
표 1에서의 모델부(11)에 정의된 변수 add, list, edit, delete가 서버 애플리케이션 제공부(12)가 제공된 서버 애플리케이션 개발 환경에서 상기 표 2에서와 같이 재정의될 수 있고, 클라이언트 애플리케이션 개발 환경에서도 같은 방법으로 재정의될 수 있다.The variables add, list, edit, and delete defined in the
상기 적어도 하나의 클라이언트 애플리케이션은, Ios, 안드로이드 및 웹 플랫폼 중 적어도 하나에 기초하여 구현될 수 있다. 정리하면, 하나 이상의 클라이언트 애플리케이션이 서로 다른 플랫폼 환경에 따라 이를 지원하는 서로 다른 프로그래밍 언어에 따라 구현될 수 있다.The at least one client application may be implemented based on at least one of Ios, Android and a web platform. In summary, one or more client applications may be implemented according to different programming languages that support it in different platform environments.
여기서, 통합 애플리케이션 프레임워크는, 타입추론을 지원하고 다른 프로그래밍 언어와 공동 사용 가능한(interoperable) 프로그래밍 언어에 기반하여 구현될 수 있다.Here, the integrated application framework can be implemented based on a programming language that supports type inference and is interoperable with other programming languages.
여기서, 타입추론을 지원하는 프로그래밍 언어의 예로는 스위프트(swift), 코틀린(kotlin), 모던 C++, 하스켈 등이 있을 수 있다.Here, examples of programming languages that support type inference include swift, kotlin, modern C ++, Haskell, and the like.
여기서, 공동 사용 가능한 프로그래밍 언어의 예를 들면, 코틀린(kotlin)을 포함할 수 있다.Here, for example, a co-available programming language may include kotlin.
여기서, 타입추론을 지원한다는 의미는 다음과 같이 설명할 수 있다.Here, the meaning of supporting type inference can be explained as follows.
var x: Int = 1var x = 5
var x: Int = 1
코틀린으로 기재한 상기 표 3을 참조하면, var x = 5는 변수 x가 5를 통해서 int 로 기재하지 않았더라도 정수(integer)임을 추론할 수 있고, var x: Int = 1 은 int 를 명시함으로써 정수값으로 고정하여 선언할 수도 있다. Referring to Table 3 described above with respect to coordinatein, var x = 5 can be deduced to be an integer even if the variable x is not described as int through 5, and var x: Int = 1 indicates that by specifying int It can also be declared fixed by an integer value.
여기서, 다른 언어와 공동 사용 가능하다는 의미는 소스 코드 단위에서 서로 혼용하여 사용하거나 다른 언어로 변환이 가능하다는 의미일 수 있다. 구체적으로 코틀린은 소스 코드 단위에서 혼용 또는 변환이 가능한 언어로서, 본 발명에서 제시하는 모델을 공유하는 통합 애플리케이션 프레임워크의 주요 수단이 될 수 있다.Here, the meaning of common use with other languages may mean that they can be used in combination with each other in the source code unit or converted into another language. Specifically, cotlin is a language that can be mixed or transformed in a source code unit, and can be a main means of an integrated application framework sharing the model presented in the present invention.
여기서 클라이언트 애플리케이션 제공부(13)는, 상기 모델부(11)의 변경 여부를 확인하여, 변경된 적어도 하나의 데이터 인터페이스를 상기 적어도 하나의 클라이언트 애플리케이션에서 지원하는 플랫폼에 따른 데이터 인터페이스로 변환하여 재구성할 수 있다.Here, the client
여기서, 클라이언트 애플리케이션 제공부(13)는, 재구성된 데이터 인터페이스에 따라 구현된 데이터의 변경 여부를 확인하여, 상기 모델부(11)에 변경 사항을 반영할 수 있다.Here, the client
여기서, 데이터의 변경 여부는, 상기 모델부(11)에 포함된 적어도 하나의 데이터페이스에 따른 데이터의 추가, 삭제, 변경 중 적어도 하나를 수행하는 것을 의미할 수 있다.Here, whether the data is changed may mean performing at least one of adding, deleting, and changing data according to at least one data face included in the
도 5는 본 발명의 일실시예에 따른 통합 애플리케이션 프레임워크에 대한 제2 구성도이다.5 is a second configuration diagram for an integrated application framework according to an embodiment of the present invention.
도 5를 참조하면, 모델부(11)는 여러 데이터 인터페이스(data interface1, data interface2, data interface3)을 포함할 수 있다.Referring to FIG. 5, the
여기서, 서버 애플리케이션 제공부(12)는, JSON 요청 파라미터 핸들러(JSon Request Parameter Handler), JSON 응답 핸들러(JSon Response Handler) 중 적어도 하나를 지원할 수 있다.Here, the server
여기서, JSon Request Parameter Handler는 클라이언트로부터 JSON 포맷으로 요청(Request)을 받을 경우 파라미터를 분석 또는 처리하는 함수 또는 서브루틴(subroutine)을 의미할 수 있다.Here, the JSon Request Parameter Handler may mean a function or a subroutine for analyzing or processing a parameter when a request is received from the client in JSON format.
여기서, JSon Response Handler는 요청(Request)에 따른 서버의 응답을 처리하는 함수 또는 서브루틴을 의미할 수 있다.Here, the JSon Response Handler may refer to a function or a subroutine that processes a response of a server according to a request.
여기서, 상기 클라이언트 애플리케이션 제공부(13)는, JSON 요청 파라미터 시리얼라이저(JSon Request Parameter Serializer), JSON 응답 디시리얼라이저(JSon Response Deserializer), 리액티브 리스폰스 커뮤니케이터(Reactive Response Communicator) 중 적어도 하나를 지원할 수 있다.Here, the client
여기서, JSon Request Parameter Serializer는 서버에 요청을 보낼 경우 파라미터를 배열하는 처리를 하는 함수 또는 서브루틴일 수 있다.Here, the JSon Request Parameter Serializer may be a function or a subroutine that performs a process of arranging parameters when a request is sent to the server.
여기서, JSon Response Deserializer는 서버로부터 수신한 응답(Response)에서 수신한 파라미터를 처리하는 함수 또는 서브루틴일 수 있다.Here, the JSon Response Deserializer may be a function or a subroutine for processing a parameter received in a response received from the server.
여기서, Reactive Response Communicator는 클라이언트에서 직접 처리할 수 있는 기능을 지원하는 함수 또는 서브루틴일 수 있다.Here, the Reactive Response Communicator may be a function or a subroutine that supports functions that can be directly handled by the client.
여기서는 JSON 포맷을 예로 들었으나, 이것은 하나의 예시로서, 메시지 포맷은 XML을 사용할 수도 있다.We have used the JSON format as an example, but this is an example, and the message format can use XML.
또한, 클라이언트 애플리케이션 제공부(13) 또는 서버 애플리케이션 제공부(12)는 REST(Representational State Transfer) 아키텍처를 지원하도록 구성될 수 있다.In addition, the
여기서, REST는 소프트웨어 아키텍처의 하나로, 웹 상의 자료를 HTTP위에서 SOAP(Simple Object Access Protocol)나 쿠키를 통한 세션 트랙킹 등의 별도 전송 계층 없이 전송하기 위한 인터페이스를 의미할 수 있다. 예를 들면, Restful Resource Dispatcher를 포함할 수 있는데, URI를 REST 방식으로 표현하는 함수 또는 서브루틴을 의미할 수 있다.Here, REST is a software architecture and may refer to an interface for transmitting data on the web over HTTP without a separate transport layer such as Simple Object Access Protocol (SOAP) or session tracking through cookies. For example, it may contain a Restful Resource Dispatcher, which may refer to a function or subroutine that expresses a URI in a REST fashion.
여기서, 통합 애플리케이션 프레임워크를 제공하는 프로그램이 기록매체에 기록되어 제공될 수 있다.Here, a program providing an integrated application framework can be recorded and provided on a recording medium.
여기서 클라이언트 애플리케이션 제공부(13)는, 상기 적어도 하나의 클라이언트 애플리케이션에 따라 별도로 구성되어, 각종 템플릿(template)으로 이루어진 사용자 인터페이스를 제공하는 클라이언트 뷰 및 상기 적어도 하나의 클라이언트 애플리케이션에 따라 별도로 구성되어 클라이언트 뷰(client view)와 상기 모델부(11) 상호간의 메시지를 제어하는 클라이언트 콘트롤러(client controller)를 더 포함할 수 있다.Here, the client
여기서, 통합 애플리케이션 프레임워크는 프로그래밍 언어를 해석하는 과정에서 발생하는 각종 예외(Exception)를 감지하고 처리하는 예외 처리부를 포함할 수 있고, 이러한 예외 사항을 기록하는 로그 관리부(log management module)를 포함할 수도 있다. Here, the integrated application framework may include an exception processing unit for detecting and processing various exceptions generated in the process of interpreting the programming language, and may include a log management module for recording the exception It is possible.
도 6은 본 발명의 일실시예에 따른 통합 애플리케이션 프레임워크에 따라 구현된 애플리케이션이 탑재되는 시스템에 대한 구성도이다.6 is a configuration diagram of a system in which an application implemented according to an integrated application framework according to an embodiment of the present invention is mounted.
도 6을 참조하면, 본 발명에 따른 통합 애플리케이션 프레임워크로 구현된 시스템은 클라이언트(client)와 네트워크를 통해 연결된 서버(server)를 포함하여 구성될 수 있으며, 서버에는 데이터베이스가 추가로 포함될 수 있다.Referring to FIG. 6, a system implemented by an integrated application framework according to the present invention may include a server connected to a client through a network, and a database may additionally be included in the server.
또한, 클라이언트는 각각의 지원 플랫폼에 따라 Ios 환경 또는 안드로이드 환경에서 구동되는 모바일 클라이언트가 있을 수 있고, 윈도우 환경에서 구동되는 클라이언트가 있을 수 있다.In addition, the client may have a mobile client running in an IOS environment or an Android environment depending on each supported platform, and there may be a client running in a Windows environment.
여기서 각각의 클라이언트는 서버와 상호 요청(request)과 응답(response)을 주고 받으며 탑재된 애플리케이션을 구동하게 되는데, 여기서, 탑재된 애플리케이션은 통합 애플리케이션 프레임워크에 따라 구현되므로, 서로 간에 모델을 공유할 수 있다.Here, each client sends and receives a request and a response to the server and runs the mounted application, where the mounted application is implemented according to the integrated application framework, so that the model can be shared with each other have.
따라서, 공유된 모델을 통하여 상호 동작하므로, 데이터 연계가 쉽게 이루어질 수 있다.Therefore, data interoperability can be easily achieved because they interact with each other through the shared model.
본 발명에 따른 통합 애플리케이션 프레임워크 처리 장치에 따라 구현된 CRUD (Create(생성), Read(읽기), Update(갱신), Delete(삭제))코드를 일반적으로 사용되는 스프링 프레임워크(spring framework)에서 구현된 코드와 비교하면, 10% 이상의 기본 코드량이 감소하는 효과가 있을 수 있다.The CRUD (Create, Read, Update, Delete) codes implemented in accordance with the integrated application framework processing apparatus according to the present invention are stored in a commonly used spring framework Compared with the implemented code, it can be effective to reduce the basic code amount by more than 10%.
여기서, 기본 코드량은 하나의 모듈 단위가 작성되는 경우 기본적으로 필요한 코드의 절대적 양을 의미할 수 있다.Here, the basic code amount can mean an absolute amount of code that is basically necessary when one module unit is created.
여기서, 스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로서, 스프링으로 지칭될 수도 있으며, 동적인 웹 사이트 개발을 위하여 관점 지향 프로그래밍(Aspect Oriented programming, AOP)를 지원하고, 컨테이너를 통해 라이프사이클을 관리할 수 있으며, XML 기반으로 컴포넌트를 개발할 수 있도록 지원하는 프레임워크일 수 있다.Here, the Spring Framework is an open source application framework for the Java platform, which may be referred to as Spring, supports Aspect Oriented Programming (AOP) for dynamic website development, And can be a framework for supporting the development of components based on XML.
또한, 본 발명의 일실시예에 따른 통합 프레임워크 처리 장치를 이용할 경우 하나의 모델을 공유하므로 통합 애플리케이션이 구성될 때 코드의 정합성이 틀어지는 비율(fragile point)이 10% 이상 감소할 수 있다.In addition, when an integrated framework processing apparatus according to an embodiment of the present invention is used, since a single model is shared, the fragile point of code integrity can be reduced by 10% or more when an integrated application is constructed.
또한, 본 발명의 일실시예에 따른 통합 프레임워크 처리 장치를 이용할 경우 명시적인 파일 형태로 구분하는 물리적 분리가 아니라, MVC 패턴에 따라 모델을 공유하는 논리적 분할로 구현되므로, 코드의 응집도를 높일 수 있어 코드 점프가 10% 이상 감소할 수 있다.In addition, when the integrated framework processing apparatus according to an embodiment of the present invention is used, it is implemented as a logical division that shares a model according to an MVC pattern, not a physical division to divide into an explicit file form. The code jump can be reduced by 10% or more.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.The methods according to the present invention can be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention or may be available to those skilled in the computer software.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable media include hardware devices that are specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.Also, the above-described method or apparatus may be implemented by combining all or a part of the configuration or function, or may be implemented separately.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that
Claims (12)
상기 통합 애플리케이션 프레임워크는,
적어도 하나의 데이터 인터페이스를 포함하는 모델부;
상기 모델부를 공유하여, 서버 애플리케이션에서 상기 모델부가 호환되도록 상기 적어도 하나의 데이터 인터페이스를 변환하여 재구성하는 서버 애플리케이션 제공부; 및
상기 모델부를 공유하여, 적어도 하나의 클라이언트 애플리케이션에서 상기 모델부가 호환되도록 상기 적어도 하나의 데이터 인터페이스를 변환하여 재구성하는 클라이언트 애플리케이션 제공부를 포함하는, 통합 애플리케이션 프레임워크 처리 장치.1. A processing device of an integrated application framework that supports server and client applications to share models and interact with each other based on a Model-View-Controller (MVC) pattern,
The integrated application framework includes:
A model unit including at least one data interface;
A server application providing unit for sharing the model unit and converting and reconfiguring the at least one data interface so that the model unit is compatible with the server application; And
And a client application providing unit that shares the model unit and converts and reconfigures the at least one data interface so that the model unit is compatible in at least one client application.
상기 클라이언트 애플리케이션 제공부 또는 서버 애플리케이션 제공부는,
상기 모델부와 연동되어 상기 적어도 하나의 데이터 인터페이스에 따른 데이터를 재정의하도록 지원하는, 통합 애플리케이션 프레임워크 처리 장치.The method according to claim 1,
The client application providing unit or the server application providing unit,
And in association with the model unit, to redefine data according to the at least one data interface.
상기 적어도 하나의 클라이언트 애플리케이션은,
Ios, 안드로이드 및 웹 플랫폼 중 적어도 하나에 기초하여 구현되는, 통합 애플리케이션 프레임워크 처리 장치.The method according to claim 1,
Wherein the at least one client application comprises:
Ios, Android, and web platform.
상기 통합 애플리케이션 프레임워크는,
타입추론을 지원하고 다른 프로그래밍 언어와 공동 사용 가능한(interoperable) 프로그래밍 언어에 기반하여 구현되는, 통합 애플리케이션 프레임워크 처리 장치.The method according to claim 1,
The integrated application framework includes:
And is implemented based on a programming language that supports type inference and is interoperable with other programming languages.
상기 공동 사용 가능한 프로그래밍 언어는,
코틀린(kotlin)을 포함하는, 통합 애플리케이션 프레임워크 처리 장치.The method of claim 4,
The co-usable programming language comprising:
An integrated application framework processing device, including kotlin.
상기 클라이언트 애플리케이션 제공부는,
상기 모델부의 변경 여부를 확인하여, 변경된 적어도 하나의 데이터 인터페이스를 상기 적어도 하나의 클라이언트 애플리케이션에서 지원하는 플랫폼에 따른 데이터 인터페이스로 변환하여 재구성하는, 통합 애플리케이션 프레임워크 처리 장치. The method according to claim 1,
The client application providing unit,
Confirms whether or not the model unit is changed, and converts the changed at least one data interface into a data interface according to a platform supported by the at least one client application, and reconfigures the data interface.
상기 클라이언트 애플리케이션 제공부는,
재구성된 데이터 인터페이스에 따라 구현된 데이터의 변경 여부를 확인하여, 상기 모델부에 변경 사항을 반영하는, 통합 애플리케이션 프레임워크 처리 장치.The method according to claim 1,
The client application providing unit,
Confirms whether data implemented according to the reconfigured data interface has been changed, and reflects the change to the model unit.
상기 데이터의 변경 여부는,
상기 모델부에 포함된 적어도 하나의 데이터페이스에 따른 데이터의 추가, 삭제, 변경 중 적어도 하나를 수행하는 것을 의미하는, 통합 애플리케이션 프레임워크 처리 장치.The method of claim 7,
Whether or not the data is changed,
Means to perform at least one of adding, deleting, and changing data according to at least one data face included in the model unit.
상기 서버 애플리케이션 제공부는,
JSON 요청 파라미터 핸들러(JSon Request Parameter Handler), JSON 응답 핸들러(JSon Response Handler) 중 적어도 하나를 지원하는, 통합 애플리케이션 프레임워크 처리 장치.The method according to claim 1,
The server application providing unit,
A JSON Request Parameter Handler, and a JSON Response Handler. ≪ Desc / Clms Page number 12 >
상기 클라이언트 애플리케이션 제공부는,
JSON 요청 파라미터 시리얼라이저(JSon Request Parameter Serializer), JSON 응답 디시리얼라이저(JSon Response Deserializer), 리액티브 리스폰스 커뮤니케이터(Reactive Response Communicator) 중 적어도 하나를 지원하는, 통합 애플리케이션 프레임워크 처리 장치.The method according to claim 1,
The client application providing unit,
An integrated application framework processor supporting at least one of a JSON Request Parameter Serializer, a JSON Response Deserializer, and a Reactive Response Communicator.
상기 클라이언트 애플리케이션 제공부는,
상기 적어도 하나의 클라이언트 애플리케이션에 따라 별도로 구성되어, 각종 템플릿으로 이루어진 사용자 인터페이스를 제공하는 클라이언트 뷰(client view); 및
상기 적어도 하나의 클라이언트 애플리케이션에 따라 별도로 구성되어, 상기 클라이언트 뷰와 상기 모델부 상호간의 메시지를 제어하는 클라이언트 콘트롤러(client controller)를 더 포함하는, 통합 애플리케이션 프레임워크 처리 장치.The method according to claim 1,
The client application providing unit,
A client view separately configured according to the at least one client application and providing a user interface composed of various templates; And
Further comprising a client controller separately configured according to the at least one client application to control a message between the client view and the model unit.
상기 통합 애플리케이션 프레임워크를 제공하는 프로그램이 기록된 기록매체.The method according to claim 1,
And a program for providing the integrated application framework.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160159398A KR20180060191A (en) | 2016-11-28 | 2016-11-28 | Method for sharing objectless model defined declaratively without platform constraints and apparatus thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160159398A KR20180060191A (en) | 2016-11-28 | 2016-11-28 | Method for sharing objectless model defined declaratively without platform constraints and apparatus thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180060191A true KR20180060191A (en) | 2018-06-07 |
Family
ID=62621541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160159398A Ceased KR20180060191A (en) | 2016-11-28 | 2016-11-28 | Method for sharing objectless model defined declaratively without platform constraints and apparatus thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20180060191A (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003067185A (en) * | 2001-08-14 | 2003-03-07 | Internatl Business Mach Corp <Ibm> | Application editing device and data processing method and program |
KR20090000199A (en) * | 2007-01-30 | 2009-01-07 | 에스케이커뮤니케이션즈 주식회사 | Web server application framework, web application processing method using the framework, and computer readable recording medium capable of implementing the same |
JP2010003241A (en) * | 2008-06-23 | 2010-01-07 | Asada Takayuki | Application system development method, and framework and application system using it |
KR20100080825A (en) * | 2007-09-28 | 2010-07-12 | 엑세리온 악티에볼라그 | Network operating system |
-
2016
- 2016-11-28 KR KR1020160159398A patent/KR20180060191A/en not_active Ceased
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003067185A (en) * | 2001-08-14 | 2003-03-07 | Internatl Business Mach Corp <Ibm> | Application editing device and data processing method and program |
KR20090000199A (en) * | 2007-01-30 | 2009-01-07 | 에스케이커뮤니케이션즈 주식회사 | Web server application framework, web application processing method using the framework, and computer readable recording medium capable of implementing the same |
KR20100080825A (en) * | 2007-09-28 | 2010-07-12 | 엑세리온 악티에볼라그 | Network operating system |
JP2010003241A (en) * | 2008-06-23 | 2010-01-07 | Asada Takayuki | Application system development method, and framework and application system using it |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11861334B2 (en) | Providing communication between a client system and a process-based software application | |
US11762634B2 (en) | Systems and methods for seamlessly integrating multiple products by using a common visual modeler | |
US11816492B2 (en) | Third party integration of plugins and widgets | |
US11042387B2 (en) | Deploying cross-platform applications on mobile devices with native and web components | |
US10026041B2 (en) | Interoperable machine learning platform | |
JP6129153B2 (en) | Method and system for providing a state model of an application program | |
CN102495735A (en) | Web end UI (user interface) component application frame system | |
EP3156919A1 (en) | Methods for transforming a server side template into a client side template and devices thereof | |
US20250047735A1 (en) | System and Method to Standardize and Improve Implementation Efficiency of User Interface Content | |
CN113094039B (en) | Automatic code generation system based on database table | |
WO2023078053A1 (en) | Code generation method and apparatus, and computer device and storage medium | |
CN113778405A (en) | Cross-platform APP construction method, device, system and medium | |
Benouda et al. | Automatic code generation within MDA approach for cross-platform mobiles apps | |
CN114996619A (en) | Page display method and device, computer equipment and storage medium | |
CN112035112A (en) | Application program development method, system, medium and electronic device | |
EP3080692B1 (en) | User interface framework | |
Lachgar et al. | Modeling and generating native code for cross-platform mobile applications using DSL | |
Hsu | Extending UML to model Web 2.0‐based context‐aware applications | |
US20110321022A1 (en) | Code generation through metadata programming for mobile devices and web platforms to ease access to web services | |
CN112631563A (en) | System development method and device based on framework, computer equipment and storage medium | |
CN116225419A (en) | Code-free development method, device, storage medium and equipment for back-end transaction processing | |
KR20180060191A (en) | Method for sharing objectless model defined declaratively without platform constraints and apparatus thereof | |
KR20250082251A (en) | Integrated application framework processing method and device for developing apps without platform restrictions | |
CN106663007B (en) | Method for operating tool in working environment and machine using the method | |
CN117519691B (en) | Application processing method, device, computer equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20161128 |
|
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20171121 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20161128 Comment text: Patent Application |
|
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20190313 Patent event code: PE09021S01D |
|
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20190520 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20190313 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |