KR20230015776A - Json 포맷 압축 및 복원방법 - Google Patents

Json 포맷 압축 및 복원방법 Download PDF

Info

Publication number
KR20230015776A
KR20230015776A KR1020210097351A KR20210097351A KR20230015776A KR 20230015776 A KR20230015776 A KR 20230015776A KR 1020210097351 A KR1020210097351 A KR 1020210097351A KR 20210097351 A KR20210097351 A KR 20210097351A KR 20230015776 A KR20230015776 A KR 20230015776A
Authority
KR
South Korea
Prior art keywords
format
value
json format
key
json
Prior art date
Application number
KR1020210097351A
Other languages
English (en)
Other versions
KR102598292B1 (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 KR1020210097351A priority Critical patent/KR102598292B1/ko
Publication of KR20230015776A publication Critical patent/KR20230015776A/ko
Application granted granted Critical
Publication of KR102598292B1 publication Critical patent/KR102598292B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • H03M7/707Structured documents, e.g. XML
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 텍스트 형태를 유지하면서 효과적으로 전송할 수 있는 JSON 포맷 압축 및 복원방법에 관한 것이다. 이를 위하여, 본 발명은, 포맷추출부에 의해 키 및 밸류를 포함하는 JSON 포맷이 추출되는 단계; 포맷서치부에서 상기 JSON 포맷에서 키 또는 밸류를 선택하고, 키 또는 밸류 중 동일한 값이 2개 이상 있는 중복값이 있는지 여부를 판단하는 단계; 상기 포맷서치부에서는 상기 중복값이 2 이상인 경우 키 또는 밸류에 대응하는 대응코드를 생성하는 단계; 포맷압축부에서 상기 JSON 포맷에서 상기 중복값이 2 이상인 키 또는 밸류를 상기 대응코드로 변환하는 단계를 수행하는 JSON 포맷 압축방법을 제공한다.
따라서, 본 발명에 의하면, 데이터베이스에서 대량의 데이터를 전송할 때 구문해석이 가능하며, 압축률이 좋은 JSON 포맷 압축방법을 제공할 수 있는 이점이 있다.

Description

JSON 포맷 압축 및 복원방법{JSON format encoding and decoding methods}
본 발명은 JSON 포맷 압축 및 복원방법에 관한 것이며, 구체적으로 텍스트 형태를 유지하면서 효과적으로 전송할 수 있는 JSON 포맷 압축 및 복원방법에 관한 것이다.
초기의 웹은 소수 전문가들인 웹서비스 운영자가 일방적으로 정보를 전달하고, 사용하는 수동적인 형태였다. 사이트에서 검색을 제공하고 하이퍼링크를 통해 다른 공간을 제시하는 방식이다. 시간이 지나면서 웹은 플랫폼으로서의 역할을 가지게 되었으며, 필요한 기능들을 제공하고 전문가뿐 아니라 모두가 참여하여 정보를 만들고 공유하는 것이 가능해 졌다.
현재 시멘틱웹 기술이 발달하면서 다양한 통신환경에 따른 네트워크 데이터에 대한 통합적인 제어기술이 요구되고 있다.
종래기술인 등록특허 제10-1066610호에 의하면, 데이터 서버에서 클라이언트로 보내는 응답메세지와 클라이언트에서 서버로 보내는 요청메세지에 대한 바이너리 패킷을 정의하여 압축하고, 압축된 XML과 JSON 데이터의 패킷을 해석하여 클라이언트에 저장하는 구성이 개시되어 있다.
이러한 구성은 순수한 XML이나 JSON 패킷 구조에서 구현하기 힘든 압축, 분할전송, 보안 적용 등의 이점을 살리면서 데이터 자체는 XML과 JSON 형태 그대로 유지할 수 있도록 함으로써 대용량 데이터 처리와 보안 데이터 통신이 가능하고, 이기종 시스템 간의 데이터 호환성을 가질 수 있는 이점이 있다.
하지만, JSON 포맷을 바이너리 형태로 압축하여 사용함으로써 구문해석이 불가능한 문제점이 있다.
본 발명은 상기한 문제를 해결하기 위한 것으로서, 압축되더라도 구문해석이 가능하며, 압축률이 좋은 JSON 포맷 압축방법을 제공하기 위한 것이다.
또한, 데이터베이스에서 대량의 데이터를 전송할 때 효과적으로 전송할 수 있는 시스템을 제공하기 위한 것이다.
상기한 목적을 달성하기 위하여, 본 발명은, 포맷추출부에 의해 키 및 밸류를 포함하는 JSON 포맷이 추출되는 단계; 포맷서치부에서 상기 JSON 포맷에서 키 또는 밸류를 선택하고, 키 또는 밸류 중 동일한 값이 2개 이상 있는 중복값이 있는지 여부를 판단하는 단계; 상기 포맷서치부에서는 상기 중복값이 2 이상인 경우 키 또는 밸류에 대응하는 대응코드를 생성하는 단계; 포맷압축부에서 상기 JSON 포맷에서 상기 중복값이 2 이상인 키 또는 밸류를 상기 대응코드로 변환하는 단계를 수행하는 JSON 포맷 압축방법을 제공한다.
상기 포맷압축부에서는 중복값이 2 이상인 경우 상기 JSON 포맷에 새로운 SUB-JSON 포맷을 삽입하고, 상기 SUB-JSON 포맷에는 상기 중복값이 2 이상인 키 또는 밸류가 키로 저장되고, 상기 키 또는 밸류에 대응하는 대응코드가 밸류로 저장되는 것이 바람직하다.
상기 대응코드는 영문자 및 숫자로 이루어지며, 상기 포맷서치부에서는 상기 키 또는 밸류 중 상기 대응코드와 동일한 값이 있는 경우 상기 대응코드의 영문자의 문자코드를 증가시켜 새로운 영문자로 생성하는 것이 바람직하다.
상기 포맷서치부에서는 반복되는 동일순서의 키세트가 있는 경우 상기 키세트에 대응하는 대응코드를 생성하고, 상기 밸류는 배열형태로 변환시키는 것이 바람직하다.
본 발명에 의하면, 데이터베이스에서 대량의 데이터를 전송할 때 구문해석이 가능하며, 압축률이 좋은 JSON 포맷 압축방법을 제공할 수 있는 이점이 있다.
도 1은 본 발명에 의한 JSON 포맷 압축방법을 구현하기 위한 JSON 포맷 압축복원모듈의 구성을 나타내는 구성도;
도 2 및 도 3은 본 발명에 의한 포맷서치부의 기능을 설명하기 위한 JSON 포맷 예시도;
도 4는 본 발명에 의한 포맷압축부의 기능을 설명하기 위한 JSON 포맷 예시도;
도 5는 키세트의 구성을 나타내는 JSON 포맷 예시도;
도 6은 본 발명에 의한 JSON 포맷 압축방법을 나타내는 순서도;
도 7은 본 발명에 의한 JSON 포맷 복원방법을 나타내는 순서도.
본 발명에 의한 구체적인 실시예의 구성 및 작용에 대하여 도면을 참조하여 상세하게 설명한다.
도 1을 참조하면, 본 발명에 의한 JSON 포맷 압축을 위한 JSON 포맷 압축복원모듈(100)은 포맷추출부(110), 포맷서치부(130), 포맷압축부(150), 포맷복원부(170)를 포함하여 구성된다.
본 실시예에 의한 JSON 포맷은 키(key)와 밸류(value)로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷이며, 상기 JSON 포맷은 데이터베이스 서버에서 클라이언트로 전송될 수도 있고, 클라이언트에서 서버로 전송될 수도 있다.
상기 포맷추출부(110)에서는 데이터 포맷 중 JSON 포맷으로 구성된 데이터를 검출한다. 즉, 상기 포맷추출부(110)는 텍스트 파일 중 키 : 밸류 형식의 데이터 포맷을 파싱하여 JSON 포맷을 추출할 수 있다.
상기 포맷서치부(130)에서는 추출된 JSON 포맷에서 키 또는 밸류를 선택하고, 순차적으로 값을 읽어들여 중복된 값이 있는지 검사한다. 이때, 키 또는 밸류의 문자길이가 설정값 이상인 것만 검사하는 것이 바람직하다. 예를 들어, 키 또는 밸류의 문자길이가 4 이상이면 중복값 검사를 시행하고, 4 미만이면 스킵할 수 있다.
즉, 포맷서치부(130)에서 키를 검사하는 경우, 위에서부터 차례로 JSON 포맷 중 키값만 추출하여 별도로 저장하며 저장되는 포맷도 역시 JSON 포맷으로 저장될 수 있다. 즉, 포맷서치부에 의해 저장되는 JSON 포맷은 키값 및 중복값으로 이루어지며, 동일한 키값이 존재하는 경우 중복값을 1증가시켜 저장한다.
포맷서치부(130)에서 키의 중복값 검사가 종료된 경우, JSON 포맷의 밸류에 대해서도 마찬가지로 중복값을 검사할 수 있으며, 동일한 밸류값이 존재하는 경우 중복값을 1씩 증가시켜 저장한다.
예를 들어, 도 2에서 키의 "val5"는 중복값 검사를 하면 중복값이 6이므로 {"val5", 6}과 같이 저장될 수 있으며, 밸류의 "value_test_a.r[].value5"도 마찬가지로 중복값이 6이므로 {"value_test_a.r[].value5", 6}과 같이 저장될 수 있다.
상기 포맷서치부(130)에서는 키 또는 밸류의 중복값을 검사하여 중복값이 2이상인 경우 상기 키 또는 밸류에 대응하는 대응코드를 생성한다.
상기 대응코드는 "c1"과 같이 영문자 1자 및 숫자의 조합으로 이루어질 수 있으며, 키와 밸류의 대응코드를 각각 구분하여 각각 "k1", "v1"과 같이 대응코드가 생성되어질 수 있다.
상기 포맷서치부에서는 읽어들인 키 또는 밸류를 다시 검출하여 상기 키 또는 밸류 중 생성된 대응코드와 동일한 값이 있는 경우 상기 대응코드의 영문자의 문자코드를 1 증가시켜 새로운 영문자로 생성할 수 있다. 상기 문자코드는 환경에 따라 아스키코드, 유니코드 등이 될 수 있다.
예를 들어, JSON 포맷의 키에 "c1"이 있는 경우 대응코드는 "c"에서 아스키코드를 1 증가시켜 "d1"을 대응코드로 생성한다.
상기 포맷서치부(130)에서는 반복되는 동일순서의 키세트가 있는 경우, 상기 키세트에 대응하는 대응코드를 생성한다. 예를 들어, 도 5와 같이 키에 "name", "age", "secretIdentity", "powers"가 동일순서로 반복되어 있는 경우 포맷서치부에서는 "name", "age", "secretIdentity", "powers"를 하나의 키세트로 정의하고, 키세트에 대응하는 대응코드를 "s1"과 같이 생성한다. 이때, 키세트에 대응하는 대응코드는 특별한 문자, 예를 들어 "s"로 시작하도록 하여 키세트에 대응하는 대응코드임을 알 수 있도록 하는 것이 바람직하다.
포맷서치부에서 키 또는 밸류의 중복값을 검사하여 중복값이 2 이상인 경우 포맷압축부(150)에서는 JSON 포맷에 새로운 SUB-JSON 포맷을 생성하여 삽입한다.
상기 SUB-JSON 포맷은 도 3과 같이, JSON 포맷에서 중복값이 2 이상인 키 또는 밸류가 SUB-JSON 포맷의 키에 들어가고, 각각의 대응코드가 밸류에 들어간다.
또한, 도 4를 참조하면, 포맷압축부(150)에서는 SUB-JSON 포맷이 아닌 원래의 데이터 JSON 포맷에서 중복값이 2 이상인 키 또는 밸류를 각각의 대응코드로 변환시킨다.
이때, 키가 특정 키세트에 속하는 경우에는 키세트 단위로 변환될 수 있으며, 키세트에 속하는 각각의 키에 대응하는 밸류는 배열형태로 변환될 수 있다.
예를 들어, 도 5의 경우, 키세트에 속하는 "name", "age", "secretIdentity", "powers"는 대응코드 's1'으로 변환되고, "Molecule Man", 29, "Dan Jukes", ["Radiation resistance", "Turning tiny", "Radiation blast"]는 원소의 개수가 4개인 하나의 배열 ["Molecule Man", 29, "Dan Jukes", ["Radiation resistance", "Turning tiny", "Radiation blast"]]로 변환될 수 있다.
그러면, 상기 JSON 포맷은 아래와 같이 변환된다.
{"s1" : ["Molecule Man", 29, "Dan Jukes", ["Radiation resistance", "Turning tiny", "Radiation blast"]]}
한편, 포맷복원부(170)는 압축된 JSON 포맷을 원래대로 복원하는 역할을 한다.
먼저, 포맷복원부에서는 JSON 포맷이 압축되었는지 여부를 검사한다. 상기 압축여부는 JSON 포맷에 SUB-JSON 포맷이 있는지 없는지 여부로 결정할 수 있다.
즉, 포맷복원부(170)에서는 압축이 되어 있다고 판단되면, SUB-JSON 포맷을 이용하여 대응코드를 읽은 다음, 데이터 JSON 포맷에서 대응코드를 SUB-JSON의 키값으로 변환시킨다. 또한, 데이터 JSON 포맷의 변환이 완료되면 SUB-JSON 포맷을 삭제한다.
도 6 및 도 7을 참고하여, 본 발명에 의한 JSON 포맷 압축방법 및 복원방법에 대하여 설명한다.
포맷추출부에 의해 데이터 중 JSON 포맷이 추출되면, 포맷서치부에서는 JSON 포맷에서 키 또는 밸류에 대해 중복값이 2개 이상 있는지 여부를 검사한다. 검사 결과, 중복값이 2 이상 있는 키 또느 밸류가 있으면 그에 대응하는 대응코드를 생성하고, 상기 대응코드를 이용하여 SUB-JSON 포맷을 생성한 후, 상기 SUB-JSON 포맷을 원래의 JSON 포맷에 삽입한다.
그리고, 포맷압축부에서는 상기 SUB-JSON 포맷을 이용하여 원래의 JSON 포맷에 있던 데이터 JSON 포맷에서 키 또는 밸류를 대응하는 대응코드로 변환시킨다.
한편, JSON 포맷 복원방법은, 포맷복원부에서 추출된 JSON 포맷에서 SUB-JSON 포맷이 있는지 여부를 검사하여 압축여부를 검사한다. SUB-JSON 포맷이 있는 경우 대응코드를 독출하고, 상기 대응코드를 이용하여 SUB-JSON 포맷을 제외한 데이터 JSON 포맷에서 대응코드를 원래의 키 또는 밸류로 변환시키고, 변환이 완료되면 SUB-JSON 포맷을 삭제한다.
상기에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100 : JSON 포맷 압축복원모듈 110 : 포맷추출부
130 : 포맷서치부 150 : 포맷압축부
170 : 포맷복원부

Claims (4)

  1. 포맷추출부에 의해 키 및 밸류를 포함하는 JSON 포맷이 추출되는 단계;
    포맷서치부에서 상기 JSON 포맷에서 키 또는 밸류를 선택하고, 키 또는 밸류 중 동일한 값이 2개 이상 있는 중복값이 있는지 여부를 판단하는 단계;
    상기 포맷서치부에서는 상기 중복값이 2 이상인 경우 키 또는 밸류에 대응하는 대응코드를 생성하는 단계;
    포맷압축부에서 상기 JSON 포맷에서 상기 중복값이 2 이상인 키 또는 밸류를 상기 대응코드로 변환하는 단계를 수행하는 JSON 포맷 압축방법.
  2. 제1항에 있어서,
    상기 포맷압축부에서는 중복값이 2 이상인 경우 상기 JSON 포맷에 새로운 SUB-JSON 포맷을 삽입하고, 상기 SUB-JSON 포맷에는 상기 중복값이 2 이상인 키 또는 밸류가 키로 저장되고, 상기 키 또는 밸류에 대응하는 대응코드가 밸류로 저장되는 것을 특징으로 하는 JSON 포맷 압축방법.
  3. 제1항에 있어서,
    상기 대응코드는 영문자 및 숫자로 이루어지며, 상기 포맷서치부에서는 상기 키 또는 밸류 중 상기 대응코드와 동일한 값이 있는 경우 상기 대응코드의 영문자의 문자코드를 증가시켜 새로운 영문자로 생성하는 것을 특징으로 하는 JSON 포맷 압축방법.
  4. 제1항에 있어서,
    상기 포맷서치부에서는 반복되는 동일순서의 키세트가 있는 경우 상기 키세트에 대응하는 대응코드를 생성하고, 상기 밸류는 배열형태로 변환시키는 것을 특징으로 하는 JSON 포맷 압축방법.
KR1020210097351A 2021-07-23 2021-07-23 Json 포맷 압축 및 복원방법 KR102598292B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210097351A KR102598292B1 (ko) 2021-07-23 2021-07-23 Json 포맷 압축 및 복원방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210097351A KR102598292B1 (ko) 2021-07-23 2021-07-23 Json 포맷 압축 및 복원방법

Publications (2)

Publication Number Publication Date
KR20230015776A true KR20230015776A (ko) 2023-01-31
KR102598292B1 KR102598292B1 (ko) 2023-11-06

Family

ID=85109152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210097351A KR102598292B1 (ko) 2021-07-23 2021-07-23 Json 포맷 압축 및 복원방법

Country Status (1)

Country Link
KR (1) KR102598292B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080026772A (ko) * 2006-09-21 2008-03-26 인하대학교 산학협력단 Lempel-Ziv 압축 방법의 복원 속도를 보완한압축 방법
EP1995878A2 (en) * 2007-05-21 2008-11-26 Sap Ag Block compression of tables with repeated values
KR101949154B1 (ko) * 2018-09-17 2019-02-18 (주)투비소프트 Json을 이용하여 데이터셋의 구조를 변환하는 전자 장치 및 그의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080026772A (ko) * 2006-09-21 2008-03-26 인하대학교 산학협력단 Lempel-Ziv 압축 방법의 복원 속도를 보완한압축 방법
EP1995878A2 (en) * 2007-05-21 2008-11-26 Sap Ag Block compression of tables with repeated values
KR101949154B1 (ko) * 2018-09-17 2019-02-18 (주)투비소프트 Json을 이용하여 데이터셋의 구조를 변환하는 전자 장치 및 그의 동작 방법

Also Published As

Publication number Publication date
KR102598292B1 (ko) 2023-11-06

Similar Documents

Publication Publication Date Title
KR100424130B1 (ko) 데이터 압축 장치, 데이터베이스 시스템, 데이터 통신시스템, 데이터 압축 방법, 기억 매체 및 프로그램 전송장치
KR100271861B1 (ko) 데이타압축, 신장방법 및 장치와 이것을 사용한 데이타처리장치 및 네트워크시스템
US7242681B1 (en) System and method for intercepting and authenticating packets during one or more communication sessions and automatically recognizing content
KR101027299B1 (ko) 웹 서비스 통신의 히스토리 구동 최적화를 위한 시스템 및방법
US8819287B2 (en) System and method for compressing URL request parameters
US8015218B2 (en) Method for compressing/decompressing structure documents
Roussev et al. File fragment encoding classification—An empirical approach
EP1519279B1 (en) Document transformation system
WO2013097812A1 (zh) 一种下载字库文件的方法和系统
CN111666575A (zh) 基于词元编码的文本无载体信息隐藏方法
CN109241498B (zh) Xml文件处理方法、设备和存储介质
US8954400B2 (en) Method, system and program product for managing structured data
KR101114229B1 (ko) Http 패킷에서 한글 또는 일본어 웹 컨텐츠 분석방법
KR102598292B1 (ko) Json 포맷 압축 및 복원방법
CN111651417B (zh) 日志处理方法及装置
CN112417843A (zh) 一种IDcode标识解析系统及其实现方法
CN113254262B (zh) 一种数据库容灾方法、装置和电子设备
CN116896518B (zh) 路由对账方法、装置、电子设备及存储介质
KR100959877B1 (ko) Http 패킷에서 한글 디코딩 방법 및 장치
Rincy et al. Preprocessed text compression method for Malayalam text files
CN106789232A (zh) 一种高效的信息流程化的处理控制系统
Ramanathan Unishox: A hybrid encoder for short unicode strings
Moussa et al. XML Schema-Based Minification for Communication of Security Information and Event Management (SIEM) Systems in Cloud Environments
Bhardwaj et al. Compression of Data and its Secured Transmission over Network
JP2007129683A (ja) 圧縮データ送信方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant