IT Life

'나'와 다른 '너'와의 상호 작용을 위한 IT의 역할 (2편) - 인터페이스 동향과 그 속에 숨겨진 복잡성에 대해 -

2015. 1. 13. 10:22

 


지난 시간에는 서로 다른 개체들을 분류, 인식하고 주변과의 관계를 파악하는 과정에서의 IT의 역할에 대해 함께 살펴보았는데요. 오늘은 단순한 인터페이스 속에 숨겨진 복잡성, 그리고 최근 인터페이스의 동향에 대해 정리해 보겠습니다.  


●'나'와 다른 '너'와의 상호 작용을 위한 IT의 역할 (1편) : http://blog.lgcns.com/674

 

작년, 주인공이 컴퓨터 운영 체제(OS)와 사랑에 빠지는 내용의 '그녀(Her, 2013)'라는 영화를 보았습니다. 이 영화는 IT의 관점에서 볼 때, 아주 많은 이야깃거리를 던져 주고 있었는데요. 뿐만 아니라 '주인공은 왜 그렇게 되었을까?'라는 의문도 들게 만들었습니다. 물론 디지털 시대를 살아가는 현대인의 외로움이 그 이유가 됐겠죠. 그러나 그보다는 인터페이스[각주:1] 의 매력 때문인 것 같았습니다. 


실제로 인간은 말로 5% 정도만 표현하고, 사고/감정/학습 등의 95%를 무의식 속에서 행한다는 연구 결과도 있다고 하는데요. 하지만 때로는 보이는 것에, 그리고 단순한 반응들에 열광하는 특성 또한 지니고 있습니다. 따라서 동일한 언어와 같은 쉬운 매개체로 자신에게 맞는 대화를 나누고 비밀이 보장되며, 적절한 반응까지 얻는다면 그보다 더 좋은 대화 상대는 없겠죠. 이 영화에서의 인터페이스 또한 주인공의 가장 좋은 친구가 되어 주었기 때문에, 기계와 사랑에 빠지는 기이한 일이 발생하지 않았나 생각해 봅니다. 실제로 영화 속 인터페이스는 음성 인식을 기반으로 한 NUI(Natural User Interface), 개개인 맞춤형, 그리고 사용자와 관계된 상황을 인지, 예측하여 대신 일을 처리해 주는 자율적인 대리자로 그려지고 있습니다. 


● Natural User Interface: 미래의 모습: http://blog.lgcns.com/119

● 인간인 듯 인간 아닌, 그러나 인간 같은 너-인공지능 컴퓨팅: http://blog.lgcns.com/612


한 가지 이유를 더 생각해 본다면, 인간의 인지 능력의 한계, 이질적인 것에 대한 거부감 혹은 그것이 더 편하기 때문일지도 모르겠습니다. 언제부터인가 많은 사람들이 실제 만남보다 가상의 매개체를 이용하여 대면하는 것을 더 편하게 느끼기 시작한 것이 현실이니까요. 영화에서도 사람들은 혼자 길을 걸으며, 기계에 대고 중얼거립니다. 현실에서는 서로 서툴고, 눈높이 조절 때문에 힘들지만, 이 눈높이 조절을 담당하는 것이 바로 인터페이스입니다. 수면 위 백조의 모습처럼 인터페이스는 사용자에게 우아하고 친절하게 보이지만, 그 내면의 쉴 새 없는 고단한 발놀림을 우리는 몰랐던 것이죠. 사실 어떤 복잡한 알고리즘의 실행들이 숨어 있는 지 알 필요도 없었습니다. 앞서 1편에서 예로 들었던 공항 체크인 2-2) 과정과 동일한 것인 셈이죠. 


이것은 굳이 객체 지향 설계의 은닉성 개념을 빌리지 않더라도 사용자와 개발자 모두에게 장점이 될 것 같은데요. 개발자 입장에서는 숨겨야 할 것과 보여 줘도 될 것들을 구분할 수 있고, 결국 포장을 통해 사용자나 외부에 공개하는 것이 인터페이스이기 때문입니다. 물론 보여 줘도 되는 것들은 어떤 프로그램의 입출력, 메시지 전송, 그리고 'What'에 해당하는 가시적인 기능들이겠죠. 사람들이 감정을 숨기는 것처럼 'How'는 철저히 가려져 있습니다. 영화 속 OS1(플랫폼)의 인터페이스는 편의성을 넘어서서, 사용자의 개인 취향에 따라 모듈화된 단순화, 대화형의 직관적 매개체, 개인 비서 같은 편의를 제공하며 그 매력을 발산하고 있었던 것입니다.


  <영화 '그녀(Her)'가 이야기하고 있는 가상-물리 시스템과 기본적인 인터페이스의 역할>


