그러면 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다.Then, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those of ordinary skill in the art to which the present invention pertains can easily implement them.
도 1은 본 발명의 일 실시예에 따른 오토프로파일링 기반 네트워크 패킷 이상행위 자동 탐지 시스템(100)의 구성도이다.1 is a block diagram of an auto-profiling-based network packet anomaly automatic detection system 100 according to an embodiment of the present invention.
도 1을 참고하면, 본 발명에 따른 시스템은 데이터 저장부(110), 데이터 전처리부(120), 학습부(130) 및 실시간 예측 분류부(140)를 포함할 수 있다.Referring to FIG. 1 , the system according to the present invention may include a data storage unit 110 , a data preprocessing unit 120 , a learning unit 130 , and a real-time prediction classification unit 140 .
데이터 저장부(110)는 대용량의 네트워크 패킷 로그 데이터를 수집하여 저장할 수 있다.The data storage unit 110 may collect and store a large amount of network packet log data.
데이터 저장부(110)는 네트워크 패킷 로그 데이터를 실시간으로 큐 메세지 처리를 하며, 큐 메세지 처리가 완료된 데이터를 데이터 스트림 처리하여 파싱하고, 파싱된 데이터를 뒤에서 설명하는 오토프로파일링 모델, 복수 개의 위협 유형별 분류 모델 및 이상행위 탐지 모델의 학습에 필요한 요소만을 추출하여 저장할 수 있다.The data storage unit 110 processes the network packet log data in real time as a queue message, parses the data stream processing the queue message processing completed data, and an auto-profiling model that describes the parsed data later, by a plurality of threat types Only elements necessary for learning the classification model and the anomaly detection model can be extracted and stored.
데이터 저장부(110)는 시스템(100)의 동작과 관련된 각종 정보 및 데이터를 저장할 수 있다.The data storage unit 110 may store various types of information and data related to the operation of the system 100 .
데이터 전처리부(120)는 데이터 저장부(110)에 저장된 네트워크 패킷 로그 데이터 및 실시간으로 수집되는 네트워크 패킷 로그 데이터를 목적에 따라 전처리하여 출력할 수 있다.The data pre-processing unit 120 may pre-process the network packet log data stored in the data storage unit 110 and the network packet log data collected in real time according to the purpose and output the pre-processed data.
데이터 전처리부(120)는 수집된 네트워크 패킷 로그 데이터를 시간, 특징 별로 집계하여 문자열에 대한 데이터 그룹핑하고, 문자열 데이터의 벡터화 과정을 거친 후 각 컬럼별로 스케일링을 할 수 있다.The data preprocessor 120 may aggregate the collected network packet log data by time and feature, group data for the character string, and perform scaling for each column after vectorizing the character string data.
데이터 전처리부(120)는 수집된 네트워크 패킷 로그 데이터에 대해서 학습을 위한 데이터 레이블링 전처리를 수행할 수 있다.The data preprocessor 120 may perform data labeling preprocessing for learning on the collected network packet log data.
학습부(130)는 네트워크 패킷 로그 데이터를 전처리한 데이터를 이용하여 오토프로파일링 모델, 복수 개의 위협 유형별 분류 모델 및 이상행위 탐지 모델을 훈련 학습시킬 수 있다. 복수 개의 위협 유형 분류 모델은 서로 다른 복수 개의 위협 유형에 대해서 각각 학습될 수 있다. 예를 들어 n개의 위협 유형이 있다고 가정하면, n개의 위협 유형 분류 모델이 학습될 수 있다.The learning unit 130 may train and learn an auto-profiling model, a classification model for a plurality of threat types, and an abnormal behavior detection model using data obtained by preprocessing network packet log data. A plurality of threat type classification models may be trained for a plurality of different threat types, respectively. For example, assuming that there are n threat types, n threat type classification models can be trained.
오토프로파일링 모델은 Decision Tree, ESOINN, SOM 등으로 구현할 수 있다.Auto-profiling model can be implemented with Decision Tree, ESoiNN, SOM, etc.
복수 개의 위협 유형 분류 모델은 CNN, LSTM, RNN, DNN, Random Forest 등을 이용하여 지도 학습될 수 있다.A plurality of threat type classification models may be supervised using CNN, LSTM, RNN, DNN, Random Forest, and the like.
이상행위 탐지 모델은 오토인코더, IF(Isolation Forest), LOF(Local Outlier Factor), ESOINN(enhanced self-organizing incremental neural network) 또는 SOM(Self-Organizing Maps) 등을 이용하여 비지도 학습될 수 있다.The anomaly detection model may be unsupervised learning using an autoencoder, an isolation forest (IF), a local outlier factor (LOF), an enhanced self-organizing incremental neural network (ESoinn), or self-organizing maps (SOM).
실시간 예측 분류부(140)는 학습부(130)에서 학습된 오토프로파일링 모델, 복수 개의 위협 유형별 분류 모델 및 이상행위 탐지 모델을 이용하여 실시간으로 수집되는 네트워크 패킷 로그 데이터를 입력받아 정상, 위협 및 이상 행위 여부를 탐지할 수 있다.The real-time predictive classification unit 140 receives network packet log data collected in real time using the auto-profiling model, a plurality of threat type classification models, and anomaly detection models learned in the learning unit 130, and receives normal, threat and Abnormal behavior can be detected.
구체적으로 실시간 예측 분류부(140)는 실시간으로 수집되어 데이터 전처리부(120)에서 전처리된 네트워크 패킷 로그 데이터를 미리 학습된 오토프로파일링 모델에 입력하여 정상 또는 특정 위협 유형에 해당하는지 1차적으로 분류할 수 있다. 그리고 실시간 예측 분류부(140)는 특정 위협 유형으로 분류된 데이터를 오토프로파일링 모델에서 1차적으로 분류된 위협 유형에 대응하는 위협 유형 분류 모델에 입력하여 특정 위협 여부를 최종적으로 탐지할 수 있다. 한편 실시간 예측 분류부(140)는 오토프로파일링 모델에서 정상으로 탐지된 네트워크 패킷 로그 데이터를 미리 학습된 이상행위 탐지 모델에 입력하여 최종적으로 정상 또는 이상 행위 여부를 탐지할 수 있다.Specifically, the real-time predictive classification unit 140 inputs the network packet log data collected in real time and pre-processed by the data pre-processing unit 120 into a pre-trained auto-profiling model to first classify whether it corresponds to a normal or a specific threat type. can do. In addition, the real-time prediction classification unit 140 may finally detect whether a specific threat exists by inputting data classified as a specific threat type into a threat type classification model corresponding to the threat type primarily classified in the auto-profiling model. Meanwhile, the real-time prediction classifier 140 may input the network packet log data detected normally in the auto-profiling model into the pre-trained abnormal behavior detection model to finally detect whether the normal or abnormal behavior is present.
도 2는 본 발명에 따른 네트워크 패킷 데이터 수집 저장 과정을 예시한 도면이다.2 is a diagram illustrating a network packet data collection and storage process according to the present invention.
도 2를 참고하면, 데이터 저장부(110)는 대용량 네트워크 패킷 로그 데이터를 전달받아 수집한 후 해당 대용량 데이터를 실시간으로 큐 메세지 처리를 하며(S210), 큐 메세지 처리가 완료된 데이터를 데이터 스트림 처리하여 파싱한다(S220). 데이터 저장부(110)는 파싱된 데이터에서 오토프로파일링 모델, 복수 개의 위협 유형별 분류 모델 및 이상행위 탐지 모델에 필요한 미리 정해진 요소만을 읽고 추출하여(S230), 데이터 스토리지(DB)에 입력한다(S240). 예를 들어 http agent, http query, http_host, http_method, http_retcode, http_path, dst_port, ingress_if, traffic_bytes, traffic_packets 등 http 트래픽에 나오는 속성 등을 추출할 수 있다. 여기서 예시한 것 외에 다른 요소들을 네트워크 패킷 로그 데이터에서 추출할 수도 있다.Referring to FIG. 2 , the data storage unit 110 receives and collects large-capacity network packet log data, then processes the large-capacity data in real time with a queue message (S210), and processes the queue message processing completed data as a data stream. Parsing (S220). The data storage unit 110 reads and extracts only predetermined elements necessary for an auto-profiling model, a classification model for a plurality of threat types, and an anomaly detection model from the parsed data (S230), and inputs them to the data storage (DB) (S240) ). For example, attributes from http traffic such as http agent, http query, http_host, http_method, http_retcode, http_path, dst_port, ingress_if, traffic_bytes, and traffic_packets can be extracted. Other factors other than those exemplified here may be extracted from the network packet log data.
도 3은 본 발명에 따른 네트워크 패킷 로그 데이터 전처리 과정을 예시한 도면이다.3 is a diagram illustrating a network packet log data preprocessing process according to the present invention.
도 3을 참고하면, 데이터 전처리부(120)는 데이터 저장부(110)에서 파싱되어 데이터 스토리지(DB)에 저장된 네트워크 패킷 로그 데이터에 대한 전처리를 진행할 수 있다.Referring to FIG. 3 , the data preprocessor 120 may preprocess network packet log data parsed by the data storage unit 110 and stored in the data storage DB.
데이터 전처리부(120)는 미리 정해진 단위 시간마다 동일한 소스 IP(src_ip) 및 목적지 IP(dst_ip)를 가지는 네트워크 패킷 로그 데이터를 그룹핑하여 한 행의 데이터로 표현되게 전처리할 수 있다.The data preprocessor 120 may group the network packet log data having the same source IP (src_ip) and destination IP (dst_ip) for each predetermined unit time and preprocess it to be expressed as data in one row.
먼저 데이터 전처리부(120)는 미리 정해진 단위 시간마다 동일한 소스 IP(src_ip) 및 목적지 IP(dst_ip)를 가지는 네트워크 패킷 로그 데이터를 하나의 그룹으로 그룹핑할 수 있다(S310).First, the data preprocessor 120 may group network packet log data having the same source IP (src_ip) and destination IP (dst_ip) into one group for each predetermined unit time (S310).
다음으로 먼저 데이터 전처리부(120)는 동일 그룹의 네트워크 패킷 데이터에 포함되는 속성 중에서 숫자 데이터에 해당하는 속성에 대해서는 통계값을 구할 수 있다(S320). 통계값은 평균, 변화량 및 분산 중 적어도 하나일 수 있다. 예를 들어 평균 트래픽 packet 건수, 평균 트래픽 bytes, 평균 method 건수 등이 구해질 수 있다.Next, first, the data preprocessor 120 may obtain a statistical value for an attribute corresponding to numeric data among attributes included in the network packet data of the same group ( S320 ). The statistical value may be at least one of mean, variation, and variance. For example, the average number of traffic packets, the average traffic bytes, and the average number of methods can be obtained.
그리고 데이터 전처리부(120)는 동일 그룹에 속하는 네트워크 패킷 로그 데이터에 포함되는 속성 중에서 문자열 데이터는 하나의 문자열 데이터로 결합할 수 있다(S330). 하나로 결합된 문자열 데이터는 각 네트워크 패킷 로그 데이터에 포함된 문자열 데이터를 컴마(,)와 같은 구분자로 구분하여 표현할 수도 있다.In addition, the data preprocessor 120 may combine character string data into one character string data among the attributes included in the network packet log data belonging to the same group (S330). String data combined into one can also be expressed by separating string data included in each network packet log data with a delimiter such as a comma (,).
그리고 데이터 전처리부(120)는 단계(S320, S330)에서 구해진 통계값과 문자열 데이터에 대해서 표준화(Normalization)를 수행할 수도 있다. 숫자 데이터로 구해지는 통계값에 대해서는 도 5(a)에 예시한 것과 같이 Standard scaling, MinMax Scaling 등 여러 가지 스케일링 기법 중에 하나를 써서 스케일링 할 수 있다. 한편 문자열 데이터에 대해서는 숫자 벡터 형태로 변환하고, 앞서 설명한 숫자 데이터의 표준화 방법을 적용하여 스케일링할 수도 있다.In addition, the data preprocessor 120 may perform normalization on the statistical values and character string data obtained in steps S320 and S330. Statistical values obtained from numeric data can be scaled by using one of various scaling techniques such as Standard scaling and MinMax Scaling as illustrated in FIG. 5(a). Meanwhile, string data may be converted into a numeric vector form and scaled by applying the standardization method of numeric data described above.
문자열 데이터에 대해서는 숫자 벡터 형태로 변환하는 것은 TF_IDF(Term Frequency - Inverse Document Frequency), Count Vectorization, word2vec 등의 기법을 사용할 수 있다. 예를 들어 도 5(b)에 예시한 것과 같은 TF-IDF는 문자열을 분석하여 각 문자열이 나타난 빈도에 따라 맞는 벡터를 부여한다. 로그 데이터를 숫자로 변환한 후 벡터 하나로 조합하여 매트릭스 형태로 변형할 수 있다.To convert string data into a numeric vector form, techniques such as TF_IDF (Term Frequency - Inverse Document Frequency), Count Vectorization, and word2vec may be used. For example, the TF-IDF as exemplified in FIG. 5(b) analyzes a character string and assigns a vector that fits according to the frequency of each character string. After converting log data into numbers, it can be transformed into a matrix by combining them into one vector.
이후 데이터 전처리부(120)는 앞서 구해진 통계값들과 하나로 결합된 문자열 데이터를 포함하는 전처리된 네트워크 패킷 로그 데이터를 생성하여 출력할 수 있다(S340).Thereafter, the data preprocessor 120 may generate and output preprocessed network packet log data including string data combined with the previously obtained statistical values ( S340 ).
여기서 예시한 방법이 아닌 다른 적절한 방법에 의해 전처리부(120)에서 네트워크 패킷 로그 데이터를 인공지능 기반 모델에서 필요한 입력값 형태로 변환하는 것도 가능하다. 네트워크 패킷 로그 데이터를 인공지능 기반 모델에서 필요한 입력값 형태로 변환하는 다양한 공지된 방법이 이용될 수 있다.It is also possible to convert the network packet log data into the input value form required by the AI-based model in the preprocessor 120 by an appropriate method other than the method exemplified here. Various known methods for converting network packet log data into the form of input values required by the AI-based model may be used.
실시간 예측 대상 네트워크 패킷 로그 데이터에 대해서는 단계(S310) 내지 단계(S340)를 거치고, 모델 학습 대상 네트워크 패킷 로그 데이터는 단계(S310) 내지 단계(S340) 이전에 정상 여부, 위협 유형 등에 대한 데이터 레이블링(Labelling)이 먼저 수행된다. 모델 학습 대상 네트워크 패킷 로그 데이터는 방화벽 및 보안장비에서 가져와 해당 장비에서 레이블링 한 데이터를 사용하거나, 네트워크 로그에서 룰셋 기반으로 레이블링을 진행할 수 있다.The real-time prediction target network packet log data goes through steps (S310) to (S340), and the model training target network packet log data is normal before step (S310) to step (S340) Data labeling ( Labeling) is performed first. The network packet log data for model training can be obtained from firewalls and security equipment and labeled by the equipment, or labeling can be performed from the network log based on the ruleset.
도 6은 본 발명에 따른 모델 학습 과정을 예시한 도면이다.6 is a diagram illustrating a model learning process according to the present invention.
도 6을 참고하면, 학습부(130)는 데이터 전처리부(120)에서 모델 학습에 입력되기 위한 전처리된 데이터를 제공받아 오토프로파일링 모델, 복수 개의 위협 유형 분류 모델 및 이상행위 탐지 모델에 대한 훈련 학습을 진행한다.Referring to FIG. 6 , the learning unit 130 receives pre-processed data to be input to model learning from the data pre-processing unit 120 and trains the auto-profiling model, a plurality of threat type classification models, and an anomaly detection model. proceed with learning.
구체적으로 오토프로파일링 모델은 전처리 후 정상과 위협 유형별 데이터를 모두 학습하여 새로운 데이터가 입력되었을 때 해당 데이터가 정상인지 특정 위협 유형에 해당되는지 1차적으로 분류해주도록 학습될 수 있다(S610).Specifically, the auto-profiling model can learn both normal and threat type data after pre-processing, so that when new data is input, it can be learned to primarily classify whether the data is normal or corresponds to a specific threat type (S610).
이상행위 탐지 모델은 오토인코더, IF(Isolation Forest), LOF(Local Outlier Factor), ESOINN(enhanced self-organizing incremental neural network) 또는 SOM(Self-Organizing Maps) 등을 이용하여 정상으로 레이블링된 정상 레이블링 데이터만을 학습하여 정상이 아닌 데이터가 들어왔을 때 이상행위를 탐지하도록 비지도 학습될 수 있다(S620). 따라서 새로운 데이터가 들어왔을 때 1차적으로 오토프로파일링 모델을 통해 분류가 진행되며, 오토프로파일링 모델에서 정상으로 판단된 데이터를 이상행위 탐지 모델에 다시 입력한다. 이를 통해 위협 유형에 해당되지 않지만, 정상이 아닌 이상행위를 탐지할 수 있다.The anomaly detection model uses autoencoder, IF (Isolation Forest), LOF (Local Outlier Factor), ESoiNN (enhanced self-organizing incremental neural network), or SOM (Self-Organizing Maps), etc. Unsupervised learning may be performed to detect an abnormal behavior when abnormal data is received by learning only the data (S620). Therefore, when new data comes in, classification is primarily carried out through the auto-profiling model, and the data determined to be normal in the auto-profiling model is re-entered into the anomaly detection model. Through this, it is possible to detect abnormal behavior that does not fall under the threat type, but is not normal.
복수 개의 위협 유형 분류 모델은 각각 자신에 대응하는 특정 위협 유형으로 레이블링된 네트워크 패킷 로그 데이터만을 학습하여 특정 위협을 탐지하도록 학습될 수 있다(S630). 따라서 새로운 네트워크 패킷 로그 데이터가 실시간으로 들어왔을 때 1차적으로 오토프로파일링 모델을 통해 분류가 진행되며, 오토프로파일링 모델에서 분류된 각각의 위협 종류에 따라 해당 위협 유형 분류모델에 입력되고, 이를 통해 최종 위협 탐지가 가능하다.Each of the plurality of threat type classification models may be trained to detect a specific threat by learning only network packet log data labeled with a specific threat type corresponding thereto ( S630 ). Therefore, when new network packet log data comes in in real time, classification is primarily carried out through the auto-profiling model, and according to each threat type classified in the auto-profiling model, it is input into the corresponding threat type classification model. Final threat detection is possible.
앞에서 정상 데이터는 위협이 아닌 데이터를 의미하고, 위협 데이터는 위협에 대한 특징이 명확하여 특정 위협명으로 분류할 수 있는 데이터를 의미하며, 이상 데이터는 위협에 해당되지 않고 정상으로 분류되어있지만, 일반적인 정상 데이터의 패턴과는 다른 특징을 갖고 있는 데이터를 의미한다.As mentioned above, normal data means data that is not a threat, threat data means data that can be classified as a specific threat name because the characteristics of the threat are clear, and abnormal data does not correspond to a threat and is classified as normal, but It means data that has characteristics different from the pattern of normal data.
학습부(130)는 단계(S610, S620, S630)에서 학습된 모델을 저장할 수 있다(S640).The learning unit 130 may store the model learned in steps S610, S620, and S630 (S640).
도 7은 본 발명에 따른 실시간 위협 분류 예측 과정을 예시한 도면이다.7 is a diagram illustrating a real-time threat classification prediction process according to the present invention.
도 7을 참고하면, 실시간 예측 분류부(140)는 단계(S610, S620, S630)에서 학습된 모델을 이용하여 실시간 위협 및 이상행위를 예측 및 분류할 수 있다. 즉 학습부(130)는 모델 예측에 입력되기 위해 전처리된 데이터를 제공받아 학습부(130)에서 학습 저장된 모델에 적용할 수 있다. 먼저 실시간 예측 분류부(140)는 오토프로파일링 모델에 의해 실시간 입력된 데이터를 특징에 따라 1차 분류한다(S710). 단계(S710)에서 정상 또는 위협으로 분류하고, 위협의 경우 그 유형까지 1차적으로 분류한다.Referring to FIG. 7 , the real-time prediction classification unit 140 may predict and classify real-time threats and abnormal behaviors using the model learned in steps S610, S620, and S630. That is, the learning unit 130 may receive the preprocessed data to be input to the model prediction and apply it to the model learned and stored by the learning unit 130 . First, the real-time prediction classification unit 140 first classifies the data input in real time by the auto-profiling model according to characteristics (S710). In step S710, it is classified as normal or threatened, and in the case of a threat, it is primarily classified up to the type.
다음으로 오토프로파일링 모델에 의해 정상으로 분류된 데이터는 이상 행위 탐지 모델을 통해 이상행위를 탐지한다(S720).Next, the data classified as normal by the auto-profiling model detects an abnormal behavior through the abnormal behavior detection model (S720).
한편 오토프로파일링 모델에 의해 위협으로 분류된 데이터는 해당하는 위협 유형 분류 모델을 통해 사이버 위협 여부를 최종적으로 탐지한다(S730).Meanwhile, the data classified as a threat by the auto-profiling model is finally detected as a cyber threat through the corresponding threat type classification model (S730).
한편 실시간 예측 분류부(140)에서 예측된 결과에 대한 성능 평가도 이루어질 수 있다(S740).Meanwhile, performance evaluation of the results predicted by the real-time prediction classifier 140 may also be performed (S740).
이와 같이 본 발명에 의하면 기존의 네트워크 패킷의 이상행위(Anomaly Behavior) 및 사이버 위협 탐지 기술의 트래픽 분석 처리 속도와 탐지 성능의 문제점을 인공지능(딥러닝) 기술을 이용하여 개선 시킬 수 있다. 또한 본 발명에 따른 기술은 데이터를 DB에 저장하는 것을 시작으로 시간 그룹별로 데이터를 집계하고 문자열 데이터 묶음을 생성하여 문자열 데이터 벡터화 과정과 수치형 데이터 스케일링 과정을 거친다. 스케일링된 데이터는 결정 트리(Decision Tree), IF(Isolation Forest), LOF(Local Outlier Factor), ESOINN(enhanced self-organizing incremental neural network) 또는 SOM(Self-Organizing Maps) 기반의 오토 프로파일링(Auto Profiling) 모델을 통해 유의미한 피처 셋(feature set) 추출, 내재된 특징의 중요도 및 데이터의 형태를 학습하며, 해당 내용 기반으로 딥러닝 모델(Deep Neural Network, Auto Encoder, IF(Isolation Forest), LOF(Local Outlier Factor), ESOINN(enhanced self-organizing incremental neural network) 또는 SOM(Self-Organizing Maps) 등)을 통해 최종적으로 이상행위 및 사이버 위협을 탐지한다.As described above, according to the present invention, problems of traffic analysis processing speed and detection performance of existing network packet anomaly behavior and cyber threat detection technology can be improved by using artificial intelligence (deep learning) technology. In addition, the technology according to the present invention starts by storing data in the DB, aggregates data by time group, creates a string data bundle, and goes through a string data vectorization process and a numerical data scaling process. The scaled data is Auto Profiling based on Decision Tree, Isolation Forest (IF), Local Outlier Factor (LOF), enhanced self-organizing incremental neural network (ESoinn), or Self-Organizing Maps (SOM). ) extracts meaningful feature sets, learns the importance of inherent features, and the form of data through the model. Outlier Factor), ESoinn (enhanced self-organizing incremental neural network) or SOM (Self-Organizing Maps), etc.) to finally detect anomalies and cyber threats.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented by a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the apparatus, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that may include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be permanently or temporarily embody in The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment 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, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.