모바일 플랫폼의 종류

마지막 업데이트: 2022년 3월 4일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
http://uxstory.co.kr/blog/2018/08/10/app_list/

인증 흐름 및 애플리케이션 시나리오

Microsoft ID 플랫폼은 다양한 종류의 최신 애플리케이션 아키텍처에 대한 인증을 지원합니다. 모든 아키텍처는 OAuth 2.0 또는 OpenID Connect 업계 표준 프로토콜을 기반으로 합니다. Microsoft ID 플랫폼용 인증 라이브러리를 사용하여 애플리케이션에서 ID를 인증하고 토큰을 획득하여 보호된 API에 액세스합니다.

이 문서에서는 인증 흐름 및 이러한 흐름이 사용되는 애플리케이션 시나리오에 대해 설명합니다.

애플리케이션 범주

토큰은 다음과 같은 여러 유형의 애플리케이션에서 가져올 수 있습니다.

브라우저를 포함하지 않거나 IoT(사물 인터넷)에서 실행되고 있는 디바이스에서 실행되는 앱에서 토큰을 가져올 수도 있습니다.

다음 섹션에서는 애플리케이션의 범주에 대해 설명합니다.

보호된 리소스 및 클라이언트 애플리케이션

인증 시나리오에는 두 가지 작업이 포함됩니다.

  • 보호된 웹 API에 대한 보안 토큰 획득: Microsoft에서 개발하고 지원하는 MSAL(Microsoft 인증 라이브러리)을 사용하는 것이 좋습니다.
  • 웹 API 또는 웹앱 보호: 이러한 리소스를 보호할 때 한 가지 과제는 보안 토큰의 유효성을 검사하는 것입니다. 일부 플랫폼의 경우 Microsoft에서 미들웨어 라이브러리를 제공합니다.

사용자 포함 또는 사용자 없음

대부분의 인증 시나리오에서는 로그인한 사용자를 대신하여 토큰을 획득합니다.

그러나 디먼 앱도 있습니다. 이러한 시나리오에서는 애플리케이션이 사용자 없이 모바일 플랫폼의 종류 스스로 토큰을 획득합니다.

단일 페이지, 퍼블릭 클라이언트 및 기밀 클라이언트 애플리케이션

보안 토큰은 여러 유형의 애플리케이션에서 획득할 수 있습니다. 이러한 애플리케이션은 다음 세 가지 범주로 구분됩니다. 각 라이브러리는 서로 다른 라이브러리와 개체에 사용됩니다.

단일 페이지 애플리케이션: SPA라고도 하는 이 애플리케이션은 브라우저에서 실행되는 JavaScript 또는 TypeScript 앱이 토큰을 획득하는 웹앱입니다. 대부분의 최신 앱에는 기본적으로 JavaScript로 작성된 단일 페이지 애플리케이션이 프런트 엔드에 위치합니다. 애플리케이션은 종종 Angular, React 또는 Vue와 같은 프레임워크를 사용합니다. MSAL.js는 단일 페이지 애플리케이션을 지원하는 유일한 Microsoft 인증 라이브러리입니다.

퍼블릭 클라이언트 애플리케이션: 이 범주의 입은 다음 유형과 같이 항상 로그인 사용자입니다.

  • 로그인한 사용자를 대신하여 웹 API를 호출하는 데스크톱 앱
  • 모바일 앱
  • 브라우저가 없는 디바이스에서 실행되는 앱(예: IoT에서 실행되는 앱)

기밀 클라이언트 애플리케이션:이 범주의 앱은 다음과 같습니다.

  • 웹 API를 호출하는 웹앱
  • 웹 API를 호출하는 웹 API
  • 디먼 앱(Linux 디먼 또는 Windows 서비스와 같은 콘솔 서비스로 구현된 경우에도 해당)

로그인 대상 그룹

사용 가능한 인증 흐름은 로그인 대상 그룹에 따라 달라집니다. 일부 흐름은 회사 또는 학교 계정에서만 사용할 수 있습니다. 다른 흐름은 회사/학교 모바일 플랫폼의 종류 계정과 개인 Microsoft 계정 모두에 사용할 수 있습니다.

자세한 내용은 지원되는 계정 유형을 참조하세요.

애플리케이션 시나리오

Microsoft ID 플랫폼은 다음 앱 아키텍처에 대한 인증을 지원합니다.

애플리케이션은 다양한 인증 흐름을 사용하여 사용자를 로그인하고, 토큰을 가져와서 보호된 API를 호출합니다.

단일 페이지 애플리케이션

많은 최신 웹앱이 클라이언트 쪽 단일 페이지 애플리케이션으로 빌드됩니다. 이러한 애플리케이션은 JavaScript 또는 Angular, Vue, React 같은 프레임워크를 사용합니다. 이러한 애플리케이션은 웹 브라우저에서 실행됩니다.

단일 페이지 애플리케이션은 인증 특성 측면에서 기존의 서버 쪽 웹앱과 다릅니다. Microsoft ID 플랫폼을 사용하면 단일 페이지 애플리케이션에서 사용자를 로그인하고 토큰을 가져와서 백 엔드 서비스 또는 웹 API에 액세스할 수 있습니다. Microsoft ID 플랫폼은 JavaScript 애플리케이션에 대한 두 가지 권한 부여 유형을 제공합니다.

MSAL.js(2.x) MSAL.js(1.x)

사용자를 로그인하는 웹앱

사용자를 로그인하는 웹앱을 보호하려면

.NET에서 개발하는 경우 ASP.NET OpenID Connect 미들웨어에서 ASP.NET 또는 ASP.NET Core를 사용합니다. 리소스를 보호하려면 보안 토큰의 유효성을 검사해야 하며, 이 작업은 MSAL 라이브러리가 아닌 .NET용 IdentityModel 확장을 통해 수행됩니다.

Node.js에서 개발하는 경우 MSAL 노드를 사용합니다.

사용자를 로그인하고 사용자를 대신하여 웹 API를 호출하는 웹앱

웹앱에서 사용자를 대신하여 웹 API를 호출하려면 권한 부여 코드 흐름을 사용하여 획득한 토큰을 토큰 캐시에 저장합니다. 필요한 경우 MSAL은 토큰을 새로 고치고, 컨트롤러는 캐시에서 토큰을 자동으로 가져옵니다.

로그인한 사용자를 대신하여 웹 API를 호출하는 데스크톱 앱

데스크톱 앱에서 사용자를 로그인하는 웹 API를 호출하려면 MSAL의 대화형 토큰 획득 메서드를 사용합니다. 이러한 대화형 메서드를 사용하면 로그인 UI 환경을 제어할 수 있습니다. MSAL은 이 상호 작용에 웹 브라우저를 사용합니다.

Windows 도메인에 조인되거나 Azure AD(Azure Active Directory)에서 조인한 컴퓨터에서 Windows에 모바일 플랫폼의 종류 호스팅된 애플리케이션을 사용할 수도 있습니다. 이러한 애플리케이션은 Windows 통합 인증을 사용하여 토큰을 자동으로 가져올 수 있습니다.

브라우저 없이 디바이스에서 실행되는 애플리케이션은 여전히 사용자를 대신하여 API를 호출할 수 있습니다. 인증하려면 사용자가 웹 브라우저를 사용하는 다른 디바이스에 로그인해야 합니다. 이 시나리오에서는 디바이스 코드 흐름을 사용해야 합니다.

이를 사용하지 않는 것이 좋지만, 사용자 이름/암호 흐름은 퍼블릭 클라이언트 애플리케이션에서 사용할 수 있습니다. 이 흐름은 여전히 DevOps와 같은 일부 시나리오에서 필요합니다.

사용자 이름/암호 흐름을 사용하면 애플리케이션이 제한됩니다. 예를 들어 애플리케이션이 Azure AD에서 다단계 인증 또는 조건부 액세스 도구를 사용해야 하는 사용자를 로그인할 수 없습니다. 또한 애플리케이션에서 Single Sign-On의 이점을 누릴 수 없습니다. 사용자 이름/암호 흐름을 사용하는 인증은 최신 인증 원칙에 위반되며, 레거시 용도로만 제공됩니다.

데스크톱 앱에서 토큰 캐시를 영구적으로 유지하려면 토큰 캐시 직렬화를 사용자 지정할 수 있습니다. 이중 토큰 캐시 직렬화를 구현하면 이전 버전 및 이후 버전과 호환되는 토큰 캐시를 사용할 수 있습니다. 이러한 토큰은 이전 세대의 인증 라이브러리를 지원합니다. 특정 라이브러리에는 .NET용 Azure AD 인증 라이브러리(ADAL.NET) 버전 3 및 4가 포함됩니다.

대화형 사용자를 대신하여 웹 API를 호출하는 모바일 앱

데스크톱 앱과 비슷하게 모바일 앱도 MSAL의 대화형 토큰 획득 메서드를 호출하여 웹 API를 호출하기 위한 토큰을 획득합니다.

MSAL iOS 및 MSAL Android는 기본적으로 시스템 웹 브라우저를 사용합니다. 그러나 포함된 웹 보기를 대신 사용하도록 지시할 수 있습니다. UWP(유니버설 Windows 플랫폼), iOS, Android 중 어떤 모바일 플랫폼이냐에 따라 각기 다른 특이점이 있습니다.

디바이스 ID 또는 디바이스 등록과 관련된 조건부 액세스가 포함된 일부 시나리오에서는 broker를 디바이스에 설치해야 합니다. broker의 예로는 Android의 Microsoft 회사 포털과 Android 및 iOS의 Microsoft Authenticator가 있습니다. MSAL은 이제 broker와 상호 작용할 수 있습니다. Broker에 대한 자세한 내용은 Android 및 iOS에서 Broker 활용을 참조하세요.

Xamarin에서 MSAL.iOS, MSAL.Android 또는 MSAL.NET을 사용하는 모바일 앱에는 앱 보호 정책이 적용될 수 있습니다. 예를 들어 정책을 사용하면 사용자가 보호된 텍스트를 복사하지 못할 수 있습니다. 모바일 앱은 Intune에서 관리하고, Intune에서 관리형 앱으로 인식합니다. 자세한 내용은 Microsoft Intune App SDK 개요를 참조하세요.

Intune 앱 SDK는 MSAL 라이브러리와는 별개이며, 자체적으로 Azure AD와 상호 작용합니다.

보호된 웹 API

Microsoft ID 플랫폼 엔드포인트를 사용하여 앱의 RESTful API와 같은 웹 서비스를 보호할 수 있습니다. 보호된 웹 API는 액세스 토큰을 통해 호출됩니다. 토큰은 API의 데이터를 보호하고 들어오는 요청을 인증하는 데 도움이 됩니다. 웹 API 호출자는 액세스 토큰을 HTTP 요청의 인증 헤더에 추가합니다.

ASP.NET 또는 ASP.NET Core 웹 API를 보호하려면 액세스 토큰의 유효성을 검사합니다. 이 유효성 검사를 위해 ASP.NET JWT 미들웨어를 사용합니다. 유효성 검사는 MSAL.NET이 아니라 .NET용 IdentityModel 확장 라이브러리에서 수행합니다.

자세한 내용은 보호된 웹 API를 참조하세요.

사용자를 대신하여 다른 웹 API를 호출하는 웹 API

