KR20210147726A - 리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치 - Google Patents

리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치 Download PDF

Info

Publication number
KR20210147726A
KR20210147726A KR1020200065376A KR20200065376A KR20210147726A KR 20210147726 A KR20210147726 A KR 20210147726A KR 1020200065376 A KR1020200065376 A KR 1020200065376A KR 20200065376 A KR20200065376 A KR 20200065376A KR 20210147726 A KR20210147726 A KR 20210147726A
Authority
KR
South Korea
Prior art keywords
resource
client
information
pattern
bundling
Prior art date
Application number
KR1020200065376A
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 KR1020200065376A priority Critical patent/KR20210147726A/ko
Publication of KR20210147726A publication Critical patent/KR20210147726A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/316User authentication by observing the pattern of computer usage, e.g. typical user behaviour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Social Psychology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

복수의 리소스 분할 번들링들 중 클라이언트와의 연결이 가리키는 패턴에 대응되는 리소스 분할 번들링을 이용하는 리소스 번들링 기술을 이용한 온라인 서비스 방법 및 그 방법이 적용된 온라인 서비스 제공 서버가 제공된다. 본 발명의 일 실시예에 따르면, 상기 온라인 서비스 제공 방법은 상기 클라이언트와의 연결의 패턴을 얻는 단계와, 복수의 서로 다른 리소스 분할 번들링들 중 상기 패턴에 대응되는 리소스 분할 번들링에 따른 제1 분할 리소스를 상기 클라이언트에 송신하는 단계를 포함할 수 있다.

Description

리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치{METHOD AND APPARATUS FOR PROVIDING SERVICE BASED ON SPLITTED RESOURCE BUNDLING}
본 발명은 리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 사용자 관점에서 최적화된 방식으로 리소스 분할 번들링을 진행하고, 이를 기반으로 온라인 서비스를 제공하는 방법 및 그 장치에 관한 것이다.
SPA(Single Page Application) 기술의 활용이 보편화 되고 있다. 이에 따라 웹 리소스의 사이즈가 증가하며, 그로 인하여 웹 페이지 로딩 타임도 증가하고 있다. 이러한 문제점을 극복하기 위해 브라우저(browser) 캐싱이 활용될 수 있다. 상기 캐싱 기술은 한번 리소스를 다운로드 한 후, 향후 재사용이 가능하다면 시간 단축의 효과를 얻을 수 있다. 다만, 리소스 업데이트가 있거나, 캐시 사용이 불가한 환경에서는 효과를 얻을 수 없다.
따라서, 증가된 전체 리소스 사이즈를 고려한 리소스 번들링 기술의 제공이 요청된다.
미국공개특허 제 2020-0159817 호 (2018.05.21 공개) 미국등록특허 제 10296653 호 (2019.05.21 등록) 미국등록특허 제 10284671 호 (2019.05.07 등록)
본 발명의 몇몇 실시예들을 통하여 달성하고자 하는 기술적 과제는, 복수의 리소스 분할 번들링들 중 클라이언트와의 연결이 가리키는 패턴에 대응되는 리소스 분할 번들링을 이용하는 리소스 번들링 기술을 이용한 온라인 서비스 방법 및 그 방법이 적용된 온라인 서비스 제공 서버를 제공하는 것이다.
본 발명의 다른 몇몇 실시예들을 통하여 달성하고자 하는 다른 기술적 과제는, 연결된 클라이언트에 의하여 액세스 될 가능성이 높은 기능 단위에 대한 리소스들 만을 분할 리소스에 포함시켜 송신함으로써 효율적으로 1회에 다운로드 되는 리소스 사이즈를 감소시킬 수 있는 리소스 번들링 기술을 이용한 온라인 서비스 방법 및 그 방법이 적용된 온라인 서비스 제공 서버를 제공하는 것이다.
본 발명의 또 다른 몇몇 실시예들을 통하여 달성하고자 하는 다른 기술적 과제는, 개발자 편의의 측면에서 라이브러리 또는 소스 코드 단위로 하나의 분할 리소스를 패키징 하는 것이 아닌, 사용자 중심 관점에서 사용자의 패턴에 따를 때 주료 사용되는 기능 단위에서 호출되는 리소스들을 하나의 분할 리소스로서 패키징하는 리소스 번들링 기술을 이용한 온라인 서비스 방법 및 그 방법이 적용된 온라인 서비스 제공 서버를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따른 온라인 서비스 제공 방법은, 상기 클라이언트와의 연결의 패턴을 얻는 단계와, 복수의 서로 다른 리소스 분할 번들링들 중 상기 패턴에 대응되는 리소스 분할 번들링에 따른 제1 분할 리소스를 상기 클라이언트에 송신하는 단계를 포함할 수 있다.
몇몇 실시예들에서, 상기 서비스는 복수의 기능 단위로 구성되는 것이고, 상기 제1 분할 리소스는 상기 제1 분할 리소스에 대응되는 복수의 기능 단위들 각각이 실행될 때 직간접적으로 호출될 수 있는 함수들의 데이터 및 상기 함수들에서 참조되는 전역 변수들의 데이터를 포함하는 것일 수 있다.
이 때, 상기 복수의 기능 단위는 복수의 카테고리로 분류되는 것이고, 상기 제1 분할 리소스는, 제1 카테고리의 기능 단위 및 상기 제1 카테고리와 상이한 제2 카테고리의 기능 단위를 포함하는 복수의 기능 단위에 대응되는 것일 수 있다. 또한, 상기 제1 카테고리의 기능 단위들은 제1 라이브러리를 이용하여 구현되는 것이고, 상기 제2 카테고리의 기능 단위들 중 적어도 일부는 상기 제1 라이브러리와 상이한 제2 라이브러리를 이용하여 구현되는 것일 수 있다.
또한, 상기 제1 분할 리소스에 대응되는 복수의 기능 단위들은, 복수의 행위 수집용 클라이언트로부터 취합된 기능 단위 사용 빈도가 제1 기준치를 초과하는 복수의 기능 단위들을 포함하는 것일 수 있다. 또한, 상기 복수의 행위 수집용 클라이언트는, 기 지정된 횟수의 서비스 연결에서 수행된 각 기능 단위의 사용 빈도 분포가 동일하거나 기준치 이내의 차이를 갖는 것으로 판정된 복수의 행위 수집용 클라이언트로 구성된 것일 수 있다. 또한, 상기 제1 분할 리소스를 상기 클라이언트에 송신하는 단계는 상기 제1 분할 리소스에 대응되는 기능 단위에 포함되지 않는 기능 단위에 대한 액세스를 감지하면, 상기 패턴에 대응되는 리소스 분할 번들링에 따른 제2 분할 리소스를 상기 클라이언트에 송신하는 단계를 포함할 수 있다. 이 때, 상기 제2 분할 리소스에 대응되는 복수의 기능 단위들은, 상기 복수의 행위 수집용 클라이언트로부터 취합된 기능 단위 사용 빈도가 제2 기준치를 초과하고 상기 제1 기준치 미만인 복수의 기능 단위들을 포함할 수 있다.
다른 몇몇 실시예들에서, 제1 패턴에 대응되는 리소스 분할 번들링과, 상기 제1 패턴과 상이한 제2 패턴에 대응되는 리소스 분할 번들링은 서로 리소스 분할 수가 다른 것일 수 있다.
또 다른 몇몇 실시예들에서, 상기 제1 분할 리소스를 상기 클라이언트에 송신하는 단계는, 상기 클라이언트의 네트워크 환경 정보 및 상기 클라이언트의 하드웨어 성능 정보 중 적어도 하나를 이용하여 리소스 분할 수를 결정하는 단계를 포함할 수 있다. 이 때, 상기 제1 분할 리소스를 상기 클라이언트에 송신하는 단계는, 상기 리소스 분할 번들링의 하위 버전 중, 상기 결정된 리소스 분할 수에 대응되는 버전의 리소스 분할 번들링에 따른 제1 분할 리소스를 상기 클라이언트에 송신하는 단계를 포함할 수 있다.
또 다른 몇몇 실시예들에서, 상기 클라이언트와의 연결의 패턴을 얻는 단계는, 상기 클라이언트와 관련된 복수의 입력 요소 정보를 얻는 단계와, 상기 복수의 입력 요소 정보에서 특징(feature)를 추출하는 단계와, 상기 특징을 패턴 분류 모델에 입력하고, 상기 패턴 분류 모델로부터 출력된 데이터를 이용하여 상기 패턴을 얻는 단계를 포함할 수 있다. 상기 복수의 입력 요소 정보는, 상기 클라이언트에서 실행되는 스크립트에 의하여 수집된 각 기능 단위의 사용 빈도 정보와, 하나 이상의 추가 정보를 포함할 수 있다. 이 때, 상기 하나 이상의 추가 정보는, 상기 클라이언트의 사용자 정보를 포함하되, 상기 사용자 정보는 부서 정보, 직급 정보 및 직무 정보 중 적어도 하나를 포함하는 것일 수 있다. 또한, 상기 하나 이상의 추가 정보는, 상기 클라이언트의 네트워크 환경 정보, 상기 클라이언트의 하드웨어 성능 정보, 상기 클라이언트의 운영 체제 정보 및 상기 클라이언트의 브라우저 정보 중 적어도 하나를 포함하는 것일 수도 있다.
또 다른 몇몇 실시예들에서, 상기 패턴 분류 모델은 입력층, 제1 은닉층, 제2 은닉층 및 출력층을 포함하는 인공 신경망이고, 상기 입력층은 제1 노드 그룹 및 제2 노드 그룹을 포함하는 것이고, 상기 제1 은닉층은 상기 입력층의 제1 노드 그룹과만 연결되는 제1 노드 그룹 및 상기 입력층의 제2 노드 그룹과만 연결되는 제2 노드 그룹을 포함하는 것이며, 상기 제2 은닉층의 각 노드는 상기 제1 은닉층의 모든 노드와 연결되는 것이고, 상기 입력층의 제1 노드 그룹에는 장비 상황 정보를 표현하는 제1 특징 및 각 기능 단위의 리소스 사이즈 정보를 표현하는 제2 특징이 입력되고, 상기 입력층의 제2 노드 그룹에는 각 기능 단위의 사용 빈도를 표현하는 제3 특징 및 사용자 정보를 표현하는 제4 특징이 입력되는 것일 수도 있다.
또 다른 몇몇 실시예들에서, 상기 클라이언트와의 연결의 패턴을 얻는 단계는, 상기 컴퓨팅 장치에 제1 부하(load)가 가해지는 경우, 제1 가지수의 패턴 중 어느 하나를 얻는 단계와, 상기 컴퓨팅 장치에 상기 제1 부하 보다 과중한 제2 부하가 가해지는 경우, 상기 제1 가지수 보다 작은 제2 가지수의 패턴 중 어느 하나를 얻는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 발명의 다른 실시예에 따른 온라인 서비스 제공 서버는, 클라이언트에 연결되는 통신 인터페이스와, 리소스 분할 번들링 프로그램이 로드되는 메모리와, 상기 리소스 분할 번들링 프로그램을 실행하는 프로세서를 포함할 수 있다. 이 때, 상기 리소스 분할 번들링 프로그램은, 상기 클라이언트와의 연결의 패턴을 얻는 인스트럭션(instruction)과, 복수의 서로 다른 리소스 분할 번들링들 중 상기 패턴에 대응되는 리소스 분할 번들링에 따른 제1 분할 리소스가 상기 클라이언트에 송신되도록 상기 통신 인터페이스를 제어하는 인스트럭션을 포함할 수 있다.
몇몇 실시예들에서, 상기 프로세서는 AI 프로세서이고, 상기 클라이언트와의 연결의 패턴을 얻는 인스트럭션은, 상기 클라이언트와 관련된 복수의 입력 요소 정보를 얻는 인스트럭션과, 상기 복수의 입력 요소 정보에서 특징(feature)를 추출하는 인스트럭션과, 상기 특징을 패턴 분류 인공 신경망에 입력하고, 상기 패턴 분류 인공 신경망으로부터 출력된 데이터를 이용하여 상기 패턴을 얻는 인스트럭션을 포함할 수 있다. 이 때, 상기 복수의 입력 요소 정보는, 상기 클라이언트에서 실행되는 스크립트에 의하여 수집된 각 기능 단위의 사용 빈도 정보와, 하나 이상의 추가 정보를 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 서비스 시스템의 구성도이다.
도 2 내지 도 5는 본 발명의 몇몇 실시예들에서 이용되는 리소스 분할 번들링을 설명하기 위한 도면들이다.
도 6 내지 도 12는 본 발명의 몇몇 실시예들에서 이용되는 패턴 분류 모델을 생성하는 과정을 설명하기 위한 도면들이다.
도 13 내지 도 14는, 본 발명의 몇몇 실시예들에서 분할 리소스들이 순차적으로 추가 다운로드 되면서 커버 되는 기능 단위가 증가하는 점을 설명하기 위한 도면들이다.
도 15는, 본 발명의 다른 실시예에 따른 리소스 제공 장치의 구성도이다.
도 16은, 본 발명의 또 다른 실시예에 따른 온라인 서비스 제공 서버의 구성도이다.
도 17 내지 도 19는 본 발명의 또 다른 실시예에 따른 온라인 서비스 제공 방법의 순서도들이다.
도 20은 본 발명의 몇몇 실시예들에 따른 예시적인 컴퓨팅 장치의 하드웨어 구성을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. 이하, 본 발명의 몇몇 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1을 참조하여 본 발명의 일 실시예에 따른 서비스 시스템의 구성 및 동작을 설명하기로 한다. 도 1에 도시된 바와 같이, 본 실시예에 따른 서비스 시스템(10)은 온라인 서비스 제공 서버(100) 및 리소스 제공 장치(200)를 포함하여 구성될 수 있다.
온라인 서비스 제공 서버(100)는, 클라이언트(31, 32)의 리퀘스트를 수신하고, 수신된 리퀘스트에 대응하는 서비스 데이터를 제공하는 것으로, 예를 들어 웹 서비스 모듈을 포함하는 것일 수 있다. 또한, 리소스 제공 장치는, 클라이언트(31, 32)에 제공되는 온라인 서비스와 관련된 리소스 데이터를 저장하고, 온라인 서비스 제공 서버(100)의 요청에 따라 클라이언트(31, 32)에 송신한다.
후술되겠지만, 리소스 제공 장치(200)는 복수의 서로 다른 리소스 분할 번들링(bundling)을 저장하고, 그 중 어느 하나의 리소스 분할 번들링의 적용이 결정된 클라이언트에 대하여, 적용이 결정된 리소스 분할 번들링에 포함된 분할 리소스 중 어느 하나를 송신하게 된다. 즉, 모든 클라이언트가 동일한 리소스 분할 번들링을 적용 받지는 않고, 각각의 클라이언트에 대하여 적용될 리소스 분할 번들링이 매치(match)되는 것으로 이해될 수 있을 것이다.
제1 클라이언트(31)에 대하여는 제1 리소스 분할 번들링이 적용되고, 제2 클라이언트(32)에 대하여는 제2 리소스 분할 번들링이 적용되는 경우를 가정하여 설명한다. 이 경우, 도 1에 도시된 바와 같이, 제1 클라이언트(31) 및 제2 클라이언트(32) 모두 서비스 시스템(10)에 대한 최초 접속을 하는 경우라 하더라도, 제1 클라이언트(31)에 송신되는 분할 리소스(제1 분할 리소스)와 제2 클라이언트(32)에 송신되는 분할 리소스(제2 분할 리소스)가 서로 다를 수 있는 것이다.
도 1을 참조하여 설명한 바와 같이, 본 실시예에 따른 서비스 시스템은 복수의 서로 다른 리소스 분할 번들링을 제공하며, 접속된 클라이언트 마다 적합한 리소스 분할 번들링을 적용해 줌으로써, 클라이언트 상황에 최적화된 방식으로 분할 리소스가 송신될 수 있도록 한다.
한편, 도 1에는 온라인 서비스 제공 서버(100) 및 리소스 제공 장치(200)가 각각 별개의 독립적인 물리 컴퓨팅 장치인 것으로 도시되어 있으나, 온라인 서비스 제공 서버(100)와 리소스 제공 장치(200)는 하나의 물리적인 컴퓨팅 장치 또는 하나의 가상 머신의 기능 단위로서 구현될 수도 있음은 물론이다.
본 발명의 몇몇 실시예들에 따르면, 신규의 방식으로 구성된 리소스 분할 번들링이 적용된다. 리소스 번들링은 여러 리소스 파일을 하나로 묶어서 제공함으로써 상기 리소스 파일 각각을 요청하기 위한 리퀘스트의 발생 건수를 줄이는 것을 의미하며, 리소스 분할 번들링은 복수의 분할 리소스 단위로 다운로드가 나뉘어 진행되도록 함으로써 한번에 모든 리소스 데이터를 다운로드하는데 있어서 발생되는 부담이 경감되도록 하는 것을 가리킨다. 리소스 분할 번들링이 수행될 때, 1차 분할 리소스에 포함되지 않은 리소스가 필요하게 되면 2차 분할 리소스가 요청되는 것으로 이해될 수 있을 것이다.
이하, 도 2 내지 도 5를 참조하여 상기 리소스 분할 번들링에 대하여 설명하기로 한다.
도 2에 도시된, 예시적인 제1 리소스 분할 번들링(20a)은 제1 분할 리소스(20a-1), 제2 분할 리소스(20a-2) 및 제3 분할 리소스(20a-3)를 포함한다. 즉, 제1 리소스 분할 번들링(20a)은 3분할 된 것으로 이해될 수 있을 것이다. 이미 설명한 바와 같이, 리소스 다운로드의 단위는, 제1 리소스 분할 번들링(20a) 전체가 아닌 각각의 분할 리소스(20a-1, 20a-2, 20a-3)가 된다.
제1 리소스 분할 번들링(20a)은 서비스를 구성하는 복수의 기능 단위 각각의 실행에 필요한 리소스들로 구성된다. 그리고, 상기 복수의 기능 단위는 기능 카테고리로 분류될 수 있다. 도 2에는 총 15개의 기능 단위가 기능 카테고리 A(21), 기능 카테고리 B(22) 및 기능 카테고리 C(23)로 분류된 것이 도시되어 있다.
상기 기능 단위 및 상기 기능 카테고리에 대한 이해를 돕기 위하여 예시적으로 설명하면, 상기 온라인 서비스가 인터넷 포털일 때, 기능 카테고리 A는 웹 메일 서비스이고, 기능 카테고리 A에 속하는 기능 단위는, 메일 읽기, 메일 삭제, 메일 쓰기 등일 수 있다. 또한, 기능 카테고리 B는 카페 서비스이고, 기능 카테고리 C는 쇼핑 서비스일 수 있다.
제1 리소스 분할 번들링(20a)은 분할 리소스들을 구분함에 있어서, 기능 카테고리를 기준으로 하지 아니한다. 즉, 하나의 분할 리소스에 복수의 기능 카테고리에 속한 기능 단위들의 리소스가 포함될 수 있다. 이는, 빈번하게 사용되는 기능 단위를 하나의 분할 리소스에 의하여 커버하기 위함이다. 이러한 관점에서, 도 2에 도시된 제1 리소스 분할 번들링(20a)의 각 분할 리소스들(20a-1, 20a-2, 20a-3)은 제1 카테고리의 기능 단위 및 상기 제1 카테고리와 상이한 제2 카테고리의 기능 단위를 포함하고 있다.
몇몇 실시예들에서, 각 분할 리소스에 대응되는 복수의 기능 단위들 각각이 실행될 때 직간접적으로 호출될 수 있는 함수들의 데이터 및 상기 함수들에서 참조되는 전역 변수들의 데이터가 상기 분할 리소스에 포함될 수 있다. 도 3에 도시된 예시적인 분할 리소스 A(40)는, 기능 단위 A1의 호출 함수 및 그 호출 함수에서 참조되는 전역 변수들로 구성된 리소스(41)와, 기능 단위 A3의 호출 함수 및 그 호출 함수에서 참조되는 전역 변수들로 구성된 리소스(42)를 포함하는 점이 도시된다.
또한, 분할 리소스 A(40)에 포함되는 리소스(41, 42)는 복수의 라이브러리(80a, 80b)에서 기능 단위 A1, A3와 관련된 일부의 호출 함수들 및 전역 변수들이 추출된 것일 수 있다. 즉, 상기 분할 리소스에는 복수의 라이브러리들에서 추출된 리소스 데이터가 포함될 수 있는 것이다. 도 4에 도시된 바와 같이, 각각의 기능 카테고리(50a, 50b, 50c)는 하나 이상의 라이브러리(60a, 60b, 60c)를 이용하여 그 소속 기능 단위들을 구현하는 것이 일반적이다. 이미 설명된 바와 같이, 상기 분할 리소스에는 복수의 기능 카테고리의 기능 단위들이 함께 커버될 수 있으므로, 이러한 이유로 상기 분할 리소스에는 복수의 라이브러리들에서 추출된 리소스 데이터가 포함될 수 있는 것이다.
또한, 각각의 리소스 분할 번들링이 서로 다른 개수의 분할 리소스를 포함할 수도 있다. 예를 들어, 도 5에 도시된 바와 같이, 제1 패턴(70a)에 대응되는 제1 리소스 분할 번들링(20a)은 3개의 분할 리소스(20a-1, 20a-2, 20a-3)를 포함하고, 제2 패턴(70b)에 대응되는 제2 리소스 분할 번들링(20b)은 4개의 분할 리소스(20b-1, 20b-2, 20b-3, 20b-4)를 포함할 수 있다.
다수의 분할 리소스를 포함하는 리소스 분할 번들링은 분할 리소스에 대한 리퀘스트를 다수 발생시키는 반면, 각각의 분할 리소스의 데이터 사이즈는 작아지게 된다. 따라서, 네트워크 환경이 좋지 않은 패턴에는 많은 분할 리소스를 포함하는 리소스 분할 번들링이 대응되는 것이 유리할 것이다. 또한, 소수의 분할 리소스를 포함하는 리소스 분할 번들링은 분할 리소스에 대한 리퀘스트를 다수 발생시키지 않는 반면, 각각의 분할 리소스의 데이터 사이즈는 커지게 된다. 따라서, 네트워크 환경이 좋은 패턴에는 적은 수의 분할 리소스를 포함하는 리소스 분할 번들링이 대응되도록 하여, 서버 측 부하를 경감시키는 것이 유리할 것이다. 이처럼 네트워크 상황 등을 반영하여 최적화된 방식으로 서비스 리소스가 제공될 수 있도록, 서로 다른 개수를 가지는 리소스 분할 번들링들이 운영될 수 있는 것이다.
몇몇 실시예들에서, 각각의 리소스 분할 번들링은 실제 사용자의 서비스 이용 패턴을 반영하여 구성된 것이다. 즉, 제1 패턴의 사용자가 빈번하게 사용한 기능 단위들이 하나의 분할 리소스를 통해 커버될 수 있도록 각각의 분할 리소스가 구성될 수 있는 것이다. 각각의 리소스 분할 번들링이 실제 사용자의 서비스 이용 패턴을 반영하여 구성되도록 함으로써, 추가적인 분할 번들링 리퀘스트의 발생이 최대한 억제될 수 있는 효과를 얻을 수 있다. 이하, 도 6 내지 도 7을 참조하여, 각 패턴 별 대응 리소스 분할 번들링이 생성되는 과정을 설명하기로 한다.
이미 설명한 바와 같이, 각각의 리소스 분할 번들링은 실제 사용자의 서비스 이용 패턴을 반영하여 구성된 것이다. 실제 사용자의 서비스 이용 패턴을 수집하기 위하여, 복수의 테스트 사용자 단말로부터 온라인 서비스에 접속한 후 로그아웃 또는 세션만료 시까지 어떤 기능 단위들이 액세스 되었는지, 그 액션 플로우(action flow)가 로그 형태로 수집될 수 있다. 예를 들어 상기 로그를 수집하기 위하여, 상기 테스트 사용자 단말에서 로그 수집용 스크립트가 실행되거나, 접속된 URL의 시퀀스(sequence)가 분석될 수 있을 것이다.
도 6은, 테스트 사용자 X의 단말로부터 100회의 서비스 접속 및 서비스 이용 이력이 수집된 후, 취합되는 과정을 도시한다. 100회의 온라인 서비스 접속 도중 액세스 된 기능 단위의 리스트(90a)가 취합되면, 각 접속에서 기능 단위 중복이 제거되고(90b), 100회의 온라인 접속 과정에서 각 기능 단위의 액세스 횟수가 합산됨으로써 기능 단위 사용 빈도 분포 데이터(91)가 확보될 수 있다.
다음으로, 복수의 테스트 사용자 단말로부터 얻은 기능 단위 사용 빈도 분포 데이터들이 클러스터링 된다. 도 7에 도시된 바와 같이, 각각의 테스트 사용자 단말로부터 얻은 기능 단위 사용 빈도 분포 데이터들(91a, 91b, 91c 내지 91n)을 클러스터링 로직에 입력하면, 복수의 클러스터가 식별될 것이다. 각각의 클러스터의 대표 값을 얻는 것에 의하여, 각각의 클러스터에 대응되는 단위 사용 빈도 분포 데이터가 확보될 수 있을 것이다. 또한, 각각의 클러스터와 상기 패턴이 일대일 대응될 수 있을 것이다. 이를 통해 각각의 패턴에 대응되는 기능 단위 사용 빈도 분포가 확보될 수 있는 것이다.
도 7에는, 사용자 A 내지 사용자 N의 기능 단위 사용 빈도 분포들(91a 내지 91n)이 총 M개의 클러스터로 클러스터링 된 예시적인 결과가 도시되어 있다. 여기서 M은 클러스터링 로직에 입력된 기능 단위 사용 빈도 분포의 개수보다는 같거나 작은 수가 될 것이다.
다음으로, 상기 클러스터링의 결과를 이용하여 패턴 분류 모델이 생성될 수 있다. 예를 들어, 테스트 과정에서 획득된 데이터를 학습 데이터로서 이용하는 머신 러닝(machine learning)을 통해 상기 패턴 분류 모델이 생성될 수 있을 것이다. 이와 관련하여 도 8 내지 도 12를 참조하여 설명한다.
도 8은 상기 학습 데이터가 구성되는 것을 설명하기 위한 도면이다. 도 7을 참조하여 설명된 클러스터링의 결과로 각 사용자의 패턴이 얻어지므로, 각 사용자의 특징 벡터(feature vector)에 상기 패턴의 식별자가 라벨링(labelling)될 수 있을 것이다. 예를 들어, 사용자 A의 기능 단위 사용 빈도 분포가 제4 패턴의 기능 단위 사용 빈도 분포로 클러스터링 되었다면, 상기 사용자 A의 클라이언트와의 연결(connection)을 표현하는 사용자 A의 특징 벡터(feature vector)에는, 제4 패턴의 식별자가 라벨링 될 수 있는 것이다.
도 9에 도시된 바와 같이, 라벨링 된 학습 데이터(92)를 이용하면, 지도학습(supervised learning) 방식으로 패턴 분류 인공 신경망(93)을 학습시킬 수 있을 것이다. 상기 학습 과정에서, 패턴 분류 인공 신경망(93)에서 출력된 각 클래스 별 확률 데이터(또는 confidential score)가 오차 함수(loss function)에 입력되면, 그 출력값에 기반하여 오차역전파(back propagation)이 수행되면서, 패턴 분류 인공 신경망(93)의 각 가중치(weight)가 업데이트 될 수 있을 것이다.
몇몇 실시예들에서, 상기 특징 벡터는 기능 단위 사용 빈도 분포 데이터와, 사용자 정보와, 장비 상황 정보 중 적어도 하나에서 추출된 복수의 특징들(features)을 이용하여 생성된 벡터일 수 있다.
상기 사용자 정보는, 사용자의 인적 사항에 대한 정보와, 사용자의 재직 사항에 대한 정보 중 적어도 하나를 포함할 수 있다. 상기 사용자의 인적 사항에 대한 정보는, 성별, 나이, 학력, 주소 등의 다양한 프로필 정보를 포함할 수 있다.
상기 온라인 서비스가 사내 업무 수행을 위한 서비스인 경우, 상기 사용자의 재직 사항에 대한 정보도 패턴의 식별에 고려되어야 할 것이다. 이 때, 상기 재직 사항에 대한 정보는 사용자의 부서 정보, 직급 정보 및 직무 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 장비 상황 정보는 상기 클라이언트의 네트워크 환경 정보, 상기 클라이언트의 하드웨어 성능 정보, 상기 클라이언트의 운영 체제 정보 및 상기 클라이언트의 브라우저 정보 중 적어도 하나를 포함할 수 있다. 상기 네트워크 환경 정보는 데이터 송수신 속도 및 프록시 사용 여부를 포함할 수 있고, 상기 클라이언트의 하드웨어 성능 정보는 CPU 사양 및 메모리 용량 등을 포함할 수 있다. 상기 운영 체제 정보는, 운영 체제가 모바일 디바이스의 운영체제인지 또는 데스크톱/노트북 디바이스의 운영체제인지를 가리킬 수도 있을 것이다. 몇몇 실시예들에서, 상기 장비 상황 정보는, 테스트 진행 시점의 서비스 서버 부하 정보를 더 포함할 수도 있다.
도 10 내지 도 12를 참조하여, 몇몇 실시예들에 따른 패턴 분류 인공 신경망(93)의 패턴 분류 인공 신경망(93) 학습 과정을 설명한다.
도 10 내지 도 12를 참조하여 설명되는 학습 과정은, 패턴 분류 인공 신경망(93)이 입력층(input layer)(94-1), 입력층(94-1)에 바로 연결되는 제1 은닉층(hidden 1 layer)(94-2a, 94-2b), 제1 은닉층(94-2a, 94-2b)에 바로 연결되는 제2 은닉층(hidden 2 layer)(94-3) 및 제2 은닉층(94-3)에 바로 연결되는 출력층(output layer)(94-4)을 포함하여 구성되는 것을 전제로 한다. 도 10은 전체적인 학습 과정을 도시한 것이고, 도 11은 제1 그룹의 특징이 제1 은닉층까지 개별적으로 학습되는 과정을 도시한 것이며, 도 12는 제2 그룹의 특징이 제2 은닉층까지 개별적으로 학습되는 과정을 도시한 것이다.
상기 제1 은닉층은 제1 노드 그룹(94-2a) 및 제2 노드 그룹(94-2b)을 포함할 수 있다. 또한, 상기 입력층 역시 제1 노드 그룹 및 제2 노드 그룹을 포함할 수 있다. 입력층(94-1)의 제1 노드 그룹은 제1 은닉층의 제1 노드 그룹(94-2a)과만 연결되며, 입력층(94-1)의 제2 노드 그룹은 제1 은닉층의 제2 노드 그룹(94-2b)과만 연결된다. 따라서, 제1 그룹의 특징(95-1, 95-2)과, 제2 그룹의 특징(95-3, 95-4)은 제1 은닉층까지는 서로 섞이지 않고 개별적으로 학습될 것이다. 반면, 제2 은닉층(94-3)부터는 상기 제1 그룹의 특징과 상기 제2 그룹의 특징이 서로 섞여서 학습되게 된다.
몇몇 실시예에서, 제1 그룹의 특징은 장비 상황 정보(95-1) 및 각 기능 단위의 리소스 사이즈 정보(95-2)를 포함할 수 있다. 각 기능 단위의 리소스 사이즈 정보(95-2)는 단위 기능을 사용 빈도의 순서로 정렬하고, 사용 빈도의 순서로 정렬된 각각의 단위 기능의 리소스 사이즈를 벡터화 한 정보일 수 있다. 따라서, 각 기능 단위의 리소스 사이즈 정보(95-2)는 각 단위 기능의 사용 빈도와 그 리소스 사이즈의 상관 관계에 대한 정보를 표현할 수 있다. 제1 그룹의 특징(95-1, 95-2)은 서비스 이용시점의 하드웨어 측면에 대한 정보를 패턴 결정에 반영하기 위한 것으로 이해될 수 있을 것이다.
또한, 제2 그룹의 특징은 사용자의 프로필에 대한 정보(95-4) 및 각 기능 단위의 사용 빈도에 대한 정보(95-3)를 포함할 수 있다. 각 기능 단위의 사용 빈도에 대한 정보(95-3)는 각 기능 단위를 사용 빈도를 기준으로 묶고, 그 묶음의 수를 다르게 하였을 때, 각 묶음의 사용빈도 간 분포의 형태로 벡터화 된 것일 수 있다. 즉, 각 기능 단위의 사용 빈도에 대한 정보(95-3)는 각각의 기능 단위가 골고루 사용되는지, 또는 편중되어 사용되는지에 대한 정보를 표현하는 벡터인 것으로 이해될 수 있을 것이다. 제2 그룹의 특징(95-3, 95-4)은 사용자 별 고유의 행동 방식에 대한 정보를 패턴 결정에 반영하기 위한 것으로 이해될 것이다.
제1 그룹의 특징(95-1, 95-2)과 제2 그룹의 특징(95-3, 95-4)은 각각 이질적인 정보를 표현하고 있는 것이어서, 초기에는 서로 섞여서 학습되는 경우 오히려 학습 결과에 있어서 노이즈가 발생되는 역효과를 가져올 수 있다. 이러한 점을 고려하여, 제1 그룹의 특징(95-1, 95-2)과, 제2 그룹의 특징(95-3, 95-4)은 제1 은닉층까지는 서로 섞이지 않고 개별적으로 학습되는 것으로 이해될 수 있을 것이다.
다음으로 도 13 내지 도 14를 참조하여, 본 발명의 몇몇 실시예들에서 분할 리소스들이 순차적으로 추가 다운로드 되면서 커버 되는 기능 단위가 증가하는 점을 설명한다.
도 13에는 예시적인 제1 패턴의 기능 단위 실행 빈도 분포(91-1)가 도시된다. 상기 제1 패턴에 대응되는 3분할의 리소스 분할 번들링을 구성하는 과정을 설명한다.
제1 분할 리소스에 포함될 기능 단위는, 사용 빈도 80% 이상일 것을 요건으로 하여 선정될 수 있다. 물론 상기 사용 빈도 80%는 예시적인 설명을 위한 것이며, 이는 상황 또는 정책에 따라 변경될 수 있는 기준치이다. 도 13의 예시적 상황에서, 상기 제1 분할 리소스에 사용 빈도 80%(100번의 접속 중 80회) 이상인 기능 단위 A1, A2, B1, B4, C5가 포함될 수 있을 것이다. 기능 단위 A1, A2, B1, B4, C5의 리소스 사이즈 합계가 10MB라고 하면, 리소스 번들링 전체의 사이즈 60MB 대비 1/6의 리소스만 다운받음으로써, 80%의 단위 기능 액세스를 커버할 수 있을 것이다.
상기 제1 분할 리소스에 포함되지 않은 단위 기능에 대한 리퀘스트가 수신되는 경우 제2 분할 리소스가 제공될 것이다. 상기 제2 분할 리소스는 사용 빈도 40% 이상 80% 미만에 해당하는 단위 기능들을 포함할 수 있을 것이다. 물론 상기 사용 빈도 40% 이상 80% 미만 역시 예시적인 설명을 위한 것이며, 이는 상황 또는 정책에 따라 변경될 수 있는 기준치이다. 도 13의 예시적 상황에서, 상기 제2 분할 리소스에 기능 단위 A3, B2, B3, C4가 포함될 수 있을 것이다.
또한, 상기 제1 분할 리소스 및 상기 제2 분할 리소스 모두에 포함되지 않은 단위 기능에 대한 리퀘스트가 수신되는 경우 제3 분할 리소스가 제공될 것이다. 상기 제2 분할 리소스는 사용 빈도 40% 미만에 해당하는 단위 기능들을 포함할 수 있을 것이다. 물론 상기 사용 빈도 40% 미만 역시 예시적인 설명을 위한 것이며, 이는 상황 또는 정책에 따라 변경될 수 있는 기준치이다. 도 13의 예시적 상황에서, 상기 제3 분할 리소스에 기능 단위 A4, A5, B5, C1, C2, C3가 포함될 수 있을 것이다.
도 14는 사용 빈도가 높은 소수의 기능 단위들을 첫번째로 다운로드 되는 분할 리소스에 포함시킴으로써, 클라이언트가 추가적인 분할 리소스를 리퀘스트할 가능성을 최소화하면서, 다운로드 되는 리소스의 데이터 사이즈를 효과적으로 감축할 수 있는 점을 보여주는 차트이다.
이하, 본 발명의 다른 실시예에 따른 리소스 제공 장치의 구성 및 동작을 도 15를 참조하여 설명한다. 도 15에 도시된 바와 같이, 본 실시예에 따른 리소스 제공 장치(200)는 리소스 분할 번들링 스토리지(230), 컨트롤러(210) 및 통신 인터페이스(220)를 포함할 수 있다. 리소스 분할 번들링 스토리지(230)는 복수의 서로 다른 리소스 분할 번들링(20a, 20b, 내지 20n)을 저장한다. 또한, 컨트롤러(210)는 온라인 서비스 제공 서버(200)로부터 리소스 분할 번들링의 식별자 및 요청된 기능 단위가 포함된 분할 리소스 제공 요청이 수신되면, 상기 분할 리소스 제공 요청에 대응되는 분할 리소스를 결정하고, 통신 인터페이스(220)를 제어하여 상기 분할 리소스가 클라이언트(31)에 송신되도록 할 수 있다. 도 15에 도시된 바와 달리, 리소스 분할 번들링 스토리지(230)가 리소스 제공 장치(200)의 외부에 위치한 별도의 스토리지 장치일 수도 있을 것이다.
이하, 본 발명의 또 다른 실시예에 따른 온라인 서비스 제공 서버의 구성 및 동작을 도 16을 참조하여 설명한다. 도 16에 도시된 바와 같이, 본 실시예에 따른 온라인 서비스 제공 서버(100)는 리소스 제공부(110), 패턴 식별부(120), 리퀘스트 핸들러(130) 및 통신 인터페이스(140)를 포함할 수 있다.
통신 인터페이스(140)는 제1 클라이언트(31)로부터 서비스 리퀘스트를 수신하고, 수신된 서비스 리퀘스트를 리퀘스트 핸들러(130)에 전달한다. 상기 서비스 리퀘스트는, 예를 들어 http 리퀘스트일 수 있다.
리퀘스트 핸들러(130)는 상기 서비스 리퀘스트가 수신된 세션 정보 등을 통하여 제1 클라이언트(31)를 식별하고, 제1 클라이언트에 대하여 수집된 정보들을 기 지정된 형식으로 가공한 후, 가공된 정보를 패턴 식별부(120)에 제공함으로써, 제1 클라이언트(31)와의 연결에 대한 패턴의 식별을 요청할 수 있다. 상기 가공된 정보는, 예를 들어 도 10을 참조하여 설명한 바와 같이, 장비 상황 정보, 각 기능 단위의 리소스 사이즈 정보, 사용자의 프로필에 대한 정보 및 각 기능 단위의 사용 빈도에 대한 정보 중 적어도 하나를 포함할 수 있다.
패턴 식별부(120)는 패턴 분류 모델에 리퀘스트 핸들러(130)로부터 제공된 제1 클라이언트에 대한 정보를 입력함으로써, 제1 클라이언트(31)와의 연결에 대한 패턴을 결정한다. 상기 패턴 분류 모델은, 예를 들어 도 6 내지 도 12를 참조하여 설명한 방식에 의하여 기계 학습된 패턴 분류 인공 신경망일 수 있다.
패턴 식별부(120)는 상기 결정된 패턴의 식별정보를 포함한 분할 리소스 제공 요청을 리소스 제공부(110)에 제공한다. 리소스 제공부(110)는 상기 분할 리소스 제공 요청에 대응되는 리소스 분할 번들링을 결정한다. 예를 들어, 리소스 제공부(110)는 패턴의 식별정보와 리소스 분할 번들링의 매칭 정보를 관리할 수 있을 것이다. 또한, 리소스 제공부(110)는 각각의 리소스 분할 번들링의 구성 정보를 관리할 수 있을 것이다. 상기 리소스 분할 번들링의 구성 정보는, 각각의 리소스 분할 번들링에 포함된 각각의 분할 리소스가 어떤 기능 단위를 커버하는지 여부에 대한 정보를 포함할 수 있다.
몇몇 실시예들에서, 리소스 제공부(110)는 제1 클라이언트(31)에 대한 분할 리소스 제공 이력을 관리할 수 있다. 또한, 리소스 제공부(110)는 제1 클라이언트(31)로부터 요청된 기능 단위에 대한 정보를 리퀘스트 핸들러(130)로부터 제공받고, 상기 분할 리소스 제공 이력에 따를 때, 상기 요청된 기능 단위를 커버하기 위하여 다음의 분할 리소스가 제1 클라이언트(31)에 제공되어야 하는지 여부를 판단할 수 있다. 리소스 제공부(110)는 다음의 분할 리소스가 제1 클라이언트(31)에 제공되어야 하는 것으로 판단한 경우, 통신 인터페이스(140)를 통하여 분할 리소스 제공 요청을 리소스 제공 장치(200)에 송신할 수 있다.
상기 분할 리소스 제공 요청은 리소스 분할 번들링의 식별정보를 포함할 수 있다. 또한, 상기 분할 리소스 제공 요청은 요청된 기능 단위의 식별 정보를 더 포함할 수도 있다. 리소스 제공 장치(200)는 상기 리소스 분할 번들링의 식별정보와 상기 요청된 기능 단위의 식별 정보를 이용하여, 제1 클라이언트(31)에 송신될 분할 리소스를 결정할 수 있을 것이다.
이하, 본 발명의 또 다른 실시예에 따른 온라인 서비스 제공 방법에 대하여 도 17 내지 도 19를 참조하여 설명하기로 한다. 본 실시예에 따른 온라인 서비스 제공 방법은 컴퓨팅 장치에 의하여 수행될 수 있다. 본 실시예에 따른 온라인 서비스 제공 방법은 제1 컴퓨팅 장치와 제2 컴퓨팅 장치에 의하여 나뉘어 수행될 수 있다. 이하, 본 실시예에 따른 온라인 서비스 제공 방법을 설명함에 있어서, 각각의 동작의 주체에 대한 기재가 생략될 수 있으며, 이 경우 상기 동작의 주체는 컴퓨팅 장치인 것으로 이해될 수 있을 것이다. 또한, 도 1 내지 도 16을 참조하여 설명된 실시예를 통하여 이해될 수 있는 기술적 사상은, 특별한 언급이 없더라도 본 실시예에 따른 온라인 서비스 제공 방법에 당연히 적용될 수 있다.
먼저, 도 17을 참조하여 패턴 분류 모델을 생성하는 방법을 설명한다.
단계 S100에서, 복수의 테스트 사용자 각각의 사용자 단말로부터 기능 단위 사용 빈도 분포 데이터가 수집된다. 상기 사용자 단말에서는 스크립트가 실행될 수 있으며, 상기 스크립트는 실제 사용자의 서비스 이용 패턴을 수집하기 위하여, 복수의 테스트 사용자 단말로부터 온라인 서비스에 접속한 후 로그아웃 또는 세션만료 시까지 어떤 기능 단위들이 액세스 되었는지, 그 액션 플로우(action flow) 로그 형태로 수집할 수 있다. 상기 기능 단위 사용 빈도 분포 데이터 외에, 사용자 정보, 장비 상황 정보 등이 더 수집될 수 있을 것이다.
단계 S102에서, 수집된 기능 단위 사용 빈도 분포 데이터가 클러스터링 됨으로써, 실제 사용자의 기능 단위 액세스 형태에 부합하는 패턴이 생성될 수 있다. 단계 S104에서, 클러스터링 결과를 이용하여, 각 테스트 사용자의 패턴을 식별하고, 상기 테스트 사용자를 표현하는 특징 벡터에 상기 식별된 패턴을 라벨링 함으로써, 학습 데이터를 얻는다. 상기 학습 데이터를 이용하여 패턴 분류 모델이 기계 학습 될 수 있을 것이다(S106, S108).
도 17을 참조하여 설명한 패턴 분류 모델의 생성 방법은, 도 6 내지 도 12를 참조하여 설명한 실시예를 통하여 더욱 정확히 이해될 수 있을 것이다.
다음으로, 도 18을 참조하여 온라인 서비스 제공을 위한 분할 리소스가 제공되는 방법을 설명한다.
제1 클라이언트로부터 리퀘스트가 수신되면(S200), 상기 리퀘스트가 상기 제1 클라이언트로부터의 최초 리퀘스트인지 여부가 확인될 수 있다(S202), 상기 리퀘스트가 최초 리퀘스트인 경우, 상기 제1 클라이언트와의 연결의 패턴이 식별되어야 한다. 상기 패턴의 식별을 위해, 상기 제1 클라이언트와의 연결에 대한 특징 벡터가 얻어지고(S204), 상기 특징 벡터를, 도 17을 참조하여 설명된 방법에 따라 학습된 패턴 분류 모델에 입력함으로써 상기 제1 클라이언트와의 패턴이 식별될 수 있다(S206). 또한, 상기 식별된 패턴에 대응되는 리소스 분할 번들링이 결정될 수 있을 것이다(S208).
상기 리소스 분할 번들링이 결정되면, 상기 제1 클라이언트에 송신될 분할 리소스가 결정되고, 송신된다(S210, S212). 상기 리소스 분할 번들링이 최초로 송신되어야 하는 상황이라면, 상기 분할 리소스는 상기 리소스 분할 번들링 첫번째 분할 리소스로 결정될 것이다. 이미 첫번째 분할 리소스가 송신된 경우, 상기 리소스 분할 번들링에서, 제1 클라이언트로부터 요청된 기능 단위를 커버하는 분할 리소스가 송신 대상으로 결정될 것이다. 단계 S200 내지 S212의 동작은 상기 제1 클라이언트로부터의 세션이 종료되거나, 제1 클라이언트가 로그 아웃 될 때까지 반복 될 것이다(S214).
몇몇 실시예에서, 도 19에 도시된 바와 같이, 상기 제1 클라이언트의 네트워크 환경 정보 및 상기 제1 클라이언트의 하드웨어 성능 정보 중 적어도 하나를 이용하여 상기 리소스 분할 번들링의 리소스 분할 수가 결정되고(S2100), 결정된 분할 수를 가지는 상기 리소스 분할 번들링의 하위 버전이 적용될 수 있을 것이다(S2102). 예를 들어, 상기 제1 클라이언트의 네트워크 환경 정보가 열악한 것으로 평가되거나, 상기 제1 클라이언트의 하드웨어 성능 정보가 열악한 것으로 평가되면, 상기 리소스 분할 번들링의 리소스 분할 수는 기준치보다 높은 값으로 결정될 것이다. 동일한 패턴으로 평가되는 클라이언트라도 다양한 상황에 처해 있을 수 있는 바, 본 실시예에서, 동일 리소스 분할 번들링의 다양한 하위 버전들이 운영될 수 있을 것이다.
또한, 몇몇 실시예에서, 도 18을 참조하여 설명하는 방법을 수행하는 컴퓨팅 장치에 제1 부하(load)가 가해지는 경우, 클라이언트와의 연결을 가리키는 패턴은 제1 가지수의 패턴 중 어느 하나로 결정되고, 상기 컴퓨팅 장치에 상기 제1 부하 보다 과중한 제2 부하가 가해지는 경우, 상기 클라이언트와의 연결을 가리키는 패턴은 상기 제1 가지수 보다 작은 제2 가지수의 패턴 중 어느 하나로 결정될 수도 있을 것이다. 즉, 너무 많은 개수의 패턴이 존재하고 경우, 부하가 과도한 상황이라면, 클라이언트와의 연결을 가리키는 패턴의 수를 감소시킴으로써, 처리 속도가 증가될 수 있을 것이다. 이를 위하여, 2개 버전 이상의 패턴 세트가 운영될 수 있을 것이다. 또한, 각각의 패턴 세트 마다 개별적인 패턴 분류 모델이 운영될 수 있을 것이다.
지금까지 도 1 내지 도 19을 참조하여 설명된 본 발명의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이하, 본 발명의 몇몇 실시예들에 따른 예시적인 컴퓨팅 장치의 하드웨어 구성을 도 20을 참조하여 설명하기로 한다.
도 20은 본 발명의 다양한 실시예에서 컴퓨팅 장치를 구현할 수 있는 예시적인 하드웨어 구성도이다. 본 실시예에 따른 컴퓨팅 장치(1000)는 하나 이상의 프로세서(1100), 시스템 버스(1600), 통신 인터페이스(1200), 프로세서(1100)에 의하여 수행되는 컴퓨터 프로그램(1500)을 로드(load)하는 메모리(1400)와, 컴퓨터 프로그램(1500)를 저장하는 스토리지(1300)를 포함할 수 있다. 도 20에는 본 발명의 실시예와 관련 있는 구성요소들 만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 20에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(1100)는 컴퓨팅 장치(1000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(1100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서 중 적어도 하나를 포함하여 구성될 수 있다. 또한, 프로세서(1100)는 본 발명의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1000)는 둘 이상의 프로세서를 구비할 수 있다. 메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1400)는 본 발명의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 하나 이상의 프로그램(190)을 로드(load) 할 수 있다. 메모리(1400)의 예시는 RAM이 될 수 있으나, 이에 한정되는 것은 아니다. 시스템 버스(1600)는 컴퓨팅 장치(1000)의 구성 요소 간 통신 기능을 제공한다. 상기 버스는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다. 통신 인터페이스(1200)는 컴퓨팅 장치(1000)의 유무선 인터넷 통신을 지원한다. 통신 인터페이스(1200)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(1200)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 통신 인터페이스(1200)는 하나 이상의 블록체인 노드(200) 및 하나 이상의 스토리지 노드(400)를 연결할 수 있다. 스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 스토리지(1300)는 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(1500)은 본 발명의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들을 포함할 수 있다. 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 발명의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.
컴퓨터 프로그램(1500)은 리소스 분할 번들링에 기반한 온라인 서비스 리소스 관리를 수행하는 프로그램일 수 있다. 컴퓨터 프로그램(1500)은 상기 클라이언트와의 연결의 패턴을 얻는 인스트럭션과, 복수의 서로 다른 리소스 분할 번들링들 중 상기 패턴에 대응되는 리소스 분할 번들링에 따른 제1 분할 리소스가 상기 클라이언트에 송신되도록 통신 인터페이스(1200)를 제어하는 인스트럭션을 포함할 수 있다.
몇몇 실시예들에서, 상기 클라이언트와의 연결의 패턴을 얻는 인스트럭션은, 상기 클라이언트와 관련된 복수의 입력 요소 정보를 얻는 인스트럭션과, 상기 복수의 입력 요소 정보에서 특징(feature)을 추출하는 인스트럭션과, 상기 특징을 패턴 분류 인공 신경망에 입력하고, 상기 패턴 분류 인공 신경망으로부터 출력된 데이터를 이용하여 상기 패턴을 얻는 인스트럭션을 포함할 수 있다. 상기 패턴 분류 인공 신경망은 메모리(1400)에 로드된 데이터일 수 있다. 또는, 상기 패턴 분류 인공 신경망은 AI 프로세서(미도시)에 연동되는 메모리(미도시)에 로드된 데이터일 수도 있다.
상기 복수의 입력 요소 정보는, 상기 클라이언트에서 실행되는 스크립트에 의하여 수집된 각 기능 단위의 사용 빈도 정보와, 하나 이상의 추가 정보를 포함할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 접속된 클라이언트에 서비스를 제공하는 컴퓨팅 장치에서 수행되는 방법에 있어서,
    상기 클라이언트와의 연결의 패턴을 얻는 단계; 및
    복수의 서로 다른 리소스 분할 번들링들 중 상기 패턴에 대응되는 리소스 분할 번들링에 따른 제1 분할 리소스를 상기 클라이언트에 송신하는 단계를 포함하는,
    온라인 서비스 제공 방법.
  2. 제1 항에 있어서,
    상기 서비스는 복수의 기능 단위로 구성되는 것이고,
    상기 제1 분할 리소스는,
    상기 제1 분할 리소스에 대응되는 복수의 기능 단위들 각각이 실행될 때 직간접적으로 호출될 수 있는 함수들의 데이터 및 상기 함수들에서 참조되는 전역 변수들의 데이터를 포함하는 것인,
    온라인 서비스 제공 방법.
  3. 제2 항에 있어서,
    상기 복수의 기능 단위는 복수의 카테고리로 분류되는 것이고,
    상기 제1 분할 리소스는,
    제1 카테고리의 기능 단위 및 상기 제1 카테고리와 상이한 제2 카테고리의 기능 단위를 포함하는 복수의 기능 단위에 대응되는 것인,
    온라인 서비스 제공 방법.
  4. 제3 항에 있어서,
    상기 제1 카테고리의 기능 단위들은 제1 라이브러리를 이용하여 구현되는 것이고, 상기 제2 카테고리의 기능 단위들 중 적어도 일부는 상기 제1 라이브러리와 상이한 제2 라이브러리를 이용하여 구현되는 것인,
    온라인 서비스 제공 방법.
  5. 제2 항에 있어서,
    상기 제1 분할 리소스에 대응되는 복수의 기능 단위들은,
    복수의 행위 수집용 클라이언트로부터 취합된 기능 단위 사용 빈도가 제1 기준치를 초과하는 복수의 기능 단위들을 포함하는,
    온라인 서비스 제공 방법.
  6. 제5 항에 있어서,
    상기 복수의 행위 수집용 클라이언트는,
    기 지정된 횟수의 서비스 연결에서 수행된 각 기능 단위의 사용 빈도 분포가 동일하거나 기준치 이내의 차이를 갖는 것으로 판정된 복수의 행위 수집용 클라이언트로 구성된 것인,
    온라인 서비스 제공 방법.
  7. 제5 항에 있어서,
    상기 제1 분할 리소스를 상기 클라이언트에 송신하는 단계는,
    상기 제1 분할 리소스에 대응되는 기능 단위에 포함되지 않는 기능 단위에 대한 액세스를 감지하면, 상기 패턴에 대응되는 리소스 분할 번들링에 따른 제2 분할 리소스를 상기 클라이언트에 송신하는 단계를 포함하되,
    상기 제2 분할 리소스에 대응되는 복수의 기능 단위들은,
    상기 복수의 행위 수집용 클라이언트로부터 취합된 기능 단위 사용 빈도가 제2 기준치를 초과하고 상기 제1 기준치 미만인 복수의 기능 단위들을 포함하는,
    온라인 서비스 제공 방법.
  8. 제1 항에 있어서,
    제1 패턴에 대응되는 리소스 분할 번들링과, 상기 제1 패턴과 상이한 제2 패턴에 대응되는 리소스 분할 번들링은 서로 리소스 분할 수가 다른 것인,
    온라인 서비스 제공 방법.
  9. 제1 항에 있어서,
    상기 제1 분할 리소스를 상기 클라이언트에 송신하는 단계는,
    상기 클라이언트의 네트워크 환경 정보 및 상기 클라이언트의 하드웨어 성능 정보 중 적어도 하나를 이용하여 리소스 분할 수를 결정하는 단계를 포함하는,
    온라인 서비스 제공 방법.
  10. 제9 항에 있어서,
    상기 제1 분할 리소스를 상기 클라이언트에 송신하는 단계는,
    상기 리소스 분할 번들링의 하위 버전 중, 상기 결정된 리소스 분할 수에 대응되는 버전의 리소스 분할 번들링에 따른 제1 분할 리소스를 상기 클라이언트에 송신하는 단계를 포함하는,
    온라인 서비스 제공 방법.
  11. 제1 항에 있어서,
    상기 클라이언트와의 연결의 패턴을 얻는 단계는,
    상기 클라이언트와 관련된 복수의 입력 요소 정보를 얻는 단계;
    상기 복수의 입력 요소 정보에서 특징(feature)를 추출하는 단계; 및
    상기 특징을 패턴 분류 모델에 입력하고, 상기 패턴 분류 모델로부터 출력된 데이터를 이용하여 상기 패턴을 얻는 단계를 포함하되,
    상기 복수의 입력 요소 정보는,
    상기 클라이언트에서 실행되는 스크립트에 의하여 수집된 각 기능 단위의 사용 빈도 정보와, 하나 이상의 추가 정보를 포함하는,
    온라인 서비스 제공 방법.
  12. 제11 항에 있어서,
    상기 하나 이상의 추가 정보는,
    상기 클라이언트의 사용자 정보를 포함하되, 상기 사용자 정보는 부서 정보, 직급 정보 및 직무 정보 중 적어도 하나를 포함하는 것인,
    온라인 서비스 제공 방법.
  13. 제11 항에 있어서,
    상기 하나 이상의 추가 정보는,
    상기 클라이언트의 네트워크 환경 정보, 상기 클라이언트의 하드웨어 성능 정보, 상기 클라이언트의 운영 체제 정보 및 상기 클라이언트의 브라우저 정보 중 적어도 하나를 포함하는,
    온라인 서비스 제공 방법.
  14. 제11 항에 있어서,
    상기 패턴 분류 모델은 입력층, 제1 은닉층, 제2 은닉층 및 출력층을 포함하는 인공 신경망이고,
    상기 입력층은 제1 노드 그룹 및 제2 노드 그룹을 포함하는 것이고,
    상기 제1 은닉층은 상기 입력층의 제1 노드 그룹과만 연결되는 제1 노드 그룹 및 상기 입력층의 제2 노드 그룹과만 연결되는 제2 노드 그룹을 포함하는 것이며,
    상기 제2 은닉층의 각 노드는 상기 제1 은닉층의 모든 노드와 연결되는 것이고,
    상기 입력층의 제1 노드 그룹에는 장비 상황 정보를 표현하는 제1 특징 및 각 기능 단위의 리소스 사이즈 정보를 표현하는 제2 특징이 입력되고,
    상기 입력층의 제2 노드 그룹에는 각 기능 단위의 사용 빈도를 표현하는 제3 특징 및 사용자 정보를 표현하는 제4 특징이 입력되는 것인,
    온라인 서비스 제공 방법.
  15. 제1 항에 있어서,
    상기 클라이언트와의 연결의 패턴을 얻는 단계는,
    상기 컴퓨팅 장치에 제1 부하(load)가 가해지는 경우, 제1 가지수의 패턴 중 어느 하나를 얻는 단계; 및
    상기 컴퓨팅 장치에 상기 제1 부하 보다 과중한 제2 부하가 가해지는 경우, 상기 제1 가지수 보다 작은 제2 가지수의 패턴 중 어느 하나를 얻는 단계를 포함하는,
    온라인 서비스 제공 방법.
  16. 접속된 클라이언트에 서비스를 제공하는 컴퓨팅 장치에 있어서,
    상기 클라이언트에 연결되는 통신 인터페이스;
    리소스 분할 번들링 프로그램이 로드되는 메모리;
    상기 리소스 분할 번들링 프로그램을 실행하는 프로세서를 포함하되,
    상기 리소스 분할 번들링 프로그램은,
    상기 클라이언트와의 연결의 패턴을 얻는 인스트럭션(instruction); 및
    복수의 서로 다른 리소스 분할 번들링들 중 상기 패턴에 대응되는 리소스 분할 번들링에 따른 제1 분할 리소스가 상기 클라이언트에 송신되도록 상기 통신 인터페이스를 제어하는 인스트럭션을 포함하는,
    온라인 서비스 제공 서버.
  17. 제16 항에 있어서,
    상기 클라이언트와의 연결의 패턴을 얻는 인스트럭션은,
    상기 클라이언트와 관련된 복수의 입력 요소 정보를 얻는 인스트럭션;
    상기 복수의 입력 요소 정보에서 특징(feature)를 추출하는 인스트럭션; 및
    상기 특징을 패턴 분류 인공 신경망에 입력하고, 상기 패턴 분류 인공 신경망으로부터 출력된 데이터를 이용하여 상기 패턴을 얻는 인스트럭션을 포함하되,
    상기 복수의 입력 요소 정보는,
    상기 클라이언트에서 실행되는 스크립트에 의하여 수집된 각 기능 단위의 사용 빈도 정보와, 하나 이상의 추가 정보를 포함하는,
    온라인 서비스 제공 서버.
KR1020200065376A 2020-05-29 2020-05-29 리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치 KR20210147726A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200065376A KR20210147726A (ko) 2020-05-29 2020-05-29 리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200065376A KR20210147726A (ko) 2020-05-29 2020-05-29 리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20210147726A true KR20210147726A (ko) 2021-12-07

Family

ID=78868631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200065376A KR20210147726A (ko) 2020-05-29 2020-05-29 리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20210147726A (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100296653B1 (ko) 1999-06-21 2001-07-12 김용옥 냉각시스템에 있어서 제빙장치용 열교환기
KR100284671B1 (ko) 1992-11-20 2001-10-24 오하시 미츠오 과산화수소의제조방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100284671B1 (ko) 1992-11-20 2001-10-24 오하시 미츠오 과산화수소의제조방법
KR100296653B1 (ko) 1999-06-21 2001-07-12 김용옥 냉각시스템에 있어서 제빙장치용 열교환기

Similar Documents

Publication Publication Date Title
TWI620075B (zh) 用於雲端巨量資料運算架構之伺服器及其雲端運算資源最佳化方法
US11036552B2 (en) Cognitive scheduler
EP2338112B1 (en) Batch processing system
WO2022252363A1 (zh) 数据处理方法、计算机设备以及可读存储介质
US11558451B2 (en) Machine learning based application deployment
CN110417903A (zh) 一种基于云计算的信息处理方法和系统
US20220103433A1 (en) Infrastructure discovery and analysis
JP2023545765A (ja) データベース管理システムのための学習ベースのワークロードリソース最適化
CN113360947B (zh) 数据脱敏方法及装置、计算机可读存储介质、电子设备
US20200302343A1 (en) Self-learning selection of information-analysis runtimes
US9904574B2 (en) Parallel computing without requiring antecedent code deployment
WO2021126427A1 (en) Management of indexed data to improve content retrieval processing
JP2023537082A (ja) 機械学習パイプラインの自動選択を最適化するためのメタ学習の活用
Adil et al. CA‐MLBS: content‐aware machine learning based load balancing scheduler in the cloud environment
US20200119997A1 (en) Scalable web services execution
CN111897707A (zh) 业务系统的优化方法和装置、计算机系统和存储介质
KR20210147726A (ko) 리소스 분할 번들링 기반 서비스 제공 방법 및 그 장치
CN113568739B (zh) 用户资源额度分配方法、装置及电子设备
US20230168887A1 (en) Identifying microservices for a monolith application through static code analysis
CN113032647B (zh) 数据分析系统
CN111400623B (zh) 用于搜索信息的方法和装置
WO2021051920A1 (zh) 模型优化方法、装置、存储介质及设备
CN113760822A (zh) 基于hdfs的分布式智慧校园文件管理系统优化方法及装置
KR102247067B1 (ko) 웹사이트에서 수집된 url을 처리하는 방법, 장치 및 컴퓨터 프로그램
CN112529207A (zh) 模型优化方法、装置、存储介质及设备

Legal Events

Date Code Title Description
A201 Request for examination