KR20140137653A - A Method and Device for Analyzing the Event log to extract co-occurrences - Google Patents

A Method and Device for Analyzing the Event log to extract co-occurrences Download PDF

Info

Publication number
KR20140137653A
KR20140137653A KR1020130058433A KR20130058433A KR20140137653A KR 20140137653 A KR20140137653 A KR 20140137653A KR 1020130058433 A KR1020130058433 A KR 1020130058433A KR 20130058433 A KR20130058433 A KR 20130058433A KR 20140137653 A KR20140137653 A KR 20140137653A
Authority
KR
South Korea
Prior art keywords
cluster
event
electronic device
information
event log
Prior art date
Application number
KR1020130058433A
Other languages
Korean (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 KR1020130058433A priority Critical patent/KR20140137653A/en
Publication of KR20140137653A publication Critical patent/KR20140137653A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions

Abstract

If an event occurs in an electronic device, a processor collects information of the event, time in which the event occurs, and location data of the electronic device. The processor clusters the event log into at least one cluster. The information related to the cluster is created, and the cluster is labeled with a predetermined name based on the time and the location data contained in the event log. In addition, if a new event occurs in the electronic device, the processor collects the event log and determines the distance between the central value of the cluster and the event log newly collected. If the distance is equal to or less than a predetermined value, the event log, which is newly collected, is contained in the cluster, and the central value of the cluster is calculated. The number of the events contained in the cluster may be increased.

Description

전자장치의 이벤트 로그 분석 방법 및 장치{A Method and Device for Analyzing the Event log to extract co-occurrences}Technical Field [0001] The present invention relates to an event log analyzing method and apparatus for an electronic device,

아래의 실시 예들은 전자장치의 사용에 따라 발생하는 이벤트 로그를 수집하고, 분석을 함으로써, 사용자의 전자 장치 사용 패턴 및 일상 생활을 대표하는 패턴을 추출하고 모델링 하는 방법 및 장치에 관한 것이다.The following embodiments are directed to a method and apparatus for extracting and modeling a pattern representing a user's electronic device usage pattern and daily life by collecting and analyzing an event log generated according to usage of the electronic device.

이벤트 로깅(event logging)은 전자장치에 소프트웨어 및 하드웨어 이벤트를 기록하는 것이다. 전자장치의 소프트웨어 모듈 또는 하드웨어 모듈은 이벤트를 생성하여 이벤트 로그 수집부에 전달하고, 이벤트 로그 수집부는 이벤트 로그를 저장부에 저장한다. 이벤트 로그는 단말기에서 실행되는 프로세스들의 일련의 동작에 대한 기록이다. Event logging is the recording of software and hardware events on electronic devices. The software module or the hardware module of the electronic device generates and transmits an event to the event log collection unit, and the event log collection unit stores the event log in the storage unit. The event log is a record of the sequence of operations of the processes running on the terminal.

전자장치에 저장된 이벤트 로그를 분석하면 전자장치를 사용하는 사용자의 관심사, 의도 및 전자장치 사용 특징을 파악하고, 이를 활용하여 사용자 맞춤형 서비스 또는 사용자 상황인지 서비스를 제공할 수 있다.Analyzing the event log stored in the electronic device, the user's interest, intention, and characteristics of the electronic device using the electronic device can be analyzed and utilized to provide a user-customized service or a user context aware service.

본 발명의 목적은 전자장치에서 이벤트가 발생하면 이벤트 정보, 이벤트 발생 시각 및 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하고, 이벤트 로그를 클러스터링하고, 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 클러스터에 라벨명을 부가함으로써, 사용자의 전자장치 사용 패턴을 예측 할 수 있 전자장치의 이벤트 로그 분석 방법 및 장치를 제공함에 있다. An object of the present invention is to provide an electronic device that collects event logs including event information, event occurrence time, and location data of electronic devices when an event occurs in an electronic device, clusters event logs, A method of analyzing an event log of an electronic device capable of predicting a user's electronic device usage pattern by adding a label name to a cluster.

본 발명의 다른 목적은 사용자의 일상 생활에서 반복되는 활동에 대한 패턴 분석의 정확도를 향상 시킬 수 있고, 이에 기반하여 상황인지 및 사용자 맞춤형 서비스 등에서 보다 나은 사용자 경험(UX)을 제공할 수 있는 전자장치의 이벤트 로그 분석 방법 및 장치를 제공함에 있다. It is another object of the present invention to provide an electronic device capable of improving the accuracy of pattern analysis for repeated activities in a user's daily life and providing a better user experience (UX) And an apparatus and method for analyzing an event log.

예시적 실시예에 따르면, 전자장치에서 이벤트가 발생하면 상기 이벤트 정보, 이벤트 발생 시각 및 상기 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하는 단계, 상기 이벤트 로그를 적어도 하나의 클러스터로 클러스터링 하는 단계, 상기 클러스터와 관련된 정보를 생성하는 단계, 상기 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 상기 클러스터에 라벨명을 부가하는 단계를 포함하는 것을 특징으로 하는 이벤트 로그 관리 방법이 제공될 수 있다.According to an exemplary embodiment, when an event occurs in an electronic device, collecting an event log including the event information, an event occurrence time and position data of the electronic device, clustering the event log into at least one cluster Generating information related to the cluster, and adding a label name to the cluster based on time and location data included in the event log.

상기 방법은 상기 위치데이터에 기초하여 상기 전자장치의 외부로부터 지명을 획득하고, 상기 라벨명에 상기 지명이 포함되도록 할 수 있다. 상기 클러스터링 단계는, 상기 전자장치의 하드웨어와 관련된 이벤트 로그 및 상기 전자장치의 소프트웨어와 관련된 이벤트 로그를 구분하여 클러스터링 할 수 있다.The method may obtain a place name from the outside of the electronic device based on the location data, and cause the place name to be included in the label name. The clustering step may classify and cluster the event logs associated with the hardware of the electronic device and the event logs associated with the software of the electronic device.

상기 클러스터와 관련된 정보는 상기 클러스터의 중심 값 및 상기 클러스터를 구성하는 이벤트 로그 개수를 포함할 수 있다. 상기 클러스터와 관련된 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능하다. The information related to the cluster may include the center value of the cluster and the number of event logs constituting the cluster. The information associated with the cluster is accessible from an app running on the electronic device.

또 다른 예시적 실시예에 따르면, 전자장치에서 이벤트 발생에 따라 생성된 이벤트 로그로 구성되며, 각각 다른 중심 값을 갖는 제 1 클러스터와 제 2 클러스터를 비교하는 단계, 이벤트와 관련된 시간 정보 및 상기 전자장치의 위치데이터에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터의 유사성을 판단하는 단계, 상기 유사성에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터를 하나의 그룹으로 결정하는 단계 및 상기 그룹에 대한 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 방법이 제공될 수 있다.According to yet another exemplary embodiment, there is provided a method comprising: comparing a first cluster and a second cluster, each of which has a different center value, with an event log generated in response to an event occurrence in an electronic device; Determining a similarity between the first cluster and the second cluster based on position data of the apparatus, determining the first cluster and the second cluster as one group based on the similarity, The method comprising the step of storing the information.

상기 그룹에 대한 정보는 그룹 아이디, 그룹을 구성하는 각 클러스터 아이디 및 각 클러스터의 유사성 관련 정보를 포함할 수 있다. 상기 그룹에 대한 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능하다.The information on the group may include a group ID, each cluster ID constituting the group, and similarity-related information of each cluster. Information about the group is accessible from an app running on the electronic device.

또 다른 예시적 실시예에 따르면, 상기 전자장치에서 새로운 이벤트가 발생하면 이벤트 로그를 수집하는 단계, 상기 클러스터의 중심 값과 상기 수집된 이벤트 로그의 거리를 결정하는 단계, 상기 거리가 미리 결정된 값 이하인 경우, 상기 이벤트 로그를 상기 클러스터에 포함시키는 단계, 상기 클러스터의 중심 값을 다시 계산하는 단계 및 상기 클러스터에 포함된 이벤트 로그의 개수를 증가시키는 단계를 포함하는 것을 특징으로 하는 방법이 제공될 수 있다.According to another exemplary embodiment, there is provided an electronic device, comprising: collecting an event log when a new event occurs in the electronic device; determining a distance between the center value of the cluster and the collected event log; , Including the step of including the event log in the cluster, recalculating the center value of the cluster, and increasing the number of event logs included in the cluster .

상기 라벨명은 사용자 입력에 의해 편집 가능하다.The label name is editable by user input.

전자장치에서 이벤트가 발생하면 이벤트 정보, 이벤트 발생 시각 및 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하고, 이벤트 로그를 클러스터링하고, 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 클러스터에 라벨명을 부가함으로써 사용자의 전자장치 사용 패턴을 예측 할 수 있다. 이를 통해 사용자의 일상 생활에서 반복되는 활동에 대한 패턴 분석의 정확도를 향상 시킬 수 있고, 이에 기반하여 상황인지 및 사용자 맞춤형 서비스 등에서 보다 나은 사용자 경험(UX)을 제공할 수 있다.When an event occurs in an electronic device, an event log including event information, an event occurrence time and position data of the electronic device is collected, an event log is clustered, and a label name The electronic device usage pattern of the user can be predicted. Through this, it is possible to improve the accuracy of the pattern analysis of the activities repeated in the user's daily life, and thereby provide a better user experience (UX) in context awareness and customized services.

도1은 본 발명의 전자장치를 개략적으로 도시한 도면
도2는 본 발명의 하드웨어를 도시한 도면
도3는 본 발명의 소프트웨어를 도시한 도면
도4는 이벤트 발생시 프로세서에서 이벤트 로그를 처리하는 블럭을 개념적으로 보여주는 도면
도 5는 이벤트 로그 저장부에 저장되는 이벤트 로그 정보를 도시한 도면
도 6은 클러스터 정보 저장부에 저장되는 클러스터 정보를 도시한 도면
도 7 은 그룹정보를 나타내는 도면
도 8 은 이벤트 발생시 처리과정을 나타내는 흐름도
도 9 은 새로운 이벤트 발생시 처리과정을 나타내는 흐름도
도 10 은 두 개의 클러스터를 비교하여 그룹을 생성하는 과정을 나타내는 흐름도
Figure 1 schematically depicts an electronic device of the present invention;
2 is a block diagram illustrating the hardware of the present invention.
3 is a block diagram of software of the present invention
4 is a block diagram conceptually showing a block for processing an event log in a processor when an event occurs
5 is a diagram showing event log information stored in an event log storage unit
6 is a view showing cluster information stored in the cluster information storage unit
7 is a diagram showing group information
FIG. 8 is a flowchart showing a processing procedure when an event occurs
9 is a flowchart showing a processing procedure when a new event occurs
10 is a flowchart showing a process of comparing two clusters to generate a group

본 발명은 정제되지 않은 다양한 종류의 데이터를 기반으로 사용자 상황을 고려한 패턴 그룹(Contextual pattern group)을 추출하는데 목적이 있다. 전자 장치의 액티비티(Activity) 및 상태 변화에 따라 발생하는 이벤트를 기반으로 데이터를 쌓으면서 클러스터를 생성한다. 클러스터를 구성하는 항목들은 클러스터 마다 다른 값을 가지며, 이는 상황 정보(Contextual information)를 수치화 하는 데 의미가 있다. 한 번 클러스터가 생성된 이후에는 데이터가 인입될 때 마다 클러스터를 갱신한다. 클러스터 정보 중 유사 데이터를 추출한 결과를 동시 출현(co-occurrence)이라고 하며 이 결과가 임계치 이상 존재하는 클러스터를 멤버(member)로하는 사용자 상황을 고려한 패턴 그룹(Contextual pattern group)을 생성한다. 클러스터링 방법으로는 K-means 와 nested-EM 알고리즘을 사용하며 클러스터링 또는 상황을 고려한 패턴 그룹(Contextual pattern group)에 사용자가 라벨링(Labeling)을 할 수 있는 기능을 가진다. 이는 데이터의 인입시마다 보다 정확한 클러스터가 만들어질 수 있도록 피드백을 반영하는 로직을 가진다.An object of the present invention is to extract a contextual pattern group based on various types of data that have not been refined. Clusters are created by accumulating data based on events occurring according to activity and state change of electronic devices. The items constituting the cluster have different values for each cluster, which is meaningful for quantifying contextual information. Once the cluster is created, the cluster is updated whenever data is fetched. The result of extracting the similar data among the cluster information is referred to as a co-occurrence, and a contextual pattern group is generated considering a user situation in which a cluster having a result exceeding a threshold value is a member. K-means and nested-EM algorithms are used as the clustering method, and the user has a function of labeling in the contextual pattern group considering the clustering or the situation. It has logic that reflects the feedback so that a more accurate cluster can be created each time data is imported.

이하에서, 예시적 실시 예들의 이러한 또는 다른 측면들이, 첨부된 도면을 참조하여 상세히 설명된다. 그러나, 본 발명이 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.In the following, these and other aspects of the exemplary embodiments are described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference symbols in the drawings denote like elements.

또한 본 명세서 및 첨부된 특허 청구범위에 사용된 단수형은 문맥상 명확하게 달리 지적하지 않은 이상 복수형도 포함하는 것으로 의도된 것이다. 또한, 본 명세서에 사용된 "및" 이라는 용어는 열거된 관련 아이템들 중 하나 이상의 아이템의 가능한 모든 조합을 지칭하고 포함하는 것으로 이해되어야 한다.Also, the singular forms used in this specification and the appended claims are intended to include the plural forms as well, unless the context clearly dictates otherwise. It is also to be understood that the term "and" as used herein refers to and includes all possible combinations of one or more of the listed related items.

또한 흐름도와 관련하여 설명되는 방법들은 흐름도에 도시된 단계의 순서를 바꾸거나, 특정 단계를 반복하거나 생략함으로써 변경될 수 있다.
Also, the methods described in connection with the flowcharts may be altered by reordering the steps shown in the flowchart, or by repeating or omitting certain steps.

이하, 첨부된 도면을 참조하여 본 개시를 설명한다. Hereinafter, the present disclosure will be described with reference to the accompanying drawings.

도 1은 예시적 실시예에 따른 전자 장치(100)를 개략적으로 도시한다. 1 schematically illustrates an electronic device 100 according to an exemplary embodiment.

도 1을 참조하면, 상기 전자 장치(100)는 하드웨어(110) 또는 소프트웨어(120)를 포함할 수 있다. 상기 하드웨어(110)에 한 실시예에 대한 설명이 도 2와 연관되어 제공된다. 상기 소프트웨어(120)는 커널(kernel)(121), 미들웨어(middleware)(122), 어플리케이션 프로그래밍 인터페이스(API: application programming interface)(123) 또는 어플리케이션(124)을 포함할 수 있으며, 예시적 실시예에 대한 자세한 설명이 도 3와 연관되어 제공된다. Referring to FIG. 1, the electronic device 100 may include hardware 110 or software 120. A description of one embodiment of the hardware 110 is provided in connection with FIG. The software 120 may include a kernel 121, a middleware 122, an application programming interface (API) 123, or an application 124, Is provided in connection with FIG.

전자 장치(100)는, 예를 들면, 전자 시계, 냉장고, 에어컨, 청소기, 인공 지능 로봇, TV, DVD(digital video disk) 플레이어, 오디오, 오븐, 전자레인지, 세탁기, 전자 팔찌, 전자 목걸이, 공기 청정기, 전자 액자, 각종 의료기기(예를 들면, MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography) 촬영기, 초음파기), 네비게이션 장치(navigation device), 블랙 박스(black box), 셋톱 박스(set-top box), 전자 사전, 자동차 장치, 조선 장치, 항공 장치, 보안 기기, 전자 의복, 전자 키, 농축수산 장치, 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), PDA(personal digital assistant), PMP(portable multimedia player), 태블릿 PC(tablet personal computer), 이동전화기, 화상전화기, 스마트 폰(smartphone), 전자북리더기, 카메라, 웨어러블 장치(wearable device), 무선 장치(wireless device), GPS 수신기(global positioning system receiver), 핸드-헬드 장치(hand-held device), MP3 플레이어, 캠코더(camcorder), 게임 콘솔(game consoles), 손목 시계(wrist watch), HMD(head-mounted display), 평판 표시 장치(flat panel device), 디지털 픽쳐 프레임(digital picture frame), 전자 보드(electronic board), 전자 사인 입력 장치(electronic signature receiving device) 또는 프로젝터(projector) 등일 수 있다. 본 개시에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.The electronic device 100 may be any electronic device such as an electronic watch, a refrigerator, an air conditioner, a vacuum cleaner, an artificial intelligent robot, a TV, a DVD (digital video disk) player, an audio oven, a microwave oven, (E.g., magnetic resonance angiography (MRA), magnetic resonance imaging (MRI), computed tomography (CT), ultrasound), a navigation device, a black box, An electronic dictionary, an automobile device, a shipbuilding device, an aviation device, a security device, an electronic apparel, an electronic key, a concentrated fishery device, a desktop personal computer, a laptop personal computer, A personal digital assistant (PDA), a portable multimedia player (PMP), a tablet personal computer, a mobile phone, a videophone, a smartphone, an electronic book reader, a camera, a wearable device, (wireless device), GPS reception A global positioning system receiver, a hand-held device, an MP3 player, a camcorder, game consoles, a wrist watch, a head-mounted display (HMD) A digital panel, a flat panel device, a digital picture frame, an electronic board, an electronic signature receiving device or a projector. It will be apparent to those skilled in the art that the electronic device according to the present disclosure is not limited to the devices described above.