결국 세상의 수많은 개체들은 어떤 형태로든 매개체를 통한 관계를 맺고 있을지도 모릅니다. 그리고 이미 그 속에서 IT는 많은 역할을 하고 있습니다. '기계-기계', '기계-인간'의 눈높이 조절이 여러 인터페이스들을 통해 해결됐고, 어찌 보면 가장 까다로울 수 있는 사람과 사람 사이의 연결이 통신 수단 인터페이스들을 통해 해결되었으니까요. 대표적인 예로 이메일, 채팅 애플리케이션, 번역기, SNS 등이 있습니다. 다시 말해, 연결과 관계 지속의 핵심은 결국 인터페이스와 플랫폼입니다. 그리고 인터페이스의 매력과 가치는 단순함, 간결성, 명확한 상호 작용의 조절에 있죠. 여기서 단순함이란, 그저 복잡한 것을 없애는 것이나 미니멀리즘의 측면이 아닌데요. 그보다는 마치 동전의 양면처럼 뒷면의 복잡성을 숨기고, 앞면에 단순함을 내세워 일종의 질서를 수립하는 것이라고 이야기할 수 있습니다. 


그 질서는 대상 객체가 지향하는 바에 따라야겠죠.  '미치도록 단순한(Insanely Simple)' 이라는 책에서 다루고 있는 이야기나 'It just works' 라는 아주 겸손한 모토를 내세웠던 애플의 성공 사례 라던지, 가장 최근의 극한의 단순함을 자랑하는 'Yo' 라는 앱의 성공 사례 (이 경우는 심플한 아이디어와 확장성에 치중을 한 경우)등을 통해서, 우리는 연결 사회 속에서 효과적인 (소프트웨어) 인터페이스가 지녀야 할 핵심 요소들을 발견하게 됩니다.


   <Simplicity를 내세운 성공 사례들, Ken Segall의 Insanely Simple, 애플의 모토, 그리고 Yo App>


사물인터넷(Internet of Things) 초기에 주목을 받는 것은 아마도 소비자와 직접적으로 관계가 있는 웨어러블 디바이스나 자동차 등의 기기(Things)들이겠죠. 그러나 향후 IoT에서 핵심이 되는 것은 '물건(Thing)'이 아니라 결국은 '서비스- IaaS(Infrastructure as a Service), SaaS(Software as a Service), PaaS(Platform as a Service)'가 될 것이라고 예상해 봅니다. 또한 어떤 서비스(콘텐츠)인지가 관건이 되겠지만, 기기들 즉 물리적 자원들은 상황 데이터 수집 혹은 서비스 상호 작용을 위한 물리적 인터페이스가 될 가능성이 있습니다. 그리고 고가의 산업용 기기들 같은 물리적 자원들은 주문 임대형식으로 사용될지도 모릅니다. 마치 현재 많은 미국인들이 넷플릭스(Netflix)에서 영화를 대여해 스트리밍으로 감상하듯이 말이죠. 주문자 생산(OEM)이나 아웃소싱 같은 계약의 개념 자체가 바뀌는 것입니다. 


바꿔 말하면, 새로운 하이테크 물건들은 계속 개발이 되겠죠. 그러나 스마트폰의 패러다임을 넘어설 만한 더욱 스마트한 기기들이 개발되지 않는 한, 물건이라는 것은 노후되고, 익숙해지고, 싫증나기 마련이므로 사용자들의 기억에서는 쉽게 잊혀질 것이기 때문입니다. 한편으로는 스마트폰의 문을 열었던 애플의 성공이 과연 하드웨어 때문이었나 다시 한번 생각해 보게 됩니다.  