보호된 웹 API가 사용자를 대신하여 다른 웹 API를 호출하려면 앱에서 다운스트림 웹 API에 대한 토큰을 가져와야 합니다. 이러한 호출을 '서비스 간' 호출이라고도 합니다. 다른 웹 API를 호출하는 웹 API는 사용자 지정 캐시 직렬화를 제공해야 합니다.

디먼 이름으로 웹 API를 호출하는 디먼 앱

장기 실행 프로세스가 있거나 사용자 상호 작용 없이 작동하는 앱에도 보안 웹 API에 액세스할 수 있는 방법이 필요합니다. 이러한 앱은 앱의 ID를 사용하여 인증하고 토큰을 가져올 수 있습니다. 앱은 클라이언트 비밀 또는 인증서를 사용하여 해당 ID를 증명합니다.

MSAL의 클라이언트 자격 증명 획득 메서드를 사용하여 호출 앱에 대한 토큰을 획득하는 이러한 디먼 앱을 작성할 수 있습니다. 이러한 메서드에는 Azure AD에서 앱 등록에 추가하는 클라이언트 비밀이 필요합니다. 그런 다음, 앱에서 이 비밀을 호출된 디먼과 공유합니다. 이러한 비밀의 예로는 애플리케이션 암호, 인증서 어설션, 클라이언트 어설션이 있습니다.

시나리오 및 지원되는 인증 흐름

인증 흐름을 사용하여 토큰을 요청하는 애플리케이션 시나리오를 구현합니다. 애플리케이션 시나리오와 인증 흐름 간에는 일대일 매핑이 없습니다.

토큰 획득과 관련된 시나리오는 OAuth 2.0 인증 흐름에도 적용됩니다. 자세한 내용은 Microsoft ID 플랫폼의 OAuth 2.0 및 OpenID Connect 프로토콜을 참조하세요.

시나리오 자세한 시나리오 연습 OAuth 2.0 흐름 및 권한 부여 사용자
단일 페이지 앱 PKCE가 있는 권한 부여 코드 회사 또는 학교 계정, 개인 계정 및 Azure AD B2C(Azure Active Directory B2C)
단일 페이지 앱 암시적 회사 또는 학교 계정, 개인 계정 및 Azure AD B2C(Azure Active Directory B2C)
사용자가 로그인하는 웹앱 인증 코드 회사/학교 계정, 개인 계정 및 Azure AD B2C
Web API를 호출하는 웹앱 인증 코드 회사/학교 계정, 개인 계정 및 Azure AD B2C
Web API를 호출하는 데스크톱 앱 대화형(PKCE가 있는 권한 부여 코드 사용) 회사/학교 계정, 개인 계정 및 Azure AD B2C
Windows 통합 인증 회사 또는 학교 계정
리소스 소유자 암호 회사/학교 계정 및 Azure AD B2C
디바이스 코드 회사/학교 계정, 개인 계정(Azure AD B2C 제외)
Web API를 호출하는 모바일 앱 대화형(PKCE가 있는 권한 부여 코드 사용) 회사/학교 계정, 개인 계정 및 Azure AD B2C
리소스 소유자 암호 회사/학교 계정 및 Azure AD B2C
웹 API를 호출하는 디먼 앱 클라이언트 자격 증명 사용자가 없고 Azure AD 조직에서만 사용되는 앱 전용 권한
웹 API를 호출하는 웹 API On-Behalf-Of 회사/학교 계정 및 개인 계정

시나리오 및 지원되는 플랫폼과 언어

Microsoft 인증 라이브러리에서 지원하는 여러 플랫폼은 다음과 같습니다.

  • .NET Core
  • .NET Framework
  • Java
  • JavaScript
  • macOS
  • 네이티브 Android
  • 네이티브 iOS
  • Node.js
  • Python
  • Windows 10/UWP
  • Xamarin.iOS
  • Xamarin.Android

다양한 언어를 사용하여 애플리케이션을 빌드할 수도 있습니다.

다음 표의 Windows 열에서 .NET Core가 언급될 때마다 .NET Framework도 사용할 수 있습니다. 복잡한 표가 되지 않도록 후자는 생략되었습니다.

글로벌 성공 요원, 자동차 등 넥스트 모바일서 기회 잡아야 구글·애플 ‘플랫폼 왕국’…융복합 대세

플랫폼을 기업 경영에 최초로 적용한 건 자동차 업계다. 포드와 GM은 자동차마다 제각각이던 생산 틀을 일원화하면서 생산 비용을 대폭 절감했다. 공장에서 쓰이던 플랫폼이 디지털 경제에서 쓰인 건 마이크로소프트(MS)의 윈도 OS가 시초다. 다양한 프로그램이 윈도를 통해 구현되면서 오늘날 플랫폼 경제의 막을 올렸다.

이처럼 플랫폼은 기능에 따라 종류가 다양하다. 글로벌 플랫폼 기업들의 성공 사례를 유형별로 살펴봤다.

▷제품 → 기술 → 서비스順 진화

전문가들은 플랫폼 유형을 크게 3가지로 구분한다. 발달 순서에 따라 하드웨어(HW) 기반의 ‘제품 플랫폼’과 기본 소프트웨어(SW) 기반 ‘기술 플랫폼’, 그리고 응용 SW 기반 ‘서비스 플랫폼’ 등이다.

포드와 GM의 공통 생산 틀은 대표적인 제품 플랫폼 사례다. 스마트폰도 그 안의 소프트웨어가 아닌, 단말기 자체만 놓고 보면 제품 플랫폼에 해당한다. 크게 보면 스마트폰이란 공통된 기기(HW) 덕분에 다양한 앱 생태계가 형성될 수 있었기 때문이다. ‘갤럭시S’와 ‘아이폰’ 같은 시장 지배적 제품을 만드는 삼성과 애플은 글로벌 제품 플랫폼 업계의 최강자라 할 수 있다. 실제 유통 단계상 ‘절대갑’인 이통사들도 삼성과 애플에는 오히려 을일 때가 많다.

제품 플랫폼의 핵심 수익원은 대부분 제품 판매다. 소비자는 해당 제품을 구입해야만 다른 서비스를 이용할 수 있으니 기꺼이 돈을 지불한다. 소비자로부터 선택을 받으려면 제품 플랫폼과 연결된 서비스가 다양하고 차별화돼야 한다. 삼성과 애플이 각각 삼성페이, 애플페이, 홍채인식 등 각종 무료 서비스를 개발하는 데 열을 올리는 이유다. 제품 플랫폼의 유력한 차기 주자로는 VR(가상현실) 헤드셋과 전기차, 자율주행차, AI 스피커 등이 꼽힌다.

기술 플랫폼 부문에선 윈도를 비롯해 익스플로러, 크롬 등 웹브라우저와 안드로이드, iOS 등 스마트폰 OS가 대표 사례다. 1990~2000년대 웹 시대에는 MS가 시장을 독점했지만, 2010년대 모바일 시대 이후 애플과 구글이 시장을 양분하고 있다. 이들은 서비스를 이용하기 전 필수로 구동해야 돼 플랫폼의 관문 역할을 하는 만큼 플랫폼으로서의 영향력도 막강하다.

가령 아이폰을 제외한 모든 스마트폰 사용자는 안드로이드 OS를 사용한다. 삼성폰이냐, LG폰이냐 하는 제품 플랫폼보다 생태계가 훨씬 광범위한 셈이다. 삼성도 ‘바다’ ‘타이젠’ 등 자체 OS를 개발해 안드로이드로부터의 독립을 꿈꿨지만 성공하지 못했다.

기술 플랫폼은 대부분 그 자체로 수익을 내지 않는다. 윈도 OS는 프로그램을 팔아 수익을 거뒀지만 모바일 시대에는 상황이 달라졌다. 사용자로 하여금 기술 플랫폼에 접속하게 한 뒤 다른 자사 서비스에 대한 접근이나 재구매를 유도하는 ‘수단적 성격’이 강하다. 가령 애플은 아이폰, 아이패드, 맥북, 아이클라우드 등 자사 제품과 서비스를 iOS라는 동일한 기술 플랫폼으로 엮어 수많은 충성 고객을 확보했다. 기술 플랫폼의 차기 주자는 자율주행차 OS가 될 전망이다.

서비스 플랫폼은 플랫폼 중에서도 가장 경쟁이 치열한 시장이다. 네이버·다음·구글·바이두(검색·포털), 구글플레이·앱스토어(앱마켓), 카카오톡·라인·위챗·왓츠앱(모바일 메신저), 에어비앤비·우버(여행·숙박), 아마존·알리바바(쇼핑), 페이스북·인스타그램·트위터·유튜브(SNS) 등이 모두 서비스 플랫폼의 일종이다. 제품·기술 플랫폼이 막대한 예산과 자원을 투입해 개발·마케팅해야 하는 데 반해, 서비스 플랫폼은 서비스 하나만 잘 만들어도 성공할 수 있어 벤처기업들의 도전이 가장 활발한 영역이기도 하다.

서비스 플랫폼의 수익 모델은 그 종류만큼이나 다양하다. 검색·포털과 SNS는 주로 광고, 모바일 메신저는 게임과 이모티콘, 앱마켓은 앱 구매 수수료, 숙박앱은 숙소 예약 수수료 등으로 돈을 번다. 이용자(트래픽)가 많고 체류 시간이 길수록 플랫폼 영향력은 커진다. 서비스 플랫폼들이 웹툰, 뉴스, 정보 등 다양한 무료 콘텐츠로 재방문을 유도한다. 김기찬 가톨릭대 경영학과 교수는 “플랫폼의 성공 법칙은 꿈, 흥, 돈, 물 관리다. 사용자가 ‘그곳에 가면 좋은 게 있다’는 기대(꿈)와 재미(흥)를 끊임없이 느끼도록 해야 한다. 그러면서 돈을 벌고, 나쁜 참여자를 솎아내야(물 관리) 지속 발전이 가능하다”고 말했다.

서비스 플랫폼의 차기 주자는 가상비서, 간편결제, 내비게이션, 번역앱 등이 꼽힌다.

▷동종·이종 융복합에 ‘플랫폼 양극화’

플랫폼 경제가 심화되면서 기존 업체들은 이제 단일 플랫폼만으로는 생존이 힘든 상황임을 깨닫게 됐다. 미래 유망 플랫폼 선점 경쟁은 물론, 동종·이종 플랫폼 간의 융복합이 대세로 떠오른 배경이다.

동종 플랫폼 간 융복합은 진작부터 활기를 띠었다. 페이스북의 인스타그램·왓츠앱 인수가 대표 사례다. 쇼핑 플랫폼은 온오프라인 간 교차 진출이 활발하다. 온라인 쇼핑몰 알리바바가 지난 2015년 오프라인 쇼핑몰 ‘허마셴성’을 인수한 것처럼, 아마존도 지난 6월 ‘홀푸즈마켓’을 인수했다. 온라인 쇼핑몰에서 확보한 빅데이터를 오프라인 매장에 적용, 수요 예측·재고 관리 부문에서 시너지를 낼 것이란 기대다.

이종 플랫폼 간 융복합의 대표 주자는 단연 애플이다. 애플은 처음부터 융복합 전략을 염두에 두고 사업을 시작했다. 아이폰·아이패드(제품), iOS(기술), 앱스토어·애플페이·시리(서비스) 등 각 분야별 플랫폼을 모두 갖추고 애플만의 독립 생태계를 구축, 시너지를 극대화한 것. 플랫폼의 ‘그랜드슬램’을 달성한 셈이다. 여기에 최근 SK하이닉스 컨소시엄과 손잡고 도시바를 인수하며 반도체 사업에도 뛰어들었다. 아이폰의 아킬레스건이었던 제조 영역을 강화해 제품 플랫폼의 가치사슬(value chain)을 수직계열화하려는 의도로 풀이된다.

경쟁자인 구글도 도전장을 내밀었다. 구글은 그간 안드로이드 OS와 구글플레이, 구글 번역 등 기술·서비스 플랫폼 강자였지만, 제품 플랫폼은 약점으로 지적됐다. 스마트폰 단말기 시장에서도 삼성전자와 애플이 양강구도를 이뤄왔다. 그런데 최근 구글이 HTC를 인수하면서 상황이 달라졌다. 구글도 제품·기술·서비스 플랫폼 모든 분야에 진출하게 된 것이다. 페이스북도 VR 헤드셋 업체인 오큘러스를 인수하며 제품 플랫폼 시장으로 영역 확장에 나섰다.

전문가들은 플랫폼 간 융복합이 앞으로도 더욱 활발해질 것으로 내다본다. ‘매개하라’의 저자인 임춘성 연세대 정보산업공학과 교수는 “무인자동차는 동력은 전기차, 운영 방식은 공유 비즈니스로 구현될 수 있다. 이 경우 각 부문에서 시장을 선점한 테슬라, 모바일 플랫폼의 종류 우버와의 협력이 중요해진다. 그래야 다른 경쟁 기업들의 진입장벽을 높일 수 있기 때문이다. 플랫폼 기업들이 서로 융합을 거듭하면서 대형화되는 반면, 다른 한편에선 특정 기술에 특화된 소수 정예 기업들이 생겨나며 플랫폼 간 양극화가 일어날 것이다”라고 말했다.

모바일 플랫폼의 종류

안드로이드는 구글의 휴대폰용 오픈 소스 소프트웨어 플랫폼 및 주변 도구를 의미한다. 구글 안드로이드 플랫폼은 본격적인 모바일 웹 응용을 위한 휴대폰 소프트웨어 플랫폼이라는 데 그 의미가 있다. 주로 구글의 서비스를 이동 단말 환경에서 구현하고 활용하기 위한 기반 플랫폼으로서 휴대폰뿐 아니라 다양한 정보 가전 기기에 적용할 수 있는 이식의 용이성을 갖추고 있다. 이 글에서는 이러한 모바일 플랫폼의 발전에 큰 영향력을 발휘하고 있는 구글의 안드로이드 플랫폼의 특징을 살펴보고 구글 안드로이드 플랫폼을 새로운 하드웨어에 탑재하는 절차를 사례를 들어 설명한다.
글: 임성수 교수 / 국민대학교 전자정보통신대학 컴퓨터공학부 www.kookmin.ac.kr / [email protected]
모바일 플랫폼 시장 동향휴대폰 시장은 급격하게 운영체제가 탑재되어 있는 스마트폰 시장 중심으로 발전하고 있다. 일반 휴대폰과 스마트폰을 구분하는 가장 중요한 요소는 일반적으로 운영체제의 탑재 여부이다. 운영체제가 탑재되어 있다는 것은 일반적인 컴퓨팅 환경에서처럼 다양한 응용 소프트웨어를 실행하기 위한 모든 시스템 서비스가 제공된다는 의미이고, 아울러 일반적인 컴퓨팅 환경에서 응용 소프트웨어를 개발, 구현하는 것과 유사한 편의성을 제공할 수 있다는 의미이다. 따라서, 스마트폰 중심의 휴대폰 시장 발달은 스마트폰 이전의 휴대폰에서 구동할 수 없었던 다양한 형태의 응용 소프트웨어를 안정적으로 활용할 수 있는 기회를 제공한다. 그림 1은 운영체제의 종류에 따른 스마트폰 시장 규모를 보인다. 지속적으로 상당한 수준의 성장을 보이는 운영체제는 리눅스이며 상대적으로 Windows Mobile이나 Symbian의 성장세는 약화되고 있다.
모바일 플랫폼이란 휴대폰의 응용 소프트웨어를 실행하기 위한 기반 소프트웨어 환경을 의미한다. 모바일 플랫폼이 활용되기 시작한 이유는 운영체제의 형태를 갖추지 않아 새로운 응용 소프트웨어를 설치, 실행할 수 없는 펌웨어 수준의 소프트웨어 환경을 제공하는 기존 일반 휴대폰에서 응용 소프트웨어를 다운로드하여 설치하고 실행하는 기능을 제공하기 위해서였다. 아울러 일관된 API를 제공하여 휴대폰 장치가 달라도 같은 모바일 응용 소프트웨어를 실행할 수 있는 환경을 제공하기 위해서 모바일 플랫폼이 진화했다.

휴대폰에서 실행하는 응용 소프트웨어의 기능이 다양해지고 구조가 복잡해지면서 모바일 플랫폼도 그에 따라 보다 다양한 기능을 제공하는 형태로 발전해왔다. 모바일 플랫폼이 운영체제의 종류 등 하위 소프트웨어 계층 구조에 독립적인 형태를 보이지만 소비자가 요구하는 다양하고 복잡한 응용 소프트웨어를 수용하려면 기존 펌웨어 수준의 시스템 소프트웨어로는 기능적 한계로 인해 모바일 플랫폼의 더 이상의 진화를 가져올 수 없었다. 따라서, 리눅스 등 일반 운영체제를 하위 계층에 두는 모바일 플랫폼이 구현되고 이러한 모바일 플랫폼이 제공하는 안정적이고 다양한 서비스를 통해 소비자의 모바일 응용에 대한 욕구를 충족시키게 되었다. 애플사의 '아이폰'은 공개되어 있는 운영체제를 사용하고 있지는 않지만 일반 운영체제의 기능과 유사한 모든 시스템 서비스를 제공하는 운영체제를 기반으로 하고 있고 애플사가 개발한 특징적인 사용자 인터페이스를 활용할 수 있는 API를 공개하여 이를 활용한 다양한 응용 소프트웨어를 수용한다. 스마트폰 시장에서는 이미 심비안 운영체제를 사용한 모바일 플랫폼이 유럽 및 미국 시장에서 가장 비중 있는 모바일 플랫폼으로 자리 잡고 있었으나 애플사의 '아이폰'의 등장으로 모바일 플랫폼의 개념 및 시장 구조가 급격히 변화하게 되었다. 애플사의 '아이폰'은 기존의 온라인 서비스를 기반으로 하는 새로운 모바일 응용의 개념을 정립하였으며 일반 소비자가 만드는 응용 소프트웨어를 유통할 수 있는 온라인 공간인 앱스토어(AppStore)를 제공함으로써 소비자의 참여에 의한 모바일 플랫폼의 진화를 유도하였다.
애플사의 '아이폰'은 스마트폰 및 모바일 플랫폼 시장의 개념을 바꾸어 놓았으며 이에 대응하기 위한 다양한 모바일 플랫폼의 등장이 뒤따랐다. 마이크로소프트는 자사의 Windows Mobile을 업그레이드하여 기존의 데스크톱 윈도우를 닮은 사용자 인터페이스를 벗어나 시장의 요구에 부응하기 위한 형태의 모바일 플랫폼 제공을 시도하고 있다. 가장 영향력있는 모바일 플랫폼으로 등장한 것은 구글의 안드로이드 플랫폼이며 구글은 자사의 다양한 온라인 서비스를 모바일 시장으로 확장하기 위한 기반으로 안드로이드 플랫폼을 개발, 공급하기 시작했다. 스마트폰 시장에서의 영향력은 가장 높은 수준이었으나 비공개 플랫폼을 지향하고 있었던 심비안 플랫폼도 구글 안드로이드 플랫폼의 영향을 받아 공개 모바일 플랫폼인 Ovi 플랫폼을 구축, 공급하기 시작했다. 이러한 시장에서의 움직임은 모바일 플랫폼을 기존의 단순한 모바일 응용 실행 환경으로서의 개념이 아닌 기존 데스크톱을 위한 온라인 인터넷 서비스를 모바일 기기와 연동하기 위한 기반 환경으로서의 개념으로 변화한 것을 의미한다. 현재 가장 높은 수준의 성장률을 보이고 있는 모바일 플랫폼은 구글의 안드로이드 플랫폼으로서 2009년 하반기에 삼성전자, LG전자, 모토롤라 등 주요 제조업체에서 다양한 안드로이드 플랫폼 기반 휴대폰 출시를 준비 중이다.
새로운 개념의 모바일 플랫폼은 앞으로 발전하게 될 모바일 응용을 수용해야 한다는 점에서 갖추고 있어야 하는 몇 가지 필수적인 요소가 있다. 먼저 운영체제 기반 플랫폼으로서 충분한 시스템 수준의 서비스를 제공해야 한다는 점이다. 현대 운영체제가 갖추고 있는 메모리 관리, 장치 추상화, 프로세스 관리 등의 모든 기능이 상위 모바일 플랫폼에서 필요한 기능이기 때문이다. 둘째, 사용자 인터페이스의 성능 요구 수준이 높아짐에 따라 2D/3D 가속 기능을 활용한 그래픽 처리 기술이 차세대 모바일 플랫폼의 필수 요소가 되고 있다. 특히, 3D 기술을 활용한 사용자 인터페이스가 일반화되면서 이를 빠르게 처리할 수 있는 가속 기능이 필요하게 되었다. 최근 사용되는 모바일 프로세서는 대부분 기본적인 가속 기능을 내장하고 있으며 그렇지 않은 경우에는 가속 기능 전용 프로세서를 별도로 사용하는 추세이다. 이러한 가속 기능을 직접 사용하는 OpenGL/ES 등의 API 지원이 향후 시장을 주도할 모바일 플랫폼의 필수 기능이다. 셋째, 일반 웹 기반 서비스를 그대로 혹은 모바일 기기에 최적화된 형태로 활용할 수 있는 연동 기능이 필요하다. 앞으로의 서비스 시장이 모바일 기기를 위한 특화된 시장으로 발전하기보다는 기존 데스크톱에서의 인터넷/웹 서비스를 모바일 기기에서 사용하기 위한 연동 시장으로 발전할 것으로 전망하기 때문이다.
이 글에서는 이러한 모바일 플랫폼의 발전에 큰 영향력을 발휘하고 있는 구글의 안드로이드 플랫폼의 특징을 살펴보고 구글 안드로이드 플랫폼을 새로운 하드웨어에 탑재하는 절차를 사례를 들어 설명한다.
구글 안드로이드 플랫폼이란? 안드로이드는 구글의 휴대폰용 오픈 소스 소프트웨어 플랫폼 및 주변 도구를 의미한다. 구글 안드로이드 플랫폼은 본격적인 모바일 웹 응용을 위한 휴대폰 소프트웨어 플랫폼이라는 데 그 의미가 있다. 주로 구글의 서비스를 이동 단말 환경에서 구현하고 활용하기 위한 기반 플랫폼으로서 휴대폰뿐 아니라 다양한 정보 가전 기기에 적용할 수 있는 이식의 용이성을 갖추고 있다. 안드로이드 플랫폼은 현재 전 세계의 주요 휴대폰 제조사, 반도체 제조사는 물론 통신사, 시스템 소프트웨어 개발사, 애플리케이션 개발사를 포함하는 오픈 핸드셋 얼라이언스(OHA, Open Handset Alliance)를 통해 진화하고 있다.

안드로이드 플랫폼의 특징을 나열하면 다음과 같다. 첫째, 오픈소스 운영체제인 리눅스를 기반으로 하고 있어서 다양한 하드웨어에 이식하거나 새로운 기능을 부여하기 쉽다. 둘째, 응용 소프트웨어 실행 환경은 자바 가상머신 환경이며 자바 언어를 사용하여 구현한다. 즉, 시스템 자원 및 각종 장치를 운용하는 리눅스 커널 위에 안드로이드 응용을 실행하기 위한 자바 가상머신이 탑재된다. 셋째, 구글의 다양한 인터넷 서비스를 직접 이용할 수 있는 API를 갖추고 있다. 안드로이드 응용 API는 모두 자바 클래스로 제공되며 구글의 웹 API와 기능 및 형식이 많은 부분 유사하다. 웹 2.0 매시업 응용을 주 응용으로 고려하고 있기 때문에 GPS를 이용한 위치 기반 응용 구현을 위한 API를 풍부하게 제공한다.
그림 2은 구글 안드로이드 플랫폼이 지향하는 응용 서비스 개념을 정리하여 보여준다. 단말, 통신 서비스, 응용 분야, 네트워크의 종류에 독립적인 오픈 플랫폼을 제공하는 것이 중요한 목표이고 이를 먼저 휴대폰의 형태로 현실화하고 있다. 또한, 안드로이드 플랫폼은 사용자가 구현한 응용 소프트웨어를 안드로이드 마켓을 통해 유통할 수 있는 비즈니스 모델을 제공하고 있어서 애플의 앱스토어가 이룩한 성공 모델을 따르고 있다.
안드로이드 플랫폼의 구조와 기능안드로이드 플랫폼은 리눅스 커널 상에 다양한 응용 소프트웨어 라이브러리와 안드로이드 응용 소프트웨어를 실행하기 위한 자바 가상머신으로 이루어져 있다. 안드로이드 플랫폼에 사용된 자바 가상머신은 Dalvik이라 부르는 가상머신으로 선마이크로시스템즈(Sun Microsystems, Inc.)의 자바 가상머신과 유사하지만 다른 형식의 자바 응용 소프트웨어 패키징 방법 및 실행 과정을 제공한다.
안드로이드 플랫폼 계층 구조안드로이드 플랫폼은 소프트웨어 계층으로 구성되어 있다. 가장 하위 영역에는 운영체제인 리눅스 커널이 존재한다. 리눅스 커널 위에 녹색으로 표시된 영역에는 하드웨어 추상화 계층과 라이브러리가 존재한다. 하드웨어 추상화 계층은 다양한 하드웨어 장치를 활용할 수 있는 안드로이드 응용 소프트웨어를 위한 인터페이스를 제공해주는 계층으로서 일관된 하드웨어 접근 API와 실제 하드웨어 제어 코드 부분을 연결한다. 하드웨어 추상화 계층은 응용 소프트웨어에 대해 하드웨어 제어 투명성을 제공하고 동시에 자바 응용이 사용할 수 있는 자바 API와 C 언어로 작성된 하드웨어 제어 코드를 JNI(Java Native Interface)를 통해 연결시켜 준다. 응용 소프트웨어는 모두 자바 API를 사용하여 구현되지만 각종 응용 소프트웨어가 사용할 수 있는 공통 컴포넌트 혹은 라이브러리는 C 언어 등으로 작성되어 있는 오픈 소스 소프트웨어 기반 코드로 구성되어 있다. 이러한 공통 컴포넌트 혹은 라이브러리는 데이터베이스 처리를 위한 기능, 그래픽 처리를 위한 기능, 멀티미디어 처리를 위한 기능, 웹 응용을 실행하기 위한 기능 등을 포함한다. 안드로이드의 라이브러리는 기존 리눅스의 기본 라이브러리들을 자원 제약 조건이 심한 휴대 이동통신 단말 환경에 맞도록 최적화하여 구성되었다. 웹 응용을 위한 웹 브라우저 엔진 WebKit, OpenCORE 플랫폼 기반의 미디어 코덱을 포함하는 Media Framework, SQL 데이터베이스인 SQLite, 2D, 3D의 윈도우 렌더링을 위한 Surface Manager와 OpenGL|ES 등의 다양한 고성능의 라이브러리들을 포함한다.
안드로이드 응용 소프트웨어가 직접적으로 실행하기 위한 환경을 안드로이드 런타임이라고 부르며 Dalvik 가상 머신과 Core 라이브러리들로 구성된다. Dalvik 가상 머신은 임베디드 시스템 환경을 위해 설계된 자바 가상머신으로서 기존 자바 실행파일 형식과 다른 실행파일 형식(.dex)을 사용하여 실행파일의 크기와 성능을 임베디드 시스템 환경에 최적화하였다.
애플리케이션 프레임워크는 자바 기반의 응용 소프트웨어 실행을 위한 가장 높은 수준의 서비스를 포함하고 있는 계층을 말하며 핵심 시스템 서비스를 담당하는 코어 시스템 서비스들과 하드웨어와의 인터페이스를 담당하는 하드웨어 서비스들로 구성된다. JNI(Java Native Interface)를 통해 native C/C++ 코드를 호출하는 부분을 포함한다.

그림 3는 안드로이드 응용이 어떻게 구동되는 지 보여준다. 기본적인 시스템 서비스는 리눅스 커널 및 리눅스의 기본 시스템 서비스 응용들에 의해 제공되고 안드로이드 응용 소프트웨어에 특화된 서비스는 런타임 서비스 매니져라는 소프트웨어 컴포넌트와 Dalvik 가상머신을 중심으로 한 서비스에 의해 제공된다. 안드로이드 응용의 실행 성능을 높이기 위해 zygote라는 서비스가 제공된다. zygote는 안드로이드 응용을 빠르게 구동하기 위해서 필요한 소프트웨어 컴포넌트 실행 이미지를 미리 메모리에 준비하는 기능을 제공한다.
안드로이드 애플리케이션의 구성

안드로이드의 응용 소프트웨어는 그림 4와 같이 apk라는 패키지의 형태로 구성되어 있다. Apk는 Dalvik이 실행할 수 있는 형태의 dex파일과 각각의 리소스들을 가진 WbXML, 각 컴포넌트들에 대한 기술이 있는 Manifest로 구성되며, Zip 압축을 통해 apk 파일로 생성되는 형태이다. 안드로이드 응용 소프트웨어를 개발하고자 할 때에는 오픈 소스 개발 도구인 이클립스(eclipse)의 플러그인(plug-in)을 사용하여 구성되는 개발 도구를 사용한다.

그림 모바일 플랫폼의 종류 5은 안드로이드의 응용의 구성 요소를 보인다. 가장 중요한 구성 요소 중 하나인 Android-Manifest.xml은 시스템의 명세를 담아 두는 파일이다. xml 파일 안에 모든 최상위 수준 컴포넌트를 가지고 시스템이 무엇을 말하는 가를 컴포넌트 별로 명시해주는 제어 파일이다. Activity는 가장 기본이 되는 오브젝트로서, 어떤 작업을 하는 코드의 묶음이다. 즉 하나의 가상의 사용자 인터페이스에 대한 표현이라고 정의할 수 있다. 이것은 생명주기를 가지며, 사용자에게 사용자 인터페이스를 보여주는 것을 포함하기도 하며, 포함하지 않을 수도 있고, 다른 애플리케이션에 종속될 수도 있는 특성을 가지고 있다. View는 화면을 그리는 것을 담당하는 오브젝트이다. 이 View에 대한 이벤트, 즉 터치 입력이나 키패드 입력 등의 이벤트에 대한 처리도 담고 있다. 필요하다면, 새로운 사용자 인터페이스 위젯을 만들기 위해 View를 생성하는 것도 가능하다. Intent는 어떤 것을 할 의도를 표현하는 단순한 메시지 오브젝트이다. 즉 Activity들 간의 매개체로서 수행되어야 할 동작에 대한 표현을 담고 있는 것이다. 이것은 요구되는 동작과 동작을 수행하기 위해 필요한 정보를 포함하고 있다. Service는 백그라운드로 동작하는 응용 소프트웨어로서 서비스를 포함하는 프로세스 안이나, 다른 애플리케이션의 프로세스 안에서 실행될 수 있는 프로그램을 말한다.
Notification은 상태 바에 나타나는 작은 아이콘을 모바일 플랫폼의 종류 말한다. PC에서와 마찬가지로, 사용자는 정보를 수신하는 이 아이콘과 상호작용 할 수 있다. 정보 갱신 시에 LED를 깜빡이거나, 사운드, 진동을 통해 사용자에게 입력의 전달을 표현할 수 있다. Notifica-tion의 메시지 기능은 문자 메시지의 도착 시에 사운드나 진동을 통해 Notification 영역의 작은 아이콘을 통해 메시지를 확인할 수 있게 한다. 애플리케이션에서 별도의 Notification을 만드는 것도 가능하다. Content Provider는 장치상의 데이터에 대한 접근을 제공하는 오브젝트로서, 다양한 형태의 데이터베이스에 쉽게 적응할 수 있는 방법을 제공한다.
안드로이드 플랫폼 기반 단말기 구성 현재 다양한 정보 기기에 안드로이드 플랫폼을 탑재하려는 움직임이 활발하게 진행되고 있다. 구글을 포함하는 오픈 핸드셋 얼라이언스(OHA)에서 안드로이드를 발표한 이후 기존 모바일 기기에서 x86 프로세서 기반 넷북까지 안드로이드 탑재가 진행 중이다. 본 장에서는 안드로이드 플랫폼을 실제 하드웨어에 탑재하여 구동시키는 절차를 소개하고자 한다.
안드로이드 플랫폼의 탑재를 위해 가장 먼저 필요한 절차는 개발 환경을 구축하는 것이다. 안드로이드 플랫폼이 오픈 소스 소프트웨어인 리눅스 커널 및 다양한 응용 소프트웨어를 중심으로 구성되어 있기 때문에 개발 환경 또한 오픈 소스 소프트웨어 개발 환경인 GCC 기반으로 구성되어 있다. 따라서, 안드로이드 플랫폼 탑재를 위한 개발 환경은 리눅스 운영체제가 탑재된 시스템이 가장 적합하다. 단, 안드로이드 플랫폼을 위한 응용 소프트웨어 개발은 호스트 시스템의 운영체제에 독립적이다. 리눅스 운영체제가 설치된 호스트 시스템이 준비된 후에는 리눅스 기반의 개발 환경을 구축하기 위해 필요한 여러 패키지들을 다운로드하여 설치한다. 기본 개발 환경 패키지에는 필요한 소스들을 다운로드하기 위한 리눅스 기반의 소스 관리 도구 패키지와 안드로이드 기반의 SDK (Software Development toolKit)가 포함된다. SDK는 에뮬레이터를 구동하기 위한 사용자 인터페이스 환경 및 자바 개발 도구들을 모두 포함한다. 설치해야 할 패키지에 관련된 세부사항은 http://source.android.com/ 을 참고한다.
안드로이드의 전체 소스 코드를 다운로드 받으면 다운로드 받은 경로 안에 kernel 디렉토리가 존재하는 것을 확인할 수 있다. 운영체제 커널의 소스 코드의 필요한 부분을 수정하면 다양한 하드웨어에 탑재할 수 있게 된다. 주로 운영체제 커널의 메모리 영역 설정하는 부분, 각종 장치 드라이버, 그리고 HAL(Hardware Adaptation Layer) 등의 부분을 수정하여 새로운 하드웨어에 탑재하게 된다.

안드로이드의 커널 코드 중 하드웨어 장치를 제대로 제어할 수 있도록 수정하는 부분은 두 부분인데 하나는 장치 드라이버이고, 또 한 부분은 장치 드라이버와 안드로이드 플랫폼을 연결하는 JNI 부분이다. JNI는 이미 잘 정의되어 있는 자바 응용과 C 언어 수준의 시스템 코드를 연결시켜주기 위한 체계이다. 그림 6은 미디어 플레이어를 실행할 때의 JNI의 역할을 보인다. 그림에 나타나 있는 바와 같이 리눅스 커널의 오디오와 비디어 장치 드라이버는 네이티브 코드(C 언어 혹은 C++ 언어 기반 코드)인 라이브러리(Libmedia.so)를 통해 접근하도록 설계된다. Libmedia.so와 같은 코드는 원래 오픈소스로 제공되기보다는 안드로이드 플랫폼의 JNI 라이브러리를 구성하기 위해 자바 인터페이스와 짝을 이루는 라이브러리로 설계된 것이라고 볼 수 있다. 이러한 라이브러리는 JNI 라이브러리인 Libmedia_jni.so와 연결되어 모든 네이티브 코드 함수들이 자바 함수들과 연결된다.
안드로이드 플랫폼의 장치 드라이버는 일반 리눅스 커널의 장치 드라이버 형태를 그대로 사용하기 때문에 특별한 설계가 필요하지 않다. 단, 장치 드라이버를 접근하는 경로가 모두 JNI 함수로 구현되어야 하기 때문에 이를 고려하여 장치 드라이버를 작성할 필요가 있다. 그리고, 일부 장치 드라이버는 일반 리눅스에서는 필수적인 사항이 아니지만 안드로이드 플랫폼에서는 필수적으로 지켜져야 하는 사양이 정해져 있는 경우도 있다.

프레임버퍼는 화면 디스플레이를 위한 장치 드라이버이다. 이 장치 드라이버는 리눅스 커널에 /dev/fb 장치 노드를 통해 접근하여 사용할 수 있도록 잘 정의되어 있다. 안드로이드 플랫폼에서는 기본적인 리눅스 커널의 프레임버퍼 장치 드라이버 형태를 그대로 지키되 더블 버퍼링을 반드시 사용하도록 요구한다. 더블 버퍼링이란 하나의 화면을 디스플레이하기 위한 메모리 상의 프레임버퍼를 두 개 만들어서 프레임버퍼를 채우는 동안에 걸리는 시간을 드러나지 않도록 하여 디스플레이 성능을 높이기 위한 방법이다. 그림 7에 안드로이드 플랫폼에서 사용하는 더블 버퍼링의 구성을 보인다.
리눅스 커널에 이미 존재하는 fb_pan_display() 함수는 호출 시 프레임버퍼의 시작 주소를 넘겨주는 함수인데 이 함수가 두 개의 프레임버퍼의 시작 주소를 번갈아 넘겨주도록 구현하면 된다.
그 외 중요한 장치로는 키 입력장치와 터치스크린 등의 입력장치가 있다. 이러한 입력장치들은 모두 리눅스 커널의 Input Device라는 부류의 장치로 등록된다. 장치 노드로는 /dev/input을 사용하는데 이 노드에 이벤트의 형태로 각각의 입력 장치를 등록하도록 되어 있다. 예를 들면, 키를 입력할 수 있는 입력장치는 키패드, 키보드(QWERTY 자판 형태의 입력장치), 그리고 마우스 형태의 입력장치를 안드로이드 플랫폼에서 지원하는데 모두 /dev/input 장치 노드의 이벤트의 형태로 등록하고 각 키가 눌렸을 때의 키 값을 정해주기만 하면 그대로 동작할 수 있게 안드로이드 플랫폼에 JNI 코드의 형태로 모두 구현되어 있다. 만약 입력장치로 키패드와 터치스크린을 사용한다고 하면 각각 /dev/input/ event0, /dev/input/event1의 입력장치 노드로 등록하고 각 입력장치의 종류를 장치 드라이버 코드 내에 명시하면 이에 맞게 구성되어 있는 JNI 코드와 연결시킬 수 있다. 안드로이드 플랫폼의 장치 지원 코드 내에는 아직 애플사의 아이폰(iphone)에서 사용되는 멀티 터치에 대한 장치 지원 코드는 공식적으로 완벽하게 마련되어 있지는 않다. 따라서, 멀티 터치를 사용하는 경우에는 JNI 코드부터 장치 드라이버까지 필요한 코드 부분을 작성해야 한다.

안드로이드의 커널 코드를 하드웨어에 맞게 수정한 후에는 커널 상에서 구동되는 각종 응용 소프트웨어가 포함되어 있는 파일 시스템을 구축하여야 한다. 안드로이드 플랫폼의 파일 시스템 이미지 내에는 리눅스 시스템 구동을 위한 기본적인 시스템 소프트웨어 및 라이브러리, 안드로이드 플랫폼을 위한 각종 라이브러리, Dalvik 가상 머신, 안드로이드 플랫폼 내에 사전 설치되는 응용 소프트웨어 등이 포함되어 있다. 안드로이드 플랫폼을 위한 파일 시스템 이미지는 현재 YAFFS2와 EXT3 파일 시스템 형식으로 제공된다. YAFFS2는 NAND 플래시메모리를 위한 파일 시스템으로서 저널링 기능을 사용하여 안정성을 제공한다. NAND 플래시메모리를 위한 전용 파일시스템을 사용하는 경우에는 YAFFS2를 구축하여 사용할 수 있지만 메모리 카드의 형태나 다른 복합 형태의 플래시메모리를 사용하는 경우에는 일반 하드 디스크를 위한 파일 시스템을 사용하여야 하기 때문에 EXT3 파일 시스템을 위한 이미지를 제공한다. 그림 8는 ARM 코어 기반 프로세서를 사용하는 하드웨어에 필요한 커널 및 파일 시스템 이미지를 수정하여 탑재한 장면을 보인다. 아래 사용한 하드웨어는 세븐코아㈜에서 제작한 멀티미디어 스마트폰을 위한 개발 플랫폼으로 Marvell 사의 PXA270 프로세서, 3D 가속기, WLAN, 멀티 터치, 블루투스, 가속 센서 등을 갖추고 있다. 필자가 속한 연구실에서는 아래 하드웨어에 안드로이드 플랫폼을 탑재하고 다양한 안드로이드 응용 소프트웨어를 작성하는 학생 프로젝트를 시행 중이다.
결 론 모바일 플랫폼은 이제 웹 기반 응용을 데스크 탑 및 휴대폰에서 연동하여 실행하기 위한 환경으로서의 경쟁력을 요구하게 되었으며 시장 형성 초기이기 때문에 절대적인 시장 압도적 기술은 아직 보이지 않는다. 안드로이드 플랫폼은 구글의 인터넷 서비스를 모바일 환경과 연동하는 가장 첫 플랫폼이다. 스마트폰의 시장 확대와 안드로이드 플랫폼 기반 휴대폰의 성장은 모바일 플랫폼의 개념 및 발전 방향을 새롭게 정의하고 있으며 이에 대한 시장 예측, 기술 수요 예측, 기술 개발 방향에 있어서의 적극적인 대응이 필요하다.
이 글에서는 이러한 모바일 플랫폼 시장 및 기술 수요의 변화를 확인하고 그 중심에 자리잡고 있는 안드로이드 플랫폼의 구조와 안드로이드 플랫폼 기반 정보 기기를 개발하는 데 필요한 기본적인 기술적 사항을 소개하였다. 안드로이드 플랫폼의 시장 비중 확대 및 진화와 함께 모바일 플랫폼의 개념 변화 및 성장이 이루어질 것으로 예상하며 이러한 모바일 플랫폼 시장의 성장에 맞는 새로운 차원의 모바일 플랫폼이 개발될 것으로 기대한다.
그림 1. 스마트폰 시장 동향 그림 2. 구글 안드로이드 플랫폼의 개념 그림 3.안드로이드 응용의 구동 그림 4. 안드로이드 실행 파일(.apk)의 구조 그림 5. 안드로이드 응용의 구성 요소 그림 6. 미디어 플레이어 실행과 JNI 그림 7. 안드로이드 플랫폼의 프레임버퍼 더블 버퍼링 그림 8. ARM 기반 하드웨어에 탑재된 안드로이드
페이스북(으)로 기사보내기 트위터(으)로 기사보내기 카카오스토리(으)로 기사보내기 URL복사(으)로 기사보내기 기사저장 다른 미디어

Record *

http://uxstory.co.kr/blog/2018/08/10/app_list/

네이티브 앱 (Native App)

네이티브 앱은 모바일 기기에 최적화된 언어로 개발된 앱으로, 사용자는 App Store를 통해 다운받아 설치하여 사용한다.

  • 모바일에 설치되어 성능이 빠르고 안정적이며, 최적화된 개발 및 업데이트가 가능하다.
  • 모바일 기기의 유틸리티를 사용하기 때문에 GPS, 연락처, 카메라 등 다양한 기능에 접근이 자유롭다.
  • 앱스토어 및 구글플레이에서 쉽게 찾아 볼 수 있다.
  • 애플이나 구글은 자체 툴킷(sdk)과 인터페이스 구성 요소를 제공한다.
  • Android, iOS 각각의 개별적으로 개발이 필요하므로 시간과 비용이 많이 든다.
  • 정기적인 업데이트가 필요하다. (Android, iOS 각각의 승인 필요, iOS 승인 오래걸림)
  • 앱스토어 및 구글플레이는 인앱결제에 대한 수수료 부과 이슈가 있다.

모바일 웹 (Mobile Web), 웹 앱(Web App)

모바일에서 접속한 브라우저의 모습이라 볼 수 있다. 웹앱은 모바일 웹과 유사하지만 화면 모습이나 구동 방식을 앱인 것처럼 보이도록 한 것이다.

둘다 모바일 웹 페이지에서 호스팅되기 때문에 웹 브라우저에 의존한다. 모바일에 있는 인터넷 브라우저를 통해 확인할 수 있으며, 사용자가 모바일 기기에 앱을 다운로드 할 필요가 없다. 따라서 App Store에 등록할 필요도 없다.

  • 브라우저에서 작동하는 앱이므로 제품이 만들어지면 바로 사용 가능하다.
  • 앱을 구축하는데 상대적으로 시간과 비용이 많이 들지 않으며, 유지 관리가 쉽다.
  • CSS, 자바스크립트 등 새로운 기술을 적용할 수 있다. (브라우저 업데이트 필요)
  • 모바일 기기의 유틸리티를 사용할 수 없기 때문에 GPS, 마이크, 카메라 등 다양한 기능에 접근이 제한된다.
  • 앱스토어 및 구글플레이에서 사용할 수 없으므로 눈에 띄지 않아 찾기 어려워 광고 비용이 많이든다.
  • 브라우저에서 실행되기 때문에 보안 문제가 있을 수 있다.
  • 네트워크 연결이 되지 않으면 접속이 불가능하며, 새로고침이나 동적인 움직임에 속도가 느릴 수 있다.

하이브리드 앱 (Hybrid App)

하이브리드 앱은 웹 뷰(브라우저의 윈도우/네비게이션 없음)를 감싸고 있는 웹사이트이다. 즉, 웹 앱을 네이티브 앱으로 감싼 형태로 볼 수 있다.
하이브리드 앱은 네이티브 앱의 특정 이점을 그대로 유지하면서 (예: 장치 하드웨어로의 직접 접근, 오프라인 작업, 앱 스토어 표시) 웹 기술을 사용하여 개발할 수 있게 한다.

  • 개발하는데 있어 네이티브, 하이브리드 앱에 비해 시간과 비용이 적게 들어간다.
  • 사용자가 앱을 설치할 필요가 없어, 수정 사항이 발생해도 사용자가 업데이트 할 필요가 없다. (간단한 업데이트 릴리스 프로세스)
  • 반응형으로 제작 시 서로 다른 디바이스의 사이즈 모두 대응이 가능하다.
  • 기능은 네이티브 앱만큼 좋다.
  • 웹 앱처럼 오프라인 상태에서 작동하지 않는다.
  • 100% 네이티브 앱은 아니기 때문에 잠재적인 성능 문제가 있다.
  • 애니메이션 요소와의 복잡성, 복잡한 기능 구현 불가하므로 잠재적인 통합문제가 있다. (알림설정, 스토리지 설정 등)

네이버와 다음의 모바일 웹, 하이브리드 앱 비교 (출처: 코드크레인)

크로스 플랫폼 앱 (Cross Platform App)

Android, iOS 및 Windows와 같은 다양한 플랫폼에서 동일하게 잘 작동하도록 개발 된 앱이 크로스 플랫폼 앱이다.
하이브리드 개발과 비슷할 수 있지만 동일하지는 않다.
React Native와 같은 프레임워크 덕분에 크로스 플랫폼 앱은 인기가 있다. 이러한 기술로 크로스 플랫폼 앱을 구축하면 시간과 비용을 절약하는데 도움이 된다.
Android 및 iOS 사용자를 함께 타겟팅하거나 두 시장을 모두 조사하고 싶다면 크로스 플랫폼 앱을 개발하는 것이 좋다.

https://www.techtic.com/blog/native-vs-cross-platform-vs-hybrid-app-development/

참고 자료 : 앱의 비교 @Theodor
함께 보면 좋은 영상 : 네이티브 앱 vs 크로스 플랫폼 앱 vs 하이브리드 앱 | 5분 장단점 분석!

영상 출처 : Nomad Coders

개발자가 알아야 할 ‘로우코드’ 플랫폼 7가지

로우코드 플랫폼에 난색을 표하는 개발자들이 있다. 자바(Java), 닷넷(.NET), 자바스크립트(JavaScript) 환경에서 벗어나거나 혹은 통합 개발 환경(IDE), 자동화된 테스트 프레임워크, 데브옵스(Devops) 플랫폼으로부터 분리되기 때문이다. 물론 로우코드 플랫폼을 기꺼이 받아들이는 개발자들도 많다. 신속한 애플리케이션 개발을 가능하게 하고 복잡한 통합을 지원하며 모바일 사용자 경험을 제공해서다.

하지만 로우코드 플랫폼과 이 플랫폼이 지닌 저력을 무시해선 안 된다. 오늘날 기업에서는 대다수 IT 팀이 제공하거나 지원할 수 있는 것보다 더 많은 애플리케이션 개발을 요구하고 있다. 여기서 로우코드 플랫폼이 개발을 가속하고 추가적인 이점을 제공할 수 있다.
ⓒGetty Images
거의 20년 동안 로우코드(low-code), 노 코드(no-code), 시민 개발(citizen development) 등을 다뤄온 경험에 비춰볼 때 로우코드 플랫폼은 팀이 다양한 애플리케이션을 제공, 지원, 확장할 수 있도록 한다.

또한 이는 고객 경험(CX) 개선, 워크플로우 간소화, 데이터 통합 자동화, 데이터 시각화 지원 등 디지털 트랜스포메이션 여정에서도 사용된다.

코로나19 사태에서도 로우코드 플랫폼이 유용하게 활용되고 있다. 많은 기업이 팬데믹에 대응하고자 애플리케이션을 개발하거나 레거시 애플리케이션을 현대화하고 여러 플랫폼에 걸쳐 통합을 자동화하는 과정에서 로우코드 플랫폼을 사용했다.

이점
오늘날의 로우코드 플랫폼은 개방성과 확장성이 훨씬 더 크다. 그리고 대부분은 API를 비롯해 플랫폼을 확장하고 통합할 수 있는 여러 방법을 지원한다. 애플리케이션 기획부터 개발, 모니터링까지 소프트웨어 개발 주기 전반에 걸쳐 다양한 기능을 제공하는 것이다. 자동화된 테스트 및 데브옵스 플랫폼에 연결된 로우코드 플랫폼도 많다.

다양한 호스팅 옵션 역시 지원된다. 예컨대 독자적인 관리형 클라우드, 퍼블릭 클라우드 호스팅 옵션, 데이터센터 구축 등이다. 또한 일부는 코드 생성기(code generators)를 포함하는 반면, 모델을 생성하는 로우코드 플랫폼도 있다. SaaS와 흡사하며 구성을 노출하지 않는 플랫폼도 있다.

다양한 개발 패러다임도 지원된다. 이를테면 개발자를 대상으로 신속한 개발, 통합, 자동화를 가능하게 하거나 소프트웨어 개발 전문가와 시민 개발자 모두를 지원해 협력 및 신속한 애플리케이션 개발 도구를 제공하기도 한다.

이 글에서는 7가지 로우코드 플랫폼을 살펴본다. 이들 중 다수가 10년 이상 로우코드 솔루션을 제공하며 고객 기반을 확장해왔고 다양한 기능과 통합, 호스팅, 확장 옵션을 제공하고 있다. 포레스터, 가트너 등의 전문 분석 보고서에서 언급됐던 플랫폼들이기도 하다.

단 여기서는 세일즈포스(Salesforce), SAP, 서비스나우(ServiceNow), 처웰(Cherwell)과 같은 로우코드 기능을 제공하는 엔터프라이즈 플랫폼, 기타 BPM 플랫폼, 프로젝트 관리 도구, 워크플로우 애플리케이션, 데이터 시각화 플랫폼은 제외했다.

활용 사례
단순한 워크플로우, 통합, 서식, 데이터 시각화 및 스프레드시트 대체 등을 위해서만 로우코드 플랫폼을 사용한다는 인식은 잘못됐다. 이제 소개할 사례들을 살펴보면 개발자들은 고객 애플리케이션을 빠르게 개발하고 데이터 집약적 워크플로우를 처리하며 통합을 자동화하는 데 로우코드를 사용하고 있다.

이들 로우코드 플랫폼에서 개발된 애플리케이션들은 여러 시스템에 연결돼 있으며, 로우코드 플랫폼의 기능과 소프트웨어 개발자가 만든 여러 확장 기능을 혼합해 굉장히 정교하다.

1. ‘애피언(Appian)’은 고객 여정 지원, 비즈니스 운영 최적화, 정책 및 규제 준수 등의 업무에 적합한 솔루션을 신속하게 개발하도록 해준다. 미국의 운송 및 물류 업체 라이더(Ryder)는 애피언을 사용해 모바일 우선 예약 시스템을 개발했고, 그 결과 트랜잭션 시간이 절반으로 줄었다. 독일 제약회사 바이엘(Bayer)은 임상시험과 자동화 프로세스를 위한 여러 백엔드 시스템을 통합해 리포팅 시간을 몇 시간에서 몇 분으로 단축했다.

2. ‘부미 플로우(Boomi Flow)’는 자동화 활용 사례, 모바일 애플리케이션, 임베디드 워크플로우, 협업 등을 지원한다. 미국의 트럭 운송회사 AM 트랜스포트(AM Transport)는 부미를 사용해 세일즈포스, ERP 시스템, 여러 운송 관리 시스템의 데이터를 수집하고 분석했다. 결과적으로 EDI(Electronic Data Interchange) 비용을 50% 절감할 수 있었다고 회사 측은 전했다. 또한 코넬대학교, 서섹스대학교, 플린더즈대학교는 부미를 사용해 여러 플랫폼을 통합했고, 가상 학습 환경을 개선했으며, 신입생 온보딩을 간소화했다.

3. ‘카스피오(Caspio)’는 고객 경험과 내부 워크플로우를 최적화해 맞춤형 애플리케이션을 구축할 수 있도록 지원한다. 미국 테네시주 보건복지부는 이를 사용해 2만 개가량의 주 자산을 모니터링하는 IT 자산관리 시스템을 개발했다. 미국 최대의 압축 천연가스 차량 업체 제이-더블유 파워(J-W Power)도 카스피오를 활용해 맞춤형 포털 및 인트라넷을 포함하여 12개 이상의 IT/운영 애플리케이션을 배포했다.

4. ‘멘딕스(Mendix)’는 고객 애플리케이션, 모바일 경험, 섀도우 IT 관리 등 광범위한 기술 및 비즈니스 전문 지식을 필요로 하는 활용 사례에서 유용하다. 네덜란드 은행 라보뱅크(Rabobank)는 멘딕스를 사용해 디지털 고객 경험을 개선한 동시에 IT 비용도 50% 절감했다. 취리히 보험 그룹(Zurich Insurance Group)은 셀카를 촬영하면 생명보험 예상 견적을 내주는 페이스쿼트(FaceQuote)를 빠르게 개발했다.

5. ‘아웃시스템즈(Outsystems)’는 현대화, 워크플레이스 혁신, 고객 경험 혁신이라는 세 가지 범주에서 기업 애플리케이션 개발을 제공한다. 미국 오클랜드시는 아웃시스템즈를 사용해 포털에서 통합 인증(Single Sign-on, SSO)을 지원하게 되면서 디지털 서비스 경험을 혁신했다. 미국 의료보험사 휴메이너(Humana)는 코로나19 검사 장소를 확인할 수 있는 애플리케이션을 개발했다.

6. ‘퀵 베이스(Quick Base)’는 계속 변화하는 운영 프로세스를 실시간 확인하는 데 주로 사용된다. 미국 의료서비스 업체 가이징거 헬스 시스템(Geisinger Health System)은 퀵 베이스를 활용해 코로나19 운영 앱을 개발했다. 필요에 따라 인력을 재배치하고 공석을 충원할 수 있는 앱이다. 메쪼(Metso), 에넬 그린 파워 노스 아메리카(Enel Green Power North America) 등의 석유 가스 업체들도 코로나19로 인해 변화된 업무 환경을 지원하는 애플리케이션을 구축했다.

7. ‘비전X(VisionX)’는 맞춤형 프로세스와 결합된 복잡한 데이터세트에 기존 소프트웨어를 사용하거나 적용할 수 없는 상황에서 유용하다. 공동 연구를 위한 과학 프로젝트 관리, 양자 컴퓨터 구성 및 자산 관리 등을 그 예로 들 수 있겠다.

로우코드, 소프트웨어 개발 주기(SDLC) 그리고 데브옵스
로우코드 플랫폼은 다양한 기능과 접근법으로 개발 주기를 지원한다. 이를테면 신속하고 단순한 개발에 중점을 두고 플랫폼에서 전체 개발 주기를 대부분 지원하거나, 또는 소프트웨어 개발 전문가와 시민 개발자가 협력할 수 있도록 여러 통합 기능을 제공하기도 한다. 기업용 로우코드 플랫폼의 경우에는 데브옵스 도구 및 호스팅 옵션과 더 많은 통합을 지원한다.

앞서 언급한 7가지 로우코드 플랫폼들이 애플리케이션 개발, 통합, 확장, 테스트, 배포를 어떻게 지원하는지 간단히 살펴본다.

‘애피언(Appain)’은 네이티브 개발 도구를 갖췄다. 또 젠킨스(Jenkins)와 같은 데브옵스 도구와 통합될 수 있다. 개발자는 자바 및 자바스크립트로 개발된 플러그인을 사용해서 애피언 통합 SDK(Appian Integration SDK)로 플랫폼을 확장할 수 있다.

‘부미 플로우(Boomi Flow)’는 REST API와 광범위한 통합 커넥터 라이브러리를 기반으로 하는 개방형 아키텍처를 제공한다. 빌트인 디버거, 자동 버전 관리 기능, 개발 및 테스트 등을 지원하는 다중 테넌트가 내장돼 있다. 깃(Git), 기트랩(GitLab), 젠킨스 등 여러 소스코드 시스템과도 통합할 수 있다.

‘카스피오(Caspio)’는 주로 플랫폼 내에서 개발 지원을 제공한다. 이를테면 실시간 미리보기, 앱 버전 관리 등이다. 사용자 정의는 자바스크립트, SQ, 카스피오의 REST API, 그리고 재피어(Zapier)와 같은 통합 플랫폼을 통해 할 수 있다.

‘멘딕스 클라우드(Medix Cloud)’는 백로그 관리, 버전 제어, 테스트, 개발을 포함해 전체 SDLC를 지원한다. 개발팀은 이러한 기능들을 활용하거나 아니면 지라(Jira), 젠킨스, 그리고 깃과 같은 도구와 통합해 사용할 수 있다. 애플리케이션은 멘딕스 클라우드, AWS, 애저, GCP, 온프레미스 시스템에 배포할 수 있으며, 클라우드 파운드리(Cloud Foundry), 쿠버네티스(Kubernetes), 도커(Docker) 등의 컨테이너 기술과 결합할 수도 있다. 또한 개발자는 자바 액션, 프론트엔드 자바스크립트, 타입스크립트 플러그형 위젯 등으로 멘딕스 기능을 확장할 수 있다.

‘아웃시스템즈(OutSystems)’는 프로젝트 팀이 요구하는 전문 도구들을 제공한다. 개발 단계는 트루체인지(TrueChange)라는 플랫폼 레이어와 연결된다. 아웃시스템즈는 자사 플랫폼에서 애플리케이션을 개발할 때 전통적인 코딩으로 돌아가야 할 이유가 거의 없으며, 필요에 따라 사용자 정의 코드를 원활하게 통합할 수 있다고 말했다.

‘퀵 베이스(Quick Base)’는 애플리케이션을 자동 생성하고 호스팅하는 완전 통합형 플랫폼이다. 개발자는 기능들을 퀵 베이스 샌드박스(Quick Base sandbox)로 테스트하고 RESTful API로 확장할 수 있다. 또한 드래그-앤드-드롭 통합 및 자동화 기능을 위해 퀵 베이스 파이프라인(Quick Base Pipelines)을 활용할 수 있다.

‘비전X(VisionX)’는 이클립스 IDE(Eclipse IDE)와 통합돼 양방향 코드 생성을 지원하는 자바 로우코드 플랫폼이다. 해당 아키텍처를 사용하면 모든 버전 제어 및 범용 테스트 자동화 플랫폼으로 작업할 수 있다. 애플리케이션은 젠킨스 또는 다른 CI/CD 도구로 배포할 수 있고 톰캣(Tomcat), 와일드플라이(WildFly), 글래스피시(GlassFish)와 같은 애플리케이션 서버에서 실행될 수 있다.

로우코드로 ‘속도’ 문제를 해결하다
이러한 로우코드 플랫폼 업체들 모두 한결같이 기업과 개발자가 내부 워크플로우 애플리케이션, 고객 경험, 통합, 자동화에 관한 증가하는 니즈를 대응하는 데 도움을 주고 싶다고 말한다. 다시 말해, 이들은 코딩을 없애려고 하는 것이 아니다. 대신 개발자와 협력해 고품질 애플리케이션을 개발하고 확장하는 역량을 키우고자 하는 것이다.

개발자들은 새로운 도구와 패러다임을 배우고 테스트하며 경험하는 일을 멈춰서는 안 된다. 지금까지 로우코드 플랫폼을 주저했다면 이제 소매를 걷어붙이고 개념증명(PoC)를 시도할 시간이다. [email protected]

  • ‘혹하는 약속, 그러나 반대급부도 있다’··· 로우 코드의 장단점 각 7가지
  • '묘책'과 ‘삽질’사이··· 시민 개발자 정책을 제대로 활용하려면?
  • 칼럼 | 개발자들이 로우코드를 싫어하는 9가지 이유
  • '로우 코드' 개발로 혁신 가속화··· 4사의 사례
  • 칼럼 | 개발자들이 '로우코드 플랫폼'에 대해 다시 생각해야 하는 이유
  • '약이 되거나 독이 되거나'··· '로우코드' 제대로 시작하기
Sponsored

RPA를 통한 고객 서비스 개선이 반드시 필요한 이유

ⓒ Getty Images Bank 지난 2년간 금융 기업은 재택근무 인력을 관리하면서 서비스 운영을 유지하는 데 주력했다. 코로나19로 인한 서비스의 제약을 최소화하는 노력도 병행했다. 일상 회복을 위한 포스트 팬데믹 시기에 앞서 금융 기업은 새롭게 고객에게 초점을 맞추고, 고객이 금융 서비스 기업과 이상적인 관계를 구축할 수 있도록 업무를 체계화하고 분배하는 데 집중할 것으로 예상된다. ‘디자인 씽킹’을 통한 고객 니즈 파악 고객 서비스 개선이 중요한 이유는 금융 기업이 그저 ‘옳은 일’을 지향하기 때문만이 아니라, 고객이 만족해야 경쟁사로 이동할 가능성이 더 적고 추가 제품과 서비스를 구매할 가능성이 더 크기 때문이다. 친구나 가족, 동료에게 브랜드를 추천하는 경향도 더 높다. 여러 설문조사 결과, 사용자가 금융 서비스를 이용할 때 가장 큰 불편은 고객 대응 부족, 채널 간 일관성 저하 및 단순 오류와 관련이 있었다. 이런 문제는 모두 자동화 기능으로 고객 서비스 에이전트와 디지털 워커(digital worker)를 위한 프로세스를 통합함으로써 해결할 수 있다. 컨설팅 업체 맥킨지(McKinsey)에 따르면, 은행은 신규 고객 가입 절차에서 최대 60%의 신청자를 잃을 수 있다. 잠재 고객을 완전히 잃은 후에 비싼 교훈을 얻는 것보다는 사전에 문제를 파악하고 예측해 예방 조치를 취하는 것이 현명하다. PwC는 디자인 씽킹(Design Thinking)을 ‘디자이너 툴킷으로 고객을 위한 보다 이상적인 솔루션을 만들어 사용자 니즈와 기술의 가능성, 비즈니스 성공 조건을 통합하는 일에서 비롯되는 인간 중심의 혁신 접근 방식’이라고 정의한다. 금융 기업은 성공적인 디자인 씽킹으로 현재와 미래의 제품 및 서비스에 대한 고객 니즈의 변화를 고려한 다음, 지능형 자동화를 활용하여 새로운 프로세스를 재구성하거나 구축할 수 있다. 은행은 개방적 전자상거래 시스템의 중심 ⓒ Blue Prism 미래의 금융 기업이 기술을 활용해 고객에게 보다 개인화된 서비스를 제공하는 방법은 무엇일까? HSBC는 모바일 뱅킹 앱으로 인해 사용자가 언제 어디서나 금융을 관리할 수 있는 자유를 얻었고, 사용자가 누릴 수 있는 더욱 큰 이점이 실현될 것이라고 모바일 플랫폼의 종류 예측했다. 여러 금융 전문가는 인공지능 같은 기술을 활용해 향후 1년 내에 챗봇을 이용한 금융 조언(52%), 레저 활동 할인(47%), 특별 보험 상품(41%), 여행 서비스(41%), 의료 서비스에 대한 접근(40%) 등의 개인화된 부가 서비스를 제공할 수 있을 것이라고 답했다. HSBC는 앞으로 은행이 보다 개방적이고 연결된 전자상거래 시스템의 중심이 되어서 금융 서비스 외부의 조직 및 기업과 통합하고 협력할 것이며, 은행 시스템이 외부와의 통합 및 협력 활동의 관문 역할을 하게 될 것이라고 전망했다. 개인화된 고객 서비스의 중요성 ⓒ Blue Prism 현재 금융 기업이 모바일 플랫폼의 종류 직면한 대표적인 문제는 고립된 레거시 시스템 때문에 고객 대응 직원이 충분한 시간을 투입해 고객과 의미 있는 대화를 나누기 어렵다는 점이다. 설문조사 결과, 많은 금융 전문가가 고객과의 소통과 고객 경험 개선 업무를 최우선으로 여기고 있었다. 자동화를 도입해 확보한 시간을 ‘프로세스 상의 문제 파악을 위한 데이터 분석(51%)’에 투입하겠다는 응답이 가장 많았으며, ‘고객에게 더 많은 시간 할애(48%)’, ‘동료와의 협업(45%)’, ‘데이터 분석을 통한 고객 행동 식별(44%)’, ‘새로운 제품과 서비스 파악(28%)’에 투입하겠다는 답변이 뒤를 이었다. 금융 기업이 직면한 문제는 ESG 같은 영역의 규제뿐 아니라, 은행이 취약한 고객을 공정하게 대우하고 개인화된 상품과 서비스를 제공할 것이라는 기대감이 커지고 있다는 점도 포함된다. 또한, 전 세계적으로 급증하는 랜섬웨어 공격과 악의적인 행위로 인해 보안 우려가 높아지면서 비용 절감에 대한 압력도 계속되고 있다. 애자일 핀테크(Agile Fintech)의 영향으로 은행의 가치 창출 서비스가 전통 서비스와 분리되고 있으며, 대출 상품에서는 이미 대형 IT 기업의 존재감이 점차 증대되고 있다. 이제 은행이 고객과의 관계를 유지하려면 관점을 달리해야 한다는 것은 분명하다. 빠르고 효율적인 운영도 중요하지만, 개인화와 훌륭한 고객 서비스의 중요성 모바일 플랫폼의 종류 또한 커지고 있다. 스마트 리더십과 더불어, 기술은 금융 기업이 고객 서비스에 대한 접근 방식을 전환하고 재구성하는 데 활용할 수 있는 가장 중요한 수단이 될 것이다. 특히 지능형 자동화 및 디지털 워커는 사람이 가장 잘할 수 있는 공감, 협업, 네트워킹 및 창의적인 업무에 집중하도록 지원하며, 이는 모든 고객을 위한 혁신으로 이어질 것이다. 자세한 내용은 ‘경영진 시리즈 #3 : 고객과 미래 비즈니스 방식에 초점을 맞춘 지능형 자동화’ 리포트에서 확인할 수 있다. 시리즈 #1 ‘금융 서비스의 경쟁 우위 확보, 해답은 ‘지능형 자동화’에 있다’ 기사 보러가기 시리즈 #2 모바일 플랫폼의 종류 ‘금융 서비스 혁신을 위한 지능형 자동화 로드맵 구축 방법’ 기사 보러가기

"클라우드 데이터 관리에 기여"하는 SD-WAN 엣지 전문 플랫폼의 중요성

ⓒ Getty Images Bank 포스트 코로나 시대에 접어들면서 IT 인프라와 서비스도 빠르게 변화하고 있다. 특히 그 중심에는 클라우드의 부상이 있다. 기업에서 클라우드 기반 애플리케이션 채택을 가속화하면서, 광역 네트워크(WAN)는 사용자와 애플리케이션을 연결하기 위한 필수 요소로 자리 잡고 있다. 기존에 구축된 인프라는 클라우드로 이동 중인 기업의 네트워크 환경을 관리하는 데에 한계가 존재하기 때문이다. 기업 애플리케이션이 데이터센터에서 클라우드로 옮겨가면서 더 이상 MPLS 같은 사설 회선 연결은 현 상황에 적합하지 않고, 유연하지 않으며 비용효율적이지도 않는다는 평가를 받는다. 아루바는 실버피크 인수를 통한 전문지식을 확대해 아루바 엣지커넥트(Aruba EdgeConnect) SD-WAN 엣지 플랫폼을 선보였다. 아루바 엣지 커넥트 SD-WAN 엣지 플랫폼은 광대역으로 사용자와 애플리케이션을 연결할 때 낮은 비용으로 복잡성을 줄이면서 WAN을 구축하고, 애플리케이션의 성능은 높이고 자본비와 운영비를 최대 90%까지 절감한다. Aruba EdgeConnect 물리적 어플라이언스는 가상 어플라이언스로도 제공 ⓒ HPE Aruba EdgeConnect 플랫폼의 구성요소 - Aruba EdgeConnect, Aruba Orchestrator 및 Aruba Boost 아루바 엣지커넥트는 안전한 가상 네트워크 오버레이를 만들기 위해 지사에 모바일 플랫폼의 종류 배포되는 물리적 또는 가상 어플라이언스다. 이를 통해 기업은 MPLS 와 광대역 인터넷 연결을 이용하는 하이브리드 WAN 방식을 적용하고, 그리고 사이트별로 자사 속도에 따라 광대역 WAN으로 이동할 수 있다. 아루바 오케스트레이터(Aruba Orchestrator)는 레거시와 클라우드 애플리케이션에 기존 인프라에서는 볼 수 없었던 수준의 가시성을 보장한다. 그러므로 비즈니스 의도에 따라 중앙에서 정책을 할당하여 전체 WAN 트래픽을 보호하고 제어할 수 있다. 정책 자동화를 통해 여러 지사의 배포를 촉진하고 간소화하며 전체 애플리케이션에 일관된 정책을 지원한다. 결과적으로 기업은 비즈니스 의도에 따른 가상 WAN 오버레이를 통해 애플리케이션을 사업 목표에 맞추고 맞춤 가상 오버레이에서 애플리케이션을 사용자에게 전달할 수 있다. 즉, WAN을 재구성할 필요가 없으므로 아루바 엣지커넥트 어플라이언스의 제로 터치 프로비저닝이 가능하다. 엣지커넥트 SD-WAN 엣지 플랫폼의 옵션으로 제공되는 아루바 부스트(Aruba Boost)는 아루바의 WAN 최적화 기술과 아루바 엣지커넥트를 결합하여 하나로 통합된 WAN 엣지 플랫폼을 조성하는 WAN 최적화 성능 패키지다. 기업은 아루바 부스트를 사용하여 레거시에 민감한 애플리케이션의 성능을 가속화한다. 또한, 하나로 통합된 SD-WAN 엣지 플랫폼으로 WAN에서 반복되는 데이터의 전송을 최소화할 수 있다. TCP와 기타 프로토콜 가속화 기법이 모든 트래픽에 적용되어 있으므로 WAN 전체에서 애플리케이션의 응답 시간을 크게 개선하고 데이터 압축과 중복을 제거하여 데이터의 반복 전송을 방지한다. Aruba EdgeConnect 하드웨어 플랫폼 ⓒ HPE 아루바 엣지커넥트는 특히 플러그 앤 플레이 방식의 배포를 통해 단 몇 초 안에 지사에 배포되므로 데이터센터와 다른 지사 또는 AWS, 마이크로소프트 애저, 오라클 클라우드 인프라 스트럭처, 구글 클라우드 플랫폼 등의 보편적 IaaS 서비스에서 다른 아루바 엣지커넥트 인스턴스와 자동으로 연결된다. 이와 더불어 클라우드 인텔리전스 기능을 지원한다. 최고의 경로를 통해 수백 개의 SaaS 애플리케이션에 업데이트를 실시간으로 전달하여 기업과 애플리케이션이 민첩하고 지능적인 방식으로 연결될 수 있다.

고객 경험, 기업 핵심 아젠다로 새롭게 조명받다

기업의 고객 경험(Customer eXperience, CX) 투자 경향이 계속 꾸준한 증가세를 보이고 있다. 어도비의 ‘2021년 CIO 인식조사 보고서(CIO Perspectives Survey 2021)’에 따르면 응답 기업의 33%는 고객 경험 투자가 증가했다고 답했다. 투자가 줄었다고 답한 기업은 8%에 불과했다. 미국에서는 고객 경험 관련 예산 증가를 경험한 CXO가 훨씬 많아, 예산이 증가했다고 답한 CIO가 40%에 이르렀다. 물론 CIO는 예산이 늘어난 만큼 그에 걸맞은 결과를 내야 한다. 12명의 전문가에게 기업의 고객 경험을 계속 개선할 때 필요한 조언을 요청했다. ⓒ Getty Images Bank 부서가 여러 분야를 제대로 넘나들게 하라 유저스냅 설문 조사에서 기업은 고객 경험 업무에 다른 여러 부서를 연결하는 경우가 많다는 결과가 나왔다. 특히 개발 부서는 고객 경험 활동에서 흔히 볼 수 있는 8가지 관련 부서 중 하나다. 일반 관리 및 지원 기능 외에 고객 경험 마케팅, 영업, 운영 및 제품 부서도 뒤섞여 있다. 보스턴 컨설팅 그룹의 전무이 벤저민 레흐버그는 이렇듯 많은 팀을 여러 분야에 걸친 메가 부서로 합쳐야 한다며, IT 부서가 고객 경험을 주도해서도 안 되지만 고객 경험을 만드는 과정에서 배제되어서도 안 된다고 덧붙였다. 레흐버그는 CIO가 데브섹옵스(DevSecOps) 프레임워크와 애자일 방법론을 사용하여 여러 분야를 아우르는 팀을 구성할 것을 조언했다. 또 CIO가 다른 부서 리더를 대상으로 교육을 진행해 팀 안에 구심점을 만들어야 한다고 강조했다. 레흐버그는 “CIO는 이 작업을 수행하는 데 있어 매우 중요한 인물이지만 홀로 추진해서는 안 된다. 조직 전체가 이것에 협조하고 더 나은 고객 경험을 촉진하는 데 일조해야 한다”라고 말했다. 단순한 고객 대면 기술이 아닌 올바른 백엔드 인프라에 투자하라 고객 대면 인터페이스, 기능 및 서비스는 완전히 통합된 최신 백오피스 시스템에 좌우되는 요소다. IT 컨설팅업체인 코그니전트의 컨설팅 매니저 메간 실바는 “웹사이트와 챗봇만 만들면 되는 것이 아니고, 필요한 모든 데이터와 통합된 챗봇인지가 중요하다”라고 말했다. 실바는 많은 기업이 CRM 시스템 현대화에 대규모로 투자하고 있다고 진단했다. 대표적인 예로 헬스케어 산업을 꼽는다. 많은 의료기관이 팬데믹에 대응해 원격의료를 활성화하기 위해 서둘렀지만, 환자가 세션에 로그인하는 동안 후속 진료 예약을 하거나 서비스 비용을 지불하는 데 필요한 기능이 없는 경우가 많았다. 실바는 다른 업계도 비슷한 상태라고 지적하면서 “‘예약 링크,’ ‘비용 지불 클릭’ 같은 메뉴가 있지만, 여전히 투박한 수준에 머무른다. 고객 경험이 준비되지 않은 기업들이 있다. 30개 넘는 도구가 있어도 통합되지 않았다면 의미가 없다”라고 말했다. 올바른 기술을 습득하라 부쉬홀츠는 여러 분야를 아우르는 부서는 적절한 전문 지식도 갖춰야 한다고 강조했다. 그는 자신의 경험을 바탕으로 “개발자의 경우 코딩은 잘 하지만 사용자 인터페이스 구축에는 강하지 않은 경우가 많다”라고 말했다. 또한 “고객 경험을 위한 설계와 사용자 설계는 실제 훈련을 받아야 하는 기술이다. 기술자라면 천부적으로 관련 기술을 보유하고 있을 것이라고 가정해서는 안 된다. 동료 직원을 위해 설계하는 전문 지식은 기업 내에 없는 경우가 많다는 점을 인식해야 한다”라고 말했다. 고객 경험을 잘 만드는 조직은 이 점을 이해하고 있으며, 결과적으로 전문가를 정규 직원으로 두거나 일부 기술자에게 경험 설계 기술을 교육하여 필요할 경우 고객 경험 프로그램을 지원한다. 레흐버그는 또한, 개발자의 마음가짐(특정 비즈니스 요구사항에서 작업)에서 엔지니어 마음가짐(기술자가 코드로 문제 해결 방법을 고안)으로 직원을 전환해야 한다며, CIO는 팀이 올바른 기술을 배양하도록 해야 한다고 강조한다. 또 “개발자의 일하는 방식은 다르다. 교육과 훈련도 달라야 한다”라고 덧붙였다. 이외 고객 경험을 정비하고 제고할 때 필요한 8가지 조언은 다음 콘텐츠에서 더욱 상세히 확인할 수 있다.모바일 플랫폼의 종류

End-to-End 고객 경험의 새로운 아젠다, 디지털 워크플로우

'Effort less Experience'의 저자인 매튜 딕슨은 "고객의 충성도를 저해하는 이유를 가급적 줄여야 하며, 이를 위한 가장 좋은 방법은 고객이 더 적은 노력으로 문제를 해결하도록 돕는 것"이라고 강조했습니다. 가트너 또한 고객의 노력은 고객 충성도를 높이거나 낮추는 가장 강력한 요소라고 합니다. 원하는 해결책을 손쉽게 빨리 찾을 수 있어야 기업의 신뢰도와 만족도가 개선된다는 점에 모두가 공감할 것입니다. 엔드투엔드 고객 경험에서 디지털 워크플로우가 새롭게 조명되는 이유, 그리고 많은 기업이 고민하는 문제인 투자 시 효용에 주목하는 영상을 공유합니다.


0 개 댓글

답장을 남겨주세요