KR101833386B1 - 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템 - Google Patents

사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템 Download PDF

Info

Publication number
KR101833386B1
KR101833386B1 KR1020160054677A KR20160054677A KR101833386B1 KR 101833386 B1 KR101833386 B1 KR 101833386B1 KR 1020160054677 A KR1020160054677 A KR 1020160054677A KR 20160054677 A KR20160054677 A KR 20160054677A KR 101833386 B1 KR101833386 B1 KR 101833386B1
Authority
KR
South Korea
Prior art keywords
copies
offset information
information
client
portions
Prior art date
Application number
KR1020160054677A
Other languages
English (en)
Other versions
KR20170124807A (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 KR1020160054677A priority Critical patent/KR101833386B1/ko
Publication of KR20170124807A publication Critical patent/KR20170124807A/ko
Application granted granted Critical
Publication of KR101833386B1 publication Critical patent/KR101833386B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • H04N21/8358Generation of protective data, e.g. certificates involving watermark
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • 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]
    • G06F17/30233
    • G06F17/30876

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템이 개시된다. 본 발명의 실시예들에 따른 컨텐츠 제공 방법은, 서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있다.

Description

사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템{METHOD AND SYSTEM FOR PROVIDING DIGITAL CONTENT INSERTED IDENTIFIER OF USER}
아래의 설명은 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템에 관한 것이다.
디지털 워터마킹(watermarking)이란 디지털 컨텐츠에 지각적으로 인지되지 않는 특정마크(이하 '워터마크')를 은닉하는 기술로, 예를 들어 한국공개특허 제10-2011-0101577호는 접근 불가능 컨텐츠를 위한 오버레이채널을 이용한 동영상 워터마킹 시스템 및 그 방법에 대해 개시하고 있다.
한편, 서버-클라이언트 환경에서, 동영상과 같은 디지털 컨텐츠는 스트리밍이나 다운로드를 통해 서버에서 클라이언트로 제공될 수 있다. 이때, 스트리밍은 서버에서 디지털 컨텐츠를 복수의 조각난 파일들로 관리하고, 스트리밍 프로토콜에 따라 복수의 파일들을 클라이언트로 순차적으로 전송함에 따라 클라이언트가 전송되는 파일들을 재생하는 방식으로 디지털 컨텐츠를 클라이언트로 제공된다. 이러한 스트리밍 방식으로 디지털 컨텐츠를 제공하는 종래기술에서는 서로 다른 워터마크가 삽입된 파일들의 조합을 통해 사용자 각각에게 제공되는 디지털 컨텐츠를 사용자별로 식별할 수 있게 된다. 이때, 스트리밍 방식에서는 클라이언트가 현 시점에서 디지털 컨텐츠의 재생이 가능한 데이터만 수신할 수 있다면 별다른 문제가 없기 때문에 다운로드 속도에 대한 이슈가 크지 않다.
반면, 디지털 컨텐츠의 다운로드 방식에서는 디지털 컨텐츠에 대한 완성된 하나의 파일이 클라이언트에 저장되어야 한다. 따라서 디지털 컨텐츠의 다운로드 방식에서는 클라이언트가 전체 파일을 최대한 빠르게 다운로드 받아야 한다는 다운로드 속도에 대한 이슈가 존재한다. 예를 들어, 재생 시간이 1시간인 동영상을 고려할 수 있다. 이때 스트리밍 방식으로 동영상을 제공하는 경우에는 재생 시간인 1시간 이내에서 동영상의 재생이 끊기지 않는 수준의 속도로 파일들을 제공하면 되는 반면, 다운로드 방식에서는 재생 시간이 1시간인 동영상의 전체 파일을 가능한 한 빠르게 제공해야 한다.
서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있는 방법 및 시스템을 제공한다.
컨텐츠 제공 방법에 있어서, 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 단계; 상기 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 상기 서로 다른 코드값의 조합이 상기 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 상기 디지털 컨텐츠에 대한 가상 파일을 구성하는 단계; 및 상기 구성된 가상 파일의 위치정보와 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성하여 상기 클라이언트로 제공하는 단계를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법을 제공한다.
컨텐츠 제공 방법에 있어서, 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 서버로 상기 디지털 컨텐츠의 다운로드를 요청하는 단계; 및 상기 다운로드의 요청에 따라 상기 서버로부터 상기 복수의 복사본의 부분들이 조합된 가상 파일의 위치정보 및 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋 정보를 수신하는 단계를 포함하고, 상기 가상 파일은, 상기 서버에서 상기 서로 다른 코드값의 조합이 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 생성되는 것을 특징으로 하는 컨텐츠 제공 방법을 제공한다.
컴퓨터로 구현된 컨텐츠 제공 시스템에 있어서, 상기 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하고, 상기 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 상기 서로 다른 코드값의 조합이 상기 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 상기 디지털 컨텐츠에 대한 가상 파일을 구성하고, 상기 구성된 가상 파일의 위치정보와 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성하여 상기 클라이언트로 제공하는 것을 특징으로 하는 컨텐츠 제공 시스템을 제공한다.
서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 4는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 5는 본 발명의 일실시예에 있어서, 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 6은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
도 7은 본 발명의 일실시예에 있어서, 서로 다른 코드값이 삽입된 복수의 복사본들의 예를 도시한 도면이다.
도 8은 본 발명의 일실시예에 있어서, 사용자별로 구성된 가상 파일의 예들을 도시한 도면이다.
도 9는 본 발명의 일실시예에 있어서, 동일한 코드값의 연속된 조각들을 병합하는 예를 도시한 도면이다.
도 10은 본 발명의 일실시예에 있어서, 사용자별 옵셋 정보의 예를 도시한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 네트워크 환경의 예를 도시한 도면이다. 도 1의 네트워크 환경은 복수의 전자 기기들(110, 120, 130, 140), 복수의 서버들(150, 160) 및 네트워크(170)를 포함하는 예를 나타내고 있다. 이러한 도 1은 발명의 설명을 위한 일례로 전자 기기의 수나 서버의 수가 도 1과 같이 한정되는 것은 아니다.
복수의 전자 기기들(110, 120, 130, 140)은 컴퓨터 장치로 구현되는 고정형 단말이거나 이동형 단말일 수 있다. 복수의 전자 기기들(110, 120, 130, 140)의 예를 들면, 스마트폰(smart phone), 휴대폰, 네비게이션, 컴퓨터, 노트북, 디지털방송용 단말, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 태블릿 PC 등이 있다. 일례로 도 1에서는 전자 기기 1(110)의 예로 스마트폰의 형상을 나타내고 있으나, 본 발명의 실시예들에서는 실질적으로 무선 또는 유선 통신 방식을 이용하여 네트워크(170)를 통해 다른 전자 기기들(120, 130, 140) 및/또는 서버(150, 160)와 통신할 수 있는 다양한 기기들 중 하나를 의미할 수 있다.
통신 방식은 제한되지 않으며, 네트워크(170)가 포함할 수 있는 통신망(일례로, 이동통신망, 유선 인터넷, 무선 인터넷, 방송망)을 활용하는 통신 방식뿐만 아니라 기기들간의 근거리 무선 통신 역시 포함될 수 있다. 예를 들어, 네트워크(170)는, PAN(personal area network), LAN(local area network), CAN(campus area network), MAN(metropolitan area network), WAN(wide area network), BBN(broadband network), 인터넷 등의 네트워크 중 하나 이상의 임의의 네트워크를 포함할 수 있다. 또한, 네트워크(170)는 버스 네트워크, 스타 네트워크, 링 네트워크, 메쉬 네트워크, 스타-버스 네트워크, 트리 또는 계층적(hierarchical) 네트워크 등을 포함하는 네트워크 토폴로지 중 임의의 하나 이상을 포함할 수 있으나, 이에 제한되지 않는다.
서버(150, 160) 각각은 복수의 전자 기기들(110, 120, 130, 140)과 네트워크(170)를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다.
예를 들어, 서버(160)는 메신저 기능을 위한 어플리케이션이나 디지털 컨텐츠의 재생을 위한 어플리케이션의 설치 파일을 복수의 전자 기기들(110, 120, 130, 140)로 배포하는 파일 배포 시스템일 수 있다. 이 경우, 서버(150)는 어플리케이션이 설치된 클라이언트들에게 디지털 컨텐츠를 제공하기 위한 컨텐츠 제공 시스템일 수 있다. 예를 들어, 전자 기기 1(110)의 사용자는 전자 기기 1(110)에 설치된 어플리케이션을 이용하여 네트워크(170)를 통해 서버(150)에 접속할 수 있고, 서버(150)로 디지털 컨텐츠의 다운로드를 요청할 수 있다. 이 경우, 서버(150)는 요청된 디지털 컨텐츠를 전자 기기 1(110)로 전송할 수 있다.
도 2는 본 발명의 일실시예에 있어서, 전자 기기 및 서버의 내부 구성을 설명하기 위한 블록도이다. 도 2에서는 전자 기기에 대한 예로서 전자 기기 1(110), 그리고 서버(150)의 내부 구성을 설명한다. 다른 전자 기기들(120, 130, 140)이나 서버(160) 역시 동일한 또는 유사한 내부 구성을 가질 수 있다.
전자 기기 1(110)과 서버(150)는 메모리(211, 221), 프로세서(212, 222), 통신 모듈(213, 223) 그리고 입출력 인터페이스(214, 224)를 포함할 수 있다. 메모리(211, 221)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(211, 221)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(211, 221)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 전자 기기 1(110)에 설치되어 구동되는 브라우저나 특정 서비스의 제공을 위해 전자 기기 1(110)에 설치된 어플리케이션 등을 위한 코드)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(211, 221)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 통신 모듈(213, 223)을 통해 메모리(211, 221)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템(일례로 상술한 서버(160))이 네트워크(170)를 통해 제공하는 파일들에 의해 설치되는 프로그램(일례로 상술한 어플리케이션)에 기반하여 메모리(211, 221)에 로딩될 수 있다.
프로세서(212, 222)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(211, 221) 또는 통신 모듈(213, 223)에 의해 프로세서(212, 222)로 제공될 수 있다. 예를 들어 프로세서(212, 222)는 메모리(211, 221)와 같은 기록 장치에 저장된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다.
통신 모듈(213, 223)은 네트워크(170)를 통해 전자 기기 1(110)과 서버(150)가 서로 통신하기 위한 기능을 제공할 수 있으며, 다른 전자 기기(일례로 전자 기기 2(120)) 또는 다른 서버(일례로 서버(160))와 통신하기 위한 기능을 제공할 수 있다. 일례로, 전자 기기 1(110)의 프로세서(212)가 메모리(211)와 같은 기록 장치에 저장된 프로그램 코드에 따라 생성한 요청(일례로 영상 통화 서비스를 위한 요청)이 통신 모듈(213)의 제어에 따라 네트워크(170)를 통해 서버(150)로 전달될 수 있다. 역으로, 서버(150)의 프로세서(222)의 제어에 따라 제공되는 제어 신호나 명령, 컨텐츠, 파일 등이 통신 모듈(223)과 네트워크(170)를 거쳐 전자 기기 1(110)의 통신 모듈(213)을 통해 전자 기기 1(110)로 수신될 수 있다. 예를 들어 통신 모듈(213)을 통해 수신된 서버(150)의 제어 신호나 명령 등은 프로세서(212)나 메모리(211)로 전달될 수 있고, 컨텐츠나 파일 등은 전자 기기 1(110)가 더 포함할 수 있는 저장 매체로 저장될 수 있다.
입출력 인터페이스(214, 224)는 입출력 장치(215)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 어플리케이션의 통신 세션을 표시하기 위한 디스플레이와 같은 장치를 포함할 수 있다. 다른 예로 입출력 인터페이스(214)는 터치스크린과 같이 입력과 출력을 위한 기능이 하나로 통합된 장치와의 인터페이스를 위한 수단일 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)의 프로세서(212)는 메모리(211)에 로딩된 컴퓨터 프로그램의 명령을 처리함에 있어서 서버(150)나 전자 기기 2(120)가 제공하는 데이터를 이용하여 구성되는 서비스 화면이나 컨텐츠가 입출력 인터페이스(214)를 통해 디스플레이에 표시될 수 있다.
또한, 다른 실시예들에서 전자 기기 1(110) 및 서버(150)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 전자 기기 1(110)은 상술한 입출력 장치(215) 중 적어도 일부를 포함하도록 구현되거나 또는 트랜시버(transceiver), GPS(Global Positioning System) 모듈, 카메라, 각종 센서, 데이터베이스 등과 같은 다른 구성요소들을 더 포함할 수도 있다. 보다 구체적인 예로, 전자 기기 1(110)이 스마트폰인 경우, 일반적으로 스마트폰이 포함하고 있는 가속도 센서나 자이로 센서, 카메라, 각종 물리적인 버튼, 터치패널을 이용한 버튼, 입출력 포트, 진동을 위한 진동기 등의 다양한 구성요소들이 전자 기기 1(110)에 더 포함되도록 구현될 수 있음을 알 수 있다.
도 3은 본 발명의 일실시예에 있어서, 서버의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 4는 본 발명의 일실시예에 따른 서버가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
서버(150)는 본 발명의 일실시예에 따른 컨텐츠 제공 시스템을 구현할 수 있으며, 도 3에 도시된 바와 같이 서버(150)에 포함된 프로세서(222)는 구성요소들로서 컨텐츠 관리부(310), 송수신 제어부(320), 가상 파일 구성부(330) 및 정보 생성부(340)를 포함할 수 있다. 이러한 프로세서(222) 및 프로세서(222)의 구성요소들은 도 4의 컨텐츠 제공 방법이 포함하는 단계들(410 내지 480)을 수행하도록 서버(150)를 제어할 수 있다. 이때, 프로세서(222) 및 프로세서(222)의 구성요소들은 메모리(221)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(222)의 구성요소들은 서버(150)에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서(222)에 의해 수행되는 프로세서(222)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(222)가 상술한 제어 명령에 따라 디지털 컨텐츠를 관리하도록 서버(150)를 제어하는 프로세서(222)의 기능적 표현으로 컨텐츠 관리부(310)가 사용될 수 있다.
단계(410)에서 프로세서(222)는 서버(150)의 제어와 관련된 명령이 로딩된 메모리(221)로부터 필요한 명령을 읽어드릴 수 있다. 이 경우, 상기 읽어드린 명령은 프로세서(222)가 이후 설명될 단계들(420 내지 480)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.
단계(420)에서 컨텐츠 관리부(310)는 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리할 수 있다. 예를 들어, 컨텐츠 관리부(310)는 디지털 컨텐츠의 복수의 복사본들을 서버(150)의 스토리지(storage)에 저장 및 관리하도록 서버(150)를 제어할 수 있다. 이때, 복수의 복사본들에는 각각 서로 다른 코드값들이 워터마킹(watermarking) 기술을 이용하여 시청각적으로 인지할 수 없도록 삽입되어 있을 수 있다. 이러한 워터마킹 기술은 디지털-아날로그나 아날로그-디지털 변형, 사이즈 변환, 일부 영역 잘라내기 등과 같이 디지털 컨텐츠의 변형 시에도 워터마크의 검출이 가능하다는 특징을 갖고 있다. 여기서, 코드값을 어떻게 디지털 컨텐츠에 삽입하는 가에 대한 워터마킹 기술은 이미 잘 알려져 있는 관계로 구체적인 설명은 생략한다. 코드값은 하나의 숫자, '123', '456'과 같은 숫자의 조합, 알파벳과 같은 문자, 문자들의 조합, 문자와 숫자의 조합 등과 같이 필요에 따라 선택된 다양한 형태의 값으로 구성될 수 있다. 간단한 예로, '0'의 코드값이 삽입된 제1 복사본과 '1'의 코드값이 삽입된 제2 복사본이 하나의 디지털 컨텐츠에 대해 관리될 수 있다.
단계(430)에서 송수신 제어부(320)는 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청을 수신할 수 있다. 여기서, 클라이언트는 네트워크(170)를 통해 서버(150)에 접근하는 전자 기기 1(110)나 전자 기기 1(110)에 설치된 어플리케이션을 의미할 수 있다. 예를 들어, 사용자는 전자 기기 1(110)를 이용하여 서버(150)에 접근할 수 있고, 서버(150)가 제공하는 사용자 인터페이스(일례로, 서버(150)가 제공하는 웹페이지의 특정 링크)를 통해 디지털 컨텐츠의 다운로드를 서버(150)로 요청할 수 있다. 이 경우, 송수신 제어부(320)는 네트워크(170)를 통해 접근한 전자 기기 1(110)로부터 다운로드 요청 신호를 수신하도록 서버(150)를 제어할 수 있다.
단계(440)에서 가상 파일 구성부(330)는 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 서로 다른 코드값의 조합이 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 복수의 복사본의 부분들을 조합하여 디지털 컨텐츠에 대한 가상 파일을 구성할 수 있다. 이때, 각각의 가상 파일을 구성하는 부분들은 서로 동일한 크기를 가질 수 있다. 또한, 이후 설명되는 조건에 따라 일부 부분들은 서로 병합될 수도 있다.
일실시예로, 가상 파일 구성부(330)는 서로 다른 코드값의 조합이 상기 가상 파일의 적어도 일부의 위치에서 상기 사용자의 고유 식별자에 대응하는 값을 갖도록 상기 복수의 복사본의 부분들을 조합할 수 있다. 예를 들어, 사용자의 고유 식별자를 2진 숫자열로 나타내었을 때의 값이 "010100010001"이라 가정한다. 이 경우, 가상 파일을 구성하기 위한 첫 번째 부분에는 2진 숫자열의 첫 번째 값인 '0'을 코드값으로 갖는 복사본의 첫 번째 조각이 이용될 수 있다. 또한, 가상 파일을 구성하기 위한 두 번째 부분에는 2진 숫자열의 두 번째 값인 '1'을 코드값으로 갖는 복사본의 두 번째 조각이 이용될 수 있으며, 이와 유사하게 가상 파일을 구성하기 위한 세 번째 부분에는 2진 숫자열의 세 번째 값인 '0'을 코드값으로 갖는 복사본의 세 번째 조각이 이용될 수 있다. 이때, 가상 파일은 2진 숫자열의 숫자의 개수만큼의 부분들로 구성될 수 있다. 또는, 가상 파일이 2진 숫자열의 숫자의 개수보다 더 많은 수의 부분들로 구성될 수도 있다. 예를 들어, 가상 파일은 2진 숫자열의 자리수의 배수의 부분들로 구성될 수도 있다. 이 경우, 2진 숫자열로 나타낸 고유 식별자가 반복적으로 활용될 수 있다. 또는, 가상 파일의 기설정된 부분의 코드값들이 사용자의 고유 식별자에 대응되도록 가상 파일이 생성될 수도 있다.
다른 실시예로, 가상 파일 구성부(330)는 서로 다른 코드값을 조합하여 다운로드 요청에 대한 고유값을 생성하고, 고유값을 사용자의 고유 식별자와 매칭하여 관리할 수도 있다. 예를 들어, 가상 파일 구성부(330)는 가상 파일의 코드값들의 조합이 항상 유일한 값을 갖도록 가상 파일을 구성할 수 있다. 이때, 유일한 값인 고유값과 사용자의 고유 식별자를 매칭하여 저장 및 관리함으로써 가상 파일을 통해 사용자가 식별될 수 있다.
단계(450)에서 정보 생성부(340)는 구성된 가상 파일의 위치정보와 복수의 복사본에서 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성할 수 있다. 위치정보는 클라이언트가 네트워크 상에서 가상 파일을 찾기 위한 위치에 대한 정보를 포함할 수 있으며, 일례로 가상 파일을 위해 생성된 유니폼 리소스 로케이터(Uniform Resource Locator, URL)를 포함할 수 있다.
옵셋 정보는 일실시예로, 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보를 포함할 수 있다. 예를 들어, 복사본의 전체 바이트들 중 특정 바이트-범위(byte-range)를 통해 고유 식별자와 매칭된 부분들이 식별될 수 있다. 보다 구체적인 예로, 디지털 컨텐츠가 200 바이트의 크기를 갖는다고 가정할 수 있다. 이때, 옵셋 정보는 제1 복사본의 0-99 바이트-범위의 부분 및 제2 복사본의 100-199 바이트 범위의 부분 등과 같이 바이트-범위를 이용하여 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보를 포함할 수 있다.
옵셋 정보는 다른 실시예로, 청크 넘버(chunk number)를 포함하도록 구성될 수도 있다. 예를 들어, 복수의 복사본들 각각은 복수의 청크(chunk)들로 나뉘어 구분될 수 있다. 이때, 옵셋 정보는 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보로서 해당 부분의 청크 넘버를 포함할 수 있다.
또한, 앞서 설명한 가상 파일 구성부(330)는 단계(440)에서 조합된 부분들 중 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 부분으로 조합할 수도 있다. 예를 들어, '0'의 코드값을 가진 세 개의 조각들이 연속적으로 배치된 경우, 가상 파일 구성부(330)는 세 개의 조각을 '0'의 코드값을 가진 하나의 조각으로 병합할 수 있다. 이 경우, 옵셋 정보는 병합된 부분을 하나의 부분으로 식별하기 위한 정보를 포함할 수 있다. 예를 들어, '0'의 코드값을 가진 세 개의 조각들이 각각 '0-99', '100-199', '200-299'의 바이트-범위로 식별되는 경우, 병합된 하나의 조각은 '0-299'의 바이트-범위로 식별될 수 있다. 다시 말해, 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 조각으로 전송함으로써, 전자 기기 1(110)이 한번에 다운로드하는 조각들을 최대한 크게 유지함으로써 조각들의 요청 수를 줄일 수 있어 다운로드 속도를 향상시킬 수 있다.
단계(460)에서 송수신 제어부(320)는 생성된 위치정보와 옵셋 정보를 클라이언트로 제공할 수 있다. 예를 들어 송수신 제어부(320)는 위치정보와 옵셋 정보를 포함하는 데이터를 네트워크(170)를 통해 전자 기기 1(110)로 전송하도록 서버(150)를 제어할 수 있다.
단계(470)에서 송수신 제어부(330)는 클라이언트로부터 위치정보에 기반하고, 옵셋 정보를 포함하는 다운로드 요청을 수신할 수 있다. 예를 들어, 송수신 제어부(320)는 위치정보에 기반하여 네트워크(170)를 통해 접근하는 전자 기기 1(110)로부터 옵셋정보를 포함하는 다운로드 요청 신호를 수신하도록 서버(150)를 제어할 수 있다. 이때, 전자 기기 1(110)은 실제로는 복수의 복사본 파일들에 대해 일부분의 데이터를 요청하는 것이기 때문에 전자 기기 1(110)은 각각의 조각별로 다운로드를 요청할 수 있다. 따라서, 가상 파일이 포함하는 조각의 수만큼의 다운로드 요청이 발생할 수 있다. 앞서 설명한 바와 같이 동일한 코드값을 가진 서로 연속된 부분들은 병합되어 하나의 조각으로 전송될 수 있다. 따라서 이 경우에는 다운로드 요청의 수를 줄일 수 있어 다운로드 속도를 증가시킬 수 있다.
단계(480)에서 송수신 제어부(330)는 복수의 복사본에서 옵셋 정보에 대응하는 부분들을 위치정보를 통해 식별되는 가상 파일로서 클라이언트로 전송할 수 있다. 예를 들어, 서버(150)는 전자 기기 1(110)이 접근하는데 이용한 위치정보에 기반하여 가상 파일을 식별할 수 있으며, 다운로드 요청에 포함된 옵셋 정보를 이용하여 복수의 복사본들 각각에서 전자 기기 1(110)로 전송해야 할 부분들을 식별할 수 있다. 이때, 송수신 제어부(330)는 식별되는 복수의 복사본들의 각 부분들을 가상 파일로서 네트워크(170)를 통해 전자 기기 1(110)로 전송하도록 서버(150)를 제어할 수 있다.
전자 기기 1(110)로 전송된 가상 파일은 전자 기기 1(110)에 하나의 파일의 형태로 저장될 수 있으며, 전자 기기 1(110)에서 재생되거나 다른 장치로 전송될 수 있다. 이때, 가상 파일에는 전자 기기 1(110)의 사용자에 대한 고유 식별자를 인식하기 위한 정보가 포함되어 있기 때문에 해당 디지털 컨텐츠에 대한 소유권 증명이나 최초 유포자와 같은 사용자 추적이 가능해진다.
도 5는 본 발명의 일실시예에 있어서, 전자 기기의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 6은 본 발명의 일실시예에 따른 전자 기기가 수행할 수 있는 방법의 예를 도시한 흐름도이다.
전자 기기 1(110)은 본 발명의 일실시예에 따른 컨텐츠 제공 시스템을 구현할 수 있으며, 도 5에 도시된 바와 같이 전자 기기 1(110)에 포함된 프로세서(212)는 구성요소들로서 다운로드 요청부(510), 송수신 제어부(520) 및 재생 제어부(530)를 포함할 수 있다. 이러한 프로세서(212) 및 프로세서(212)의 구성요소들은 도 6의 컨텐츠 제공 방법이 포함하는 단계들(610 내지 660)을 수행하도록 전자 기기 1(110)을 제어할 수 있다. 이때, 프로세서(212) 및 프로세서(212)의 구성요소들은 메모리(211)가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(212)의 구성요소들은 전자 기기 1(110)에 저장된 프로그램 코드가 제공하는 명령에 따라 프로세서(212)에 의해 수행되는 프로세서(212)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 예를 들어, 프로세서(212)가 상술한 명령에 따라 다운로드를 요청하도록 전자 기기 1(110)을 제어하는 프로세서(212)의 기능적 표현으로 다운로드 요청부(510)가 사용될 수 있다.
단계(610)에서 프로세서(212)는 전자 기기 1(110)의 제어와 관련된 명령이 로딩된 메모리(211)로부터 필요한 명령을 읽어드릴 수 있다. 이 경우, 상기 읽어드린 명령은 프로세서(212)가 이후 설명될 단계들(620 내지 660)을 실행하도록 제어하기 위한 명령을 포함할 수 있다.
단계(620)에서 다운로드 요청부(510)는 디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 서버(150)로 디지털 컨텐츠의 다운로드를 요청할 수 있다. 예를 들어, 다운로드 요청부(510)는 전자 기기 1(110)이 네트워크(170)를 통해 서버(150)에 접근하여 서버(150)가 제공하는 인터페이스를 통해 특정 디지털 컨텐츠의 다운로드를 요청하도록 전자 기기 1(110)을 제어할 수 있다. 서버(150)는 도 3 및 도 4를 통해 설명한 바와 같이 서로 다른 코드값이 삽입된 복수의 복사본을 관리하고, 전자 기기 1(110)의 사용자의 고유 식별자를 인식하기 위한 정보가 포함된 가상 파일을 전자 기기 1(110)로 제공할 수 있다.
단계(630)에서 송수신 제어부(520)는 다운로드의 요청에 따라 서버(150)로부터 복수의 복사본의 부분들이 조합된 가상 파일의 위치정보 및 복수의 복사본에서 조합된 부분들 각각을 식별하기 위한 옵셋 정보를 수신할 수 있다. 예를 들어, 송수신 제어부(520)는 서버(150)로부터 위치정보가 옵셋 정보가 포함된 데이터를 수신하도록 전자 기기 1(110)을 제어할 수 있다.
앞서 설명한 바와 같이 가상 파일은 이미 설명한 바와 같이 서버에서 서로 다른 코드값의 조합이 사용자의 고유 식별자와 매칭되도록 복수의 복사본의 부분들을 조합하여 생성될 수 있다. 또한, 위치정보는 클라이언트가 네트워크 상에서 가상 파일을 찾기 위한 위치에 대한 정보를 포함할 수 있으며, 일례로 가상 파일을 위해 생성된 유니폼 리소스 로케이터(Uniform Resource Locator, URL)를 포함할 수 있다. 옵셋 정보는 사용자의 고유 식별자와 매칭된 부분들이 해당 복사본에서 어느 부분인가를 식별하기 위한 정보로서 바이트-범위나 청크 넘버를 포함할 수 있다.
단계(640)에서 다운로드 요청부(510)는 옵셋 정보를 포함하는 다운로드 요청을 위치정보에 기반하여 전송할 수 있다. 예를 들어, 다운로드 요청부(510)는 위치정보에 따라 다운로드 요청 신호를 네트워크(170)를 통해 전송하도록 전자 기기 1(110)을 제어할 수 있다. 이때 앞서 설명한 바와 같이 가상 파일이 포함하는 조각들은 실질적으로 서로 다른 복수의 복사본들에 포함된 것이기 때문에 다운로드 요청은 가상 파일이 포함하는 조각들의 수만큼 이루어질 수 있다.
다운로드 요청을 수신한 서버(150)는 도 3 및 도 4를 통해 설명한 바와 같이, 위치정보에 대응하는 가상 파일을 전자 기기 1(110)로 전송함에 있어서, 옵셋 정보에 대응하는 부분들을 복수의 복사본에서 각각 추출하여 전자 기기 1(110)로 전송함으로써 가상 파일을 전송할 수 있다.
단계(650)에서 송수신 제어부(520)는 복수의 복사본에서 옵셋 정보에 대응하는 부분들의 조합을 위치정보를 통해 식별되는 가상 파일로서 수신할 수 있다. 예를 들어, 송수신 제어부(520)는 서버(150)가 네트워크(170)를 전송하는 가상 파일을 수신하도록 전자 기기 1(110)을 제어할 수 있다. 옵셋 정보에 대응하는 모든 조각들을 조합하면, 하나의 디지털 컨텐츠에 대응하는 데이터가 가상 파일로서 얻어질 수 있으며, 전자 기기 1(110)은 수신된 가상 파일은 하나의 파일로서 전자 기기 1(110)의 스토리지에 저장할 수 있다.
단계(660)에서 재생 제어부(530)는 저장된 가상 파일을 재생할 수 있다. 예를 들어, 재생 제어부(530)는 스토리지에 저장된 가상 파일을 찾아 재생하여 전자 기기 1(110)의 디스플레이를 통해 표시하도록 전자 기기 1(110)을 제어할 수 있다.
이하에서는 사용자의 고유 식별자에 대응하는 정보가 삽입된 디지털 컨텐츠를 다운로드 방식으로 제공하기 위한 보다 구체적인 예들을 설명한다.
도 7은 본 발명의 일실시예에 있어서, 서로 다른 코드값이 삽입된 복수의 복사본들의 예를 도시한 도면이다. 도 7은 하나의 디지털 컨텐츠에 대한 n개의 복사본들(C1, C2, C3, …, Cn)을 나타내고 있다. 디지털 컨텐츠는 1200 바이트의 크기(0-1199 바이트-범위)를 갖고 있고, 따라서 n개의 복사본들(C1, C2, C3, …, Cn) 역시 각각 1200 바이트의 크기를 갖고 있다고 가정한다. 또한, n개의 복사본들(C1, C2, C3, …, Cn) 각각에 코드값 '0', 코드값 '1', 코드값 '2', 코드값 'n-1'과 같이 서로 다른 코드값이 삽입되어 있다고 가정한다. 앞서 설명한 바와 같이 코드값은 숫자나 문자, 숫자의 조합, 문자의 조합 또는 숫자와 문자의 조합과 같이 다양한 형태로 구현될 수 있다.
앞서 설명한 컨텐츠 관리부(310)는 단계(420)에서 이러한 복사본들을 관리할 수 있다. 복사본들은 서버(150)에 저장될 수도 있으나, 필요에 따라서는 서버(150)와 네트워크(170)를 통해 통신하는 별도의 장치에 저장될 수도 있다.
도 8은 본 발명의 일실시예에 있어서, 사용자별로 구성된 가상 파일의 예들을 도시한 도면이다. 도 8은 세 명의 사용자들(U1, U2, U3) 각각의 고유 식별자에 매칭되도록 세 개의 복사본들(C1, C2, C3)을 이용하여 가상 파일들을 구성한 예를 나타내고 있다. 이때, 도 7을 통해 사용자 U1의 고유 식별자가 "012220022011"이거나 고유값 "012220022011"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다. 또한, 사용자 U2의 고유 식별자는 "111022211100"이거나 "111022211100"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다. 마찬가지로, 사용자 U3의 고유 식별자는 "221122012000"이거나 "221122012000"와 매칭되어 서버(150)에 저장된 값임을 알 수 있다.
예를 들어, 사용자 U1의 고유 식별자가 "012220022011"라 가정하자. 이때, 서버(150)는 3개의 복사본들(C1, C2, C3)로부터 사용자 U1의 고유 식별자 "012220022011"에 매칭되는 부분들을 조합할 수 있다. 다시 말해, 서버(150)는 사용자 U1의 고유 식별자의 첫 번째 값인 '0'에 따라 코드값 '0'을 갖는 복사본 C1로부터 0-99 바이트-범위의 부분을 가상 파일의 첫 번째 조각(810)으로 매칭할 수 있다. 또한, 서버(150)는 사용자 U1의 고유 식별자의 두 번째 값인 '1'에 따라 코드값 '1'을 갖는 복사본 C2로부터 100-199 바이트-범위의 부분을 가상 파일의 두 번째 조각(820)으로 매칭할 수 있다. 다시 서버(150)는 사용자 U1의 고유 식별자의 세 번째 값인 '2'에 따라 코드값 '2'를 갖는 복사본 C3으로부터 200-299 바이트-범위의 부분을 가상 파일의 세 번째 조각(830)으로 매칭할 수 있다. 이러한 과정을 사용자 U1의 고유 식별자가 "012220022011"의 모든 값들에 대해 반복함으로써 사용자 U1을 위한 고유 식별자가 삽입된 가상 파일이 구성될 수 있다. 사용자 U2를 위한 가상 파일과 사용자 U3을 위한 가상 파일 역시 유사한 방법으로 구성될 수 있다.
실시예에 따라서는 이미 설명한 바와 같이, 동일한 코드값을 갖고 연속된 조각들이 하나의 조각으로 병합될 수도 있다. 예를 들어, 도 8에서 사용자 U1의 가상 파일은 세 번째 조각(830), 네 번째 조각(840) 및 다섯 번째 조각(850)의 세 개의 조각이 동일한 코드값 '2'를 가짐을 알 수 있다.
도 9는 본 발명의 일실시예에 있어서, 동일한 코드값의 연속된 조각들을 병합하는 예를 도시한 도면이다. 도 9는 도 8의 가상 파일들에서 동일한 코드값을 갖고 서로 연속된 부분들을 하나의 부분으로 병합한 예를 나타내고 있다. 예를 들어, 사용자 U1을 위한 가상 파일에 첫 번째 조각(910)과 두 번째 조각(920)은 동일한 코드값을 갖고 연속된 조각들이 존재하지 않기 때문에 각각 하나의 조각으로 존재한다. 반면, 도 8에서 설명한 세 개의 조각들(830, 840, 850)은 코드값 '2'를 동일하게 갖는 연속된 조각들로서 도 9에 도시된 바와 같이 하나의 조각(930)으로 병합될 수 있다. 도 8의 가상 파일을 이용하는 경우 사용자 U1이 12번의 다운로드 요청과 12번의 다운로드를 진행해야 하지만, 도 8의 가상 파일을 이용하는 경우 사용자 U1은 7번의 다운로드 요청과 7번의 다운로드만 진행하면 되기 때문에 사용자의 가상 파일에 고유 식별자를 삽입함과 동시에 다운로드 속도를 향상시킬 수 있다.
도 10은 본 발명의 일실시예에 있어서, 사용자별 옵셋 정보의 예를 도시한 도면이다. 예를 들어, 도 10에서 사용자 U1의 가상 파일을 구성하는 첫 번째 조각(910)은 0~99의 바이트-범위를 갖고, 두 번째 조각(920)은 100~199의 바이트-범위를 가지며, 세 번째 조각(930)은 200~499의 바이트-범위를 가짐을 알 수 있다. 이러한 조각들 각각에 대한 바이트-범위가 옵셋 정보로서 해당 사용자들에게 제공될 수 있다. 역으로 사용자들은 제공된 옵셋 정보에 기초하여 서버(150)로부터 필요한 조각을 다운로드 받을 수 있게 된다. 예를 들어, 사용자 U1이 '0~99'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 첫 번째 값이 '0'임을 알기 때문에 코드값 '0'의 복사본 C1에서 '0~99' 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 다시 사용자 U1이 '100~199'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 두 번째 값이 '1'임을 알기 때문에 코드값 '1'의 복사본 C2에서 '100~199'의 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 이와 유사하게, 사용자 U1이 '200~499'의 바이트-범위의 옵셋 정보가 포함된 조각의 다운로드를 서버(150)로 요청하면, 서버(150)는 사용자의 고유 식별자 "012220022011"의 두 번째 값, 세 번째 값 및 네 번째 값이 '2'임을 알기 때문에 코드값 '2'의 복사본 C3에서 '200~499'의 바이트-범위의 데이터를 사용자 U1에게 제공할 수 있다. 이와 같은 과정의 반복을 통해 사용자 U1을 위한 가상 파일이 사용자 U1에게 제공될 수 있다.
이처럼 본 발명의 실시예들에 따르면, 서버-클라이언트 환경에서 사용자 고유 식별자가 은닉된 디지털 컨텐츠를 다운로드 방식으로 빠르게 제공할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (19)

  1. 컨텐츠 제공 방법에 있어서,
    디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 단계;
    상기 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 상기 서로 다른 코드값의 조합이 상기 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 상기 디지털 컨텐츠에 대한 가상 파일을 구성하는 단계; 및
    상기 구성된 가상 파일의 위치정보와 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성하여 상기 클라이언트로 제공하는 단계
    를 포함하고,
    상기 가상 파일을 구성하는 단계는,
    상기 조합된 부분들 중 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 부분으로 조합하고,
    상기 옵셋 정보는 상기 병합된 서로 연속된 부분들을 상기 하나의 부분으로 식별하기 위한 정보를 포함하고,
    상기 클라이언트로부터의 상기 하나의 부분을 식별하는 옵셋 정보를 이용한 요청에 따라 상기 서로 연속된 부분들을 포함하는 상기 하나의 부분이 한 번에 상기 클라이언트로 다운로드되는 것을 특징으로 하는 컨텐츠 제공 방법.
  2. 제1항에 있어서,
    상기 클라이언트로부터 상기 위치정보에 기반하고, 상기 옵셋 정보를 포함하는 다운로드 요청을 수신하는 단계; 및
    상기 복수의 복사본에서 상기 옵셋 정보에 대응하는 부분들을 상기 위치정보를 통해 식별되는 상기 가상 파일로서 상기 클라이언트로 전송하는 단계
    를 더 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  3. 제1항에 있어서,
    상기 위치정보는, 상기 가상 파일을 위해 생성된 유니폼 리소스 로케이터(Uniform Resource Locator, URL)를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  4. 제1항에 있어서,
    상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분이 차지하는 바이트-범위(byte-range)를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  5. 제1항에 있어서,
    상기 복수의 복사본 각각은 복수의 청크(chunk)들로 나뉘고,
    상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분의 청크 넘버(chunk number)를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  6. 제1항에 있어서,
    상기 가상 파일을 구성하는 단계는,
    상기 서로 다른 코드값의 조합이 상기 가상 파일의 적어도 일부의 위치에서 상기 사용자의 고유 식별자에 대응하는 값을 갖도록 상기 복수의 복사본의 부분들을 조합하는 것을 특징으로 하는 컨텐츠 제공 방법.
  7. 제1항에 있어서,
    상기 가상 파일을 구성하는 단계는,
    상기 서로 다른 코드값을 조합하여 상기 다운로드 요청에 대한 고유값을 생성하고, 상기 고유값을 상기 사용자의 고유 식별자와 매칭하여 관리하는 것을 특징으로 하는 컨텐츠 제공 방법.
  8. 삭제
  9. 컨텐츠 제공 방법에 있어서,
    디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하는 서버로 상기 디지털 컨텐츠의 다운로드를 요청하는 단계; 및
    상기 다운로드의 요청에 따라 상기 서버로부터 상기 복수의 복사본의 부분들이 조합된 가상 파일의 위치정보 및 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋 정보를 수신하는 단계
    를 포함하고,
    상기 가상 파일은, 상기 서버에서 상기 서로 다른 코드값의 조합이 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 생성되고,
    상기 서버에서 상기 조합된 부분들 중 동일한 코드값을 가진 서로 연속된 부분들이 병합되어 하나의 부분으로 조합되고,
    상기 옵셋 정보는 상기 병합된 서로 연속된 부분들을 상기 하나의 부분으로 식별하기 위한 정보를 포함하고,
    클라이언트로부터의 상기 하나의 부분을 식별하는 옵셋 정보를 이용한 요청에 따라 상기 서로 연속된 부분들을 포함하는 상기 하나의 부분이 한 번에 상기 클라이언트로 다운로드되는 것을 특징으로 하는 컨텐츠 제공 방법.
  10. 제9항에 있어서,
    상기 옵셋 정보를 포함하는 다운로드 요청을 상기 위치정보에 기반하여 전송하는 단계; 및
    상기 복수의 복사본에서 상기 옵셋 정보에 대응하는 부분들의 조합을 상기 위치정보를 통해 식별되는 상기 가상 파일로서 수신하는 단계
    를 더 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  11. 제9항에 있어서,
    상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분이 차지하는 바이트-범위(byte-range)를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  12. 제9항에 있어서,
    상기 복수의 복사본 각각은 복수의 청크(chunk)들로 나뉘고,
    상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분의 청크 넘버(chunk number)를 포함하는 것을 특징으로 하는 컨텐츠 제공 방법.
  13. 삭제
  14. 제1항 내지 제7항 또는 제9항 내지 제12항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  15. 컴퓨터로 구현된 컨텐츠 제공 시스템에 있어서,
    상기 컴퓨터에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    디지털 컨텐츠에 대해, 각각 서로 다른 코드값이 삽입된 복수의 복사본을 관리하고,
    상기 디지털 컨텐츠에 대한 클라이언트의 다운로드 요청에 따라 상기 서로 다른 코드값의 조합이 상기 클라이언트와 연관하여 식별되는 사용자의 고유 식별자와 매칭되도록 상기 복수의 복사본의 부분들을 조합하여 상기 디지털 컨텐츠에 대한 가상 파일을 구성하고,
    상기 구성된 가상 파일의 위치정보와 상기 복수의 복사본에서 상기 조합된 부분들 각각을 식별하기 위한 옵셋(offset) 정보를 생성하여 상기 클라이언트로 제공하고,
    상기 적어도 하나의 프로세서는, 상기 가상 파일을 구성하기 위해, 상기 조합된 부분들 중 동일한 코드값을 가진 서로 연속된 부분들을 병합하여 하나의 부분으로 조합하고,
    상기 옵셋 정보는 상기 병합된 서로 연속된 부분들을 상기 하나의 부분으로 식별하기 위한 정보를 포함하고,
    상기 클라이언트로부터의 상기 하나의 부분을 식별하는 옵셋 정보를 이용한 다운로드 요청에 따라 상기 서로 연속된 부분들을 포함하는 상기 하나의 부분이 한 번에 상기 클라이언트로 다운로드되는 것
    을 특징으로 하는 컨텐츠 제공 시스템.
  16. 제15항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 클라이언트로부터 상기 위치정보에 기반하고, 상기 옵셋 정보를 포함하는 다운로드 요청을 수신하고,
    상기 복수의 복사본에서 상기 옵셋 정보에 대응하는 부분들을 상기 위치정보를 통해 식별되는 상기 가상 파일로서 상기 클라이언트로 전송하는 것
    을 특징으로 하는 컨텐츠 제공 시스템.
  17. 제15항에 있어서,
    상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분이 차지하는 바이트-범위(byte-range)를 포함하는 것을 특징으로 하는 컨텐츠 제공 시스템.
  18. 제15항에 있어서,
    상기 복수의 복사본 각각은 복수의 청크(chunk)들로 나뉘고,
    상기 옵셋 정보는, 상기 복수의 복사본에서 상기 조합된 부분들을 식별하기 위한 정보로서, 복사본에서 대응하는 부분의 청크 넘버(chunk number)를 포함하는 것을 특징으로 하는 컨텐츠 제공 시스템.
  19. 삭제
