KR20170018695A - 적응형 여행 일정 제공 방법 및 이를 구현한 전자 장치 - Google Patents

적응형 여행 일정 제공 방법 및 이를 구현한 전자 장치 Download PDF

Info

Publication number
KR20170018695A
KR20170018695A KR1020150112647A KR20150112647A KR20170018695A KR 20170018695 A KR20170018695 A KR 20170018695A KR 1020150112647 A KR1020150112647 A KR 1020150112647A KR 20150112647 A KR20150112647 A KR 20150112647A KR 20170018695 A KR20170018695 A KR 20170018695A
Authority
KR
South Korea
Prior art keywords
information
schedule
electronic device
user
travel
Prior art date
Application number
KR1020150112647A
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 KR1020150112647A priority Critical patent/KR20170018695A/ko
Priority to US15/213,940 priority patent/US20170046637A1/en
Publication of KR20170018695A publication Critical patent/KR20170018695A/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
    • G06Q50/14Travel agencies
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • G06Q10/025Coordination of plural reservations, e.g. plural trip segments, transportation combined with accommodation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • 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
    • G06Q50/12Hotels or restaurants

Landscapes

  • Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Resources & Organizations (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Navigation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

다양한 실시예는 제1 상황 정보에 기반하여 외부 장치에서 생성된 적어도 하나의 제1 일정 정보를 수신하는 동작, 사용자 또는 제2 상황 정보 중 적어도 하나에 기반하여 상기 제1 일정 정보의 적어도 일부를 변경한 제2 일정 정보를 획득하는 동작, 및 상기 제2 일정 정보를 상기 사용자에게 제공하는 동작을 포함하는 방법 및 장치를 제공한다. 또한, 다른 실시예도 가능하다.

Description

적응형 여행 일정 제공 방법 및 이를 구현한 전자 장치{METHOD FOR PROVIDING ADAPTIVE TRAVEL ITINERARIES AND ELECTRONIC DEVICE THEREOF}
다양한 실시예는 적응형 여행 일정 제공 방법 및 장치에 관한 것이다.
최근 디지털 기술의 발달과 함께 이동통신 단말기, PDA(Personal Digital Assistant), 전자수첩, 스마트 폰, 태블릿 PC(Personal Computer), 웨어러블 디바이스(Wearable Device) 등과 같이 이동하면서 통신 및 개인정보 처리가 가능한 전자 장치들이 다양하게 출시되고 있다. 이러한, 전자 장치는 처음에는 음성통화, 문자 메시지 전송 등의 1차적인 서비스를 제공하였다면, 최근에는 사진 촬영, 길 찾기, 결제뿐만 아니라 무선 인터넷 환경을 제공함으로써, 더욱 다양한 서비스를 제공하고 있다.
즉, 사용자는 사진 촬영을 위해 카메라를 소지하거나, 길을 찾기 위해 네비게이션 장치를 소지하거나, 계산하기 위해 카드나 현금을 소지하지 않아도, 상기 전자 장치 하나로 다양한 기능을 이용할 수 있게 되었다. 따라서, 전자 장치는 사용자의 편의성을 더욱 향상시킬 수 있다.
전자 장치의 편리함 때문에 사용자는 여행 시 전자 장치를 이용하여 여행 정보를 획득할 수 있다. 종래에는 여행지의 선호도, 리뷰, 비용, 이동시간 등을 기준으로 여행 일정을 생성하고 있다. 하지만, 이러한 방법은 여행 전에 여행 계획 단계에서 수행되는 정적인 절차이며, 여행 중에 일어나는 다양한 상황 변화에 맞게 여행 일정을 적절히 조정하지 못한다는 단점이 있다. 여행 중 시시각각 변화하는 다양한 상황에 따라 일정을 조정하기 위해서는 사용자가 직접 일정을 수정해야 하기 때문에 매우 번거롭고 불편할 수 있다. 또한, 사용자가 여행지 주변을 잘 알지 못하면 상황에 맞게 일정을 조정하는 것은 매우 큰 부담일 수 있다.
다양한 실시예들은 여행 중에 일어나는 다양한 상황 변화에 맞게 동적으로 여행 일정을 조정함으로써, 사용자에게 적절한 대체 일정을 제공할 수 있다.
다양한 실시예들에 따른 전자 장치의 동작 방법은 제1 상황 정보에 기반하여 외부 장치에서 생성된 적어도 하나의 제1 일정 정보를 수신하는 동작, 사용자 또는 제2 상황 정보 중 적어도 하나에 기반하여 상기 제1 일정 정보의 적어도 일부를 변경한 제2 일정 정보를 획득하는 동작, 및 상기 제2 일정 정보를 상기 사용자에게 제공하는 동작을 포함할 수 있다.
다양한 실시예들에 따른 시스템은 정보를 전송하고, 상기 정보에 기반한 제1 일정 정보를 수신하고, 제1 상황 정보를 수집하고, 상기 제1 상황 정보를 기반으로 상기 제1 일정 정보의 적어도 일부를 변경하여 제2 일정 정보를 생성하고, 상기 제2 일정 정보를 제공하는 전자 장치, 및 상기 정보에 기반하여 상기 제1 일정 정보를 생성하고, 생성된 제1 일정 정보를 상기 전자 장치로 전송하는 서버를 포함할 수 있다.
다양한 실시예들에 따른 전자 장치는 통신 인터페이스, 메모리, 및 상기 메모리와 전기적으로 연결된 프로세서를 포함하고, 상기 프로세서는 외부 장치로 정보를 전송하고, 상기 정보에 기반한 제1 일정 정보를 상기 외부 장치로부터 수신하고, 상황 정보를 기반으로 상기 제1 일정 정보의 적어도 일부를 변경하여 제2 일정 정보를 생성하고, 상기 제2 일정 정보를 제공하도록 설정될 수 있다.
다양한 실시예들에 따른 서버는 통신부, 메모리, 및 프로세서를 포함하고, 상기 프로세서는 전자 장치로부터 정보를 수신하고, 상황 정보를 수집하고, 상기 정보 및 상기 상황 정보에 기반하여 제1 일정 정보를 생성하고, 생성된 제1 일정 정보를 상기 전자 장치로 전송하고, 상기 상황 정보가 업데이트되면 업데이트된 상황 정보를 상기 전자 장치로 전송하도록 설정될 수 있다.
다양한 실시예들에 따른 명령들을 저장하고 있는 저장 매체는 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 제1 상황 정보에 기반하여 외부 장치에서 생성된 적어도 하나의 제1 일정 정보를 수신하는 동작, 사용자 또는 제2 상황 정보 중 적어도 하나에 기반하여 상기 제1 일정 정보의 적어도 일부를 변경한 제2 일정 정보를 획득하는 동작; 및 상기 제2 일정 정보를 상기 사용자에게 제공하는 동작을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체일 수 있다.
다양한 실시예들에 따르면, 여행 중에 일어나는 다양한 상황 변화에 맞게 동적으로 여행 일정을 조정하여 사용자에게 적절한 대체 여행 일정을 제공할 수 있다.
다양한 실시예들에 따르면, 실시간 상황에 맞게 자동으로 여행 일정을 조정함으로써, 사용자가 더 만족도 높은 여행 일정으로 여행할 수 있도록 도와줄 수 있다.
다양한 실시예들에 따르면, 실시간으로 상황에 맞는 여행 일정을 제공함으로써, 여행 일정 시스템의 사용성과 유용성을 극대화할 수 있다.
다양한 실시예들에 따르면, 등록된 여행 일정을 상황 정보와 실시간으로 비교함으로써, 여행 일정의 변경이 필요한지 확인하고 변경이 필요한 경우 현재 상황에 맞게 여행 일정을 재조정할 수 있다.
다양한 실시예들에 따르면, 사용자의 변경뿐만 아니라, 교통 상황, 재해 상황, 이벤트 상황, 여행지의 실시간 현황 등을 고려하여 여행 일정을 재조정하기 때문에 여행하는 사용자의 편의성, 유용성 및 여행 효율성을 극대화할 수 있다.
다양한 실시예들에 따르면, 전자 장치에서 여행 일정에 필요한 정보를 미리 다운로드받고, 실시간 상황 및 다운로드받은 정보를 이용하여 여행 일정을 변경하기 때문에, 전자 장치에 저장된 또는 등록된 정보를 서버로 제공하지 않아 전자 장치의 정보를 보호할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경 내의 전자 장치를 도시한 도면이다.
도 2는 다양한 실시예들에 따른 전자 장치의 구성을 도시한 블록도이다.
도 3은 다양한 실시예들에 따른 프로그램 모듈을 도시한 블록도이다.
도 4는 다양한 실시예들에 따른 적응형 여행 일정을 제공하는 전체 개념도를 도시한 도면이다.
도 5는 다양한 실시예들에 따른 전자 장치와 서버 간의 연결 관계를 도시한 도면이다.
도 6은 다양한 실시예들에 따른 전자 장치와 서버 간의 동작 순서를 도시한 흐름도이다.
도 7은 다양한 실시예들에 따른 서버의 동작 방법을 도시한 흐름도이다.
도 8은 다양한 실시예들에 따른 전자 장치의 동작 방법을 도시한 흐름도이다.
도 9는 다양한 실시예들에 따른 상황 정보를 결정하는 방법을 도시한 흐름도이다.
도 10a 내지 도 10d는 다양한 실시예들에 따른 상황 정보에 따라 일정을 변경하는 일례를 도시한 도면이다.
도 11a 내지 도 11h는 다양한 실시예들에 따른 전자 장치의 사용자 인터페이스를 도시한 도면이다.
도 12는 다양한 실시예들에 따른 기본 일정을 생성하는 일례를 도시한 도면이다.
이하, 본 문서의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1은 다양한 실시예들에 따른 네트워크 환경(100) 내의 전자 장치(101)를 도시한 도면이다.
도 1을 참조하면, 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다.
어떤 실시예에서는, 전자 장치(101)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다. 버스(110)는 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서(120)는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(API)(145), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147)에서 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션 프로그램(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션 프로그램(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션 프로그램(147) 중 적어도 하나에 전자 장치(101)의 시스템 리소스(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(101)의 다른 구성요소(들)에 전달하거나, 또는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이(160)는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스(170)는, 예를 들면, 전자 장치(101)와 외부 장치(예: 제 1 외부 전자 장치(102), 제 2 외부 전자 장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예: 제 2 외부 전자 장치(104) 또는 서버(106))와 통신할 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 한실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 "Beidou") 또는 Galileo, the European global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(162)는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
제1 및 제2 외부 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치(102,104), 또는 서버(106)에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치(102, 104), 또는 서버(106))에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치(102, 104), 또는 서버(106))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시예에 따른 전자 장치(201)의 구성을 도시한 블록도이다.
도 2를 참조하면, 전자 장치(201)는, 예를 들면, 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 포함할 수 있다. 전자 장치(201)는 하나 이상의 프로세서(예: AP)(210), 통신 모듈(220), 메모리(230), 센서 모듈(240), 입력 장치(250), 디스플레이(260), 인터페이스(270), 오디오 모듈(280), 카메라 모듈(291), 전력 관리 모듈(295), 배터리(296), 인디케이터(297), 및 모터(298) 를 포함할 수 있다.
프로세서(210)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(210)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(210)는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 프로세서(210)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서(210)는 도 2에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈(221))를 포함할 수도 있다. 프로세서(210) 는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드)하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
통신 모듈(220)은 도 1의 통신 인터페이스(170)와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈(220)은, 예를 들면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227), NFC 모듈(228) 및 RF 모듈(229)를 포함할 수 있다. 셀룰러 모듈(221)은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 가입자 식별 모듈(예: SIM 카드)(224)을 이용하여 통신 네트워크 내에서 전자 장치(201)의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 프로세서(210)가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 커뮤니케이션 프로세서(CP)를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227) 또는 NFC 모듈(228) 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. RF 모듈(229)은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈(229)은, 예를 들면, 트랜시버, PAM(power amp module), 주파수 필터, LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227) 또는 NFC 모듈(228) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다. 가입자 식별 모듈(224)은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 또는 임베디드 SIM을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
메모리(230)(예: 메모리(130))는, 예를 들면, 내장 메모리(232) 또는 외장 메모리(234)를 포함할 수 있다. 내장 메모리(232)는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브 (SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리(234)는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리(234)는 다양한 인터페이스를 통하여 전자 장치(201)와 기능적으로 또는 물리적으로 연결될 수 있다.
센서 모듈(240)은, 예를 들면, 물리량을 계측하거나 전자 장치(201)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈(240)은, 예를 들면, 제스처 센서(240A), 자이로 센서(240B), 기압 센서(240C), 마그네틱 센서(240D), 가속도 센서(240E), 그립 센서(240F), 근접 센서(240G), 컬러(color) 센서(240H)(예: RGB(red, green, blue) 센서), 생체 센서(240I), 온/습도 센서(240J), 조도 센서(240K), 또는 UV(ultra violet) 센서(240M) 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈(240)은, 예를 들면, 후각(e-nose) 센서, 일렉트로마이오그라피(EMG) 센서, 일렉트로엔씨팔로그램(EEG) 센서, 일렉트로카디오그램(ECG) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈(240)은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치(201)는 프로세서(210)의 일부로서 또는 별도로, 센서 모듈(240)을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서(210)가 슬립(sleep) 상태에 있는 동안, 센서 모듈(240)을 제어할 수 있다.
입력 장치(250)는, 예를 들면, 터치 패널(252), (디지털) 펜 센서(254), 키(256), 또는 초음파 입력 장치(258)를 포함할 수 있다. 터치 패널(252)은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널(252)은 제어 회로를 더 포함할 수도 있다. 터치 패널(252)은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. (디지털) 펜 센서(254)는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키(256)는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치(258)는 마이크(예: 마이크(288))를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이(260)(예: 디스플레이(160))는 패널(262), 홀로그램 장치(264), 프로젝터(266), 및/또는 이들을 제어하기 위한 제어 회로를 포함할 수 있다. 패널(262)은, 예를 들면, 유연하게, 투명하게, 또는 착용할 수 있게 구현될 수 있다. 패널(262)은 터치 패널(252)과 하나 이상의 모듈로 구성될 수 있다. 홀로그램 장치(264)는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터(266)는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치(201)의 내부 또는 외부에 위치할 수 있다. 인터페이스(270)는, 예를 들면, HDMI(272), USB(274), 광 인터페이스(optical interface)(276), 또는 D-sub(D-subminiature)(278)를 포함할 수 있다. 인터페이스(270)는, 예를 들면, 도 1에 도시된 통신 인터페이스(170)에 포함될 수 있다. 추가적으로 또는 대체적으로, 인터페이스(270)는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈(280)은, 예를 들면, 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈(280)의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스(145)에 포함될 수 있다. 오디오 모듈(280)은, 예를 들면, 스피커(282), 리시버(284), 이어폰(286), 또는 마이크(288) 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다. 카메라 모듈(291)은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다. 전력 관리 모듈(295)은, 예를 들면, 전자 장치(201)의 전력을 관리할 수 있다. 한 실시예에 따르면, 전력 관리 모듈(295)은 PMIC(power management integrated circuit), 충전 IC, 또는 배터리 또는 연료 게이지를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리(296)의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리(296)는, 예를 들면, 충전식 전지 및/또는 태양 전지를 포함할 수 있다.
인디케이터(297)는 전자 장치(201) 또는 그 일부(예: 프로세서(210))의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터(298)는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동, 또는 햅틱 효과 등을 발생시킬 수 있다. 전자 장치(201)는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있는 모바일 TV 지원 장치(예: GPU)를 포함할 수 있다. 본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치(예: 전자 장치(201))는 일부 구성요소가 생략되거나, 추가적인 구성요소를 더 포함하거나, 또는, 구성요소들 중 일부가 결합되어 하나의 개체로 구성되되, 결합 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
도 3은 다양한 실시예에 따른 프로그램 모듈의 구성을 도시한 블록도이다.
도 3을 참조하면, 프로그램 모듈(310)(예: 프로그램(140))은 전자 장치(예: 전자 장치(101))에 관련된 자원을 제어하는 운영 체제 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 운영 체제는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 도 3을 참조하면, 프로그램 모듈(310)은 커널(320)(예: 커널(141)), 미들웨어(330)(예: 미들웨어(143)), (API(360)(예: API(145)), 및/또는 어플리케이션(370)(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 전자 장치 상에 프리로드 되거나, 외부 전자 장치(예: 전자 장치(102, 104), 서버(106) 등)로부터 다운로드 가능하다.
커널(320)은, 예를 들면, 시스템 리소스 매니저(321) 및/또는 디바이스 드라이버(323)를 포함할 수 있다. 시스템 리소스 매니저(321)는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 한 실시예에 따르면, 시스템 리소스 매니저(321)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버(323)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다. 미들웨어(330)는, 예를 들면, 어플리케이션(370)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(370)이 전자 장치 내부의 제한된 시스템 자원을 사용할 수 있도록 API(360)를 통해 다양한 기능들을 어플리케이션(370)으로 제공할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 런타임 라이브러리(335), 어플리케이션 매니저(341), 윈도우 매니저(342), 멀티미디어 매니저(343), 리소스 매니저(344), 파워 매니저(345), 데이터베이스 매니저(346), 패키지 매니저(347), 연결 매니저(348), 통지 매니저(349), 위치 매니저(350), 그래픽 매니저(351), 또는 보안 매니저(352) 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리(335)는, 예를 들면, 어플리케이션(370)이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리(335)는 입출력 관리, 메모리 관리, 또는 산술 함수 처리를 수행할 수 있다. 어플리케이션 매니저(341)는, 예를 들면, 어플리케이션(370)의 생명 주기를 관리할 수 있다. 윈도우 매니저(342)는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(343)는 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(344)는 어플리케이션(370)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(345)는, 예를 들면, 배터리의 용량 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보를 제공할 수 있다. 한 실시예에 따르면, 파워 매니저(345)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다. 데이터베이스 매니저(346)는, 예를 들면, 어플리케이션(370)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(347)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다.
연결 매니저(348)는, 예를 들면, 무선 연결을 관리할 수 있다. 통지 매니저(349)는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 위치 매니저(350)는, 예를 들면, 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저(351)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저(352)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화(telephony) 매니저 또는 전술된 구성요소들의 기능들의 조합을 형성할 수 있는 하는 미들웨어 모듈을 포함할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 미들웨어(330)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. API(360)는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(370)은, 예를 들면, 홈(371), 다이얼러(372), SMS/MMS(373), IM(instant message)(374), 브라우저(375), 카메라(376), 알람(377), 컨택트(378), 음성 다이얼(379), 이메일(380), 달력(381), 미디어 플레이어(382), 앨범(383), 시계(384), 헬스 케어(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(예: 기압, 습도, 또는 온도 정보) 제공 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 전자 장치와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션에서 발생된 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치의 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 또는 외부 전자 장치에서 동작하는 어플리케이션을 설치, 삭제, 또는 갱신할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치의 속성에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치로부터 수신된 어플리케이션을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어(예: 프로세서(210)), 또는 이들 중 적어도 둘 이상의 조합으로 구현(예: 실행)될 수 있으며, 하나 이상의 기능을 수행하기 위한 모듈, 프로그램, 루틴, 명령어 세트 또는 프로세스를 포함할 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다. 다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체(예:메모리(130))에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
도 4는 다양한 실시예들에 따른 적응형 여행 일정을 제공하는 전체 개념도를 도시한 도면이다.
도 4를 참고하면, 적응형 여행 일정 제공 시스템(400)은 여행 전에 사용자가 입력한 정보를 기반으로 여행 일정을 제공하고, 사용자가 여행을 시작하면, 현재 상황 정보에 따라 여행 일정을 실시간으로 조정하여 제안할 수 있다. 상기 상황 정보는 전자 장치(예: 도 1의 전자 장치(101) 및 도 2의 전자 장치(201))에서 직접 인지하거나, 서버 또는 외부 장치로 정보를 요청하여 수신할 수도 있다. 또한, 여행지와 관련된 다양한 메타 정보는 서버 또는 외부 장치로부터 실시간으로 수집하여 현재 상황에 따라 여행 일정을 조정해야 하는지 판단할 수 있다. 상기 여행 일정에는 여행지의 위치, 관람시간, 여행지로 가는 교통편, 여행지 주변 식당, 추천 식당 등 사용자의 동선을 고려한 최적의 여행 경로가 포함될 수 있다.
다양한 실시예들에 따르면, 적응형 여행 일정 제공 시스템(400)은 실시간 정보(410), 장치(예: 도 1의 전자 장치(101) 및 도 2의 전자 장치(201)) 로그 데이터(420) 및 협업 데이터(430)를 이용하여 여행 일정을 분석(440)함으로써, 최적의 여행 일정(450)을 제공할 수 있다. 실시간 정보(410)는 실시간으로 수집되는 상황 정보로서, 예를 들면, 여행 일정에 포함된 위치와 관련된 교통, 날씨, 재해(또는 재난) 등의 정보일 수 있다. 실시간 정보(410)는 각 정보 제공 서버(예: 컨텐츠 제공자)로부터 각각 획득하거나, 하나의 정보 제공 서버로부터 획득할 수도 있다. 장치 로그 데이터(420)는 전자 장치의 현재 위치, 전자 장치의 현재 시간, 전자 장치 사용자의 수정 사항을 반영한 데이터를 의미할 수 있다. 예를 들면, 사용자의 수정 사항은 여행 일정에 포함된 여행지, 식당을 추가, 삭제, 변경하는 것일 수 있다. 협업 데이터(430)는 복수의 사용자 프로파일을 이용하여 전자 장치의 사용자에게 적절한 여행지, 경로를 추천하는 것을 의미할 수 있다. 사용자 프로파일은 사용자의 성별, 국적, 연령에 해당하는 사용자가 선호하는 여행지, 식당, 경로 등을 분석한 통계자료이다.
여행 일정 분석(440)은 실시간으로 처리되며, 실시간 정보(410), 장치 로그 데이터(420) 및 협업 데이터(430)을 종합적으로 고려하여 분석될 수 있다. 여행 일정 분석(440)은 전자 장치에서 직접 분석하거나, 서버 또는 외부 장치로부터 분석된 정보를 획득할 수도 있다.
전자 장치는 여행 일정 분석(440)을 기반으로 전자 장치의 사용자에게 맞는 최적의 여행 일정(450)을 제공할 수 있다. 여행 일정(450)은 지도 상에 여행 경로를 표기한 것으로, 여행지의 위치, 관람시간, 여행지로 가는 교통편, 여행지 주변 식당, 추천 식당 등 사용자의 동선을 고려한 최적의 여행 경로를 포함할 수 있다. 여행 일정(450)은 사용자의 동선을 고려하여 지도 상에 여행지의 위치, 대중교통 이용정보(예: 정류장, 하차 위치, 하차 후 여행지까지 경로 등), 여행지의 주변 식당 위치 등이 표기될 수 있다. 전자 장치는 여행 중에 일어나는 다양한 돌발 상황에 따라 여행 일정을 실시간으로 변경하여 제공함으로써, 사용자가 원래 계획한 일정으로 여행하기 어려운 경우 최적의 차선책을 신속히 제공할 수 있다.
도 5는 다양한 실시예들에 따른 전자 장치와 서버 간의 연결 관계를 도시한 도면이다.
도 5를 참고하면, 전자 장치(510)는 센서부(511), 제어부(512), 인터페이스부(513), 통신부(514) 및 저장부(515)를 포함할 수 있다. 전자 장치(510)는 도 1의 전자 장치(101) 또는 도 2의 전자 장치(201)일 수 있다.
센서부(511, 예: 센서 모듈(240))는 여러 센서들로부터 획득한 정보를 기반으로 위치, 사용자의 상태(예: 신체적 상태, 운동 상태, 피로도, 건강, 감정), 주변 상황(예: 온도, 습도 등) 등의 상황 정보(예: 제1 상황 정보)를 수집할 수 있다. 다양한 실시예들에 따르면, 센서부(511)는 전자 장치(510)와 유선 또는 무선으로 연결된 웨어러블 디바이스 또는 외부 장치(예: IoT(Internet Of Things)로부터 상기 상황 정보를 수집할 수 있다.
제어부(512, 예: 프로세서(120) 또는 프로세서(210))는 전자 장치(510)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 제어부(512)는 사용자로부터 입력된 정보(예: 항공, 숙소, 선호 여행지 등)를 기반으로 여행 일정을 제공할 수 있다. 제어부(512)는 상황 정보에 따라 여행 일정을 변경할 수 있다. 예를 들면, 제어부(512)는 여행 일정, 여행 일정 제공 서버(550)로부터 받은 메타 정보, 사용자 요청 및 상황 정보를 기반으로 여행 일정을 조정할 수 있다.
인터페이스부(513, 예: 입출력 인터페이스(150) 또는 디스플레이(160))는 사용자로부터 입력을 수신하고, 입력에 따른 정보를 출력(표시)할 수 있다. 인터페이스부(513)는 정보를 입력하고, 여행 일정을 선택하고, 수정하는 사용자 인터페이스를 제공할 수 있다. 또한, 인터페이스부(513)는 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(510)의 다른 구성요소(예: 제어부(512))로 전달하거나, 또는 전자 장치(510)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
통신부(514, 예: 통신 인터페이스(170))는 외부 서버, 클라우드 및 근거리에 위치한 타 기기들과 CDMA, GSM, WCDMA, LTE 등과 같은 원거리 통신 및 WiFi, Bluetooth, NFC, UWB 등과 같은 근거리 통신 등 다양한 통신 방식에 의해 통신할 수 있다. 통신부(514)는 정보 제공 서버(560, 또는 컨텐츠 제공자)로부터 제2 상황 정보(예: 교통, 날씨, 재해)를 수신할 수 있다. 통신부(514)는 여행 일정 제공 서버(550)로 항공, 숙소 등의 정보를 전송하고, 여행 일정 제공 서버(550)로부터 상기 정보에 기반한 여행 일정을 수신할 수 있다. 통신부(514)는 실시간으로 또는 주기적으로 하나의 정보 제공 서버(560)로부터 모든 상황 정보를 수신하거나, 각 정보 제공 서버로부터 각 상황 정보를 수신할 수 있다.
여기서, 정보 제공 서버(560)는 여행 일정 제공 서버(550)일 수도 있다. 예를 들면, 통신부(514)는 전자 장치(510)의 위치 정보를 정보 제공 서버(560)로 전송하고, 정보 제공 서버(560)로부터 전송된 위치 정보와 관련된 상황 정보를 수신할 수 있다. 즉, 하나의 정보 제공 서버(560)가 상기 위치 정보와 관련된 교통, 날씨, 재해 등의 제2 상황 정보를 전자 장치(510)로 전송할 수 있다. 또는, 교통 제공 서버는 상기 위치 정보와 관련된 교통 정보를 전자 장치(510)로 전송하고, 날씨 제공 서버는 상기 위치 정보와 관련된 날씨 정보를 전자 장치(510)로 전송하며, 재해 제공 서버는 상기 위치 정보와 관련된 재해 정보를 전자 장치(510)로 전송할 수 있다.
저장부(515, 예: 메모리(130) 또는 메모리(230))는 전자 장치(510)를 동작시키는데 필요한 정보(예: 프로그램, 명령어(instruction)), 여행 일정 및 상황 정보를 저장할 수 있다.
여행 일정 제공 서버(550)는 정보 수집부(551), 일정 생성부(552), 통신부(553), 사용자 선호 기반 추천 엔진(554) 및 저장부(555)를 포함할 수 있다.
정보 수집부(551)는 실시간으로 또는 주기적으로 상황 정보 및 여행지 정보를 수집할 수 있다. 정보 수집부(551)는 정보 제공 서버(560)로부터 교통 상황(561), 날씨(562), 재해 정보(563) 및 여행지 정보(564)를 수신할 수 있다.
일정 생성부(552)는 전자 장치(510)로부터 입력된 정보에 기반하여 여행 일정을 생성할 수 있다. 일정 생성부(552)는 사용자 선호 기반 추천 엔진(554)을 이용하여 상기 여행 일정을 생성할 수 있다. 상기 여행 일정은 항공, 숙소 등의 정보를 기반으로 하나 또는 하나 이상일 수 있다. 예를 들면, 일정 생성부(552)는 여행지의 중요도, 사용자의 선호도, 교통 상황 등에 맞춰 일정과 경로를 생성할 수 있다. 일정 생성부(552)는 사용자 선호 기반 추천 엔진(554)을 이용하여 전자 장치(510)의 사용자와 유사한 다른 사용자들의 선호 일정과 정보를 함께 반영하여 여행 일정을 생성할 수 있다. 일정 생성부(552)는 사용자의 요청에 따라 생성된 여행 일정을 변경, 추가, 삭제할 수 있다.
사용자 선호 기반 추천 엔진(554)은 연령별, 국적별, 성별 등의 사용자 프로파일에 따라 사용자들의 여행지 선호도, 선호 경로 등을 분석하고, 추천 여행지를 선별할 수 있다.
다양한 실시예들에 따르면, 정보 수집부(551), 일정 생성부(552) 및 사용자 선호 기반 추천 엔진(554)은 하나의 프로세서에 모두 포함될 수 있다.
통신부(553)는 전자 장치(510)와 통신할 수 있다. 통신부(553)는 전자 장치(510)로부터 정보를 수신하고, 정보에 기반한 여행 정보를 전자 장치(510)로 전송할 수 있다.
저장부(555)는 여행 일정 제공 서버(550)를 동작시키는데 필요한 정보(예: 프로그램, 명령어(instruction)), 여행 일정 및 상황 정보를 저장할 수 있다.
다양한 실시예들에 따른 시스템은 정보를 전송하고, 상기 정보에 기반한 제1 일정 정보를 수신하고, 제1 상황 정보를 수집하고, 상기 제1 상황 정보를 기반으로 상기 제1 일정 정보의 적어도 일부를 변경하여 제2 일정 정보를 생성하고, 상기 제2 일정 정보를 제공하는 전자 장치, 및 상기 정보에 기반하여 상기 제1 일정 정보를 생성하고, 생성된 제1 일정 정보를 상기 전자 장치로 전송하는 서버를 포함할 수 있다.
다양한 실시예들에 따른 전자 장치는 통신 인터페이스, 메모리, 및 상기 메모리와 전기적으로 연결된 프로세서를 포함하고, 상기 프로세서는 외부 장치로 정보를 전송하고, 상기 정보에 기반한 제1 일정 정보를 상기 외부 장치로부터 수신하고, 상황 정보를 기반으로 상기 제1 일정 정보의 적어도 일부를 변경하여 제2 일정 정보를 생성하고, 상기 제2 일정 정보를 제공하도록 설정될 수 있다.
상기 전자 장치는 인터페이스부를 더 포함하고, 상기 프로세서는 상기 인터페이스부를 통해 사용자로부터 상기 정보를 입력받거나, 어플리케이션으로부터 상기 정보를 추출하도록 설정될 수 있다.
상기 정보는 항공, 숙소, 사용자 정보, 선호 여행지, 선호 일정, 또는 여행 카테고리 중 적어도 하나를 포함할 수 있다.
상기 프로세서는 사용자의 요청에 따라 상기 제1 일정 정보를 수정하고, 수정된 제1 일정 정보를 등록하도록 구성될 수 있다.
상기 전자 장치는 센서부를 더 포함하고, 상기 프로세서는 상기 센서부를 이용하여 제1 상황 정보를 수집하거나, 상기 외부 장치로부터 제2 상황 정보를 수신하도록 설정될 수 있다.
상기 프로세서는 통신 요금 발생 여부, 전자 장치의 설정 정보에 기반하여 상기 제2 상황 정보를 수신하는 시점을 조절하도록 설정될 수 있다.
상기 제1 상황 정보는 시간, 위치, 온도, 습도 또는 생체정보 중 적어도 하나를 포함할 수 있다. 상기 제2 상황 정보는, 교통, 날씨, 재해 또는 여행지 관련 정보 중 적어도 하나를 포함할 수 있다.
상기 프로세서는 상기 제1 일정 정보와 상기 상황 정보를 비교하고, 상기 비교 결과에 기반하여 일정 변경이 필요한지 여부를 판단하고, 상기 판단 결과에 따라 상기 제2 일정 정보를 생성하도록 설정될 수 있다.
상기 프로세서는 상기 사용자의 요청, 상기 전자 장치의 설정 정보, 실시간 또는 주기적으로 상기 외부 장치로 상기 제2 상황 정보를 요청하도록 설정될 수 있다.
상기 프로세서는 일정이 완료되는지 여부를 판단하고, 상기 일정이 완료되지 않은 경우, 상기 제2 일정 정보를 생성하고, 제공하는 동작을 반복적으로 수행하도록 설정될 수 있다.
다양한 실시예들에 따른 서버는 통신부, 메모리, 및 프로세서를 포함하고, 상기 프로세서는 전자 장치로부터 정보를 수신하고, 상황 정보를 수집하고, 상기 정보 및 상기 상황 정보에 기반하여 제1 일정 정보를 생성하고, 생성된 제1 일정 정보를 상기 전자 장치로 전송하고, 상기 상황 정보가 업데이트되면 업데이트된 상황 정보를 상기 전자 장치로 전송하도록 설정될 수 있다.
도 6은 다양한 실시예들에 따른 전자 장치와 서버 간의 동작 순서를 도시한 흐름도이다.
도 6을 참조하면, 동작(601)에서, 전자 장치(510)는 사용자로부터 정보를 입력받을 수 있다. 여기서, 상기 정보는 여행 일정을 계획할 때 필요한 것으로서, 예를 들면, 항공(예: 출발/도착 위치와 시간), 숙소(예: 체크인/체크아웃 날짜와 시간), 선호 여행지(예: 여행지 이름 또는 위치), 여행 카테고리(예: 관광, 쇼핑, 가족, 효도, 액티비티, 식도락, 효도) 등에 대한 것일 수 있다. 전자 장치(510)는 상기 정보를 사용자로부터 직접 입력받을 수도 있고, 메시지, 여행, 숙박 관련 어플리케이션으로부터 자동으로 추출할 수도 있다. 자동 추출 시, 전자 장치(510)는 사용자로부터 정보 추출을 허용하는 어플리케이션을 선택받을 수 있다. 또는, 전자 장치(510)는 설치된 어플리케이션들 중 여행 일정에 필요한 정보를 추출 가능한 어플리케이션을 판단하고, 판단된 어플리케이션으로부터 정보를 추출할 수도 있다.
한 실시예에 따르면, 전자 장치(510)는 설치된 복수의 어플리케이션들로부터 정보를 획득하여, 획득된 정보를 각각 또는 조합하여 여행 일정에 필요한 정보를 확인할 수 있다. 한 실시예에 따르면, 전자 장치(510)는 여행 일정에 필요한 정보를 추출 가능한 어플리케이션의 종류를 판단하고, 외부 서버로부터 어플리케이션을 다운로드받아 어플리케이션을 설치할 수 있다.
동작(603)에서, 전자 장치(510)는 상기 입력된 정보를 여행 일정 제공 서버(550)로 전송할 수 있다. 이때, 전자 장치(510)는 전자 장치(510)의 사용자에 대한 정보도 함께 전송할 수 있다. 사용자 정보는 전자 장치(510)를 사용하는 사용자에 대한 것으로, 예를 들면, 성별, 국적, 연령, 또는 여행 이력 중 적어도 하나를 포함할 수 있다. 이러한 사용자 정보는 사용자로부터 직접 입력받을 수도 있고, 전자 장치(510)가 장치의 사용 이력을 기반으로 생성할 수도 있다. 또한 상기 사용자 정보는 외부 장치(예: 서버)를 통해 획득된 사용자 정보를 포함할 수 있다. 상기 사용자 정보는 사용자의 선택에 따라 여행 일정 제공 서버(550)에 전송될 수도 있고 전송되지 않을 수도 있다. 사용자의 개인 정보 보호를 위해 전자 장치(510)는 개인 정보를 침해하지 않거나, 사용자가 허용한 사용자 정보만 전송할 수 있다. 예를 들면, 사용자는 성별, 국적만 제공하도록 허용하거나, 성별, 연령만 제공하도록 허용하거나, 성별, 국적, 연령, 여행 이력을 제공하도록 허용할 수 있다.
또는, 전자 장치(510)는 상기 사용자 정보로서 함께 여행할 사용자 정보도 함께 전송할 수 있다. 예를 들어, 사용자가 유아, 어린이를 동반한 가족 여행을 준비하는 경우, 사용자는 유아, 어린이에 대한 성별, 연령을 사용자 정보로서 입력할 수 있다. 또는, 사용자가 부모님을 동반한 효도 여행을 준비하는 경우, 사용자는 부모님에 대한 성별, 연령을 사용자 정보로서 입력할 수 있다. 또는, 사용자가 유아, 부모님을 동반한 가족 여행을 준비하는 경우, 사용자는 유아, 부모님에 대한 성별, 연령을 사용자 정보로서 입력할 수 있다.
동작(605)에서, 여행 일정 제공 서버(550)는 상기 전송된 정보에 기반하여 여행 일정을 생성할 수 있다. 여행 일정 제공 서버(550)는 상기 정보를 기반으로 여행 일정을 생성하고, 상기 사용자 정보를 기반으로 여행 일정을 수정할 수 있다. 예를 들면, 여행 일정 제공 서버(550)는 사용자 정보에 대응하는 사용자 프로파일을 기반으로 상기 사용자와 유사한 성별, 국적, 연령의 다른 사용자들이 선호한 여행지, 일정을 추출하고, 추출된 여행지, 일정을 이용하여 상기 여행 일정을 수정할 수 있다.
한 실시예에 따르면, 여행 일정 제공 서버(550)는 소셜 네트워크 서비스(Social Network Services/sites; SNS), 이메일(EMAIL) 또는 인터넷 등을 통해서 여행지를 분석하거나 여행지 관련 정보를 검색하고, 사용자가 선호하는 여행지의 정보를 획득 및 분석하여 상기 여행 일정을 수정할 수 있다. 한 실시예에 따르면, 여행 일정 제공 서버(550)는 인터넷 상에서 여행지와 연관된 정보를 검색하고, 검색된 정보 중에서 여행지에서 문제의 소지가 있을 수 있다고 판단되는 특정 단어가 포함되어 있는지 확인할 수 있다. 여행 일정 제공 서버(550)는 검색된 정보 중에서 특정 단어(예: 테러, 재난, 호우, 지진)가 포함되는 경우, 여행 일정을 변경할 수 있다.
또는, 여행 일정 제공 서버(550)는 여행 일자를 고려하여 예상 교통 상황 또는 예상 날씨 들을 종합적으로 고려하여 상기 여행 일정을 생성 또는 수정할 수 있다. 한 실시예에 따르면, 여행 일정 제공 서버(550)는 교통 상황 분석에 기반하여 도로가 혼잡하거나 교통 상황이 여행 일정을 수행하는데 문제가 있다고 판단되는 경우, 여행 일정을 변경할 수 있다.
동작(607)에서, 여행 일정 제공 서버(550)는 여행 일정을 추천할 수 있다. 여행 일정 제공 서버(550)는 생성 및 수정된 여행 일정을 하나 또는 하나 이상 제공할 수 있다. 예를 들면, 여행 일정은 사용자 정보 또는 여행 카테고리 별로 하나 또는 하나 이상일 수 있다.
동작(609)에서, 전자 장치(510)는 추천된 여행 일정 중에서 사용자로부터 하나 또는 하나 이상의 여행 일정을 선택받을 수 있다. 전자 장치(510)는 추천된 여행 일정 중에서 사용자의 요청이 있는 경우 여행 일정을 수정할 수 있다. 예를 들면, 전자 장치(510)는 사용자로부터 하나의 여행 일정을 선택받고, 선택된 여행 일정에서 사용자의 입력에 따라 여행지, 식당, 경로 등을 추가, 삭제, 변경할 수 있다. 사용자는 여행 일정의 수정이 완료되면, 최종적으로 하나 또는 하나 이상의 여행 일정을 선택할 수 있다.
동작(611)에서, 여행 일정 제공 서버(550)는 선택된 여행 일정을 전자 장치(510)로 전송할 수 있다. 여행 일정 제공 서버(550)는 사용자의 입력에 따라 여행 일정이 수정된 경우 사용자 정보와 매칭시켜 수정된 여행 일정을 저장할 수 있다. 이는, 추후 다른 사용자에게 여행 일정 추천 시 이용하기 위한 것이다.
동작(613)에서, 전자 장치(510)는 전송된 여행 일정을 등록시킬 수 있다. 전자 장치(510)는 전송된 여행 일정을 등록하기 전에 사용자의 요청에 따라 여행 일정을 수정할 수도 있다. 즉, 사용자는 여행 일정 제공 서버(550)에서 여행 일정을 변경한 후 전자 장치(510)로 다운로드하여 바로 등록할 수도 있고, 여행 일정 제공 서버(550)로부터 추천된 여행 일정을 전자 장치(510)에 다운로드한 후 변경하여 등록할 수도 있다. 전자 장치(510)는 여행이 시작되면 등록된 여행 일정을 제공할 수 있다. 전자 장치(510)는 어플리케이션을 통해 상기 여행 일정을 제공할 수 있다. 어플리케이션 내에는 여행 시작을 알리는 옵션 항목(버튼 또는 키)이 포함되어 있고, 사용자는 옵션 항목을 선택함으로써, 여행을 시작할 수 있다. 전자 장치(510)는 여행 시작 항목이 눌러지면 여행이 시작되었다고 판단하고 여행 일정을 표시할 수 있다.
동작(615)에서, 여행 일정 제공 서버(550)는 상황 정보를 전자 장치(510)로 전송할 수 있다. 상황 정보는 교통, 날씨, 재해, 여행지 관련 정보 등을 포함할 수 있다. 도면에서는 여행 일정 제공 서버(550)가 전자 장치(510)로 상황 정보를 전송하는 것으로 설명하고 있지만, 정보 제공 서버(560)가 전자 장치(510)로 상황 정보를 전송할 수도 있다. 정보 제공 서버(560)는 하나이거나, 복수개일 수 있다. 한 실시예에 따르면, 상기 상황 정보는 전자 장치(510)가 자체적으로 인터넷을 통해 획득하거나, 전자 장치(510)에서 수신된 이메일, 메시지 등을 분석하여 획득할 수 있다.
동작(617)에서, 전자 장치(510)는 상황 정보를 수집할 수 있다. 상황 정보는 서버로부터 수신된 것일 수도 있고, 전자 장치(510)에 구비된 다양한 센서들로부터 측정된 것일 수도 있다. 전자 장치(510)는 다양한 방법으로 상황 정보를 수집할 수 있다. 전자 장치(510)는 여행 중에 실시간으로 또는 주기적으로 상황 정보를 수집할 수 있다.
동작(619)에서, 전자 장치(510)는 상기 상황 정보에 기반하여 여행 일정을 변경할 수 있다. 전자 장치(510)는 상기 상황 정보와 상기 여행 일정을 비교하여 여행 일정에 변경이 필요한지 여부를 판단할 수 있다. 예를 들면, 여행 일정에는 날짜별 또는 시간별로 여행지, 식당 등의 위치가 포함되어 있는데, 전자 장치(510)는 여행지의 위치와 현재 위치가 다른 경우 여행 일정에 변경이 필요한 것으로 판단할 수 있다. 왜냐하면, 여행 중에는 교통, 날씨, 사용자의 컨디션에 따라 원래 계획했던 일정데로 진행하기 어려울 수 있기 때문이다. 따라서, 전자 장치(510)는 여행 중에 실시간으로 상기 여행 일정에 변경이 필요한지 여부를 판단하고, 변경이 필요한 경우 신속히 여행 일정을 변경할 수 있다.
동작(621)에서, 전자 장치(510)는 변경된 여행 일정을 제공할 수 있다. 변경된 여행 일정은 차선책으로 원래 일정 A를 진행할 수 없는 경우 그 다음에 수행 가능한 최적의 일정 B일 수 있다.
동작(623)에서, 여행 일정 제공 서버(550)는 상황 정보를 전자 장치(510)로 전송할 수 있다. 여행 일정 제공 서버(550)는 실시간으로, 주기적으로 또는 전자 장치(510)의 요청 또는 상황 정보의 업데이트 중 적어도 하나에 해당하는 경우, 상황 정보를 전자 장치(510)로 전송할 수 있다.
다양한 실시예들에 따르면, 여행 일정이 시작되면, 전자 장치(510)는 동작(617) 내지 동작(621)을 반복적으로 수행함으로써, 여행 시 일어나는 돌발상황에 따라 사용자가 원래 일정데로 진행하기 어려울 때 최적의 차선책을 제공할 수 있다. 따라서, 전자 장치(510)는 장치 내에서 자체적으로 수집한 실시간 상황 및 여행 일정 제공 서버(550)로부터 미리 수신된 정보를 이용하여 여행 일정을 변경하기 때문에, 전자 장치(510)에 저장된 또는 등록된 정보가 외부로 유출되는 것을 방지함으로써, 사용자의 개인 정보를 보호할 수 있다.
한 실시예에 따르면, 전자 장치(510)는 외부 서버(예: 여행 일정 제공 서버(550))와 연동할 수 없는 경우, 전자 장치(510) 내부에 포함된 상황 정보, 센싱 정보 등에 기반하여 상황 정보를 파악하여 여행 일정을 조정할 수 있다.
도 7은 다양한 실시예들에 따른 서버의 동작 방법을 도시한 흐름도이다.
도 7을 참조하면, 동작(701)에서, 여행 일정 제공 서버(550)의 프로세서는 전자 장치(510)로부터 정보를 수신할 수 있다. 상기 정보는 여행 일정을 생성할 때 필요한 것으로서, 예를 들면, 항공(예: 출발/도착 위치와 시간), 숙소(예: 체크인/체크아웃 날짜와 시간), 선호 여행지(위치), 선호 일정(시간과 위치) 또는 여행 카테고리 중 적어도 하나를 포함할 수 있다. 또는, 상기 정보는 전자 장치(510)의 사용자 정보를 포함할 수 있다.
동작(703)에서, 상기 프로세서는 상기 정보에 기반하여 선호 일정을 수집할 수 있다. 예를 들면, 상기 프로세서는 여행 국가/지역에 머무르는 시간, 숙소의 위치를 고려하여 방문 가능한 여행지를 추출하고, 추출된 여행지 중에서 선호 여행지, 선호 일정을 고려한 선호 일정을 수집할 수 있다. 이때, 상기 프로세서는 상기 사용자 정보와 유사 또는 동일한 다른 사용자들의 여행 일정을 선호 일정으로 수집할 수 있다. 상기 프로세서는 여행 국가/지역에 머무르는 날짜의 계절이 여름인지, 겨울인지에 따라 외부 여행지(예: 자연 경관)를 우선적으로 추출하거나 내부 여행지(예: 박물관)를 우선적으로 추출할 수 있다. 또는, 여행 시간을 고려하여 일출을 보거나, 야경을 볼 수 있는 여행지를 우선적으로 추출할 수 있다.
동작(705)에서, 상기 프로세서는 상기 정보에 기반하여 상황 정보를 수집할 수 있다. 예를 들면, 상기 프로세서는 선호 일정에 포함된 위치에서 예측되는 교통 상황, 날씨, 재해 등의 정보를 상황 정보로서 수집할 수 있다.
표 1은 수집된 정보를 나타낸다.
종류 정보
항공 - 도착지/출발지
- 도착/출발 일시
- 짐 찾고 나오는 평균 시간
호텔 - 위치
- 체크인/체크아웃 일시
여행지 - 위치
- open/close 시간
- 관람 소요 시간
- 대기시간(실시간)
- 관람 가능 여부(실시간), 특정 이벤트 확인(실시간)
- 사용자 선호도(예: 종교)
- 평균 주차시간
- 날씨(실시간)
- 여행지 중요도
- 테마별 중요도
- 사용자 중요도
- 년간 방문자수
- 해당 여행자의 방문 여부에 따른 가중치 산정
- 사용자들이 산정한 선호도(연령별, 성별, 국가별)
식당 - open/close 시간
- 대기시간(실시간)
- 식사시간
- 주차시간
- 식사 가능 여부(실시간)
- 쉬는 시간
- 리뷰(맛/분위기..)
교통 - 자가용/자전거/대중교통
- 도착예정시간 계산 시 고려 요소(실시간)
- 요일, 시간, 날씨
비상 상황 - 재해 정보(실시간)
- 일정에 포함된 지역의 상황
- 종류(호우주의보, 테러, 태풍 ..)
- 못 가는 여행지 리스트업
표 1을 참조하면, 수집된 정보는 항공, 호텔, 여행지, 식당, 교통, 비상 상황에 대한 세부 정보들을 포함할 수 있다. 상기 프로세서는 표 1에 포함된 정보를 이용하여 기본 일정을 생성할 수 있다.
동작(707)에서, 상기 프로세서는 상기 수집된 정보를 종합적으로 고려하여 기본 일정(또는 여행 일정)을 생성할 수 있다. 기본 일정은 하나이거나, 하나 이상일 수 있다. 예를 들면, 기본 일정은 사용자 정보 또는 여행 카테고리 별로 하나 또는 하나 이상일 수 있다.
동작(709)에서, 상기 프로세서는 상기 생성된 기본 일정을 제공할 수 있다. 예를 들면, 상기 프로세서는 웹 페이지에 상기 기본 일정을 표시할 수 있다. 전자 장치(510)는 상기 웹페이지를 제공하는 사용자 인터페이스를 통해 상기 기본 일정을 표시할 수 있다. 상기 기본 일정은 시간에 따른 여행 경로를 정한 것으로, 여행지의 위치, 관람시간, 여행지로 가는 교통편, 여행지 주변 식당, 추천 식당 중 적어도 하나를 포함할 수 있다.
동작(711)에서, 상기 프로세서는 사용자로부터 상기 제공된 기본 일정에 대한 선택을 수신할 수 있다. 상기 사용자는 하나 또는 하나 이상의 기본 일정을 선택할 수 있다. 예를 들면, 상기 사용자는 자신의 사용자 정보에 해당하는 기본 일정과, 여행 카테고리(예: 가족, 효도)에 해당하는 기본 일정을 선택할 수 있다.
동작(713)에서, 상기 프로세서는 상기 선택된 기본 일정에 대한 변경 요청이 있는지 판단할 수 있다. 상기 사용자 인터페이스에는 상기 기본 일정을 추가, 삭제, 수정하는 옵션 항목이 표시될 수 있다. 사용자는 상기 옵션 항목을 선택하여 상기 기본 일정을 변경할 수 있다.
상기 사용자의 변경 요청이 있는 경우, 동작(715)에서, 상기 프로세서는 사용자의 변경 요청에 기반하여 상기 기본 일정을 변경할 수 있다. 예를 들면, 상기 프로세서는 선택된 기본 일정에서 사용자의 입력에 따라 여행지, 교통, 식당, 경로 등을 추가, 삭제, 수정할 수 있다. 사용자는 상기 기본 일정의 변경이 완료되면, 최종적으로 하나 또는 하나 이상의 여행 일정을 선택할 수 있다. 상기 프로세서는 기본 일정이 변경된 경우 사용자 정보와 매칭시켜 변경된 여행 일정을 저장함으로써, 추후 다른 사용자에게 기본 일정 추천 시 이용할 수 있다.
동작(717)에서, 상기 프로세서는 상기 기본 일정을 전자 장치(510)로 전송할 수 있다. 상기 프로세서는 동작(713)에서 상기 기본 일정에 대한 변경 요청이 없는 경우, 선택한 기본 일정을 전자 장치(510)로 전송할 수 있다. 상기 프로세서는 동작(713)에서 상기 기본 일정에 대한 변경 요청이 있는 경우, 변경된 기본 일정을 전자 장치(510)로 전송할 수 있다. 상기 프로세서는 상기 기본 일정뿐만 아니라 각 기본 일정들이 어떤 가중치(예: 연령에 따른 피로도를 고려한 일정, 출신 지역에 따른 선호 먹거리를 고려한 일정 등)로 정해졌는지 여부를 나타내는 일정 인지 메타 정보를 함께 전자 장치(510)로 전송할 수 있다.
동작(719)에서, 상기 프로세서는 상황 정보를 업데이트할 수 있다. 상기 프로세서는 실시간으로 또는 주기적으로 정보 제공 서버(560)로부터 상황 정보를 수집할 수 있다. 상기 프로세서는 상기 상황 정보에 기초하여 기존 상황 정보를 수정하거나, 삭제할 수 있다.
동작(721)에서, 상기 프로세서는 상기 전송된 기본 일정과 관련된 상황 정보를 필터링할 수 있다. 상기 프로세서는 전체 상황 정보에서 상기 전송된 기본 일정에 포함된 여행지에서 예측되는 교통 상황, 날씨, 재해 등의 상황 정보만을 추출할 수 있다. 상기 상황 정보에 대한 필터링은 상기 사용자가 기설정한 우선순위 또는 사용자의 선택에 기반하여 필터링될 수 있다.
동작(723)에서, 상기 프로세서는 상기 필터링된 상황 정보를 전자 장치(510)로 전송할 수 있다. 이때, 상기 프로세서는 실시간으로, 주기적으로 또는 전자 장치(510)의 요청 또는 상기 상황 정보가 변경된 경우 중 적어도 하나에 해당하는 경우, 상기 필터링된 상황 정보를 전자 장치(510)로 전송할 수 있다. 상기 프로세서는 어떤 상황 정보가 변경된 것인지도 메타 정보로서 함께 전송할 수 있다. 한 실시예들에 따르면, 상기 프로세서는 전자 장치(510)로부터 수신된 요청에 의하여 상기 상황 정보를 전자 장치(510)로 전송할 수 있다.
도 8은 다양한 실시예들에 따른 전자 장치의 동작 방법을 도시한 흐름도이다.
도 8을 참조하면, 동작(801)에서, 전자 장치(510)의 제어부(512)는 여행 일정 제공 서버(550)로부터 입력한 정보에 기반한 기본 일정을 수신할 수 있다. 제어부(512)는 인터페이스부(513)를 통해 사용자로부터 상기 정보를 직접 입력받을 수도 있고, 메시지, 여행, 숙박 관련 어플리케이션으로부터 자동으로 추출할 수도 있다. 자동 추출 시, 제어부(512)는 사용자로부터 정보 추출을 허용하는 어플리케이션을 선택받을 수 있다. 또는, 제어부(512)는 설치된 어플리케이션들 중 여행 일정에 필요한 정보를 추출 가능한 어플리케이션을 판단하고, 판단된 어플리케이션으로부터 정보를 추출할 수도 있다. 상기 정보는 사용자의 성별, 국가, 연령대, 여행 카테고리(예: 많은 관광지 방문, 추천 식당, 휴식, 쇼핑, 럭셔리, 효도 등), 항공, 숙소, 교통편(예: 대중교통, 자가용, 자전거), 라이프 로그 정보(예: 감정 상태, 건강 상태 등) 중 적어도 하나를 포함할 수 있다. 제어부(512)는 상기 정보를 통신부(514)를 통해 여행 일정 제공 서버(550)로 전송하고, 상기 정보에 기반하여 여행 일정 제공 서버(550)에서 생성한 기본 일정을 수신할 수 있다.
동작(803)에서, 제어부(512)는 사용자로부터 일정 변경이 요청되는지 여부를 판단할 수 있다. 사용자는 상기 기본 일정을 다운로드하기 전에 여행 일정 제공 서버(550)에서 상기 기본 일정을 변경할 수도 있고, 상기 기본 일정을 다운로드한 후 전자 장치(510)에서 상기 기본 일정을 변경할 수도 있다. 제어부(512)는 상기 수신된 기본 일정을 인터페이스부(513)를 통해 표시할 수 있다. 상기 기본 일정이 표시되는 사용자 인터페이스에는 상기 기본 일정을 추가, 삭제, 수정하는 옵션 항목이 표시될 수 있다. 사용자는 상기 옵션 항목을 선택하여 상기 기본 일정을 변경할 수 있다.
상기 일정 변경이 요청된 경우, 동작(805)에서, 제어부(512)는 상기 기본 일정을 변경하여 제1 일정 정보를 등록할 수 있다. 일정 변경은 예를 들면, 상기 기본 일정에서 여행지, 교통, 식당, 경로 등을 추가, 삭제, 수정하는 것일 수 있다. 상기 일정 변경이 요청되지 않은 경우, 제어부(512)는 상기 기본 일정을 제1 일정 정보로서 등록할 수 있다.
동작(807)에서, 제어부(512)는 일정이 시작되었는지 확인할 수 있다. 예를 들면, 상기 제1 일정 정보는 어플리케이션(예: 여행 어플리케이션)을 통해 제공될 수 있다. 사용자는 상기 제1 일정 정보를 제공받기 위해 여행 어플리케이션을 실행시키고, 실행된 여행 어플리케이션 내 옵션 항목에서 "일정 시작"을 선택할 수 있다. 일정 시작이 선택되면, 제어부(512)는 일정이 시작되었다고 판단할 수 있다. 사용자는 날짜 별 일정 정보 중에서 하나의 일정 정보를 선택하고, 일정 시작을 선택할 수 있다.
동작(809)에서, 제어부(512)는 상기 제1 일정 정보를 제공할 수 있다. 상기 제1 일정 정보는 시간에 따른 위치 및 여행지 정보를 포함할 수 있다. 예를 들면, 상기 제1 일정 정보는 9시에 숙소를 출발하여, 10시에 제1 위치에 도착하여 주변 여행지를 관람하고, 12시에 식당에 도착하여 점심식사 후, 오후 2시에 제2 위치로 이동하여 주변 여행지를 관람하고, 오후 5시에 제3 위치로 이동하여 주변 여행지를 관람하고, 오후 8시에 제4 위치로 이동하여 야경을 보고 오후 10시에 숙소로 돌아오는 것일 수 있다. 따라서, 제어부(512)는 상기 제1 일정 정보에서 현재 시간에 해당하는 여행지에 대한 정보를 제공할 수 있다.
동작(811)에서, 제어부(512)는 상황 정보를 수집할 수 있다. 상황 정보는 전자 장치(510)에서 자체적으로 수집한 제1 상황 정보 또는 여행 일정 제공 서버(550) 또는 정보 제공 서버(560)로부터 수신되는 제2 상황 정보를 포함할 수 있다. 상기 제1 상황 정보는 시간, 위치, 온도, 습도 또는 생체정보(예: 신체적 상태, 운동 상태, 피로도, 건강, 감정) 중 적어도 하나를 포함할 수 있다. 상기 제2 상황 정보는 교통, 날씨 또는 재해 중 적어도 하나를 포함할 수 있다. 제어부(512)는 실시간으로 또는 주기적으로 상기 상황 정보를 수집할 수 있다.
다양한 실시예들에 따르면, 제어부(512)는 사용자 요청, 전자 장치(510)의 설정 정보, 실시간 또는 주기적으로 여행 일정 제공 서버(550) 또는 정보 제공 서버(560)로 제2 상황 정보를 요청할 수 있다. 상기 제2 상황 정보를 수신할 때는 데이터 정보 이용료가 발생할 수 있기 때문에, 통신 요금이 부과될 수 있다. 따라서, 제어부(512)는 통신 요금이 발생하지 않는 경우에만 상기 제2 상황 정보를 요청할 수 있다. 예를 들면, 전자 장치(510)의 설정 정보가 "항상 허용"인 경우 제어부(512)는 상기 제2 상황 정보를 요청할 수 있다. 또는, 상기 설정 정보가 특정 이벤트 발생 시 또는 사용자의 요청인 경우, 특정 이벤트가 발생한 경우 또는 사용자가 요청한 경우, 제어부(512)는 상기 제2 상황 정보를 요청할 수 있다. 또는, 상기 설정 정보가 "허용하지 않음"인 경우, 제어부(512)는 상기 제2 상황 정보를 요청하지 않을 수도 있다.
다양한 실시예들에 따르면, 제어부(512)는 상기 제2 상황 정보 요청 시, 전자 장치(510)의 현재 위치를 전송할 수도 있다. 제어부(512)는 개인 정보 보호를 위해 상기 사용자의 동의 하에 상기 현재 위치를 전송할 수 있다. 또는, 제어부(512)는 상기 사용자가 알고자 하는 위치 또는 여행지에 대한 정보를 전송할 수도 있다. 예를 들면, 상기 사용자는 개인 정보 보호를 위해 현재 위치를 전송하지 않고, 특정 여행지의 위치를 전송할 수도 있다.
상기 제2 상황 정보를 수신할 때는 데이터 정보 이용료가 발생할 수 있기 때문에, 제어부(510)는 통신 요금이 발생하지 않는 경우(예; Wifi 통신 시)에만, 상기 제2 상황 정보를 수신할 수 있다. 제어부(510)는 통신 요금이 발생하는 경우, 상기 제2 상황 정보를 수신하지 않을 수도 있다. 다만, 상기 제1 상황 정보는 전자 장치(510)에서 자체적으로 수집할 수 있으므로, 제어부(512)는 실시간으로 또는 주기적으로 상기 제1 상황 정보를 수집할 수 있다.
동작(813)에서, 제어부(512)는 상기 제1 일정 정보와 상기 상황 정보를 비교할 수 있다. 제어부(512)는 실시간으로, 주기적으로 또는 비상 상황이 발생한 경우, 상기 제1 일정 정보와 상기 상황 정보를 비교할 수 있다.
동작(815)에서, 제어부(512)는 상기 비교 결과에 기반하여 일정 변경이 필요한지 여부를 판단할 수 있다. 상기 제1 일정 정보에 시간별 위치가 포함되어 있는데, 제어부(512)는 상기 제1 일정 정보에 포함된 위치가 상기 상황 정보로서 수집된 현재 위치와 다른 경우 제1 일정 정보의 변경이 필요한 것으로 판단할 수 있다. 예를 들면, 상기 제1 일정 정보에는 오전 10시에 제1 위치에 도착해서 주변 여행지를 관람하는 것으로 되어 있는데, 전날 너무 무리한 탓에 사용자가 늦잠을 자서 오전 11시 30분에 상기 제1 위치에 도착할 수 있다. 이 경우, 상기 제1 위치에서 계획했던 여행지를 모두 관람할 수도 있지만, 그렇게 되면 다음에 예정되어 있던 일정을 진행하기 어려울 수 있다. 이러한 경우에, 상기 제1 위치에서 원래 관광하려고 했던 3개의 관광지 중에 2개만 관람하고, 다음 예정되어 있던 제2 위치로 이동하도록 일정 변경이 필요할 수 있다. 상기 제2 위치에서도 원래 관광하려고 했던 2개의 관광지 중에서 1개만 관람하거나, 제2 위치로 이동하지 않고, 바로 다음 예정지인 제3 위치로 이동할 수도 있다. 따라서, 제어부(512)는 여행 중에 실시간으로 일정에 변경이 필요한지 여부를 판단하고, 변경이 필요한 경우 신속히 일정을 변경할 수 있다.
일정 변경이 필요하다고 판단된 경우, 동작(817)에서, 제어부(512)는 상기 상황 정보에 기반하여 제1 일정 정보를 변경한 제2 일정 정보를 생성할 수 있다. 다양한 실시예들에 따르면, 제어부(512)는 사용자의 동의 하에 동작(817)를 수행할 수 있다. 예를 들면, 제어부(512)는 여행 어플리케이션 내 상기 제1 일정 정보를 표시하는 중에, 일정 변경이 필요한 경우, 팝업창을 표시할 수 있다. 팝업창은 일정을 변경할 것인지 상기 사용자에게 확인받는 사용자 인터페이스일 수 있다. 상기 사용자 인터페이스에는 일정을 변경하시겠습니까 라는 문구와 함께 "일정 변경", "확인" 또는 "취소" 등의 옵션 항목이 포함될 수 있다. 팝업창에 상기 사용자가 "일정 변경"을 선택하는 경우, 제어부(512)는 상기 제2 일정 정보를 생성할 수 있다. 만약, 상기 사용자가 "일정 변경"을 선택하지 않는 경우, 제어부(512)는 동작(817) 및 동작(819)를 수행하지 않고, 동작(821)을 수행할 수도 있다.
또는, 제어부(512)는 여행 어플리케이션 내 설정 정보를 기반으로 사용자의 동의 없이도 상기 제2 일정 정보를 생성할 수 있다. 예를 들면, 상기 설정 정보는 일정 변경 시, "알림 On/Off"에 대한 옵션 항목을 포함할 수 있다. 알림 On된 경우, 제어부(512)는 상기 팝업창을 표시할 수 있다. 알림 Off된 경우, 제어부(512)는 사용자에게 알림 없이 상기 제2 일정 정보를 생성할 수 있다. 상기 제2 일정 정보는 상기 제1 일정 정보에서 여행지, 교통, 식당, 경로 등을 추가, 삭제, 수정한 것일 수 있다. 상기 제2 일정 정보는 하나 또는 하나 이상일 수 있다.
동작(819)에서, 제어부(512)는 상기 제2 일정 정보를 제공할 수 있다. 제어부(512)는 동작(817)에서, 팝업창 형태로 일정을 변경할 것인지 상기 사용자에게 확인받지 않았다면, 동작(819)에서 일정을 상기 제2 일정 정보로 변경할 것인지 사용자에게 확인받을 수 있다. 상기 사용자는 복수의 제2 일정 정보 중에서 어느 하나를 선택하거나, 상기 제2 일정 정보를 변경할 수도 있다. 제어부(512)는 상기 사용자의 동의 하에 상기 제2 일정 정보를 여행 일정 제공 서버(550)로 전송할 수 있다. 제어부(512)는 일정 중에 상기 제2 일정 정보를 여행 일정 제공 서버(550)로 전송할 수 있다. 또는, 일정이 완료된 후, 제어부(512)는 변경된 일정 정보를 모두 반영하여 여행 일정 제공 서버(550)로 전송할 수 있다. 제어부(512)는 상기 제2 일정 정보를 제공한 후, 동작(821)을 수행할 수 있다.
동작(821)에서, 제어부(512)는 일정이 완료되었는지 판단할 수 있다. 한 실시예에 따르면, 제어부(512)는 일정 변경이 필요하지 않은 경우 또는 제2 일정 정보를 제공한 후 일정이 완료되었는지 판단할 수 있다. 일정이 완료되었다는 것은 사용자가 하루 동안 계획했던 일정을 모두 완료하고 숙소로 돌아온 것으로 해석할 수 있다. 한 실시예에 따르면, 일정 완료는 사용자가 여행 어플리케이션 내 "일정 완료"를 선택함으로써, 제어부(512)는 일정이 완료된 것으로 판단할 수 있다. 또는, 제어부(512)는 현재 위치가 숙소의 위치인지 판단하여, 숙소 근처의 위치이면 일정이 완료된 것으로 판단할 수도 있다. 만약, 일정 완료가 선택되지 않았거나, 현재 위치가 숙소 근처의 위치가 아닌 경우, 제어부(512)는 일정이 완료되지 않았다고 판단하고, 동작(811)으로 리턴할 수 있다. 이 경우, 제어부(512)는 동작(811) 내지 동작(819)을 반복적으로 수행함으로써, 여행 중 계속해서 일정 변경이 필요한지 판단하고, 일정 변경이 필요한 경우 최적의 차선책으로 일정을 변경하여 제공할 수 있다.
다양한 실시예들에 따른 전자 장치의 동작 방법은 제1 상황 정보에 기반하여 외부 장치에서 생성된 적어도 하나의 제1 일정 정보를 수신하는 동작, 사용자 또는 제2 상황 정보 중 적어도 하나에 기반하여 상기 제1 일정 정보의 적어도 일부를 변경한 제2 일정 정보를 획득하는 동작, 및 상기 제2 일정 정보를 상기 사용자에게 제공하는 동작을 포함할 수 있다.
상기 제1 상황 정보는 사용자 정보, 항공 정보, 교통 예약 정보, 숙박 정보 또는 라이프 로그 정보 중 적어도 하나를 포함할 수 있다.
상기 수신하는 동작은 여행 정보, 위치 정보, 날짜 정보, 교통 상황 정보 또는 날씨 정보 중 적어도 하나에 기반하여 상기 외부 장치를 통해 생성된 제1 일정 정보를 수신하는 동작을 포함할 수 있다.
상기 획득하는 동작은 상기 제1 일정 정보와 상기 제2 상황 정보를 비교하는 동작, 및 상기 비교 결과에 기반하여 상기 제2 일정 정보를 생성하는 동작을 포함할 수 있다.
상기 동작 방법은 상기 전자 장치에 구비된 센서 모듈을 이용하여 상기 제2 상황 정보를 수집하는 동작, 또는 상기 외부 장치로부터 상기 제2 상황 정보를 수신하는 동작을 더 포함할 수 있다.
상기 제2 일정 정보는 상기 제1 일정 정보에 포함된 여행지, 교통, 식당 또는 경로 중 적어도 하나를 추가, 삭제, 수정한 것일 수 있다.
상기 동작 방법은 상기 사용자의 요청, 상기 전자 장치의 설정 정보, 실시간 또는 주기적으로 상기 외부 장치로 상기 제2 상황 정보를 요청하는 동작을 더 포함할 수 있다.
상기 동작 방법은 일정이 완료되는지 여부를 판단하는 동작, 상기 일정이 완료되지 않은 경우, 상기 제2 일정 정보를 획득하는 동작과 상기 제2 일정 정보를 제공하는 동작을 반복적으로 수행하는 동작을 더 포함할 수 있다.
다양한 실시예들에 따른 명령들을 저장하고 있는 저장 매체는 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 제1 상황 정보에 기반하여 외부 장치에서 생성된 적어도 하나의 제1 일정 정보를 수신하는 동작, 사용자 또는 제2 상황 정보 중 적어도 하나에 기반하여 상기 제1 일정 정보의 적어도 일부를 변경한 제2 일정 정보를 획득하는 동작; 및 상기 제2 일정 정보를 상기 사용자에게 제공하는 동작을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체일 수 있다.
도 9는 다양한 실시예들에 따른 상황 정보를 결정하는 방법을 도시한 흐름도이다. 도 9는 도 8의 동작(811)을 상세하게 설명한 도면이다. 즉, 도 9는 도 8의 동작(809)를 수행한 후, 수행될 수 있다.
도 9를 참조하면, 동작(901)에서, 제어부(512)는 제1 상황 정보를 수집할 수 있다. 상기 제1 상황 정보는 전자 장치(510)에서 자체적으로 수집한 것으로서, 시간, 위치, 온도, 습도 또는 생체정보(예: 신체적 상태, 운동 상태, 피로도, 건강, 감정) 중 적어도 하나를 포함할 수 있다. 다양한 실시예들에 따르면, 제어부(512)는 전자 장치(510)와 유선 또는 무선으로 연결된 웨어러블 디바이스 또는 외부 장치(예: IoT)로부터 상기 제1 상황 정보를 수집할 수 있다.
동작(903)에서, 제어부(512)는 수신된 제2 상황 정보가 있는지 판단할 수 있다. 상기 제2 상황 정보는 여행 일정 제공 서버(550) 또는 정보 제공 서버(560)로부터 수신되는 것일 수 있다. 제어부(512)는 일정이 시작되기 전에 수신된 제2 상황 정보가 있는지 확인할 수 있다. 제어부(512)는 수신된 제2 상황 정보 중에서도 도 8의 제1 일정 정보에 포함된 지역의 제2 상황 정보가 있는지 판단할 수 있다. 제어부(512)는 수신된 제2 상황 정보가 있는 경우, 동작(909)를 수행할 수 있다.
수신된 정보가 없는 경우, 동작(905)에서, 제어부(512)는 여행 일정 제공 서버(550) 또는 정보 제공 서버(560)로 제2 상황 정보를 요청할 수 있다. 다양한 실시예들에 따르면, 제어부(512)는 통신 요금이 발생하는지 여부 또는 전자 장치(510)의 설정 정보에 따라 상기 제2 상황 정보를 요청하는 시점을 조절할 수 있다. 상기 요청에 의해 상기 제2 상황 정보를 수신할 때는 데이터 정보 이용료가 발생할 수 있는데, 사용자는 통신 요금에 민감할 수 있다. 예를 들면, 제어부(512)는 통신 요금이 발생하지 않는 시점(예; Wifi 통신 시)에 상기 제2 상황 정보를 요청할 수 있다. 또는 데이터 사용량에 관하여 제한이 없거나, 사용요금이 발생하지 않는 경우, 제어부(512)는 실시간으로 또는 주기적으로 상기 제2 상황 정보를 요청할 수 있다.
동작(907)에서, 제어부(512)는 상기 요청에 응답한 여행 일정 제공 서버(550) 또는 정보 제공 서버(560)로부터 상기 제2 상황 정보를 수신할 수 있다. 다양한 실시예들에 따르면, 제어부(512)는 상기 제2 상황 정보를 수신하는 시점을 조절할 수 있다. 예를 들면, 제어부(510)는 통신 요금이 발생하지 않는 경우, 상기 제2 상황 정보를 수신하고, 통신 요금이 발생하는 경우, 상기 제2 상황 정보를 수신하지 않을 수도 있다. 한 실시예에 따르면, 제어부(512)는 사용자의 네트워크 선택에 기반하여 상기 제 2 상황 정보를 수신할 수 있다. 예컨대, 사용자가 3G나 LTE 망을 통해서는 상기 상황 정보를 수신하지 않도록 설정하거나, WIFI 망을 통해서만 수신하도록 설정할 수 있다. 이 경우, 제어부(512)는 현재 네트워크가 3G나 LTE 망에 연결된 경우 상기 상황 정보를 수신하지 않고, 현재 네트워크가 WIFI 망에 연결된 경우, 상기 상황 정보를 수신할 수 있다. 또는, 반대의 경우도 가능하다.
동작(909)에서, 제어부(512)는 수신된 제2 상황 정보를 사용자에게 제공할 수 있다. 예를 들면, 제어부(512)는 여행 어플리케이션을 통해 상기 제2 상황 정보를 표시할 수 있다.
동작(911)에서, 제어부(512)는 상기 제2 상황 정보를 반영할 것인지 판단할 수 있다. 다양한 실시예들에 따르면, 제어부(512)는 사용자의 선택 또는 전자 장치(510)의 설정 정보에 기반하여 상기 제2 상황 정보를 반영할 지 여부를 결정할 수 있다. 예를 들면, 상기 제2 상황 정보를 표시하는 사용자 인터페이스는 "반영", "확인", "미반영" 또는 "취소"에 대한 옵션 항목이 포함될 수 있다. 제어부(512)는 상기 사용자가 "반영" 또는 "확인"을 선택하면 상기 제2 상황 정보를 반영하고, 상기 사용자가 "미반영" 또는 "취소"를 선택하면 상기 제2 상황 정보를 반영하지 않을 수도 있다. 또는, 제어부(512)는 상기 사용자의 동의 없이 전자 장치(510)의 설정 정보에 따라 상기 제2 상황 정보를 반영할 지 여부를 결정할 수 있다. 제어부(512)는 상기 설정 정보가 "항상 반영"인 경우, 상기 제2 상황 정보를 반영하고, 상기 설정 정보가 "반영하지 않음"인 경우, 상기 제2 상황 정보를 반영하지 않을 수도 있다.
정보를 반영하는 경우, 동작(913)에서, 제어부(512)는 상기 제1 상황 정보와 상기 제2 상황 정보를 상황 정보로서 결정할 수 있다. 즉, 제어부(512)는 자체적으로 수집된 제1 상황 정보와 서버로부터 수신된 제2 상항 정보를 모두 일정을 변경하는데 사용할 수 있다.
또는, 정보를 반영하지 않는 경우, 동작(915)에서, 제어부(512)는 상기 제1 상황 정보를 상황 정보로서 결정할 수 있다. 즉, 제어부(512)는 전자 장치(510)가 자체적으로 수집한 제1 상황 정보만 일정을 변경하는데 사용할 수 있다.
동작(913) 또는 동작(915)을 완료하면, 제어부(512)는 도 8의 동작(813)을 수행할 수 있다. 즉, 다양한 실시예들에 따르면, 네트워크 사용이 불가능한 상황에서도 일정 변경이 가능하다. 즉, 네트워크 사용이 불가능한 경우, 제어부(512)는 전자 장치(510)가 자체적으로 수집한 제1 상황 정보만으로 일정을 변경하는데 사용할 수 있다.
도 10a 내지 도 10d는 다양한 실시예들에 따른 상황 정보에 따라 일정을 변경하는 일례를 도시한 도면이다.
도 10a는 원래 일정(예: 제1 일정 정보)을 도시한 것이다. 도 10a를 참조하면, 원래 일정은 호텔(1010)을 나와 오전 9시에 Land Mark1(1020)에 도착하여 관람하고, 오전 11시 30분까지 Land Mark2(1030)로 이동하여 관람하고, 오후 2시에 Land Mark3(1040)에 도착하여 관람하고, 오후 5시에 Land Mark4(1050)에 도착하여 관람하는 것이다. 각 랜드마크(예: 여행지, 식당 등)에 도착하는 시간은 랜드마크를 관람하는 시간, 식사 시간, 다른 랜드마크로 이동하는 시간을 고려하여 설정될 수 있다. 또한, 각 랜드마크에는 중요도가 포함될 수 있다.
다양한 실시예들에 따르면, 중요도는 테마별 중요도 또는 사용자 중요도를 포함할 수 있다. 상기 여행지의 테마별 중요도는 동일한 여행지라도 테마별 서로 다른 중요도를 가질 수 있다. 예를 들면, 랜드마크 1에 대해, 미식 여행의 중요도는 5, 뷰 포인트로서 중요도는 3, 휴식여행의 중요도는 4일 수 있다. 또한, 사용자 중요도는 전자 장치(510)의 사용자 또는 상기 사용자와 동행하는 다른 사용자들의 중요도를 포함할 수 있다.
도 10b는 실제 일정을 도시한 것이다. 도 10b를 참조하면, 원래 일정에서 Land Mark2(1030)에 도착하는 시간은 오전 11시 30분인데, 실제 일정에서는 오후 1시에 도착하고, 원래 일정에서 Land Mark3(1040)에 도착하는 시간은 오후 2시인데, 실제 일정에서는 오후 4시에 도착하고, 원래 일정에서 Land Mark4(1050) 에 도착하는 시간은 오후 5시인데, 실제 일정에서는 오후 8시에 도착할 수 있다. 왜냐하면, 호텔(1010)에서 늦게 나와 Land Mark1(1020)에 도착하는 시간이 지연되어, Land Mark2(1030), Land Mark3(1040), Land Mark4(1050)에 도착하는 시간이 차례대로 지연될 수 있기 때문이다. 또는, Land Mark1(1020)에서 표를 사기까지 너무 많은 시간이 걸려 Land Mark2(1030), Land Mark3(1040), Land Mark4(1050)에 도착하는 시간이 차례대로 지연될 수 있기 때문이다. 또는, 차가 너무 막혀 Land Mark1(1020)에서 Land Mark2(1030)로 이동하는 시간이 원래 계획했던 1시간보다 많은 2시간이 걸릴 수도 있기 때문이다.
즉, 실제 여행 시에는 너무나 많은 상황들이 변수로 작용하여 원래 계획했던 일정으로 진행하기 어려울 수 있다. 이 경우, 다양한 실시예들에 따르면, 여행 중 다양한 상황 정보를 실시간으로 반영하여 전자 장치(510)가 자동으로 일정을 변경하여 사용자 편의성을 증대시킬 수 있다.
도 10c는 변경된 일정(예: 제2 일정 정보)을 도시한 것이다. 도 10c를 참조하면, 원래 일정에서 Land Mark2(1030)에 도착하는 시간은 오전 11시 30분인데, 실제 일정에서는 오후 1시에 도착할 수 있다. 이 경우, 제어부(512)는 원래 일정에서 Land Mark3(1040)을 가지 않고, Land Mark2(1030)에서 바로 Land Mark4(1050)로 이동하는 것으로 일정을 변경할 수 있다. Land Mark3(1040)을 가지 않고 바로 Land Mark4(1050)로 이동하는 경우, 원래 일정에서는 Land Mark4(1050)에 오후 5시에 도착하는 것으로 예정되어 있었지만, 오후 4시에 도착할 수 있다. 즉, 제어부(512)는 각 랜드마크의 중요도, 현재 시간, 현재 위치, 생체정보, 교통, 날씨 등을 종합적으로 고려하여 일정을 변경할 수 있다.
도 10d는 변경된 다른 일정(예: 제2 일정 정보)을 도시한 것이다. 도 10d를 참조하면, 제어부(512)는 원래 일정에서 Land Mark3(1040)을 가지 않고, 대신 Land Mark5(1060)에 가고, Land Mark5(1060)에서 Land Mark4(1050)로 이동하는 것으로 일정을 변경할 수 있다. 이 경우, Land Mark2(1030)에 도착하는 시간이 오후 1시로 늦어졌지만, 제어부(512)는 일정을 변경하여 다른 랜드마크에 원래 일정보다 많이 늦지 않게 도착할 수 있도록 할 수 있다. 즉, 변경된 일정에서는 Land Mark5(1060)에 오후 3시까지 도착하고, Land Mark4(1050)에 오후 6시에 도착할 수 있다.
도 11a 내지 도 11h는 다양한 실시예들에 따른 전자 장치의 사용자 인터페이스를 도시한 도면이다.
도 11a는 기본 일정을 도시한 것이다. 도 11a를 참조하면, 제어부(512)는 기본 일정을 포함하는 사용자 인터페이스 화면(1110)을 표시할 수 있다. 사용자 인터페이스 화면(1110)은 지도 이미지 위에 숙소(1101), Land Mark2(1102), Land Mark3 식당(1103), Land Mark4 관광지(1104)가 해당하는 위치에 표기된 것일 수 있다.
도 11b는 기본 일정을 변경하기 위한 사용자 인터페이스를 도시한 것이다. 도 11b를 참조하면, 제어부(512)는 기본 일정을 변경하기 위한 사용자 인터페이스 화면(1120)을 표시할 수 있다. 사용자 인터페이스 화면(1120)에는 여행 카테고리를 변경하거나, 이동 수단(1125)을 변경하는 옵션 항목이 포함될 수 있다. 예를 들면, 여행 카테고리는 문화 탐방 여행(1121), 식도락 여행(1122), 액티비티 여행(1123), 효도 여행(1124)를 포함할 수 있다. 이동 수단(1125)은 대중교통(1126), 자가용(1127)에서 선택할 수 있다. 문화 탐방 여행(1121)은 관광지 위주의 여행을 의미하고, 식도락 여행(1122)은 맛있는 식당(예; 추천 식당) 위주의 여행을 의미하고, 액티비티 여행(1123)은 몸으로 체험하거나, 유아/어린이 위주의 여행을 의미하며, 효도 여행(1124)은 휴식이나, 부모님 위주의 여행을 의미할 수 있다. 사용자는 사용자 인터페이스 화면(1120)에서 여행 카테고리 또는 이동 수단(1125)을 선택할 수 있다.
이외에도, 도시하지는 않았지만, 사용자 인터페이스 화면(1120)에는 현재 위치, 현재 시간, 생체 정보를 위주로한 여행을 선택하도록 하는 옵션 항목이 포함될 수 있다. 이외에도, 도시하지는 않았지만, 여행 카테고리에는 쇼핑 여행, 휴식 여행 등 다양한 카테고리를 더 포함할 수 있다. 이외에도, 도시하지는 않았지만, 이동 수단(1125)은 자전거, 오토바이, 도보 등 다양한 이동 수단을 더 포함할 수 있다.
도 11c는 도 11b의 사용자 인터페이스 화면(1120)에서 식도락 여행(1122)과 자가용(1127) 선택 시, 변경된 일정을 도시한 것이다. 도 11c를 참조하면, 제어부(512)는 도 11a의 기본 일정에서 옵션 항목에 맞게 변경된 일정을 포함하는 사용자 인터페이스 화면(1130)을 표시할 수 있다. 사용자 인터페이스 화면(1130)은 지도 이미지 위에 숙소(1101), Land Mark2(1102), Land Mark3 식당(1103), Land Mark5 다른 식당(1105)이 해당하는 위치에 표기된 것일 수 있다. 기본 일정(사용자 인터페이스 화면(1110))과 변경된 일정(사용자 인터페이스 화면(1130))을 비교해 보면, 변경된 일정에는 도 11a에 도시된 Land Mark4 관광지(1104) 대신에 Land Mark5 다른 식당(1105)이 포함될 수 있다. 왜냐하면, 사용자가 여행 카테고리를 식도락 여행(1122)으로 변경하였기 때문에, 제어부(512)는 식도락 여행(1122)에 맞게 관광지 대신에 다른 식당을 포함시킬 수 있다.
도 11d는 사용자의 입력에 따라 기본 일정을 수정하는 일례를 도시한 것이다. 도 11d를 참조하면, 제어부(512)는 숙소(1101)를 기준으로 방문 가능한 모든 관광지와 식당을 포함하는 기본 일정을 표시할 수 있다. 기본 일정을 포함하는 사용자 인터페이스 화면(1140)은 지도 이미지 위에 숙소(1101), Land Mark2(1102), Land Mark3 식당(1103), Land Mark4 관광지(1104), Land Mark5 다른 식당(1105), Land Mark6 추천 식당(1106), Land Mark7 식당(1107)이 해당하는 위치에 표기된 것일 수 있다. 이때, 제어부(512)는 상기 기본 일정에서 표시된 관광지와 식당을 추가, 삭제하는 옵션 항목을 함께 표시할 수 있다. 제어부(512)는 사용자의 옵션 항목 선택에 따라 상기 기본 일정을 수정할 수 있다.
예를 들면, 상기 사용자는 Land Mark3 식당(1103)에 표시된 추가(1103a) 또는 삭제(1103b)를 선택함으로써, 상기 기본 일정에서 Land Mark3 식당(1103)을 추가 또는 삭제할 수 있다. 상기 사용자는 Land Mark4 관광지(1104)에 표시된 추가(1104a) 또는 삭제(1104b)를 선택함으로써, 상기 기본 일정에서 Land Mark4 관광지(1104)을 추가 또는 삭제할 수 있다. 상기 사용자는 Land Mark5 다른 식당(1105)에 표시된 추가(1105a) 또는 삭제(1105b)를 선택함으로써, 상기 기본 일정에서 Land Mark5 다른 식당(1105)을 추가 또는 삭제할 수 있다. 상기 사용자는 Land Mark6 추천 식당(1106)에 표시된 추가(1106a) 또는 삭제(1106b)를 선택함으로써, 상기 기본 일정에서 Land Mark6 추천 식당(1106)을 추가 또는 삭제할 수 있다. 상기 사용자는 Land Mark7 식당(1107)에 표시된 추가(1107a) 또는 삭제(1107b)를 선택함으로써, 상기 기본 일정에서 Land Mark7 식당(1107)을 추가 또는 삭제할 수 있다.
또한, 도시하지는 않았지만, 지도 이미지 위에 객체(예; 숙소(1101), Land Mark2(1102), Land Mark3 식당(1103), Land Mark4 관광지(1104) 등)가 표기된 사용자 인터페이스 화면(예: 도면부호 1110, 1130, 1140)에서, 사용자가 객체를 화면(예; 디스플레이(160)의 표시 영영) 밖으로 밀어내는 경우, 해당하는 객체를 상기 기본 일정에서 삭제할 수 있다. 또는, 사용자가 사용자 인터페이스 화면(1140)에서 객체를 롱 프레스 터치하면, 제어부(512)는 상기 기본 일정에서 표시된 관광지와 식당을 추가, 삭제하는 옵션 항목을 함께 표시할 수 있다. 롱 프레스 터치는 짧게 터치하는 탭 터치와 구별되는 입력으로, 탭 터치보다 터치하는 시간이 긴 터치를 의미할 수 있다. 옵션 항목은 도 11d와 같은 "+", "-" 일 수도 있고, 객체에 "x"가 표기되는 것일 수 있다. 객체에 "x"가 표기되는 경우, 사용자가 "x"를 선택하면, "x"를 선택한 객체는 삭제될 수 있다. 예를 들면, 사용자 인터페이스 화면(1140)에서 상기 사용자가 Land Mark3 식당(1103)에 함께 표기된 "x"를 선택(또는 터치)하면, Land Mark3 식당(1103)이 상기 기본 일정에서 삭제될 수 있다.
도 11e는 사용자 인터페이스 화면(1120)에서 옵션 항목을 선택하는 일례를 도시한 것이다. 도 11e를 참조하면, 제어부(512)는 사용자 인터페이스 화면(1120)에서 사용자로부터 문화 탐방 여행(1121)과 이동 수단(1125)을 대중 교통(1126)으로 선택받을 수 있다.
도 11f는 도 11e의 사용자 인터페이스 화면(1120)에서 문화 탐방 여행(1121)과 대중 교통(1126) 선택 시, 변경된 일정을 도시한 것이다. 도 11f를 참조하면, 제어부(512)는 도 11a의 기본 일정에서 옵션 항목에 맞게 변경된 일정을 포함하는 사용자 인터페이스 화면(1150)을 표시할 수 있다. 사용자 인터페이스 화면(1150)은 지도 이미지 위에 숙소(1101), Land Mark2(1102), Land Mark5 박물관(1151), Land Mark6 전시관(1152)이 해당하는 위치에 표기된 것일 수 있다. 기본 일정(사용자 인터페이스 화면(1110))과 변경된 일정(사용자 인터페이스 화면(1150))을 비교해 보면, 변경된 일정에는 Land Mark3 식당(1103), Land Mark4 관광지(1104) 대신에 Land Mark5 박물관(1151), Land Mark6 전시관(1152)이 포함될 수 있다. 왜냐하면, 사용자가 여행 카테고리를 문화 탐방 여행(1121)으로 대중 이동 수단(1125)을 대중 교통(1126)으로 변경하였기 때문에, 제어부(512)는 문화 탐방 여행(1121)에 맞게 식당 대신에 다른 관광지를 더 포함시킬 수 있다. 또한, 제어부(512)는 관광지 선택 시 대중 교통(1126)으로 방문이 용이한 관광지를 우선적으로 선택할 수 있다.
도 11g는 사용자 인터페이스 화면(1120)에서 옵션 항목을 선택하는 다른 일례를 도시한 것이다. 도 11g를 참조하면, 제어부(512)는 사용자 인터페이스 화면(1120)에서 사용자로부터 액티비티 여행(1123)과 이동 수단(1125)을 자가용(1127)으로 선택받을 수 있다.
도 11h는 도 11g의 사용자 인터페이스 화면(1120)에서 액티비티 여행(1123)과 자가용(1127) 선택 시, 변경된 일정을 도시한 것이다. 도 11h를 참조하면, 제어부(512)는 도 11a의 기본 일정에서 옵션 항목에 맞게 변경된 일정을 포함하는 사용자 인터페이스 화면(1160)을 표시할 수 있다. 사용자 인터페이스 화면(1160)은 지도 이미지 위에 숙소(1101), Land Mark2(1102), Land Mark5 롯데월드(1161), Land Mark6 서울랜드(1162)가 해당하는 위치에 표기된 것일 수 있다. 기본 일정(사용자 인터페이스 화면(1110))과 변경된 일정(사용자 인터페이스 화면(1160))을 비교해 보면, 변경된 일정에는 Land Mark3 식당(1103), Land Mark4 관광지(1104) 대신에 Land Mark5 롯데월드(1161), Land Mark6 서울랜드(1162)가 포함될 수 있다. 왜냐하면, 사용자가 여행 카테고리를 액티비티 여행(1123)으로 이동 수단(1125)을 자가용(1127)으로 변경하였기 때문에, 제어부(512)는 액티비티 여행(1123)에 맞게 식당 대신에 액티비티 관광지를 더 포함시킬 수 있다. 또한, 제어부(512)는 관광지 선택 시 대중 교통(1126)으로 방문이 용이하지 않지만, 자가용(1127)으로는 쉽게 갈 수 있는 관광지를 우선적으로 선택할 수 있다.
도 12는 다양한 실시예들에 따른 기본 일정을 생성하는 일례를 도시한 도면이다.
도 12를 참조하면, 제어부(512)는 항공 정보(1210)로부터 공항 도착 일시/출발 일시(1230)를 추출할 수 있다. 또한, 제어부(512)는 숙소 정보(1220)로부터 체크인/체크아웃 일시(1240)를 추출할 수 있다. 제어부(512)는 공항 도착 일시/출발 일시(1230) 및 체크인/체크아웃 일시(1240)를 여행 일정 제공 서버(550)로 전송할 수 있다. 제어부(512)는 여행 일정 제공 서버(550)로부터 기본 일정(1250)을 수신할 수 있다. 기본 일정(1250)은 달력 형태로 제공되며, 제어부(512)는 사용자가 날짜를 선택하면, 날짜에 해당하는 기본 일정을 하나 또는 하나 이상 제공할 수 있다.
다양한 실시예들에 따르면, 제어부(512)는 메시지, 여행, 숙박 관련 어플리케이션으로부터 항공 정보(1210) 및 숙소 정보(1220)를 추출할 수 있다. 제어부(512)는 항공 정보(1210) 및 숙소 정보(1220)를 여행 일정 제공 서버(550)로 전송할 수 있다. 여행 일정 제공 서버(550)는 항공 정보(1210)로부터 공항 도착 일시/출발 일시(1230)를 추출하고, 숙소 정보(1220)로부터 체크인/체크아웃 일시(1240)를 추출할 수 있다. 여행 일정 제공 서버(550)는 공항 도착 일시/출발 일시(1230), 체크인/체크아웃 일시(1240), 전자 장치(510)의 사용자 정보, 상황 정보를 기본 일정(1250)을 생성할 수 있다. 여행 일정 제공 서버(550)는 기본 일정(1250)을 전자 장치(510)로 전송할 수 있다.
그리고 본 명세서와 도면에 개시된 실시 예들은 본 발명의 내용을 쉽게 설명하고, 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 범위는 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
510: 전자 장치
511: 센서부 512: 일정 제어부
513: 인터페이스부 514: 일정 통신부
515: 저장부
550: 여행 일정 제공 서버
551: 정보 수집부 552: 일정 생성부
553: 일정 통신부 554: 사용자 선호 기반 추천 엔진
555: 저장부
560: 정보 제공 서버

Claims (20)

  1. 전자 장치의 동작 방법에 있어서,
    제1 상황 정보에 기반하여 외부 장치에서 생성된 적어도 하나의 제1 일정 정보를 수신하는 동작,
    사용자 또는 제2 상황 정보 중 적어도 하나에 기반하여 상기 제1 일정 정보의 적어도 일부를 변경한 제2 일정 정보를 획득하는 동작, 및
    상기 제2 일정 정보를 상기 사용자에게 제공하는 동작을 포함하는 방법.
  2. 제1항에 있어서,
    상기 제1 상황 정보는,
    사용자 정보, 항공 정보, 교통 예약 정보, 숙박 정보 또는 라이프 로그 정보 중 적어도 하나를 포함하는 방법.
  3. 제1항에 있어서, 상기 수신하는 동작은,
    여행 정보, 위치 정보, 날짜 정보, 교통 상황 정보 또는 날씨 정보 중 적어도 하나에 기반하여 상기 외부 장치를 통해 생성된 제1 일정 정보를 수신하는 동작을 포함하는 방법.
  4. 제1항에 있어서, 상기 획득하는 동작은,
    상기 제1 일정 정보와 상기 제2 상황 정보를 비교하는 동작, 및
    상기 비교 결과에 기반하여 상기 제2 일정 정보를 생성하는 동작을 포함하는 방법.
  5. 제1항에 있어서,
    상기 전자 장치에 구비된 센서 모듈을 이용하여 상기 제2 상황 정보를 수집하는 동작, 또는
    상기 외부 장치로부터 상기 제2 상황 정보를 수신하는 동작을 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 제2 일정 정보는,
    상기 제1 일정 정보에 포함된 여행지, 교통, 식당 또는 경로 중 적어도 하나를 추가, 삭제, 수정한 일정 정보를 포함하는 방법.
  7. 제1항에 있어서,
    상기 사용자의 요청, 상기 전자 장치의 설정 정보, 실시간 또는 주기적으로 상기 외부 장치로 상기 제2 상황 정보를 요청하는 동작을 더 포함하는 방법.
  8. 제1항에 있어서,
    일정이 완료되는지 여부를 판단하는 동작,
    상기 일정이 완료되지 않은 경우, 상기 제2 일정 정보를 획득하는 동작과 상기 제2 일정 정보를 제공하는 동작을 반복적으로 수행하는 동작을 더 포함하는 방법.
  9. 시스템에 있어서,
    정보를 전송하고, 상기 정보에 기반한 제1 일정 정보를 수신하고, 제1 상황 정보를 수집하고, 상기 제1 상황 정보를 기반으로 상기 제1 일정 정보의 적어도 일부를 변경하여 제2 일정 정보를 생성하고, 상기 제2 일정 정보를 제공하는 전자 장치, 및
    상기 정보에 기반하여 상기 제1 일정 정보를 생성하고, 생성된 제1 일정 정보를 상기 전자 장치로 전송하는 서버를 포함하는 시스템.
  10. 전자 장치에 있어서,
    통신 인터페이스,
    메모리, 및
    상기 메모리와 전기적으로 연결된 프로세서를 포함하고,
    상기 프로세서는,
    외부 장치로 정보를 전송하고, 상기 정보에 기반한 제1 일정 정보를 상기 외부 장치로부터 수신하고, 상황 정보를 기반으로 상기 제1 일정 정보의 적어도 일부를 변경하여 제2 일정 정보를 생성하고, 상기 제2 일정 정보를 제공하도록 설정된 장치.
  11. 제10항에 있어서,
    인터페이스부를 더 포함하고,
    상기 프로세서는,
    상기 인터페이스부를 통해 사용자로부터 상기 정보를 입력받거나, 어플리케이션으로부터 상기 정보를 추출하도록 설정된 장치.
  12. 제10항에 있어서,
    상기 정보는,
    항공, 숙소, 사용자 정보, 선호 여행지, 선호 일정, 또는 여행 카테고리 중 적어도 하나를 포함하는 장치.
  13. 제10항에 있어서,
    상기 프로세서는,
    사용자의 요청에 따라 상기 제1 일정 정보를 수정하고, 수정된 제1 일정 정보를 등록하도록 구성된 장치.
  14. 제10항에 있어서,
    센서부를 더 포함하고,
    상기 프로세서는,
    상기 센서부를 이용하여 제1 상황 정보를 수집하거나, 상기 외부 장치로부터 제2 상황 정보를 수신하도록 설정된 장치.
  15. 제14항에 있어서,
    상기 프로세서는,
    통신 요금 발생 여부, 전자 장치의 설정 정보에 기반하여 상기 제2 상황 정보를 수신하는 시점을 조절하도록 설정된 장치.
  16. 제14항에 있어서,
    상기 제1 상황 정보는, 시간, 위치, 온도, 습도 또는 생체정보 중 적어도 하나를 포함하고,
    상기 제2 상황 정보는, 교통, 날씨, 재해 또는 여행지 관련 정보 중 적어도 하나를 포함하는 장치.
  17. 제10항에 있어서,
    상기 프로세서는,
    상기 제1 일정 정보와 상기 상황 정보를 비교하고, 상기 비교 결과에 기반하여 일정 변경이 필요한지 여부를 판단하고, 상기 판단 결과에 따라 상기 제2 일정 정보를 생성하도록 설정된 장치.
  18. 제10항에 있어서,
    상기 프로세서는,
    상기 사용자의 요청, 상기 전자 장치의 설정 정보, 실시간 또는 주기적으로 상기 외부 장치로 상기 제2 상황 정보를 요청하도록 설정된 장치.
  19. 서버에 있어서,
    통신부,
    메모리, 및
    프로세서를 포함하고,
    상기 프로세서는,
    전자 장치로부터 정보를 수신하고, 상황 정보를 수집하고, 상기 정보 및 상기 상황 정보에 기반하여 제1 일정 정보를 생성하고, 생성된 제1 일정 정보를 상기 전자 장치로 전송하고, 상기 상황 정보가 업데이트되면 업데이트된 상황 정보를 상기 전자 장치로 전송하도록 설정된 서버.
  20. 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은,
    제1 상황 정보에 기반하여 외부 장치에서 생성된 적어도 하나의 제1 일정 정보를 수신하는 동작,
    사용자 또는 제2 상황 정보 중 적어도 하나에 기반하여 상기 제1 일정 정보의 적어도 일부를 변경한 제2 일정 정보를 획득하는 동작; 및
    상기 제2 일정 정보를 상기 사용자에게 제공하는 동작을 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020150112647A 2015-08-10 2015-08-10 적응형 여행 일정 제공 방법 및 이를 구현한 전자 장치 KR20170018695A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150112647A KR20170018695A (ko) 2015-08-10 2015-08-10 적응형 여행 일정 제공 방법 및 이를 구현한 전자 장치
US15/213,940 US20170046637A1 (en) 2015-08-10 2016-07-19 Method of providing adaptive travel itineraries and electronic device implementing same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150112647A KR20170018695A (ko) 2015-08-10 2015-08-10 적응형 여행 일정 제공 방법 및 이를 구현한 전자 장치

Publications (1)

Publication Number Publication Date
KR20170018695A true KR20170018695A (ko) 2017-02-20

Family

ID=57995599

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150112647A KR20170018695A (ko) 2015-08-10 2015-08-10 적응형 여행 일정 제공 방법 및 이를 구현한 전자 장치

Country Status (2)

Country Link
US (1) US20170046637A1 (ko)
KR (1) KR20170018695A (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102236546B1 (ko) * 2020-07-14 2021-04-06 김재영 빅데이터 및 인공지능 기반 관광목적에 따른 선택이 가능한 스마트 관광 서비스 제공 방법
KR20210081746A (ko) * 2019-12-24 2021-07-02 펀랩 주식회사 Ai 기반의 여행 패키지 제공 시스템 및 그 방법
KR20210097389A (ko) * 2020-01-30 2021-08-09 송현주 실시간 사용자 환경을 반영한 여행 일정 추천 시스템 및 방법
KR102495260B1 (ko) * 2021-12-01 2023-02-06 (주)천사랑세계여행 여행 경로 추천 시스템 및 그 방법
US11663469B2 (en) 2019-08-30 2023-05-30 Lg Electronics Inc. Artificial device and method for controlling the same

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170186112A1 (en) * 2015-12-28 2017-06-29 Accenture Global Solutions Limited End to end user device platform
US20180285784A1 (en) * 2017-03-30 2018-10-04 Harish K. Kashyap Systems and Methods for Providing Near Best Itinerary Planning for Touring Locations Based on User Interests.
JP6827203B2 (ja) * 2017-07-10 2021-02-10 パナソニックIpマネジメント株式会社 行動提案方法、行動提案装置及び行動提案プログラム
US10655977B2 (en) * 2017-12-14 2020-05-19 Telenav, Inc. Navigation system with a restricted mobility and method of operation thereof
US11928615B1 (en) * 2019-09-25 2024-03-12 U.S. Bank National Association Systems and methods for providing a predictive itinerary
US20220076173A1 (en) * 2020-09-09 2022-03-10 TravSolo, Inc. Methods and systems for itinerary creation
JP2022075042A (ja) * 2020-11-06 2022-05-18 日本電気株式会社 ツアープラン生成装置、ツアープラン生成方法、及びプログラム
WO2022249348A1 (ja) * 2021-05-26 2022-12-01 日本電気株式会社 推薦装置、システム及び方法、情報開示制御装置及び方法、並びに、コンピュータ可読媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050096946A1 (en) * 2003-10-30 2005-05-05 International Business Machines Corporation System and method for dynamically resolving travel arrangement problems based on changes in travel conditions
US20080046298A1 (en) * 2004-07-29 2008-02-21 Ziv Ben-Yehuda System and Method For Travel Planning
US7497373B2 (en) * 2005-08-05 2009-03-03 International Business Machines Corporation Intelligent reminder service to track customer requests and processing
US7809360B2 (en) * 2006-05-24 2010-10-05 International Business Machines Corporation Optimization of calendar, itinerary, route plan, and PIM efficiencies according to assimilated wireless service availability conditions
US9830561B2 (en) * 2014-04-30 2017-11-28 Amadeus S.A.S. Visual booking system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11663469B2 (en) 2019-08-30 2023-05-30 Lg Electronics Inc. Artificial device and method for controlling the same
KR20210081746A (ko) * 2019-12-24 2021-07-02 펀랩 주식회사 Ai 기반의 여행 패키지 제공 시스템 및 그 방법
KR20210097389A (ko) * 2020-01-30 2021-08-09 송현주 실시간 사용자 환경을 반영한 여행 일정 추천 시스템 및 방법
KR102236546B1 (ko) * 2020-07-14 2021-04-06 김재영 빅데이터 및 인공지능 기반 관광목적에 따른 선택이 가능한 스마트 관광 서비스 제공 방법
KR102495260B1 (ko) * 2021-12-01 2023-02-06 (주)천사랑세계여행 여행 경로 추천 시스템 및 그 방법

Also Published As

Publication number Publication date
US20170046637A1 (en) 2017-02-16

Similar Documents

Publication Publication Date Title
KR20170018695A (ko) 적응형 여행 일정 제공 방법 및 이를 구현한 전자 장치
EP3131316B1 (en) Method of managing geo-fence and electronic device thereof
KR102252072B1 (ko) 음성 태그를 이용한 이미지 관리 방법 및 그 장치
KR20180074316A (ko) 장소 정보를 제공하기 위한 시스템 및 이를 지원하는 방법 및 전자 장치
US10831792B2 (en) Sensor information using method and electronic device using the same
US11223629B2 (en) Electronic device and method for providing location data
US10972861B2 (en) Electronic device and system for providing point of interest information
KR20170058793A (ko) 가상 현실 환경에서 정보를 제공하는 방법 및 장치
KR20180083073A (ko) 차량 장치 및 전자 장치와 차량 장치에서 디스플레이 방법 및 전자 장치에서 정보 전송 방법
KR20180096190A (ko) 무인 비행 장치를 제어하는 전자 장치와 이의 동작 방법
US10827303B2 (en) Method and apparatus for providing proximity-based information
KR102280545B1 (ko) 이동 경로를 제공하는 방법 및 장치
KR102222711B1 (ko) 쇼핑몰 관련 웹사이트를 제공하는 전자 장치 및 그 동작 방법
EP3425935B1 (en) Electronic apparatus and method for providing identification information
KR20170101710A (ko) 전자파 흡수율을 관리하기 위한 전자 장치 및 방법
KR20170098113A (ko) 전자 장치의 이미지 그룹 생성 방법 및 그 전자 장치
KR20170054876A (ko) 스케줄 정보를 관리하기 위한 방법 및 그 전자 장치
KR20170045037A (ko) 일정 정보 제공 방법 및 장치
KR20180020745A (ko) 일과 생활에 대한 정보를 제공하기 위한 전자 장치 및 방법
KR20180045393A (ko) 타일 기반 poi 관리 방법 및 장치
KR20180012509A (ko) 일정을 관리하기 위한 방법 및 이를 지원하는 전자 장치
KR20170094640A (ko) 경로 정보를 제공하기 위한 전자 장치 및 방법
EP3425934A1 (en) Electronic device and method for providing identification information
KR20180060627A (ko) 메시지 처리 방법 및 이를 구현한 전자 장치
KR20180083090A (ko) 전자 장치 및 전자 장치의 위치 기반 정보 제공 방법