도 2는 예시적 실시예에 따른 하드웨어(200)(예: 상기 하드웨어 110)를 개략적으로 도시한다. 도 2를 참조하면, 상기 하드웨어(200)는 하나 이상의 프로세서(201)를 포함할 수 있다. 예를 들면, 도2에 도시된 바와 같이, 상기 프로세서(201)는 하나 이상의 어플리케이션 프로세서(AP: application processor) (201A)와 하나 이상의 커뮤니케이션 프로세서(CP: communication processor) (201B)를 포함할 수 있다. 상기 AP (201A)는 운영체제 또는 응용 프로그램을 구동하여 상기 AP (201)에 연결된 다수의하드웨어 또는 소프트웨어 구성요소들을 제어하고, 멀티미디어 데이터를 포함한 각종 데이터 처리 및 연산을 수행할 수 있는 프로세서로서, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 구현 예에 따라서는, 상기 프로세서(201)는 GPU(graphic processing unit, 미도시)를 더 포함할 수 있다.FIG. 2 schematically illustrates hardware 200 (e.g., hardware 110) according to an exemplary embodiment. Referring to FIG. 2, the hardware 200 may include one or more processors 201. 2, the processor 201 may include one or more application processors (APs) 201A and one or more communication processors (CP) 201B, for example. . The AP 201A is a processor capable of controlling a plurality of hardware or software components connected to the AP 201 by driving an operating system or an application program and performing various data processing and calculation including multimedia data, For example, a system on chip (SoC). In some implementations, the processor 201 may further include a graphics processing unit (GPU) (not shown).

상기 CP (201B)는 상기 하드웨어(200)(예: 상기 하드웨어 110)를 포함하는 전자 장치(예: 상기 전자 장치 100)의 통신 기능을 수행할 수 있는 프로세서로서, 예를 들면, SoC로 구현될 수 있다. 구현 예에 따라서는, 상기 CP (201B)는 멀티미디어 제어 기능의 적어도 일부를 수행할 수 있다. 또한, 상기 CP (201B)는 SIM 카드(subscriber identification module card, 221)와 같은 가입자 식별 모듈을이용하여 통신 네트워크 내에서 단말의 구별 및 인증을 수행하고, 사용자에게 음성 통화, 영상 통화, 문자 메시지 또는 패킷 데이터(packet data) 등의 서비스들을 제공할 수 있다. 또한, 상기CP (201B)는 RF부(radio frequency unit) (205)의 데이터 송수신을 제어할 수 있다. 도 2에서는, 상기 CP (201B), 전력관리부 (203) 또는 메모리(204)등의 구성요소들이 상기 AP (201A)와 별개의 구성요소로 도시되어 있으나, 어떤 실시예에 따르면, 상기 AP (201A)가 전술한 구성요소들의 적어도일부(예: 상기 CP 201B)를 포함하도록 구현될 수 있다. The CP 201B is a processor capable of performing the communication function of an electronic device (e.g., the electronic device 100) including the hardware 200 (e.g., the hardware 110), for example, . In some implementations, the CP 201B may perform at least some of the multimedia control functions. In addition, the CP 201B performs identification and authentication of terminals in a communication network using a subscriber identification module such as a SIM card (subscriber identification module card) 221, and provides the user with a voice call, a video call, a text message, And may provide services such as packet data. In addition, the CP 201B can control data transmission / reception of a radio frequency unit (RF unit) 205. 2, components such as the CP 201B, the power management unit 203, or the memory 204 are shown as separate components from the AP 201A. However, according to some embodiments, the AP 201A May include at least a portion of the above-described components (e.g., CP 201B).

상기 RF 부(205)는 데이터의 송수신, 예를 들면, RF 신호 또는 호출된 전자신호의 송수신을 담당한다. 상기RF 부(205)는, 도시되지는 않았으나, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter) 또는 LNA(low noise amplifier) 등을 포함할 수 있다. 또한, 상기 RF 부(205)는 무선통신에서 자유공간상의 전자파를 송수신하기 위한 부품, 예를 들면, 도체 또는 도선 등을 더 포함할 수 있다.  The RF unit 205 is responsible for transmitting and receiving data, for example, an RF signal or a transmitted and received electronic signal. The RF unit 205 may include, for example, a transceiver, a power amplifier module (PAM), a frequency filter, or a low noise amplifier (LNA). The RF unit 205 may further include a component for transmitting and receiving electromagnetic waves in a free space in a wireless communication, for example, a conductor or a conductor.

상기 하드웨어 (200)는 내장(internal) 메모리 (204A) 또는 외장(external) 메모리(204B)를 포함할 수 있다. 상기 내장 메모리(204A)는 휘발성메모리(예를 들면, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous dynamic RAM) 등) 또는 비휘발성 메모리(non-volatile Memory, 예를 들면, OTPROM(one time programmableROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM 등) 중 적어도 하나를 포함할 수 있다. 한 실시예에 따르면, 상기 AP (201A) 또는 상기 CP (201B)는 각각에 연결된 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 상기 AP (201A) 또는 상기 CP(201B)는 상기 다른 구성요소로부터 수신하거나 생성된 데이터를 상기 비휘발성 메모리에 보존할 수 있다.The hardware 200 may include an internal memory 204A or an external memory 204B. The built-in memory 204A may be a nonvolatile memory such as a dynamic RAM (DRAM), a static RAM (SRAM), a synchronous dynamic RAM (SDRAM), or a nonvolatile memory such as an OTPROM one-time programmable ROM), programmable ROM (PROM), erasable and programmable ROM (EPROM), electrically erasable and programmable ROM (EEPROM), mask ROM, flash ROM, and the like. According to one embodiment, the AP 201A or the CP 201B may load and process commands or data received from at least one of the nonvolatile memory or other components connected to the AP 201A or 201B into the volatile memory . Also, the AP 201A or the CP 201B may store data received or generated from the other components in the nonvolatile memory.

상기 외장 메모리(204B)는, 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 memory stick 등을 더 포함할 수 있다.The external memory 204B may be a compact flash (CF), a secure digital (SD), a micro secure digital (SD), a mini secure digital (SD), an extreme digital And the like.

