RSS

월간 보관물: 8월 2012

리치앱(rich apps)의 열 한가지 특징

리치앱(rich apps)이란 말이 요즘 앱쪽에서 회자됩니다. 부자앱? 풍부한 기능의 앱? 알찬앱? 뭐라 딱히 번역하기 어렵기에 그냥 ‘리치앱’으로 부르기로하죠. 이 신조어는 기존의 앱에 없는 특징적인 것들을 갖춰서 시장에서 성공한 앱들을 통칭하는 것 같습니다. 특히 단말 혼자서만 동작하던 앱에서 백앤드 서버와 연동되면서 단말의 ‘제한된 데이터’를 넘어서 DB서버의 ‘풍부한 데이터’을 활용할 수 있게 된 앱을 가리키는 듯합니다. 정의하긴 어렵지만, 그 특징은 뽑아볼 수 있겠습니다. 일반적으로 리치앱은 다음과 같은 특징을 가진다고 봅니다.

하나, 맥락을 이해하고 있다. 앱이 사용자가 누구인지 한번 알려주면 기억하고 있으면서 개인화해준다던가 현 위치를 알고 있으면서 위치에 맞는 응답을 해주는 앱이죠. 요즘은 멀티 디바이스에서 같은 앱을 사용하는 경우도 있는데 내가 디바이스를 바꿔가며 쓰더라도 리치앱은 내가 마지막하던 맥락을 끊김없이 이어주는 사용자 경험을 주기도 합니다.

둘, 상호작용이 폭넓다. 어떤 앱을 사용해보니 이 앱을 함께 쓰는 나의 지인을 알려주며 상호작용을 유도하기도 하고, 사람과 사람사이의 상호작용이 아닌 리치앱 자체가 필요한 백앤드에 붙어서 필요한 정보를 수집하는 것도 일종의 상호작용이라고 할 수 있겠습니다. 날씨나 증권정보등을 필요한 시점에 받아와서 보여주는 것이 상호작용의 예가 되겠지요.

셋, 예외상황 대응력이 좋다. 가령 네트워크 상황이 좋지않은 장소에서 앱을 사용한다고 생각해봅시다. 연결이 끊어졌다 붙었다를 반복하게 되는데, 이런 상황에서도 부드럽게 앱의 기능을 처리할 수 있는 앱이 있는 반면에 그렇지 못하고 종료하거나 무한정 기다리게 만드는 앱들도 있지요. 또, 배터리가 소진되어 10~20%남았을 때는 네트워크 사용을 최소화하고 화면색상을 어둡게하는 등의 조치를 할 수도 있겠습니다.

넷, 안전해야 한다. 리치앱은 사용자 데이터를 소중하게 다뤄야 합니다. 서버로 허락되지 않은 개인정보를 올리거나, 외부로부터 내 단말로 접속해서 정보를 빼가려는 시도를 해서는 안되겠지요. 네트워크로 데이터를 보낼 때는 암호화된 형태로 주고 받아서 중간에 데이터가 유실되어도 쉽게 드러나게 해서는 안됩니다. 이런 부분을 세심하게 고려하는 앱이 있는 반면 아닌 앱들도 많습니다.

다섯, 반응 속도가 빨라야한다. 마치 살아있는 듯한 UI반응을 불러일으키고, 네트워크에 요청해서 받아오는 부분도 통신 속도에 따라 UI가 얼어버리는 현상이 없도록 비동기적으로 처리할 필요가 있겠습니다.

여섯, 고객의 소리를 듣는다. 리치앱은 고객의 의견에 귀를 기울입니다. 의견을 수집할 수 있는 창구를 열고 그 내용을 선별하여 반영할 계획을 세우고 실행하지요. 주로 메일이나 블로그 댓글 형태로 소통합니다. 어떤 앱에서 정말 고치고 싶은 기능이 있는데 도무지 소통할 수 있는 방법을 찾기 힘들 때 그 답답함을 공감하시는 분들이 있을 것입니다. 소통은 모든 면에서 중요하지만 리치앱에서도 마찬가지입니다.

