글 | 허 원 진 아키텍트
이 글은 IoT 인터렉션을 다룬다. 사용자가 모바일 기기를 통해서 자신의 의사를 플랫폼에 전달하고, 의사를 실제 사물에 반영하면서 사용자에게 반영된 것을 전달하는 과정이다. 인터렉션은 정적이고 연속적인 시간과 그것을 가능하게 해주는 기술이 만나는 매우 복잡한 과정이다. 디자인, 기술, 도메인 지식이 모두 필요한 영역이다. 도메인 지식은 보일러 앱이라면 난방에 대한 지식을 말한다. 이 내용은 신규 입사자나 기존 구성원들에게 지속적으로 설명해주는 것이 필요하다.
무엇인가 켜고 끄는 문제
설명하는 내용은 매우 간단하지만 우리가 PC나 모바일 프레임으로 바라보면 매우 어렵다. IoT 회사에서 일하고 있지만 이 개념을 정확히 이해한 구성원은 매우 드물다. 하지만 중요한 내용이니 천천히 살펴보자.
그림 1의 영상은 앱을 통해 원격으로 플러그를 연결하고 끊는 과정이다. 초록색이 켜진 상태이고 회색이 꺼진 상태이다. PC나 모바일 인터넷 시대에는 요청자의 요청이 서버에 전달되고 서버가 OK 하면 그 요청이 처리된 것으로 피드백이 온다. 예를 들어 여러분이 쇼핑몰에서 주문을 하고, 주문이 서버에서 만들어지고, 서버에서 OK를 보내 오면 주문 완료로 화면에 보인다. 하지만 IoT에서는 연결과 물리적 상황 때문에 그렇게 할 수 없다.
모바일이나 PC 시대에는 앱의 “플러그를 켜라”는 명령이 서버에 전달되고 OK 응답이 나오면 화면을 켜지게 바꿨다. 하지만 IoT는 단순히 사용자의 의사가 플랫폼에 전달됐을 뿐 사물이 켜진 것을 확인 못했기 때문에 화면에 켜진 것으로 표시하는 것은 오류이다.
중앙의 서버는 앱으로부터 명령을 받으면 해당 명령을 수행하는 사물에 릴레이 한다. 하지만 릴레이가 성공했을때 화면의 상태를 바꾸면 이것 또한 오류이다. 왜냐하면 플러그가 켜진 것을 알 수 없기 때문이다.
식당의 예를 들면, 웨이터가 음식 주문을 받고 그 주문을 다시 주방장이 받더라도 음식이 만들어진 것은 아니기 때문에 음식이 만들어졌다고 말할 수 없다. 하지만 이 상태까지 오면 음식이 만들어질 확률이 높기 때문에 UI에서 가정의 오류를 범한다.
결과 가정의 오류는 결과가 사용자의 의사대로 만들어지지 않은 상태에서 빠른 응답성을 보이기 위해 상태 변화를 사용자에게 전달하는 오류이다. 실제 음식을 만드는 주방장까지 명령이 전달돼도 주방장의 몸 상태나 갑작스러운 정전 사태로 음식이 만들어졌다고 확신할 수 없다.
플러그의 전원이 켜져서 플러그를 통해 플러그가 켜진 센서 데이터를 다시 전달받아야지만 플러그가 켜진 것을 확신할 수 있다. 따라서 IoT 인터렉션 디
자인에서는 실제 인터넷 사물의 상태가 바뀐 것을 확인할 때까지 “사용자의 요청을 확실히 받았으나 사물 상태를 아직 알 수 없음”을 반영하는 인터렉션이
반드시 필요하다.
영상에서는 그 역할을 애니메이션 효과라 한다. IoT 영역의 결과 처리는 요청에 대한 응답이 아닌 센서 데이터로 판단한다. 앱 - 플랫폼 -사물까지 트랜잭션 개념으로 묶을 수도 있으나 IoT의 연결성을 트랜잭션으로 처리하면 많은 하드웨어가 필요하고 다중 연결/처리가 한없이 길어질 수 있다.
좀 더 복잡한 문제
이전 부분을 어느 정도 이해했다면 IoT 디자인과 IoT 기술을 다룰 수 있다. PC나 모바일 인터넷 시대에는 디지털 입력이 직접적으로 실제 물리적 환경에 IO영향을 주지 않기 때문에 가볍게 입력이 가능하다. 예를 들어 여러분이 쇼핑몰에서 앱을 통해 주문을 하면 상품 주문이 생긴 것이지 실제 배송차를 제어하는 것은 아니기 때문에 실제 세계에 주는 영향이 매우 작다.
하지만 스마트 플러그의 경우 PC나 모바일 시대에서와 같이 화면에 간단한 입력을 했을 뿐인데 실제 전원이 공급되거나 중단되어 실제 물리적 세계에 직접적으로 영향을 준다.
전기난로에 스위치를온 상태로 두고 플러그를 통해 전원 제어를 하면 난로를 켤 수가 있다. 따라서 매우 위험하다. 이 문제 때문에 스마트 플러그 내부의 전압, 전류, 온도를 체크해 과부하를 막는 회로가 들어 있고 중앙에 전달되는 센서 데이터를 분석해 위험을 차단하는 2중 안전장치가 있으나 여전히 위험할 수 있다.
타이머 기능을 한번 생각해 보자. 우리가 플러그의 스위치를 직접 조작하거나 앱을 통해서 제어한다면 사용자의 조작과 반영이 되는 시간 간의 차이가 매우 짧기 때문에 사용자가 결과를 예상하고 조작할 수 있는 가능성이 매우 높다. 하지만 타이머의 경우 스케줄에 의해서 해당 시간이 되면 플러그가 켜지거나 꺼지기 때문에 사용자의 결과를 예상하거나 작동의 인지가 어렵다.
예를 들면 항상 수요일 저녁 7시에 집에 들어가기 때문에 난로를 플러그에 연결하고, 플러그의 타이머를 수요일 저녁 6시 50분으로 맞춰놓고 켜지게 한다.
그럼 항상 수요일 저녁 7시 집에 들어가면 따뜻하게 지낼 수 있다. 하지만 수요일에 바로 집으로 안 간다면 어떻게 될까? 타이머에 의해 자동화되기 때문에이 환경에 반복적으로 노출되면 당연하다고 인지하지 특별하다고 인지하지 않는다.
따라서 사용자는 어느 수요일 저녁 7시에 집에 들어가지 않지만, 난로작동을 인지 못한다. 전열기구가 켜져 있는데 사용자가 아주 멀리 있고 이 사실을 인지 못하는 상황이 벌어진다.
앞서 언급한 2개의 안전장치가 있지만 사용자가 타이머를 설정할 때 반드시 꺼지는 시간도 입력하도록 강제했다. 따라서 사용자는 타이머를 만들 때 반드시 꺼지는 것도 고려해야 한다. 좀 더 안전하게 쓰도록 사용자를 유도하는 인터페이스도 필요하다.
<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>