KR101062273B1 - 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체 - Google Patents

서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체 Download PDF

Info

Publication number
KR101062273B1
KR101062273B1 KR1020080070661A KR20080070661A KR101062273B1 KR 101062273 B1 KR101062273 B1 KR 101062273B1 KR 1020080070661 A KR1020080070661 A KR 1020080070661A KR 20080070661 A KR20080070661 A KR 20080070661A KR 101062273 B1 KR101062273 B1 KR 101062273B1
Authority
KR
South Korea
Prior art keywords
module
application
information
configuration
setting
Prior art date
Application number
KR1020080070661A
Other languages
English (en)
Other versions
KR20100009848A (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 KR1020080070661A priority Critical patent/KR101062273B1/ko
Publication of KR20100009848A publication Critical patent/KR20100009848A/ko
Application granted granted Critical
Publication of KR101062273B1 publication Critical patent/KR101062273B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 서버측에서 자바스크립트 어플리케이션 모듈을 구성하여 클라이언트에 제공하도록 하여 독립성을 높이고 처리 속도를 높일 수 있도록 한 서버측 자바스크립트 어플리케이션 프레임워크와 상기 프레임워크를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체에 관한 것으로, 서버측에 어플리케이션 구성에 필요한 모듈을 별도 파일로 구비하고, 어플리케이션 설정에 따라 서버에서 모듈을 조립하여 클라이언트에 전송하여 자바스크립트 어플리케이션이 실행되도록 함으로써, 객체지향 특성을 높이고 속도를 높일 수 있어 웹 어플리케이션의 개발 및 실행 환경을 획기적으로 개선할 수 있는 효과가 있다.
Figure R1020080070661
자바스크립트, 서버, 프레임워크, 어플리케이션, 모듈 구성

Description

서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체{SERVER SIDE JAVA SCRIPT APPLICATION FRAMEWORK APPARATUS, APPLICATION COMPOSITION METHOD USING THE FRAMEWORK APPARATUS AND COMPUTER READABLE MEDIUM PROCESSING THE METHOD}
본 발명은 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법에 관한 것으로, 특히 서버측에서 자바스크립트 어플리케이션 모듈을 구성하여 클라이언트에 제공하도록 하여 독립성을 높이고 처리 속도를 높일 수 있도록 한 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체에 관한 것이다.
급속하게 발전하고 있는 인터넷 커뮤니티는 포털로 대변되는 일방적인 정보 제공의 웹 형태에서 인터넷으로 연결된 모든 웹사이트에서의 고객 참여와 공유를 이끌어 내고, 재생산된 자원의 공유가 가능한 환경을 제공하도록 하는 웹2.0의 형태로 빠르게 전환되고 있다. 이러한 웹2.0의 시대에 접어들면서 웹을 플랫폼으로 간주하는 다양한 웹 어플리케이션들이 등장하게 되었다. 특히 RIA(Rich Internet Application)의 수요가 급증하면서 기존의 데스크탑 어플리케이션과 유사한 기능을 가지는 웹 어플리케이션이 점차 일반화 되어가고 있다.
이러한 다양한 기능과 화려한 인터페이스의 웹 어플리케이션의 수요가 급증함에 따라 그동안 웹 클라이언트에서 동적인 요소를 제공하기 위해 사용되었던 자바스크립트의 비중 역시 커지고 있다.
하지만, 기존의 웹 클라이언트에서 사용되던 자바스크립트는 단순한 동적 효과를 제공하는 라이브러리의 측면이 강조된 것으로, 이를 이용하여 복잡한 웹 어플리케이션을 개발하기 위해서는 방대한 순차적 프로그래밍이 요구되게 된다. 실질적으로, 자바스크립트는 웹 브라우저가 실행하는 스크립트 언어로서, 그 규격은 자바의 규격과 유사하지만 하이퍼텍스트 생성 언어(HTML) 문서를 작성하는 수준의 사용자가 사용하는 것에 주안점을 두어 개발되었기 때문에 자바와는 달리 다양한 변수의 형 및 클래스, 상속 등을 사용할 수 없어 객체지향 특성이 부족한 특징이 있다. 따라서, 다양한 분야의 개발이 서로 연관되는 복잡한 웹 어플리케이션 개발의 특성상 각 담당 분야별로 각각 원하는 기능을 수행하는 모듈을 개별하여 통합하는 방식이 선호되지만, 자바스크립트를 이용한 웹어플리케이션 개발에서는 이러한 방식을 적용하기 어렵다는 문제점이 발생된다. 즉, 이러한 분업 개발의 경우 각 모듈의 상호 의존도가 낮을수록 개발 효율이 높아지게 되지만, 자바스크립트를 이용하는 경 우에는 모듈들의 상호 의존도가 높아져 분업이 곤란하다.
또한, 자바스크립트는 웹 페이지의 내부에 태그 형식으로 적용되어 이를 브라우저가 해석하여 대응 기능을 수행하는 방식을 취하고 있기 때문에 웹 페이지 종속적인 코딩이 불가피하다. 즉, 코드의 재사용이 어려워 개발 시간이 오래 걸리게 된다.
도 1은 일반적인 자바스크립트 코드를 적용한 웹페이지의 예로서, 도시한 바와 같이 하나의 웹페이지(10)는 자바스크립트 코드 영역(11)과 웹 디자인 코드 영역(12)으로 구분되어 기술되며, 경우에 따라서는 자바스크립트 코드들을 라이브러리 형태로 별도 구축하고, 원하는 기능을 가지는 자바스크립트 코드 파일들(13, 14)을 링크하여 사용하기도 한다.
하지만 상기 자바스크립트 코드 영역(11)에 직접 자바스크립트 코드를 기입하는 경우는 물론이고 별도 저장된 자바스크립트 코드 파일들(13, 14)을 상기 자바스크립트 코드 영역(11)에 링크하는 방식을 이용하는 경우라 할지라도 해당 웹페이지에 따른 변수들을 설정해 주어야 하기 때문에 웹 페이지에 종속적인 상태가 되어 해당 코드를 재활용하거나 범용적으로 적용하는 것이 어렵다. 따라서, 단순히 자바스크립트 코드를 기능별로 모아놓은 라이브러리의 사용으로는 웹디자인 코드와 분리된 객체지향적 프로그래밍은 기대하기 어렵다.
도 2는 상기와 같은 문제점을 개선하기 위해서 최근 등장한 자바스크립트 프레임워크의 예를 보인 것으로 이를 통해 객체지향적 특징을 일부 구현할 수 있게 되었다.
도시한 바와 같이 자바스크립트 코드(21)와 웹 디자인 코드(22)를 포함하는 웹 페이지(20)와, 이러한 웹 페이지(20)를 웹 브라우저를 통해 해석하여 실행하고자 할 경우 기반 기능을 제공하기 위해 적용되는 프레임워크(40) 및, 이러한 프레임워크(40)를 이용한 동적 프로그램을 보다 객체 지향적이고 재활용성이 높게 사용할 수 있도록 상기 웹페이지(20)와 별도의 파일로 기술한 XML 컨텍스트(30)로 이루어진다. 상기 프레임워크(40)는 크게 라이브러리(41) 부분과 클래스 패키지 부분(42)으로 구분될 수 있다. 여기서, 상기 웹 브라우저(혹은, 인터넷 브라우저)는 클라이언트 측에서 인터넷 상의 데이터를 표시하는 기능을 가지는 것을 의미한다.
즉, 도시된 종래의 자바스크립트 프레임워크(40)는 클라이언트 측 웹브라우저에 설치되어 수신되는 웹페이지(20)와 XML 컨텍스트(30)를 통해 정의된 어플리케이션을 클라이언트 측에서 수행하는 것을 기본 개념으로 하는 것이다. 다시 말해서 어플리케이션의 실행을 위해서는 완전한 형태의 자바스크립트 어플리케이션이 클라이언트에 로드되고 초기화된 후 수행되는데, 어플리케이션의 모듈화를 위해서는 이러한 어플리케이션의 초기화 과정에서 클라이언트 측(즉, 웹브라우저)에 설치된 프레임워크(40)가 XML 컨텍스트(30)를 근거로 어플리케이션의 초기화 설정을 수행하는 복잡한 과정이 필요하기 때문에 속도가 크게 느려진다. 한편, 성능이 균일하지 않고 서버에 비해 기능이 부족한 클라이언트에서 수행되는 작업이 많기 때문에 어플리케이션을 복잡하게 모듈화하기 어려워 모듈의 독립성에 한계를 가질 수밖에 없다.
도 3은 종래 프레임워크가 구성된 웹 브라우저의 예를 보인 것으로, 도시한 바와 같이 웹브라우저(50)가 제공하는 표시화면(51)에는 내부적으로 인터페이스를 위한 스크롤뷰, 그림이나 버튼들과 같은 표시 내용들이 포함되며, 이러한 표시 내용을 제공하기 위한 웹디자인 코드 파일, HTML 요소들에 대한 동작들을 정의하기 위한 XML 컨텍스트 파일 및 상기 XML 컨텍스트 파일에 대한 구조적 정의를 포함하는 XML DTD 파일(52)이 필요하게 된다. 이때, 상기 웹 디자인 코드 파일에는 프레임워크를 구성하는 복수의 자바스크립트 라이브러리 파일들(53)을 로드하는 부분이 포함되어 상기 표시 화면(51)의 우측에 도시된 프레임워크(54)를 사용할 수 있게 된다.
도시된 프레임워크(54)는 웹서버(70)와 데이터를 주고 받기 위한 Ajax 컴포넌트, 윈도우 관련 클래스나 확장 컴포넌트를 제공하는 윈도우 컴포넌트, 웹 디자인 코드의 요소에 대한 이벤트 발생을 처리하는 이벤트 리스너, XML 파일의 구성을 관리하도록 하는 XML DOM 등을 포함할 수 있다. 물론, 이러한 내용 외에 클래스를 정의하는 부분이나 메세지를 처리하는 부분 및 인스턴스를 처리하는 부분이 필요할 수 있다.
즉, 클라이언트 측 웹브라우저(50) 내부에 프레임워크(54)를 구성하고, 필요한 자바스크립트 라이브러리를 웹디자인 코드가 로드하도록 하며, XML 컨텍스트 및 XML DTD 파일을 통해 실제 표시화면(51)에 제공되는 HTML 요소들에 대한 클래스 정의 및 인스턴스 생성에 의한 연결을 상기 프레임워크(54)를 활용하도록 하는 형태로서, 모든 작업이 웹브라우저(50)에서 수행되게 된다. 한편, 실제 표시되는 HTML 요소들을 객체지향적으로 표현하기 위해서는 가능한 프레임워크(54)의 윈도우 컴포 넌트를 활용하여 상기 XML 컨텍스트 파일에서 대응되는 표현 요소들의 시각적 효과를 정의하고 이벤트 발생에 대한 처리 방식을 설정하는 등의 작업이 이루어져야 한다. 즉, 이러한 클라이언트의 웹브라우저에 프레임워크(54)를 적용한 후, 객체 지향적 프로그래밍을 위해서 XML 컨텍스트가 프레임워크의 각 컴포넌트 및 각 표현 요소(모듈)를 세밀하게 구분하여 각각에 대한 설정을 해 주어야하므로 처리 속도가 늦어지게 된다. 따라서 컴포넌트나 표현 요소들이 독립성을 가지도록 세밀하게 구분하기 어려우며 모듈 간 의존성이 상당하여 개발이나 변경 등 관리가 어렵게 된다.
결론적으로, 클라이언트측에서 수행되는 프레임워크는 성능을 유지하면서 객체 지향 특성을 높이는데 한계가 있어 모듈간 의존도가 높아 유지 보수가 어렵고, 초기화 과정이나 동작 과정이 복잡하며 이러한 과정이 완전히 클라이언트 측에서 수행되어야 하기 때문에 속도가 느려 전체적인 성능에 제한이 발생하게 된다.
실질적으로 사용자들은 웹 상에서 데스크탑 어플리케이션에 근접하는 수준의 어플리케이션을 원하고 있기 때문에 이러한 사용자들의 요구를 수용하기 위해서는 기존의 클라이언트측 프레임워크 만으로는 한계가 있다.
상기와 같은 종래의 자바스크립트 프레임워크 구성에 따른 객체지향 특성의 제한과 유지 보수의 어려움 및 복잡한 동작 방식에 의한 성능 제한을 개선하기 위해 새롭게 제안하는 본 발명 실시예들의 목적은 서버측에 어플리케이션 구성에 필요한 모듈을 별도 파일로 구비하고, 어플리케이션 설정에 따라 서버에서 모듈을 조립하여 클라이언트에 전송하여 자바스크립트 어플리케이션이 실행되도록 함으로써, 객체지향 특성을 높이고 속도를 높일 수 있도록 한 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
본 발명 실시예들의 다른 목적은 모듈베이스 클래스로부터 상속받은 플러그인, 필터, 컴포넌트를 이용하여 모듈을 구성하며, 각 모듈 내부에 코드와 설정 및 리소스가 포함되도록 하여 실제 어플리케이션 설정 시에는 필요한 모듈만 선택할 수 있도록 함으로써, 모듈이나 어플리케이션 설정에 대한 독립적 작성, 재활용은 물론이고 오픈 프로젝트 개발도 가능할 정도의 객체 지향성을 얻을 수 있도록 한 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
본 발명 실시예들의 또 다른 목적은 어플리케이션에 기능을 추가, 변경, 삭제할 경우 모듈을 필요 모듈만 개발하고 어플리케이션 설정을 위한 XML에서만 이를 설정하는 것으로 용이하게 처리할 수 있도록 하며, 어플리케이션 관리가 서버에 일괄적으로 수행할 수 있도록 하여 어플리케이션 관리가 편리하도록 한 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
본 발명 실시예들의 또 다른 목적은 어플리케이션 구성에 필요한 모듈을 서버에서 구성하고 어플리케이션 설정 또한 서버에서 실시하게 되므로 초기화 성능이나 동작 성능에 구애받지 않고 각 모듈 간 의존도를 최소화하고, 어플리케이션 설정을 서버에서 실시하는 과정에서 서버 변수나 코드를 활용하도록 한 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
본 발명 실시예들의 또 다른 목적은 클라이언트에 제공할 데이터를 통합하여 전송 정보를 줄이도록 하는 것으로 트래픽을 감소시키고, 어플리케이션 기동 속도가 빨라지도록 한 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 서버측 자바스크립트 어플리케이션 프레임워크 장치는 자바스크립트 코드와 설정 정보 및 뷰 정보가 포함된 모듈이 별도 저장된 모듈 라이브러리와; 상기 모듈 라이브러리의 모듈 중 어플리케이션 구성을 위한 모듈들의 정보와 상기 모듈들 간의 관계에 대한 설정 정보 및 뷰 정의 정보가 포함된 어플리케이션 설정 정보 파일과; 상기 어플리케이션 설정 정보 파일을 해석하여 클라이언트에 제공할 설치 모듈 목록과 모듈 구성 정보 및 어플리케이션 뷰 정보를 생성하는 어플리케이션 구성부를 포함하여 이루어진다.
상기 모듈은 모듈의 정의와 설정 정보 및 모듈 뷰 정보를 포함하는 XML 모듈 설정 정보와 상기 모듈의 실행에 필요한 리소스를 포함하도록 구성된다.
상기 어플리케이션 설정 정보 파일은 설치 모듈 정보와 모듈 간 관계 정의 정보와 어플리케이션 뷰 정의 정보를 포함하는 XML 파일이다.
상기 어플리케이션 구성부는 상기 어플리케이션 설정 정보 파일을 해석하는 어플리케이션 설정 해석부와; 상기 어플리케이션 설정 정보 파일을 해석한 상기 어플리케이션 설정 해석부가 제공하는 설치 모듈에 대한 목록을 작성하는 설치 모듈 목록 작성부와; 상기 어플리케이션 설정 정보 파일을 해석한 상기 어플리케이션 설정 해석부가 제공하는 모듈 간 설정 정보를 각 모듈에 포함된 모듈 설정 정보를 토대로 분석하여 모듈 구성 및 초기화 정보를 텍스트 포맷 정보로 생성하는 모듈 구성정보 생성부와; 상기 어플리케이션 설정 정보 파일을 해석한 상기 어플리케이션 설정 해석부가 제공하는 어플리케이션 뷰 정의에 따라 상기 모듈에 포함된 뷰 정보를 이용하여 어플리케이션 뷰를 생성하는 어플리케이션 뷰 생성부를 포함하여 이루 어질 수 있다.
또한, 본 발명의 실시예에 따른 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법은 어플리케이션 구성을 위한 단위 기능이 자바스크립트 코드로 구현된 모듈을 모듈 설정 정보를 포함하도록 생성하여 별도 파일로 저장하는 모듈 생성 단계와; 어플리케이션 구성을 위한 모듈들의 정보와 모듈 간 관계에 대한 설정 정보 및 뷰 정의 정보를 XML 포맷의 어플리케이션 설정 정보로 생성하는 어플리케이션 생성 단계와; 상기 어플리케이션 설정 정보를 통해 해당 어플리케이션의 실행에 필요한 모듈 목록을 추출하고 상기 추출된 모듈간 관계 정보와 어플리케이션 뷰 정보를 생성하는 어플리케이션 구성 단계와; 상기 추출된 모듈 목록 정보와 상기 생성된 모듈간 관계 정보 및 어플리케이션 뷰 정보를 클라이언트에 전송하는 어플리케이션 전송 단계를 포함하여 이루어진다.
상기 어플리케이션 구성 단계는 상기 어플리케이션 생성 단계에서 생성된 어플리케이션 설정 정보를 통해 설치 모듈을 추출하여 클라이언트에 전송할 목록을 생성하는 목록 생성 단계와; 상기 설치 모듈에 포함된 모듈 설정 정보와 상기 어플리케이션 설정 정보에 포함된 모듈간 관계 정보를 통해 클라이언트에 전송할 모듈의 설정 및 초기화 정보를 생성하는 모듈 구성 정보 생성 단계와; 상기 어플리케이션 설정 정보에 포함된 어플리케이션 뷰 정보를 분석하여 클라이언트에 전송할 HTML 정보를 생성하는 어플리케이션 뷰 정보 생성 단계를 포함할 수 있다.
상기 모듈 생성 단계는 상기 모듈의 기능을 제공하기 위한 모듈 뷰 정보와 이를 표현하기 위한 리소스 정보를 포함시켜 모듈을 생성하는 단계를 더 포함할 수 있다.
상기 어플리케이션 구성 단계는 모듈간 관계 정보를 JSON(Javascript Object Notation) 포맷으로 생성하는 것이 바람직하다.
또한, 본 발명의 실시예에 따른 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법은 단일 클래스에서 상속받은 플러그인, 필터, 컴포넌트 클래스 중 하나를 상속받아 단위 기능을 수행하도록 작성된 자바스크립트코드와 모듈 뷰 정보 및 리소스를 가지는 모듈을 생성하여 서버 상에 라이브러리로 저장하는 단계와; 어플리케이션 구성에 필요한 모듈 정보와 컴포넌트의 플러그인 포함 설정이나 컴포넌트와 플러그인의 필터를 지정하는 모듈 간 관계 정의 정보 및 어플리케이션 뷰 정보를 XML 파일로 정의한 어플리케이션 설정 정보를 생성하여 서버 상에 저장하는 단계와; 상기 어플리케이션 설정 정보를 서버에서 해석하여 필요 모듈 목록을 작성하고, 모듈 간 관계 정의를 분석하여 모듈 구성 및 초기화 정보를 JSON 포맷으로 생성하며 모듈 뷰와 리소스를 상기 어플리케이션 설정 정보의 어플리케이션 뷰 정보에 따라 HTML 파일로 구성하는 단계와; 상기 구성된 모듈 목록과 JSON 포맷 정보 및 HTML 파일을 어플리케이션 실행 정보로서 클라이언트에 제공하는 단계를 포함한다.
상기 모듈은 플러그인 모듈, 필터 모듈 또는 플러그인과 필터 모듈이 포함된 컨테이너로 기능하는 컴포넌트 모듈로 이루어진다.
또한, 본 발명의 또 다른 실시예에 따른 기록 매체는 전술한 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성을 수행하는 프로그램이 수록된다.
이러한 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있도록 프로그램 및 데이터가 저장되는 모든 종류의 기록매체를 포함한다. 그 예로는, 롬(Read Only Memory), 램(Random Access Memory), CD(Compact Disk), DVD( Digital Video Disk)-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 케리어 웨이브(예를 들면, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한, 이러한 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
본 발명 실시예에 따른 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체는 서버측에 어플리케이션 구성에 필요한 모듈을 별도 파일로 구비하고, 어플리케이션 설정에 따라 서버에서 모듈을 조립하여 클라이언트에 전송하여 자바스크립트 어플리케이션이 실행되도록 함으로써, 객체지향 특성을 높이고 속도를 높일 수 있어 웹 어플리케이션의 개발 및 실행 환경을 획기적으로 개선할 수 있는 효과가 있다.
본 발명 실시예에 따른 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체는 모듈베이스 클래스로부터 상속받은 플러그인, 필터, 컴포넌트를 이용하여 모듈을 구성하며, 각 모듈 내부에 코드와 설정 및 리소스가 포함되도록 하여 실제 어플리케이션 설정 시에는 필요한 모듈만 선택할 수 있도록 함으로써, 모듈이나 어플리케이션 설정에 대한 독립적 작성, 재활용은 물론이고 오픈 프로젝트 개발도 가능할 정도의 객체 지향성을 얻을 수 있어 개발 시간과 비용을 단축하고 사용자가 요구하는 웹 2.0 환경에 적극적으로 대응할 수 있는 효과가 있다.
본 발명 실시예에 따른 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체는 어플리케이션에 기능을 추가, 변경, 삭제할 경우 모듈을 필요 모듈만 개발하고 어플리케이션 설정을 위한 XML에서만 이를 설정하는 것으로 용이하게 처리할 수 있도록 하며, 어플리케이션 관리가 서버에 일괄적으로 수행할 수 있도록 하여 어플리케이션 관리가 편리해지는 효과가 있다.
본 발명 실시예에 따른 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체는 어플리케이션 구성에 필요한 모듈을 서버에서 구성하고 어플리케이션 설정 또한 서버에서 실시하게 되므로 초기화 성능이나 동작 성능에 구애받지 않고 각 모듈 간 의존도를 최소화하고, 어플리케이션 설정을 서버에서 실시하는 과정에서 서버 변수나 코드를 활용할 수 있어 다양한 서비스가 제공될 수 있는 효과가 있다.
본 발명 실시예에 따른 서버측 자바스크립트 어플리케이션 프레임워크 장치가 클라이언트에 제공할 정보를 통합하여 전송하도록 하는 것으로 트래픽이 감소하며 어플리케이션 기동 속도가 빨라지는 효과가 있다.
상기한 바와 같은 본 발명을 첨부된 도면들과 실시예들을 통해 상세히 설명하도록 한다.
도 4는 본 발명의 실시예에 따른 서버측 자바스크립트 프레임워크(프레임워크 장치는 통상적으로 프레임워크로 칭해지므로 이하 프레임워크로 설명함) 구성 방법을 설명하기 위한 것으로, 본 실시예에 따른 자바스크립트 어플리케이션은 어플리케이션을 기능에 따라 플러그인과 필터 구조 및 이들의 컨테이너인 컴포넌트로 분류하여 각각 모듈화한 후 프레임워크를 통해 상기 모듈화된 내용들을 조립하는 것으로 실행 가능한 상태로 조립되며, 이렇게 조립된 실행 가능한 자바스크립트 어플리케이션을 클라이언트로 전송하는 것으로 자바스크립트 어플리케이션의 구성이나 초기화와 같이 복잡한 설정 과정이 저속의 클라이언트에서 수행되지 않도록 하여 자바스크립트 어플리케이션의 성능을 향상시킬 수 있도록 한다.
도시된 구성은 사용자 컴포넌트(111), 사용자 플러그인(121), 필터(131)가 각각 ComponentBase(110), PluginBase(120), FilterBase(130) 클래스를 상속받아 모듈로서 작성되며, 상기 ComponentBase(110), PluginBase(120), FilterBase(130) 클래스는 모두 ModuleBase(100)로부터 상속받도록 하여 상기 컴포넌트, 플러그인, 필터는 서로 인터페이스가 호환될 수 있도록 함을 나타낸다.
도 5는 컴포넌트, 플러그인 및 필터의 관계를 나타낸 것으로, 도시한 바와 같이 컴포넌트(140, 150)는 플러그인(141, 151)을 포함할 수 있는 모듈로서 플러그인의 컨테이너 역할을 수행하고, 플러그인(141, 151)은 컴포넌트와 결합되어 컴포넌트 안에서만 동작 가능한 하위 모듈로서 어플리케이션을 구성하는 단위 기능이 구현된 모듈이며, 필터(142, 145, 152)는 입력 데이터에 대해 지정된 로직을 수행한 후 출력 데이터를 반환하는 모듈로서 플러그인 및 컴포넌트의 메시징 입/출력 부위에 결합될 수 있다.
즉, 이하 설명되는 어플리케이션 구성을 위한 모듈은 컴포넌트 모듈, 플러그인 모듈, 필터 모듈 중 하나가 되며, 각 모듈의 기능적 특징에 따라 독립적으로 생성될 수 있고, 재활용이 가능하다. 예를 들어 하나의 플러그인 모듈이나 필터 모듈은 복수의 컴포넌트 모듈에서 사용될 수 있다.
본 실시예에서 서버측에 구성되는 자바스크립트 어플리케이션은 독립적으로 생성되는 복수의 모듈로 구성되는 모듈 라이브러리에서 특정 자바스크립트 어플리케이션을 구성하기 위해 사용되는 모듈을 선택하고 각 모듈들을 관계를 기술한 후 표현되는 어플리케이션 뷰를 정의하는 어플리케이션 설정을 XML 파일 형태로 생성하는 것으로 구현될 수 있다. 이러한 어플리케이션 설정을 해석하여 필요한 모듈을 추출하고, 모듈 간 관계를 클라이언트가 해석할 수 있는 형태의 모듈 구성 및 초기화 정보로 생성하며 어플리케이션을 표현할 뷰 정보를 생성하는 과정을 서버측에 수행하여 마치 레고 블럭을 조립하는 것처럼 실행 가능한 자바스크립트 어플리케이션을 구성하여 클라이언트에 전송하게 된다. 특히, 어플리케이션 뷰를 서버측에서 구성하기 때문에 어플리케이션이 웹 페이지에 종속되지 않도록 하여 어플리케이션 자체의 독립성을 크게 높일 수 있게 된다.
따라서 이러한 과정을 수행할 수 있는 모듈 라이브러리와 어플리케이션 설정 및 이를 해석하여 클라이언트에 제공할 어플리케이션 정보를 생성하는 구성부를 포함하여 서버측 어플리케이션 프레임워크를 구성할 수 있다.
도 6은 본 발명의 실시예에 따른 자바스크립트 어플리케이션의 구성 방식을 개념적으로 설명하기 위한 예시도로서, 도시한 바와 같이 어플리케이션의 단위 기능을 수행하기 위한 모듈 코드(210)와 해당 모듈에 대한 설정(220) 및 모듈의 표현을 위한 그림이나 HTML 문서 등의 리소스(223)를 포함하는 모듈(200)과, 어플리케이션 구성을 위한 설치 모듈 목록(310)과 모듈 간 관계 정의(320) 및 어플리케이션 뷰 정의(330)가 포함되어 실행 가능한 어플리케이션의 구성을 정의한 어플리케이션 설정(300)과, 상기 어플리케이션 설정(300)을 통해 서버의 프레임워크에서 구성하여 클라이언트에 제공할 스크립트 파일 목록(410), 모듈 구성 및 설정(420), 어플리케이션 뷰(430)로 이루어진 전송 정보(400)의 흐름을 보인 것이다.
먼저, 도시된 모듈(210)은 컴포넌트, 플러그인, 필터의 구성을 가지며, 단위 기능에 관련된 자바스크립트 코드(210)와, 해당 모듈의 이름과 클래스 지정 등의 정보를 가지는 정의 및 설정 정보(221) 및 해당 모듈이 표시될 내용이나 위치 등에 대한 모듈 뷰(222)에 대한 내용이 XML 포맷으로 기록된 모듈 설정(220)과, 리소스(223)를 포함하는 모듈로서 서버의 특정 디렉토리에 모듈 라이브러리로서 저장된다. 상기 모듈들은 메시징 기반 프로토콜을 이용하여 수행되기 때문에 의존도가 작 으며, 그로 인해 기본적으로 자주 사용되는 툴바, 버튼, 다이얼로그 등의 모듈은 주요 라이브러리로 구분되어 재활용이나 공유될 수 있다.
상기 어플리케이션 설정(300)은 XML 포맷으로 기재되는 실제 실행 어플리케이션의 정의 내용으로서, 모듈(200)을 이용하는 일종의 어플리케이션 조립 설명서에 해당하는 정보로 이루어져 있다. 즉, 사용할 모듈들의 서버 위치를 지정하는 설치 모듈 목록(310)과, 모듈 설정(220)에서 정의된 이름을 기반으로 컴포넌트에 포함되는 플러그인의 설정, 필터의 설정(커멘트 설정, 옵션 설정 등)에 대한 정보를 가지는 모듈간 관계 정의(320) 및 모듈 뷰(222)와 리소스(223)를 이용하여 어플리케이션의 표현 방식을 정의하는 어플리케이션 뷰 정의(330) 정보로 이루어진다.
상기 어플리케이션 설정(300) 내용은 서버측 프레임워크의 핵심 구성인 어플리케이션 구성부에서 해석되어 전송 정보(400)가 생성되게 된다.
결과적으로, 이러한 서버측 어플리케이션 구성은 모듈별로 XML 설정을 구성하고, 어플리케이션 설정을 XML로 구성하여 비록 초기화 과정의 설정 내용이 많아지더라도 독립성을 확보할 수 있도록 한 것으로, 이는 고속의 서버에서 이러한 어플리케이션 구성을 위한 초기화 과정이 이루어지기 때문에 가용 처리 용량이 클라이언트에 비할 수 없이 크다는 점에 착안한 것이다. 따라서, 복잡한 초기화와 설정 과정을 서버에서 수행한 후 간단한 모듈 구성 정보만 클라이언트에 제공하도록 하여 클라이언트의 부담을 크게 경감시켜 속도 향상과 성능 향상을 기대할 수 있으며, 필요한 경우 클라이언트 측에도 프레임워크를 구성하여 상기 제공되는 전송 정보(400)를 기반으로 어플리케이션을 실행하도록 한다면 웹 어플리케이션의 품질을 데스크탑 어플리케이션에 버금갈 정도로 높일 수 있게 된다.
도 7은 서버(500)측 어플리케이션 프레임워크의 구성 예를 보인 것으로, 도시한 바와 같이 자바스크립트 코드와 설정 정보 및 뷰 정보가 포함된 모듈이 별도 저장된 모듈 라이브러리(501)와, 상기 모듈 라이브러리(501)의 모듈 중 어플리케이션 구성을 위한 모듈들의 정보와 상기 모듈들 간의 관계에 대한 설정 정보 및 뷰 정의 정보가 포함된 어플리케이션 설정 파일(502)과, 상기 어플리케이션 설정 파일(502)을 해석하여 클라이언트에 제공할 설치 스크립트 목록(설치 모듈 목록)과 모듈 구성 및 설정, 그리고 어플리케이션 뷰 정보를 생성하는 어플리케이션 구성부(510)와, 어플리케이션 구성부(510)가 제공하는 스크립트 목록과 모듈 구성 및 설정, 그리고 어플리케이션 뷰 정보를 통신망(550)을 통해 클라이언트(560)에 송신하는 클라이언트 송신 정보 생성부(520)로 이루어진다.
여기서, 상기 어플리케이션 구성부(510)는 상기 어플리케이션 설정 파일(502)을 해석하는 어플리케이션 설정 해석부(511)와, 상기 어플리케이션 설정 해석부(511)가 제공하는 설치 모듈에 대한 목록을 스크립트 목록으로 작성하는 설치 모듈 목록 작성부(512)와, 상기 어플리케이션 설정 해석부(511)가 제공하는 모듈 간 설정 정보를 각 모듈에 포함된 모듈 설정 정보를 토대로 분석하여 모듈 구성 및 초기화 정보를 JSON(Javascript Object Notation) 포맷 정보로 생성하는 모듈 구성정보 생성부(513)와, 상기 어플리케이션 설정 해석부(511)가 제공하는 어플리케이션 뷰 정의에 따라 상기 모듈에 포함된 뷰 정보와 리소스를 이용하여 어플리케이션 뷰를 HTML 파일로 생성하는 어플리케이션 뷰 생성부(514)를 포함하여 구성된다.
한편, 상기 어플리케이션 구성부(510)는 상기 어플리케이션 설정 파일(502)의 해석에 따라 모듈 목록(즉, 자바스크립트 파일들), 모듈 구성 정보(JSON), 어플리케이션 뷰(CSS코드(혹은 파일), HTML 코드, 리소스)를 전송 정보(400)로서 생성하게 되는데, 이러한 과정에서 전송해야 할 파일의 수가 증가하게 되므로 클라이언트로 전송할 자바스크립트 파일들을 하나의 자바스크립트 파일로 통합 구성하고, CSS 파일을 하나의 파일로 통합 구성하는 것으로 전송 정보를 간결화 하고 트래픽을 줄일 수 있다.
도 8은 상기 도 7의 구성을 이용하여 어플리케이션을 구성하는 과정을 나타내는 순서도로서, 도 6의 모듈 설정(220)과 어플리케이션 설정(300)을 이용하는 단계와 그로 인해 전송 정보(400)가 생성되는 단계를 함께 나타낸 것이다. 도시된 특정한 단계들에 대한 표기(S1~S6)는 도 6의 표기(S1~S6)에 대응한다.
먼저, 전송할 자바스크립트 어플리케이션이 선택되면 그에 따른 어플리케이션 설정(XML 파일)을 읽어들여 설치 모듈에 대한 목록을 분석하고 그에 따라 설치 모듈의 목록을 작성한다. 그에 따라 전송할 스크립트 목록이 생성된다.
그리고, 설치 모듈 각각에 대한 모듈 설정 XML 파일을 읽어들여 각 모듈의 이름과 클래스 정보를 확인하고 상기 어플리케이션 설정에 포함된 플러그인과 필터 관계 등을 분석하여 모듈 구성 정보를 표준 자바스크립트 통신 방식으로 정보를 교환할 수 있는 JSON(Javascript Object Notation) 포맷으로 생성한다. 그에 따라 전송할 모듈 구성 정보가 생성된다.
그리고 어플리케이션 설정 XML 파일에 포함된 어플리케이션 뷰 정의에 따라 각 모듈의 모듈 설정 XML에 포함된 모듈 뷰 및 리소스를 이용하여 어플리케이션 뷰를 HTML 파일(CSS와 HTML 코드 등으로 구성)로 생성한다.
이를 클라이언트에 전송하면 클라이언트는 이를 이용하여 필요한 어플리케이션을 실행할 수 있게 된다.
한편, 이렇게 서버측 프레임워크를 이용하여 어플리케이션을 구성하기 때문에 서버의 데이터나 변수, 로직 등을 활용할 수 있게 되므로 웹 서비스를 위한 어플리케이션 구성이 용이해지며 다양한 서비스를 제공할 수 있게 된다.
도 9는 어플리케이션 설정에 의해 정의되는 설치 모듈 목록, 모듈 간 관계 정의, 어플리케이션 뷰의 XML 포맷 구성을 보인 예로서, 도시한 바와 같이 XML임을 나타내는 태그의 <config> 태그 내에 구성되는 모듈 간 관계를 정의하는 부분(610), 설치될 모듈 목록을 기술하는 부분(620), 그리고 어플리케이션 뷰를 정의하는 부분(630)으로 구성된다.
한편, 도시되지는 않았지만 상기 <config> 태그 내에 어플리케이션 단축키를 설정해 줄 수 있는 내용이 XML로 정의될 수도 있다.
예를 들어, 다음과 같은 내용을 추가하는 것으로 어플리케이션의 내부적인 특징인 단축키 지정을 XML을 통해서 지정할 수 있게 되므로 어플리케이션 설정에서 어플리케이션의 특징 중 일부를 임의적으로 설정해 줄 수 있어 어플리케이션의 설계 편의성이 높아질 수 있다. 즉, 단축키 목록을 이름 기반으로 관리할 수 있고, 해당 단축키 입력 시 지정된 모듈에 커맨드를 전송하거나 매소드를 호출할 수 있다.
<shortcuts name="WYSIWYG_shortcut">
<shortcut key="CTRL+Z" target="toolbar.UndoRedoBtn" method="onClickUndo"/>
<shortcut key="CTRL+Y" target="toolbar.UndoRedoBtn" method="onClickRedo"/>
<shortcut key="CTRL+S" target="WYSIWYGEditor" cmd="save"/>
<shortcut key="ESC" target="WYSIWYGEditor" cmd="closeDialogs"/>
</shortcuts>
도 10 내지 도 11은 기상 도 9에 나타낸 어플리케이션 설정의 각 부분에 대한 예들을 보인 것이다.
먼저, 도 10은 설치될 모듈 목록을 기술하는 부분(620)의 보다 구체적인 예를 보인 것으로서 설치할 컴포넌트 모듈의 목록(621), 설치할 플러그인 모듈의 목록(622), 그리고 설치할 필터 모듈의 목록(623)을 <install> 태그 내에 기술한 것을 보인 것이다. 여기서, 필터 모듈과 같이 특정한 설정이 필요한 경우, 해당 모듈의 개별 설정에 제공될 변수(도시된 예에서는 limit)의 값을 지정해주는 작업도 병행될 수 있다.
그리고, 도 11은 모듈 간 관계를 정의하는 부분(610)의 보다 구체적인 예를 보인 것으로서 설치된 모듈들에 대한 관계 중 컴포넌트의 플러그인 설정이나 컴포넌트와 플러그인의 필터를 지정하는 내용이 기술될 수 있다. 도시된 예에서는 toolbar 컴포넌트의 플러그인과 필터 구성(611) 및 WYSIWYGEditor 컴포넌트의 플러 그인 구성(613)이 기술되어 있다. 이러한 모듈 간 관계는 모듈의 이름을 기반으로 모듈을 지정하는 방식으로 이루어질 수 있고, 필터 구성의 경우 커맨드나 필터의 속성을 설정하는 내용(612)이 포함될 수 있다.
마지막으로 도 12는 어플리케이션 뷰를 정의하는 부분(630)의 보다 구체적인 예를 보인 것으로서 어플리케이션이 실제 보여지는 부분을 HTML 포맷으로 나타낸 정보일 수 있는데, 해당 위치에 표현될 HTML(631, 634)과 상기 설치할 모듈 중 컴포넌트의 뷰가 표시될 위치(632) 및 모듈의 리소스가 삽입될 위치(633) 등의 정보가 포함될 수 있다.
도시된 예에서는 HTML 코드와 리소스의 삽입만 보였으나, CSS(Cascading Style Sheets)를 지정할 수 있는 부분이 추가될 수 있음은 물론이다. 예를 들어, 위치를 지정하여 외부 CSS 파일을 삽입할 수 있고, 직접 CSS 코드를 삽입할 수도 있다.
예를 들어, 도시된 경우 HTML 코드(631) 앞단에 다음의 예시와 같은 CSS 파일을 지정하는 내용이 추가될 수 있다.
<css src="/editor/editor.css"/>
한편, 직접 다음과 같은 CSS 코드가 삽입될 수도 있다.
<css><![CDATA[
a.toolbar_findreplace { background: url("%%RESOURCE%%/findReplace.gif") no-repeat center;}
a#%%[FindReplaceBtn]%% {margin-right: 7px;}
/* Define FindReplaceDialog */
div#%%[findReplaceDlg]%% {
width: 230px;
padding: 10px;
}
]]></css>
이렇게 일반적인 CSS가 삽입될 수 있을 뿐만 아니라 어플리케이션 설정 XML에서 사용되는 형식(예를 들어 %%[d]%%와 같은 아이디 지정, {$name}과 같은 변수 사용 및 서버 코드의 사용)이 모두 사용될 수 있어 서버측 프레임워크 기반의 어플리케이션 뷰 생성 내용의 효율을 높일 수 있다.
도 13 내지 도 15는 모듈의 종류에 따른 모듈 설정(모듈 내부의 XML) 내용의 보다 구체적인 예들을 보인 것으로 도 13은 컴포넌트 모듈의 설정예를 보인 것이고, 도 14는 플러그인 모듈의 설정 예를 보인 것이며, 도 15는 필터 모듈의 설정 예를 보인 것이다.
도 13은 컴포넌트 설정의 예를 보인 것으로 크게 모듈의 이름과 클래스 지정 정보와 같은 정의 및 설정 정보(711)와 표시될 HTML과 표시 위치 등에 대한 모듈 뷰 정보(712)로 이루어진다. 여기서도 모듈 뷰 정보(712)에는 CSS가 지정될 수 있다.
도 14는 플러그인 설정의 예를 보인 것으로 크게 모듈의 이름과 클래스 지정 정보와 같은 정의 및 설정 정보(721)와 표시될 HTML과 표시 위치 등에 대한 모듈 뷰 정보(722)로 이루어지며, 위에서 설명한 바와 같이 모듈 뷰 정보(722)에는 CSS 코드나 파일이 부가될 수 있다.
도 15는 필터 설정의 예를 보인 것으로 필터의 경우 모듈 뷰 정보가 생략될 수 있으므로 모듈의 이름과 클래스 지정 정보와 같은 정의 및 설정 정보(731)로만 이루어진다.
이상에서는 본 발명에 따른 바람직한 실시예들에 대하여 도시하고 또한 설명하였다. 그러나 본 발명은 상술한 실시예에 한정되지 아니하며, 특허 청구의 범위에서 첨부하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능할 것이다.
도 1은 일반적인 웹페이지 구성을 보인 예.
도 2는 클라이언트측 자바스크립트 어플리케이션 프레임워크의 구성을 보인 예.
도 3은 클라이언트측 자바스크립트 어플리케이션 프레임워크가 적용된 웹 브라우저의 구성을 보인 예.
도 4는 본 발명의 실시예를 설명하기 위한 클래스 상속 관계도.
도 5는 본 발명의 실시예에 따른 컴포넌트, 플러그인 및 필터의 관계를 나타낸 관계도.
도 6은 본 발명의 실시예에 따른 어플리케이션 구성 흐름을 보인 개념도.
도 7은 본 발명의 실시예에 따른 서버측 프레임워크 블록도.
도 8은 본 발명의 실시예에 따른 어플리케이션 구성 과정을 보인 순서도.
도 9는 본 발명의 실시예에 따른 어플리케이션 설정의 포맷을 보인 예.
도 10내지 도 12는 본 발명의 실시예에 따른 어플리케이션 설정의 구체적 예.
도 13내지 도 15는 본 발명의 실시예에 따른 모듈 설정의 예.
** 도면의 주요 부분에 대한 부호의 설명 **
500: 서버 501: 모듈 라이브러리
502: 어플리케이션 설정 파일 510: 어플리케이션 구성부
511: 어플리케이션 설정 해석부 512: 설치모듈 목록 작성부
513: 모듈 구성 정보 생성부 514: 어플리케이션 뷰 생성부
520: 클라이언트 송신정보 생성부 550: 통신망
560: 클라이언트

Claims (27)

  1. 자바스크립트 코드와 설정 정보 및 뷰 정보가 포함된 모듈이 별도 저장된 모듈 라이브러리와;
    상기 모듈 라이브러리의 모듈 중 어플리케이션 구성을 위한 모듈들의 정보와 상기 어플리케이션 구성을 위한 모듈들 간의 관계에 대한 설정 정보 및 뷰 정의 정보가 포함된 어플리케이션 설정 정보 파일과;
    상기 어플리케이션 설정 정보 파일을 해석하여 클라이언트에 제공할 설치 모듈 목록과 모듈 구성 정보 및 어플리케이션 뷰 정보를 생성하는 어플리케이션 구성부를 포함하고,
    상기 모듈은 모듈 베이스 클래스에서 상속받아 인터페이스가 호환 가능한 컴포넌트 베이스, 플러그인 베이스, 필터 베이스 클래스로부터 각각 상속받은 컴포넌트, 플러그인, 필터 구성을 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  2. 삭제
  3. 청구항 1에 있어서, 상기 컴포넌트는 단위 기능이 구현되며 컴포넌트 내부에서만 동작하는 플러그인을 포함하여 구성되는 컨테이너인 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  4. 청구항 1에 있어서, 상기 필터는 입력 데이터에 대해 지정된 로직을 수행한 후 데이터를 반환하는 모듈로서, 상기 플러그인 및 컴포넌트의 메시징 입출력 부분에 결합되는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  5. 청구항 1에 있어서, 상기 필터를 설정하기 위한 모듈은 모듈 뷰 정보가 생략되는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  6. 청구항 1에 있어서, 상기 어플리케이션 설정 정보 파일의 모듈들 간 관계에 대한 설정 정보는 컴포넌트의 플러그인 포함 설정이나 컴포넌트와 플러그인의 필터를 지정하는 정보를 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  7. 청구항 1에 있어서, 상기 모듈은 모듈의 정의와 설정 정보 및 모듈 뷰 정보를 포함하는 XML 모듈 설정 정보와 상기 모듈의 실행에 필요한 리소스를 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  8. 청구항 7에 있어서, 상기 모듈의 정의는 모듈의 이름과 클래스 지정 정보를 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  9. 청구항 1에 있어서, 상기 어플리케이션 설정 정보 파일은 설치 모듈 정보와 모듈 간 관계 정의 정보와 어플리케이션 뷰 정의 정보를 포함하는 XML 파일인 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  10. 청구항 1에 있어서, 상기 어플리케이션 구성부는
    상기 어플리케이션 설정 정보 파일을 해석하는 어플리케이션 설정 해석부와;
    상기 어플리케이션 설정 해석부가 제공하는 설치 모듈에 대한 목록을 작성하는 설치 모듈 목록 작성부와;
    상기 어플리케이션 설정 해석부가 제공하는 모듈 간 설정 정보를 각 모듈에 포함된 모듈 설정 정보를 토대로 분석하여 모듈 구성 및 초기화 정보를 텍스트 포맷 정보로 생성하는 모듈 구성정보 생성부와;
    상기 어플리케이션 설정 정보 파일을 해석한 상기 어플리케이션 설정 해석부가 제공하는 어플리케이션 뷰 정의에 따라 상기 모듈에 포함된 뷰 정보를 이용하여 어플리케이션 뷰를 생성하는 어플리케이션 뷰 생성부를 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  11. 청구항 10에 있어서, 상기 모듈 구성정보 생성부는 모듈 구성 및 초기화 정보를 JSON(Javascript Object Notation) 포맷으로 생성하고, 상기 어플리케이션 뷰 생성부는 어플리케이션 뷰를 HTML 포맷으로 생성하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치.
  12. 어플리케이션 구성을 위한 단위 기능이 자바스크립트 코드로 구현된 모듈을 모듈 설정 정보를 포함하도록 생성하여 별도 파일로 저장하는 모듈 생성 단계와;
    어플리케이션 구성을 위한 모듈들의 정보와 모듈 간 관계에 대한 설정 정보 및 뷰 정의 정보를 XML 포맷의 어플리케이션 설정 정보로 생성하는 어플리케이션 생성 단계와;
    상기 어플리케이션 설정 정보를 통해 해당 어플리케이션의 실행에 필요한 모듈 목록을 추출하고 상기 추출된 모듈간 관계 정보와 어플리케이션 뷰 정보를 생성하는 어플리케이션 구성 단계와;
    상기 추출된 모듈 목록 정보와 상기 생성된 모듈간 관계 정보 및 어플리케이션 뷰 정보를 클라이언트에 전송하는 어플리케이션 전송 단계를 포함하고,
    상기 모듈 설정 단계는 모듈 베이스 클래스에서 상속받아 인터페이스가 호환 가능한 컴포넌트 베이스, 플러그인 베이스, 필터 베이스 클래스로부터 상속받은 컴포넌트, 플러그인, 필터 중 하나로 모듈을 생성하여 라이브러리로 저장하는 단계를 포함하는 것는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  13. 삭제
  14. 청구항 12에 있어서, 상기 모듈 설정 단계에서 상기 컴포넌트 모듈은 단위 기능이 구현되며 컴포넌트 내부에서만 동작하는 플러그인을 포함하여 구성되는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  15. 청구항 14에 있어서, 상기 모듈 설정 단계에서 상기 필터 모듈은 입력 데이터에 대해 지정된 로직을 수행한 후 데이터를 반환하는 모듈로서, 상기 플러그인 및 컴포넌트의 메시징 입출력 부분에 결합되는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  16. 청구항 15에 있어서, 상기 어플리케이션 생성 단계는 컴포넌트의 플러그인 포함 설정이나 컴포넌트와 플러그인의 필터 지정을 포함하는 모듈간 관계 정보를 생성하는 단계를 더 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  17. 청구항 12에 있어서, 상기 어플리케이션 생성 단계는 어플리케이션에 생성되는 단축키를 모듈 이름과 동작 방식을 포함하여 정의한 정보를 더 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  18. 청구항 12에 있어서, 상기 모듈 설정 단계에서, 모듈의 정의와 설정 정보 및 모듈 뷰 정보를 포함하는 XML 모듈 설정 정보와 상기 모듈의 실행에 필요한 리소스를 모듈에 포함시켜 별도 파일로 저장하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  19. 청구항 18에 있어서, 상기 모듈의 정의는 모듈의 이름과 클래스 지정 정보를 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  20. 청구항 12에 있어서, 상기 어플리케이션 구성 단계는
    상기 어플리케이션 생성 단계에서 생성된 어플리케이션 설정 정보를 통해 설치 모듈을 추출하여 클라이언트에 전송할 목록을 생성하는 목록 생성 단계와;
    상기 설치 모듈에 포함된 모듈 설정 정보와 상기 어플리케이션 설정 정보에 포함된 모듈간 관계 정보를 통해 클라이언트에 전송할 모듈의 설정 및 초기화 정보를 생성하는 모듈 구성 정보 생성 단계와;
    상기 어플리케이션 설정 정보에 포함된 어플리케이션 뷰 정보를 분석하여 클라이언트에 전송할 HTML 정보를 생성하는 어플리케이션 뷰 정보 생성 단계를 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  21. 청구항 20에 있어서, 상기 모듈 생성 단계는 상기 모듈의 기능을 제공하기 위한 모듈 뷰 정보와 이를 표현하기 위한 리소스 정보를 포함시켜 모듈을 생성하는 단계를 더 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  22. 청구항 21에 있어서, 상기 어플리케이션 뷰 정보 생성 단계는 상기 모듈 뷰 정보와 리소스를 이용하여 상기 어플리케이션 설정 정보에 포함된 어플리케이션 뷰 정보에 따른 HTML 코드를 생성하는 단계를 더 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  23. 청구항 12에 있어서, 상기 어플리케이션 구성 단계는 모듈간 관계 정보를 JSON(Javascript Object Notation) 포맷으로 생성하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  24. 청구항 12에 있어서, 상기 어플리케이션 구성 단계는
    추출된 모듈 목록 정보와 상기 생성된 모듈간 관계 정보 및 어플리케이션 뷰 정보를 종류별로 통합하여 파일 수를 줄이는 단계를 더 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  25. 단일 클래스에서 상속받은 플러그인, 필터, 컴포넌트 클래스 중 하나를 상속받아 단위 기능을 수행하도록 작성된 자바스크립트코드와 모듈 뷰 정보 및 리소스를 가지는 모듈을 생성하여 서버 상에 라이브러리로 저장하는 단계와;
    어플리케이션 구성에 필요한 모듈 정보와 컴포넌트의 플러그인 포함 설정이나 컴포넌트와 플러그인의 필터를 지정하는 모듈 간 관계 정의 정보 및 어플리케이션 뷰 정보를 XML 파일로 정의한 어플리케이션 설정 정보를 생성하여 서버 상에 저장하는 단계와;
    상기 어플리케이션 설정 정보를 서버에서 해석하여 필요 모듈 목록을 작성하고, 모듈 간 관계 정의를 분석하여 모듈 구성 및 초기화 정보를 JSON 포맷으로 생성하며 모듈 뷰와 리소스를 상기 어플리케이션 설정 정보의 어플리케이션 뷰 정보에 따라 HTML 파일로 구성하는 단계와;
    상기 구성된 모듈 목록과 JSON 포맷 정보 및 HTML 파일을 어플리케이션 실행 정보로서 클라이언트에 제공하는 단계를 포함하는 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  26. 청구항 25에 있어서, 상기 모듈은 플러그인 모듈, 필터 모듈 또는 플러그인과 필터 모듈이 포함된 컨테이너로 기능하는 컴포넌트 모듈인 것을 특징으로 하는 서버측 자바스크립트 어플리케이션 프레임워크 장치를 이용한 어플리케이션 구성 방법.
  27. 제 12항, 제14항 내지 제 26항 중의 어느 한 항의 방법을 수행할 수 있는 프로그램이 수록된 컴퓨터로 읽을 수 있는 기록 매체.
KR1020080070661A 2008-07-21 2008-07-21 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체 KR101062273B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080070661A KR101062273B1 (ko) 2008-07-21 2008-07-21 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080070661A KR101062273B1 (ko) 2008-07-21 2008-07-21 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체

Publications (2)

Publication Number Publication Date
KR20100009848A KR20100009848A (ko) 2010-01-29
KR101062273B1 true KR101062273B1 (ko) 2011-09-06

Family

ID=41818106

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080070661A KR101062273B1 (ko) 2008-07-21 2008-07-21 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체

Country Status (1)

Country Link
KR (1) KR101062273B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100420103B1 (ko) 2002-01-24 2004-03-02 (주) 자이오넥스 엑스엠엘 기반의 웹 어플리케이션 구현 시스템 및 방법
US20070106946A1 (en) * 2005-11-07 2007-05-10 Philip Goetz Method and system for developing interactive Web applications in a unified framework

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100420103B1 (ko) 2002-01-24 2004-03-02 (주) 자이오넥스 엑스엠엘 기반의 웹 어플리케이션 구현 시스템 및 방법
US20070106946A1 (en) * 2005-11-07 2007-05-10 Philip Goetz Method and system for developing interactive Web applications in a unified framework

Also Published As

Publication number Publication date
KR20100009848A (ko) 2010-01-29

Similar Documents

Publication Publication Date Title
CN109918607B (zh) 页面搭建方法及装置、介质和计算设备
EP2151773B1 (en) Synchronous to asynchronous web page conversion
US11366676B2 (en) Embedded user assistance for software applications
US8006224B2 (en) System and method for unified visualization of two-tiered applications
US8972873B2 (en) Multi-environment widget assembly, generation, and operation
US20170220548A1 (en) System and method for creation of templates
CN112632437B (zh) 一种网页页面生成方法、装置及计算机可读存储介质
US20070288644A1 (en) Systems and methods for developing and running applications in a web-based computing environment
US7529763B2 (en) System and method for providing dynamic client architecture in an application development environment
CN102495735A (zh) web 端UI组件应用框架系统
Cardone et al. Using XForms to simplify web programming
KR20150078840A (ko) 모바일 유저인터페이스 개발을 위한 통합 플랫폼을 기록한 저장 매체, 이를 구현하는 플랫폼 제공방법, 및 이를 제공하는 시스템
KR101552914B1 (ko) 웹 서버 어플리케이션 프레임워크 장치와 프레임워크를 이용한 웹 어플리케이션 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
KR101330559B1 (ko) 자바스크립트기반 웹-클라이언트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 웹 컨텐츠 처리 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
US20120260237A1 (en) Portable Business Language and Automated Software Application Development System
WO2024066825A1 (zh) 页面项目开发方法、装置、设备、介质及产品
KR101062273B1 (ko) 서버측 자바스크립트 어플리케이션 프레임워크 장치와 상기 프레임워크 장치를 이용한 어플리케이션 구성 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
CN115344769A (zh) 基于配置快速构建Web应用网页的方法、系统以及存储介质
CN114489607A (zh) 跨栈应用处理与页面渲染方法、装置、设备及存储介质
CN111221610B (zh) 一种页面元素采集方法和装置
Honkala Web user interaction: a declarative approach based on XForms
Pohja et al. Web User Interaction: Comparison of Declarative Approaches
KR20240121385A (ko) 헤드리스 콘텐츠 매니지먼트 시스템 및 이의 운용 방법
Pani et al. A Novel Approach for Designing Mobile Native Apps
Vos et al. Connecting to Enterprise Services

Legal Events

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

Payment date: 20140807

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160808

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170731

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190814

Year of fee payment: 9