일곱, 오픈된 표준을 따른다. 리치앱은 독자적으로 서비스 되는 경우도 있겠지만, 다른 앱과 서비스와의 연동함으로 그 사용성이 높아질 수 있습니다. 이렇게 연동을 위해서는 공개 표준을 따르는 것이 좋습니다. 가령 앱끼리의 호출에 대한 url scheme을 제공하거나, OpenAPI를 만들어 제공하는 등의 형태가 되겠지요.

여덟, 처음 사용자를 위한 안내가 풍부하다. 앱이 직관적이어서 아무 설명없이도 사용하는데 어려움이 없다면 괜찮겠지만, 기능이 독창적이고 다양한 기능을 제공하다보면 , 초기 사용자를 위한 친절한 안내가 앱의 가치를 전달하고 재사용률을 높일 수 있을 것입니다.

아홉, 콘텐츠나 기능이 풍부하다. 리치앱의 그 이름처럼 풍부해야 합니다. 앱 자체의 콘텐츠가 없거나 별다른 기능이 없다면 유저들은 그 앱을 사용할 가치를 느낄 수 있을까요?

열, 재미를 줘야 한다. 다양한 측면에서 쏠쏠한 재미를 줘야합니다. 부활절 달걀(easter egg)처럼 숨겨진 기능이 있다거나 나 구글에서 검색할 때 feeling lucky같은 기능은 유저에게 흥미를 던져줍니다.

열하나, 심미적 즐거움을 줄 수 있어야 한다. ‘이쁘면 모든 것이 용서된다’는 풍자는 앱 세상에서도 예외는 아닌것 같습니다. 어떤 조사에 의하면 남녀모든 사용자들이 앱을 설치할 지 여부를 결정하는데 가장 중요한 요소가 앱의 스크린샷이라고 합니다. 혁신적인 UX, UI과 기능도 일단 시각적으로 강한 인상을 주지 못한다면 설치되기 어렵고 설치되지 못하면 사용할 수도 없겠지요. 리치앱으로 성공하기는 쉽지 않을 것입니다.

나열하다 보니 꽤 길어졌네요. 앞에 일곱가지는 제가 생각하는 특징이었구요. 나머지는 함께 일하는 동료(곽,조,신,JP님)들의 아이디어을 추가해서 더 멋진 리스트가 만들어졌네요.

아무튼, 그냥 앱으로 주목받던 시기는 ‘이미’ 지났습니다. 잘 만들고 풍성하게 만들어야 유저들의 성은을 입습니다. 그러기 위해서는 리치앱의 특징을 벤치마킹하고 개선해서 내가 만드는 앱에 적용해보는 것도 나쁘지 않을 것 같습니다.

최피디 드림

Advertisements
 
댓글 남기기

게시자: 켬 2012년 8월 24일 in iOS개발, 앱개발

 

BaaS가 제공하는 가치

SaaS, IaaS, PaaS 등의 “as a service”로 끝나는 용어가 IT 필드의 사람들에게는 그다지 낯선 단어는 아닙니다. 하지만 ‘그게 뭔가요?’ 물어보면 어떻게 대답해야 할 지 당황스럽기도 한 단어이기도 합니다. 제 나름의 이해로 정리해보자면 다음과 같습니다.

  • SaaS (software as a service) 서비스로 소프트웨어를 ‘제공’한다는 의미는, 우리 웹 어플리케이션을 브라우저로 접속해서 소프트웨어를 사용하도록 서비스합니다는 것이죠. on demand software, asp 같은 것들이죠.
  • IaaS (infra as a service) 인프라는 IT인프라로 서버, 스토리지, 네트워크 등 ‘물리적’인 자원들을 서비스 형태로 제공하니, 그걸 직접 사서 “소유하지말고 이용하라”는 이야기네요. 아마존 AWS나 KT uCloudBiz 같은 게 이런 콘셉이 되겠습니다.
  • PaaS (platform as a service) 여기서 말하는 플랫폼은 Java VM이나 Ruby VM 같은 특정 소프트웨어 동작하기 위한 실행환경(runtime)을 가리키는 것 같네요. 소프트웨어를 개발할 때 소스코드의 저장소만 건내주면 서비스화 된 플랫폼이 그걸 가져가서 컴파일하고 빌드해서 실행까지 해주겠다는 의미로 보입니다. 예를 들면 구글의 app engine이나 heroku 같은 서비스가 이런 류인 것 같습니다.

간단할 뿐만 아니라 자의적인 개념 정리라서 수긍가지 않는 분들도 있겠습니다. 댓글로 의견 주시면 공부에 도움이 되겠습니다. 🙂

오늘 이야기 하려는 주제는 위 세가지 단어와 생김새가 비슷한 BaaS입니다. Backend as a service라고 풀어 쓰며 backend라는 것은 frontend라는 말과 대칭되는 개념입니다. 그럼 front와 back 어떻게 구분될까요? 그건 서비스를 제공받는 사용자입장에서 눈에 보여지는 면이 frontend이고 그 내부에 감춰진 것이 backend라고 보면 될 것 같아요. 예로 쉽게 전달하자면, 웹사이트를 생각해보면, html과 javascript, image같은 것으로 유저들의 웹브라우저에 보여지는 부분이 frontend이고 눈에 보이지 않는 웹서버, 어플리케이션서버, 데이터베이스 등은 backend 겠지요.

여기까지 읽으신 분들은 아마 “클라이언트-서버”라는 개념에서 클라이언트가 frontend고 서버가 backend라고 봐도 되는지 궁금하실 겁니다. 맞습니다. 그렇게 보면 될 것 같습니다. iOS나 android 앱을 개발한다고 칩시다. 그럼 이 단말에 들어가는 앱은 frontend 기술로 만들어 집니다. 하지만 iOS에서 로그인하거나 사진을 업로드하면 그걸 받아서 처리해주는 부분이 바로 backend 영역이고 java나 c#, php, python, ruby등 다양한 개발 환경이 존재합니다.

‘그래, 그럼 backend는 좀 알겠다. 눈에 안보이는 서버 쪽 프로그램들이란 말이지?’ 네 맞습니다. 이런 backend 프로그램을 ‘서비스’로 제공하겠다는 것이 바로 BaaS입니다. backend를 ‘소유’하지 말고 ‘사용’하라는 메시지가 담겨있는 것이죠. 소유하지 말고 사용하라는 말은 as a service 사업모델의 기저에 깔려있는 철학같은 것입니다. 이 말은 소유의 종말로 번역된 Jeremy Rifkin의 저서 ‘The Age of Access’의 주제와 맥을 같이 합니다. “서비스 제공자가 모두 준비해 두었으니 접속해서 사용하시면 됩니다.” 이게 BaaS사업자들이 돈벌기 위해 제공하는 ‘가치 제안’입니다.

그러면, 이런 backend 기능들이 뭐가 있는지 구체적으로 들어가 볼까합니다. 우리동네 착한 가게를 추천해주는 모바일 앱을 하나 만든다고 해봅시다. 그러면 만들어야 할 사용자 스토리를 생각해보면

  • 사용자는 우리 동네에서 착한 가게 목록을 볼 수 있어야 한다.
  • 로그인한 사용자는 우리 동네의 착한 가게를 등록할 수 있다.
  • 로그인한 사용자는 우리 동네 착한 가게에 대해서 평가를 할 수 있다.
  • 로그인한 사용자는 착한 가게에 체크인할 수 있다.
  • 관리자는 불량사용자들의 사용을 제한 할 수 있다.