상기 전력관리부(203)는 상기 하드웨어 (200)의 전력을 관리할 수 있다. 도시하지는 않았으나, 상기 전력관리부(203)는, 예를 들면, PMIC(power management integrated circuit), 충전 IC(charger integrated circuit) 또는 배터리 게이지(battery gauge)를 포함할 수 있다. 상기 PMIC는, 예를 들면, 집적회로 또는 SoC 반도체내에 탑재될 수 있다. 충전 방식은 유선과 무선으로 구분될 수 있다. 상기 충전 IC는 배터리를 충전시킬 수 있으며, 충전기로부터의 과전압 또는 과전류 유입을방지할 수 있다. 이때, 상기 충전 IC는 유선 충전 방식 또는 무선 충전 방식 중 적어도 하나를 위한 충전 IC를 포함할 수 있다. 무선 충전 방식으로는, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등이 있으며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 정류기 등의 회로가 추가될 수 있다. 상기 배터리 게이지는 배터리223의 잔량, 충전 중 전압, 전류 또는 온도 중 적어도 하나를 측정할 수 있다. 상기 배터리223는 전기를 생성하여 전원을 공급할 수 있고, 예를 들면, 충전식 전지(rechargeable battery)일 수 있다. The power management unit 203 can manage the power of the hardware 200. [ Although not shown, the power management unit 203 may include, for example, a PMIC (power management integrated circuit), a charger integrated circuit (IC), or a battery gauge. The PMIC can be mounted, for example, in an integrated circuit or a SoC semiconductor. The charging method can be classified into wired and wireless. The charging IC can charge the battery, and can prevent an overvoltage or an overcurrent from the charger. At this time, the charging IC may include a charging IC for at least one of a wired charging method and a wireless charging method. Examples of the wireless charging system include a magnetic resonance system, a magnetic induction system or an electromagnetic wave system, and additional circuits for wireless charging, for example, a coil loop, a resonant circuit, a rectifier, have. The battery gauge may measure at least one of the remaining amount of the battery 223, the voltage during charging, the current, or the temperature. The battery 223 may generate electricity to supply power, for example, a rechargeable battery.

인터페이스(206)는, 예를 들면, HDMI(mHL)(206A), USB(universal serial bus, 206B), 프로젝터(projector, 206C), D-sub(D-subminiature, 206D), SD(secure Digital)/MMC(multi-media card)(미도시) 또는 IrDA(infrared data association, 미도시) 중 적어도 하나를 포함할 수 있다. The interface 206 is connected to an interface such as an HDMI (mHL) 206A, a universal serial bus 206B, a projector 206C, a D-subminiature 206D, / Multi-media card (MMC) (not shown), or IrDA (infrared data association, not shown).

통신부(230)는 무선 주파수를 이용하여 무선 통신 기능을 제공할 수 있으며, WiFi(207A), BT(Bluetooth)(207B), GPS(207C) 또는 NFC(near field communication)(207D) 중 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 통신부(230)는 상기 하드웨어(200)를 네트워크(예: Internet, LAN(local area network), WAN(wire area network), telecommunication network, cellular network, satellite network, 또는 POTS(plain old telephone service, 등)와 연결시키기 위한 네트워크 인터페이스(예: LAN card) 또는 모뎀 등을 포함할 수 있다.The communication unit 230 may provide a wireless communication function using a radio frequency and may transmit at least one of a WiFi 207A, a Bluetooth (BT) 207B, a GPS 207C or a near field communication (NFC) . Additionally or alternatively, the communication unit 230 may communicate the hardware 200 with a network (e.g., the Internet, a LAN, a WAN, a telecommunication network, a cellular network, old telephone service, etc.), or a modem (e.g., a LAN card).

사용자 입력부(208)는 사용자로부터 다양한 명령어를 입력 받을 수 있다. 상기 사용자 입력부(208)는, 예를 들면, 터치 스크린 패널(208A), (디지털) 펜 센서(208B), 키(208C) 또는 초음파(ultrasonic) 입력 장치(208D) 중 적어도 하나를 포함할 수 있다. 상기 터치 스크린 패널(208A)은, 예를 들면, 정전식, 감압식, 적외선 방식 또는 초음파 방식 중 적어도 하나의 방식으로 터치 입력을인식할 수 있다. 또한, 상기 터치 스크린 패널(208A)은 컨트롤러(미도시)를 더 포함할 수도 있다. 정전식의 경우, 직접 터치뿐만 아니라 근접 인식도가능하다. 상기 터치 스크린 패널(208A)은 택타일 레이어(tactile layer)를 더 포함할 수도 있다. 이 경우, 상기 터치 스크린 패널(208A)은 사용자에게 촉각 반응을 제공할 수 있다. 상기 (디지털) 펜 센서 (208B)는, 예를 들면, 사용자의 터치 입력을 받는 것과 동일한 방법 또는 별도의인식용 쉬트(sheet)를 이용하여 구현될 수 있다. 상기 키(208C)로서, 예를 들면, 키패드 또는 터치 키가 이용될 수 있다. 상기 초음파 입력 장치(208D)는 초음파 신호를 발생하는 펜을 통해, 단말에서 마이크(예: 마이크215D)로 음파를 감지하여 데이터를 확인할 수 있는 장치로서, 무선 인식이 가능하다. 다양한실시예에 따르면, 상기 하드웨어(200)는, 예를 들면, 상기 통신부(230)를 이용하여, 이와 연결된 외부 장치(예: 네트워크, 컴퓨터 또는 서버)로부터 사용자 입력을 수신할 수도 있다. The user input unit 208 may receive various commands from the user. The user input 208 may include at least one of, for example, a touch screen panel 208A, a (digital) pen sensor 208B, a key 208C or an ultrasonic input device 208D . The touch screen panel 208A can recognize a touch input in at least one of an electrostatic, a pressure sensitive, an infrared, or an ultrasonic manner, for example. In addition, the touch screen panel 208A may further include a controller (not shown). In the case of electrostatic type, proximity recognition is possible as well as direct touch. The touch screen panel 208A may further include a tactile layer. In this case, the touch screen panel 208A may provide a tactile response to the user. The (digital) pen sensor 208B can be implemented using the same method as receiving the touch input of the user or using a separate recognizing sheet, for example. As the key 208C, for example, a keypad or a touch key may be used. The ultrasonic wave input device 208D is a device that can confirm data by sensing a sound wave from a terminal to a microphone (e.g., a microphone 215D) through a pen that generates an ultrasonic signal, and can recognize wirelessly. According to various embodiments, the hardware 200 may use the communication unit 230 to receive user input from an external device (e.g., a network, a computer or a server) connected thereto.

디스플레이부(209)는 영상 또는 데이터를 사용자에게 표시하기 위한 장치로서, 예를 들면, 패널(209A) 또는 홀로그램(209B)이 될 수 있다. 상기 패널(209A)로서, 예를 들면, LCD(liquid-crystal display) 또는 AM-OLED(active-matrix organic light-emitting diode) 등이 이용될 수 있다. 이때, 상기 패널(209A)을 제어하는 컨트롤러가 더 구성될 수 있다. 상기 패널(209A)은, 예를 들면, 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 상기 패널(209A)은 터치 스크린 패널과 하나의 모듈로 구성될 수도 있다. 상기 홀로그램(209B)은 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. The display unit 209 is an apparatus for displaying images or data to a user and may be, for example, a panel 209A or a hologram 209B. As the panel 209A, for example, a liquid crystal display (LCD) or an active matrix organic light-emitting diode (AM-OLED) may be used. At this time, a controller for controlling the panel 209A may be further configured. The panel 209A may be embodied, for example, in a flexible, transparent or wearable manner. The panel 209A may be composed of a touch screen panel and one module. The hologram 209B can display stereoscopic images in the air using interference of light.

카메라부(210)는, 화상 및 동영상을 촬영할 수 있고, 구현예에 따라서는, 하나 이상의 이미지센서(예: 전면 렌즈 또는 후면 렌즈), ISP(image signal processor, 미도시) 또는 플래쉬 LED(flash LED, 미도시)를 포함할 수 있다. The camera unit 210 may capture an image and a moving image and may include one or more image sensors (e.g., a front lens or a rear lens), an image signal processor (ISP), or a flash LED , Not shown).

인디케이터(211)는 상기 하드웨어(200) 혹은 그 일부(예: 상기 AP 201A)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태, 또는 충전 상태 등을 표시할 수 있다. 모터(212)는 전기적 신호를 기계적 진동으로 변환할 수 있다.The indicator 211 may indicate a specific state of the hardware 200 or a part thereof (e.g., the AP 201A), for example, a boot state, a message state, or a charged state. The motor 212 may convert the electrical signal to mechanical vibration.

센서부(213)는, 예를 들면, 제스처센서(gesture sensor)(213A), 자이로 센서(gyro sensor)(213B), 기압 센서(barometer sensor)(213C), 마그네틱 센서(magnetic sensor)(213D), 가속도 센서(acceleration sensor)(213E), 그립 센서(grip sensor)(213F), 근접 센서(proximity sensor)(213G), RGB(red, green, blue) 센서(213H), 생체 센서(biometric sensor)(213I), 온도/습도 센서(213J), 조도 센서(illuminance sensor)(213K), UV(ultraviolet) 센서(213L), 후각 센서(E-nose sensor, 미도시), EMG 센서(electromyography sensor, 미도시), EEG 센서(electroencephalogram sensor, 미도시), ECG 센서(electrocardiogramsensor, 미도시) 또는 지문 센서 등을 포함할 수 있다. 구현예에 따라서는, 하드웨어(200)는 센서부(213)를 제어하기 위한 MCU(micro controller unit)(214)를 더 포함할 수 있다. The sensor unit 213 includes a gesture sensor 213A, a gyro sensor 213B, a barometer sensor 213C, a magnetic sensor 213D, An acceleration sensor 213E, a grip sensor 213F, a proximity sensor 213G, an RGB (red, green, blue) sensor 213H, a biometric sensor, A temperature / humidity sensor 213J, an illuminance sensor 213K, an ultraviolet sensor 213L, an olfactory sensor (not shown), an electromyography sensor An electroencephalogram sensor (not shown), an electrocardiogram sensor (not shown), or a fingerprint sensor. In some implementations, the hardware 200 may further include a micro controller unit (MCU) 214 for controlling the sensor unit 213.

오디오 코덱(215)은 음성과 전기신호를 쌍방향으로 변환시킬 수 있다. 상기 오디오 코덱(215)은, 예를 들면, 스피커(215A), 리시버(215B), 이어폰(215C) 또는 마이크(215D)등을 통해 입력 또는 출력되는 음성 정보를 변환시킬 수 있다. 도시되지는 않았으나, 상기 하드웨어(200)는, 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 상기 모바일TV지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting) 또는 미디어플로우(media flow) 등의 규격에 따른 미디어 데이터를 처리할 수 있다. The audio codec 215 can convert audio and electrical signals in both directions. The audio codec 215 can convert audio information input or output through, for example, a speaker 215A, a receiver 215B, an earphone 215C, or a microphone 215D. Although not shown, the hardware 200 may include a processing unit (e.g., a GPU) for mobile TV support. The processing device for supporting the mobile TV can process media data conforming to standards such as digital multimedia broadcasting (DMB), digital video broadcasting (DVB), or media flow.

본 개시에 따른 하드웨어의 전술한 구성 요소들의 명칭은 전자 장치의 종류에 따라서 달라질 수 있으며, 본 개시에 따른 하드웨어는 전술한 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. The names of the above-described components of the hardware according to the present disclosure may vary depending on the type of electronic device, and the hardware according to the present disclosure may be configured to include at least one of the components described above, Or < / RTI > additional other components.

도 3은 예시적 실시예에 따른 소프트웨어(300)(예: 상기 소프트웨어 120)를 개략적으로 도시한다. 상기 소프트웨어(300)는 하드웨어(예: 상기 하드웨어 200)에 구현되어 전자 장치(예: 상기 전자 장치 100)에 관련된 자원을 제어하는 운영체제(OS: operation system) 또는 운영체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 340)을 포함할 수 있다. 상기 운영체제는, 예를 들면, 안드로이드(Android), iOS, 윈도우즈(Windows), 심비안(Symbian), 타이젠(Tizen) 또는 바다(Bada) 등이 될 수 있다. FIG. 3 schematically illustrates software 300 (e.g., software 120) in accordance with an exemplary embodiment. The software 300 may be implemented in hardware (e.g., the hardware 200) to control an operating system (OS) that controls resources associated with an electronic device (e.g., the electronic device 100) Application 340). The operating system may be, for example, Android, iOS, Windows, Symbian, Tizen, or Bada.

커널(310)은 자원을 관리할 수 있는 시스템 리소스 매니저(311) 또는 디바이스 드라이버(312)를 포함할 수 있다. 예를 들면, 상기 시스템 리소스 매니저(311)는 프로세스 관리부(311A), 메모리 관리부(311B) 또는 파일 시스템관리부(311C) 등을 포함할 수 있으며, 시스템 리소스의 제어, 할당 또는 회수 등을 수행할 수 있다. The kernel 310 may include a system resource manager 311 or a device driver 312 that can manage resources. For example, the system resource manager 311 may include a process management unit 311A, a memory management unit 311B, or a file system management unit 311C, and may perform control, assignment, or recovery of system resources have.

상기 디바이스 드라이버(312)는 해당 전자 장치(예: 상기 전자 장치 100)의 하드웨어(예: 상기 하드웨어 200)의 다양한 구성요소들을 소프트웨어적으로 접근하여 제어할 수 있도록 한다. 이를 위하여, 상기 디바이스 드라이버(312)는, 도시하지는 않았으나, 예를 들면, 인터페이스와 각 하드웨어 업체가제공하는 개별 드라이버 모듈 부분으로 구분될 수 있다. 예를 들면, 상기 디바이스 드라이버(312)는, 디스플레이 드라이버(312A), 카메라 드라이버(312B), 블루투스 드라이버(312C), 공유 메모리드라이버(312D), USB 드라이버(312E), 키패드드라이버(312F), WiFi 드라이버(312G), 오디오드라이버 (312H) 또는 IPC (inter-process communication) 드라이버(미도시) 중 적어도 하나를 포함할 수 있다. The device driver 312 allows various components of the hardware (e.g., the hardware 200) of the electronic device (e.g., the electronic device 100) to be accessed and controlled in a software manner. To this end, the device driver 312 may be divided into, for example, an interface and individual driver module parts provided by respective hardware vendors, though not shown. For example, the device driver 312 may include a display driver 312A, a camera driver 312B, a Bluetooth driver 312C, a shared memory driver 312D, a USB driver 312E, a keypad driver 312F, a WiFi Driver 312G, an audio driver 312H, or an inter-process communication (IPC) driver (not shown).

미들웨어(320)는 다양한 어플리케이션들에서 공통적으로 필요한 기능을 제공하기 위해 미리 구현해 놓은 복수의 모듈들을 포함하여 구성될 수 있다. 상기 미들웨어(320)는 어플리케이션(340) 에서 전자 장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 API(330)를 통해 공통적으로 필요한 기능을 제공할 수 있다. 상기 미들웨어(320)는, 예를 들면, 어플리케이션 매니저(application manager)(320A), 윈도우 매니저(window manager)(320B), 멀티미디어 매니저(multimedia manager)(320C), 리소스 매니저(resource manager) (320D), 파워 매니저(power manager)(320E), 데이터베이스 매니저(database manager)(320F) 또는 패키지 매니저(package manager)(320G) 등의 복수의 모듈들 중 하나 이상을 포함할 수 있다.The middleware 320 may include a plurality of modules previously implemented in order to provide functions commonly required in various applications. The middleware 320 may provide functions that are commonly required through the API 330 so that the application 340 can efficiently use limited system resources in the electronic device. The middleware 320 includes an application manager 320A, a window manager 320B, a multimedia manager 320C, a resource manager 320D, A power manager 320E, a database manager 320F, or a package manager 320G, as shown in FIG.

