KR20180017979A - 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법 - Google Patents

메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법 Download PDF

Info

Publication number
KR20180017979A
KR20180017979A KR1020160102744A KR20160102744A KR20180017979A KR 20180017979 A KR20180017979 A KR 20180017979A KR 1020160102744 A KR1020160102744 A KR 1020160102744A KR 20160102744 A KR20160102744 A KR 20160102744A KR 20180017979 A KR20180017979 A KR 20180017979A
Authority
KR
South Korea
Prior art keywords
terminal
message
message data
message object
identification value
Prior art date
Application number
KR1020160102744A
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 KR1020160102744A priority Critical patent/KR20180017979A/ko
Publication of KR20180017979A publication Critical patent/KR20180017979A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • 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/30Transportation; Communications
    • G06Q50/50
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Abstract

제 1 단말로부터 제 1 단말의 ID와 제 1 메시지 데이터를 포함하는 제 1 메시지 오브젝트, 및 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하는 단계; 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계; 제 1 메시지 오브젝트에서 제 1 메시지 데이터를 삭제하는 단계; 및 제 1 단말 ID 및 제 1 식별 값을 매핑하여 저장하는 단계를 포함하고, 적어도 하나의 제 2 단말로 전송된 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터는 적어도 하나의 제 2 단말의 화면에 표시되는 것을 특징으로 하는 본 발명의 일 실시예에 따른 채팅 서비스 제공 방법이 개시된다.

Description

