KR102531477B1 - 발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기 - Google Patents

발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기 Download PDF

Info

Publication number
KR102531477B1
KR102531477B1 KR1020220147115A KR20220147115A KR102531477B1 KR 102531477 B1 KR102531477 B1 KR 102531477B1 KR 1020220147115 A KR1020220147115 A KR 1020220147115A KR 20220147115 A KR20220147115 A KR 20220147115A KR 102531477 B1 KR102531477 B1 KR 102531477B1
Authority
KR
South Korea
Prior art keywords
block
thesis
information
data
terminal
Prior art date
Application number
KR1020220147115A
Other languages
English (en)
Inventor
권태현
Original Assignee
미러 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 미러 주식회사 filed Critical 미러 주식회사
Priority to KR1020220147115A priority Critical patent/KR102531477B1/ko
Application granted granted Critical
Publication of KR102531477B1 publication Critical patent/KR102531477B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9558Details of hyperlinks; Management of linked annotations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/106Display of layout of documents; Previewing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

본 발명은 논문 작성을 위한 저작 데이터를 입력하는 단말기 및, 논문 작성을 위한 참고문헌들을 포함하는 데이터베이스와 통신을 연결하는 통신부, 데이터베이스로부터 검색된 참고문헌을 스캔하고, 스캔된 상기 참고문헌에 대응하는 문자 및 이미지를 인식하여 발췌 데이터를 생성 및, 참고문헌의 고유 정보를 추출하는 스캔부, 저작 데이터 또는 발췌 데이터에 의해 논문에 게재되는 문자들과 이미지들을 블록화하고, 그 블록의 식별정보를 포함하는 블록 정보를 생성하는 블록화부 및, 단말기의 요청에 따라 참고문헌에 대한 검색을 수행하고, 저작 데이터 또는 발췌 데이터에 따른 문자 및 이미지를 게재하여 논문을 작성하며, 논문에 게재되는 문자들 또는 이미지로 이루어지는 블록이, 발췌 데이터에 의해 생성되는 발췌 블록인 경우, 참고문헌의 고유 정보를 더 포함하는 블록 정보를 생성 및, 참고문헌의 고유 정보를 더 포함하는 블록 정보가 발췌 블록에 매칭되도록 상기 블록화부를 제어하는 제어부를 포함하는 것을 특징으로 한다.

Description