상기 어플리케이션 매니저(320A)는 상기 어플리케이션(340)중 적어도 하나의 어플리케이션의 생명 주기(life cycle)를 관리할 수 있다. 상기 윈도우매니저(320B)는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 상기 멀티미디어 매니저(320C)는 다양한 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 상기 리소스매니저(320D)는 상기 어플리케이션(340)중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다. 상기 파워 매니저(320E)는 바이오스(BIOS: basic input/output system) 등과 함께 동작하여 배터리(battery) 또는 전원을 관리하고, 동작에 필요한 전력 정보 등을 제공할 수 있다. 상기 데이터베이스 매니저(320F)는 상기 어플리케이션(340) 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색 또는 변경할 수 있도록 관리할 수 있다. 상기 패키지 매니저(320G)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.The application manager 320A can manage a life cycle of at least one application among the applications 340. [ The window manager 320B can manage GUI resources used on the screen. The multimedia manager 320C can recognize a format required for reproducing various media files and can encode or decode a media file using a codec according to the format. The resource manager 320D can manage resources such as a source code, a memory or a storage space of at least one of the applications 340. [ The power manager 320E operates in conjunction with a basic input / output system (BIOS) or the like to manage a battery or a power source and provide power information necessary for the operation. The database manager 320F can manage a database to be used in at least one of the applications 340 to create, search, or change the database. The package manager 320G can manage installation or update of an application distributed in the form of a package file.

구현예에 따라서는, 상기 미들웨어(320)는 연결 매니저(connectivity manager)(320H), 통지 매니저(notification manager)(320I), 위치 매니저(location manager)(320J), 그래픽 매니저(graphic manager)(320K) 또는 보안 매니저(security manager)(320L) 중 적어도 하나를 포함할 수 있다.The middleware 320 may include a connectivity manager 320H, a notification manager 320I, a location manager 320J, a graphic manager 320K, ) Or a security manager (320L).

상기 연결 매니저(320H)는 예를 들어, WiFi 또는 블루투스 등의 무선 연결을 관리할 수 있다. 상기 통지 매니저(320I)는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 상기 위치 매니저(320J)는 전자 장치의 위치 정보를 관리할 수 있다. 상기 그래픽 매니저(320K)는 사용자에게 제공될 그래픽 효과 및 이와 관련된 사용자 인터페이스를 관리할 수 있다. 상기 보안 매니저(320L)는 시스템 보안 또는 사용자 인증 등에 필요한 제반 보안 기능을 제공할 수 있다.The connection manager 320H can manage a wireless connection, such as WiFi or Bluetooth, for example. The notification manager 320I may display or notify events such as arrival messages, appointments, proximity notifications, etc. in a manner that does not disturb the user. The location manager 320J may manage the location information of the electronic device. The graphic manager 320K may manage a graphical effect to be provided to a user and a user interface related thereto. The security manager 320L may provide security functions necessary for system security or user authentication.

전자 장치(예: 상기 전자 장치 100)가 전화 기능을 구비한 경우에는, 상기 미들웨어(320)는 상기 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(telephony manager, 미도시)를 더 포함할 수 있다. When the electronic device (e.g., the electronic device 100) has a telephone function, the middleware 320 further includes a telephony manager (not shown) for managing the voice or video call function of the electronic device can do.

예시적 실시예에 따르면, 상기 미들웨어(320)는, 런타임 라이브러리(325) 또는 다른 라이브러리 모듈들(미도시)를 포함할 수 있다. 상기 런타임 라이브러리(325)는, 어플리케이션이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈이다. 예를 들면, 상기 런타임 라이브러리(325)는 입출력, 메모리 관리 또는 산술 함수에 대한 기능 등을 수행할 수 있다. 상기 미들웨어(320)는 전술한 내부 구성요소 모듈들의 다양한 기능 조합을 통해 새로운 미들웨어 모듈을 생성하여 사용할 수 있다. 상기 미들웨어(320)는 차별화된 기능을제공하기 위해 운영체제의 종류별로 특화된 모듈을 제공할 수 있다. According to an exemplary embodiment, the middleware 320 may include a runtime library 325 or other library modules (not shown). The runtime library 325 is a library module used by the compiler to add new functions through a programming language while the application is running. For example, the runtime library 325 may perform functions such as input / output, memory management, or arithmetic functions. The middleware 320 can generate and use a new middleware module through various functional combinations of the internal component modules. The middleware 320 may provide a module specialized for each type of operating system to provide a differentiated function.

또한, 상기 미들웨어(320)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. 따라서, 본 개시의 실시예에 기재된 구성요소를 일부 생략하거나 다른 구성요소를 더 구비하거나, 또는 유사한 기능을 수행하는 다른 명칭을 갖는 구성요소로 대체할 수 있다.In addition, the middleware 320 may dynamically delete some existing components or add new components. Accordingly, the components described in the embodiments of the present disclosure may be partially replaced with other components, or may be replaced with components having other names that perform similar functions.

상기 API(330)는, API 프로그래밍 함수들의 집합으로, 운영체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 예를 들면, 플랫폼별로 하나의 API 셋을 제공할 수 있으며, 타이젠(Tizen)의 경우, 예를 들면, 두 개 이상의 API 셋을 제공할 수 있다.The API 330 is a set of API programming functions and can be provided in different configurations depending on the operating system. For example, in the case of Android or iOS, for example, one API set can be provided for each platform, and in the case of Tizen, for example, two or more API sets can be provided.

상기 어플리케이션(340)은 상기 API(330)를 이용하여 해당 전자 장치 (예: 상기 전자 장치 100)에서 구현되는 적어도 하나의 응용 프로그램(들)을 나타낸다. 상기 어플리케이션(340)은, 예를 들면, 프리로드 어플리케이션(preloaded Application) 또는 제 삼자 어플리케이션(third party application)을 포함할 수 있다. 상기 어플리케이션(340)은, 예를 들어, 홈 화면으로 돌아가기 위한(340A), 다이얼러(dialer)(340B), SMS(short message server)/MMS(multi-media message service)(340C), IM(instant message)(340D), 브라우저(browser)(340E), 카메라(340F), 알람(alarm)(340G), 컨택츠(contacts (or address book))(340H), 음성 다이얼(voice dial)(340I), 이메일(email)(340J), 달력(340K), 미디어플레이어(media player)(340L), 앨범 (340M), 또는 시계(340N) 중 적어도 하나를 포함할 수 있다. The application 340 represents at least one application program (s) implemented in a corresponding electronic device (e.g., the electronic device 100) using the API 330. [ The application 340 may include, for example, a preloaded application or a third party application. The application 340 may be configured to return to the home screen 340A, a dialer 340B, a short message server (SMS) / multi-media message service (MMS) 340C, an IM an instant message 340D, a browser 340E, a camera 340F, an alarm 340G, contacts (or address book) 340H, a voice dial 340I An email 340J, a calendar 340K, a media player 340L, an album 340M, or a clock 340N.

본 개시에 따른 소프트웨어의 전술한 구성 요소들의 명칭은 운영체제의 종류에 따라서 달라질 수 있다. 또한, 본 개시에 따른 소프트웨어는 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
The names of the above-mentioned components of the software according to the present disclosure may vary depending on the type of operating system. In addition, the software according to the present disclosure may include at least one or more of the above-described components, some of which may be omitted, or may further include other additional components.

도 4는 이벤트 발생시 프로세서에서 이벤트 로그를 처리하는 블럭을 도시한 도면이다. 도 2 및 도 4를 참조하면 센서부(402), 통신부(404), 타이머(406), 프로세서(400) 및 저장부(430)가 도시되어 있다. 프로세서(400)는 저장부(430)에서 프로그램 코드를 읽고, 프로세스를 생성하고 프로세스에 따라 데이터를 처리할 수 있다. 프로세서(400)는 앱(App) 정보 수집부(408), 이벤트 로그 수집부(410), 클러스터 생성부(412) 및 그룹 생성부(414)를 포함할 수 있다. 앱 정보 수집부(408), 이벤트 로그 수집부(410), 클러스터 생성부(412) 및 그룹 생성부(414)는 프로세스이다. 프로세스는 프로세서(400)에서 한시적으로 생성되었다가 처리가 끝나면 사라질 수 있다.FIG. 4 is a block diagram illustrating a process of processing an event log in a processor when an event occurs. 2 and 4, a sensor unit 402, a communication unit 404, a timer 406, a processor 400, and a storage unit 430 are illustrated. The processor 400 can read the program code in the storage unit 430, create a process, and process data according to the process. The processor 400 may include an app information collecting unit 408, an event log collecting unit 410, a cluster generating unit 412, and a group generating unit 414. [ The app information collecting unit 408, the event log collecting unit 410, the cluster generating unit 412, and the group generating unit 414 are processes. The process may be generated for a short time in the processor 400 and may disappear at the end of the process.

센서부(402)는 센서값에 변화가 생기면 이벤트를 발생 할 수 있다. 예를 들면 조도센서(213K)는 전자장치 주변 밝기의 변화가 생기면 이를 감지하고 이벤트를 발생시킬 수 있다. 통신부(404)는 전자장치의 외부로부터 데이터가 수신되면 이벤트를 발생할 수 있다. 타이머(406)는 시간정보를 이벤트로 제공할 수 있다. The sensor unit 402 can generate an event when a sensor value changes. For example, the ambient light sensor 213K can detect an ambient brightness change of an electronic device and generate an event. The communication unit 404 may generate an event when data is received from the outside of the electronic device. Timer 406 may provide time information as an event.

저장부(430)는 내장메모리(204A) 및 외장메모리(204B)를 포함 할 수 있다. 저장부(430)는 이벤트 로그 저장부(416), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)를 포함한다. 이벤트 로그 저장부(416), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)는 동일한 저장부(420)안에 저장 영역만 구분하여 형성될 수 있다. 또한 이벤트 로그 저장부(416), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)은 별도의 저장 공간이 될 수 있다.The storage unit 430 may include an internal memory 204A and an external memory 204B. The storage unit 430 includes an event log storage unit 416, a cluster information storage unit 418, and a group information storage unit 420. The event log storage unit 416, the cluster information storage unit 418, and the group information storage unit 420 may be formed by dividing only the storage area in the same storage unit 420. In addition, the event log storage unit 416, the cluster information storage unit 418, and the group information storage unit 420 may be separate storage spaces.

전자장치는 기준 시간을 통신부(404)를 통해 수신하고, 기준 시간과 타이머에서 발생하는 이벤트에 기초하여 현재 시각을 계산할 수 있다. 또한 전자장치는 통신부(404)를 통해 현재 시각을 수신할 수 있다. 그 밖에 전자장치에서 발생되는 하드웨어 및 소프트웨어의 다양한 변화가 이벤트가 될 수 있다. 예를 들면 디스플레이부의 ON/OFF 상태, 언락상태, 카메라 제어 버튼, 검색 버튼, SD카드의 장착여부, 배터리의 충전 상태, 저장공간 사용 가능 여부, 사용자 제스처 감지 등에 따라 이벤트가 발생될 수 있다. The electronic device can receive the reference time through the communication unit 404 and calculate the current time based on the reference time and an event occurring in the timer. Further, the electronic device can receive the current time through the communication unit 404. In addition, various changes in hardware and software that occur in electronic devices can be events. For example, an event may occur depending on the ON / OFF state of the display unit, the unlock state, the camera control button, the search button, whether or not the SD card is mounted, the battery charging state, the storage space usable, and the user gesture detection.

앱 정보 수집부(408)는 실행되는 앱과 관련된 정보를 수집한다. 예를 들면 특정 앱이 실행되면 실행되는 시점의 날짜, 시간, 앱 이름 및 위치 데이터를 수집할 수 있다. 또한 앱 정보 수집부(408)는 현재 실행중인 다른 앱에 대한 정보 및 이전에 실행되었던 앱의 정보도 수집할 수 있다.The app information collecting unit 408 collects information related to the executed app. For example, when a particular app launches, it can collect date, time, app name, and location data at the time it launches. In addition, the app information collecting unit 408 can collect information on other currently running apps and information on previously executed apps.

이벤트 로그 수집부(410)는 센서부(402), 통신부(404), 타이머(406) 및 앱 정보 수집부(408)에서 이벤트가 발생하면 이에 대한 이벤트 로그를 수집한다. 수집된 이벤트 로그는 이벤트 로그 저장부(416)에 저장되거나 클러스터 생성부로 보내져서 분석된다. The event log collecting unit 410 collects an event log when an event occurs in the sensor unit 402, the communication unit 404, the timer 406, and the app information collecting unit 408. The collected event logs are stored in the event log storage unit 416 or sent to the cluster generator for analysis.

이벤트 로그 저장부(416)는 데이터베이스(data base)로 구성될 수 있다. The event log storage unit 416 may be configured as a database.

클러스터 생성부(412)는 이벤트 로그 수집부(410)로부터 수신한 이벤트 로그를 분석해서 클러스터링 할 수 있다. 또한 클러스터 생성부(412)는 이벤트 로그 저장부(416)에 저장되어 있는 이벤트 로그를 분석해서 클러스터링 할 수 있다. The cluster generating unit 412 analyzes and clusters the event log received from the event log collecting unit 410. The cluster generating unit 412 may analyze the event log stored in the event log storing unit 416 and perform clustering.

클러스터 정보 저장부(418)는 클러스터 생성부에서 분석한 클러스터 정보를 저장한다. 클러스터 정보 저장부(418)는 데이터베이스로 구성될 수 있다.The cluster information storage unit 418 stores the cluster information analyzed by the cluster generating unit. The cluster information storage unit 418 may be constituted by a database.

그룹 생성부(414)는 클러스터 생성부(412) 및 클러스터 정보 저장부(418)에 저장된 클러스터 정보를 참조하여 유사한 클러스터를 하나의 그룹으로 묶고, 이와 관련된 그룹 정보를 그룹 정보 저장부(420)에 저장한다. 그룹 정보 저장부(420)는 데이터베이스로 구성될 수 있다. 클러스터 생성부(412)에서 생성된 클러스터 정보 및 그룹 생성부(414)에서 생성된 그룹 정보는 API로 제공되어 전자장치에서 앱이 실행될 때 앱이 그룹정보를 직접 액세스 할 수 있다.The group generating unit 414 groups the similar clusters into one group by referring to the cluster information stored in the cluster generating unit 412 and the cluster information storing unit 418 and transmits the related group information to the group information storing unit 420 . The group information storage unit 420 may be configured as a database. The cluster information generated by the cluster generating unit 412 and the group information generated by the group generating unit 414 are provided as APIs so that the app can directly access the group information when the app is executed in the electronic device.

이벤트 로그 저장부(416), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)는 동일한 저장부(430)에 포함되거나 또는 별도의 다른 저장부로 구성될 수 있다.The event log storage unit 416, the cluster information storage unit 418 and the group information storage unit 420 may be included in the same storage unit 430 or may be configured as separate storage units.

또한 클러스터 생성부(412), 그룹 생성부(414), 클러스터 정보 저장부(418) 및 그룹 정보 저장부(420)는 전자장치와는 다른 별도의 서버(미도시)에 마련될 수 있다. 이 경우, 이벤트 로그 수집부에서 수집된 이벤트 로그는 통신부를 통해 서버로 제공될 수 있다. 서버에서는 수집된 이벤트 로그를 분석해서 관련 클러스터 정보 및 그룹 정보를 통신부를 통해 전자장치로 제공할 수 있다.
The cluster generating unit 412, the group generating unit 414, the cluster information storing unit 418, and the group information storing unit 420 may be provided in a server (not shown) separate from the electronic device. In this case, the event log collected by the event log collecting unit may be provided to the server through the communication unit. The server analyzes the collected event logs and provides the related cluster information and group information to the electronic device through the communication unit.

도 5는 이벤트 로그 저장부에 저장되는 이벤트 로그 정보를 도시한 도면이다. 도 4 및 도 5를 참조하면 이벤트 로그는 이벤트 로그 아이디(ID)(502), 이벤트 정보(504), 이벤트 관련 시간정보(506) 및 위치정보(508)를 포함할 수 있다. 이벤트 로그 저장부(416)에는 이벤트 로그(510, 512, 514, 516, 518, 520)가 데이터베이스 형태로 저장된다.5 is a diagram illustrating event log information stored in the event log storage unit. 4 and 5, the event log may include an event log ID 502, event information 504, event related time information 506, and location information 508. Event logs 510, 512, 514, 516, 518, and 520 are stored in the event log storage unit 416 in the form of a database.

이벤트 로그 아이디(502)는 이벤트 발생 순서에 따라 일련번호로 부여될 수 있다. 예를 들면 이벤트 로그 아이디(502)는 'E1', 'E2', 'E3', ... 와 같이 일련번호로 부여될 수 있다. 이벤트 로그 아이디(502)는 이벤트 로그 수집부(410)에서 부여할 수 있고, 다른 별도의 프로세스에서 부여할 수 있다. 각각의 이벤트 로그는 고유의 이벤트 로그 아이디(502)를 가질 수 있다. The event log ID 502 may be given as a serial number according to the event occurrence order. For example, the event log ID 502 may be assigned a serial number such as 'E1', 'E2', 'E3', .... The event log ID 502 may be given by the event log collecting unit 410 and may be given by another process. Each event log may have its own event log ID 502.

이벤트 정보는 발생된 이벤트의 특성을 반영하여 부여될 수 있다. 이벤트 특성은 하드웨어에 의해 발생되는 하드웨어 이벤트와 소프트웨어에 의해 발생되는 소프트웨어 이벤트로 구분될 수 있다. 하드웨어에 의해 발생되는 이벤트는 센서 및 하드웨어 모듈에 의해 발생되는 이벤트가 될 수 있다. 이 때 이벤트 정보는 이벤트를 발생시킨 센서 및 하드웨어 모듈의 이름을 포함할 수 있다. 예를 들면 이벤트 정보는 'BT(Blue Tooth)', 'WiFi', 'MAGNETIC', 'GPS' 처럼 하드웨어 모듈 이름을 포함할 수 있다. 소프트웨어에 의해 발생되는 이벤트는 앱이 실행될 때 발생 될 수 있다. 예를 들면 'Map 앱'을 실행시키면 이벤트가 발생될 수 있다. 이 경우 이벤트 정보는 이벤트를 발생시킨 앱 이름을 포함할 수 있다. 이벤트 정보는 'Map', 'Phone book', 'Play' 처럼 앱 이름을 포함할 수 있다.The event information can be given by reflecting the characteristics of the generated event. The event characteristic can be divided into a hardware event generated by the hardware and a software event generated by the software. Events generated by hardware can be events generated by sensors and hardware modules. At this time, the event information may include the name of the sensor and the hardware module that generated the event. For example, the event information may include hardware module names such as 'BT (Blue Tooth)', 'WiFi', 'MAGNETIC', and 'GPS'. Events generated by the software can be generated when the app is launched. For example, if you run 'Map app', an event may occur. In this case, the event information may include the name of the app that generated the event. Event information can include app names like 'Map', 'Phone book', 'Play'.

이벤트 관련 시간정보는 이벤트가 발생한 시각, 날짜 및 요일정보가 될 수 있다. 예를 들면 시간정보는 '2010-11-09 18:07:35 WED' 와 같이 될 수 있다.The event-related time information may be the time, date, and day of the week when the event occurred. For example, the time information could be like '2010-11-09 18:07:35 WED'.

위치정보는 이벤트가 발생했을 때 전자장치의 위치 데이터이다. 위치정보는 경도 및 위도를 포함한 좌표로 제공될 수 있다. 위치정보는 GPS 위성으로 부터 수신한 데이터가 될 수 있다. 위치정보는 통신 기지국(미도시)으로부터 수신한 셀 아이디(Cell ID)가 되거나 또는 와이파이(WiFi) AP(Access Point)가 될 수 있다. 예를 들면 위치정보는 '127.0517465, 37.2390389'와 같이 될 수 있다. The location information is the location data of the electronic device when the event occurs. The location information may be provided in coordinates including longitude and latitude. The location information may be data received from GPS satellites. The location information may be a cell ID received from a communication base station (not shown) or a WiFi AP (access point). For example, the location information may be '127.0517465, 37.2390389'.

이벤트가 발생되면 이벤트 로그 수집부(410)는 하드웨어 및 소프트웨어가 발생시킨 이벤트 로그를 수집한다. 예를 들면 사용자가 'Map 앱'을 실행시키면 이벤트 로그 수집부(410)는 이벤트 로그(510)를 이벤트 로그 저장부(416)에 저장한다. 사용자가 'Phone book 앱'을 실행시키면 이벤트 로그 수집부(410)는 이벤트 로그(512)를 이벤트 로그 저장부(416)에 저장한다. 사용자가 'WiFi'를 켜면 이벤트 로그 수집부(410)는 이벤트 로그(518)를 이벤트 로그 저장부(416)에 저장한다.
When an event occurs, the event log collecting unit 410 collects an event log generated by hardware and software. For example, when the user executes the 'Map application', the event log collection unit 410 stores the event log 510 in the event log storage unit 416. When the user executes the 'Phone book application', the event log collecting unit 410 stores the event log 512 in the event log storing unit 416. When the user turns on the 'WiFi', the event log collection unit 410 stores the event log 518 in the event log storage unit 416.

도 6은 클러스터 정보 저장부에 저장되는 클러스터 정보를 도시한 도면이다. 도 4 및 도 6을 참조하면 클러스터 정보는 클러스터 아이디(602), 라벨명(604), 클러스터를 구성하는 이벤트 로그 정보(606), 중심 값(608), 거리(610) 및 이벤트 로그 개수(612)를 포함할 수 있다. 클러스터 정보 저장부(418)에는 클러스터 정보(614, 616, 618, 620)가 데이터베이스 형태로 저장된다.6 is a diagram illustrating cluster information stored in the cluster information storage unit. 4 and 6, the cluster information includes a cluster ID 602, a label name 604, event log information 606, a center value 608, a distance 610, and an event log number 612 ). The cluster information storage unit 418 stores cluster information 614, 616, 618, and 620 in the form of a database.

클러스터 아이디(602)는 일련번호로 부여될 수 있다. 예를 들면 클러스터 아이디는 'C1', 'C2', 'C3', 'C4', ...와 같이 일련번호로 부여될 수 있다. 라벨명(604)은 클러스터를 식별하기 위한 정보가 될 수 있다. 라벨명(604)은 클러스터 정보에 포함된 중심 값(608)에 기초하여 프로세서(400)가 자동으로 부여할 수 있다. 중심 값이 위치 정보일 경우에 전자 장치가 위치하는 곳의 지명이 라벨명으로 부여될 수 있다. 예를 들면 클러스터 'C1'의 중심 값이 '127.03, 37.51'이면, 프로세서(400)는 해당 위치가 '강남구' 라는 것을 지도 데이터로부터 획득하고, 클러스터 C1의 라벨명을 '강남구'로 결정한다. 지도 데이터는 전자장치 외부에 있는 서버(미도시)로부터 제공되거나 또는 전자장치에 내장될 수 있다. 라벨명은 사용자가 부여할 수도 있다. 사용자는 '강남구'라는 위치를 보고 라벨명을 '사무실'로 수정할 수 있다.The cluster ID 602 may be assigned a serial number. For example, the cluster ID may be assigned a serial number such as 'C1', 'C2', 'C3', 'C4', ... The label name 604 may be information for identifying the cluster. The label name 604 can be automatically assigned by the processor 400 based on the center value 608 included in the cluster information. When the center value is the position information, the place name where the electronic device is located may be given as the label name. For example, if the center value of the cluster 'C1' is '127.03, 37.51', the processor 400 obtains from the map data that the corresponding position is 'Gangnam-gu', and determines the label name of the cluster C1 as 'Gangnam-gu'. The map data may be provided from a server (not shown) external to the electronic device or embedded in the electronic device. Label names may be assigned by the user. The user can view the location of 'Gangnam-gu' and modify the label name to 'office'.

전자장치는 라벨명을 부여할 때 지식베이스를 사용할 수 있다. 예를 들면 클러스터의 중심 값이 과거에 사용자가 운동을 했던 상황과 유사하면, 전자장치는 라벨명을 '운동'으로 결정할 수 있다.Electronic devices can use knowledge bases when labeling. For example, if the center value of the cluster is similar to the situation in which the user has performed a movement in the past, the electronic device may determine the label name to be 'motion'.

구성 이벤트 로그(606)는 클러스터에 포함되는 복수의 이벤트 로그 아이디(ID)이다. 예를 들면 클러스터 C1에 속하는 이벤트 로그 아이디(ID)는 'E1, E4, E5, E7, E10, E23, E32, ...' 이다.The configuration event log 606 is a plurality of event log IDs (IDs) included in the cluster. For example, the event log ID (ID) belonging to the cluster C1 is 'E1, E4, E5, E7, E10, E23, E32, ...'.

중심 값(608)은 각 클러스터의 중심 값이다. 클러스터의 중심 값은 다양한 알고리즘을 사용해서 계산될 수 있다. 예를 들면 각 클러스터를 구성하는 이벤트 로그 정보에 포함된 시간 및 위치 데이터의 평균이 될 수 있다. 클러스터 'C1'(614)의 중심 값은 '127.03, 37.51' 이다. The center value 608 is the center value of each cluster. The center value of the cluster can be calculated using various algorithms. For example, an average of the time and location data included in the event log information constituting each cluster. The center value of cluster 'C1' 614 is '127.03, 37.51'.

