UI 렌더링에 필요한 최소한의 데이터만 전송해 네트워크 과부하 막고, 네트워크 위에서 연산 처리해 앱 수정 없이도 분산이 가능해

전산학부 신인식 교수와 버팔로 대학의 스티브 고(Steve Ko) 교수 공동연구팀이 여러 스마트 기기에서 모바일 애플리케이션의 UI(User Interface)를 분산 시켜 실행할 수 있는 기술을 개발했다. 연구팀이 개발한 새로운 모바일 플랫폼 기술은 하나의 애플리케이션을 멀티스크린을 이용해 실행할 수 있어 주목을 받고 있다. 이번 연구는 <ACM 모비콤(ACM MobiCom 2019)>에 게재될 예정이다.

 

여러 기기에서 하나의 앱 사용 어려워

IoT 기술이 발달하면서 사용자들은 스마트 TV, 스마트 워치 등 여러 기기를 다루게 되었다. 하지만 기존의 사용자들은 여전히 하나의 기기에서 하나의 스크린만 이용하며 애플리케이션과 상호작용을 하고 있다. 현재 하나의 애플리케이션을 여러 기기에서 사용하고 싶을 때는 스크린 미러링으로 다른 기기의 화면을 사용하거나 이를 돕는 임의의 애플리케이션을 이용해야만 한다. 하지만 이는 전체 화면을 동시에 표시하는 방식으로만 이용 가능해 사용의 유연성을 감소시키며, 미러링하는 화면의 해상도가 높을 시 느리게 반응해 빠른 속도를 요구하는 애플리케이션에는 사용하기 어렵다.

 

그래픽 상태를 미리 파악해 분산시켜 

애플리케이션은 앱 논리회로와 UI로 구성되어 있는데. 연구팀은 앱 논리회로와 UI를 분리한 후, 원하는 UI를 다른 기기로 보내서 렌더링한다. 연구팀이 개발한 UI 분산기술인 FLUID에서는 네트워크 과부하를 줄이기 위해 UI 렌더링에 필요한 최소한의 데이터만 전송하며, 이 데이터를 그래픽 상태(Graphical States)라 부른다. 하지만 문제는 앱 개발자에 의해 임의로 설정된 UI들은 어떤 형태로 그래픽 상태를 지니는지 알 수 없다. 이번 연구에서는 앱들에 대한 정적 분석을 통해 각 UI가 지니는 그래픽 상태의 후보군을 미리 파악하고, 앱 실행 시 이러한 분석 결과를 이용해 그래픽 상태를 추출해 분산시키는 기법을 제시했다.

이번 연구의 또 다른 핵심은 상호작용확장 메커니즘이다. 기본적으로 단일 기기에서 UI 오브젝트에 하나의 사용자 입력이 들어오면, UI 오브젝트가 함수를 호출해 앱 논리회로에 처리를 요청한다. 그 후 앱 논리회로가 입력값을 처리하고 UI를 업데이트한다. 이번 연구에서는 호출된 함수를 앱 논리회로가 아닌 네트워크에서 실행되도록 설정했다. 따라서 애플리케이션을 수정하지 않더라도 마치 하나의 디바이스에서 작동하는 것처럼 보인다.

 

추가적인 개발 없이도 유연성 제공해

연구팀은 화면을 구성하는 기본 단위인 UI를 사용자가 원하는 대로 배치해 이용할 수 있다면 사용에 있어서 충분한 유연성을 제공할 것이라고 전했다. FLUID 기술을 이용하면 개발자들이 멀티스크린 사용을 위해 추가적인 개발 비용을 사용하지 않아도 되며, 단일 기기를 위한 애플리케이션 개발과 동일하게 해도 다중화면에서 사용을 할 수 있다. 또한, UI는 운영 체제 단계에서 관리가 되기 때문에 애플리케이션을 수정하지 않고도 UI를 마음대로 조절하고 옮기는 것이 가능하다. 뿐만 아니라, 다중화면에서 특정 UI만 옮길 때, 전체 화면을 전송하는 경우보다 네트워크 과부하가 줄어들고, 따라서 사용자가 입력한 값을 즉시 처리할 수 있다.

한 애플리케이션을 여러 기기에서 표시하는 FLUID의 모식도
연구팀이 개발한 UI 분산 기술인 FLUID를 사용하면 스마트폰, 스마트 TV, 스마트 내비게이션 등 여러 기기에서 하나의 애플리케이션을 동시에 분산 실행할 수 있다. (ⓒ신인식 교수 제공)

연구팀이 개발한 기술은 하나의 애플리케이션을 여러 기기에서 동시에 이용함으로써 새로운 사용자 경험을 제공한다는 의의가 있다. 이번 연구에 제1 저자로 참여한 오상은 박사 과정은 “지금은 멀티디바이스의 대중화가 더디지만 이번 연구에서 개발한 모바일 플랫폼 기술을 적용한다면 이를 활성화할 수 있을 것”이라 전했다.

저작권자 © 카이스트신문 무단전재 및 재배포 금지