이런 사용자 스토리가 있다고 가정해보면, 단말에서 처리할 부분이 있는 반면 서버에서 처리해줘야 할 내용들이 있습니다. 느슨하게 구분해보면 이렇게도 가능하겠지요.

  • 단말
    • 단말의 현 위치를 기준으로 서버에 착한 가게 목록을 요청한다.
    • 사용자들에게 로그인 정보를 받아서 서버에 요청한다.
    • 착한 가게 사진을 찍어서 서버로 업로드 요청한다.
    • 착한 가게에 체크인 정보를 서버로 요청한다.
  • 서버
    • 로그인 정보를 받아 합당한 유저인지 판단하여 로그인 성공여부를 알려준다.
    • 관리자인이 일반 사용자인 지 판단하여 권한을 제한한다.
    • 회원가입한다.
    • 특정 위경도 주변에 있는 POI 목록을 보내준다.
    • 업로딩 된 사진을 파일 저장소에 저장한다.
    • 체크인 정보를 DB에 저장한다

실제 상황에서는 이 보다 훨씬 다양한 내용들이 있을 수 있겠지만 이 정도로 정리하고 진도를 나가보겠습니다. 서버에 해당하는 스토리를 처리하기 위해서는 backend 프로그램을 개발해야 하는데, 보통 웹 개발자, 서버개발자들이 담당하게 됩니다. backend 개발에 소요되는 비용은 일반적으로 frontend 개발에 드는 비용을 훨씬 상회하지요. 유저의 증가에 따른 확장성까지 고려한다면 이 비용은 더욱 가파르게 상승하게 됩니다.

BaaS가 해결하고자 하는 것은 무엇일까요? 바로 위에서 말한 backend 개발 비용을 획기적으로 줄여보자 것이지요. backend 서버 로직 중에 공통으로 많이 쓰이는 것들이 뭐가 있을까요? 다음과 같은 것이 떠오르는 군요.

  • 회원관리
  • push notification
  • 클라우드 기반의 파일 시스템

이 외에도 더 많이 생각해볼 수 있겠습니다. BaaS가 이런 backend 기능을 모아서 비교적 쉽게 frontend에서 사용할 수 있는 API와 SDK를 제공한다면, 단말개발자들은 서버 개발자 없이도 풍부한 기능의 앱을 만들 수 있지 않을까요? 서버 개발자들도 매번 똑같은 바퀴를 새로 만들 필요 없이, 서비스별 차별화 요소에 더욱 집중할 수 있는 여유를 만들 수 있겠습니다.

parse.com website

parse.com website

parse.com 이라는 구글 출신의 엔지니어들이 만든 BaaS업체가 있습니다. 다양한 기능을 제공하고 SDK까지 제공하고 있기 때문에, iOS/Android 개발자라면 누구나 쉽게 push메시지를 보낼 수 있고, 간단한 key-value 형태의 데이터를 서버에 저장할 수 있으며, 파일을 공유할 수 있게 되었습니다. 이런 API 사용에 초반에는 비용이 없습니다. 무료로 시작할 수 있고, 특정 사용량을 넘어서게 될 때에 비로소 과금하게 되는데, 이 역시 쓴 만큼만 비용을 내는 합리적인 가격체계를 갖추고 있습니다.

BaaS는 단말 개발자들에게 서버개발자 없이도 멋진 앱을 만들 수 있는 자유를 줬습니다. UX/UI에 더욱 집중하고 나머지 뒷단의 일은 BaaS에게 맡기세요. 게다가 서비스가 어느 정도 커져서 시장에 반응이 나타날 때까지 무료로 해볼 수 있다는 점이 무척 매력적이네요.

국내에서도 이러한 BaaS서비스를 준비하고 있는 업체들이 있습니다. 이들에 대한 이야기는 다음 포스팅에서 이야기 해보겠습니다.

baas.io

baas.io

최피디 드림

 

 
댓글 21개

게시자: 켬 2012년 8월 16일 in BaaS