KR1020160054677A 2016-05-03 2016-05-03 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템 KR101833386B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160054677A KR101833386B1 (ko) 2016-05-03 2016-05-03 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160054677A KR101833386B1 (ko) 2016-05-03 2016-05-03 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20170124807A KR20170124807A (ko) 2017-11-13
KR101833386B1 true KR101833386B1 (ko) 2018-04-13

Family

ID=60386057

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160054677A KR101833386B1 (ko) 2016-05-03 2016-05-03 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101833386B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100400947B1 (en) * 2002-11-26 2003-10-08 Coretrust Inc System and method for protecting information of multimedia streaming contents, and recording medium recording the same
KR101485852B1 (ko) * 2013-08-12 2015-01-27 주식회사 마크애니 역추적성을 갖는 drm 콘텐트 스트림 전송 장치, 방법 및 송수신 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100400947B1 (en) * 2002-11-26 2003-10-08 Coretrust Inc System and method for protecting information of multimedia streaming contents, and recording medium recording the same
KR101485852B1 (ko) * 2013-08-12 2015-01-27 주식회사 마크애니 역추적성을 갖는 drm 콘텐트 스트림 전송 장치, 방법 및 송수신 시스템

Also Published As

Publication number Publication date
KR20170124807A (ko) 2017-11-13

