'context awareness'에 해당되는 글 1건

  1. 2010.11.04 :: 상황인지 컴퓨팅의 근본 문제
기술을 얘기한다 2010.11.04 12:14

너무나 당연한 것 즉, 너무 뻔해서 아무도 얘기하지 않는 것. 그래서 그 바닥에 있는 사람들은 다 알지만 가끔 깜빡깜빡하고 간과하는 것이 있다. 그러다 막상 문제를 풀다보면 "아... 맞아. 그래서 이렇게 하면 안되는거였지" 하게 되는 것들 말이다.

상황인지 컴퓨팅이 지향하는 것은 아주 분명하다. 상황을 알아내서 응용이 돌아가는 방식을 그 상황에 가장 잘 맞게 하자는 것이다. "전화가 왔는데 마침 회의 중이라 벨을 울리지 않고 램프만 깜빡인다" 라는 식이다. 이런 똘똘한 서비스가 가능하려면 일련의 과정이 필요하다.

사람이 "회의실에 앉아 있고 주변 여러 사람의 목소리가 간헐적으로 들리며 스케쥴러에 업무 회의가 그 시간에 있다고 기록되어 있다" 는 객관적인 정보를 수집하고 (관찰 단계) 이 정보로 부터 "주인님이 회의 중이구나" 라는 상황을 인식하고 (판단 단계) "전화가 왔는데 회의 중이니 벨을 울리지 말아야 한다" 는 가장 적절한 행동을 선택한 뒤 (결심 단계) 이를 실행에 옮겨 "벨소리 대신 램프를 깜빡" 이도록 하는 (행동 단계) 과정으로 표현할 수 있다. /* 설명의 편의를 위하여 관찰-판단-결심-행동 루프(Observe, Orient, Decide, and Act loop, OODA loop) 로 표현해 보았는데 굳이 이 모델이 아니라도 이와 유사한 인지 기반의 행동 모델은 수없이 많이 있고 무엇으로 표현하던 큰 차이는 없다고 본다 */

만약 우리가 개발하려는 기능이 "회의 중에 전화오면 램프만 깜빡이게 하자" 는 것 뿐이라면 인지해야 할 상황은 "회의 중이냐?" 라는 것 하나 뿐이다. 이 하나를 판단하기 위해서 필요한 정보가 무엇일까 생각을 해보고 목록을 만든다. 그런 다음 그 정보를 수집하는 기능을 구현한다. 그렇게 하면 각각의 단순한 정보 (또는 단순한 상황)을 모으거나(context aggregation)하거나 짜집기를 해서(context composition) 응용이 필요로하는 복잡한 상황을 알아내게 되는 것이다.

그런데 이런 접근 방법은 무척 소모적이다. 핸드폰이 해야 할 기능이 벨 울리는 것만 있는게 아니라 점점 더 스마트해지면서 해야 할 기능은 늘어나는데 그때마다 그 기능을 지원하는 상황을 정의하고 그 상황을 알아내는 정보를 정의하고 그 정보를 알아내는 기능을 구현하다보면 아마 시스템은 무척 비대해질 것이고 정보 수집하고 상황을 판단하느라 정작 핸드폰으로서의 기능은 뒷전이 될 수 있을 것이다.

그래서 사람들이 생각해낸 것은 어느 응용에서나 활용할 수 있는 공통 상황을 시스템 차원에서 정의하고 여러 응용이 상황을 재사용하게 하자는 것이다. 예를 들어, 사용자의 움직임 (앉아있다, 걷고있다, 뛰고있다), 사용자의 지리적 위치(위도/경도 또는 주소) 와 같은 비교적 단순한 물리적 상황이나 (주변에 누가 있는지 알아내는 방법이 있다고 했을 때) 사용자의 주변상황(윗사람과 독대중이다, 가족들과 같이 있다)과 같은 사회적 상황도 어느 정도는 알아낼 수 있을 것이다.

하지만 이런 응용에 중립적인 공통 상황은 응용의 특정한 경우에 맞춰 정의한 것이 아니므로 응용에서 그대로 활용하기는 어렵고 앞서 언급한 상황 정보의 모으기와 짜집기를 하는 것은 물론이고 상황 정보를 확대/축소할 수 있는 외부 정보를 활용하는 것이 불가피하다. 예를 들어, 온톨로지를 통해 응용이 생각하는 상황과 시스템이 제공하는 상황의 관계를 알아낸다거나 (쓸만한 것이 있다면) 상식 데이터베이스를 활용해서 시스템이 알아낸 상황에 대하여 일반인들이 대략 어떤 식으로 반응하는지를 알아내어 활용하는 식이 가능할 것이다. 물론, 시스템이 제공한 상황을 응용이 원하는 상황으로 해석하는 것이 구현하기 어렵거나 실행에 부담이 크다면 시스템에서 상황을 공통적으로 뽑기아서 부담을 줄이려던 애초의 목적을 달성하지 못할 위험도 있다.

요약하자면 하향식으로 하자니 건건이 만드는 부담이 크고 상향식으로 하자니 딱 맞질 않고 진퇴양난인 셈이다.

물론 희망이 없는 것은 아니다. 긍정적인 신호가 여기 저기서 포착된다.

1. 충분히 많은 정보 원천: 소셜 네트워크, 만물통신/사물통신 등 사람과 사람, 사람과 사물, 사물과 사물간에 일어나는 많은 일을 기록하고 접근하는 기술이 급격히 성장하고 있으며 이는 상황 파악의 범위를 넓히고 정확도를 높이는데 큰 역할을 할 것이다.

2. 응용의 동적 구성: 이때까지는 응용이라고 하면 필요한 요소를 다 때려박은 하나의 EXE 파일을 의미하고 이를 실행하는 환경은 운영체제라고 불렀다. 하지만, 서비스 지향 아키텍처 또는 웹 서비스가 상징하듯이 인터넷이 운영체제를 대체하고 단일 EXE 파일이 아니라 전지구적으로 흩어진 단위 서비스가 실행 중에 서로 연결되면서 응용을 실현한다. 따라서, 응용은 하나의 실체가 아니라 실행 중에 만들어지며 계속 새로운 버전으로 발전하는 살아있는 유기체가 되었다. 마찬가지로 이들 응용을 떠받치는 시스템 즉 인터넷도 끊이없이 확대 재편되는 실체이며 제공하는 상황정보도 계속 발전한다. 살아있는 유기체로서의 운영체제와 응용이 결합됨으로써, 인터넷(즉 운영체제 또는 시스템)이 제공하는 상황정보의 폭과 깊이가 계속 바뀐다고 하더라도 이를 활용할 수 있는 새 버전이 쉽게 나올 수 있다.

3. 뭐 더 있을텐데 막상 쓰려니 생각이 안나네...
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by 신묘군

티스토리 툴바