메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법{MESSAGING SERVER AND METHOD FOR PROVIDING CHATTING SERVICE, TERMINAL APPARATUS AND METHOD FOR USING CHATTING SERVICE}
본 발명은 인스턴트 메시징 분야에 관한 것이다. 보다 구체적으로, 본 발명은 단말들에게 인스턴트 채팅 서비스를 제공하는 메시징 서버 및 채팅 서비스를 이용하는 단말 장치에 관한 것이다.
스마트폰 등의 모바일 기기의 발전에 따라 다양한 종류의 메시징 어플리케이션이 개발되고 있다. 사용자들은 자신의 단말을 이용하여 다른 사용자들과 메시징 어플리케이션을 통해 활발한 커뮤니케이션을 하고 있다.
그러나, 현재까지 제안된 메시징 어플리케이션은 사용자들 사이의 대화 내용이 서버에 저장됨으로써 사생활 침해의 가능성을 가지고 있으며, 해커에게 대화 내용이 유출되는 경우 사용자에게 경제적 피해까지 입힐 수 있다.
더 나아가, 일반적인 메시징 어플리케이션은 사용자가 잘못된 메시지를 채팅방에 올리는 경우, 해당 내용을 사용자가 수정하거나 삭제할 수 있는 방안에 대해 제시하고 있지 못하고 있으므로, 사용자는 메시지를 새로 작성하여 채팅방에 올려야 하는 불편함을 겪고 있다.
따라서, 사용자의 니즈를 반영하면서 대화 내용의 보안성을 강화시킬 수 있는 메시징 서비스가 요구된다.
본 발명의 일 실시예에 따른 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법은 사용자들 사이의 메시지의 보안성을 향상시키는 것을 목적으로 한다.
또한, 본 발명의 일 실시예에 따른 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법은 사용자가 메시지의 수정이나 삭제를 쉽게 할 수 있게 하는 것을 목적으로 한다.
또한, 본 발명의 일 실시예에 따른 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법은 사용자에게 수신 거부 환경 설정 기능을 제공하여 사용자에게 데이터 트래픽이 과도하게 발생하지 않게 하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 채팅 서비스 제공 방법은,
제 1 단말로부터 제 1 단말의 ID와 제 1 메시지 데이터를 포함하는 제 1 메시지 오브젝트, 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하는 단계; 상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계; 상기 제 1 메시지 오브젝트에서 상기 제 1 메시지 데이터를 삭제하는 단계; 및 상기 제 1 단말 ID 및 상기 제 1 식별 값을 매핑하여 저장하는 단계를 포함하고, 상기 적어도 하나의 제 2 단말로 전송된 상기 제 1 메시지 오브젝트에 포함된 상기 제 1 메시지 데이터는 상기 적어도 하나의 제 2 단말의 화면에 표시될 수 있다.
상기 채팅 서비스 제공 방법은, 어느 하나의 단말로부터 상기 어느 하나의 단말의 ID, 상기 제 1 식별 값과 함께 상기 제 1 메시지 데이터의 삭제 요청을 수신하는 단계; 및 상기 제 1 식별 값에 매핑되어 저장된 상기 제 1 단말의 ID와 상기 어느 하나의 단말의 ID가 동일한 경우, 상기 제 1 식별 값을 상기 적어도 하나의 제 2 단말로 전송하며 상기 제 1 메시지 데이터의 삭제 요청을 하는 단계를 더 포함하되, 상기 적어도 하나의 제 2 단말의 화면에 표시된 상기 제 1 메시지 데이터는, 상기 삭제 요청에 따라 상기 화면에서 삭제될 수 있다.
상기 채팅 서비스 제공 방법은, 어느 하나의 단말로부터 상기 어느 하나의 단말의 ID를 포함하는 제 2 메시지 오브젝트 및 상기 제 1 식별 값과 함께 상기 제 1 메시지 데이터의 수정 요청을 수신하는 단계; 및 상기 제 1 식별 값에 매핑되어 저장된 상기 제 1 단말의 ID와 상기 어느 하나의 단말의 ID가 동일한 경우, 상기 제 1 식별 값과 상기 제 2 메시지 오브젝트를 상기 적어도 하나의 제 2 단말로 전송하며, 상기 제 1 메시지 데이터의 수정 요청을 하는 단계를 포함하되, 상기 적어도 하나의 제 2 단말은 상기 수정 요청에 따라 화면에 표시된 상기 제 1 메시지 데이터 대신 상기 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 표시할 수 있다.
상기 제 1 메시지 오브젝트는 상기 제 1 메시지 오브젝트와 관련된 타임 스탬프를 더 포함하되, 상기 제 1 메시지 데이터는 상기 적어도 하나의 제 2 단말에 의해 상기 타임 스탬프에 따라 화면에 표시될 수 있다.
상기 제 1 식별 값은, 상기 제 1 메시지 오브젝트의 해싱(hashing) 결과 생성된 해시 값을 포함할 수 있다.
상기 채팅 서비스 제공 방법은, 상기 제 1 식별 값과 이전에 수신된 식별 값이 동일한 경우, 상기 제 1 단말로 메시지 데이터의 표시 불가 메시지를 전송하는 단계를 더 포함할 수 있다.
상기 채팅 서비스 제공 방법은, 상기 제 1 단말과 적어도 하나의 제 2 단말이 포함된 채팅 방에 새롭게 참여한 제 3 단말로부터 메시지 동기화 요청을 수신하는 단계; 상기 제 3 단말로 전송되지 않았던 과거의 메시지 오브젝트를 상기 제 1 단말 및 상기 적어도 하나의 제 2 단말 중 적어도 하나의 단말로부터 수신하는 단계; 및 상기 제 3 단말로 상기 과거의 메시지 오브젝트를 전송하여 상기 제 3 단말의 화면에 상기 과거의 메시지 오브젝트에 포함된 메시지 데이터가 표시되게 하는 단계를 더 포함할 수 있다.
상기 채팅 서비스 제공 방법은, 상기 제 1 단말과 적어도 하나의 제 2 단말 중 어느 하나의 단말로부터 채팅 방에 새롭게 참여한 제 3 단말을 위한 메시지 동기화 요청을 수신하는 단계; 상기 제 1 단말 및 상기 적어도 하나의 제 2 단말 중 적어도 하나의 단말로부터 상기 제 3 단말로 전송되지 않았던 과거의 메시지 오브젝트를 수신하는 단계; 및 상기 제 3 단말로 상기 과거의 메시지 오브젝트를 전송하여 상기 제 3 단말의 화면에 상기 과거의 메시지 오브젝트에 포함된 메시지 데이터가 표시되게 하는 단계를 더 포함할 수 있다.
상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계는, 상기 적어도 하나의 제 2 단말 각각이 상기 제 1 메시지 데이터의 수신 가능 상태에 해당하는지를 판단하는 단계; 상기 제 1 메시지 데이터의 수신 불가능 상태에 있는 제 2 단말에 대해서는, 상기 제 1 메시지 데이터를 제외한 제 1 메시지 오브젝트 및 상기 제 1 식별 값을 전송하는 단계; 및 상기 수신 불가능 상태에 있는 제 2 단말이 수신 가능 상태로 변경되면, 상기 제 1 메시지 데이터를 다른 단말로부터 수신하여 상기 제 1 식별 값과 함께 상기 수신 가능 상태로 변경된 제 2 단말로 전송하는 단계를 포함하되, 상기 수신 불가능 상태에 있는 제 2 단말의 화면에는, 제 1 메시지 데이터의 예고 메시지가 표시될 수 있다.
상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계는, 상기 적어도 하나의 제 2 단말 각각이 상기 제 1 메시지 데이터의 수신 가능 상태에 해당하는지를 판단하는 단계; 상기 제 1 메시지 데이터의 수신 불가능 상태에 있는 제 2 단말에 대해서는, 상기 제 1 메시지 데이터 대신 상기 제 1 메시지 데이터의 썸네일 이미지를 포함하는 제 1 메시지 오브젝트 및 상기 제 1 식별 값을 전송하는 단계; 및 상기 수신 불가능 상태에 있는 제 2 단말이 수신 가능 상태로 변경되면, 상기 제 1 메시지 데이터를 다른 단말로부터 수신하여 상기 수신 가능 상태로 변경된 제 2 단말로 전송하는 단계를 더 포함하되, 상기 수신 불가능 상태에 있는 제 2 단말의 화면에는, 상기 썸네일 이미지가 표시될 수 있다.
상기 수신 가능 상태에 해당하는지를 판단하는 단계는, 상기 제 1 메시지 데이터의 종류, 크기 및 상기 적어도 하나의 제 2 단말 각각이 접속된 망의 종류 중 적어도 하나에 기초하여 상기 적어도 하나의 제 2 단말 각각이 수신 가능 상태에 해당하는지를 판단하는 단계를 포함할 수 있다.
상기 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계는, 상기 제 1 메시지 오브젝트에 대응하는 암호 키를 생성하는 단계; 및 상기 생성된 암호 키로 상기 제 1 메시지 오브젝트를 암호화하여 상기 암호 키와 함께 상기 암호화된 제 1 메시지 오브젝트를 상기 적어도 하나의 제 2 단말로 전송하는 단계를 포함할 수 있다.
상기 암호화된 제 1 메시지 오브젝트는 상기 적어도 하나의 제 2 단말 각각에 의해 상기 암호 키에 기초하여 복호화되고, 복호화된 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터는 상기 적어도 하나의 제 2 단말 각각의 화면에 표시되며, 상기 복호화된 제 1 메시지 오브젝트는 상기 암호 키로 재암호화되고, 상기 암호 키는 적어도 하나의 제 2 단말 각각에서 삭제될 수 있다.
상기 암호 키를 생성하는 단계는, 상기 제 1 식별 값 및 상기 제 1 메시지 오브젝트에 대응되어 생성된 제 1 서버 해시 값을 결합시킨 후, 결합 결과를 해싱하여 상기 암호 키를 생성하는 단계를 포함할 수 있다.
상기 암호 키를 생성하는 단계는, 상기 제 1 식별 값과 상기 제 1 서버 해시 값의 결합 결과에 상기 적어도 하나의 제 2 단말 각각에 대해 상이하게 생성되는 난수 값을 더 결합시킨 후, 해싱하여 상기 적어도 하나의 제 2 단말 각각에 대해 상이하게 생성되는 적어도 하나의 암호 키를 생성하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 메시징 서버는,
제 1 단말로부터 제 1 단말의 ID와 제 1 메시지 데이터를 포함하는 제 1 메시지 오브젝트, 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하고, 상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 통신부; 상기 제 1 메시지 오브젝트에서 상기 제 1 메시지 데이터를 삭제하는 제어부; 및 상기 제어부의 제어에 따라 상기 제 1 단말 ID 및 상기 제 1 식별 값을 매핑하여 저장하는 메모리를 포함하되, 상기 적어도 하나의 제 2 단말로 전송된 상기 제 1 메시지 오브젝트에 포함된 상기 제 1 메시지 데이터는 상기 적어도 하나의 제 2 단말의 화면에 표시될 수 있다.
본 발명의 일 실시예에 따른 채팅 서비스 이용 방법은,
메시징 서버로부터 제 1 메시지 오브젝트 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하는 단계; 상기 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 화면에 표시하는 단계; 상기 메시징 서버로부터 상기 제 1 식별 값 및 삭제 요청을 수신하거나, 상기 메시징 서버로부터 상기 제 1 식별 값, 제 2 메시지 오브젝트 및 수정 요청을 수신하는 단계; 및 상기 삭제 요청이 수신된 경우, 상기 제 1 식별 값에 대응하는 제 1 메시지 데이터를 상기 화면에서 삭제하고, 상기 수정 요청이 수신된 경우, 상기 제 1 식별 값에 대응하는 제 1 메시지 데이터 대신 상기 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 화면에 표시하는 단계를 포함할 수 있다.
상기 채팅 서비스 이용 방법은, 사용자의 입력에 따라 메시지 데이터의 수신 거부 환경을 설정하는 단계를 더 포함하되, 상기 수신 거부 환경은, 상기 단말 장치가 접속한 망의 종류, 메시지 데이터의 종류 및 메시지 데이터의 크기 중 적어도 하나를 포함할 수 있다.
상기 제 1 메시지 오브젝트를 수신하는 단계는, 상기 메시징 서버에 의해 암호 키로 암호화된 상기 제 1 메시지 오브젝트, 및 상기 암호 키를 수신하는 단계를 포함하고, 상기 표시하는 단계는, 상기 수신된 암호 키로 상기 제 1 메시지 오브젝트를 복호화하여 상기 복호화된 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 화면에 표시하는 단계; 및 상기 암호 키로 상기 복호화된 제 1 메시지 오브젝트를 재암호화한 후, 상기 암호 키를 삭제하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 단말 장치는,
메시징 서버로부터 제 1 메시지 오브젝트 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하는 통신부; 및 상기 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 디스플레이의 화면에 표시하는 제어부를 포함하되, 상기 통신부는, 상기 메시징 서버로부터 상기 제 1 식별 값 및 삭제 요청을 수신하거나, 상기 메시징 서버로부터 상기 제 1 식별 값, 제 2 메시지 오브젝트 및 수정 요청을 수신하고, 상기 제어부는, 상기 삭제 요청이 수신된 경우, 상기 제 1 식별 값에 대응하는 제 1 메시지 데이터를 상기 화면에서 삭제하고, 상기 수정 요청이 수신된 경우, 상기 제 1 식별 값에 대응하는 제 1 메시지 데이터 대신 상기 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 화면에 표시할 수 있다.
본 발명의 일 실시예에 따른 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법이 달성할 수 있는 일부의 효과는 다음과 같다.
i) 사용자들 사이의 메시지의 보안성을 향상시킬 수 있다.
ii) 사용자가 메시지의 수정이나 삭제를 쉽게 할 수 있게 한다.
iii) 사용자에게 수신 거부 환경 설정 기능을 제공하여 사용자에게 데이터 트래픽이 과도하게 발생하지 않게 한다.
다만, 본 발명의 일 실시예에 따른 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 메시징 서버 및 단말을 도시하는 개략적인 도면이다.
도 2는 본 발명의 일 실시예에 따른 메시징 서버에 의한 채팅 서비스 제공 방법을 설명하기 위한 순서도이다.
도 3은 메시징 서버에 저장되는 테이블을 도시하는 예시적인 도면이다.
도 4는 본 발명의 일 실시예에 따른 단말의 화면에 표시된 메시지 데이터들을 도시하는 예시적인 도면이다.
도 5는 제 1 단말에 의한 제 1 메시지 데이터의 삭제 과정을 설명하기 위한 흐름도이다.
도 6은 제 1 단말에 의한 제 1 메시지 데이터의 수정 과정을 설명하기 위한 흐름도이다.
도 7은 새롭게 참여한 제 3 단말에게 메시지 동기화 서비스를 제공하는 과정을 설명하기 위한 흐름도이다.
도 8은 수신 불가능 상태에 있는 제 2 단말에게 메시지 데이터를 전송하는 과정을 설명하기 위한 흐름도이다.
도 9는 수신 불가능 상태에 있는 제 2 단말에게 메시지 데이터를 전송하는 과정을 설명하기 위한 흐름도이다.
도 10은 도 2의 S210 단계 및 S220 단계를 보다 상세하게 설명하기 위한 순서도이다.
도 11은 본 발명의 일 실시예에 따른 메시징 서버의 구성을 도시하는 블록도이다.
도 12는 본 발명의 일 실시예에 따른 단말에 의한 채팅 서비스 이용 방법을 설명하기 위한 순서도이다.
도 13은 본 발명의 일 실시예에 따른 단말의 구성을 도시하는 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명은 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
이하에서는, 도면을 참조하여 본 발명의 기술적 사상에 따른 예시적인 실시예들에 대해 설명한다.
도 1은 본 발명의 일 실시예에 따른 메시징 서버(100) 및 단말(200)을 도시하는 개략적인 도면이다.
도 1을 참조하면, 메시징 서버(100) 및 단말(200)들은 네트워크(10)를 통해 서로 연결될 수 있다. 여기서 네트워크(10)는 유선 네트워크와 무선 네트워크를 포함할 수 있으며, 구체적으로, 근거리 네트워크(LAN: Local Area Network), 도시권 네트워크(MAN: Metropolitan Area Network), 광역 네트워크(WAN: Wide Area Network) 등의 다양한 네트워크를 포함할 수 있다. 또한, 네트워크(10)는 공지의 월드 와이드 웹(WWW: World Wide Web)을 포함할 수도 있다. 그러나, 본 발명에 따른 네트워크(10)는 상기 열거된 네트워크에 국한되지 않고, 공지의 무선 데이터 네트워크나 공지의 전화 네트워크, 공지의 유무선 텔레비전 네트워크를 적어도 일부로 포함할 수도 있다.
메시징 서버(100)는 단말(200)들에게 채팅 서비스를 제공한다. 단말(200)들은 메시징 서버(100) 또는 외부의 다른 서버로부터 채팅 서비스의 이용을 위한 어플리케이션을 전송받아 설치하고, 해당 어플리케이션을 통해 메시징 서버(100)에 접속하여 다른 단말(200)과 채팅을 할 수 있다. 어느 하나의 단말(200)은 다른 단말(200)을 채팅 방으로 초대하여 메시지를 송수신할 수 있다.
채팅 서비스를 이용할 수 있는 단말(200)들은 스마트폰, 테블릿 PC, 데스크탑 컴퓨터, 웨어러블 기기 등 소정 어플리케이션의 설치가 가능하며, 네트워크(10)에 접속할 수 있는 다양한 종류의 기기를 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 메시징 서버(100)에 의한 채팅 서비스 제공 방법을 설명하기 위한 순서도이다.
S210 단계에서, 메시징 서버(100)는 제 1 단말(200a)로부터 제 1 단말(200a)의 ID와 제 1 메시지 데이터를 포함하는 제 1 메시지 오브젝트, 및 제 1 메시지 오브젝트에 대한 제 1 식별 값을 포함한다. 상기 제 1 단말(200a)은 도 1에 도시된 단말(200)들 중 메시징 서버(100)에 접속하여 채팅 방에 참여 중인 단말(200)을 의미할 수 있다.
상기 제 1 메시지 오브젝트는 제 1 단말(200a)의 ID와 제 1 메시지 데이터를 포함할 수 있는데, 상기 ID는 제 1 단말(200a)을 식별할 수 있는 값으로서, 예를 들어, 제 1 단말(200a)의 IMEI(international mobile equipment identity), MAC 주소, 메시징 서버(100)로의 회원 가입시의 회원 ID, 제 1 단말(200a)의 사용자의 이름 등을 포함할 수 있다. 또한, 상기 제 1 메시지 데이터는 제 1 단말(200a)이 채팅 방 내 다른 단말(200)들에게 전달하고자 하는 실제 메시지로서, 예를 들어, 텍스트 데이터, 정지 이미지 데이터 또는 동영상 이미지 데이터를 포함할 수 있다.
구현예에 따라서, 제 1 메시지 오브젝트는 단말 ID와 제 1 메시지 데이터 이외에 제 1 메시지 오브젝트와 관련된 타임 스탬프, 채팅 방의 ID 등을 더 포함할 수도 있다. 상기 타임 스탬프는 예를 들어, 제 1 메시지 오브젝트가 생성될 때의 시간 또는 제 1 메시지 오브젝트가 메시징 서버(100)로 전송될 때의 시간을 포함할 수도 있다.
또한, 상기 제 1 식별 값은 제 1 메시지 오브젝트를 식별하기 위한 정보로서, 메시지 오브젝트마다 다른 식별 값이 매핑될 수 있다. 예를 들어, 제 1 식별 값은 제 1 메시지 오브젝트를 SHA-256 알고리즘 등으로 해싱(hashing)한 결과 생성된 해시 값을 포함할 수 있다. 구체적으로, 제 1 단말(200a)은 제 1 메시지 오브젝트에 포함된 정보들(ID, 메시지 데이터 등)을 합산, XOR 연산, OR 연산, AND 연산 등을 통해 결합시킨 후, 해싱을 하여 제 1 식별 값을 생성할 수 있다.
제 1 식별 값은 제 1 메시지 오브젝트에 대해 고유하게 할당된 값이므로, 메시징 서버(100)는 먼저, 제 1 식별 값이 이전에 수신되었던 식별 값과 동일한지를 판단할 수 있다. 제 1 식별 값이 이전에 수신된 식별 값과 동일한 경우, 메시징 서버(100)는 제 1 단말(200a)로 메시지 데이터의 표시 불가 메시지를 전송하고, 제 1 메시지 오브젝트를 채팅 방 내 다른 단말(200)로 전달하지 않는다. 반대로, 제 1 식별 값이 이전에 수신되었던 식별 값과 상이한 경우, 메시징 서버(100)는 아래의 S220 단계를 수행할 수 있다.
S220 단계에서, 메시징 서버(100)는 상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 채팅 방 내 적어도 하나의 제 2 단말(200b)로 전송한다. 여기서, 적어도 하나의 제 2 단말(200b)은 도 1에 도시된 단말(200)들 중 메시징 서버(100)에 접속하여 제 1 단말(200a)이 참여하고 있는 채팅 방과 동일한 채팅 방에 참여하고 있는 단말(200)을 의미할 수 있다.
제 1 메시지 오브젝트를 수신한 적어도 하나의 제 2 단말(200b) 각각은 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 화면에 표시한다. 제 2 단말(200b) 각각은 메시지 데이터를 화면에 표시할 때, 메시징 서버(100)로부터 수신되는 타임 스탬프를 더 고려하여, 시간 순서에 따라 표시할 수 있다.
S230 단계에서, 메시징 서버(100)는 제 1 메시지 오브젝트에서 제 1 메시지 데이터를 삭제하고, S240 단계에서, 제 1 메시지 오브젝트에 포함된 제 1 단말(200a)의 ID와 제 1 식별 값을 매핑하여 메모리에 저장한다.
즉, 본 발명의 일 실시예에서는 채팅 방에 참여 중인 단말(200)들 사이의 메시지 데이터를 메시징 서버(100)에 저장하지 않으므로, 앞서 설명한 사생활 침해 등의 문제가 발생하지 않게 된다.
도 3은 메시징 서버(100)에 저장되는 정보들을 도시하는 예시적인 도면이다.
도 3을 참조하면, 메시징 서버(100)는 단말(200)로부터 수신된 메시지 오브젝트와 관련된 여러 정보들을 서로 간에 매핑시켜 저장할 수 있다. 저장된 정보들 중 일부는 메시지 오브젝트에 포함된 것일 수 있고, 또는, 메시징 서버(100)에 의해 생성된 것일 수도 있다.
메시징 서버(100)는 각 메시지 오브젝트와 관련된 타임 스탬프(310), 채팅방 ID(320), 단말 ID(330), 메시지를 확인한 수신자 ID(340), 메시지 오브젝트의 식별 값(350) 및 메시지 오브젝트의 서버 해시 값(360)을 서로 간에 매핑시켜 저장할 수 있다. 앞서 설명한 바와 같이, 메시징 서버(100)는 단말(200)로부터 수신된 메시지 오브젝트에서 메시지 데이터는 삭제하므로, 도 3에 도시된 테이블에는 메시지 데이터가 포함되어 있지 않다.
타임 스탬프(310)는 메시지 오브젝트와 관련된 시간을 나타내며, 예를 들어, 메시지 오브젝트가 단말(200)에 의해 생성된 시간, 메시지 오브젝트가 단말(200)로부터 메시징 서버(100)로 전달된 시간 또는 메시징 서버(100)가 메시지 오브젝트를 다른 단말(200)로 전달한 시간을 포함할 수 있다.
채팅방 ID(320)는 메시지 오브젝트를 전송한 단말(200)이 참여하고 있는 채팅방의 ID를 의미하며, 단말 ID(330)는 메시지 오브젝트를 전송한 단말(200)의 ID를 의미한다.
또한, 확인 수신자(340)는 메시지 오브젝트를 전달받은 단말(200)의 ID를 의미한다. 2016/7/27 12:00:11를 타임 스탬프를 갖는 메시지 오브젝트는 ID 1의 단말(200)로부터 수신되어, ID 2, ID 3의 단말(200)로 전달되었다는 것을 알 수 있다.
식별 값(350)은 앞서 설명한 메시지 오브젝트에 대응하는 식별 값으로서 단말(200)로부터 생성되어 메시징 서버(100)로 전송된 값이다.
서버 해시 값(360)은 메시지 오브젝트를 단말(200)들에게 전송할 때, 메시지 오브젝트를 암호화하기 위해 메시징 서버(100)가 생성하는 값으로서, 이에 대해서는 후술한다.
본 발명의 일 실시예에 따른 메시징 서버(100)는 단말(200)들에게 메시지 데이터의 삭제 기능 및 수정 기능을 제공할 수 있는데, 이에 대해서는 도 4 내지 도 6을 참조하여 설명한다.
도 4는 본 발명의 일 실시예에 따른 단말(200)의 화면에 표시된 메시지 데이터들을 도시하는 예시적인 도면이다.
도 4에 도시된 바와 같이, 채팅 서비스를 이용하고 있는 단말(200)의 화면에는 다른 단말(200)로부터 전송된 메시지 데이터와 자신이 전송한 메시지 데이터가 표시될 수 있다.
단말(200)이 전송한 '강남에서 7시에 봐요'라는 메시지 데이터를 사용자(20)가 수정하거나 삭제하고 싶은 경우, 일 예로서, 사용자(20)는 화면에 표시된 메시지 데이터를 선택한 후, 선택 결과 화면에 표시되는 메뉴(400)에서 삭제를 할 것인지 수정을 할 것인지를 선택할 수 있다. 다만, 이는 하나의 실시예일뿐이며, 메시지 데이터를 선택하는 과정 없이, 사용자는 단말(200)의 화면에 포함된 별도의 수정 메뉴나 삭제 메뉴를 선택함으로써 수정 요청 또는 삭제 요청을 할 수도 있다.
도 5는 제 1 단말(200a)에 의한 제 1 메시지 데이터의 삭제 과정을 설명하기 위한 흐름도이다. 도 5에서 제 1 단말(200a) 및 제 2 단말(200b)은 동일한 채팅 방에 참여하고 있는 단말(200)을 의미한다.
S505 단계에서, 제 1 단말(200a)은 메시징 서버(100)로 제 1 메시지 오브젝트 및 제 1 식별 값을 전송한다.
S510 단계에서, 메시징 서버(100)는 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 제 2 단말(200b)로 전송한다. 제 2 단말(200b)로 전송하기에 앞서, 메시징 서버(100)는 수신된 제 1 식별 값이 이전에 수신된 식별 값과 동일한지를 검증할 수도 있다.
S515 단계에서, 제 2 단말(200b)은 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 화면에 표시한다.
S520 단계에서, 메시징 서버(100)는 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 삭제하고, S525 단계에서, 제 1 단말(200a)의 ID와 제 1 식별 값을 매핑하여 저장한다.
S530 단계에서, 제 1 메시지 데이터의 삭제를 하고자 하는 제 1 단말(200a)은 제 1 단말(200a)의 ID와 제 1 식별 값을 전송하며, 메시징 서버(100)로 제 1 메시지 데이터의 삭제 요청을 한다. 도 4와 관련하여 설명하면, 메시지 데이터를 삭제하고자 하는 단말(200)의 사용자가 화면에 표시된 메시지 데이터의 삭제 메뉴를 선택하면, 단말(200)은 사용자가 선택한 메시지 데이터에 대응하는 제 1 식별 값을 메시징 서버(100)로 전송할 수 있는 것이다.
S535 단계에서, 메시징 서버(100)는 수신된 제 1 식별 값과 기 저장된 테이블 내의 식별 값들을 비교하여, 제 1 단말(200a)이 삭제하고자 하는 메시지 데이터를 확인하고, 확인된 메시지 데이터를 전송한 단말(200)의 ID가 상기 수신된 제 1 단말(200a)의 ID와 동일한지를 비교한다.
만약, 상기 확인된 메시지 데이터를 전송한 단말(200)의 ID가 상기 수신된 제 1 단말(200a)의 ID와 상이한 경우, 메시징 서버(100)는 권한이 없는 단말(200)의 삭제 요청인 것으로 인지하여 삭제 요청을 거부하고 다음 단계를 진행하지 않는다.
S540 단계에서, 제 1 단말(200a)에게 삭제 권한 있는 것으로 판단되면, 메시징 서버(100)는 제 1 식별 값을 제 2 단말(200b)로 전송하며 제 1 메시지 데이터의 삭제 요청을 한다.
S545 단계에서, 제 2 단말(200b)은 삭제 요청에 따라 제 1 식별 값에 대응하는 제 1 메시지 데이터를 화면으로부터 삭제한다.
도 6은 제 1 단말(200a)에 의한 제 1 메시지 데이터의 수정 과정을 설명하기 위한 흐름도이다.
도 6의 S605 단계 내지 S625 단계는 도 5의 S505 단계 내지 S525 단계에 대응하므로 상세한 설명은 생략한다.
S630 단계에서, 제 1 메시지 데이터의 수정을 하고자 하는 제 1 단말(200a)은 제 1 단말(200a)의 ID를 포함하는 제 2 메시지 오브젝트와 제 1 식별 값을 전송하며, 메시징 서버(100)로 제 1 메시지 데이터의 수정 요청을 한다. 도 4와 관련하여 설명하면, 메시지 데이터를 수정하고자 하는 단말(200)의 사용자가 화면에 표시된 메시지 데이터의 수정 메뉴를 선택하고, 수정할 메시지 데이터를 새로 입력하면, 단말(200)은 사용자가 선택한 메시지 데이터에 대응하는 제 1 식별 값, 및 새로 입력된 메시지 데이터와 단말 ID를 포함하는 제 2 메시지 오브젝트를 메시징 서버(100)로 전송할 수 있는 것이다.
S635 단계에서, 메시징 서버(100)는 수신된 제 1 식별 값과 기 저장된 테이블 내의 식별 값들을 비교하여, 제 1 단말(200a)이 수정하고자 하는 메시지 데이터를 확인하고, 확인된 메시지 데이터를 전송한 단말(200)의 ID가 상기 수신된 제 1 단말(200a)의 ID와 동일한지를 비교한다.
만약, 상기 확인된 메시지 데이터를 전송한 단말(200)의 ID가 상기 수신된 제 1 단말(200a)의 ID와 상이한 경우, 메시징 서버(100)는 권한이 없는 단말(200)의 수정 요청인 것으로 인지하여 수정 요청을 거부하고 다음 단계를 진행하지 않는다.
S640 단계에서, 제 1 단말(200a)에게 수정 권한 있는 경우, 메시징 서버(100)는 제 2 메시지 오브젝트와 제 1 식별 값을 제 2 단말(200b)로 전송하며 제 1 메시지 데이터의 수정 요청을 한다.
S645 단계에서, 제 2 단말(200b)은 수정 요청에 따라 제 1 식별 값에 대응하는 제 1 메시지 데이터 대신 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 화면에 표시된다. 구체적으로, 제 2 단말(200b)은 제 1 메시지 데이터를 화면으로부터 삭제하고, 삭제된 위치에 제 2 메시지 데이터를 표시하고, 화면에 제 2 메시지 데이터가 제 1 메시지 데이터로부터 수정된 메시지라는 표시를 할 수 있다.
본 발명의 일 실시예에 따른 메시징 서버(100)는 채팅 방에 뒤늦게 참여한 단말(200) 또는 채팅 방에 참여하고 있었지만 네트워크 문제 등으로 일시적으로 메시지 데이터를 수신하지 못한 단말(200)에게 메시지 동기화 서비스를 제공할 수 있다.
도 7은 새롭게 참여한 제 3 단말(200c)에게 메시지 동기화 서비스를 제공하는 과정을 설명하기 위한 흐름도이다.
도 7에서 제 1 단말(200a) 및 제 2 단말(200b)은 동일한 채팅 방에 참여하고 있는 단말(200)을 의미하며, 제 3 단말(200c)은 해당 채팅 방에 뒤늦게 참여한 단말(200)을 의미한다.
S705 단계에서, 제 3 단말(200c)은 메시징 서버(100)로 자신의 ID와 메시지 동기화 요청을 전송한다. 제 3 단말(200c)은 화면에 표시된 동기화 요청 메뉴를 선택함으로써 메시지 동기화 요청을 메시징 서버(100)로 전송할 수 있다. 또는, 제 3 단말(200c)은 미리 설정된 텍스트 데이터(예를 들어, '내가 보지 못한 메시지는')를 메시징 서버(100)로 전송하며 동기화 요청을 할 수도 있다.
S710, S715 단계에서, 메시징 서버(100)는 제 1 단말(200a) 및 제 2 단말(200b) 중 적어도 하나의 단말(200)로 메시지 동기화 요청을 전송한다.
S720, S725 단계에서, 제 1 단말(200a) 및 제 2 단말(200b) 중 적어도 하나는 메시지 동기화 요청이 수신되기 전까지 수신되었던 과거의 메시지 오브젝트와 각각에 대응하는 식별 값을 메시징 서버(100)로 전송한다. 또는, 제 1 단말(200a) 및 제 2 단말(200b) 중 적어도 하나는 제 3 단말(200c)이 채팅 방에 참여하고 있지 않는 동안 수신되었던 과거의 메시지 오브젝트 및 식별 값을 메시징 서버(100)로 전송할 수도 있다.
S730 단계에서, 메시징 서버(100)는 수신된 과거의 메시지 오브젝트 중 제 3 단말(200c)이 수신하지 못한 과거 오브젝트를 선택한다. 메시징 서버(100)는 수신된 과거의 메시지 오브젝트의 식별 값과 상기 도 3에서 설명한 테이블 내의 확인 수신자를 확인하여, 제 3 단말(200c)이 수신하지 못한 과거 오브젝트를 선택할 수 있다. 예를 들어, 도 3에서 제 3 단말(200c)의 ID가 ID 3인 경우, 메시지 오브젝트는 제 3 단말(200c)이 2016/7/27 12:03:34의 타임 스탬프를 갖는 메시지 오브젝트를 수신하지 못하였다는 것을 확인하고, 해당 메시지 오브젝트를 과거 오브젝트로 선택할 수 있는 것이다.
만약, 메시징 서버(100)가 제 1 단말(200a) 및 제 2 단말(200b) 중 적어도 하나로부터 제 3 단말(200c)이 수신하지 못한 과거 오브젝트만을 수신한 경우에는 상기 S730 단계는 생략될 수도 있다.
S735 단계에서, 메시징 서버(100)는 상기 선택된 과거 오브젝트, 및 과거 오브젝트에 대응하는 식별 값을 제 3 단말(200c)로 전송하고, S740 단계에서, 제 3 단말(200c)은 과거 오브젝트에 포함된 메시지 데이터를 화면에 표시할 수 있다. 메시징 서버(100)는 과거 오브젝트를 제 3 단말(200c)로 전송할 때, 각각의 과거 오브젝트의 타임 스탬프도 함께 전송하여 제 3 단말(200c)이 타임 스탬프의 시간 순서대로 메시지 데이터를 표시하게 할 수도 있다.
도 7의 메시지 동기화 기능에서는 뒤늦게 참여한 제 3 단말(200c)이 메시징 서버(100)로 메시지 동기화 요청을 한 경우, 메시지 동기화 기능이 수행되는 것으로 설명하였지만, 구현예에 따라서는, 이미 채팅방에 참여하고 있던 제 1 단말(200a) 또는 제 2 단말(200b)이 과거 메시지 오브젝트와 함께 메시지 동기화 요청을 메시징 서버(100)로 전송하여 제 3 단말(200c)에 대한 메시지 동기화가 이루어지게 할 수도 있다.
한편, 본 발명의 일 실시예에 따른 메시징 서버(100)는 단말(200)들에게 메시지 데이터에 대한 수신 거부 기능을 제공할 수도 있다. 단말(200)의 사용자는 데이터 요금을 절약하기 위해, 메시지 데이터가 큰 용량의 동영상 데이터인 경우에는 그 수신을 거부하고자 할 수도 있다. 또는 단말(200)의 사용자는 단말(200)이 이동통신망에 접속되어 있는 경우에는 큰 용량의 동영상 데이터는 그 수신을 거부하되, 단말(200)이 와이파이 망에 접속되어 있는 경우에는 수신을 거부한 동영상 데이터를 다시 수신하길 원할 수도 있다.
이를 위해, 각 단말(200)의 사용자는 채팅 서비스를 위한 어플리케이션을 통해 수신 거부 환경을 설정할 수 있다. 수신 거부 환경은 메시지 데이터의 종류, 메시지 데이터의 크기 및 단말(200)이 접속한 망의 종류 중 적어도 하나를 포함할 수 있다. 메시지 데이터의 종류는 텍스트 데이터, 정지 이미지 데이터 또는 동영상 이미지 데이터를 포함할 수 있다.
예를 들어, 사용자는 메시지 데이터가 동영상 데이터인 경우에는 그 수신이 거부되도록 설정하거나, 또는, 메시지 데이터의 크기가 10 메가바이트 이상인 경우에는 그 수신이 거부되도록 설정하거나, 또는, 단말(200)이 접속한 망이 이동통신망인 경우에는 소정 종류의 메시지 데이터 또는 소정 크기의 메시지 데이터의 수신이 거부되도록 설정할 수 있다.
이하에서는, 도 8 및 도 9를 참조하여, 단말(200)이 수신 거부 환경을 설정한 경우의 각 구성의 동작을 설명한다.
도 8은 수신 불가능 상태에 있는 제 2 단말(200b)에게 메시지 데이터를 전송하는 과정을 설명하기 위한 흐름도이다.
도 8에서 제 1 단말(200a) 및 제 2 단말(200b)은 동일한 채팅 방에 참여하고 있는 단말(200)로서, 제 2 단말(200b)이 수신 거부 환경을 설정해 놓은 것으로 가정한다.
S805 단계에서, 제 1 단말(200a)은 제 1 메시지 오브젝트 및 제 1 식별 값을 메시징 서버(100)로 전송한다.
S810 단계에서, 메시징 서버(100)는 제 2 단말(200b)이 상기 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터의 수신 가능 상태에 있는지 여부를 판단한다. 메시징 서버(100)는 제 2 단말(200b)의 사용자가 설정한 수신 거부 환경 정보, 제 2 단말(200b)이 접속한 망의 종류, 제 1 메시지 데이터의 종류, 제 1 메시지 데이터의 크기 등에 기초하여 제 2 단말(200b)이 제 1 메시지 데이터의 수신 가능 상태에 있는지를 판단할 수 있다. 예를 들어, 제 2 단말(200b)이 수신 거부 환경으로서, 동영상 데이터를 수신 거부 대상으로 설정하였고, 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터의 종류가 동영상 데이터인 경우, 메시징 서버(100)는 제 2 단말(200b)이 제 1 메시지 데이터의 수신 불가능 상태인 것으로 판단할 수 있다.
S815 단계에서, 제 2 단말(200b)이 수신 불가능 상태에 있는 경우, 메시징 서버(100)는 제 1 메시지 오브젝트에서 제 1 메시지 데이터를 삭제하고, 제 1 메시지 데이터가 삭제된 제 1 메시지 오브젝트와 제 1 식별 값을 제 2 단말(200b)로 전송한다. 만약, 채팅 방 내에 제 3 단말(200c)이 더 참여하고 있으며, 제 3 단말(200c)은 제 1 메시지 데이터에 대한 수신 가능 상태에 있는 경우, 메시징 서버(100)는 제 1 메시지 데이터를 삭제하지 않고, 제 1 단말(200a)로부터 수신한 제 1 메시지 오브젝트와 제 1 식별 값을 제 3 단말(200c)로 전송한 후, 제 1 메시지 데이터를 삭제할 것이다.
S820 단계에서, 제 2 단말(200b)은 제 1 메시지 오브젝트 내에 제 1 메시지 데이터가 포함되어 있지 않은 것을 확인하고, 제 1 단말(200a)이 보내고자 하는 메시지 데이터가 있음을 나타내는 예고 메시지를 화면에 표시한다. 제 2 단말(200b)의 사용자는 예고 메시지를 보고, 자신에게 전달된 메시지 데이터가 존재하였지만, 수신 거부 환경으로 인해 실제 자신에게 전달되지 않았다는 것을 확인할 수 있다.
S825 단계에서, 메시징 서버(100)는 제 2 단말(200b)이 제 1 메시지 데이터의 수신 가능 상태에 있는지를 다시 판단한다. 제 2 단말(200b)의 사용자는 예고 메시지가 화면에 표시된 것으로 보고, 수신 환경 설정을 변경하여 제 1 메시지 데이터를 수신하고자 할 수도 있고, 또는 이동통신망에 접속되어 있던 제 2 단말(200b)을 와이파이 망에 접속시킴으로써 제 1 메시지 데이터를 수신하고자 할 수도 있다.
S830 단계에서, 메시징 서버(100)는 제 2 단말(200b)이 제 1 메시지 데이터의 수신 가능 상태에 있는 경우, 제 1 단말(200a)로 제 1 메시지 데이터를 요청하고, 제 1 단말(200a)로부터 제 1 메시지 데이터를 수신한다. 앞서 설명한 바와 같이, 메시징 서버(100)는 제 1 단말(200a)로부터 제 1 메시지 오브젝트를 수신한 이후, 제 1 메시지 데이터를 삭제하였으므로, 제 1 메시지 데이터를 제 1 단말(200a)로 다시 요청하는 것이다. 채팅방 내에 제 1 메시지 데이터를 수신한 다른 단말(200)이 참여하고 있는 경우, 메시징 서버(100)는 제 1 단말(200a)이 아닌 상기 다른 단말(200)로 제 1 메시지 데이터를 요청하여 수신할 수도 있다.
S835 단계에서, 메시징 서버(100)는 제 1 메시지 데이터 및 제 1 식별 값을 제 2 단말(200b)로 전송하고, S840 단계에서, 제 2 단말(200b)은 예고 메시지 대신 제 1 메시지 데이터를 화면에 표시한다. 예를 들어, 제 2 단말(200b)은 예고 메시지를 화면으로부터 삭제하고, 삭제된 위치에 제 1 메시지 데이터를 표시할 수 있다.
도 9는 수신 불가능 상태에 있는 제 2 단말(200b)에게 메시지 데이터를 전송하는 다른 과정을 설명하기 위한 흐름도이다.
도 9에서 제 1 단말(200a) 및 제 2 단말(200b)은 동일한 채팅 방에 참여하고 있는 단말(200)로서, 제 2 단말(200b)이 수신 거부 환경을 설정해 놓은 것으로 가정한다.
S905 단계에서, 제 1 단말(200a)은 제 1 메시지 오브젝트 및 제 1 식별 값을 메시징 서버(100)로 전송한다.
S910 단계에서, 메시징 서버(100)는 제 2 단말(200b)이 상기 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터의 수신 가능 상태에 있는지 여부를 판단한다. 메시징 서버(100)는 제 2 단말(200b)의 사용자가 설정한 수신 거부 환경 정보, 제 2 단말(200b)이 접속한 망의 종류, 제 1 메시지 데이터의 종류, 제 1 메시지 데이터의 크기 등에 기초하여 제 2 단말(200b)이 제 1 메시지 데이터의 수신 가능 상태에 있는지를 판단할 수 있다.
S915 단계에서, 메시징 서버(100)는 제 1 메시지 오브젝트에서 제 1 메시지 데이터를 삭제하고, 제 1 메시지 데이터의 썸네일 이미지를 제 1 메시지 오브젝트에 포함시킨 후, 썸네일 이미지가 포함된 제 1 메시지 오브젝트와 제 1 식별 값을 제 2 단말(200b)로 전송한다. 만약, 채팅 방 내에 제 3 단말(200c)이 더 참여하고 있으며, 제 3 단말(200c)은 제 1 메시지 데이터에 대한 수신 가능 상태에 있는 경우, 메시징 서버(100)는 제 1 메시지 데이터를 삭제하지 않고, 제 1 단말(200a)로부터 수신한 제 1 메시지 오브젝트와 제 1 식별 값을 제 3 단말(200c)로 전송한 후, 제 1 메시지 데이터를 삭제할 것이다.
S920 단계에서, 제 2 단말(200b)은 제 1 메시지 오브젝트 내에 제 1 메시지 데이터의 썸네일 이미지가 포함되어 있지 않은 것을 확인하고, 해당 썸네일 이미지를 화면에 표시한다. 제 2 단말(200b)의 사용자는 썸네일 이미지를 보고, 자신에게 전달된 메시지 데이터가 존재하였지만, 수신 거부 환경으로 인해 실제 자신에게 전달되지 않았다는 것을 확인할 수 있다.
S925 단계에서, 메시징 서버(100)는 제 2 단말(200b)이 제 1 메시지 데이터의 수신 가능 상태에 있는지를 다시 판단한다. 제 2 단말(200b)의 사용자는 썸네일 이미지가 화면에 표시된 것으로 보고, 수신 환경 설정을 변경하여 제 1 메시지 데이터를 수신하고자 할 수도 있고, 또는 이동통신망에 접속되어 있던 제 2 단말(200b)을 와이파이 망에 접속시킴으로써 제 1 메시지 데이터를 수신하고자 할 수도 있다.
S930 단계에서, 메시징 서버(100)는 제 2 단말(200b)이 제 1 메시지 데이터의 수신 가능 상태에 있는 경우, 제 1 단말(200a)로 제 1 메시지 데이터를 요청하고, 제 1 단말(200a)로부터 제 1 메시지 데이터를 수신한다. 앞서 설명한 바와 같이, 메시징 서버(100)는 제 1 단말(200a)로부터 제 1 메시지 오브젝트를 수신한 이후, 제 1 메시지 데이터를 삭제하였으므로, 제 1 메시지 데이터를 제 1 단말(200a)로 다시 요청하는 것이다. 채팅 방 내에 제 1 메시지 데이터를 수신한 다른 단말(200)이 참여하고 있는 경우, 메시징 서버(100)는 제 1 단말(200a)이 아닌 상기 다른 단말(200)로 제 1 메시지 데이터를 요청하여 수신할 수도 있다.
S935 단계에서, 메시징 서버(100)는 제 1 메시지 데이터 및 제 1 식별 값을 제 2 단말(200b)로 전송하고, S940 단계에서, 제 2 단말(200b)은 썸네일 이미지 대신 제 1 메시지 데이터를 화면에 표시한다. 예를 들어, 제 2 단말(200b)은 썸네일 이미지를 화면으로부터 삭제하고, 삭제된 위치에 제 1 메시지 데이터를 표시할 수 있다.
도 8 및 도 9의 실시예에서, 메시징 서버(100)는 채팅 방 내 제 2 단말(200b)이 제 1 메시지 데이터의 수신 불가능 상태에 있는 경우에도 제 1 메시지 데이터를 삭제함으로써, 메시징 서버(100)의 버퍼 메모리에 제 1 메시지 데이터가 저장되는 것을 방지할 수 있다. 다시 말하면, 메시징 서버(100)는 제 2 단말(200b)이 제 1 메시지 데이터의 수신 불가능 상태에 있는 경우, 제 1 메시지 데이터를 저장하고 있다가 제 2 단말(200b)이 수신 가능 상태로 변경되면, 해당 제 1 메시지 데이터를 전송할 수도 있지만, 이러한 방식에 의하면 메시징 서버(100)의 버퍼 메모리에 과도한 양의 데이터가 저장될 수 있는 것이다.
앞서 설명한 바와 같이, 메시징 서버(100)는 제 1 단말(200a)로부터 제 1 메시지 오브젝트와 제 1 식별 값이 수신되면, 제 1 메시지 오브젝트를 암호화하여 제 2 단말(200b)로 전송할 수도 있는데, 이에 대해서는 도 10을 참조하여 설명한다.
도 10은 도 2의 S210 단계 및 S220 단계를 보다 상세하게 설명하기 위한 순서도이다.
S1010 단계에서, 메시징 서버(100)는 제 1 단말(200a)로부터 수신한 제 1 메시지 오브젝트에 대응하는 제 1 서버 해시 값을 생성한다. 제 1 서버 해시 값은 제 1 식별 값을 해싱(hashing)하여 생성된 해시 값을 포함할 수 있다.
S1020 단계에서, 메시징 서버(100)는 제 1 식별 값과 제 1 서버 해시 값을 AND 연산, OR 연산, XOR 연산, 합산 등의 방법으로 결합한다.
S1030 단계에서, 메시징 서버(100)는 상기 결합 결과를 해싱하여 암호 키를 생성하고, S1040 단계에서, 암호 키로 제 1 메시지 오브젝트를 암호화하여 암호화된 제 1 메시지 오브젝트와 암호 키를 제 2 단말(200b)로 전송한다.
암호화된 제 1 메시지 오브젝트와 암호 키를 수신한 제 2 단말(200b)은 암호 키로 제 1 메시지 오브젝트를 복호화하여 제 1 메시지 데이터를 화면에 표시한 후, 암호 키로 제 1 메시지 오브젝트를 재 암호화할 수 있다. 이후, 제 2 단말(200b)은 암호 키를 삭제함으로써, 제 1 메시지 오브젝트가 암호화된 상태로 제 2 단말(200b) 내에 저장되게 할 수 있다.
이에 의하면, 제 2 단말(200b)로 전송된 제 1 메시지 오브젝트는 암호화된 상태로 저장되며, 또한, 복호화할 수 있는 암호 키는 메시징 서버(100)에만 저장되거나, 메시징 서버(100)에서만 생성 가능하므로, 제 2 단말(200b) 등이 해킹 등의 피해를 입더라도 제 1 메시지 오브젝트의 보안성을 보장받을 수 있다.
구현예에 따라서, 메시징 서버(100)는 암호 키를 생성할 때, 그 보안성을 더욱 향상시키기 위하여 제 1 메시지 오브젝트를 전달받는 복수의 제 2 단말(200b) 각각에 대해 서로 상이한 암호 키를 생성할 수도 있다. 이를 위해, 메시징 서버(100)는 각각의 제 2 단말(200b)에 대해 상이하게 생성되는 난수 값을 상기 S1020 단계에서의 결합 결과에 더 결합시키고, 난수 값이 결합된 결합 결과를 해싱함으로써, 각각의 제 2 단말(200b) 별로 상이한 암호 키를 생성할 수 있다. 메시징 서버(100)는 각각의 암호 키로 제 1 메시지 오브젝트를 암호화하여, 암호화된 제 1 메시지 오브젝트와 대응하는 암호 키를 각각의 제 2 단말(200b)로 전송할 수 있다.
도 11은 본 발명의 일 실시예에 따른 메시징 서버(100)의 구성을 도시하는 블록도이다.
도 11을 참조하면, 본 발명의 일 실시예에 따른 메시징 서버(100)는 통신부(110), 제어부(130) 및 메모리(150)를 포함할 수 있다. 통신부(110), 제어부(130) 및 메모리(150)는 적어도 하나의 프로세서로 구현될 수 있으며, 메모리(150)에 저장된 프로그램에 따라 동작할 수 있다. 도 11에 도시된 각 구성들은 하나의 예시일 뿐이며, 추가적인 다른 구성이 메시징 서버(100)에 더 포함될 수도 있다.
통신부(110)는 단말(200)들과 네트워크(10)를 통해 통신을 수행한다. 통신부(110)는 제 1 단말(200a)로부터 제 1 단말(200a)의 ID와 제 1 메시지 데이터를 포함하는 제 1 메시지 오브젝트, 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하고, 상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말(200b)로 전송할 수 있다. 또한, 통신부(110)는 채팅 방 내 어느 하나의 단말(200)로부터 메시지 데이터의 수정 요청, 삭제 요청, 메시지 동기화 요청을 수신할 수 있다.
제어부(130)는 통신부(110) 및 메모리(150)를 제어한다. 제어부(130)는 통신부(150)를 통해 전송되어야 할 데이터를 생성 또는 선택할 수 있으며, 메모리(150)에 저장되는 정보를 관리한다. 또한, 제어부(130)는 메시지 데이터의 삭제 기능, 수정 기능, 메시지 동기화 기능 등을 단말(200)에게 제공한다.
구체적으로, 제어부(130)는 통신부(110)가 수신한 제 1 메시지 오브젝트에 대응하는 제 1 식별 값이 이전이 수신된 식별 값과 동일한지를 검증하고, 제 1 식별 값이 유효한 경우, 제 1 메시지 오브젝트에서 제 1 메시지 데이터를 삭제하고, 제 1 단말(200a)의 ID와 제 1 식별 값을 매핑하여 메모리(150)에 저장할 수 있다. 또한, 제어부(130)는 통신부(110)를 통해 제 1 메시지 오브젝트를 제 2 단말(200b)로 전송할 때, 서버 해시 키 및 암호 키를 생성하고, 생성된 암호 키로 제 1 메시지 오브젝트를 암호화하여 제 2 단말(200b)로 전송할 수도 있다.
메모리(150)는 제어부(130)의 제어에 따라 메시지 오브젝트 관련 정보를 저장할 수 있다. 예를 들어, 메모리(150)는 도 3에 도시된 테이블을 저장할 수 있다.
도 12는 본 발명의 일 실시예에 따른 단말(200)에 의한 채팅 서비스 이용 방법을 설명하기 위한 순서도이다.
S1210 단계에서, 단말(200)은 메시징 서버(100)로부터 제 1 메시지 오브젝트 및 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신한다.
S1220 단계에서, 단말(200)은 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 화면에 표시한다. 단말(200)에 수신 거부 환경이 설정되어 있는 경우, 단말(200)은 제 1 메시지 오브젝트 내에 제 1 메시지 데이터가 포함되어 있지 않으면, 예고 메시지를 화면에 표시하고, 제 1 메시지 오브젝트 내에 썸네일 이미지가 포함되어 있으면, 해당 썸네일 이미지를 화면에 표시할 수 있다.
단말(200)은 메시징 서버(100)로부터 제 1 메시지 오브젝트를 암호화된 상태로 암호 키와 함께 수신한 경우, 암호 키로 제 1 메시지 오브젝트를 복호화하여 제 1 메시지 데이터를 화면에 표시하고, 복호화된 제 1 메시지 오브젝트를 암호 키로 재암호화한 후, 암호 키를 삭제할 수 있다.
S1230 단계에서, 단말(200)은 메시징 서버(100)로부터 제 1 식별 값 및 삭제 요청을 수신하거나, 메시징 서버(100)로부터 제 1 식별 값, 제 2 메시지 오브젝트 및 수정 요청을 수신한다.
S1240 단계에서, 단말(200)은 메시징 서버(100)로부터 삭제 요청이 수신된 경우, 제 1 식별 값에 대응하는 제 1 메시지 데이터를 화면에서 삭제한다. 또한, 단말(200)은 메시징 서버(100)로부터 수정 요청이 수신된 경우, 제 1 식별 값에 대응하는 제 1 메시지 데이터 대신 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 화면에 표시할 수 있다.
또한, 단말(200)은 메시징 서버(100)로 메시지 동기화 요청을 전송하고, 과거 메시지 오브젝트를 수신하여 과거 메시지 오브젝트에 포함된 메시지 데이터를 화면에 표시할 수 있다. 또한, 단말(200)은 메시징 서버(100)로부터 메시지 동기화 요청을 수신하고, 메시징 서버(100)로 과거 메시지 오브젝트를 전송할 수도 있다.
단말(200)은 사용자의 입력에 따라 메시지 데이터의 수신 거부 환경을 설정할 수도 있다.
도 13은 본 발명의 일 실시예에 따른 단말(200)의 구성을 도시하는 블록도이다.
도 13을 참조하면, 본 발명의 일 실시예에 따른 단말(200)은 메모리(210), 통신부(230), 제어부(250) 및 디스플레이(270)를 포함할 수 있다. 메모리(210), 통신부(230) 및 제어부(250)는 적어도 하나의 마이크로 프로세서로 구현될 수 있으며, 메모리(210)에 저장된 채팅 어플리케이션에 따라 동작할 수 있다.
메모리(210)는 메시징 서버(100)로부터 전달되는 메시징 오브젝트들과 대응하는 식별 값을 저장한다.
통신부(230)는 메시징 서버(100)로부터 제 1 메시지 오브젝트 및 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신한다. 또한, 통신부(230)는 메시징 서버(100)로부터 제 1 메시지 데이터에 대한 삭제 요청, 수정 요청을 수신할 수 있으며, 메시지 동기화 요청을 메시징 서버(100)로 전송하거나, 메시징 서버(100)로부터 메시지 동기화 요청을 수신할 수도 있다.
제어부(250)는 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 디스플레이(270)의 화면에 표시한다. 제어부(250)는 제 1 메시지 오브젝트가 암호화되어 있는 경우에는 암호 키로 제 1 메시지 오브젝트를 복호화하여 제 1 메시지 데이터를 화면에 표시할 수도 있다. 이 경우, 제어부(250)는 암호 키로 제 1 메시지 오브젝트를 재암호화하고, 암호 키는 삭제할 수 있다.
메시징 서버(100)로부터 제 1 메시지 데이터의 삭제 요청이 수신된 경우, 제어부(250)는 제 1 식별 값에 대응하는 제 1 메시지 데이터를 화면에서 삭제하고, 메시징 서버(100)로부터 제 2 메시지 오브젝트와 함께 제 1 메시지 데이터의 수정 요청이 수신된 경우에는, 제 1 메시지 데이터 대신 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 화면에 표시한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.
상기 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함할 수 있으나, 이에 한정되는 것은 아니다.
첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 메시징 서버
110: 통신부
130: 제어부
150: 메모리
200: 단말
210: 메모리
230: 통신부
250: 제어부
270: 디스플레이