거리(610)는 클러스터의 중심 값(608)으로부터 클러스터를 구성하는 이벤트 로그의 시간 또는 위치 데이터까지의 최대 거리가 될 수 있다. 거리(610)는 클러스터의 크기가 될 수 있다. 예를 들면 클러스터 'C1'의 거리는 '0.9, 0.9' 이다. 거리는 클러스터를 구성하는 이벤트 로그의 종류에 따라 다를 수 있다. 예를 들면 클러스터를 구성하는 이벤트 로그가 위치에 특징이 있는 경우, 거리는 위치가 될 수 있다. 클러스터를 구성하는 이벤트 로그가 시간에 특징이 있는 경우에는 거리(610)는 시간이 될 수 있다.Distance 610 may be the maximum distance from the cluster center value 608 to the time or location data of the event logs that make up the cluster. Distance 610 may be the size of the cluster. For example, the distance of cluster 'C1' is '0.9, 0.9'. The distance may vary depending on the type of event log that makes up the cluster. For example, if the event log that makes up the cluster is characterized by location, the distance can be a location. If the event log constituting the cluster is characterized by time, the distance 610 may be time.

중심 값(608) 및 거리(610)는 새로운 이벤트 로그가 클러스터에 포함되면 그 값이 변경 될 수 있다. 프로세서는 새로운 이벤트 로그가 클러스터에 포함되면 중심 값(608) 및 거리(610)를 다시 계산한다.The center value 608 and the distance 610 can be changed if a new event log is included in the cluster. The processor recalculates the center value 608 and distance 610 when a new event log is included in the cluster.

이벤트 로그 개수(612)는 클러스터에 포함되는 이벤트 로그의 개수이다. 예를 들면 클러스터 'C1'(614)에 포함되는 이벤트 로그 개수는 '80' 이다.The number of event logs 612 is the number of event logs included in the cluster. For example, the number of event logs included in cluster 'C1' 614 is '80'.

클러스터 정보는 저장부(430)에 데이터베이스 형태로 저장될 수 있다. 예를 들면 저장부(430)에 클러스터 정보 'C1, C2, C3, C4, ...'이 저장되어 있다. 클러스터 'C1'(614)의 라벨명은 '강남구' 이고, 구성 이벤트 로그는 'E1, E4, E5, E7, E10, E23, E32, ...' 이고, 중심 값은 '127.03, 37.51', 거리는 '0.9, 0.9', 이벤트 로그 개수는 '80' 이다. 클러스터 'C2'(616)의 라벨명은 '집' 이고, 구성 이벤트 로그는 'E23, E34, E53, ..., E171' 이고, 중심 값은 '125.3, 36.2', 거리는 '0.2, 0.2', 이벤트 로그 개수는 '120' 이다. 클러스터 'C3'(618)의 라벨명은 '운동' 이고, 구성 이벤트 로그는 'E3, E7, E9, E11, E90, ..., E232' 이고, 중심 값은 'SUN, 20:34;21', 거리는 '10:00', 이벤트 로그 개수는 '28'이다.
The cluster information may be stored in the storage unit 430 in the form of a database. For example, cluster information 'C1, C2, C3, C4, ...' is stored in the storage unit 430. E5, E7, E10, E23, E32, ..., ', the center value is' 127.03, 37.51', and the distance between the cluster 'C1''0.9,0.9', and the number of event logs is '80'. The label name of the cluster 'C2' 616 is 'home' and the configuration event log is 'E23, E34, E53, ..., E171', the center value is '125.3, 36.2' The number of event logs is '120'. The label name of the cluster 'C3' 618 is 'motion', the configuration event log is 'E3, E7, E9, E11, E90, ..., E232' , The distance is '10: 00 ', and the number of event logs is'28'.

도 7은 그룹정보를 나타내는 도면이다. 도 4 및 도 7을 참조하면 그룹정보(710, 712, 714)는 그룹명(702), 라벨명(704), 구성 클러스터(706), 유사성 판단 정보(708)를 포함할 수 있다. 그룹정보 저장부(420)에는 그룹정보(710, 712, 714)가 데이터베이스 형태로 저장된다.7 is a diagram showing group information. Referring to FIGS. 4 and 7, the group information 710, 712, and 714 may include a group name 702, a label name 704, a configuration cluster 706, and similarity determination information 708. The group information storage unit 420 stores group information 710, 712, and 714 in a database format.