그래서 결국, 최종 소비자들은 절대 인지할 수 없는 (소프트웨어) 인터페이스의 중요성이 새삼 더 부각될 것이라고 예상하고 있습니다. 물건-물건, 사람-사람, 애플리케이션들을 연결해 주는 역할을 하는 것이겠죠. 그러나 전망을 할 수는 있지만, 재화라는 가치를 창출하는 서비스와 비즈니스가 무엇인지는 아무도 정확하게는 알 수가 없습니다. 왜냐하면, 그만큼 사용자들도 함께 스마트해졌기 때문입니다. 앞서 소개한 'Yo' 의 창업자 Or Arbel은 8시간 만에 이 앱을 개발하고, 올해 만우절 날 배포를 시작했다고 하는데요. 이후에 다른 기능들이 추가되기는 했지만, 오리지널 버전은 어찌 보면 어이없는 단 하나의 기능, 친구들에게 'Yo'라는 메시지와 소리를 같이 보내는 것이 전부였다고 합니다. 그러나 이것이 어찌되었건 나름의 성공을 거두었고, 그 무한한 확장성과 활용성에 매력을 느낀 업체들은 홍보용 플랫폼으로 재활용하기에 이르렀다고 하니, 그 또한 시사하는 바가 큽니다.

 

앞서 사전적 정의 내렸지만, 인터페이스란 의미는 무척 다중적이고 모호합니다. 기차 플랫폼이나 항구 등에 비유한다면, 인터페이스는 승강장의 게이트 또는 부두의 선착장과 같은 개념으로 볼 수 있는데요. 인터페이스는 그 끝(Edge)에 어떤 개체 혹은 사용자 요구가 있느냐에 따라 유연하게 그 형태와 기능을 달리해야 한다는 결론에 이릅니다. 즉, 물리적인 매개체인 USB, IEEE 1394, 리모콘 등을 제외하고 가상적 소프트웨어 매개체에 국한한다면 아래의 세 가지 정도로 구분할 수 있을 것 같습니다. 


User Interface

일반 사용자-애플리케이션, 운영 체제 등의 사이에서 일어나는 상호 작용을 매개하는 것 또는 산업 현장에서 사용자-기계 인터페이스(HMI, Human-Machine Interface)는 작업 공정과 기술에 연관된 데이터를 사용자가 인지할 수 있는 형태로 나타내고, 이를 통해 해당 공정을 제어할 수 있도록 돕는 도구를 말함.

 Communication Interface

소프트웨어 응용 프로그램들 사이에서 다양한 메시지와 상호 작용을 처리하는 중간자 프로그램, 소프트웨어 어댑터, 미들웨어를 총칭하는 표현으로 사용됨.

 Application Programming Interface (API)[각주:2]

개발자-응용 프로그램의 관계라 볼 수 있으며, 개발자를 위해 서로 다른 응용 프로그램의 연결, 협업, 그리고 기능 추가, 구현 등을 목적으로 소프트웨어 플랫폼에서 기본적으로 제공하는 요소 기능을 말함. 

예를 들어, .NET 등에서 제공하는 각종 Public 내부 함수 들이라고 할 수 있음. 

그 중 Open API 는 웹 서비스와 관계해 공개된 표준 데이터 포맷(JSON, XML 등), 통신 기술(XML, SOAP, RESTful 등), 인증 기술 등임. 

대부분의 대형 IT 업체, 예를 들어, IBM, 구글, 아마존, 이베이, 페이팔, 트위터 등의 업체에서 데이터 API를 소유하고 그들의 플랫폼과 관계한 외부 개발자의 참여를 허용하고 이를 토대로 매쉬업(조합하여 새로운 서비스 등을 만드는 것) 기능을 제공하는 방식을 말함. 

최근 가상 인터페이스들은 제어하는 대상과의 단순한 연결, 보여 주는 역할을 넘어서서 정보 수집, 저장, 관리 등의 기능까지 하고 있는데요. 단순한 매개체에서 이제는 개체에 대한 분석과 능동적인 의사 결정까지 덧붙인 '인터렉션(Interaction)'으로 거듭나고 있습니다. 또한 여러 가지 다른 인터페이스들과의 '연동'이 가능해지면서, 무한한 확장성 또한 더해졌습니다.   


<테슬라 모델 S의 User Interface(좌)와 GE Cimplicity HMI의 인터페이스(우)>


위의 왼쪽 사진은 전기 자동차 테슬라의 모델 S의 유저 인터페이스를 보여 주고 있는데요. 이는 스마트폰 앱과 통신하면서 남은 배터리의 양, 근처 충전소 등의 자동차 상태를 실시간으로 관리할 수 있도록 해 줍니다. 또한 오른쪽 사진은 General Electronic의 생산 설비인 Fanuc 시리즈를 위한 HMI인 Cimplicity로서, HMI는 보통 공장의 기계 설비를 제어하는 SCADA(Supervisory Control And Data Acquisition) 시스템 인터페이스인데요. 공정에서 발생하는 각종 데이터와 이를 이용한 분석 기능, 해당 공정, 설비에 대한 관리 정보 등을 제공합니다. 다이어그램 및 애니메이션 기능으로 운영자와 더 쉬운 상호 작용이 가능해지고, 모바일화되면서 위치에 구애받지 않게 되었습니다. 즉 테슬라의 경우는 인간과 자동차의 상태를 복합적으로 시스템이 파악하고, 상태에 맞게 반응하기도 하는 것이죠. 그리고 반대로 HMI의 경우 기계의 작동 상황을 인간이 쉽게 인지하여 필요에 따라 인간이 최종 결정을 하게 되는 것입니다.   


위의 두 가지 유저 인터페이스의 예들 외에도, 제가 자주 사용하는 Simio라는 시뮬레이션 소프트웨어가 있는데요. 제공하는 기본 기능 이외에 추가적인 기능(예를 들어 외부 Legacy 응용 프로그램과 커뮤니케이션을 한다거나 할 때)이 필요한 경우, 이를 C# - .NET 기반의 'Open API'를 통해 개발자가 접근하여 기능들을 추가할 수 있게 해 줍니다. 그리고 이와 관련된 포럼 같은 것도 운영하고 있습니다. 개인적인 생각이지만 상업적인 비즈니스가 아닌 경우라면, 개발자들로 하여금 이를 통해 연구 개발이라는 서비스를 제공하게 하면서 시너지 효과를 추구하고 있는 것 같다는 느낌을 받았습니다. 


  <API를 이용한 인터페이스 구현의 예와 각종 서비스를 위한 Open API들>


아무튼 위의 왼쪽 자료와 같은 물리 시스템에 대한 분산된 시뮬레이션에 API 형태-DLL(Dynamic Link Library)로 클라이언트 인터페이스를 넣고, 어떤 사건에 따라 서버 측의 인터페이스 API를 통해 다른 클라이언트들에 메시지를 전송하는 기능이었는데요. 메시지의 종류에 따라 어떤 액션을 취하게 하는 것이 목적이었습니다. 그 업체는 규모가 그다지 크지 않음에도 불구하고 그러한 Open API를 제공하는 것을 보면, 오른쪽의 자료처럼 미국의 많은 IT 업체들이 다양한 서비스를 기반으로 각각의 Open API 들을 운영하고 있는 것은 크게 놀랄만한 일이 아닌 것 같습니다. 또한 'programmableweb' 이라는 사이트에서는 개발자를 위한 각종 정보와 매일 업데이트 되는 12,586개의 Open API 들을 검색할 수도 있다고 하는데요. 국내에서는 다음, 네이버, 카카오톡, 그리고 LG CNS VApps에서도 이런 Open API 플랫폼을 운영하고 있습니다. 

여기서 말하는 서비스는 개인이 제공할 수도 있는 아주 작고 간단한 실험적 기능을 지닌 응용 프로그램(Micro Service) 혹은 모듈들로부터 데이터 자체만 서비스로 제공하는 것입니다. 또한 반대로 데이터를 사용자로부터 받아 OS나 기업용 클라우딩의 여러 심화된 분석 툴(클라우드 기반 Google Analytics 나 IBM’s Watson Analytics beta 서비스)들과 연동해 분석 결과를 제공하거나, 혹은 클라우드 자체에서 응용 프로그램을 제공할 수도 있는데요. 외부에서 개발한 무형의 프로그램이나 데이터도 가상의 자원이라고 한다면, 결국 가상의 자원들을 모아 완성된 비즈니스 프로세스를 만들어 재서비스하려는 데 그 목적이 있다고 생각됩니다. 