발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기{SERVER AND USER TERMINAL OF THE THESIS MAKING SYSTEM THAT PROVIDES INFORMATION ON THE EXTRACTED ORIGINAL TEXT}
본 발명은 논문을 작성하기 위한 시스템에 대한 것으로, 상기 논문 중 참고문헌에서 발췌된 내용이 있는 경우 상기 참고문헌의 정보가 자동으로 제공될 수 있도록 하는 논문 작성 시스템에 대한 것이다.
일반적으로 논문은 학술적인 연구 결과를 체계적으로 기재한 문서로서, 통상적으로 기존의 연구 결과 또는 기존의 문제나 현황 등에 대하여 보다 진보된 연구 성과를 발표하기 위한 문서일 수 있다. 이러한 논문은 논문 작성자의 연구 성과 또는 학위에 대한 척도로서 활용될 수 있다.
한편 상술한 바와 같이 논문은 기존의 문제나 현황, 또는 기존의 연구 결과를 언급하고 그에 대해 진보된 연구 결과를 설명하기 위해 기존에 공개된 문서로부터 연관된 내용들을 발췌하여 논문에 포함시키는 경우가 다수 발생한다. 그런데 이처럼 기존의 연구 결과 또는 참고문헌에서 개시되었던 내용을 발췌하여 기재하면서도, 논문 작성자의 연구 결과인 것처럼 포장하거나 또는 자신의 연구 결과를 과장하기 위하여, 포함된 내용이 발췌된 내용임을 언급하지 않는 표절 논문이 제출되는 경우가 다수 발생한다는 문제가 있다.
따라서 이러한 표절 논문 등을 걸러내기 위해 논문을 심사하는 심사 과정이 있으며, 심사 과정을 통해 표절 논문 또는 연구 결과의 진보성 등을 판별하고 판별된 결과에 따라 적합한 논문으로 채택될 수 있다.
한편 이러한 논문 심사를 위하여, 작성된 논문으로부터 참고문헌에서 발췌된 내용과 논문 작성자가 직접 작성한 내용을 실질적으로 구분하여야 할 필요 있다. 이를 위해서는 단순 발췌(표절)로 의심되는 논문 내용에 매칭되는 참고문헌을 검색할 수 있어야 하나, 실질적으로 논문 작성자가 참고문헌의 정보를 공개하지 않는 경우, 수많은 논문을 일일이 확인하여 상기 원문을 찾아내어야 한다. 그러나 현재 매해마다 세계적으로 수십만건 이상의 논문이 공개되는 바, 심사자가 이러한 논문을 일일이 확인하여 표절 여부를 판단하기는 어렵다는 문제가 있다.
이에 현재는, 표절로 의심되는 논문의 일 부분에 대하여 인공지능 또는 문장 의미 분석에 따른 가중치 등으로 기 설정된 논문 데이터베이스에 저장된 수많은 논문들의 내용을 대조하여 표절 여부를 검출하는 방안들이 등장하였다. 그러나 이러한 방안들은 대조할 논문들이 많을수록 연산 시간이 오래 걸린다는 문제가 있다. 그리고 이러한 연산 시간의 문제를 해결하기 위해 키워드 또는 논문 분야를 중심으로 논문 데이터베이스로부터 대조군에 포함될 논문들을 검색하고, 검색된 논문들에 대하여 표절 여부를 검출하는 방안이 등장하였으나, 이러한 방안은 키워드 또는 분야 검색을 통해 검색되지 않는 논문들로부터의 표절에는 취약하다는 문제가 있다. 이에 따라 논문 작성 시 참고문헌으로부터 발췌된 부분이 포함되는 경우, 참고문헌 즉, 원문의 정보가 자동으로 논문에 포함될 수 있도록 하는 논문 작성 시스템이 필요한 실정이다.
한편 논문 작성자가 발췌된 원문의 내용을 일부 수정 및 자신의 소견을 기재하는 경우, 인공지능 또는 기계적인 의미 분석에 따른 기계적인 판단으로는 참고문헌으로부터 발췌된 부분과 논문 작성자가 작성한 부분의 구분이 어렵다는 문제가 있다. 따라서 해당 발췌 내용이 포함된 논문의 일부분이 단순 표절인지 아니면 논문 작성자의 연구 성과가 포함된 부분인지 여부를 명확하게 판별하기 위해서는, 상기 발췌 내용이 포함된 논문의 일부분 중, 원문으로부터 발췌된 부분과 논문 작성자가 직접 작성한 부분을 명확하게 구분하여 판단하여야 한다.
그러나 현재로서는 논문 작성자가 스스로 밝힌 부분에 따라 판단하거나 또는 상기 표절 검출을 위한 프로그램 등에 의해 참고문헌, 즉 원문으로부터 완전히 일치하는 부분을 검색하고, 검색된 결과와 상기 발췌 내용이 포함된 논문의 일 부분에 근거하여. 심사자가 직접 발췌된 부분과 논문 작성자가 작성한 부분을 구분하여야 한다는 문제가 있다. 따라서 논문 작성 시 참고문헌으로부터 발췌된 부분이 포함되고, 논문 작성자가 발췌된 부분에 대한 내용 변경 및 내용 추가와 같은 수정을 하는 경우, 발췌된 부분과 논문 작성자가 수정한 부분이 자동으로 구분될 수 있도록 하는 논문 작성 시스템이 필요한 실정이다.
본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 하는 것으로, 논문 작성자가 요청하는 참고문헌을 제공하고, 논문 작성 중 상기 참고문헌의 일부 내용을 작성자가 발췌하여 논문에 기재하는 경우 상기 참고문헌에 관련된 정보를 작성된 논문과 함께 수집하는 논문 작성 시스템의 서버 및, 상기 논문 작성 시스템을 통해 논문을 작성할 수 있도록 하는 단말기를 제공하는 것을 그 목적으로 한다.
또한 본 발명은 작성된 논문으로부터 작성자가 참고문헌에서 발췌한 부분과 작성자가 작성한 부분을 쉽게 구분할 수 있도록 하는 논문 작성 시스템의 서버 및, 상기 논문 작성 시스템을 통해 논문을 작성할 수 있도록 하는 단말기를 제공하는 것을 그 목적으로 한다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 본 발명의 실시 예에 따른 논문 작성 시스템의 서비스 서버는, 논문 작성을 위한 문자들과 이미지들을 포함하는 저작 데이터를 입력하는 기 설정된 단말기 및, 상기 논문 작성을 위한 참고문헌들을 포함하는 데이터베이스와 통신을 연결하는 통신부와, 상기 데이터베이스로부터 검색된 참고문헌의 일부를 스캔하고, 스캔된 상기 참고문헌의 일부에 대응하는 문자 및 이미지를 인식하여 발췌 데이터를 생성 및, 상기 참고문헌의 일부에 대응하는 상기 참고문헌의 고유 정보를 추출하는 스캔부와, 상기 저작 데이터 또는 상기 발췌 데이터에 의해 상기 논문에 게재되는 문자들과 이미지들을 기 설정된 단위에 따른 블록으로 블록화하고, 각 블록에 매칭되며, 매칭되는 블록의 식별정보를 포함하는 블록 정보를 생성하는 블록화부 및, 상기 단말기로부터 수신된 검색 요청에 따라 상기 참고문헌에 대한 검색을 수행하고, 상기 저작 데이터 또는 상기 발췌 데이터에 따른 문자 및 이미지를 게재하여 상기 논문을 작성하며, 상기 논문에 게재되는 문자들 또는 이미지로 이루어지는 블록이, 상기 발췌 데이터에 의해 생성되는 발췌 블록인 경우, 상기 참고문헌의 고유 정보를 더 포함하는 블록 정보를 생성 및, 상기 참고문헌의 고유 정보를 더 포함하는 블록 정보가 상기 발췌 블록에 매칭되도록 상기 블록화부를 제어하는 제어부를 포함하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 기 설정된 단위는, 문장, 단락, 페이지 및 챕터 중 어느 하나임을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 논문에 게재되는 문자들 또는 이미지로 이루어지는 블록이, 상기 참고문헌으로부터 인식된 문자들 및 이미지들을 포함하지 않는 제네시스(genesis) 블록인 경우, 참고문헌의 고유 정보를 포함하지 않는 블록 정보를 상기 제네시스 블록에 매칭하며, 상기 논문은, 적어도 하나의 상기 제네시스 블록과 적어도 하나의 상기 발췌 블록으로 이루어지는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 참고문헌의 고유 정보는, 상기 참고문헌의 일부에 대응하는 위치를 포함하는 위치 정보이며, 상기 제어부는, 상기 참고문헌의 고유 정보를 통해 상기 검색된 참고문헌에 대한 링크를 제공하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 참고문헌의 고유 정보는, 상기 참고문헌의 일부가, 다른 참고문헌으로부터 발췌된 경우, 상기 다른 참고문헌의 고유 정보를 더 포함하며, 상기 제어부는, 상기 검색된 참고문헌에 대한 링크 및 상기 다른 참고문헌의 고유 정보에 따른 링크를 더 제공하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 단말기의 요청에 따라, 상기 참고문헌의 일부를 최초로 작성한 최초 작성자의 문헌으로부터 상기 논문에 게재되기까지, 상기 참고문헌의 일부가 발췌된 이력을 트래킹(tracking)한 이력 정보를 제공하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 발췌 블록을 구성하는 적어도 하나의 문자 또는 이미지가 변경되거나 또는 상기 발췌 블록 내에 적어도 하나의 문자 또는 이미지가 추가되는 경우, 상기 발췌 블록을, 상기 변경 또는 추가된 적어도 하나의 문자 또는 이미지를 중심으로, 동일한 참고문헌의 고유 정보를 포함하는 블록 정보에 매칭되는 서로 다른 발췌 블록들로 분할하고, 상기 변경 또는 추가된 문자 또는 이미지를, 상기 참고문헌의 고유 정보를 포함하지 않는 블록 정보에 매칭되는 제네시스 블록으로 블록화하도록 상기 블록화부를 제어하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 발췌 블록이 이미지로 구성되고, 상기 이미지에 대한 편집이 이루어지면, 상기 편집 과정 추적을 통해 이미지 중 편집되지 않은 부분과 편집된 부분을 구분하고, 상기 이미지 중 편집되지 않은 부분과 편집된 부분에, 상기 참고문헌의 고유 정보를 더 포함하는 발췌 블록의 블록 정보 및, 상기 참고문헌의 고유 정보를 포함하지 않는 제네시스 블록의 블록 정보가 각각 매칭되도록 상기 블록화부를 제어하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 단말기의 요청에 따라 상기 작성 중인 논문을, 상기 단말기의 단말기 식별정보, 상기 단말기 사용자의 사용자 식별정보 및 상기 논문의 최종 수정 시각 정보의 조합에 따른 암호화 키로 암호화하여 상기 단말기에 전송하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 서비스 서버는, 상기 작성 중인 논문을 각 페이지 별로 스캔하여 각 페이지에 대응하는 이미지 데이터를 생성하는 이미지화부 및 상기 이미지 데이터를 문자열 데이터로 인코딩하는 변환부를 더 포함하며, 상기 제어부는, 상기 이미지 데이터가 상기 문자열 데이터로 인코딩되면, 상기 사용자 식별정보와 상기 단말기 식별정보 및, 상기 논문의 최종 수정 시각 정보 중 어느 하나를 상기 문자열 데이터의 기 설정된 위치에 드로잉 키로서 삽입하고, 상기 드로잉 키가 삽입된 문자열 데이터를, 상기 암호화 키로 암호화하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 사용자 식별정보와 상기 단말기 식별정보 및 상기 논문의 최종 수정 시각의 정보 중 어느 하나를 임의로 선택하여 상기 드로잉 키로 삽입하며, 상기 사용자 식별정보와 상기 단말기 식별정보 및 상기 논문의 최종 수정 시각의 정보는, 서로 동일한 개수의 문자로 형성되는 것을 특징으로 한다.
상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 본 발명의 실시 예에 따라 암호화된 논문의 미리보기 데이터를 상기 논문의 작성 기능을 제공하는 서비스 서버로부터 수신하는 단말기는, 디스플레이부와, 상기 서비스 서버로부터, 상기 암호화된 논문의 미리보기 데이터를 수신하는 통신부와, 상기 암호화된 논문의 미리보기 데이터를 문자열 데이터로 복호화하는 복호화부와, 상기 문자열 데이터를 상기 논문의 미리보기 데이터에 대응하는 이미지 데이터의 이진 데이터로 디코딩하는 디코딩(decoding)부와, 상기 디코딩된 이진 데이터에 대응하는 이미지를 상기 디스플레이부 상의 기 설정된 영역에 드로잉(drawing)하는 드로잉부 및, 상기 단말기에 기 저장된 사용자 식별정보와 상기 단말기의 단말기 식별정보 및, 상기 논문의 최종 수정 시각의 조합으로 복호화 키를 생성하고, 생성된 복호화 키를 이용하여 상기 암호화된 논문의 미리보기 데이터를 복호화하도록 상기 복호화부를 제어하는 제어부를 포함하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 논문의 최종 수정 시각은, 상기 서비스 서버로부터 제공되며, 상기 서비스 서버를 통해 상기 논문을 작성하는 작성자 단말기가 상기 작성 중인 논문의 저장을 요청할 때마다 갱신되는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 제어부는, 상기 암호화된 논문 미리보기 데이터가 문자열 데이터로 복호화되면, 복호화된 문자열 데이터의 문자들 중, 기 설정된 위치로부터 기 설정된 개수의 문자들을 드로잉 키로 추출하고, 추출된 드로잉 키가, 상기 단말기에 기 저장된 드로잉 키에 일치하는 경우 상기 문자열 데이터로부터 상기 추출된 문자들을 제거하는 것을 특징으로 한다.
일 실시 예에 있어서, 상기 드로잉 키는, 상기 사용자 식별정보와 상기 단말기 식별정보 및 상기 논문의 최종 수정 시각 중 어느 하나이며, 상기 사용자 식별정보와 상기 단말기 식별정보 및 상기 논문의 최종 수정 시각은, 서로 동일한 개수의 문자로 형성되는 것을 특징으로 한다.
본 발명에 따른 논문 작성 시스템의 서버 및 사용자 단말기의 효과에 대해 설명하면 다음과 같다.
본 발명의 실시 예들 중 적어도 하나에 의하면, 본 발명은 논문 작성자가 요청하는 참고문헌을 제공하고, 제공된 참고문헌의 일부를 사용자가 발췌하여 논문에 게재하는 경우, 상기 일부가 발췌된 참고문헌을 추적할 수 있는 정보가 자동으로 저장될 수 있도록 한다. 따라서 논문 중 발췌된 부분의 식별이 용이하고, 상기 일부가 발췌된 참고문헌의 검색이 용이하다는 이점이 있다. 또한 상기 발췌된 참고문헌의 정보가 자동으로 저장되므로, 작성자가 상기 참고문헌의 정보를 별도로 저장할 필요가 없다는 장점이 있다.
또한 본 발명의 실시 예들 중 적어도 하나에 의하면, 본 발명은 작성자가 발췌된 부분의 일부를 수정하여 논문에 게재하는 경우, 상기 발췌된 부분의 추적 정보에 근거하여 발췌 부분에 대응하는 참고문헌 원본과 상기 작성자의 수정에 의해 변경된 부분의 내용을 쉽게 비교할 수 있도록 한다는 효과가 있다.
또한 본 발명의 실시 예들 중 적어도 하나에 의하면, 현재까지 작성된 논문을 이미지화하고, 이미지화된 논문을 문자열로 인코딩(encoding) 및, 인코딩된 데이터에 기 설정된 드로잉 키를 삽입하는 구성을 가지며, 그리고 뷰어로 지정된 디바이스가 미리 정의된 드로잉 키 삽입 위치로부터 드로잉 키를 추출 및 드로잉 키를 제거한 인코딩 데이터로부터 이미지화된 논문을 디코딩(decoding)하는 구성을 가진다. 따라서 상기 드로잉 키가 제거되지 않거나 잘못된 데이터가 제거되는 경우 상기 인코딩 데이터가 올바른 이미지 데이터로 디코딩되지 않도록 함으로써, 적합한 사용자가 아니거나 또는 적합하지 않은 단말기에서 상기 작성 중인 논문이 표시되는 것을 방지할 수 있다는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 논문 작성 시스템을 설명하기 위한 블록도이다.
도 2는 본 발명의 실시 예에 따른 논문 작성 시스템의 서비스 서버를 설명하기 위한 블록도이다.
도 3은 본 발명의 실시 예에 따른 논문 작성 시스템의 서비스 서버에서, 논문 작성이 이루어지는 동작 과정을 도시한 흐름도이다.
도 4는 본 발명의 실시 예에 따른 논문 작성 시스템에서, 논문 작성 중, 참고문헌으로부터 발췌된 일부분의 문자열을, 상기 참고문헌의 고유 해시값을 포함하는 발췌 블록으로 블록화하는 예를 도시한 예시도이다.
도 5는 본 발명의 실시 예에 따른 논문 작성 시스템에서, 발췌된 부분에 대한 수정이 있는 경우, 상기 수정된 부분을 제네시스 블록으로 구분하는 동작 과정을 도시한 흐름도이다.
도 6은, 상기 도 5의 동작 과정에 따라, 발췌 블록이 상기 수정된 부분을 포함하는 제네시스 블록과 발췌 블록으로 구분되는 예를 도시한 예시도이다.
도 7은, 발췌된 부분이 이미지인 경우, 상기 도 5의 동작 과정에 따라 편집된 부분과 이미지 원본 각각에 대한 블록 정보가 생성되는 예를 도시한 예시도이다.
도 8은 본 발명의 실시 예에 따라 생성된 블록 정보들의 정보를 표시하는 목차 구조 모델을 생성하는 동작 과정을 도시한 흐름도이다.
도 9는 작성 중인 논문에 대한 암호화된 미리보기 기능을 제공하는 본 발명의 실시 예에 따른 논문 작성 시스템의 서비스 서버를 설명하기 위한 블록도이다.
도 10은 상기 논문의 암호화된 미리보기 기능을 제공하는 논문 작성 시스템에서, 뷰어 단말기를 설명하기 위한 블록도이다.
도 11은 상기 본 발명의 실시 예에 따른 논문 작성 시스템에서, 상기 논문의 암호화된 미리보기 서비스를 제공하는 서비스 서버와 사용자 단말기의 동작 과정을 도시한 흐름도이다.
도 12는 본 발명의 실시 예에 따라 암호화된 논문 미리보기 서비스를 제공하는 서비스 서버가, 드로잉 키가 삽입된 인코딩 데이터를 암호화하는 동작 과정을 도시한 흐름도이다.
도 13은 본 발명의 실시 예에 따른 뷰어 단말기가, 상기 본 발명의 실시 예에 따라 암호화된 논문 미리보기 서비스를 제공하는 서비스 서버로부터 수신된, 드로잉 키가 삽입된 인코딩 데이터를 디코딩하는 동작 과정을 도시한 흐름도이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다
본 명세서에서, "구성된다." 또는 "포함한다." 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계를 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 또한 이하에서 설명되는 각각의 실시 예들 뿐만 아니라, 실시 예들의 조합은 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물 내지 대체물로서, 본 발명의 사상 및 기술 범위에 해당될 수 있음은 물론이다.
도 1은 본 발명의 실시 예에 따른 논문 작성 시스템을 설명하기 위한 블록도이다.
도 1을 참조하여 살펴보면, 본 발명의 실시 예에 따른 논문 작성 시스템은 논문 작성을 위해 요청될 수 있는 복수의 참고문헌을 포함하며, 요청에 따라 상기 참고문헌을 제공할 수 있도록 형성된 참고문헌 데이터베이스(DB, Database)(30), 그리고 사용자 단말기(20)의 요청에 따라 상기 참고문헌 데이터베이스(30)로부터 참고문헌을 검색하고, 검색된 참고문헌을 상기 사용자 단말기(20)가 열람할 수 있도록 상기 검색된 참고문헌의 열람을 제공 및, 상기 사용자 단말기(20)로부터 입력되는 문자열 및 이미지를 포함하는 논문이 작성될 수 있도록 논문 작성 서비스를 제공하는 서비스 서버(10), 그리고 서비스 서버(10)에 접속하여, 논문 작성을 위한 참고문헌의 검색을 요청하고, 검색된 참고문헌의 열람 및, 논문 작성을 위한 문자열, 이미지 또는 상기 검색된 참고문헌의 일부에 대한 발췌 요청을 상기 서비스 서버(10)에 전송하는 사용자 단말기(20)를 포함할 수 있다.
먼저 참고문헌 데이터베이스(30)는 서비스 서버(10)와의 상호 작용에 대한 응답으로 전자화된 참고문헌, 즉 참고문헌 데이터를 제공할 수 있다. 여기서 상기 서비스 서버(10)와의 상호 작용은, 특정 참고문헌에 대한 검색 요청의 수신에 대한 응답일 수 있다.
일 예로 상기 참고문헌 데이터베이스(30)는, 적어도 하나의 학술 단체에서 채택된 논문들을 포함하는 데이터베이스일 수 있으며, 상기 서비스 서버(10)의 운영 주체와 상기 참고문헌 데이터베이스(30)의 운영 주체 사이에서 체결된 공급 계약에 근거하여 상기 서비스 서버(10)의 요청에 따른 참고문헌을 제공할 수 있다. 이 경우 상기 참고문헌 데이터베이스(30)의 운영 주체는 상기 공급 계약에 근거하여 제공된 참고문헌에 상응하는 대가를 지급받을 수 있다. 따라서 상기 서비스 서버(10)는, 상기 요청된 참고문헌의 검색에 비용이 요구되는 경우, 요구되는 비용에 관련된 정보를 상기 사용자 단말기(20)에 전송할 수 있으며, 상기 요구 비용에 대한 결제가 완료되는 경우에 상기 참고문헌의 검색을 수행할 수 있다.
또한 서비스 서버(10)는 사용자 단말기(20)의 요청에 따라 논문 작성을 위한 논문 작성 서비스를 제공할 수 있다. 이 경우 서비스 서버(10)는 인증 과정을 통해 인증된 사용자에게만 논문 작성 서비스를 제공할 수 있다.
상기 논문 작성 서비스는, 상기 사용자 단말기(20)로부터 입력되는 논문 저작 데이터들을 포함하는 논문을 작성하는 서비스일 수 있다. 그리고 사용자는 상기 논문 작성 서비스를 통해 논문에 게재할 이미지 및 문자들을 입력할 수 있으며, 서비스 서버(10)는 상기 사용자 단말기(20)를 통해 입력되는 이미지 및 문자들을 현재 사용자가 작성 중인 논문에 수록하여 논문을 작성할 수 있다. 그리고 작성 중인 논문에 수록된 이미지들 및 입력된 문자들은, 사용자가 작성중인 논문에 대한 논문 데이터로서 서비스 서버(10)에 저장될 수 있다.
여기서 상기 작성중인 논문은 기 설정된 단위에 따라 서로 다른 블록으로 블록화될 수 있다. 일 예로 각 문장이나 단락, 페이지, 또는 챕터(chapter) 별로 서로 다른 블록으로 블록화될 수 있다. 일 예로 상기 작성 중인 논문을 구성하는 각 단락들은 서로 다른 블록으로 블록화될 수 있다.
상기 블록들은 각각 고유한 블록 정보를 포함할 수 있다. 여기서 상기 블록 정보는, 각 블록의 일렬번호, 블록이 생성 또는 수정된 시각, 그리고 고유값인 해시(hash)값(이하 고유 해시값)을 가질 수 있다. 여기서 상기 고유 해시값은, 해당 블록을 식별하기 위한 식별값으로 기 설정된 자릿수에 따른 알파벳과 숫자들로 구성된 불변값일 수 있다
또한 서비스 서버(10)는, 사용자 단말기(20)로부터 수신된 요청에 따라, 참고문헌 데이터베이스(30)로부터 참고문헌의 검색을 수행할 수 있다. 그리고 참고문헌 검색 요청에 따라 검색된 참고문헌에 대한 열람을 사용자 단말기(20)에 허용할 수 있다. 또한 열람이 허용된 참고문헌 중 일부를 사용자의 요청에 따라 마킹(marking)하는 기능을 제공할 수 있으며, 사용자가 상기 마킹된 부분을 발췌할 수 있도록 하는 발췌 기능을 제공할 수 있다.
상기 발췌 기능이 요청되는 경우 상기 서비스 서버(10)는 사용자로부터 상기 마킹된 부분에 대한 발췌 요청을 수신할 수 있다. 그러면 상기 서비스 서버(10)는 수신된 발췌 요청에 대한 응답으로 상기 마킹된 참고문헌의 일부분을 스캔하고 스캔된 부분에 포함된 문자열 또는 이미지를 인식할 수 있다. 이처럼 참고문헌의 마킹된 부분으로부터 스캔 및 인식되어 발췌된 문자열 또는 이미지를, 피스(piece)라고 하기로 한다. 그리고 상기 피스는 참고문헌으로부터 발췌된 발췌 데이터로서, 서비스 서버(10)에 저장될 수 있다.
그러면 서비스 서버(10)는, 상기 인식된 문자열 또는 이미지, 즉 피스를, 고유한 블록 정보를 포함하는 하나의 블록으로 블록화하여 저장할 수 있다. 여기서 상기 블록 정보는, 각 블록의 일렬번호, 블록이 생성 또는 수정된 시각, 그리고 고유 해시값을 가질 수 있다. 또한 상기 피스가 문자열 또는 이미지로만 이루어지는 경우라면, 인식된 문자열 또는 이미지가 각각의 블록을 생성할 수 있다. 한편 상기 피스가 문자열 및 문자열 사이에 포함되는 적어도 하나의 이미지를 포함하는 경우라면, 상기 문자열과 상기 적어도 하나의 이미지를 포함하는 하나의 블록이 생성될 수 있다.
그런데 상술한 바와 같이 상기 피스는 참고문헌의 일부분을 스캔 및 인식한 부분일 수 있다. 따라서 상기 피스로부터 생성되는 블록은, 상기 스캔된 참고문헌의 일 부분에 대응될 수 있다. 이에 따라 서비스 서버(10)는 상기 참고문헌의 고유 정보를 더 포함하는 블록 정보를 가지는 블록으로 상기 피스를 블록화할 수 있다. 이하, 이처럼 참고문헌의 고유 정보를 더 포함하는 블록 정보를 가지며 상기 피스로부터 생성되는 블록을, 발췌 블록이라고 하기로 한다.
여기서 상기 발췌 블록의 블록 정보로서 포함되는 참고문헌의 고유 정보는, 상기 참고문헌이 기 설정된 단위, 예를 들어 페이지나 문장, 단락 또는 챕터 별로 블록화되지 않은 경우 상기 참고문헌 전체를 나타내는 고유 정보일 수 있다. 그러나 상기 참고문헌이, 각 문장이나 단락이나 페이지, 또는 챕터 별로, 각각 서로 다른 블록으로 블록화된 경우라면, 상기 참고문헌의 적어도 하나의 블록에 대응하는 적어도 하나의 고유 정보가 상기 발췌 블록의 블록 정보로서 포함될 수 있다.
한편 상기 참고문헌의 고유 정보는 참고문헌을 식별할 수 있는 식별정보로서, 상기 참고문헌에 대응하는 고유한 해시값, 즉 고유 해시값일 수 있다. 또한 상기 참고문헌의 적어도 하나의 블록에 대응하는 적어도 하나의 고유 정보는, 상기 참고문헌의 적어도 하나의 블록에 대응하는 적어도 하나의 고유 해시값일 수 있다. 즉, 참고문헌의 일부분으로부터 스캔 및 인식된 피스로부터 생성된 발췌 블록은, 상기 참고문헌의 일부분을 식별할 수 있는 고유 해시값을 블록 정보로서 더 포함할 수 있다. 이 경우 참고문헌의 서로 다른 단락으로부터 스캔 및 인식된 문자열 또는 이미지는, 서로 다른 피스를 구성할 수 있으며, 상기 서비스 서버(10)는, 각 피스에 대하여 상기 참고문헌의 서로 다른 단락의 고유 해시값들을 해시 포인터로서 포함하는 서로 다른 발췌 블록을 생성할 수 있다.
한편 서비스 서버(10)는 사용자 단말기(20)로부터 입력되는 요청에 따라 상기 발췌 데이터를 사용자가 현재 작성 중인 논문에 게재할 수 있다. 이 경우 서비스 서버(10)는 논문에 포함되는 발췌 데이터, 즉 피스를 블록화할 수 있다. 따라서 상기 피스는 논문 데이터에 포함되는 블록으로서 고유 해시값을 가지는 블록으로 블록화될 수 있다. 이 경우 상기 피스로부터 생성되는 논문 데이터의 블록의 블록 정보는, 상술한 바와 같이 피스에 대응하는 상기 참고문헌, 즉 원문의 일부에 대응하는 고유 해시값은 상기 논문 데이터에 포함되는 블록으로서의 고유 해시값과 구분되는 다른 해시값, 즉 해시 포인터값을, 상기 논문 데이터에 포함되는 블록으로서의 고유 해시값 외에 더 포함하는 블록으로 블록화될 수 있다. 즉 발췌 블록으로 블록화될 수 있다.
반면, 서비스 서버(10)는 사용자가 직접 작성한 문자열 또는 이미지를 입력받아 현재 작성 중인 논문에 게재할 수 있다. 이 경우 사용자가 직접 작성한 문자열 또는 이미지는 발췌된 것이 아니므로 참고문헌이 없을 수 있다. 따라서 상기 사용자가 직접 작성한 문자열 또는 이미지로가 게재된 논문의 블록은 논문 데이터에 포함되는 블록으로서의 고유 해시값만을 가지는 블록으로 블록화될 수 있다. 이하 이처럼 논문 데이터에 포함되는 블록으로서의 고유 해시값만을 가지는 블록을 제네시스(genesis block) 블록이라고 하기로 한다.
따라서 본 발명의 실시 예에 따른 서비스 서버(10)를 통해 작성되는 논문은, 적어도 하나의 상기 제네시스 블록과 적어도 하나의 상기 발췌 블록으로 구성될 수 있다.
그리고 서비스 서버(10)는, 사용자 단말기(20)의 요청에 따라 현재 작성 중인 논문에 대한 미리보기 서비스를 제공할 수 있다. 이 경우 미리보기 서비스는 사용자가 미리 지정한 기기에서 상기 작성 중인 논문을 열람할 수 있도록 하는 서비스일 수 있다. 또한 상기 미리보기 서비스를 통해 표시되는 논문 데이터는 이미지 형태로 제공되는 것으로, 편집이 제한된 상태로 상기 작성 중인 논문의 내용을 표시하는 서비스일 수 있다. 또한 상기 미리보기 서비스를 위해 사용자 단말기(20)로 제공되는 논문 데이터는 기 설정된 암호화 키를 통해 암호화된 데이터일 수 있다.
한편 사용자 단말기(20)는 논문을 작성하고자 하는 논문 작성자의 단말기로서, 상기 서비스 서버(10)와 무선 연결이 가능하도록 형성된 단말기일 수 있다. 일 예로 상기 사용자 단말기(20)는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 슬레이트 PC(slate PC), 태블릿 PC(tablet PC), 울트라북(ultrabook), 데스크탑 컴퓨터 등, 문자 또는 이미지의 입력이 가능한 입력부를 포함하는 다양한 형태의 단말기가 상기 사용자 단말기로서 사용될 수 있다.
한편 도 2는 이러한 본 발명의 실시 예에 따른 논문 작성 시스템의 서비스 서버(10)를 설명하기 위한 블록도이다.
도 2를 참조하여 살펴보면, 본 발명의 실시 예에 따른 논문 작성 시스템을 구성하는 서비스 서버(10)는 서버 제어부(100)와, 상기 서버 제어부(100)와 연결되며 상기 서버 제어부(100)에 의해 제어되는 서버 통신부(110), 작성부(120), 스캔부(130), 블록화부(140) 및, 메모리(150)를 포함하여 구성될 수 있다. 도 2에 도시된 구성요소들은 서비스 서버(10)를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 서비스 서버(10)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
먼저 서버 통신부(110)는 참고문헌 데이터베이스(30) 및 사용자 단말기(20)와 유선 또는 무선 통신망을 통해 연결할 수 있다. 상기 서버 통신부(110)는 상기 사용자 단말기(20)로부터 논문 작성을 위해 입력되는 논문 저작 데이터, 즉 문자열 및 이미지를 수신할 수 있으며, 특정 참고문헌에 대한 검색 요청을 수신할 수 있다. 그리고 상기 참고문헌 데이터베이스(30)와 연결되어, 상기 검색 요청에 대응하는 참고문헌의 검색을 수행할 수 있고, 검색된 참고문헌의 데이터(이하 참고문헌 데이터)를 수신할 수 있다.
여기서 상기 참고문헌 데이터는 상술한 바와 같이 페이지, 문장, 단락 또는 챕터 등 기 설정된 단위에 따라 블록화된 데이터일 수 있다. 이 경우 상기 기 설정된 단위가 단락인 경우, 상기 참고문헌 데이터는 각각의 단락마다 서로 다른 블록 정보를 가지는 블록 정보로 블록화된 복수의 블록을 포함하는 데이터일 수 있다. 이 경우 상기 블록 정보는 각 블록의 일렬번호와 각 블록이 생성 및 수정된 시각을 나타내는 타임 스탬프, 그리고 고유 해시값을 포함할 수 있다.
그리고 서버 통신부(110)는, 서버 제어부(100)의 제어에 따라 상기 참고문헌 검색 요청에 대한 응답으로, 상기 수신된 참고문헌 데이터가 저장된 메모리(150)의 일 영역에 대한 상기 사용자 단말기(20)의 접속을 허용할 수 있다. 이에 따라 상기 검색된 참고문헌에 대한 사용자의 열람이 허용될 수 있다.
또한 서버 통신부(110)는 작성 중인 논문 데이터의 미리보기가 허용된 미리 지정된 기기(지정기기)와 통신 연결될 수 있다. 그리고 상기 지정기기로부터 수신되는 요청에 따라 암호화된 논문 데이터를 상기 지정기기에 전송할 수 있다. 여기서 상기 지정기기는 사용자가 상기 논문 작성을 위해 사용하는 사용자 단말기(20)와 동일한 기기이거나 또는 사용자가 사전에 설정한 다른 기기일 수 있다.
그리고 작성부(120)는 사용자로부터 입력되는 논문 저작 데이터에 근거하여 논문을 작성할 수 있다. 여기서 사용자는 인증된 사용자일 수 있다. 즉, 사용자는 사용자 인증을 통해 논문 작성 기능을 서비스 서버(10)에 요청할 수 있으며, 인증된 사용자가 작성 중인 논문은 상기 인증 과정을 통해 인증된 사용자에 한해 편집 가능하도록 허용할 수 있다.
인증된 사용자는 자신이 작성 중인 논문에 삽입하기 위한 문자나 이미지 등 논문 저작 데이터들을 서비스 서버(10)에 입력할 수 있으며, 작성부(120)는 상기 저작 데이터의 편집 기능을 제공하여 입력된 논문 저작 데이터를 사용자가 원하는 논문상의 위치에 게재할 수 있다. 한편 상기 작성부(120)는 사용자가, 사용자 단말기(20)를 통해 이미지를 편집하여 작성 중인 논문에 게재할 수 있도록, 이미지 편집이 가능한 편집부(121)를 포함할 수 있다.
한편 스캔부(130)는, 사용자 단말기(20)의 요청에 따라 열람이 허용된 참고문헌에 대하여, 사용자가 마킹한 참고문헌의 일부분을 스캔할 수 있다. 그리고 스캔된 참고문헌의 일부분을 문자열 또는 이미지로 인식할 수 있다. 이 경우 스캔부(130)는 OCR(Optical Character Recognition) 인식과 같이, 상기 스캔된 참고문헌의 일부로부터 문자들을 인식할 수 있으며, 문자로 인식이 어려운 이미지의 경우 이미지 그 자체로 인식할 수 있다. 그리고 인식된 문자들과 이미지들은 참고문헌으로부터 발췌된 데이터(발췌 데이터)로서 메모리(150)에 저장될 수 있다. 이를 위해 상기 스캔부(130)는 스캔된 데이터로부터 문자열 및 이미지를 인식하기 위한 인식부(131)를 포함할 수 있다.
여기서 인식부(131)는 상기 스캔된 참고문헌 일 부분에 대한 단락 구조에 따라 문자들과 이미지들을 인식할 수 있다. 따라서 상기 스캔된 참고문헌의 단락 구조와 동일한 단락 구조를 가지는 문자들과 이미지들이 인식될 수 있으며, 인식된 문자들과 이미지들이 발췌 데이터로서 저장될 수 있다.
또한 상기 스캔부(130)는 상기 참고문헌 데이터로부터, 참고문헌의 고유 해시값을 추출할 수 있다. 이를 위해 상기 스캔부(130)는 스캔 및 인식된 참고문헌의 일 부분에 대응하는 적어도 하나의 고유 해시값을 추출하기 위한 추출부(132)를 더 포함할 수 있다. 여기서 상기 참고문헌이 페이지, 문장, 단락 또는 챕터별로 블록화된 상태라면, 상기 추출부(132)는 상기 스캔 및 인식된 참고문헌의 페이지, 문장, 단락 또는 챕터에 따라 적어도 하나의 고유 해시값을 추출할 수 있다. 그리고 추출된 적어도 하나의 고유 해시값은 발췌 데이터로서 메모리(150)에 저장될 수 있다.
한편 블록화부(140)는, 상기 사용자 단말기(20)로부터 입력되어 작성 중인 논문에 게재되는 문자들 및 이미지들을 페이지, 문장, 단락 또는 챕터 등 기 설정된 단위 별로 블록화를 수행할 수 있다. 일 예로 상기 기 설정된 단위가 '단락'인 경우, 상기 블록화부(140)는 작성 중인 논문에 게재되는 문자열 및 이미지들에 의해 생성되는 단락 별로 블록화를 수행할 수 있다. 이 경우 하나의 단락을 구성하는 문자들 또는 이미지가 하나의 블록을 형성할 수 있다.
한편 상기 블록화부(140)는 형성된 블록에 대응하는 블록 정보를 생성할 수 있다. 상기 블록 정보는, 블록의 고유 정보인 고유 해시값, 작성되는 논문의 단락 순서에 따른 블록 일렬번호 및, 상기 블록이 생성 또는 수정 시각의 정보, 즉 타임 스탬프(time stamp) 정보를 포함할 수 있다. 여기서 상기 고유 해시값은 기 설정된 자릿수에 따른 알파벳 및 숫자들로 구성될 수 있으며, 불변값일 수 있다. 이러한 블록 정보를 생성하기 위해 상기 블록화부(140)는 블록 정보 생성부(141)를 포함할 수 있다.
그런데, 상기 논문의 작성을 위해 입력되는 문자열 또는 이미지는, 스캔 및 인식된 참고문헌의 일부일 수 있다. 그리고 상술한 바와 같이 상기 참고문헌은, 페이지, 문장, 단락 또는 챕터에 대응하는 고유 해시값을 가질 수 있다.
이 경우 블록 정보 생성부(141)는 참고문헌의 고유 해시값을 가지는 문자열 또는 이미지가, 작성 중인 논문에 게재되는 경우, 상기 문자열 또는 이미지로부터 형성되는 블록에 대하여, 상기 참고문헌의 고유 해시값을 더 포함하는 블록 정보를 생성할 수 있다.
상기 블록 정보 생성부(141)는, 상술한 바와 같이 논문상에 삽입되는 문자열 또는 이미지가 참고문헌, 즉 원문의 고유 해시값을 가지는 경우라면, 상기 문자열 또는 이미지가 가지는 참고문헌의 고유 해시값을, 해시 포인터 정보로 블록 정보에 추가할 수 있다. 따라서 상기 논문에 게재되는 문자열 또는 이미지에 의해 생성되는 블록이, 참고문헌으로부터 발췌된 경우 작성중은 논문에 따른 블록의 고유값인 고유 해시값과, 상기 발췌된 참고문헌의 일부에 대응하는 고유 해시값을 나타내는 해시 포인터 정보를 모두 포함하는 블록 정보를 생성할 수 있다.
그리고 블록화부(140)는 생성된 블록 정보를 상기 참고문헌으로부터 발췌된 문자열 또는 이미지를 가지는 블록에 매칭시킬 수 있다. 따라서 논문상에 게재되는 블록이, 참고문헌으로부터 발췌된 문자열 또는 이미지를 포함하는 경우, 상기 블록(발췌 블록)은 논문에 포함된 블록들의 순서에 따른 블록 일렬번호, 블록이 생성 또는 수정된 시각의 정보(타임 스탬프 정보), 고유 해시값 및, 상기 해시 포인터 정보를 포함하는 블록 정보에 매칭될 수 있다.
반면 블록 정보 생성부(141)는 사용자가 직접 작성한 문자 및 이미지로 형성되는 단락으로 형성되는 블록의 경우 고유 해시값만을 가지는 블록 정보를 생성할 수 있다. 그리고 블록화부(140)는 생성된 블록 정보를 상기 사용자가 직접 작성한 문자 및 이미지로 형성되는 블록에 매칭할 수 있다. 따라서 상기 사용자가 직접 작성한 문자 및 이미지로 형성되는 블록(제네시스 블록)은, 해시 포인터 정보를 포합하지 않는 블록 정보에 매칭될 수 있다.
한편 메모리(150)는 서버 제어부(100)의 동작을 위한 프로그램을 저장할 수 있고, 입력 또는 출력되는 다양한 데이터들이 저장될 수 있다. 일 예로 상기 메모리(150)에는 검색 요청에 따라 상기 참고문헌 데이터베이스(30)로부터 수신되는 참고문헌 데이터와 상기 참고문헌 데이터의 각 블록에 대응하는 블록 정보들이 저장될 수 있다. 여기서 상기 블록 정보들은 암호화되어 저장될 수 있다.
또한 상기 메모리(150)에는 상기 스캔부(130)에서 스캔 및 인식된 상기 참고문헌의 일부분, 즉 발췌 데이터가 저장될 수 있다. 또한 상기 발췌 데이터의 각 단락에 대응하는 원문, 즉 상기 참고문헌의 일 부분에 매칭되는 적어도 하나의 고유 해시값이 저장될 수 있다. 이 경우 발췌 데이터에 매칭되는 상기 적어도 하나의 참고문헌의 고유 해시값은 암호화되어 저장될 수 있다. 이하 발췌 데이터 및 상기 발췌 데이터에 매칭되는 적어도 하나의 고유 해시값이 저장되는 메모리(150) 상의 일 영역을 발췌 데이터 저장부(151)라고 하기로 한다.
뿐만 아니라, 상기 메모리(150)에는 현재 작성중인 논문을 구성하는 각 단락 별로 형성되는 각 블록들에 매칭되는 블록 정보들이 저장될 수 있다. 이하 상기 블록 정보들이 저장되는 메모리(150) 상의 일 영역을 블록 정보 저장부(152)라고 하기로 한다.
또한 사용자 단말기(20)를 통해 사용자가 작성중인 논문의 데이터(논문 데이터)가 저장될 수 있다. 이 경우 상기 논문 데이터는, 상기 작성 중인 논문에 게재된 적어도 하나의 제네시스 블록과 적어도 하나의 발췌 블록을 포함할 수 있다. 또한 상기 논문 데이터는 암호화되어 저장될 수 있다. 이하 상기 논문 데이터가 저장되는 메모리(150) 상의 일 영역을 논문 데이터 저장부(153)라고 하기로 한다.
그리고 서버 제어부(100)는 서비스 서버(10)의 전반적인 동작을 제어하며, 연결된 각 구성 요소를 제어할 수 있다. 상기 서버 제어부(100)는 사용자 단말기(20)를 통해 전송된 사용자의 요청에 따라 논문 데이터를 생성 및, 상기 작성부(120)를 제어하여, 사용자 단말기(20)로부터 입력되는 문자들 및 이미지들을 저작 데이터로서 입력받고, 사용자가 작성 중인 논문에 상기 입력된 저작 데이터를 게재할 수 있다. 그리고 사용자의 요청에 따라 저작 데이터가 게재된 논문을 상기 논문 데이터로서 저장할 수 있다.
서버 제어부(100)는 저작 데이터가 입력되면 입력되는 저작 데이터를 논문에 게재할 수 있다. 그리고 게재되는 저작 데이터가 기 설정된 블록화 단위, 예를 들어 페이지, 문장, 단락 또는 챕터를 형성하는 경우라면, 블록화부(140)를 제어하여 상기 블록화 단위를 형성한 상기 저작 데이터에 대한 블록화를 수행할 수 있다. 이 경우 상기 블록화 단위가 단락인 경우라면, 논문상에 게재된 저작 데이터가 하나의 단락을 형성하는 경우에, 상기 게재된 저작 데이터를 하나의 블록으로 블록화할 수 있으며, 블록 식별정보인 고유 해시값을 포함하는 블록 정보를 생성 및, 블록 정보가 상기 블록에 매칭되도록 블록화부(140)를 제어할 수 있다.
또한 서버 제어부(100)는, 사용자 단말기(20)의 요청에 대한 응답으로, 참고문헌에 대한 검색을 제공할 수 있다. 그리고 요청에 대한 응답으로 참고문헌이 검색되면, 사용자가 검색된 참고문헌을 열람하도록, 검색된 참고문헌에 대한 사용자 단말기(20)의 접속을 허용할 수 있다.
그러면 열람이 허용된 참고문헌에 대하여, 사용자 단말기(20)로부터 참고문헌의 일부분을 마킹하기 위한 입력이 전송될 수 있다. 그리고 마킹 입력을 통해 상기 검색된 참고문헌의 적어도 일부가 사용자에 의해 선택되면, 서버 제어부(100)는 스캔부(130)를 제어하여 상기 선택된 참고문헌의 일부분을 스캔하고, 스캔된 참고문헌의 일부분을 문자열과 이미지로 인식할 수 있다. 그리고 상기 스캔된 참고문헌의 일 부분에 대응하는 참고문헌의 고유 해시값을 추출하고, 추출된 고유 해시값과 스캔 및 인식된 참고문헌의 일부분을 발췌 데이터로서 저장할 수 있다.
그리고 상기 발췌 데이터를 논문에 게재하고자 하는 사용자의 입력이 인가되면, 서버 제어부(100)는 상기 스캔 및 인식된 참고문헌의 일부, 즉 문자열 또는 이미지를 포함하는 피스를 작성 중인 논문에 게재할 수 있다. 그리고 게재된 피스를 블록화하고, 상기 참고문헌의 고유 해시값에 대응하는 해시 포인터 정보와, 상기 논문 데이터에 포함되는 블록으로서의 고유 해시값을 모두 포함하는 블록 정보를 생성 및, 상기 블록화된 피스에 상기 생성된 블록 정보를 매칭하도록 블록화부(140)를 제어할 수 있다.
따라서 작성 중인 논문 데이터 중, 발췌 데이터를 포함하는 일 부분은 블록의 식별정보인 고유 해시값과, 발췌된 원문, 즉 참고문헌의 고유 해시값을 나타내는 해시 포인터 정보를 모두 가지는 발췌 블록들로 구성될 수 있다. 반면 상기 논문 데이터 중 발췌 데이터를 포함하지 않는 다른 부분은 블록의 식별정보인 고유 해시값 만을 가지는 제네시스 블록들로 구성될 수 있다.
도 3은 이러한 본 발명의 실시 예에 따른 논문 작성 시스템의 서비스 서버(10)에서, 논문 작성이 이루어지는 동작 과정을 도시한 흐름도이다.
도 3을 참조하여 살펴보면, 본 발명의 실시 예에 따른 논문 작성 시스템의 서비스 서버(10)는 기 등록된 사용자의 요청에 따라, 사용자가 작성중인 논문의 데이터, 즉 논문 데이터를 메모리(150)로부터 로드할 수 있다(S300). 그리고 인증된 사용자의 단말기로부터 상기 논문 작성을 위한 저작 데이터, 즉 문자 및 이미지가 입력되면, 입력되는 저작 데이터를 수신할 수 있다(S302). 그리고 수신되는 저작 데이터의 문자 또는 이미지가, 기 설정된 단위, 예를 들어 단락을 형성하는 경우, 상기 단락을 형성하는 문자열 또는 이미지를 고유값(고유 해시값)을 가지는 블록(제네시스 블록)으로 블록화할 수 있다(S304). 그리고 생성된 제네시스 블록을 작성 중인 논문에 게재할 수 있다. 그리고 서비스 서버(10)는 현재 작성된 논문의 데이터(논문 데이터)를 저장할 수 있다(S306). 따라서 상기 제네시스 블록을 포함하는 논문 데이터가 저장될 수 있다.
그리고 서비스 서버(10)는 사용자 단말기(20)로부터 참고문헌의 열람이 요청이 수신되었는지 여부를 검출할 수 있다(S308). 여기서 상기 열람이 요청된 참고문헌은, 이전에 사용자가 검색을 요청 및, 요청에 따라 참고문헌 데이터베이스(30)로부터 검색되어 그 관련된 데이터(참고문헌 데이터)가 저장된 참고문헌일 수 있다.
상기 S308 단계의 검출 결과, 사용자 단말기로부터 참고문헌의 열람이 요청되지 않은 경우라면, 서비스 서버(10)는 다시 S302 단계로 진행하여 사용자 단말기(20)로부터 다시 논문 작성을 위한 저작 데이터를 수신할 수 있다. 그리고 S302 단계 내지 S306 단계에 이르는 과정을 수행하여, 입력되는 저작 데이터에 따라 형성되는 제네시스 블록을 작성 중인 논문에 게재할 수 있다. 반면, 상기 S308 단계의 검출 결과, 사용자 단말기(20)로부터 참고문헌의 열람 요청이 수신된 경우라면, 서비스 서버(10)는 열람이 요청된 참고문헌의 데이터를 사용자가 열람 가능하도록 사용자 단말기(20)에 제공할 수 있다(S310).
여기서 상기 S310 단계는, 서비스 서버(10)가, 사용자 단말기(20)로부터 특정 참고문헌의 검색 요청을 수신하고, 수신된 검색 요청에 대응하는 상기 특정 참고문헌의 데이터를 참고문헌 데이터베이스(30)로부터 검색하는 과정을 더 포함할 수 있다. 따라서 사용자가 열람을 요청한 참고문헌이, 이전에 검색 요청되지 않은 참고문헌인 경우에도, 상기 사용자가 열람을 요청한 참고문헌의 데이터가 상기 S310 단계에서 제공될 수 있다.
그리고 서비스 서버(10)는 사용자로부터 상기 제공된 참고문헌의 일 부분에 대한 발췌 요청이 있는지 여부를 검출할 수 있다(S312). 그리고 서비스 서버(10)는 S312 단계의 발췌 요청이 없는 경우, 사용자 단말기(20)로부터 참고문헌의 열람이 요청되었는지 여부를 검출하는 S308 단계를 다시 수행할 수 있다. 여기서 상기 발췌 요청은, 상기 제공된 참고문헌의 일부를 마킹(marking)하는 사용자의 입력을 통해 이루어질 수 있다.
한편 상기 S312 단계의 검출 결과, 사용자 단말기(20)로부터 참고문헌의 일 부분에 대한 발췌 요청이 있는 경우, 서비스 서버(10)는 상기 발췌가 요청된 참고문헌의 일부분을 스캔 및 인식할 수 있다(S314). 그리고 스캔 및 인식된 상기 참고문헌의 일 부분에 대응하는 고유 해시값을 상기 참고문헌 데이터로부터 추출할 수 있다(S316).
그러면 서비스 서버(10)는 스캔된 참고문헌의 일부분을 문자열 또는 이미지로 인식할 수 있다. 그리고 인식된 문자열 또는 이미지를, 상기 S316 단계에서 추출된 고유 해시값을 블록 정보로서 포함하는 발췌 블록으로 블록화할 수 있다(S318). 여기서 상기 참고문헌의 일부분으로부터 추출된 고유 해시값은, 상기 발췌 블록에 대응하는 해시 포인터 정보로서 포함될 수 있으며, 블록 고유 정보인 고유 해시값과 구분되는 정보일 수 있다.
한편 상기 S318 단계에서, 스캔된 참고문헌의 일 부분에 대응하는 발췌 블록이 생성되면, 서비스 서버(10)는 발췌 블록을 사용자의 요청에 따라, 현재 작성중인 논문에 게재할 수 있다. 그리고 서비스 서버(10)는 현재 작성된 논문의 데이터(논문 데이터)를 저장할 수 있다(S320). 따라서 상기 발췌 블록을 포함하는 논문 데이터가 저장될 수 있다. 또한 상기 논문의 일부로서 게재된 상기 참고문헌의 문자열 및 이미지에 대응하는 고유 해시값(해시 포인터)이 상기 발췌 블록에 매칭되는 블록 정보로서 저장될 수 있다. 그러므로 사용자가 논문을 작성 중 참고문헌으로부터 문자열 또는 이미지를 발췌하여 논문에 게재하는 경우, 상기 논문에 게재된 문자열 또는 이미지의 원문, 즉 상기 참고문헌의 식별 정보가 상기 발췌된 문자열 또는 이미지에 대응되도록 저장될 수 있다.
그리고 서비스 서버(10)는 사용자가 논문 작성의 종료를 요청하였는지 여부를 검출할 수 있다(S322). 그리고 사용자가 논문 작성의 종료를 선택한 경우라면, 상기 도 3의 논문 작성 과정을 종료할 수 있다. 그러나 사용자가 논문 작성의 종료를 선택하지 않은 경우라면, 다시 S302 단계로 진행하여 사용자가 입력하는 문자 및 이미지를 논문 작성을 위한 저작 데이터로서 수신할 수 있다. 그리고 S302 단계 이후의 과정을 진행할 수 있다.
한편 상술한 설명에서는 사용자 단말기(20)로부터 입력되는 저작 데이터에 근거하여 제네시스 블록이 생성 및, 생성된 제네시스 블록이 논문에 게재된 이후에 참고문헌의 검색이 요청되었는지 여부를 검출하는 S308 단계기 진행되는 것을 예로 들어 설명하였으나, 상기 사용자 단말기(20)로부터 입력되는 저작 데이터가 없을 수도 있음은 물론이다. 즉, 상기 S300 단계에서 사용자의 요청에 따라 현재 작성 중인 논문 데이터가 로드된 상태에서, 저작 데이터의 입력이 없는 경우, 서비스 서버(10)는 바로 S308 단계로 진행하여 참고문헌에 대한 열람이 요청되었는지 여부를 검출하고, 검출 결과에 따라 S310 단계 이후의 과정들을 수행할 수도 있음은 물론이다.
한편 도 4는 본 발명의 실시 예에 따른 논문 작성 시스템에서, 논문 작성 중, 참고문헌으로부터 발췌된 일부분의 문자열을, 상기 참고문헌의 고유 해시값을 포함하는 발췌 블록으로 블록화하는 예를 도시한 예시도이다.
도 4를 참조하여 살펴보면, 제1 문서(400)는 사용자가 요청한 참고문헌일 수 있다. 이 경우 사용자는 제1 문서(400)의 일부(410)를 선택할 수 있다. 그러면 상기 제1 문서(400)의 일부(410)는 다른 영역과 구분되게 마킹될 수 있으며, 사용자의 요청에 따라 제1 문서(400)로부터 발췌될 수 있다.
이 경우 서비스 서버(10)는 상기 발췌가 요청된 상기 제1 문서(400)의 일부(410)를 스캔할 수 있다. 그리고 스캔된 상기 제1 문서(400)의 일부(410)를 인식하여 인식 데이터를 생성할 수 있다. 그리고 상기 스캔된 상기 제1 문서(400)의 일부(410)를 인식한 인식 데이터가 생성되면, 서비스 서버(10)는 상기 인식 데이터를 블록화하여 발췌 블록을 생성할 수 있다.
여기서 상기 인식 데이터는, 적어도 하나의 문자 또는 적어도 하나의 이미지만을 포함할 수 있다. 예를 들어 상기 스캔된 제1 문서(400)의 일부가 적어도 하나의 문자만 포함하거나 또는 적어도 하나의 이미지만을 포함하는 경우 상기 인식 데이터는 적어도 하나의 문자 또는 적어도 하나의 이미지만을 포함할 수 있다. 반면 상기 스캔된 제1 문서(400)의 일부가 적어도 하나의 문자와 적어도 하나의 이미지를 모두 포함하는 경우, 상기 인식 데이터는 상기 적어도 하나의 문자와 적어도 하나의 이미지를 모두 포함할 수 있다.
한편 상기 인식 데이터를 발췌 블록으로 블록화하면서, 서비스 서버(10)는 상기 발췌 블록에 대응하는 상기 제1 문서(400)의 고유 정보를 추출할 수 있다. 일 예로 상기 제1 문서(400)는, 상술한 바와 같이 페이지, 문장, 단락 또는 챕터에 따라 블록화된 문서일 수 있다. 이 경우 상기 제1 문서(400)의 각 블록은, 블록 일렬정보와, 타임 스탬프 정보, 그리고 블록 고유 정보인 고유 해시값을 블록정보로서 포함할 수 있다.
따라서 도 4에서 보이고 있는 바와 같이, 제1 문서(400)의 일부(410)가 발췌되는 경우, 서비스 서버(10)는 상기 제1 문서(400)의 일부(410)를 포함하는 상기 제1 문서(400)의 블록으로부터 블록 정보(411)를 추출할 수 있다. 그리고 추출된 블록 정보(411)로부터 해당 블록의 고유값인 고유 해시값(412)을 추출할 수 있다.
한편 도 4에서 보이고 있는 제2 문서(450)는, 사용자가 현재 작성중인 논문일 수 있다. 이 경우 상기 제2 문서(450)에서 보이고 있는 바와 같이, 사용자는 발췌된 제1 문서(400)의 일부(410)를 스캔 및 인식한 인식 데이터를 포함하는 발췌 블록(460)과, 사용자가 직접 입력한 적어도 하나의 문자 및/또는 이미지(저작 데이터)를 포함하는 제네시스 블록(470)을 포함하여 구성될 수 있다.
이 경우 상기 발췌 블록(460)과 제네시스 블록(470)은 논문 작성에 따른 블록들의 배치 순서에 따른 블록 일렬번호와 각 블록이 논문에 게재된 시각(Time Stamp), 및 블록 고유 정보를 포함하는 블록 정보를 포함할 수 있다. 여기서 도 4의 제2 문서(450)에서 보이고 있는 바와 같이, 제네시스 블록(470)보다 발췌 블록(460)이 먼저 게재되면, 블록 일렬번호는 제네시스 블록(470)(N+1)이 발췌 블록(460)(N)보다 더 큰 값을 가질 수 있다.
한편 발췌 블록(460)에 대응하는 블록 정보(461)는, 도 4에서 보이고 있는 바와 같이, 상기 발췌 블록(460)에 대응하는 제1 문서(400)의 일부에 대한 블록 정보(411)로부터 추출된 고유 해시값(412)을 더 포함할 수 있다. 이 경우 상기 제1 문서(400)의 블록 정보로부터 추출된 고유 해시값(412)은 상기 발췌 블록(460)의 고유값인 고유 해시값(462)과 구분될 수 있다.
즉, 도 4의 발췌 블록-블록 정보(461)에서 보이고 있는 바와 같이, 발췌 블록(460)의 고유값은 고유 해시값(HASH, 462)으로 발췌 블록-블록 정보(461)에 포함될 수 있으며, 상기 발췌 원문인 제1 문서(400)로부터 추출된 블록 정보(411)의 고유 해시값(412)은, 이전 문서의 해시값(Previous HASH, Pre. HASH, 463), 즉 해시 포인터 정보로서, 상기 발췌 블록-블록 정보(461)에 포함될 수 있다.
한편 상기 발췌 블록(460)과 달리 사용자가 입력한 저작 데이터에 따른 문자들과 이미지들을 포함하는 제네시스 블록(470)의 경우, 제네시스 블록(470)의 블록 정보(471)는, 도 4에서 보이고 있는 바와 같이 해시 포인터 정보를 포함하지 않는 블록 정보일 수 있다.
한편, 사용자는 참고문헌의 일부를 발췌하면서, 발췌된 참고문헌으로부터 스캔 및 인식된 인식 데이터의 일부 수정하거나 또는 내용을 추가하여 자신의 논문에 게재할 수 있다. 이 경우 서비스 서버(10)는 상기 발췌된 참고문헌에 수정된 부분 및 추가된 부분을 사용자가 입력한 저작 데이터에 따른 블록(제네시스 블록)으로 생성하고, 생성된 부분을 발췌 블록으로부터 구분되게 저장할 수 있다.
도 5는 본 발명의 실시 예에 따른 논문 작성 시스템에서, 이처럼 발췌된 부분에 대한 수정이 있는 경우, 상기 수정된 부분을 제네시스 블록으로 구분하는 동작 과정을 도시한 흐름도이다.
도 5를 참조하여 살펴보면, 본 발명의 실시 예에 따른 서비스 서버(10)는 상기 도 3의 S320 단계에서 발췌 블록을 논문에 게재 및 저장하는 과정이 진행되면, 먼저 상기 게재가 요청된 발췌 블록을, 논문상의 지정된 위치에 게재할 수 있다(S500). 그리고 상기 게재된 발췌 블록에 대한 수정이 있는지 여부를 검출할 수 있다(S502).
여기서 상기 발췌 블록의 수정은, 문자 또는 이미지의 변경 또는 문자 또는 이미지의 추가를 포함할 수 있다. 따라서 서비스 서버(10)는, 상기 S503 단계에서, 상기 게재된 발췌 블록에 대하여 상기 발췌 블록을 구성하는 문자들 또는 이미지들에 대한 변경이 이루어졌는지 여부를 검출할 수 있다. 또한 상기 게재된 발췌 블록에 적어도 하나의 문자나 적어도 하나의 이미지가 더 추가되었는지 여부를 검출할 수 있다. 그리고 상기 S502 단계의 검출 결과, 상기 발췌 블록을 구성하는 문자들 또는 이미지들에 대한 변경이나 문자 또는 이미지의 추가가 없는 경우라면, 발췌 블록에 대한 수정이 없는 것으로 판단하고, 도 3의 S322 단계로 진행하여 논문 작성의 종료가 요청되었는지 여부를 검출할 수 있다.
반면 상기 S502 단계의 검출 결과, 상기 발췌 블록을 구성하는 문자들 또는 이미지들에 대한 변경이나 문자나 이미지의 추가가 있는 경우라면, 서비스 서버(10)는 상기 발췌 블록에 대한 수정이 있는 것으로 판단할 수 있다. 그러면 서비스 서버(10)는 상기 발췌 블록 중, 수정된 부분, 즉 문자 또는 이미지가 변경되거나 추가된 부분의 앞 부분과, 상기 수정된 부분의 뒷 부분을, 동일한 해시 포인터 정보를 가지는 서로 다른 발췌 블록들로 분할할 수 있다(S504).
그리고 서비스 서버(10)는, 상기 발췌 블록 중, 상기 수정된 부분을 상기 발췌 블록과 구분되는 제네시스 블록으로 블록화할 수 있다(S506). 따라서 상기 발췌 블록 중, 사용자가 변경하거나 내용을 추가한 부분은, 해시 포인터 정보를 가지지 않는 블록 정보에 대응하는 제네시스 블록으로 블록화될 수 있다(S506).
그리고 서비스 서버(10)는 복수의 발췌 블록과 적어도 하나의 제네시스 블록으로 분할된 발췌 블록과, 제네시스 블록을 포함하는 논문 데이터를 저장할 수 있다(S508). 그리고 다시 S502 단계로 진행하여, 사용자가 발췌 블록의 일부를 다시 수정하였는지 여부를 검출할 수 있다. 그리고 발췌 블록에 대한 추가적인 수정이 발생한 경우라면, 상기 S504 단계 내지 S508 단계에 이르는 과정을 다시 수행할 수 있다. 그러나 수정이 없는 경우라면, 도 3의 S322 단계로 진행하여 논문 작성의 종료가 요청되었는지 여부를 검출할 수 있다.
도 6은, 상기 도 5의 동작 과정에 따라, 발췌 블록이 상기 수정 또는 추가된 부분을 포함하는 제네시스 블록과 발췌 블록으로 구분되는 예를 도시한 예시도이다.
먼저 도 6의 (a)를 참조하여 살펴보면, 도 6의 (a)는 발췌 블록(460)과 제네시스 블록(470)을 포함하는 작성 중인 논문(450)의 예를 보이고 있는 것이다. 이 경우 제네시스 블록(470)은 제네시스 블록(470)의 블록 정보(471)에서 보이고 있는 바와 같이, 해시 포인터 정보(Pre.HASH)를 가지지 않을 수 있다. 반면 발췌 블록(460)은 발췌 블록(460)의 블록 정보(461)에서 보이고 있는 바와 같이, 블록 고유 정보인 고유 해시값(HASH, 462) 뿐만 아니라, 발췌 원문의 고유 정보(고유 해시값)를 해시 포인터 정보(Pre.HASH, 463)로서 포함할 수 있다.
이처럼 발췌 블록(460)이 논문(450)에 게재 및, 발췌 블록(460)의 블록 정보(461)가 저장된 상태에서, 서비스 서버(10)는 발췌 블록(460)에 추가되는 사용자의 저작 데이터를 검출할 수 있다. 즉, 발췌 블록(460) 중에 사용자가 문자열 또는 이미지를 입력하는 경우 도 6의 (b)에서 보이고 있는 논문(451)과 같이 발췌 블록(460) 내에 사용자가 입력한 저작 데이터(600), 즉, 문자열 또는 이미지가 추가될 수 있다.
그러면 서비스 서버(10)는 상기 발췌 블록(460) 내에 추가된 사용자의 저작 데이터(600)를 중심으로, 상기 저작 데이터(600)의 앞 부분에 해당되는 발췌 블록(460)의 제1 부분(460-1)과, 상기 저작 데이터(600)의 뒷 부분에 해당되는 발췌 블록(460)의 제2 부분(460-2)을 각각 서로 다른 발췌 블록으로 블록화할 수 있다. 이 경우 상기 제1 부분(460-1)에 대응하는 발췌 블록(이하 제1 발췌 블록)과 상기 제2 부분(460-2)에 대응하는 발췌 블록(이하 제2 발췌 블록)은, 블록 일렬번호, 타임 스탬프 정보, 그리고 블록 고유 정보인 고유 해시값이 서로 다른, 서로 별개의 블록으로 블록화될 수 있다.
이 경우 상기 도 6의 (b)에서 보이고 있는 제1 발췌 블록(460-1)의 블록 정보(461-1)와 제2 발췌 블록(460-2)의 블록 정보(461-2)와 같이, 상기 제1 발췌 블록(460-1)에 대응하는 고유 해시값(601)과 제2 발췌 블록(460-2)에 대응하는 고유 해시값(603)은 서로 다를 수 있다. 또한 기존 발췌 블록(460)의 고유 해시값(462)과도 서로 다를 수 있다. 그러나 상기 제1 발췌 블록(460-1)에 대응하는 블록 정보(461-1)와 제2 발췌 블록(460-2)에 대응하는 블록 정보(461-2)는, 각각 동일한 해시 포인터 정보들(611, 613)을 가질 수 있다. 즉, 상기 제1 발췌 블록(460-1)과 제2 발췌 블록(460-2)은 동일한 해시 포인터 정보를 블록 정보로 포함하는 발췌 블록일 수 있다.
한편 상기 발췌 블록(460) 내에 추가된 사용자의 저작 데이터(600)는 해시 포인터 정보를 포함하지 않는 블록 정보(610)에 매칭되는 제네시스 블록으로 생성될 수 있다. 이 경우 새로 생성된 제네시스 블록에 대응하는 블록 정보(610)는 고유한 블록 정보(고유 해시값, 602) 및 블록 일련번호와 타임 스탬프 정보를 포함할 수 있다. 이 경우 상기 새로 생성된 제네시스 블록에 대응하는 블록 정보(610)의 고유 해시값 역시, 기존 발췌 블록(460)의 고유 해시값(462)과 다른 값을 가질 수 있다.
한편 상술한 설명에서는 발췌 블록 내에 사용자로부터 입력되는 저작 데이터가 추가되는 경우를 설명하였으나, 상기 발췌 블록 내의 일부분을 삭제 및 삭제된 부분을 대체하는 저작 데이터가 입력되는 발췌 블록의 변경이 이루어지는 경우에도 상기 도 5 및 도 6에서 살펴본 바와 유사하게 발췌 블록이 복수의 발췌 블록 및 적어도 하나의 제네시스 블록으로 분할될 수 있다. 이 경우 분할된 각각의 블록들에 대응하는 블록 정보들은 각각 서로 다른 고유 해시값을 가질 수 있다. 반면 상기 분할된 블록들 중 발췌 블록들의 블록 정보들은, 분할 전 발췌 블록의 해시 포인터 정보와 동일한 해시 포인터 정보를 포함할 수 있다.
한편 상술한 설명에서는 발췌 블록 내에 사용자로부터 입력되는 저작 데이터가 추가되는 경우를 설명하였으나, 발췌 블록이 하나의 이미지로 구성되고, 사용자가 상기 이미지(발췌 블록)를 수정하는 경우에도 본 발명이 적용될 수 있음은 물론이다.
도 7은, 이처럼 발췌된 부분이 이미지인 경우, 상기 도 5의 동작 과정에 따라 편집된 부분과 이미지 원본 각각에 대한 블록 정보가 생성되는 예를 도시한 예시도이다.
먼저 도 7의 (a)를 참조하여 살펴보면, 도 7의 (a)는 발췌 블록이 하나의 이미지(700)(이하 발췌 이미지)로 생성되는 경우를 가정한 것이다. 예를 들어 참고문헌으로부터 이미지가 선택되어 발췌되는 경우, 발췌 이미지(700)는 상기 참고문헌의 이미지에 대응하는 고유 해시값을 해시 포인터 정보(712)로 포함 및, 작성 중인 논문 데이터에 포함되는 발췌 블록으로서의 블록 고유 정보인 고유 해시값(711)을 포함하는 블록 정보(701)에 매칭될 수 있다.
이러한 경우 서비스 서버(10)는 상기 발췌 이미지(700)에 대한 사용자의 편집 요청을 수신할 수 있다. 그러면 상기 발췌 이미지(700)는 편집부(121)에서 제공되는 다양한 편집 기능을 통해 편집될 수 있다. 예를 들어 도 7의 (b)에서 보이고 있는 바와 같이, 상기 사용자가 편집을 통해 추가한 이미지 영역(760)과 기존 발췌 이미지(700)에 대응하는 이미지 영역(740)을 포함하는 편집 이미지(760)가 생성될 수 있다.
그러면 서비스 서버(10)는 먼저 사용자가 편집을 통해 추가한 이미지 영역(760)에 대응하는 신규 블록 정보(751)를 생성할 수 있다. 이 경우 상기 신규 블록 정보(751)는 블록 일렬번호와 타임 스탬프 정보, 그리고 작성 중인 논문 데이터에 포함되는 블록으로서의 고유 해시값(761)을 포함하는 제네시스 블록의 블록 정보로 생성될 수 있다. 즉, 해시 포인터 정보를 포함하지 않는 블록 정보일 수 있다. 그리고 서비스 서버(10)는 상기 편집 이미지(760)에 상기 생성된 제네시스 블록 정보(751)를 매칭시킬 수 있다.
그리고 서비스 서버(10)는 기존 발췌 이미지(700)에 대응하는 기존 블록 정보(701), 즉 해시 포인터 정보(712)를 가지는 발췌 블록 정보(701)를 상기 편집 이미지(760)에 더 매칭시킬 수 있다. 따라서 도 7의 (b)에서 보이고 있는 바와 같이, 기존의 발췌 이미지(700)를 편집하여 생성된 편집 이미지(760)는, 해시 포인터 정보(712)를 가지지 않는 제네시스 블록 정보(751)와 해시 포인터 정보(712)를 가지는 발췌 블록 정보(701)에 모두 매칭될 수 있다.
즉, 서비스 서버(10)는 참고문헌으로부터 발췌된 이미지의 편집 과정 추적을 통해 이미지 중 편집되지 않은 부분과 편집된 부분을 구분하고, 상기 이미지 중 편집되지 않은 부분과 편집된 부분에, 각각 발췌 블록 정보(701) 및, 제네시스 블록 정보(751)를 매칭할 수 있다. 따라서 상기 편집된 부분과 편집되지 않은 부분을 모두 포함하는 편집 이미지(760)는 제네시스 블록 정보(751)와 발췌 블록 정보(701) 모두에 매칭될 수 있다.
한편 본 발명의 실시 예에 따른 서비스 서버(10)는 논문에 게재된 각 블록들의 블록 정보를 제공하는 구조 모델을 제공할 수 있다. 예를 들어 상기 구조 모델은 논문의 목차 구조에 따라 생성될 수 있으며, 각 목차에 포함되는 논문 내 각 블록들에 관련된 정보들을 포함할 수 있다.
일 예로 상기 구조 모델은, 논문에 게재된 블록들 중 발췌 블록들의 정보를 제공하는 모델일 수 있다. 이 경우 상기 구조 모델은 논문의 목차 구조에 따른 각 목차에 포함되는 발췌 블록들의 정보들을 제공할 수 있다.
도 8은 이처럼 본 발명의 실시 예에 따라 생성된 블록 정보들의 정보를 표시하는 목차 구조 모델을 생성하는 동작 과정을 도시한 흐름도이다.
도 8을 참조하여 살펴보면, 본 발명의 실시 예에 따른 서비스 서버(10)는 먼저 현재 작성된 논문의 목차 구조에 대응하는 목차 구조 모델을 생성할 수 있다(S800). 이 경우 상기 목차 구조 모델은, 논문의 목차 구조에 따른 트리 형태의 구조를 가질 수 있으며, 각 목차 별로, 각 목차에 포함되는 블록들의 블록 정보가 매칭될 수 있다. 즉, 논문을 구성하는 각 블록들이 각각의 목차별로 분류될 수 있다.
상기 S800 단계에서 목차 구조 모델의 생성이 완료되면, 서비스 서버(10)는 논문 데이터에 포함된 블록 정보들 중, 발췌 블록들의 블록 정보만을 검출할 수 있다(S802). 예를 들어 서비스 서버(10)는 논문 데이터에 포함된 블록 정보들 중 해시 포인터 정보를 포함하는 블록들을 상기 발췌 블록의 블록 정보들로서 검출할 수 있다.
그러면 서비스 서버(10)는, 상기 목차 구조 모델로부터 상기 S802 단계에서 검출된 발췌 블록의 블록 정보들을, 제네시스 블록의 블록 정보와 구분되게 표시할 수 있다(S804). 이에 따라 상기 목차 구조 모델을 통해 표시되는 블록 정보들을 통해 현재 작성 중인 논문에 포함된 발췌 블록의 양 및 위치들을 보다 쉽게 확인할 수 있다.
상술한 설명에서는 발췌 블록의 블록 정보들을 검출하는 것을 예로 들어 설명하였으나, 이와 반대로 제네시스 블록의 블록 정보들을 검출할 수도 있음은 물론이다.
한편 상기 서비스 서버(10)는, 상술한 바와 달리, 논문 데이터에 포함된 블록 정보들 중, 발췌 블록들의 블록 정보만을 검출하고, 검출된 각 블록 정보들로부터 해시 포인터 정보를 추출할 수도 있음은 물론이다. 그리고 발췌 블록을 포함하는 목차에 대응하는 목차 구조별 모델 상의 위치들 각각에, 각 발췌 블록으로부터 추출된 해시 포인터 정보를 표시할 수도 있다. 이 경우 목차 구조별 모델 중 발췌 블록이 포함된 목차에, 상기 발췌 블록의 발췌 원문을 나타내는 정보(해시 포인터 정보)가 표시될 수 있다.
한편 발췌 블록의 블록 정보에 포함되는 해시 포인터 정보는, 상기 발췌 블록에 대응하는 발췌 원문(참고문헌)의 위치를 나타내는 정보일 수 있다. 따라서 상기 서비스 서버(10)는, 상기 목차 구조별 모델 상에 표시된 각각의 해시 포인터 정보에 대하여, 해시 포인터 정보에 대응하는 참고문헌에 대한 링크(link) 기능을 제공할 수 있다. 그리고 상기 해시 포인터 정보에 따른 참고문헌의 추적 기능을 제공할 수 있다.
따라서 사용자가 상기 목차 구조별 모델 상에 표시된 어느 하나의 해시 포인터 정보를 선택하는 경우, 상기 링크 기능을 통해 상기 해시 포인터 정보에 대응하는 참고문헌의 데이터가 사용자 단말기(20)와 연결될 수 있다. 그러므로 사용자는 사용자 단말기(20)를 통해 상기 링크된 참고문헌의 일부를 바로 확인할 수 있다.
여기서, 상기 참고문헌의 일부 역시, 다른 참고문헌으로부터 발췌된 데이터일 수 있다. 이 경우 상기 링크된 참고문헌의 일부에 대응하는 블록 정보는 상기 다른 참고문헌의 고유 정보(고유 해시값)를 해시 포인터 정보로서 포함할 수 있다. 이 경우 상기 서비스 서버(10)는 상기 링크를 통해 연결된 다른 참고문헌의 블록 정보에 포함된 해시 포인터 정보에 따른 또 다른 링크를 제공할 수 있다.
이에 따라 논문 작성 시 사용자가 발췌한 참고문헌이 다른 참고문헌으로부터 발췌된 경우, 본 발명의 실시 예에 따른 서비스 서버(10)는 연속적인 링크를 통해, 논문 작성자가 발췌한 부분을 최초로 작성한 최초 저작자의 참고문헌(오리지널(orignal) 참고문헌)을 추적할 수 있다. 또한 해당 발췌된 부분이 상기 오리지널 참고문헌으로부터 현재 작성 중인 논문에 이르기까지의 발췌된 이력을 트래킹(tracking) 및 트래킹된 이력 정보를 제공할 수도 있다.
한편 상술한 설명에 따르면, 본 발명의 실시 예에 따른 논문 작성 시스템은, 사용자가 미리 지정한 단말기를 통해 작성 중인 논문에 대한 미리보기 기능을 제공할 수 있음을 언급한 바 있다. 이 경우 서비스 서버(10)는 상기 작성 중인 논문을 암호화하여 전송할 수 있으며, 상기 암호화된 논문은 상기 미리 지정된 단말기의 식별 정보 또는 사용자의 인증 정보 등을 통해 복호화될 수 있다.
여기서 사용자 단말기는, 상기 논문을 작성하기 위해 사용자가 사용하는 단말기로서, 상기 작성 중인 논문의 미리보기가 가능하도록 지정된 지정 단말기일 수 있다. 또는 상기 논문 작성을 위해 사용하는 단말기가 아닐지라도, 사용자가 상기 논문의 미리보기가 가능하도록 미리 지정한 단말기일 수도 있다.
도 9는 작성 중인 논문에 대한 암호화된 미리보기 기능을 제공하는 본 발명의 실시 예에 따른 논문 작성 시스템의 서비스 서버를 설명하기 위한 블록도이다.
도 9를 참조하여 살펴보면, 상기 암호화된 미리보기 기능을 더 제공하기 위해 본 발명의 실시 예에 따른 서비스 서버(11)는 서버 제어부(900)에 연결되는 변환부(920) 및 암호화부(930)를 더 포함하여 구성될 수 있다. 또한 상기 암호화된 미리보기 기능을 제공하기 위해, 현재 작성중인 논문을 스캔하여 상기 논문에 대응하는 이미지 데이터를 생성하는 이미지화부(910)를 더 포함할 수 있다. 그리고 암호화와 관련된 키들이 저장되는 키 데이터 저장부(941)를 더 포함하는 메모리(940)를 포함할 수 있다.
먼저 이미지화부(910)는 상기 작성 중인 논문에 대응하는 이미지 데이터를 생성할 수 있다. 이를 위해 상기 이미지화부(910)는 상기 작성 중인 논문을 스캔할 수 있다. 예를 들어 이미지화부(910)는 상기 작성 중인 논문의 각 페이지 별로 스캔을 수행하여 각 페이지에 대응하는 이미지 데이터들을 생성할 수 있다.
그리고 변환부(920)는 서버 제어부(900)의 제어에 따라, 상기 이미지화부(910)에서 생성된 이미지 데이터들 각각을 기 설정된 인코딩 방식으로 인코딩하여 문자열로 변환할 수 있다. 일 예로 변환부(920)는 이미지 데이터를 base64 알고리즘에 따라 인코딩할 수 있다. 이 경우 이미지 데이터에 대응하는 이진 데이터는 6개의 비트마다 서로 다른 문자로 변환될 수 있다. 따라서 작성된 논문의 페이지에 대응하는 이미지가, 하나의 긴 문자열의 형태(문자열 데이터)로 변환될 수 있다.
그리고 암호화부(930)는 상기 변환부(920)에서 문자열로 인코딩된 데이터, 즉 문자열 데이터를 기 설정된 암호화 방식으로 암호화할 수 있다. 일 예로 상기 암호화부(930)는 CryptoJS에서 선언된 AES(Advanced Encryption Standard) 알고리즘에 따라 상기 문자열 데이터를 암호화할 수 있다. 이 경우 상기 암호화부(930)는 상기 문자열 데이터에 대한 압축을 수행할 수도 있다.
한편 상기 암호화부(930)는 사용자별로 서로 다른 암호화 키를 통해 상기 문자열 데이터를 암호화할 수 있다. 여기서 암호화 키는 상기 작성 중인 논문의 미리보기가 가능한 뷰어 단말기의 식별 정보를 포함할 수 있다.
일 예로 상기 암호화 키는 사용자가 상기 뷰어 단말기를 지정할 때에, 상기 서비스 서버(11)에 등록한 상기 뷰어 단말기의 식별 정보(ID)를 포함할 수 있다. 이 경우 상기 식별 정보는 뷰어 단말기의 고유 정보일 수 있다. 이 경우 상기 암호화 키는, 사용자가 서비스 서버(10)에 등록하여 계정을 생성할 때에 발부되는 식별 정보(사용자 식별 정보)와 상기 뷰어 단말기의 식별 정보를 포함하여 형성될 수 있다.
한편 상기 작성 중인 논문이 마지막으로 수정된 시각(최종 수정 시각)의 타임 스탬프 정보가 상기 암호화 키로 더 이용될 수 있다. 이 경우 상기 사용자 식별 정보, 뷰어 단말기 식별 정보, 그리고 논문의 최종 수정 시각 정보의 조합으로 상기 암호화키가 생성될 수 있으며, 이 경우 상기 사용자 식별 정보, 뷰어 식별 정보, 그리고 논문의 최종 수정 시각 정보의 조합으로 생성되는 암호화 키의 예는 하기와 같다.
조합 예) SYSTEM_ID+ "." + UUID + "." + USER_TIMESTAMP
0GOEgzwwO9grgKHg4n4IykPd8VB2.9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d.1656886229347
여기서 SYSTEM_ID는 사용자 ID이며, UUID는 뷰어 단말기의 식별 정보, USER_TIMESTAMP는 논문의 최종 수정 시각임.
이를 위해 서버 제어부(900)는 특정 이벤트가 발생하는 경우 이벤트가 발생한 시각의 정보를 검출할 수 있다. 이 경우 서버 제어부(900)는 사용자의 요청에 따라 논문의 작성이 종료되는 경우, 상기 논문 작성이 종료된 시각의 정보를 검출 및 저장할 수 있다.
한편 뷰어 단말기가 논문 작성을 위한 저작 데이터를 입력하는 상기 도 1의 사용자 단말기(20)인 경우라면, 상기 논문이 마지막으로 수정된 시각은 사용자 단말기(20)에 자동으로 저장되는 정보일 수 있다. 이에 따라 상기 뷰어 단말기와 사용자가 논문 작성을 위해 사용하는 단말기가 동일한 경우에는 서버 제어부(900)는 상기 논문의 최종 수정 시각에 대한 정보를 사용자 단말기(20)에 전송하지 않을 수 있다. 그러나 상기 사용자 단말기(20)와 별개의 단말기가 상기 뷰어 단말기로 지정된 경우라면, 즉, 뷰어 단말기의 식별 정보와, 논문 작성을 위해 인증된 사용자 단말기(20)의 식별 정보가 상이한 경우라면, 서버 제어부(900)는 상기 논문 작성이 종료된 시각의 정보를 상기 뷰어 단말기에 전송할 수 있다. 즉, 상기 논문 작성이 종료된 시각의 정보는 상기 서비스 서버(11)와 상기 뷰어 단말기 간에 공유될 수 있다.
한편 상기 작성 중인 논문에 대한 암호화된 미리보기를 제공하기 위해, 서비스 서버(11)의 메모리(940)는 암호화에 관련된 키들이 저장되는 키 데이터 저장부(941)를 포함할 수 있다. 상기 키 데이터 저장부(941)에는 등록된 사용자의 식별 정보와, 사용자가 등록한 뷰어 단말기의 식별 정보, 그리고 상기 논문의 최종 수정 시각 정보가 저장될 수 있다.
한편 서비스 서버(11)는 현재 작성 중인 논문을 페이지 별로 스캔하여 적어도 하나의 이미지 데이터를 생성하도록 상기 이미지화부(910)를 제어할 수 있다. 그리고 변환부(920)를 제어하여 스캔된 각 이미지 데이터를, 각 이미지 데이터에 대응하는 문자열 데이터로 인코딩하고, 상기 인코딩된 각 문자열 데이터가 암호화되도록 상기 암호화부(930)를 제어할 수 있다.
이 경우 상기 서버 제어부(900)는 상기 논문 작성자(사용자)의 식별 정보와, 그 사용자가 사전에 설정한 뷰어 단말기의 식별 정보 및, 상기 논문의 최종 수정 시각 정보 중 적어도 하나의 조합을 암호화 키로 사용하도록 상기 암호화부(930)를 제어할 수 있다. 여기서 논문의 최종 수정 시각 정보를 암호화 키로 사용하는 경우, 서버 제어부(900)는 상기 논문의 최종 수정 시각 정보를 뷰어 단말기로 제공할 수 있다.
서버 제어부(900)는 스캔된 이미지 데이터가 복수인 경우, 각 이미지 데이터에 대하여 상기의 과정을 반복할 수 있다. 따라서 현재 작성 중인 논문의 각 페이지 별로 암호화된 복수의 암호화된 데이터가 상기 뷰어 단말기로 전송될 수 있다.
한편 서버 제어부(900)는 상기 사용자의 식별 정보, 뷰어 단말기의 식별 정보, 그리고 상기 논문의 최종 수정 시각 정보 중 적어도 하나를 임의로 인코딩된 문자열의 기 설정된 위치에 드로잉 키로서 삽입할 수 있다. 이 경우 상기 암호화부(930)는 상기 드로잉 키가 더 삽입된 문자열 데이터를 암호화할 수 있으며, 이에 따라 드로잉 키를 포함하는 문자열 데이터가 암호화되어 뷰어 단말기로 전송될 수 있다.
여기서 상기 드로잉 키가 삽입되는 문자열 데이터 내의 위치는 서비스 서버(11)와 사용자 간에 약정을 통해 미리 정해진 위치일 수 있다. 또한 상기 사용자의 식별 정보, 뷰어 단말기의 식별 정보, 그리고 상기 논문의 최종 수정 시각 정보는 모두 같은 개수의 문자로 이루어지는 문자열일 수 있다.
또한 서버 제어부(900)는 각 인코딩된 문자열 데이터 각각에 대하여 서로 다른 드로잉 키를 삽입할 수 있다. 즉, 작성 중인 논문의 각 페이지에 대응하는 문자열 데이터 각각마다, 지정된 위치에 삽입되는 드로잉 키는 서로 다를 수 있다.
도 10은 상기 논문의 암호화된 미리보기 기능을 제공하는 논문 작성 시스템에서, 뷰어 단말기의 구성을 설명하기 위한 블록도이다.
본 발명의 실시 예에 따라 암호화된 논문의 미리보기 기능을 제공하는 뷰어, 즉 뷰어 단말기(21)는 제어부(1000) 및 상기 제어부(1000)와 연결되며 상기 제어부(1000)에 의해 제어되는 통신부(1020), 복호화부(1030), 디코딩부(1040), 드로잉부(1050), 디스플레이부(1060), 및 메모리(1070)를 포함하여 구성될 수 있다. 도 10에 도시된 구성요소들은 뷰어 단말기(21)를 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서 상에서 설명되는 뷰어 단말기(21)는 위에서 열거된 구성요소들 보다 많거나, 또는 적은 구성요소들을 가질 수 있다.
한편 상기 뷰어 단말기(21)가 사용자 단말기(20)와 동일한 기기인 경우라면, 상기 뷰어 단말기(21)는 저작 데이터를 입력할 수 있는 입력부(도시되지 않음)를 더 포함할 수 있다.
먼저 통신부(1020)는 서비스 서버(11) 등의 외부 서버와 뷰어 단말기(21) 사이의 무선 통신을 가능하게 하는 하나 이상의 모듈을 포함할 수 있다. 또한, 상기 통신부(1020)는, 뷰어 단말기(21)를 하나 이상의 네트워크에 연결하는 하나 이상의 모듈을 포함할 수 있다.
상기 통신부(1020)는 뷰어 단말기(21)가 무선 인터넷 접속을 할 수 있도록 모듈로서, 무선 인터넷 기술들에 따른 통신망에서 무선 신호를 송수신하도록 형성될 수 있다. 이러한 무선 인터넷 기술로는, 예를 들어 WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), DLNA(Digital Living Network Alliance), WiBro(Wireless Broadband), WiMAX(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등이 있을 수 있다.
상기 통신부(1020)는 상기에서 나열되지 않은 인터넷 기술까지 포함한 범위에서 적어도 하나의 무선 인터넷 기술에 따라 외부 서버로부터 데이터를 송수신하도록 형성될 수 있다.
그리고 복호화부(1030)는, 상기 통신부(1020)를 통해 서비스 서버(11)로부터 수신된 암호화된 논문 미리보기 데이터를 기 설정된 키를 이용하여 복호화할 수 있다. 여기서 상기 암호화된 논문 미리보기 데이터는, 상기 서비스 서버(11)에서, 사용자가 작성한 논문을 각 페이지별로 이미지화 및 이미지화된 데이터(이미지 데이터)를 문자열 데이터로 인코딩하고, 인코딩한 문자열 데이터를 기 설정된 암호화 키로 암호화한 데이터일 수 있다. 이 경우 상기 암호화 키는 사용자의 식별 정보, 뷰어 단말기(21)의 식별 정보, 및 상기 논문의 최종 수정 시각 정보 중 적어도 하나의 조합으로 생성되는 문자열일 수 있다.
한편 상기 복호화부(1030)가 암호화된 논문 미리보기 데이터를 복호화하기 위해서는 상기 암호화 키를 복호화 키로 사용할 수 있다. 따라서 복호화 키는 상술한 바와 같이 사용자의 식별 정보, 뷰어 단말기(21) 자신의 식별정보, 및 상기 논문 최종 수정 시각 정보 중 적어도 하나의 조합으로 생성될 수 있다.
그런데 상기 사용자의 식별 정보 및 뷰어 단말기(21)의 식별 정보는 뷰어 단말기(21)에 이미 저장되어 있는 정보일 수 있다. 또한 상기 뷰어 단말기(21)가 논문 작성에 이용되는 사용자 단말기(20)인 경우라면, 상기 논문 최종 수정 시각의 정보 역시 이미 저장되어 있는 정보일 수 있다. 이에 따라 서비스 서버(11)는 상기 논문 최종 수정 시각의 정보를 뷰어 단말기(21)에 전송하지 않을 수 있다.
그러나 상기 뷰어 단말기(21)가 상기 사용자 단말기(20)와 별개의 기기인 경우라면, 서비스 서버(10)는 논문 최종 수정 시각의 정보를 상기 뷰어 단말기(21)에 전송할 수 있다.
이를 위해 서비스 서버(11)는 상기 사용자 단말기(20)로부터 작성 중인 논문이 저장되면, 저장이 이루어진 시각을 논문 최종 수정 시각의 정보로 갱신할 수 있다. 상기 논문 최종 수정 시각의 정보 갱신은 사용자가 논문 작성 중에 작성 중인 논문 데이터를 저장할 때마다 이루어질 수 있다. 즉, 상기 논문의 최종 수정 시각은, 작성 중인 논문의 최종 저장 시각일 수 있다.
한편 상기 논문의 작성 요청은 사용자가 논문 작성에 사용하는 사용자 단말기(20)를 통해 서비스 서버(11)에 요청되므로, 사용자 단말기(20)와 서비스 서버(11)는 상기 논문의 최종 수정 시각의 정보를 공유할 수 있다. 그리고 서비스 서버(11)는 논문의 최종 수정 시각이 갱신될 때마다 지정된 뷰어 단말기(21)에 상기 갱신된 논문의 최종 수정 시각에 대한 정보를 전송할 수 있다. 따라서 사용자 단말기(20)와 뷰어 단말기(21)가 서로 별개의 기기인 경우, 서비스 서버(11)를 통해 상기 논문의 최종 수정 시각의 정보가 뷰어 단말기(21)에 공유될 수 있다.
한편 복호화부(1030)는 서비스 서버(11)로부터 제공된 논문의 최종 수정 시각의 정보와, 뷰어 단말기(21)에 기 저장된 사용자의 식별 정보 및 뷰어 단말기(21)의 식별 정보를 조합하여 상기 복호화 키를 생성할 수 있다.
따라서 사용자 단말기(20)와 뷰어 단말기(21)가 동일한 기기인 경우, 서비스 서버(11)로부터 복호화 키를 제공받지 않고서도, 상기 암호화된 논문의 미리보기 데이터가 복호화될 수 있다. 또한 사용자 단말기(20)와 뷰어 단말기(21)가 동일한 기기가 아니라고 할지라도 서비스 서버(11)는 논문 최종 수정 시각의 정보, 즉 복호화 키의 일부만을 뷰어 단말기(21)에 전송하므로, 상기 논문 최종 수정 시각의 정보가 유출되는 경우에도 전체 복호화키가 유출되지 않도록 한다. 따라서 논문 미리보기 데이터의 보안성을 보다 높일 수 있다.
한편 서비스 서버(11)는 사용자가 논문의 미리보기 데이터에 대응하는 이미지 데이터를 문자열로 인코딩하고 인코딩된 데이터를 암호화하여 전송한다. 따라서 복호화부(1030)에서 복호화된 데이터는 상기 문자열로 인코딩된 데이터일 수 있다. 그리고 뷰어 단말기(21)는 상기 문자열로 인코딩된 데이터를 이미지 데이터에 대응하는 이진 데이터로 디코딩하는 디코딩부(1040)를 구비할 수 있다.
일 예로 상기 디코딩부(1040)는 base64 인코딩된 문자열 데이터를 이진 데이터로 디코딩할 수 있다. 이 경우 디코딩부(1040)는 상기 문자열 데이터에 포함된 각 문자를, 각 문자에 대응하는 6개의 비트로 변환할 수 있다. 따라서 상기 문자열 데이터가 이진 데이터로 변환될 수 있으며, 상기 이진 데이터는 사용자가 구매한 부분별 도서 데이터에 대응하는 이미지 데이터일 수 있다.
그러면 뷰어 단말기(21)는 상기 이미지 데이터를 디스플레이부(1060)에 표시할 수 있다. 그런데 이미지 데이터를 파일 형태로 디스플레이부(1060) 상에 출력하는 경우 상기 이미지 데이터 자체에 대한 무단 복제가 발생할 수 있다. 이에 따라 본 발명의 실시 예에 따른 뷰어 단말기(21)는 상기 이미지 데이터에 대응되는 이미지를 디스플레이부(1060)의 일 영역에 드로잉하는 형태로 표시할 수 있다.
상기 드로잉부(1050)는 상기 이진 데이터에 대응하는 이미지를 디스플레이부(1060) 상의 일 영역에 그릴 수 있다. 즉, 드로잉부(1050)에 의하여 이미지 파일이 출력되는 것이 아니라, 이진 데이터에 대응하는 이미지가 디스플레이부(1060)의 일 영역에 다시 그려지는 형태로 상기 이진 데이터에 대응하는 이미지가 표시될 수 있다. 이러한 드로잉부(1050)는 CANVAS API 등으로 구현될 수 있다.
그리고 디스플레이부(1060)는 뷰어 단말기(21)에서 처리되는 다양한 정보를 표시(출력)할 수 있다. 예를 들어, 디스플레이부(1060)는 뷰어 단말기(21)에서 구동되는 응용 프로그램의 실행화면 정보, 또는 이러한 실행화면 정보에 따른 UI(User Interface), GUI(Graphic User Interface) 정보를 표시할 수 있다.
한편 메모리(1070)는 뷰어 단말기(21)의 다양한 기능을 지원하는 데이터 및 명령어들을 저장한다. 메모리(1070)는 뷰어 단말기(21)에서 구동되는 다수의 응용 프로그램(application program 또는 애플리케이션(application)), 서비스 서버(10)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다.
메모리(1070)는 복호화부(1030) 및 디코딩부(1040)에서, 각각 인코딩 및 암호화를 수행하기 위한 알고리즘과 명령어들 그리고 데이터들을 저장할 수 있다. 일 예로 서버 메모리(1070)는 base64 인코딩 방식에 따라 인코딩된 문자열 데이터를 이진 데이터로 디코딩하기 위한 명령어와 데이터들 및, CtyptoJS 에서 선언된 암호화 알고리즘에 따라 복호화를 수행하기 위한 명령어와 데이터들을 저장할 수 있다.
한편 메모리(1070)는 서비스 서버(10)에서 전송된 암호화된 논문 미리보기 데이터를 저장할 수 있다. 이하 상기 암호화된 논문 미리보기 데이터가 저장되는 메모리(1070) 상의 일 영역을 논문 데이터 저장부(1071)라고 하기로 한다.
또한 메모리(1070)는 서비스 서버(11)에 계정이 등록된 사용자의 식별 정보 및 뷰어 단말기(21)의 식별 정보를 저장할 수 있다. 이 경우 상기 사용자의 식별 정보와 상기 뷰어 단말기(21)의 식별 정보는 상기 암호화된 데이터를 복호화하는 복호화 키로서 사용될 수 있다. 또한 상기 사용자의 식별 정보와 상기 뷰어 단말기(21)의 식별 정보는 드로잉 키로서 사용될 수 있다. 이하 상기 사용자의 식별 정보와 상기 뷰어 단말기(21)의 식별 정보가 저장되는 메모리(1070) 상의 일 영역을 인증 정보 저장부(1072)라고 하기로 한다.
한편 뷰어 단말기(21)가 논문 작성을 위한 저작 데이터를 서비스 서버(11)로 전송하는 사용자 단말기(20)인 경우, 작성 중인 논문의 저장이 이루어질 때마다 상기 논문의 저장이 이루어진 시각이 상기 논문의 최종 수정 시각으로서 서비스 서버(11)와 뷰어 단말기(21)에 저장될 수 있다. 따라서 작성 중인 논문의 저장이 이루어질 때마다 상기 서비스 서버(11)와 뷰어 단말기(21)에 저장된 논문 최종 수정 시각이 갱신될 수 있다. 이 경우 상기 논문 최종 수정 시각의 정보가 메모리(1070)에 저장될 수 있다. 이하 상기 논문 최종 수정 시각의 정보가 저장되는 메모리(1070) 상의 일 영역을 저장 시각 저장부(1073)라고 하기로 한다.
그런데 상기 뷰어 단말기(21)는, 상기 사용자 단말기(20)와 별개로, 사용자에 의해 임의로 지정되는 단말기일 수 있다. 그러면 서비스 서버(11)는, 상기 뷰어 단말기(21)와 사용자에 의해 지정된 사용자 단말기(20)의 식별정보를 비교하여 상기 뷰어 단말기(21)와 사용자 단말기(20)가 동일한지 여부를 판별할 수 있다. 그리고 판별 결과 상기 뷰어 단말기(21)와 사용자 단말기(20)가 동일하지 않은 경우라면, 상기 논문 최종 수정 시각이 갱신될 때마다 뷰어 단말기(21)에 갱신된 논문 최종 수정 시각의 정보를 전송할 수 있다. 그러면 뷰어 단말기(21)는 상기 저장 시각 저장부(1073)에, 상기 서비스 서버(11)로부터 수신된 논문 최종 수정 시각의 정보를 저장할 수 있다.
그리고 제어부(1000)는 연결된 각 구성 요소를 제어하며, 뷰어 단말기(21)의 전반적인 동작을 제어할 수 있다.
먼저 제어부(1000)는 서비스 서버(10)에서 전송되는 암호화된 논문 미리보기 데이터를 저장할 수 있다. 그리고 복호화부(1030)를 제어하여 저장된 암호화된 논문 미리보기 데이터를 복호화할 수 있다. 그리고 디코딩부(1040)를 제어하여 복호화된 도서 데이터를, 이미지 데이터에 대응하는 이진 데이터로 디코딩할 수 있다.
그리고 제어부(1000)는 디스플레이부(1060)를 제어하여 상기 암호화된 논문 미리보기 데이터가 표시될 디스플레이부(1060) 상의 일 영역을 설정할 수 있다. 그리고 상기 설정된 디스플레이부(1060) 상의 일 영역에, 상기 이진 데이터에 대응하는 이미지를 그리도록 상기 드로잉부(1050)를 제어할 수 있다. 따라서 상기 디스플레이부(250) 상의 일 영역에 암호화된 논문 미리보기 데이터에 대응하는 이미지가 그려질 수 있다.
한편, 상술한 설명에 따르면, 본 발명의 실시 예에 따른 서비스 서버(11)는 논문 미리보기 데이터의 각 페이지에 대응하는 이미지의 이진 데이터를 문자열 데이터로 인코딩한 이후에, 인코딩된 데이터의 지정된 위치에 드로잉 키로서, 사용자의 식별 정보, 뷰어 단말기(21)의 식별 정보 및, 논문 최종 수정 시각 정보 중 적어도 하나를 삽입할 수 있음을 설명한 바 있다. 따라서 서비스 서버(11)에서 제공되는 암호화된 논문 미리보기 데이터는, 상기 드로잉 키가 삽입된 문자열 데이터를 암호화한 데이터일 수 있다.
이러한 경우 뷰어 단말기(21)가, 상기 드로잉 키가 삽입된 상태의 문자열을 이진 데이터로 디코딩하면, 이미지에 해당하지 않는 이진 데이터들이 삽입되고 이로 인한 이진 데이터의 쉬프트가 발생하게 된다. 따라서 드로잉부(1050)에서 올바른 이미지가 그려지지 않게 된다.
이에 따라 제어부(1000)는 복호화부(1030)에서 암호화된 논문 미리보기 데이터의 복호가 완료되면, 복호된 데이터, 즉 드로잉 키가 삽입된 문자열 데이터의 미리 지정된 위치, 즉 서비스 서버(11)와 약정된 드로잉 키 삽입 위치(예 : 맨 처음 또는 기 설정된 개수의 문자 다음)로부터 지정된 개수의 문자들을 추출할 수 있다. 이 경우 상기 지정된 개수의 문자들은 상기 드로잉 키를 구성하는 문자들일 수 있다. 그리고 상기 드로잉 키는 사용자의 식별 정보, 뷰어 단말기(21)의 식별 정보, 그리고 논문 최종 수정 시각의 정보 중 어느 하나로서, 상기 지정된 문자들의 개수는 상기 사용자의 식별 정보, 뷰어 단말기(21)의 식별 정보, 그리고 논문 최종 수정 시각의 정보를 구성하는 문자들의 개수일 수 있다.
그리고 제어부(1000)는 추출된 문자들을 사용자의 식별 정보, 뷰어 단말기(21)의 식별 정보, 그리고 논문 최종 수정 시각의 정보 중 어느 하나와 비교하여 일치하는지 여부를 판별할 수 있다. 그리고 판별 결과에 따라 일치하는 문자들을 복호화된 상기 문자열 데이터에서 제거할 수 있다. 따라서 논문의 각 페이지에 대응하는 이미지 데이터를 문자열로 인코딩한 데이터로, 상기 문자열 데이터가 복원될 수 있다. 그러면 제어부(1000)는 복원된 문자열 데이터를 디코딩 및, 디코딩된 이진 데이터에 근거하여 이미지가 그려지도록 드로잉부(1050)를 제어할 수 있다.
이와 같이 제어부(1000)는 복호화된 문자열 데이터로부터, 기 설정된 드로잉 키 삽입 위치에 따른 기 설정된 드로잉 키의 개수에 대응하는 문자들을 제거할 수 있다. 따라서 드로잉 키가 삽입되지 않은 위조된 논문 데이터가 문자열 데이터로 복호화되는 경우, 상기 문자열 데이터로부터 기 설정된 드로잉 키 삽입 위치에 따른 기 설정된 드로잉 키의 개수에 대응하는 문자들이 제거될 수 있다. 따라서 문자들의 제거에 따른 쉬프트가 발생하고, 상기 쉬프트가 발생한 이진 데이터에 대응하는 이미지가 드로잉부(1050)에서 그려지게 되므로, 이미지가 그려지지 않거나 또는 이미지가 올바르게 그려지지 않을 수 있다. 따라서 위조된 논문 데이터가, 뷰어 단말기(21)에서 표시되는 것을 방지할 수 있다.
또는 제어부(1000)는 상기 드로잉 키의 일치 여부를 판별한 결과, 드로잉 키의 위치로부터 검출된 지정된 개수(드로잉 키의 개수)의 문자들이, 사용자의 식별 정보, 뷰어 단말기(21)의 식별 정보, 그리고 논문 최종 수정 시각의 정보 중 어느 하나에 일치하지 않는 경우라면, 상기 드로잉 키를 제거하지 않을 수 있다. 따라서 이미지에 해당하지 않는 이진 데이터들이 삽입 및, 드로잉 키에 대응하는 문자들의 길이만큼 쉬프트가 발생한 이진 데이터에 대응하는 이미지가 드로잉부(1050)에서 그려지게 되므로, 이미지가 그려지지 않거나 또는 이미지가 올바르게 그려지지 않을 수 있다.
이하에서는 이와 같이 구성된 서비스 서버(11) 및 뷰어 단말기(21)에서 구현될 수 있는 제어 방법과 관련된 실시 예들에 대해 첨부된 도면을 참조하여 살펴보겠다. 본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다.
먼저 도 11은 상기 본 발명의 실시 예에 따른 논문 작성 시스템에서, 상기 논문의 암호화된 미리보기 서비스를 제공하는 서비스 서버와 사용자 단말기의 동작 과정을 도시한 흐름도이다. 이하의 설명에서는 서비스 서버(11)가 논문 최종 수정 시각의 정보를 뷰어 단말기(21)와 사전에 공유하여, 상기 서비스 서버(11)와 뷰어 단말기(21)가 동일한 논문 최종 수정 시각의 정보를 가지는 상태임을 가정하기로 한다.
도 11을 참조하여 살펴보면, 본 발명의 실시 예에 따른 뷰어 단말기(21)는 사용자의 요청에 따라 작성 중인 논문에 대한 미리보기 서비스를 서비스 서버(11)에 요청할 수 있다(S1100).
그러면 서비스 서버(11)는 뷰어 단말기(21)의 요청에 따라 미리보기가 요청된 논문의 각 페이지를 스캔하여, 상기 요청된 논문의 각 페이지에 대응하는 이미지 데이터들을 생성할 수 있다(S1102).
그리고 서비스 서버(11)는 생성된 각 페이지 별 이미지 데이터를 각각의 문자열 데이터로 인코딩할 수 있다(S1104). 이 경우 서비스 서버(11)는 기 설정된 인코딩 알고리즘, 예를 들어 base64 인코딩 알고리즘으로 각 이미지 데이터를 문자열 데이터로 인코딩할 수 있다.
상기 S1104 단계에서 이미지 데이터들 각각에 대한 문자열 데이터 인코딩이 완료되면, 서비스 서버(11)는 요청된 논문의 작성자, 즉 사용자의 식별 정보와, 뷰어 단말기(21)의 식별 정보, 그리고 상기 논문의 최종 수정 시각의 정보 중 적어도 하나에 근거하여 암호화 키를 생성할 수 있다(S1106). 그리고 생성된 암호화 키를 이용하여 각 이미지 데이터에 대응하는 문자열 데이터들을 암호화할 수 있다(S1108).
상기 S1108 단계의 암호화가 완료되면, 서비스 서버(11)는 암호화된 문자열 데이터를 암호화된 논문 미리보기 데이터로서 뷰어 단말기(21)에 전송할 수 있다(S1110). 그러면 뷰어 단말기(21)는 상기 암호화된 논문 미리보기 데이터를 저장할 수 있다.
그러면 뷰어 단말기(21)는 메모리(1070)의 인증 정보 저장부(1072)로부터 사용자의 식별 정보 및 뷰어 단말기(21)의 식별 정보를 독출할 수 있다. 또한 저장 시각 저장부(1073)로부터 상기 암호화된 논문 미리보기 데이터에 대응하는 논문의 최종 수정 시각의 정보를 독출할 수 있다. 그리고 독출된 사용자의 식별 정보와 뷰어 단말기(21)의 식별 정보, 그리고 상기 논문의 최종 수정 시각의 정보를 조합하여 복호화 키를 생성할 수 있다(S1112).
그리고 뷰어 단말기(21)는 생성된 복호화 키에 근거하여, 암호화된 논문 미리보기 데이터를 복호화할 수 있다(S1114). 이 경우 상기 복호된 부분별 도서 데이터는 기 설정된 인코딩 알고리즘(예 : base64)에 따라 인코딩된 문자열 데이터일 수 있다.
그리고 뷰어 단말기(21)는 상기 S1114 단계에서 복호화된 데이터, 즉 문자열 데이터에 대응하는 이미지를 디스플레이부(1060) 상의 기 설정된 영역에 각 페이지 별로 드로잉할 수 있다(S1116). 이를 위해 뷰어 단말기(21)는 문자열로 인코딩된 데이터를 다시 이진 데이터로 디코딩할 수 있으며, 디코딩된 이진 데이터에 대응하는 이미지를, 기 설정된 드로잉 방식(예 : CANVAS API)으로 디스플레이부(250) 상에 그리는 방식으로 표시할 수 있다.
한편 상술한 설명에 따르면, 본 발명의 실시 예에 따른 서비스 서버(11)는 상기 암호화 및 복호화 과정 외에도, 사용자의 식별 정보나 뷰어 단말기(21)의 식별 정보, 그리고 논문 최종 수정 시각의 정보 중 적어도 하나를 드로잉 키로 삽입하여, 지정된 뷰어 단말기(21)가 아닌 경우 또는 위조된 논문 미리보기 데이터에 이미지의 드로잉이 제한되도록 할 수 있다.
도 12 및 도 13은 이러한 서비스 서버(11)의 동작 과정 및 뷰어 단말기(21)의 동작 과정을 설명하기 위한 것이다.
도 12는 상기 본 발명의 실시 예에 따라 암호화된 논문 미리보기 서비스를 제공하는 서비스 서버(11)가, 드로잉 키가 삽입된 인코딩 데이터를 암호화하는 동작 과정을 도시한 흐름도이다.
도 12를 참조하여 살펴보면, 상기 도 11의 S1108 단계에서 인코딩 데이터를 암호화하는 과정이 시작되면, 서비스 서버(11)는 먼저 사용자 식별 정보와 뷰어 단말기(21)의 식별정보, 그리고 논문 최종 수정 시각의 정보 중 어느 하나를 드로잉 키로 설정할 수 있다. 그리고 설정된 드로잉 키를, 이진 데이터(논문의 각 페이지에 대응하는 이미지 데이터)를 인코딩한 문자열 데이터에 삽입할 수 있다(S1200).
여기서 서비스 서버(11)는 상기 드로잉 키를 사전에 약속된 위치에 삽입할 수 있다. 하기 [예]는, 문자열 데이터의 5번째 문자 위치에 14자리로 생성된 논문 최종 수정 시각의 정보가 드로잉 키로 삽입되는 예를 도시한 것이다.
[드로잉 키가 삽입되는 예]
aaaaKKbtmsTTasdf1243omksdf09... : 인코딩된 문자열 데이터
20221010101930 : 논문 최종 수정 시각(2022년10월10일 오후10시19분30초)
aaaaK20221010101930KbtmsTTasdf1243omksdf09... : 논문 최종 수정 시각이 드로잉 키의 지정된 위치(5번째 문자 뒤)로 삽입
한편 상기 드로잉 키는 상기 인코딩된 문자열 데이터의 처음 또는 처음으로부터 일정 개수의 문자 다음에 삽입될 수 있다. 보다 바람직하게 드로잉 키는 문자열 데이터의 앞 부분에 삽입될 수 있다. 이는 드로잉 키가 첫 문자로부터 가까운 부분에 삽입될수록 더 많은 문자열 데이터가 쉬프트될 수 있기 때문이다.
그리고 서비스 서버(11)는 상기 S1106 단계에서 생성된 암호화 키를 이용하여 상기 드로잉 키가 삽입된 문자열 데이터를 암호화할 수 있다(S1202). 그리고 상기 도 10의 S1110 단계로 진행하여 암호화된 문자열 데이터를 미리보기가 요청된 논문의 암호화된 데이터로서 뷰어 단말기(21)에 전송할 수 있다. 따라서 드로잉 키가 삽입된 문자열 데이터를 암호화한 데이터가 뷰어 단말기(21)에 전송될 수 있다.
도 13은 본 발명의 실시 예에 따른 뷰어 단말기(21)가, 본 발명의 실시 예에 따라 암호화된 논문 미리보기 서비스를 제공하는 서비스 서버(11)로부터 수신된, 드로잉 키가 삽입된 인코딩 데이터를 디코딩하는 동작 과정을 도시한 흐름도이다.
도 13을 참조하여 살펴보면, 뷰어 단말기(21)가, 복호화된 인코딩 데이터에 대응하는 이미지를 디스플레이부(1060) 상에 드로잉하는 상기 도 11의 S1116 단계가 시작되는 경우, 먼저 상기 복호화된 인코딩 데이터로부터 상기 드로잉 키를 추출할 수 있다(S1300).
이 경우 뷰어 단말기(21)는 상기 서비스 서버(11)와 미리 약속된 위치(예 : 5번째 문자 위치) 이후로부터, 기 설정된 자릿수 만큼의 문자, 즉 사용자 식별 정보나 뷰어 단말기(21)의 식별 정보, 또는 논문 최종 수정 시각의 정보를 구성하는 문자들의 개수 만큼의 문자들을, 상기 복호화된 인코딩 데이터, 즉 문자열 데이터로부터 추출할 수 있다. 이 경우 상기 드로잉 키가 삽입된 상태라면, 삽입된 드로잉 키, 즉 사용자 식별 정보나 뷰어 단말기(21)의 식별 정보, 또는 논문 최종 수정 시각의 정보 중 어느 하나에 대응하는 문자열이 상기 문자열 데이터로부터 추출될 수 있다.
그러면 뷰어 단말기(21)는 상기 S1300 단계에서 추출된 문자열이, 사용자 식별 정보나 뷰어 단말기(21)의 식별 정보 또는 논문 최종 수정 시각의 정보 중 어느 하나에 일치하는지 여부를 체크할 수 있다(S1302). 그리고 상기 S1302 단계의 체크 결과, 상기 S1300 단계에서 추출된 문자열이, 사용자 식별 정보나 뷰어 단말기(21)의 식별 정보, 또는 논문 최종 수정 시각의 정보 중 어느 하나에 일치하는 경우라면, 뷰어 단말기(21)는 상기 드로잉 키, 즉 문자열 데이터로부터 추출된 문자열을 삭제할 수 있다(S1304).
[드로잉 키가 제거되는 예]
aaaaK20221010101930KbtmsTTasdf1243omksdf09... : 드로잉 키가 삽입된 문자열 데이터
kkk0111-arena2 : 사용자의 식별 정보
dlfk0100fhd023 : 뷰어 디바이스 식별 정보
20221010101930 : 논문 최종 수정 시각(2022년10월10일 오후10시19분30초)
aaaaKKbtmsTTasdf1243omksdf09... : 일치되는 논문 최종 수정 시각 정보를 제거한 문자열 데이터
따라서 복호화된 문자열 데이터로부터, 상기 S1304 단계를 통해 드로잉 키로 삽입된 문자열이 제거되면, 이미지 데이터에 대응하는 이진 데이터를 인코딩한 문자열 데이터로 복원될 수 있다. 그러면 뷰어 단말기(21)는 상기 드로잉 키가 제거된 인코딩 데이터에 대한 디코딩을 수행하여, 문자열 데이터를 이미지 데이터에 대응하는 이진 데이터로 변환할 수 있다(S1306). 그리고 디코딩된 이진 데이터에 따른 이미지를, 뷰어 단말기(21)의 디스플레이부(1060) 상에 드로잉할 수 있다(S1308). 따라서 미리보기가 요청된 논문의 각 페이지에 대응하는 이미지들이 뷰어 단말기(21)의 디스플레이부(1060) 상에 표시될 수 있다.
한편 상기 S1302 단계의 체크 결과, 상기 S1300 단계에서 추출된 문자열이, 사용자 식별 정보나 뷰어 단말기(21)의 식별정보 또는 논문 최종 수정 시각의 정보 중 어느 하나에 일치하지 않는 경우라면, 뷰어 단말기(21)는 이미지를 드로잉할 수 없음을 나타내는 오류 정보를 출력할 수 있다. 그리고 상기 드로잉을 종료할 수 있다(S1310). 이는 삽입된 드로잉 키가 제거되지 않는 경우 삽입된 드로잉 키에 대응하는 노이즈 데이터들 및 상기 드로잉 키에 의해 발생한 데이터 쉬프트에 의하여 올바른 이미지의 드로잉이 이루어질 수 없기 때문이다.
한편 상기 S1310 단계에서 출력되는 오류 정보는, 상기 S1300 단계에서 추출된 문자열이, 사용자 식별 정보나 뷰어 단말기(21)의 식별 정보 또는 논문 최종 수정 시각의 정보 중 어느 하나에 일치하지 않음에 따라 드로잉 키가 삽입된 상태에서 드로잉이 시도되는 경우에 출력되는 오류 메시지일 수도 있다. 즉, 상술한 바와 같이 드로잉 키가 문자열 데이터의 처음 또는 앞쪽 부분에 삽입된 상태인 경우, 이진 데이터의 헤더 부분에 대응하는 위치에 상기 드로잉 키가 삽입될 수 있다. 이 경우 드로잉 키를 포함하는 상태로 이진 데이터로 인코딩되는 경우, 뷰어 단말기(21)의 드로잉부(1050)는 이진 데이터를 인식하기 어려워질 수 있으며, 이에 따라 드로잉이 불가능하다는 오류 메시지를 출력할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (15)

  1. 논문 작성을 위한 문자들과 이미지들을 포함하는 저작 데이터를 입력하는 기 설정된 단말기 및, 상기 논문 작성을 위한 참고문헌들을 포함하는 데이터베이스와 통신을 연결하는 통신부;
    상기 데이터베이스로부터 검색된 참고문헌의 일부를 스캔하고, 스캔된 상기 참고문헌의 일부에 대응하는 문자 및 이미지를 인식하여 발췌 데이터를 생성 및, 상기 참고문헌의 일부에 대응하는 상기 참고문헌의 고유 정보를 추출하는 스캔부;
    상기 저작 데이터 또는 상기 발췌 데이터에 의해 상기 논문에 게재되는 문자들과 이미지들을 기 설정된 단위에 따른 블록으로 블록화하고, 각 블록에 매칭되며, 매칭되는 블록의 식별정보를 포함하는 블록 정보를 생성하는 블록화부; 및,
    상기 단말기로부터 수신된 검색 요청에 따라 상기 참고문헌에 대한 검색을 수행하고, 상기 저작 데이터 또는 상기 발췌 데이터에 따른 문자 및 이미지를 게재하여 상기 논문을 작성하며,
    상기 논문에 게재되는 문자들 또는 이미지로 이루어지는 블록이, 상기 발췌 데이터에 의해 생성되는 발췌 블록인 경우, 상기 참고문헌의 고유 정보를 더 포함하는 블록 정보를 생성 및, 상기 참고문헌의 고유 정보를 더 포함하는 블록 정보가 상기 발췌 블록에 매칭되도록 상기 블록화부를 제어하는 제어부를 포함하고,
    상기 제어부는,
    상기 논문에 게재되는 문자들 또는 이미지로 이루어지는 블록이, 상기 참고문헌으로부터 인식된 문자들 및 이미지들을 포함하지 않는 제네시스(genesis) 블록인 경우, 참고문헌의 고유 정보를 포함하지 않는 블록 정보를 상기 제네시스 블록에 매칭하며,
    상기 논문은,
    적어도 하나의 상기 제네시스 블록과 적어도 하나의 상기 발췌 블록으로 이루어지는 것을 특징으로 하는 서비스 서버.
  2. 제1항에 있어서, 상기 기 설정된 단위는,
    문장, 단락, 페이지, 및 챕터 중 어느 하나임을 특징으로 하는 서비스 서버.
  3. 삭제
  4. 제1항에 있어서,
    상기 참고문헌의 고유 정보는,
    상기 참고문헌의 일부에 대응하는 위치를 포함하는 위치 정보이며,
    상기 제어부는,
    상기 참고문헌의 고유 정보를 통해 상기 검색된 참고문헌에 대한 링크를 제공하는 것을 특징으로 하는 서비스 서버.
  5. 제4항에 있어서,
    상기 참고문헌의 고유 정보는,
    상기 참고문헌의 일부가, 다른 참고문헌으로부터 발췌된 경우, 상기 다른 참고문헌의 고유 정보를 더 포함하며,
    상기 제어부는,
    상기 검색된 참고문헌에 대한 링크 및 상기 다른 참고문헌의 고유 정보에 따른 링크를 더 제공하는 것을 특징으로 하는 서비스 서버.
  6. 제5항에 있어서, 상기 제어부는,
    상기 단말기의 요청에 따라, 상기 참고문헌의 일부를 최초로 작성한 최초 작성자의 문헌으로부터 상기 논문에 게재되기까지, 상기 참고문헌의 일부가 발췌된 이력을 트래킹한 이력 정보를 제공하는 것을 특징으로 하는 서비스 서버.
  7. 제1항에 있어서, 상기 제어부는,
    상기 발췌 블록을 구성하는 적어도 하나의 문자 또는 이미지가 변경되거나 또는 상기 발췌 블록 내에 적어도 하나의 문자 또는 이미지가 추가되는 경우, 상기 발췌 블록을, 상기 변경 또는 추가된 적어도 하나의 문자 또는 이미지를 중심으로, 동일한 참고문헌의 고유 정보를 포함하는 블록 정보에 매칭되는 서로 다른 발췌 블록들로 분할하고,
    상기 변경 또는 추가된 문자 또는 이미지를, 상기 참고문헌의 고유 정보를 포함하지 않는 블록 정보에 매칭되는 제네시스 블록으로 블록화하도록 상기 블록화부를 제어하는 것을 특징으로 하는 서비스 서버.
  8. 제1항에 있어서, 상기 제어부는,
    상기 발췌 블록이 이미지로 구성되고, 상기 이미지에 대한 편집이 이루어지면, 상기 편집이 이루어지는 과정을 추적하여 상기 이미지 중 편집되지 않은 부분과 편집된 부분을 구분하고,
    상기 이미지 중 편집되지 않은 부분과 편집된 부분에, 상기 참고문헌의 고유 정보를 더 포함하는 발췌 블록의 블록 정보 및, 상기 참고문헌의 고유 정보를 포함하지 않는 제네시스 블록의 블록 정보가 각각 매칭되도록 상기 블록화부를 제어하는 것을 특징으로 하는 서비스 서버.
  9. 제1항에 있어서, 상기 제어부는,
    상기 단말기의 요청에 따라 상기 작성 중인 논문을, 상기 단말기의 단말기 식별정보, 상기 단말기 사용자의 사용자 식별정보 및 상기 논문의 최종 수정 시각 정보의 조합에 따른 암호화 키로 암호화하여 상기 단말기에 전송하는 것을 특징으로 하는 서비스 서버.
  10. 제9항에 있어서, 상기 서비스 서버는,
    상기 작성 중인 논문을 각 페이지 별로 스캔하여 각 페이지에 대응하는 이미지 데이터를 생성하는 이미지화부; 및
    상기 이미지 데이터를 문자열 데이터로 인코딩하는 변환부를 더 포함하며,
    상기 제어부는,
    상기 이미지 데이터가 상기 문자열 데이터로 인코딩되면, 상기 사용자 식별정보와 상기 단말기 식별정보 및, 상기 논문의 최종 수정 시각 정보 중 어느 하나를 상기 문자열 데이터의 기 설정된 위치에 드로잉 키로서 삽입하고, 상기 드로잉 키가 삽입된 문자열 데이터를, 상기 암호화 키로 암호화하는 것을 특징으로 하는 서비스 서버.
  11. 제10항에 있어서, 상기 제어부는,
    상기 사용자 식별정보와 상기 단말기 식별정보 및 상기 논문의 최종 수정 시각의 정보 중 어느 하나를 임의로 선택하여 상기 드로잉 키로 삽입하며,
    상기 사용자 식별정보와 상기 단말기 식별정보 및 상기 논문의 최종 수정 시각의 정보는,
    서로 동일한 개수의 문자로 형성되는 것을 특징으로 하는 서비스 서버.
  12. 암호화된 논문의 미리보기 데이터를 상기 논문의 작성 기능을 제공하는 서비스 서버로부터 수신하는 단말기에 있어서,
    디스플레이부;
    상기 서비스 서버로부터, 상기 암호화된 논문의 미리보기 데이터를 수신하는 통신부;
    상기 암호화된 논문의 미리보기 데이터를 문자열 데이터로 복호화하는 복호화부;
    상기 문자열 데이터를 상기 논문의 미리보기 데이터에 대응하는 이미지 데이터의 이진 데이터로 디코딩하는 디코딩(decoding)부;
    상기 디코딩된 이진 데이터에 대응하는 이미지를 상기 디스플레이부 상의 기 설정된 영역에 드로잉(drawing)하는 드로잉부; 및,
    상기 단말기에 기 저장된 사용자 식별정보와 상기 단말기의 단말기 식별정보 및, 상기 논문의 최종 수정 시각의 조합으로 복호화 키를 생성하고, 생성된 복호화 키를 이용하여 상기 암호화된 논문의 미리보기 데이터를 복호화하도록 상기 복호화부를 제어하는 제어부를 포함하는 것을 특징으로 하는 단말기.
  13. 제12항에 있어서, 상기 논문의 최종 수정 시각은,
    상기 서비스 서버로부터 제공되며, 상기 서비스 서버를 통해 상기 논문을 작성하는 작성자 단말기가 상기 작성 중인 논문의 저장을 요청할 때마다 갱신되는 것을 특징으로 하는 단말기.
  14. 제12항에 있어서, 상기 제어부는,
    상기 암호화된 논문 미리보기 데이터가 문자열 데이터로 복호화되면, 복호화된 문자열 데이터의 문자들 중, 기 설정된 위치로부터 기 설정된 개수의 문자들을 드로잉 키로 추출하고,
    추출된 드로잉 키가, 상기 단말기에 기 저장된 드로잉 키에 일치하는 경우 상기 문자열 데이터로부터 상기 추출된 문자들을 제거하는 것을 특징으로 하는 단말기.
  15. 제14항에 있어서,
    상기 드로잉 키는,
    상기 사용자 식별정보와 상기 단말기 식별정보 및 상기 논문의 최종 수정 시각 중 어느 하나이며,
    상기 사용자 식별정보와 상기 단말기 식별정보 및 상기 논문의 최종 수정 시각은,
    서로 동일한 개수의 문자로 형성되는 것을 특징으로 하는 단말기.
KR1020220147115A 2022-11-07 2022-11-07 발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기 KR102531477B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220147115A KR102531477B1 (ko) 2022-11-07 2022-11-07 발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220147115A KR102531477B1 (ko) 2022-11-07 2022-11-07 발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기

Publications (1)

Publication Number Publication Date
KR102531477B1 true KR102531477B1 (ko) 2023-05-12

Family

ID=86385422

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220147115A KR102531477B1 (ko) 2022-11-07 2022-11-07 발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기

Country Status (1)

Country Link
KR (1) KR102531477B1 (ko)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100319756B1 (ko) * 2000-01-21 2002-01-09 오길록 논문 문서영상 구조 분석 방법
KR20080071213A (ko) * 2006-12-20 2008-08-04 한국과학기술정보연구원 시맨틱 웹 기반 연구정보 서비스 시스템 및 그 방법
KR20090069300A (ko) * 2006-09-15 2009-06-30 엑스비블리오 비.브이. 페이퍼 및 전자 문서내의 주석의 캡처 및 디스플레이
KR20100037325A (ko) * 2008-10-01 2010-04-09 한국과학기술정보연구원 패턴 기반 참고문헌 자동 구축 시스템 및 방법과 이를 위한기록매체
KR101243057B1 (ko) * 2012-11-23 2013-03-26 한국과학기술정보연구원 학술논문 xml 풀텍스트 생성을 위한 자동화 입력 시스템 및 방법
KR20160064306A (ko) * 2014-11-27 2016-06-08 손죠 주식회사 참고문헌 자동 구축 시스템
KR102049061B1 (ko) * 2018-06-05 2020-01-08 숭실대학교산학협력단 이미지 공유저작물의 rmi 통합 관리 방법, 이를 수행하기 위한 기록매체 및 장치
KR102490756B1 (ko) * 2022-08-08 2023-01-27 미러 주식회사 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100319756B1 (ko) * 2000-01-21 2002-01-09 오길록 논문 문서영상 구조 분석 방법
KR20090069300A (ko) * 2006-09-15 2009-06-30 엑스비블리오 비.브이. 페이퍼 및 전자 문서내의 주석의 캡처 및 디스플레이
KR20080071213A (ko) * 2006-12-20 2008-08-04 한국과학기술정보연구원 시맨틱 웹 기반 연구정보 서비스 시스템 및 그 방법
KR20100037325A (ko) * 2008-10-01 2010-04-09 한국과학기술정보연구원 패턴 기반 참고문헌 자동 구축 시스템 및 방법과 이를 위한기록매체
KR101243057B1 (ko) * 2012-11-23 2013-03-26 한국과학기술정보연구원 학술논문 xml 풀텍스트 생성을 위한 자동화 입력 시스템 및 방법
KR20160064306A (ko) * 2014-11-27 2016-06-08 손죠 주식회사 참고문헌 자동 구축 시스템
KR102049061B1 (ko) * 2018-06-05 2020-01-08 숭실대학교산학협력단 이미지 공유저작물의 rmi 통합 관리 방법, 이를 수행하기 위한 기록매체 및 장치
KR102490756B1 (ko) * 2022-08-08 2023-01-27 미러 주식회사 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스

Similar Documents

Publication Publication Date Title
US5765176A (en) Performing document image management tasks using an iconic image having embedded encoded information
CN104680077B (zh) 一种加密图片的方法、查看图片的方法、系统和终端
CN107239713B (zh) 一种敏感内容数据信息防护方法和系统
CN101091184B (zh) 数据存储方法、数据记录装置和数据播放装置
CN110532811B (zh) 一种pdf签章方法及pdf签章系统
US8738928B2 (en) Apparatus and method for processing extension information in image files
Castiglione et al. New steganographic techniques for the OOXML file format
CN107203574A (zh) 数据管理和数据分析的聚合
CN101625752B (zh) 图像处理设备和图像处理方法
US7970169B2 (en) Secure stamping of multimedia document collections
CN115114598A (zh) 水印生成、水印用于文件追溯的方法及装置
CN110874456B (zh) 水印嵌入和水印提取方法、装置及数据处理方法
KR102531477B1 (ko) 발췌된 원문의 정보를 제공하는 논문 작성 시스템의 서버 및 사용자 단말기
US20140075577A1 (en) File security control system and method
KR102490756B1 (ko) 암호화된 문서 컨텐츠를 제공하는 서버와 그 문서 컨텐츠의 뷰어 디바이스
CN114357524B (zh) 电子文档的处理方法及装置
CN115048665A (zh) 基于Excel文件的信息隐藏方法、装置、设备及存储介质
JP5328078B2 (ja) 医用画像情報処理装置
KR102300444B1 (ko) 문서에 적용되어 있는 글꼴이 지원되는 글꼴인지 확인이 가능한 문서 편집 장치 및 그 동작 방법
CN111079375B (zh) 一种信息整理的方法、装置、计算机存储介质及终端
Heeger et al. An Introduction to the exFAT File System and How to Hide Data Within
Tiwari et al. A novel steganographic methodology for high capacity data hiding in executable files
KR102570329B1 (ko) 멀티북 제작 및 판매 서비스를 제공하는 서비스 플랫폼
Guo et al. Information hiding in ooxml format data based on the splitting of text elements
KR102300439B1 (ko) 문서에 적용되어 있는 글꼴의 허가 여부를 확인하기 위한 글꼴 확인 서버와 그 동작 방법

Legal Events

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