Claims (20)

  1. 제 1 단말로부터 제 1 단말의 ID와 제 1 메시지 데이터를 포함하는 제 1 메시지 오브젝트, 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하는 단계;
    상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계;
    상기 제 1 메시지 오브젝트에서 상기 제 1 메시지 데이터를 삭제하는 단계; 및
    상기 제 1 단말 ID 및 상기 제 1 식별 값을 매핑하여 저장하는 단계를 포함하고,
    상기 적어도 하나의 제 2 단말로 전송된 상기 제 1 메시지 오브젝트에 포함된 상기 제 1 메시지 데이터는 상기 적어도 하나의 제 2 단말의 화면에 표시되는 것을 특징으로 하는, 메시징 서버에 의한 채팅 서비스 제공 방법.
  2. 제1항에 있어서,
    상기 채팅 서비스 제공 방법은,
    어느 하나의 단말로부터 상기 어느 하나의 단말의 ID, 상기 제 1 식별 값과 함께 상기 제 1 메시지 데이터의 삭제 요청을 수신하는 단계; 및
    상기 제 1 식별 값에 매핑되어 저장된 상기 제 1 단말의 ID와 상기 어느 하나의 단말의 ID가 동일한 경우, 상기 제 1 식별 값을 상기 적어도 하나의 제 2 단말로 전송하며 상기 제 1 메시지 데이터의 삭제 요청을 하는 단계를 더 포함하되,
    상기 적어도 하나의 제 2 단말의 화면에 표시된 상기 제 1 메시지 데이터는, 상기 삭제 요청에 따라 상기 화면에서 삭제되는 것을 특징으로 하는 채팅 서비스 제공 방법.
  3. 제1항에 있어서,
    상기 채팅 서비스 제공 방법은,
    어느 하나의 단말로부터 상기 어느 하나의 단말의 ID를 포함하는 제 2 메시지 오브젝트 및 상기 제 1 식별 값과 함께 상기 제 1 메시지 데이터의 수정 요청을 수신하는 단계; 및
    상기 제 1 식별 값에 매핑되어 저장된 상기 제 1 단말의 ID와 상기 어느 하나의 단말의 ID가 동일한 경우, 상기 제 1 식별 값과 상기 제 2 메시지 오브젝트를 상기 적어도 하나의 제 2 단말로 전송하며, 상기 제 1 메시지 데이터의 수정 요청을 하는 단계를 포함하되,
    상기 적어도 하나의 제 2 단말은 상기 수정 요청에 따라 화면에 표시된 상기 제 1 메시지 데이터 대신 상기 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 표시하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  4. 제1항에 있어서,
    상기 제 1 메시지 오브젝트는 상기 제 1 메시지 오브젝트와 관련된 타임 스탬프를 더 포함하되,
    상기 제 1 메시지 데이터는 상기 적어도 하나의 제 2 단말에 의해 상기 타임 스탬프에 따라 화면에 표시되는 것을 특징으로 하는 채팅 서비스 제공 방법.
  5. 제1항에 있어서,
    상기 제 1 식별 값은,
    상기 제 1 메시지 오브젝트의 해싱(hashing) 결과 생성된 해시 값을 포함하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  6. 제1항에 있어서,
    상기 채팅 서비스 제공 방법은,
    상기 제 1 식별 값과 이전에 수신된 식별 값이 동일한 경우, 상기 제 1 단말로 메시지 데이터의 표시 불가 메시지를 전송하는 단계를 더 포함하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  7. 제1항에 있어서,
    상기 채팅 서비스 제공 방법은,
    상기 제 1 단말과 적어도 하나의 제 2 단말이 포함된 채팅 방에 새롭게 참여한 제 3 단말로부터 메시지 동기화 요청을 수신하는 단계;
    상기 제 3 단말로 전송되지 않았던 과거의 메시지 오브젝트를 상기 제 1 단말 및 상기 적어도 하나의 제 2 단말 중 적어도 하나의 단말로부터 수신하는 단계; 및
    상기 제 3 단말로 상기 과거의 메시지 오브젝트를 전송하여 상기 제 3 단말의 화면에 상기 과거의 메시지 오브젝트에 포함된 메시지 데이터가 표시되게 하는 단계를 더 포함하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  8. 제1항에 있어서,
    상기 채팅 서비스 제공 방법은,
    상기 제 1 단말과 적어도 하나의 제 2 단말 중 어느 하나의 단말로부터 채팅 방에 새롭게 참여한 제 3 단말을 위한 메시지 동기화 요청을 수신하는 단계;
    상기 제 1 단말 및 상기 적어도 하나의 제 2 단말 중 적어도 하나의 단말로부터 상기 제 3 단말로 전송되지 않았던 과거의 메시지 오브젝트를 수신하는 단계; 및
    상기 제 3 단말로 상기 과거의 메시지 오브젝트를 전송하여 상기 제 3 단말의 화면에 상기 과거의 메시지 오브젝트에 포함된 메시지 데이터가 표시되게 하는 단계를 더 포함하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  9. 제1항에 있어서,
    상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계는,
    상기 적어도 하나의 제 2 단말 각각이 상기 제 1 메시지 데이터의 수신 가능 상태에 해당하는지를 판단하는 단계;
    상기 제 1 메시지 데이터의 수신 불가능 상태에 있는 제 2 단말에 대해서는, 상기 제 1 메시지 데이터를 제외한 제 1 메시지 오브젝트 및 상기 제 1 식별 값을 전송하는 단계; 및
    상기 수신 불가능 상태에 있는 제 2 단말이 수신 가능 상태로 변경되면, 상기 제 1 메시지 데이터를 다른 단말로부터 수신하여 상기 제 1 식별 값과 함께 상기 수신 가능 상태로 변경된 제 2 단말로 전송하는 단계를 포함하되,
    상기 수신 불가능 상태에 있는 제 2 단말의 화면에는, 제 1 메시지 데이터의 예고 메시지가 표시되는 것을 특징으로 하는 채팅 서비스 제공 방법.
  10. 제1항에 있어서,
    상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계는,
    상기 적어도 하나의 제 2 단말 각각이 상기 제 1 메시지 데이터의 수신 가능 상태에 해당하는지를 판단하는 단계;
    상기 제 1 메시지 데이터의 수신 불가능 상태에 있는 제 2 단말에 대해서는, 상기 제 1 메시지 데이터 대신 상기 제 1 메시지 데이터의 썸네일 이미지를 포함하는 제 1 메시지 오브젝트 및 상기 제 1 식별 값을 전송하는 단계; 및
    상기 수신 불가능 상태에 있는 제 2 단말이 수신 가능 상태로 변경되면, 상기 제 1 메시지 데이터를 다른 단말로부터 수신하여 상기 수신 가능 상태로 변경된 제 2 단말로 전송하는 단계를 더 포함하되,
    상기 수신 불가능 상태에 있는 제 2 단말의 화면에는, 상기 썸네일 이미지가 표시되는 것을 특징으로 하는 채팅 서비스 제공 방법.
  11. 제9항 또는 제10항에 있어서,
    상기 수신 가능 상태에 해당하는지를 판단하는 단계는,
    상기 제 1 메시지 데이터의 종류, 크기 및 상기 적어도 하나의 제 2 단말 각각이 접속된 망의 종류 중 적어도 하나에 기초하여 상기 적어도 하나의 제 2 단말 각각이 수신 가능 상태에 해당하는지를 판단하는 단계를 포함하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  12. 제1항에 있어서,
    상기 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 단계는,
    상기 제 1 메시지 오브젝트에 대응하는 암호 키를 생성하는 단계; 및
    상기 생성된 암호 키로 상기 제 1 메시지 오브젝트를 암호화하여 상기 암호 키와 함께 상기 암호화된 제 1 메시지 오브젝트를 상기 적어도 하나의 제 2 단말로 전송하는 단계를 포함하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  13. 제12항에 있어서,
    상기 암호화된 제 1 메시지 오브젝트는 상기 적어도 하나의 제 2 단말 각각에 의해 상기 암호 키에 기초하여 복호화되고, 복호화된 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터는 상기 적어도 하나의 제 2 단말 각각의 화면에 표시되며,
    상기 복호화된 제 1 메시지 오브젝트는 상기 암호 키로 재암호화되고, 상기 암호 키는 적어도 하나의 제 2 단말 각각에서 삭제되는 것을 특징으로 하는 채팅 서비스 제공 방법.
  14. 제12항에 있어서,
    상기 암호 키를 생성하는 단계는,
    상기 제 1 식별 값 및 상기 제 1 메시지 오브젝트에 대응되어 생성된 제 1 서버 해시 값을 결합시킨 후, 결합 결과를 해싱하여 상기 암호 키를 생성하는 단계를 포함하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  15. 제14항에 있어서,
    상기 암호 키를 생성하는 단계는,
    상기 제 1 식별 값과 상기 제 1 서버 해시 값의 결합 결과에 상기 적어도 하나의 제 2 단말 각각에 대해 상이하게 생성되는 난수 값을 더 결합시킨 후, 해싱하여 상기 적어도 하나의 제 2 단말 각각에 대해 상이하게 생성되는 적어도 하나의 암호 키를 생성하는 단계를 포함하는 것을 특징으로 하는 채팅 서비스 제공 방법.
  16. 제 1 단말로부터 제 1 단말의 ID와 제 1 메시지 데이터를 포함하는 제 1 메시지 오브젝트, 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하고, 상기 수신된 제 1 메시지 오브젝트 및 제 1 식별 값을 적어도 하나의 제 2 단말로 전송하는 통신부;
    상기 제 1 메시지 오브젝트에서 상기 제 1 메시지 데이터를 삭제하는 제어부; 및
    상기 제어부의 제어에 따라 상기 제 1 단말 ID 및 상기 제 1 식별 값을 매핑하여 저장하는 메모리를 포함하되,
    상기 적어도 하나의 제 2 단말로 전송된 상기 제 1 메시지 오브젝트에 포함된 상기 제 1 메시지 데이터는 상기 적어도 하나의 제 2 단말의 화면에 표시되는 것을 특징으로 하는 메시징 서버.
  17. 메시징 서버로부터 제 1 메시지 오브젝트 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하는 단계;
    상기 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 화면에 표시하는 단계;
    상기 메시징 서버로부터 상기 제 1 식별 값 및 삭제 요청을 수신하거나, 상기 메시징 서버로부터 상기 제 1 식별 값, 제 2 메시지 오브젝트 및 수정 요청을 수신하는 단계; 및
    상기 삭제 요청이 수신된 경우, 상기 제 1 식별 값에 대응하는 제 1 메시지 데이터를 상기 화면에서 삭제하고, 상기 수정 요청이 수신된 경우, 상기 제 1 식별 값에 대응하는 제 1 메시지 데이터 대신 상기 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 화면에 표시하는 단계를 포함하는 것을 특징으로 하는, 단말 장치에 의한 채팅 서비스 이용 방법.
  18. 제17항에 있어서,
    상기 채팅 서비스 이용 방법은,
    사용자의 입력에 따라 메시지 데이터의 수신 거부 환경을 설정하는 단계를 더 포함하되,
    상기 수신 거부 환경은,
    상기 단말 장치가 접속한 망의 종류, 메시지 데이터의 종류 및 메시지 데이터의 크기 중 적어도 하나를 포함하는 것을 특징으로 하는 채팅 서비스 이용 방법.
  19. 제17항에 있어서,
    상기 제 1 메시지 오브젝트를 수신하는 단계는,
    상기 메시징 서버에 의해 암호 키로 암호화된 상기 제 1 메시지 오브젝트, 및 상기 암호 키를 수신하는 단계를 포함하고,
    상기 표시하는 단계는,
    상기 수신된 암호 키로 상기 제 1 메시지 오브젝트를 복호화하여 상기 복호화된 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 화면에 표시하는 단계; 및
    상기 암호 키로 상기 복호화된 제 1 메시지 오브젝트를 재암호화한 후, 상기 암호 키를 삭제하는 단계를 포함하는 것을 특징으로 하는 채팅 서비스 이용 방법.
  20. 메시징 서버로부터 제 1 메시지 오브젝트 및 상기 제 1 메시지 오브젝트에 대한 제 1 식별 값을 수신하는 통신부; 및
    상기 제 1 메시지 오브젝트에 포함된 제 1 메시지 데이터를 디스플레이의 화면에 표시하는 제어부를 포함하되,
    상기 통신부는, 상기 메시징 서버로부터 상기 제 1 식별 값 및 삭제 요청을 수신하거나, 상기 메시징 서버로부터 상기 제 1 식별 값, 제 2 메시지 오브젝트 및 수정 요청을 수신하고,
    상기 제어부는, 상기 삭제 요청이 수신된 경우, 상기 제 1 식별 값에 대응하는 제 1 메시지 데이터를 상기 화면에서 삭제하고, 상기 수정 요청이 수신된 경우, 상기 제 1 식별 값에 대응하는 제 1 메시지 데이터 대신 상기 제 2 메시지 오브젝트에 포함된 제 2 메시지 데이터를 화면에 표시하는 것을 특징으로 하는 단말 장치.