그룹명(702)은 일련번호로 부여될 수 있다. 예를 들면 그룹명은 'G1', 'G2', 'G3', ...와 같이 일련번호로 부여될 수 있다. 라벨명(704)은 일련번호로 부여되거나 또는 각각의 그룹을 특징을 잘 나타내는 명칭이 부여될 수 있다. 라벨명(704)은 프로세서(400)가 자동으로 부여할 수 있다. 라벨명(704)은 유사성 판단정보(708)에 기초하여 부여될 수 있다. 예를 들면 유사성 판단 정보(708)가 '취침'으로 결정되면 프로세서(400)는 '취침'으로 라벨명을 결정하고, 사용자의 승인과정을 통해 라벨명을 확정할 수 있다.The group name 702 may be given as a serial number. For example, the group name may be given as a serial number such as 'G1', 'G2', 'G3', .... The label name 704 may be given a serial number or may be assigned a name that characterizes each group well. The label name 704 may be automatically assigned by the processor 400. The label name 704 may be given based on the similarity judgment information 708. [ For example, if the similarity determination information 708 is determined to be 'sleeping', the processor 400 determines the label name to 'sleep' and confirms the label name through the approval process of the user.

구성 클러스터(706)는 그룹을 구성하는 클러스터에 대한 정보이다. 예를 들면 그룹 'G1'(710)을 구성하는 클러스터는 'C1', 'C2' 이다. 그룹 'G2'(712)를 구성하는 클러스터는 'C3' 이다. 그룹 'G3'(714)를 구성하는 클러스터는 'C1', 'C5', 'C9' 이다.The configuration cluster 706 is information on the cluster constituting the group. For example, the clusters constituting the group 'G1' 710 are 'C1' and 'C2'. The cluster constituting the group 'G2' (712) is 'C3'. The cluster constituting the group 'G3' 714 is 'C1', 'C5', and 'C9'.

유사성 판단 정보(708)는 그룹을 구성하는 각각의 클러스터가 가지고 있는 유사한 데이터에 대한 정보이다. 유사성 판단 정보(708)는 시간, 위치 및 빈도수가 될 수 있다. 예를 들면 그룹 'G1'(710)을 구성하는 클러스터 'C1' 및 'C2'의 중심 값이 시간 및 위치가 유사한 경우, 유사성 판단 정보(708)는 시간 및 위치가 될 수 있다.The similarity judgment information 708 is information on similar data that each cluster constituting the group has. Similarity determination information 708 may be time, location, and frequency. For example, when the center values of the clusters 'C1' and 'C2' constituting the group 'G1' 710 are similar in time and position, the similarity determination information 708 may be time and position.

유사성 판단 정보(708)는 각각의 클러스터가 가지고 있는 중심 값을 비교해서 판단하거나, 각각의 클러스터에 포함된 이벤트 로그를 구성하는 데이터를 비교해서 판단 할 수 있다. 예를 들면 그룹 'G3'(714)를 구성하는 클러스터는 'C1', 'C5' 및 'C9' 이다. 클러스터 'C1'은 위치에 기반하여 클러스터링 되었다. 클러스터 'C1'의 중심 값은 '127.03, 37.51'이다. 클러스터 'C5'는 시간에 기초하여 클러스터링 되었다. 클러스터 'C5'의 중심 값은 (MON, 22:20:21)이다. 클러스터 'C9'는 조도센서 값의 변화에 기초하여 클러스터링 되었다. 클러스터 'C9'의 중심 값은 '20' 이다. 프로세서(400)는 클러스터 'C1', 'C5' 및 'C9'를 분석하여 유사성 판단 정보를 얻을 수 있다. 예를 들면 클러스터 'C1', 'C5' 및 'C9'은 동일한 시간대에 발생했다. 따라서 그룹 G3(714)의 유사성 판단정보는 '시간'이 될 수 있다. 유사한 분석과정을 거쳐 프로세서는 그룹 G1(710)의 유사성 판단 정보를 '시간' 및 '위치'로 결정하고, 그룹 G2(712)의 유사성 판단 정보를 '빈도 수'로 결정 할 수 있다.
The similarity determination information 708 can be determined by comparing the center values of the respective clusters or by comparing the data constituting the event logs included in each cluster. For example, the clusters constituting the group 'G3' 714 are 'C1', 'C5', and 'C9'. Cluster 'C1' was clustered based on location. The center value of cluster 'C1' is '127.03, 37.51'. Cluster 'C5' was clustered based on time. The center value of cluster 'C5' is (MON, 22:20:21). Cluster 'C9' was clustered based on changes in ambient sensor values. The center value of cluster 'C9' is '20'. Processor 400 may obtain similarity determination information by analyzing clusters 'C1', 'C5', and 'C9'. For example, clusters 'C1', 'C5' and 'C9' occurred at the same time. Therefore, the similarity determination information of the group G3 714 may be 'time'. After a similar analysis process, the processor can determine the similarity determination information of the group G1 710 as 'time' and 'position', and determine the similarity determination information of the group G2 712 as the 'frequency number'.

도 8은 이벤트 발생시 처리과정을 나타내는 도면이다. 도 4 및 도8을 참조하면, 전자장치에서 이벤트가 발생하면(단계 802), 프로세서는 이벤트 정보, 이벤트 발생 시각 및 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집한다(단계 804). 이벤트 로그는 이벤트 로그 아이디, 이벤트 정보, 이벤트 관련 시간정보 및 위치정보를 포함할 수 있다. 이벤트 관련 시간정보는 이벤트가 발생한 시각, 날짜 및 요일정보가 될 수 있다. 예를 들면 시간정보는 '2010-11-09 18:07:35 WED' 와 같이 될 수 있다. 위치정보는 이벤트가 발생되었을 때 전자장치의 위치 데이터이다. 위치정보는 경도 및 위도를 포함한 좌표로 제공될 수 있다.FIG. 8 is a diagram illustrating a processing procedure when an event occurs. Referring to FIGS. 4 and 8, when an event occurs in the electronic device (step 802), the processor collects an event log including event information, an event occurrence time and position data of the electronic device (step 804). The event log may include an event log ID, event information, event related time information, and location information. The event-related time information may be the time, date, and day of the week when the event occurred. For example, the time information could be like '2010-11-09 18:07:35 WED'. The location information is location data of the electronic device when the event occurs. The location information may be provided in coordinates including longitude and latitude.

이벤트가 발생하면 이벤트 로그 수집부(410)는 센서부(402), 통신부(404), 타이머(406) 및 앱(App) 정보 수집부(408)에서 발생한 이벤트 로그를 수집하고, 이벤트 로그 저장부(416)에 저장한다. When an event occurs, the event log collecting unit 410 collects event logs generated by the sensor unit 402, the communication unit 404, the timer 406, and the app information collecting unit 408, (416).

프로세서(400)는 이벤트 로그를 적어도 하나의 클러스터로 클러스터링 한다(단계 806). 프로세서(400)는 이벤트 로그 저장부(416)에 저장된 이벤트 로그의 개수가 미리 결정된 값 보다 크면 이벤트 로그를 클러스터링 한다. 예를 들면 프로세서(400)는 이벤트 로그 저장부(416)에 저장된 클러스터의 개수가 30개 이상이면 이벤트 로그 저장부(416)에 저장된 이벤트 로그를 클러스터링 한다. 프로세서(400)는 클러스터와 관련된 정보를 생성한다(단계 808). 클러스터와 관련된 정보는 클러스터 아이디(602), 라벨명(604), 클러스터를 구성하는 이벤트 로그 정보(606), 중심 값(608), 거리(610) 및 클러스터를 구성하는 이벤트 로그 개수(612)를 포함할 수 있다. 클러스터와 관련된 정보는 API로 제공되어 전자장치에서 실행되는 앱에서 액세스 가능하다.Processor 400 clusters event logs into at least one cluster (step 806). The processor 400 clusters the event logs if the number of event logs stored in the event log storage unit 416 is greater than a predetermined value. For example, the processor 400 clusters event logs stored in the event log storage unit 416 when the number of clusters stored in the event log storage unit 416 is 30 or more. The processor 400 generates information related to the cluster (step 808). The information related to the cluster includes a cluster ID 602, a label name 604, event log information 606 constituting a cluster, a center value 608, a distance 610 and an event log number 612 constituting a cluster . Clustering-related information is provided as an API and is accessible from an app running on an electronic device.

프로세서(400)는 이벤트 로그에 포함된 시간 및 위치 데이터에 기초하여 클러스터에 라벨명을 부가한다(단계 810). 라벨명은 클러스터 정보에 포함된 중심 값에 기초하여 프로세서(400)가 자동으로 부여할 수 있다. 프로세서(400)는 위치 데이터에 기초하여 전자장치의 외부로부터 지명을 획득하고, 라벨명에 지명이 포함되도록 할 수 있다. 예를 들면 클러스터의 중심 값이 '127.03, 37.51'이면, 프로세서(400)는 해당 위치가 '강남구' 라는 것을 지도 데이터로부터 획득하고, 클러스터의 라벨명을 '강남구'가 포함되도록 결정한다. 지도 데이터는 전자장치 외부에 있는 서버(미도시)로부터 제공되거나 또는 전자장치에 내장될 수 있다.The processor 400 adds a label name to the cluster based on the time and location data contained in the event log (step 810). The label name can be automatically assigned by the processor 400 based on the center value included in the cluster information. The processor 400 may obtain a nomination from outside the electronic device based on the location data and cause the name to be included in the label name. For example, if the center value of the cluster is '127.03, 37.51', the processor 400 obtains from the map data that the corresponding location is 'Gangnam-gu', and determines that the label name of the cluster includes 'Gangnam-gu'. The map data may be provided from a server (not shown) external to the electronic device or embedded in the electronic device.

프로세서(400)는 전자장치의 하드웨어와 관련된 이벤트 로그 및 전자장치의 소프트웨어와 관련된 이벤트 로그를 구분하여 클러스터링 할 수 있다. 예를 들면 프로세서(400)는 이벤트 로그 수집부(410)를 통해 하드웨어 모듈인 센서부(402)에서 발생한 이벤트 로그를 하나 이상의 클러스터로 구성 할 수 있다. 프로세서(400)는 이벤트 로그 수집부(410)를 통해 소프트웨어 모듈인 앱 정보 수집부(408)에서 발생한 이벤트 로그를 하나 이상의 클러스터로 구성할 수 있다.
The processor 400 may separate and cluster the event logs associated with the hardware of the electronic device and the event logs associated with the software of the electronic device. For example, the processor 400 may configure the event log generated by the sensor unit 402, which is a hardware module, through one or more clusters through the event log collecting unit 410. The processor 400 may configure the event log generated by the app information collecting unit 408, which is a software module, through one or more clusters through the event log collecting unit 410.

도9는 클러스터가 생성된 상태에서 새로운 이벤트가 발생되었을 때 처리과정을 나타내는 흐름도이다. 도 4 및 도 9를 참조하면, 클러스터가 생성된 상태에서 새로운 이벤트가 발생하면(단계 902), 프로세서는 이벤트 로그를 수집한다(단계 904). 프로세서(400)는 클러스터의 중심 값과 새로운 이벤트 로그에 포함된 데이터를 비교하여 클러스터의 중심 값과 이벤트 로그간의 거리를 결정한다(단계 906). 여기서 거리는 클러스터의 중심 값과 이벤트 로그에 포함된 각 데이터의 값들의 차이다. 클러스터의 중심 값은 클러스터의 유형에 따라 위치 데이터, 시간 데이터 및 센서 값 등이 될 수 있다. 클러스터의 유형에 따라 중심 값은 다양한 형태의 값이 될 수 있다. 클러스터의 중심 값이 위치 데이터일 경우, 프로세서(400)는 새로운 이벤트가 발생하면 새로운 이벤트 로그에 포함된 위치 데이터와 클러스터의 중심 값을 비교한다. 클러스터의 중심 값이 시간 데이터인 경우, 프로세서(400)는 새로운 이벤트가 발생하면 새로운 이벤트 로그에 포함된 시간 데이터와 클러스터의 중심 값을 비교한다. 프로세서(400)는 거리가 미리 결정된 값 이하인지 판단한다(단계 908). 예를 들면 중심 값이 'SUN, 21:52:12'인 클러스터 'C1'이 존재하는 상태에서, 일요일 21:52분에 새로운 이벤트가 발생하면, 프로세서(400)는 클러스터 'C1'의 중심 값과 새로운 이벤트 로그를 비교한다. C1의 중심값이 'SUN, 21:52:12'이므로 프로세서는 일요일 21:52분에 발생한 이벤트에 대한 이벤트 로그를 클러스터 'C1'에 포함시킨다. 프로세서(400)는 클러스터의 중심 값을 다시 계산하고 이벤트 로그 개수도 증가 시킨다(단계 910). 클러스터 'C1'의 개수는 한 개 증가하고, 중심 값도 다시 계산된다. 새로운 이벤트에 포함된 데이터가 클러스터 'C1'의 중심 값과 미리 결정된 거리보다 크면, 프로세서(400)는 새로운 이벤트를 클러스터 'C1'에 포함시키지 않고, 별개의 이벤트 로그로 저장한다.
9 is a flowchart showing a process when a new event is generated in a state where a cluster is created. Referring to FIGS. 4 and 9, when a new event is generated in a state where the cluster is created (step 902), the processor collects an event log (step 904). The processor 400 compares the center value of the cluster with the data contained in the new event log to determine the distance between the center value of the cluster and the event log (step 906). Here, the distance is the difference between the center value of the cluster and the value of each data included in the event log. The center value of the cluster may be location data, time data, sensor value, etc. depending on the type of the cluster. Depending on the type of cluster, the center value can be a variety of values. When the center value of the cluster is the position data, the processor 400 compares the position data included in the new event log with the center value of the cluster when a new event occurs. If the center value of the cluster is time data, the processor 400 compares the time data included in the new event log with the center value of the cluster when a new event occurs. The processor 400 determines whether the distance is less than or equal to a predetermined value (step 908). For example, if a new event occurs on Sunday at 21:52 with cluster 'C1' having a center value of 'SUN, 21:52:12', the processor 400 determines that the center value of cluster 'C1' And the new event log. Since the center value of C1 is 'SUN, 21:52:12', the processor includes an event log for the event occurring at 21:52 on Sunday in cluster 'C1'. The processor 400 recalculates the center value of the cluster and also increments the number of event logs (step 910). The number of clusters " C1 " increases by one and the center value is calculated again. If the data contained in the new event is greater than a predetermined distance from the center value of the cluster 'C1', the processor 400 does not include the new event in the cluster 'C1', but stores it as a separate event log.

도 10은 두 개의 클러스터를 비교하여 그룹을 생성하는 과정을 나타내는 흐름도이다. 프로세서(400)는 전자장치에서 이벤트 발생에 따라 생성된 이벤트 로그로 구성되며, 각각 다른 중심 값을 갖는 제 1 클러스터와 제 2클러스터를 비교한다(단계 1002). 예를 들면 제 1 클러스터는 위치에 기초하여 클러스터링 되었다. 제 1 클러스터의 중심 값은 '127.03, 37.51'이다. 제 2 클러스터는 시간에 기초하여 클러스터링 되었다. 제 2 클러스터의 중심 값은 'MON, 22:20:21'이다. 제 1 클러스터는 복수의 이벤트 로그를 포함한다. 제 1 클러스터에 포함된 이벤트 로그의 위치 데이터는 제 1 클러스터의 중심 값인 '127.03, 37.51'을 중심으로 일정 거리 이내의 값을 가지고 있다. 제 2 클러스터에 포함된 이벤트 로그의 시간 데이터는 제 2 클러스터의 중심 값인 'MON, 22:20:21'을 중심으로 일정 거리 이내의 값을 가지고 있다.10 is a flowchart illustrating a process of generating a group by comparing two clusters. The processor 400 comprises an event log generated according to an event occurrence in the electronic device, and compares the first cluster and the second cluster having different center values (step 1002). For example, the first cluster has been clustered based on location. The center value of the first cluster is '127.03, 37.51'. The second cluster was clustered on a time basis. The center value of the second cluster is 'MON, 22:20:21'. The first cluster includes a plurality of event logs. The location data of the event log included in the first cluster has a value within a predetermined distance centered on '127.03, 37.51' which is the center value of the first cluster. The time data of the event log included in the second cluster has a value within a certain distance centering on the central value of 'MON, 22:20:21' of the second cluster.

프로세서(400)는 이벤트와 관련된 시간 정보 및 전자장치의 위치 데이터에 기초하여 제 1 클러스터와 제 2 클러스터의 유사성을 판단한다(단계 1004). 프로세서(400)는 먼저 제 1 클러스터와 제 2 클러스터의 중심 값을 비교하여 유사성을 판단한다. 제 1 클러스터의 중심 값과 제 2 클러스터의 중심 값은 서로 다른 형태의 데이터이므로 프로세서(400)는 각 클러스터의 중심 값은 서로 유사성이 없다고 판단한다. 다음에, 프로세서(400)는 제 1 클러스터 및 제 2 클러스터에 포함된 이벤트 로그의 시간 정보 및 위치 데이터에 기초하여 유사성을 판단한다. 예를 들면 제 1 클러스터에 포함된 이벤트 로그는 월요일 22시20분을 기준으로 일정 시간 이내에 수집되었다. 이 때 제 1 클러스터는 중심 값이 '127.03, 37.51' 이지만, 이벤트 로그에 포함된 시간 정보는 월요일 22시20분을 중심으로 일정 시간 이내의 값을 갖게 된다. 제 2 클러스터의 중심 값은 'MON, 22:20:21'이므로 제 2 클러스터의 이벤트 로그에 포함된 시간 정보도 월요일 22시20분21초를 중심으로 일정 시간 이내의 값을 갖게 된다. 프로세서(400)는 제 1 클러스터의 시간 정보 및 제 2 클러스터의 시간정보가 유사성이 있는 것으로 판단한다.The processor 400 determines the similarity of the first cluster and the second cluster based on the time information related to the event and the location data of the electronic device (step 1004). The processor 400 first determines the similarity by comparing the center values of the first and second clusters. Since the center value of the first cluster and the center value of the second cluster are different types of data, the processor 400 determines that the center values of the clusters are not similar to each other. Next, the processor 400 judges the similarity based on the time information and the position data of the event log included in the first cluster and the second cluster. For example, the event log included in the first cluster was collected within a certain time on Monday at 22:20. At this time, the center value of the first cluster is '127.03, 37.51', but the time information included in the event log has a value within a certain time centered on Monday at 22:20. Since the center value of the second cluster is 'MON, 22:20:21', the time information included in the event log of the second cluster also has a value within a certain time centered on Monday 22:20:21. The processor 400 determines that the time information of the first cluster and the time information of the second cluster are similar.

프로세서(400)는 유사성에 기초하여 제 1 클러스터와 제 2 클러스터를 하나의 그룹으로 결정한다(단계 1006). 제 1 클러스터와 제 2 클러스터는 시간 정보에 대해 유사성이 있으므로 프로세서(400)는 제 1 클러스터와 제 2 클러스터를 시간 정보에 기초하여 하나의 그룹으로 결정한다. The processor 400 determines the first cluster and the second cluster as a group based on the similarity (step 1006). Since the first cluster and the second cluster have similarity to the time information, the processor 400 determines the first cluster and the second cluster as one group based on the time information.

프로세서(400)는 그룹에 대한 정보를 저장한다(단계 1008). 프로세서(400)는 그룹에 대한 정보를 그룹 정보 저장부(430)에 저장한다. 그룹에 대한 정보는 데이터 베이스 형태로 저장된다. 그룹에 대한 정보는 그룹명, 그룹을 구성하는 각 클러스터 아이디 및 각 클러스터의 유사성 관련 정보를 포함한다. 그룹명은 일련번호로 부여될 수 있다. 예를 들면 그룹명은 'G1', 'G2', 'G3', ...와 같이 일련번호로 부여될 수 있다. 제 1 클러스터는 클러스터 아이디가 'C1'이다. 제 2 클러스터는 클러스터 아이디가 'C2'이다. 그룹을 구성하는 각 클러스터 아이디는 'C1' 및 'C2'가 될 수 있다. 이런 경우 유사성 관련 정보는 '시간 정보'이다. 제 1 클러스터와 제 2 클러스터는 시간 정보에 기초하여 하나의 그룹으로 형성 되었으므로, 프로세서(400)는 유사성 관련 정보를 '시간'으로 결정하고 저장한다.The processor 400 stores information about the group (step 1008). The processor 400 stores the information on the group in the group information storage unit 430. Information about the group is stored in the form of a database. The information on the group includes the group name, each cluster ID constituting the group, and similarity-related information of each cluster. The group name may be given as a serial number. For example, the group name may be given as a serial number such as 'G1', 'G2', 'G3', .... The cluster ID of the first cluster is 'C1'. The cluster ID of the second cluster is 'C2'. Each cluster ID constituting the group may be 'C1' and 'C2'. In this case, the similarity related information is 'time information'. Since the first cluster and the second cluster are formed into one group based on the time information, the processor 400 determines and stores the similarity related information as 'time'.

그룹에 대한 정보는 전자장치에서 실행되는 앱에서 액세스 가능하다. 그룹에 대한 정보는 API 로 제공될 수 있다. 전자장치에서 앱이 실행될 때 앱이 그룹에 대한 정보를 액세스하고, 관련된 서비스를 제공 할 수 있다.
Information about the group is accessible from an app running on the electronic device. Information about the group can be provided by the API. When an app runs on an electronic device, the app can access information about the group and provide related services.

상기에서 설명된 내용들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기의 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The contents described above may be implemented in the form of program instructions that can be executed through various computer means and recorded in 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 medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The above hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

100: 전자 장치 400: 프로세서
408: App 정보 수집부 410: 이벤트 로그 수집부
412: 클러스터 생성부 414: 그룹 생성부
402: 센서부 404: 통신부
406: 타이머 430: 저장부
416: 이벤트 로그 저장부 418: 클러스터 정보 저장부
420: 그룹 정보 저장부
100: electronic device 400: processor
408: App information collecting unit 410: Event log collecting unit
412: Cluster Generation Unit 414:
402: sensor unit 404: communication unit
406: timer 430: storage unit
416: Event log storage unit 418: Cluster information storage unit
420: Group information storage unit

Claims (20)

전자장치에서 이벤트가 발생하면 상기 이벤트 정보, 이벤트 발생 시각 및 상기 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하는 단계;
상기 이벤트 로그를 적어도 하나의 클러스터로 클러스터링 하는 단계;
상기 클러스터와 관련된 정보를 생성하는 단계;
상기 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 상기 클러스터에 라벨명을 부가하는 단계를 포함하는 것을 특징으로 하는 이벤트 로그 관리 방법.
Collecting an event log including the event information, an event occurrence time and position data of the electronic device when an event occurs in the electronic device;
Clustering the event logs into at least one cluster;
Generating information related to the cluster;
And adding a label name to the cluster based on time and location data included in the event log.
제 1 항에 있어서,
상기 위치데이터에 기초하여 상기 전자장치의 외부로부터 지명을 획득하고, 상기 라벨명에 상기 지명이 포함되도록 하는 것을 특징으로 하는 이벤트 로그 관리 방법.
The method according to claim 1,
Acquiring a place name from the outside of the electronic device based on the position data, and storing the place name in the label name.
제 1 항에 있어서,
상기 라벨명은 사용자 입력에 의해 편집 가능한 것을 특징으로 하는 이벤트 로그 관리 방법.
The method according to claim 1,
Wherein the label name is editable by user input.
제 1 항에 있어서,
상기 클러스터링 단계는,
상기 전자장치의 하드웨어와 관련된 이벤트 로그 및 상기 전자장치의 소프트웨어와 관련된 이벤트 로그를 구분하여 클러스터링 하는 것을 특징으로 하는 이벤트 로그 관리 방법.
The method according to claim 1,
Wherein the clustering comprises:
An event log related to the hardware of the electronic device and an event log related to the software of the electronic device are classified and clustered.
제 1 항에 있어서,
상기 클러스터와 관련된 정보는 상기 클러스터의 중심 값 및 상기 클러스터를 구성하는 이벤트 로그 개수를 포함하는 것을 특징으로 하는 이벤트 로그 관리 방법.
The method according to claim 1,
Wherein the information related to the cluster includes a center value of the cluster and a number of event logs constituting the cluster.
제 1 항에 있어서,
상기 클러스터와 관련된 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능한 것을 특징으로 하는 이벤트 로그 관리 방법.
The method according to claim 1,
Wherein information related to the cluster is accessible from an app running on the electronic device.
제 1 항에 있어서,
상기 전자장치에서 새로운 이벤트가 발생하면 이벤트 로그를 수집하는 단계;
상기 클러스터의 중심 값과 상기 수집된 이벤트 로그의 거리를 결정하는 단계;
상기 거리가 미리 결정된 값 이하인 경우, 상기 이벤트 로그를 상기 클러스터에 포함시키는 단계;
상기 클러스터의 중심 값을 다시 계산하는 단계; 및
상기 클러스터에 포함된 이벤트 로그의 개수를 증가시키는 단계를 포함하는 것을 특징으로 하는 이벤트 로그 관리 방법.
The method according to claim 1,
Collecting an event log when a new event occurs in the electronic device;
Determining a center value of the cluster and a distance of the collected event log;
If the distance is less than or equal to a predetermined value, including the event log in the cluster;
Recalculating the center value of the cluster; And
And increasing the number of event logs included in the cluster.
전자장치에서 이벤트 발생에 따라 생성된 이벤트 로그로 구성되며, 각각 다른 중심 값을 갖는 제 1 클러스터와 제 2 클러스터를 비교하는 단계;
이벤트와 관련된 시간 정보 및 상기 전자장치의 위치데이터에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터의 유사성을 판단하는 단계;
상기 유사성에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터를 하나의 그룹으로 결정하는 단계; 및
상기 그룹에 대한 정보를 저장하는 단계를 포함하는 것을 특징으로 하는 방법.
Comparing the first cluster and the second cluster, each of which has a different center value, from the event log generated according to the event occurrence in the electronic device;
Determining similarity between the first cluster and the second cluster based on time information related to the event and location data of the electronic device;
Determining the first cluster and the second cluster as a group based on the similarity; And
And storing information about the group.
제 8 항에 있어서,
상기 그룹에 대한 정보는 그룹 아이디, 그룹을 구성하는 각 클러스터 아이디 및 각 클러스터의 유사성 관련 정보를 포함하는 것을 특징으로 하는 방법.
9. The method of claim 8,
Wherein the information on the group includes a group ID, each cluster ID constituting the group, and similarity-related information of each cluster.
제 8 항에 있어서,
상기 그룹에 대한 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능한 것을 특징으로 하는 방법.
9. The method of claim 8,
Wherein information about the group is accessible from an app running on the electronic device.
센서값에 변화가 생기면 이벤트를 발생하는 센서부;
전자장치의 외부로부터 데이터가 수신되면 이벤트를 발생하는 통신부; 및
상기 센서부 및 통신부에서 이벤트가 발생하면, 상기 이벤트 정보, 이벤트 발생 시각 및 상기 전자장치의 위치 데이터를 포함하는 이벤트 로그를 수집하고, 상기 이벤트 로그를 적어도 하나의 클러스터로 클러스터링하고, 상기 클러스터와 관련된 정보를 생성하고, 상기 이벤트 로그에 포함된 시간 및 위치데이터에 기초하여 상기 클러스터에 라벨명을 부가하는 프로세서를 포함하는 전자장치.
A sensor unit for generating an event when a sensor value changes;
A communication unit for generating an event when data is received from outside of the electronic device; And
Collecting event logs including the event information, an event occurrence time and position data of the electronic device when the event occurs in the sensor unit and the communication unit, clustering the event logs into at least one cluster, And a processor for adding a label name to the cluster based on time and location data included in the event log.
제 11 항에 있어서,
상기 프로세서는 상기 위치데이터에 기초하여 상기 전자장치의 외부로부터 지명을 획득하고, 상기 라벨명에 상기 지명이 포함되도록 하는 것을 특징으로 하는 전자장치.
12. The method of claim 11,
Wherein the processor obtains a place name from the outside of the electronic device based on the position data, and causes the place name to be included in the label name.
제 12 항에 있어서,
상기 라벨명은 사용자 입력에 의해 편집 가능한 것을 특징으로 하는 전자장치.
13. The method of claim 12,
Wherein the label name is editable by user input.
제 11 항에 있어서,
상기 프로세서는 상기 전자장치의 하드웨어와 관련된 이벤트 로그 및 상기 전자장치의 소프트웨어와 관련된 이벤트 로그를 구분하여 클러스터링 하는 것을 특징으로 하는 전자장치.
12. The method of claim 11,
Wherein the processor is configured to classify and cluster event logs associated with hardware of the electronic device and event logs associated with software of the electronic device.
제 11 항에 있어서,
상기 클러스터와 관련된 정보는 상기 클러스터의 중심 값 및 상기 클러스터를 구성하는 이벤트 로그 개수를 포함하는 것을 특징으로 하는 전자장치.
12. The method of claim 11,
Wherein the information related to the cluster includes a center value of the cluster and an event log number constituting the cluster.
제 11 항에 있어서,
상기 클러스터와 관련된 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능한 것을 특징으로 하는 전자장치.
12. The method of claim 11,
Wherein the information associated with the cluster is accessible from an app running on the electronic device.
제 11 항에 있어서,
상기 프로세서는 상기 전자장치에서 새로운 이벤트가 발생하면 이벤트 로그를 수집하고, 상기 클러스터의 중심 값과 상기 수집된 이벤트 로그의 거리를 결정하고, 상기 거리가 미리 결정된 값 이하인 경우, 상기 이벤트 로그를 상기 클러스터에 포함시키고, 상기 클러스터의 중심 값을 다시 계산하고, 상기 클러스터에 포함된 이벤트 로그의 개수를 증가시키는 것을 특징으로 하는 전자장치.
12. The method of claim 11,
Wherein the processor collects an event log when a new event occurs in the electronic device, determines a distance between the center value of the cluster and the collected event log, and if the distance is less than or equal to a predetermined value, And recalculates the center value of the cluster and increases the number of event logs included in the cluster.
센서값에 변화가 생기면 이벤트를 발생하는 센서부;
전자장치의 외부로부터 데이터가 수신되면 이벤트를 발생하는 통신부; 및
상기 센서부 및 상기 통신부에서 발생한 이벤트에 기초하여 생성된 이벤트 로그로 구성되며, 각각 다른 중심 값을 갖는 제 1 클러스터와 제 2 클러스터를 비교하고, 상기 이벤트와 관련된 시간 정보 및 상기 전자장치의 위치데이터에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터의 유사성을 판단하고, 상기 유사성에 기초하여 상기 제 1 클러스터와 상기 제 2 클러스터를 하나의 그룹으로 결정하고, 상기 그룹에 대한 정보를 저장하는 프로세서를 포함하는 전자장치.
A sensor unit for generating an event when a sensor value changes;
A communication unit for generating an event when data is received from outside of the electronic device; And
And an event log generated based on an event occurring in the sensor unit and the communication unit, wherein the first cluster and the second cluster having different center values are compared, and time information related to the event and position data of the electronic device Determining a similarity between the first cluster and the second cluster, determining the first cluster and the second cluster as a group based on the similarity, and storing information on the group ≪ / RTI >
제 18 항에 있어서,
상기 그룹에 대한 정보는 그룹 아이디, 그룹을 구성하는 각 클러스터 아이디 및 각 클러스터의 유사성 관련 정보를 포함하는 것을 특징으로 하는 전자장치.
19. The method of claim 18,
Wherein the information on the group includes a group ID, each cluster ID constituting the group, and similarity-related information of each cluster.
제 18 항에 있어서,
상기 그룹에 대한 정보는 상기 전자장치에서 실행되는 앱에서 액세스 가능한 것을 특징으로 하는 전자장치.
19. The method of claim 18,
Wherein the information about the group is accessible from an app running on the electronic device.
KR1020130058433A 2013-05-23 2013-05-23 A Method and Device for Analyzing the Event log to extract co-occurrences KR20140137653A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130058433A KR20140137653A (en) 2013-05-23 2013-05-23 A Method and Device for Analyzing the Event log to extract co-occurrences

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130058433A KR20140137653A (en) 2013-05-23 2013-05-23 A Method and Device for Analyzing the Event log to extract co-occurrences

Publications (1)

Publication Number Publication Date
KR20140137653A true KR20140137653A (en) 2014-12-03

Family

ID=52457377

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130058433A KR20140137653A (en) 2013-05-23 2013-05-23 A Method and Device for Analyzing the Event log to extract co-occurrences

Country Status (1)

Country Link
KR (1) KR20140137653A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024053773A1 (en) * 2022-09-07 2024-03-14 쿠팡 주식회사 Method for managing log information and electronic device for supporting same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024053773A1 (en) * 2022-09-07 2024-03-14 쿠팡 주식회사 Method for managing log information and electronic device for supporting same

Similar Documents

Publication Publication Date Title
CN108701495B (en) Method for integrating and providing data collected from a plurality of devices and electronic device for implementing the method
CN106209964B (en) Electronic device and method for controlling execution of application in electronic device
US10831792B2 (en) Sensor information using method and electronic device using the same
KR102160975B1 (en) Method and system providing of location based service to a electronic device
KR20150054413A (en) Apparatas and method for determining a location of content according to user's eyes data in an electronic device
CN108605261B (en) Electronic device and operation method thereof
US10198057B2 (en) Electronic device and method for measuring position change
KR20170086977A (en) Method and apparatus for processing image data
KR20180067139A (en) Electronic device and method for providing location information
KR20180131863A (en) Electronic device for providing information related to a smart watch and method for operating the same
KR20170100309A (en) Electronic apparatus for providing a voice recognition control and method thereof
CN108124054B (en) Apparatus for displaying user interface based on sensing signal of grip sensor
KR20150008653A (en) Method for utilizing Usage Log of Portable Terminal and Apparatus for using the same
KR20170054876A (en) Method for managing schedule information and electronic device thereof
CN108885853B (en) Electronic device and method for controlling the same
US10621308B2 (en) Electronic device and method for linking exercise schedule thereof
KR20170089642A (en) Apparatus and method for managing of history information in a electronic device
US10210104B2 (en) Apparatus and method for providing handoff thereof
KR20170045037A (en) Method for Providing Schedule and Electronic Device supporting the same
KR102490673B1 (en) Method for providing additional information for application and electronic device supporting the same
KR20150085864A (en) Advertising method of electronic apparatus and electronic apparatus thereof
KR20180061930A (en) Text input method and electronic device supporting the same
KR20150020398A (en) Apparatas and method for unified search of application in an electronic device
KR20180020745A (en) Electronic device and method for providing information of work and life
KR20140137653A (en) A Method and Device for Analyzing the Event log to extract co-occurrences

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application