디지털 기기 사용이 일반화되면서 수사 과정에서 물적 증거 수집을 위해 디지털 포렌식 기법을 사용한다. 이 중 파일 포렌식 기법은 삭제된 파일을 복구하는 것으로, 여러 개의 파일로 구성된 데이터베이스가 삭제되어도 복구할 수 있다. 그러나 데이터베이스에서 레코드가 삭제된 경우는 파일 복구를 하여도 수정된 레코드 내용이 복원되지 않는다. 이에 삭제된 레코드를 복구하는 기법인 데이터베이스 포렌식이 필요하다. 데이터베이스 포렌식은 데이터베이스 설정 파일로부터 메타데이터를 획득하고, 데이터 파일에서 삭제된 레코드를 복구한다. 그러나 데이터베이스에서 블록 크기와 같은 데이터베이스 메타데이터를 획득하지 못하면 레코드 복구가 어렵다. 본 논문에서는 데이터베이스 메타데이터인 블록 크기를 탐지하기 위한 세 가지 방법을 제안한다. 첫 번째 기법은 블록에 존재하는 빈공간의 최대 크기를 이용하며, 두 번째 기법은 블록이 나타나는 위치를 이용한다. 세 번째 기법은 두 번째 기법보다 더 빠르게 블록 크기를 찾을 수 있도록 개선한다. 실험 결과는 세 가지 탐지 기법 모두 세 종류의 DBMS의 블록 크기를 정확하게 찾을 수 있음을 보인다.
디지털 기기 사용이 일반화되면서 수사 과정에서 물적 증거 수집을 위해 디지털 포렌식 기법을 사용한다. 이 중 파일 포렌식 기법은 삭제된 파일을 복구하는 것으로, 여러 개의 파일로 구성된 데이터베이스가 삭제되어도 복구할 수 있다. 그러나 데이터베이스에서 레코드가 삭제된 경우는 파일 복구를 하여도 수정된 레코드 내용이 복원되지 않는다. 이에 삭제된 레코드를 복구하는 기법인 데이터베이스 포렌식이 필요하다. 데이터베이스 포렌식은 데이터베이스 설정 파일로부터 메타데이터를 획득하고, 데이터 파일에서 삭제된 레코드를 복구한다. 그러나 데이터베이스에서 블록 크기와 같은 데이터베이스 메타데이터를 획득하지 못하면 레코드 복구가 어렵다. 본 논문에서는 데이터베이스 메타데이터인 블록 크기를 탐지하기 위한 세 가지 방법을 제안한다. 첫 번째 기법은 블록에 존재하는 빈공간의 최대 크기를 이용하며, 두 번째 기법은 블록이 나타나는 위치를 이용한다. 세 번째 기법은 두 번째 기법보다 더 빠르게 블록 크기를 찾을 수 있도록 개선한다. 실험 결과는 세 가지 탐지 기법 모두 세 종류의 DBMS의 블록 크기를 정확하게 찾을 수 있음을 보인다.
As the use of digital devices is becoming more commonplace, digital forensics techniques recover data to collect physical evidence during the investigation. Among them, the file forensics technique recovers deleted files, therefore, it can recover the database by recovering all files which compose t...
As the use of digital devices is becoming more commonplace, digital forensics techniques recover data to collect physical evidence during the investigation. Among them, the file forensics technique recovers deleted files, therefore, it can recover the database by recovering all files which compose the database itself. However, if the record is deleted from the database, the modified record contents will not be restored even if the file is recovered. For this reason, the database forensics technique is required to recover deleted records. Database forensics obtains metadata from database configuration files and recovers deleted records from data files. However, record recovery is difficult if database metadata such as block size cannot be obtained from the database. In this paper, we propose three methods for obtaining block size, which is database metadata. The first method uses the maximum size of free space in the block, and the second method uses the location where the block appears. The third method improves the second method to find the block size faster. The experimental results show that three methods can correctly find the block size of three DBMSes.
As the use of digital devices is becoming more commonplace, digital forensics techniques recover data to collect physical evidence during the investigation. Among them, the file forensics technique recovers deleted files, therefore, it can recover the database by recovering all files which compose the database itself. However, if the record is deleted from the database, the modified record contents will not be restored even if the file is recovered. For this reason, the database forensics technique is required to recover deleted records. Database forensics obtains metadata from database configuration files and recovers deleted records from data files. However, record recovery is difficult if database metadata such as block size cannot be obtained from the database. In this paper, we propose three methods for obtaining block size, which is database metadata. The first method uses the maximum size of free space in the block, and the second method uses the location where the block appears. The third method improves the second method to find the block size faster. The experimental results show that three methods can correctly find the block size of three DBMSes.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
2절은 빈공간의 위치를 이용한다. 따라서 본 실험에서는 블록 내의 빈공간을 시각화해서 확인하는 실험을 한다.
본 논문에서는 일부의 데이터 파일만을 획득하고 필수 매개변수 파일을 획득하지 못했을 때 기본 데이터베이스 포렌식 기법을 적용하기 위해 필수적으로 필요한 블록 크기를 탐지하는 세 가지 기법을 제시한다. 첫 번째 기법은 블록에서 발견되는 최대 빈공간의 크기를 기반으로 블록의 크기를 계산하는 것이다.
본 논문은 디지털 포렌식을 이용하기 위해 데이터베이스의 메타데이터를 직접 확보하지 못했을 때에도 포렌식을 할 수있도록 데이터베이스의 블록 크기를 탐지하는 기법에 관한 것이다. 즉, 슬롯 페이지 구조를 가지는 데이터 파일 블록에 존재하는 빈공간의 크기와 위치를 분석함으로써 블록 크기를 탐지할 수 있는 기법을 제안하였고 실험을 통하여 기법의 유효성을 증명하였다.
DBMS의 디스크 이미지 또는 램 스냅숏을 분석하여 총 8 종의 DBMS를 대상으로 데이터베이스 포렌식 기법을 제시하고 도구를 제안한 연구가 James Wagner에 의해 수행되었 다[3]. 이 연구에서 데이터베이스 저장 구조를 분석하는 방법을 제시하고 있다. 가장 먼저 블록 크기를 탐지한 후 블록 크기로 파일을 나누고 변경되었거나 삭제된 레코드를 포함한블록 내의 레코드를 읽어내는 방법을 제시하고 실험하였다.
가설 설정
오라클 데이터베이스 포렌식을 제안한 연구 에서 블록 크기를 얻기 위해서 메타데이터를 데이터베이스 로그 파일을 분석하여 수행하였다[7]. MySQL 및 마이크로소프트 SQL Server 데이터베이스 포렌식을 제안한 연구에서는 블록 크기가 일정하다고 가정하고 연구를 하였다[8-10].
데이터 파일의 조사된 블록 중 적어도 하나의 빈공간의 크기가 블록 크기의 50%를 초과하는 것으로 가정한다. 그러면 가장 큰 빈공간 크기도 50%를 초과하며 Equation (2)가 성립한다.
제안 방법
현재 일반적으로 많이 사용되고 있는 상용 또는 오픈소스 데이터베이스의 블록 크기는 Equation (1)의 규칙을 따른다. Equation (1)의 규칙을 따르고 최대 빈공간 크기가 블록 크기의 절반 크기를 초과하는 것이 존재하는 경우 최대 블록 크기를 Equation (4)를 대입하여 세 가지 DBMS 파일에 대해서 블록 크기를 정확히 탐지하였다. 만약 Equation (1)의 규칙을 따르지 않더라도 충분한 블록과 빈공간 위치를 확인할 수 있다면 Equation (5)을 이용하여 블록 크기를 확인할 수 있음을 Equation (6)를 통하여 증명하였다.
이 연구에서 데이터베이스 저장 구조를 분석하는 방법을 제시하고 있다. 가장 먼저 블록 크기를 탐지한 후 블록 크기로 파일을 나누고 변경되었거나 삭제된 레코드를 포함한블록 내의 레코드를 읽어내는 방법을 제시하고 실험하였다. James Wagner는 이후 데이터베이스 포렌식 결과를 기록하는 파일 포맷과 데이터베이스 포렌식 툴킷을 제시하였다[6].
그리고 4장에서 PFS를 실험하고 실험 결과를 바탕으로좀 더 적은 블록으로 블록 크기를 찾을 수 있는 방법을 착안하고 실험한다. 그리고 PFS 실험을 통해 얻은 결과에서 좀더 적은 수의 블록을 조사하여 블록 크기를 결정할 수 있는 방법을 제시하고 실험한다.
또한 Equation (5)의 블록 크기의 발견되는 상·하한 최솟값과 최댓값이 수렴하는 것을 이용하여 좀 더 적은 수의 빈공간을 읽어 블록 크기를 정확히 탐지하였다.
본 논문에서 제시한 세 가지 블록 크기 탐지 방법은 실험을 통해서 유효성을 평가하였다. 실험 결과, 세 가지 기법 모두 블록의 크기를 정확히 계산할 수 있음을 확인하였다.
블록 크기를 찾는 방법에 대해 수학적 문제로 정의하면아래와 같다. 연속해서 문제의 해법을 제시하였다.
오라클 데이터베이스, MySQL, 마이크로소프트 SQL Server 각각에 대한 단일 DBMS를 대상으로 한 다른 연구에서도 블록 혹은 블록 크기 등의 메타 정보를 파악하여 데이터베이스를 분석하였다. 오라클 데이터베이스 포렌식을 제안한 연구 에서 블록 크기를 얻기 위해서 메타데이터를 데이터베이스 로그 파일을 분석하여 수행하였다[7]. MySQL 및 마이크로소프트 SQL Server 데이터베이스 포렌식을 제안한 연구에서는 블록 크기가 일정하다고 가정하고 연구를 하였다[8-10].
오라클 데이터베이스, MySQL, 마이크로소프트 SQL Server 각각에 대한 단일 DBMS를 대상으로 한 다른 연구에서도 블록 혹은 블록 크기 등의 메타 정보를 파악하여 데이터베이스를 분석하였다. 오라클 데이터베이스 포렌식을 제안한 연구 에서 블록 크기를 얻기 위해서 메타데이터를 데이터베이스 로그 파일을 분석하여 수행하였다[7].
James Wagner는 이후 데이터베이스 포렌식 결과를 기록하는 파일 포맷과 데이터베이스 포렌식 툴킷을 제시하였다[6]. 이 연구에서 데이터베이스 포렌식 결과 항목 중 하나로 블록 크기를 제시하였다.
본 논문은 디지털 포렌식을 이용하기 위해 데이터베이스의 메타데이터를 직접 확보하지 못했을 때에도 포렌식을 할 수있도록 데이터베이스의 블록 크기를 탐지하는 기법에 관한 것이다. 즉, 슬롯 페이지 구조를 가지는 데이터 파일 블록에 존재하는 빈공간의 크기와 위치를 분석함으로써 블록 크기를 탐지할 수 있는 기법을 제안하였고 실험을 통하여 기법의 유효성을 증명하였다.
실험 결과, 세 가지 기법 모두 블록의 크기를 정확히 계산할 수 있음을 확인하였다. 즉, 첫 번째 기법으로 세 가지 종류의 DBMS 파일에 대해서 실험한 결과 블록의 크기를 정확히 계산하였다. 또한, 가상의 데이터 파일을 만들어서 두 번째 기법으로 실험한 결과 259개의 빈공간의 위치를 이용하여 블록의 크기를 정확히 계산하 였다.
본 논문에서는 일부의 데이터 파일만을 획득하고 필수 매개변수 파일을 획득하지 못했을 때 기본 데이터베이스 포렌식 기법을 적용하기 위해 필수적으로 필요한 블록 크기를 탐지하는 세 가지 기법을 제시한다. 첫 번째 기법은 블록에서 발견되는 최대 빈공간의 크기를 기반으로 블록의 크기를 계산하는 것이다. 기존 상용 또는 오픈소스 DBMS가 가지는 블록 크기의 규칙을 이용하여 계산할 수 있다.
대상 데이터
MFS을 파이썬(Python)으로 구현하여 블록 크기가 4,096 Bytes로 설정된 SQLite, 8,192 Bytes로 설정된 오라클 데이터베이스, 16,384 Bytes로 설정된 MySQL 데이터 파일을 이용하여 실험하였다. 실험 결과 Table 2와 같다.
PFS를 파이썬으로 구현하여 블록 크기가 5,678 Bytes이며 중앙에 빈공간이 존재하는 데이터 파일을 이용하여 실험 했다. \(n\)이 점차 커지면서 블록 크기는 사이의 값임을 Equation (5)에서 보았다.
데이터베이스는 블록 공간을 효율적으로 관리하기 위하여 Fig. 1과 같이 슬롯 페이지 구조(Slotted Page Structure)를 이용한다. 슬롯 페이지 구조에서 페이지는 데이터 블록을 의미 한다.
DBMS 종류에 따라 로우 디렉터리가 블록 아래서부터 채워지고 실제 레코드는 블록 헤더 바로 뒤에서부터 채워지는 반대의 구조를 가진다. 본 논문 실험 대상인 오라클 데이터베이스와 SQLite 데이터베이스는 레코드 데이터가 바닥에서 올라오는 구조이고, MySQL InnoDB는 블록 헤더 다음부터 아래로 채워지는 구조로 된다.
실험에 사용되는 데이터베이스는 스마트폰에서 사용되는 SQLite와 기업에서 주요 업무에 많이 사용되는 오라클 데이터 베이스, MySQL이다. Fig.
이론/모형
따라서 데이터 파일을 읽어나가면 최대 빈공간 크기를 검출한 후 Equation (4)를 이용하여 데이터베이스 블록 크기 탐지이 가능하다. 본 기법을 MFS(Max size of Free-Spaces)라고 하겠다. 그리고 4장에서 실험 결과를 보여 주겠다.
2를 보면 Equation (5), (6)에서 사용한 각 값들을 연속선상에서 확인할 수 있으며 각 식에 대해서 이해를 도울 수 있다. 본 기법을 PFS(Pattern of Free-Spaces)라고 하겠다. 그리고 4장에서 PFS를 실험하고 실험 결과를 바탕으로좀 더 적은 블록으로 블록 크기를 찾을 수 있는 방법을 착안하고 실험한다.
성능/효과
5이 다. APFS를 이용했을 때 76개의 빈공간 탐색만으로 블록 크기를 탐지함을 확인할 수 있었다.
실험 결과 Table 2와 같다. 각 DBMS 별 최대 빈공간 크기는 3,886 Bytes, 8,160 Bytes, 16,350 Bytes임을 확인했다. 최대 빈공간 크기를 Equation (1)에 대입하면 각각의 블록 크기는 4,096, 8,192, 16,384로 계산 되었다.
또한, 가상의 데이터 파일을 만들어서 두 번째 기법으로 실험한 결과 259개의 빈공간의 위치를 이용하여 블록의 크기를 정확히 계산하 였다. 그리고 두 번째 기법을 실험할 때 사용하였던 동일한 파일을 이용해서 세 번째 기법으로 실험한 결과 79개의 빈공 간의 위치를 이용하여 블록의 크기를 정확히 계산하였다. 본 논문에서 제시한 세 가지 기법은 데이터베이스의 블록 크기를 정확히 탐지하는 방법으로서 어느 기법이나 매개 변수 파일에 의존하지 않고 데이터 파일만으로 블록 크기를 확인할 수 있어서 데이터베이스 포렌식을 진행할 수 있다는 장점이 있다.
그리고 데이터베이스에서 레코드를 삭제하더라도 성능을 위하여 DBMS(Database Management System)는 레코드의 모든 값을 지우지 않고 삭제 여부만을 표시하는 것이 일반적이다. 따라서 데이터 파일을 분석하여 데이터베이스의 구성을 알 수 있는 메타데이터를 얻고, 삭제된 레코드 영역을 분석하여 삭제 이전 값을 얻을 수 있다. 이에 많은 데이터베이스 포렌식 연구에서는 메타데이터를 가지고 있는 파일에서 매개변수 파일을 획득하거나 중요 메타데 이터를 미리 알고 있다는 가정하에 데이터베이스 포렌식 연구를 제안한다[4].
\(n\)이 259일 때 상한과 하한의 자연수는 5,678 하나만 존재하게 된다. 따라서 블록 크기가 5,678 Byte인 데이터 파일의 블록 크기를 탐지할 수 있었다.
또한 파일을 탐색이 이미 수렴한 상·하한의최댓값과 최솟값을 이용한 APFS로 보다 효율적으로 블록 크기를 탐지할 수 있음을 확인했다.
즉, 첫 번째 기법으로 세 가지 종류의 DBMS 파일에 대해서 실험한 결과 블록의 크기를 정확히 계산하였다. 또한, 가상의 데이터 파일을 만들어서 두 번째 기법으로 실험한 결과 259개의 빈공간의 위치를 이용하여 블록의 크기를 정확히 계산하 였다. 그리고 두 번째 기법을 실험할 때 사용하였던 동일한 파일을 이용해서 세 번째 기법으로 실험한 결과 79개의 빈공 간의 위치를 이용하여 블록의 크기를 정확히 계산하였다.
그리고 두 번째 기법을 실험할 때 사용하였던 동일한 파일을 이용해서 세 번째 기법으로 실험한 결과 79개의 빈공 간의 위치를 이용하여 블록의 크기를 정확히 계산하였다. 본 논문에서 제시한 세 가지 기법은 데이터베이스의 블록 크기를 정확히 탐지하는 방법으로서 어느 기법이나 매개 변수 파일에 의존하지 않고 데이터 파일만으로 블록 크기를 확인할 수 있어서 데이터베이스 포렌식을 진행할 수 있다는 장점이 있다. 즉, 기존 데이터베이스 포렌식 기법에서는 매개 변수 파일을 확보하지 못했을 경우, 데이터 파일이 있음에도 포렌식을 수행할 수 없었으나, 제안하는 기법들은 데이터 파일만을 이용하여 포렌식을 수행할 수 있다는 점이 포렌식 분야에 대한 본 논문의 기여도라고 할 수 있다.
4에 중앙 수평선은 블록 크기를 나타낸다. 본 실험 결과를 보면 블록 크기의 상한과 하한이 데이터 파일을 읽어나 가면서 블록 크기로 대체적으로 수렴은 하지만 값이 수렴하는 반대 방향으로 변하는 것도 볼 수 있다. 따라서 앞에서 찾은 상한과 하한보다 수렴하지 않는 값으로 변할 경우 그 값을 무시하고 앞에서 찾은 상·하한을 채택할 경우 좀 더 빨리 블록 크기를 찾을 수 있다.
최대 빈공간 크기를 Equation (1)에 대입하면 각각의 블록 크기는 4,096, 8,192, 16,384로 계산 되었다. 실제의 블록 크기와 MFS로 찾아낸 값이 일치함을 확인했다.
본 논문에서 제시한 세 가지 블록 크기 탐지 방법은 실험을 통해서 유효성을 평가하였다. 실험 결과, 세 가지 기법 모두 블록의 크기를 정확히 계산할 수 있음을 확인하였다. 즉, 첫 번째 기법으로 세 가지 종류의 DBMS 파일에 대해서 실험한 결과 블록의 크기를 정확히 계산하였다.
일반적으로 많이 사용되는 블록 크기인 Equation (1)을 만족하지 않는 블록에 대해서도 PFS로 블록 크기를 탐지할 수 있음을 확인했다. 또한 파일을 탐색이 이미 수렴한 상·하한의최댓값과 최솟값을 이용한 APFS로 보다 효율적으로 블록 크기를 탐지할 수 있음을 확인했다.
본 논문에서 제시한 세 가지 기법은 데이터베이스의 블록 크기를 정확히 탐지하는 방법으로서 어느 기법이나 매개 변수 파일에 의존하지 않고 데이터 파일만으로 블록 크기를 확인할 수 있어서 데이터베이스 포렌식을 진행할 수 있다는 장점이 있다. 즉, 기존 데이터베이스 포렌식 기법에서는 매개 변수 파일을 확보하지 못했을 경우, 데이터 파일이 있음에도 포렌식을 수행할 수 없었으나, 제안하는 기법들은 데이터 파일만을 이용하여 포렌식을 수행할 수 있다는 점이 포렌식 분야에 대한 본 논문의 기여도라고 할 수 있다.
후속연구
향후 연구 과제로서 블록 저장 구조를 가지는 파일에 대해 포렌식을 수행하고자 할 때에도 본 논문에서 제시한 블록 크기 탐지 기법을 이용하기 위한 연구가 필요하다. 또한, 매개 변수를 탐지하지 못하여 저장 구조 파악을 못할 때 데이터의 빈공간을 이용하여 저장 구조를 파악하는 디지털 포렌식 기법으로 확장할 수 있을 것이다.
향후 연구 과제로서 블록 저장 구조를 가지는 파일에 대해 포렌식을 수행하고자 할 때에도 본 논문에서 제시한 블록 크기 탐지 기법을 이용하기 위한 연구가 필요하다. 또한, 매개 변수를 탐지하지 못하여 저장 구조 파악을 못할 때 데이터의 빈공간을 이용하여 저장 구조를 파악하는 디지털 포렌식 기법으로 확장할 수 있을 것이다.
질의응답
핵심어
질문
논문에서 추출한 답변
데이터베이스 포렌식의 일반적인 수행 절차는 무엇인가?
데이터베이스 포렌식이란 디지털 포렌식의 한 분야로 데이 터베이스에서 어떤 일이 언제, 왜, 누구에 의해서 발생했는지를찾아내는 작업이다[5]. 데이터베이스 포렌식의 일반적인 수행 절차는 데이터베이스를 구성하는 파일을 획득하고 설정 파일로 부터 얻은 메타데이터를 이용하여 데이터 파일의 구성을 파악한 후 데이터 파일을 직접 탐색하여 삭제된 레코드를 찾아내는 과정이다. 따라서 데이터 파일에 기록되었다가 삭제된 레코드를 추출하는 작업인 데이터베이스 포렌식을 수행하기 위해서는 데이터베이스 데이터 파일을 탐색하기 전에 데이터 파일의 구성에 대해 알 수 있는 메타데이터를 정확히 파악해야 한다.
데이터베이스 포렌식이란 무엇인가?
데이터베이스 포렌식이란 디지털 포렌식의 한 분야로 데이 터베이스에서 어떤 일이 언제, 왜, 누구에 의해서 발생했는지를찾아내는 작업이다[5]. 데이터베이스 포렌식의 일반적인 수행 절차는 데이터베이스를 구성하는 파일을 획득하고 설정 파일로 부터 얻은 메타데이터를 이용하여 데이터 파일의 구성을 파악한 후 데이터 파일을 직접 탐색하여 삭제된 레코드를 찾아내는 과정이다.
파일 포렌식 기법에서 데이터베이스레코드가 삭제된경우 어떤문제가 생기나?
이 중 파일 포렌식 기법은 삭제된 파일을 복구하는 것으로, 여러 개의 파일로 구성된 데이터베이스가 삭제되어도 복구할 수 있다. 그러나 데이터베이스에서 레코드가 삭제된 경우는 파일 복구를 하여도 수정된 레코드 내용이 복원되지 않는다. 이에 삭제된 레코드를 복구하는 기법인 데이터베이스 포렌식이 필요하다.
참고문헌 (11)
Min Chen, Shiwen Mao, and Yunhao Liu, "Big Data: A Survey," Mobile Networks and Applications, Vol.19, No.2, pp.171-209, 2014.
James Wagner, Alexander Rasin, and Jonathan Grier, "Database Forensic Analysis Through Internal Structure Carving," Digital Investigation, Vol.14, pp.106-115, 2015.
M. A. M. Guimaraes, R. Austin, and H. Said, "Database Forensics," in Information Security Curriculum Development Conference, pp.62-65, 2010.
James Wanger, Alexander Rasin, Karen Hear, Rebecca Jacob, and Jonathan Grier, "DB3F & DB-Toolkit: The Database Forensic File Format and the Database Forensic Toolkit," Digital Investigation, Vol.29, pp.42-50, 2019.
Jong-Hyun Choi, DooWoo Jeong, and Sangjin Lee, "The method of recovery for deleted record in Oracle Database," Journal of The Korea Institue of Information Security & Cryptology, Vol.23, No.5, pp.947-955, 2013.
Jeewon Jang, Doowon Jeoung, and Sang Jin Lee, "The Recovery Method for MySQL InnoDB Using Feature of IBD Structure," KIPS Tr. Comp. and Comm. Sys. Vol.6, No.2, pp.59-66, 2017.
Jiho Shin, "Comparison of Remaining Data According to Deletion Events on Microsoft SQL Server," Journal of The KIIS&C, Vol.27, No.2, pp.223-232, 2017.
Jung Sung Kyun, Jee Won Jan, Doo Won Jeong, and Sang Jin Lee, "A Study on the Improvement Method of Delete Record Recovery in MySQL InnoDB," KIPS Tr. Comp. and Comm. Sys., Vol.6, No.12, pp.487-496, 2017.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.