KR1020160102744A 2016-08-12 2016-08-12 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법 KR20180017979A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160102744A KR20180017979A (ko) 2016-08-12 2016-08-12 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160102744A KR20180017979A (ko) 2016-08-12 2016-08-12 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법

Publications (1)

Publication Number Publication Date
KR20180017979A true KR20180017979A (ko) 2018-02-21

Family

ID=61524892

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160102744A KR20180017979A (ko) 2016-08-12 2016-08-12 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법

Country Status (1)

Country Link
KR (1) KR20180017979A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190107414A (ko) * 2018-03-12 2019-09-20 김찬익 보안 채팅 단말기

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190107414A (ko) * 2018-03-12 2019-09-20 김찬익 보안 채팅 단말기

Similar Documents

Publication Publication Date Title
US8782409B2 (en) Confidential message exchange using benign, context-aware cover message generation
US10009321B2 (en) Method performed by at least one server for processing a data packet from a first computing device to a second computing device to permit end-to-end encryption communication
CN108989848B (zh) 一种视频资源文件的获取方法和管理系统
US20170033925A1 (en) Methods and apparatus for implementing a communications system secured using one-time pads
JP7133285B2 (ja) ユーザ端末、メッセージを送受信する方法及びコンピュータプログラム
KR20180101870A (ko) 클라우드 컴퓨팅 환경에서의 속성 기반 암호화를 이용한 데이터 공유 방법 및 시스템
CN109962924B (zh) 群聊构建方法、群消息发送方法、群消息接收方法及系统
US10887634B2 (en) Video resource file acquisition method and management system
KR20180017979A (ko) 메시징 서버 및 이에 의한 채팅 서비스 제공 방법, 단말 장치 및 이에 의한 채팅 서비스 이용 방법
CN115037451B (zh) 数据保护方法及电子设备
KR102293610B1 (ko) 보안 인스턴트 메시징 방법 및 장치
CN114189950A (zh) 信息交互方法、信息交互装置、服务器及存储介质
US9369442B2 (en) System and method for the safe spontaneous transmission of confidential data over unsecure connections and switching computers
WO2021237388A1 (zh) 加解密群组消息及传递消息的方法
KR102387911B1 (ko) 보안 인스턴트 메시징 방법 및 장치
CN115037455B (zh) 数据保护方法、系统及电子设备
TWI712307B (zh) 加、解密群組訊息及傳遞訊息之方法
WO2012129928A1 (zh) 媒体消息安全传输的方法、系统和装置
KR20170104426A (ko) 메시지 서버
JP6582462B2 (ja) 情報処理装置およびその制御方法
CN116349268A (zh) 信息处理方法及装置、通信设备及存储介质
CN115037456A (zh) 数据保护方法、系统及电子设备
CN117478338A (zh) 一种数字内容的下载系统、方法及装置
KR20150086435A (ko) 보안 컨텐츠 재생방법, 의사표시 수행방법, 및 이를 위한 데이터 처리장치
CN111726802A (zh) 基于WiFi Aware的通信方法、装置及存储介质