비즈니스 측면에서 이를 해석한다면, 타기업의 IT 자원이나 심지어는 애플리케이션까지 클라우드에서 서비스받게 하면서, 그 대상 기업 내 하나의 부서 역할을 클라우드가 대체하게 될 수도 있을 듯 합니다. 이러한 상황은 결국 모든 개체들이 나와 다른 객체들을 대상으로 '서비스'를 제공하는데 초점이 맞춰지게 만들겠죠. 그래서 다소 과장 같지만, 탄생한 표현 중 하나가 바로 'Everything or Anything as a Service (XaaS)'입니다. 다음 편에서 더 이야기 하겠지만, 사물인터넷 하의 진화된 가치 사슬에서의 서비스는 소비자가 일반적인 제품의 최종 사용자에 국한되는 것이 아닙니다. 왜냐하면 다양한 이해 관계자, 즉 복수의 여러 사용자(사용자, 개발자, 프로젝트 참여자, 파트너, 계열사, 그리고 이미 존재하는 응용 프로그램 등)들의 참여로 더 확장될 수 있기 때문입니다. 



<Everything as a Service (XaaS)(출처: http://sandhill.com/)>


이런 모습들에서 그들이 제공하는 Open API 처럼, 클라우드 플랫폼이라는 것도 결국에는 하나의 거대한 인터페이스들의 집합체라 정의 내릴 수도 있겠다는 생각도 해 봅니다. 마치 프랙탈 구조처럼 말이죠. 그러나 분명 클라우드 컴퓨팅은 결국 중앙 집중식의 관리 및 제어로 초연결 사회의 수많은 연결에서 빚어지는 복잡성을 해결하는 하나의 혜안이 될 수 있지만, 조직의 분권화 등의 문제를 낳을 수도 있습니다. 가장 최근에는 이러한 클라우드 플랫폼들을 통합하고 연계해 주는 iPaaS(intergration Platform as a service)라는 것도 등장했다고 하는데요. 클라우드 스토리지에 IT 자원들이 분권화된(Silo) 조직과 기업들이 타 조직이나 실제 현장 시스템들과 원활한 통신을 할 수 있도록 도와주는 서비스라고 합니다. 


지금까지 단순한 인터페이스 속에 숨겨진 복잡성, 그리고 최근 인터페이스의 동향에 대해 함께 정리해 보았습니다. 다음 시간에는 보다 단순하고 편리한 인터페이스 개발을 위해 적용될 수 있는 원리들을 알아보겠습니다.  


l 글 이승엽 연구원

현재 Pennsylvania State University 박사과정 후 연구원으로 활동하고 있다. 연세대학교 산업시스템공학과에서 학사를 마쳤으며, 미국 Pennsylvania State University에서 산업공학 석사/박사를 취득하였다. Manufacturing system control, supply chain system modeling, 등의 분야에서 다양한 프로젝트 경험을 가지고 있다. 주요 연구 관심 분야는 Formal model based hybrid SoS engineering, 다양한 Simulation based methodology (agent, discrete event, system dynamics), manufacturing and supply chain systems, IT-based industry convergence, 그리고 Cyber-Physical System 등이 있다. 


  1. 인터페이스(대면부, 결합부) 또는 접속기는 사물 간 또는 사물과 인간 간의 의사소통이 가능하도록 일시적 혹은 영속적인 접근을 목적으로 만들어진 물리적, 가상적 매개체를 의미합니다. 여기서는 가상적인 응용 프로그램들 사이의 매개체 또한 의미합니다.(출처: 위키피디아) [본문으로]
  2. 소프트웨어 애플리케이션들을 개발하기 위한 방법, 의례, 도구, 라이브러리 등의 핵심 시술 기반 집합체입니다. 종류에 따라 운영, 입출력 등에 적절한 요소들을 제공하는 개발 블록이라고 볼 수 있습니다. 개발자는 결국 재사용 가능한 블록, 모듈들을 조합하여 특정한 기능의 애플리케이션, 미들웨어 어댑터 (Middleware)등을 개발할 수 있습니다.(출처: Webopedia, Cloud Computing Journal) [본문으로]
Posted by IT로 만드는 새로운 미래를 열어갑니다 LG CNS

댓글을 달아 주세요

위로