Similar Documents

Publication Publication Date Title
JP4933932B2 (ja) 情報処理システム、情報処理装置、情報処理方法、プログラム
KR101835217B1 (ko) 메신저 환경에서 drm 컨텐츠를 공유하기 위한 컨텐츠 관리 방법 및 시스템
JP2009294779A (ja) 情報処理システム、情報処理方法
JP2011527465A5 (ko)
US10262115B2 (en) Secure connected digital media platform
US10673975B2 (en) Content streaming service method for reducing communication cost and system therefor
US20060149961A1 (en) Contents player and playing method, mobile code providing device and providing method applied to DRM system
CN114329298A (zh) 一种页面呈现方法、装置、电子设备及存储介质
KR101998303B1 (ko) 타임머신 기능을 위한 슬라이딩 윈도우 관리 방법 및 시스템
KR102048750B1 (ko) 보안 메시지 제공 방법 및 시스템
KR102134250B1 (ko) 스트리밍 콘텐츠의 재생 방법 및 시스템
KR101833386B1 (ko) 사용자의 고유 식별자가 삽입된 디지털 컨텐츠의 다운로드를 위한 컨텐츠 제공 방법 및 시스템
US20130066918A1 (en) System and method for providing an electronic library
KR20170094737A (ko) 코드 보호 방법 및 시스템
KR101564731B1 (ko) 다운로드된 디지털 매체 파일을 추적하기 위한 시스템 및 방법
JP4869894B2 (ja) コンテンツ表示方法、コンテンツ表示装置、およびマルチプロセッサシステム
KR20170124839A (ko) 고정 크기 블록 암호화를 위한 디지털 컨텐츠의 분할 방법 및 시스템
KR101827863B1 (ko) 멀티미디어 콘텐츠를 제공하는 방법 및 시스템
KR102432376B1 (ko) 콘텐츠 재생 방법 및 시스템
KR101771348B1 (ko) 패키지 파일에 대한 패킹 방법 및 시스템
KR102228375B1 (ko) 다수의 스트리밍 콘텐츠들을 재생하는 방법 및 시스템
KR102376295B1 (ko) 트래픽 제어 정보를 이용하여 미디어를 재생하는 방법과 시스템 및 컴퓨터 판독가능한 기록 매체
KR102502258B1 (ko) 방송 시청단에서 크로마키를 이용한 개인화 배경을 노출하는 방법과 시스템 및 비-일시적인 컴퓨터 판독 가능한 기록 매체
EP4270185A1 (en) Method, apparatus and computer program product for augmenting a computer program with media content
KR20230018649A (ko) 컨텐츠 접근 제어 방법 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant