Jan 19, 2015

클라우드로 다시 한 번 진화하는 웹과 앱

writer 이건복
한국마이크로소프트 개발자 및 플랫폼 사업본부 이사
kblee@microsoft.com


데이터를 갖고 있는 기기가 점점 늘어나는 IoT 시대에서 우리가 공룡들에 대항할 수 있는 수단은 무엇인가.
더 열심히, 철저하게 준비하고 있는 인터넷 기업들에 대비한 우리의 무기는 무엇인가.
기업들이 빅데이터들을 학습하고 있는 지금 이 이 시기는 판세를 뒤집을 수 있는 마지막 시대가 될지도 모른다.
이 시기에 우리가 준비할 것들은 무엇일까.

응답하라 웹 2.0

몇 년 전 웹 2.0이라는 표현이 흔히 사용되곤 했다. 웹 1.0이라는 표현이 없었는데 갑자기 웹 2.0이라니? 의아한 느낌의 용어였다. 아마 이 표현은 누군가가 시맨틱(Semantic) 웹처럼 콘텐츠와 기능을 동시에 강조하는 차원에서 만들었고, 타당하다고 생각한 정부나 업계에서 널리 사용했던 것이 아닐까. 모호하거나 변화에 대한 강박이 느껴지는 차세대라는 표현보다는 기술적 버전의 업그레이드처럼 2.0이라는 표현을 만들어 사용했던 게 아닐까 싶다.

용어 자체의 느낌과는 별도로 사실 그 시기는 기술적으로 동적인 웹 페이지를 지향하고, 웹 관련 기술에 대해 표준화와 더불어 많은 발전을 이룬 것 같은 때였다. 온톨로지(Ontology) 개념과 같이 사용자와 더 상호작용할 수 있는 여러 기능도 알려지기 시작했고, 모바일 웹에 대한 요구가 증가하면서 모바일과 웹의 경계에서 많은 솔루션이 등장했으며, 조금 더 직관적인 형태의 웹 페이지들이 사용되기 시작했다.
또한, UX(User Experience)라는 디자인과 사용자의 경험을 중요하게 여기는 웹 페이지의 등장이 이어졌다. 일반 사용자의 입장에서는 UX 변화가 체감할 수 있는 가장 큰 웹 2.0의 지향점이었는지도 모른다. 그런데 더 이상 웹 2.0이라는 표현이 쓰이지 않는 시대에도 여전히 웹 기술은 웹 페이지 안에 갇혀 있고, 콘텐츠는 한계에 부딪혔다. 이 문제점을 해결하는 데 기존 기술은 무의미했다.

당시 엔지니어들은 안정적인 웹 페이지의 개발과 운영을 위해 더 많은 시스템 자원만을 필요로 했고 디자인은 마치 찍어내는 벽돌처럼 유행에 따라 모든 사이트가 비슷한 룩앤필을 유지했다. 결국 사용자들은 시간이 지날수록 웹의 지루함을 느낄 수밖에 없었다. 기술은 단순히 엔지니어나 콘텐츠를 생산해 내는 사람들을 위한 것이 아니라 사용자들이 느끼는 것에 더 많은 중점을 둬야 하는데, 실제로는 생산자를 위한 진보가 전부가 아니었나 하는 의구심이 들기도 한다.

표준화는 산업에 있어서 중요한 요소다. 다만 표준화 때문에 기능 및 디자인 요소가 제한을 받는 것은 표준화의 올바른 목적은 아닐 것이다. 그 해결책으로 해외에서는 사용자 인터페이스로부터 비즈니스 로직을 분리해 앱의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 MVC(Model-View-Controller) 또는 MVVM(Model- View-View-Model) 같은 개발 방법론을 널리 사용했지만 유독 한국에서만 이러한 기술들이 활성화하지 못하고 있었다. 아마 업계의 얇은 인력층과 어려운 업무환경 탓도 있었을 것이다.

그러므로 한국에서는 과연 웹 2.0을 넘어(웹 3.0이 아닌) 새로운 온라인 콘텐츠 서비스를 제공하기 위해서는 어떠한 것들이 필요할 것인가에 대해서 생각해 볼 필요가 있다. 단순한 기술 발전이나 표준화 수립과 적용, 그리고 화려한 디자인이 아닌, 사용자의 기대를 충족할 수 있는 기반에 대한 요소를 말이다. 이를 위해서 고려해야 할 요소는 다음과 같다.

· 웹과 앱의 동일한 사용자 경험 제공
· 글로벌 수준의 가용성
· 빅데이터의 적절한 활용
· 분석을 뛰어넘은 예측



웹과 앱의 동일한 사용자 경험

페이스북의 성공 요인에는 여러 가지 인자가 있겠지만, 무엇보다 많은 사람이 모바일 앱과 웹에서 동일한 콘텐츠를 보고 사용할 수 있었다는 점이 가장 크다. 여러 사용자가 페이스북을 단순히 광고 수익을 지향하는 소셜 미디어 기업이라고 생각하지만 실제로는 엄청난 원천(코어) 기술을 만드는 회사다. 성능이나 확장성을 위해 페이스북이 사용했던 기술들은 다른 소셜 미디어 서비스 기획자들의 표준이 될 정도로 상세한 기술 기반 요소를 바탕으로 하고 있다. 즉, 결과적으로 웹과 앱에서 동일한 사용자 경험을 제공하는 것은, 눈에 보이는 UI적 요소뿐 아니라 그 기반의 확장성과 다양한 장치의 지원이라는 부분이 동반돼야 한다는 것이다. 완벽한 사용자 경험을 제공하기 위해서 인증, 푸시 알림, 데이터 통합 등이 필요하기 때문에 페이스북은 모든 서비스의 API화를 선택했다. 모든 서비스를 API화함으로써 모바일에서도 사용자가 동일한 기능을 사용할 수 있었고, 파트너십을 원하는 업체에도 페이스북의 일부 기능을 연동해 이용할 수 있도록 했다.

이제 사용자들 눈은 높아질 대로 높아진 상태다. 소셜 미디어뿐 아니라 모든 웹 페이지에서 동일한 내용을 모바일 앱 형태로 제공받고 싶어한다. 그 기준점은 페이스북과 같은 수준이다.

만일 웹 콘텐츠를 개발하고 제공하는 제작자가 이런 상황에서 서비스 설계를 다시 API화하는 관점에서 사용자 입장을 되돌아보지 않는다면 사용자로부터 철저하게 외면받을 것이다. API로 서비스를 노출한다는 것은 API에 대한 검증과 모니터링, 그리고 개발자를 위한 포털 사이트 구축 등 수반되는 일련의 작업과정이 필요하다는 것을 알아두자.

그런데 API 구축 및 관리에 익숙지 않은 제작사들이 쓸 수 있는 해결법은 없을까? 그런 측면에서 마이크로소프트의 클라우드 플랫폼인 ‘애저(Azure)’가 제공하는 API 관리 서비스는 매우 유용하다. 개발 서비스를 파트너에게 알리고 사용량에 대한 모니터링을 쉽게 가능토록 한다. 그 외에도 모바일 서비스를 이용한다면 쉽게 API 서비스를 비롯한 인증과 푸시 알림 서비스를 구현할 수 있다.

글로벌 수준의 가용성

12월호의 ‘클라우드 기반의 웹 호스팅’에서 언급한 것처럼, 요즘 같은 글로벌 세상에서 글로벌 수준의 가용성을 확보하는 것은 매우 중요한 요소이다. 단순히 시스템 안정성을 높여 신뢰를 얻는 것보다 불특정 사용자 접근까지 예상한 서비스를 기획한다면 기획 시점에서부터 모든 내용이 그에 맞게 설계돼야 한다.
그러나 불특정 다수를 고려하기에는 늘 예산 문제가 있다. 처음부터 엄청나게 큰 인프라 환경을 기반으로 시작할 필요는 없다. 확장성을 고려한 설계가 필요하다. 글로벌 서비스는 언제 폭발적으로 성장할지 모르기 때문에 시스템 운영자는 얼마만큼의 시스템 투입과 운영이 적절한지를 고민하게 되기 마련이다. 이런 고민을 하다 보면 어쩔 수 없이 최대 부하의 시점에 맞춰 운영하기 마련인데, 최대 임계치 대비 평균 운영시간, 최소운영시간의 누적 비율을 따져봤을 때 전체 운영시간의 50%가 넘는다면 큰 비용 손해를 입은 것과 마찬가지다. 더욱이 글로벌 수준의 가용성을 고려한다면, 이런 문제는 더욱 심각하게 다가올 수 있다.
해결법은 역시 클라우드다. 클라우드의 동적인 시스템 스케일링은 서비스 운영자 입장에서는 매우 유용한 기능 중 하나이다. 애저의 자동 스케일링 기능(Auto Scaling)을 사용한다면, 임계치가 아닐 때 자동으로 시스템의 크기를 줄여주므로 최대 75%까지의 비용을 절감할 수 있다.


빅데이터의 적절한 활용

아래 그림은 60초, 단 1분 동안 인터넷에서 벌어지는 상황을 간단하게 도식화한 것이다. 메일과 소셜 미디어에서 상상 이상의 대규모 데이터를 필요로 한다. 이 테이터가 실제 비즈니스에 얼마나 도움이 되는지에 대해서는 의문을 가질만하지만, 중요한 것은 데이터를 가진 자가 유리한 비즈니스를 펼칠 수 있다는 것이다. 그렇다고 해서 “남들이 하니까 우리도 한다”는 식의 무분별한 빅데이터 적용은 결국 시간과 비용만 낭비하는 경우가 많다. 그렇기 때문에 빅데이터는 기술적 관점에서 접근하기보다 비즈니스 목적으로 어떤 데이터를 추출하고, 어떤 결정 요소를 갖고 업무 계획에 반영할 것인가에 대한 부분이 선행돼야 한다. 다른 말로 하자면 빅테이터 솔루션을 가지고 있느냐 없느냐가 중요한 것이 아니라 크건 작건 간에 수집한 데이터들에 대해서 의미를 부여하고 어떻게 활용할 것인가에 대해서 고민하는 것이 더 중요하다는 것이다.

빅데이터 적용 절차를 간단하게 표현하면 ‘데이터의 수집’, ‘분석’, ‘시각화’ 3단계로 나눌 수 있다. 수집은 기존 데이터를 포함해 ‘새로 발생하는 데이터’와, ‘그동안 수집하지 못했던 연관 데이터 수집에 대한 절차’를 수립하는 과정부터 시작해야 한다. 웹사이트에서 사용자 활동 정보와 더불어 웹사이트 밖에서 일어나는 다양한 연관 활동 정보의 손쉬운 수집을 위해서는 ①인증단계에서부터 소셜 미디어 계정을 활용하거나, ②로그 수집을 외부 시스템이 아닌 자체적인 로그 적재 메커니즘을 확보하는 것이 필요하다. 이후 분석은 클라우드의 하둡(Hadoop) 서비스를 이용해 전체 시스템이 아닌 분석에 필요한 시간에만 할당하고 활용하는 방법을 사용할 수 있다. 다시 말하자면 ‘빅데이터의 적절한 사용’이라는 표현은 빅데이터를 위한 시스템을 구축보다 업무의 일부로서 빅데이터를 활용하는 것이 더 중요하다는 것을 의미한다.

분석을 뛰어넘는 예측

웹 페이지 사용자 유입과 활동 패턴을 알아보는 분석 서비스는 이미 흔하다. 그런데 단순 분석을 넘어 사용자의 패턴을 예측하고 이에 대한 통찰력을 확보하기까지의 웹 시스템을 개발하기란 쉬운 일이 아니다. 성공한 웹 페이지의 외관은 언뜻 보면 동종 업계와 비슷하다. 그러나 타 서비스와의 차별화뿐 아니라 고급 서비스를 제공하는 것은 그 이면에 철저히 숨겨져 있는 설계 같은 것이다. 예를 들어 좋은 광고 분석과 예측을 위한 모델이나, 쇼핑몰 등은 소비자 구매 기록에 따라 관련 제품 추천 또는 콘텐츠 노출에 관심이 있을 만한 소비자에게 적절하게 노출한다. 이러한 서비스들은 단순 분석 결과가 아닌 복잡한 통계와 수식이 결합된 공식의 결과물이다.

그렇다면 이러한 분석과 예측 모델을 수립하기 위해서는 어떠한 행동을 취해야 할까? 첫 번째로 데이터 분석가 및 전문가가 필요하고, 그 다음으로 시스템을 구축해야 한다. 그러나 쉽지 않다. 비용 문제도 있지만, 시스템 구축에 접근하기까지 많은 시행착오와 시간이 걸리는 것이 더욱 문제이다. 또한, 통찰력을 갖추기 위해 머신 러닝(Machine Learning) 시스템을 구축하려면 큰 비용과 시간이 소모되므로 적은 수의 인력에게만 의존하는 경우가 많은데, 사람에게만 의존하는 경우는 비즈니스적으로 위험하다. 따라서 가급적이면 회사는 프로세스를 자동화하고 시스템화하는 것이 중요하다. 이 과정에서 대부분의 발생 데이터를 기록하고 프로세스를 수립하게 된다. 분석과 예측에서 역시 마찬가지로 모델을 시스템화하는 것이 중요하다. 이것은 인력 관리뿐 아니라 웹 콘텐츠의 경쟁력에서도 중요하게 작용한다. 사용자에게 제공하는 서비스가 조금 더 사용자 친화적으로 개인화되고 사용자 패턴을 분석해 예측할 수 있다면, 사용자는 해당 서비스에 충성도를 가질 수밖에 없다.

마이크로소프트는 1999년부터 자사에서 사용한 누적 경험을 기반으로 2014년부터 애저 내부 서비스에서 머신 러닝을 제공하고 있다. 클라우드에 있는 데이터뿐 아니라 어디에 있는 데이터든 가져와서 읽고 가공한 후, 검증된 알고리즘을 통해 예측 모형(Model)을 만들 수 있다. 그리고 생성 모형을 웹 서비스로 제공해 개발자들이 쉽게 자신의 서비스와 결합해 사용할 수 있도록 한다. 또한, 인력 관리 문제도 해결할 수 있는데, 모형 수립에 있어서 다른 데이터 전문가를 공동작업자로 지정해 온라인상에서 공동의 작업을 할 수 있는 기능도 제공한다. 즉, 머신 러닝과 같은 서비스를 클라우드의 서비스의 일부로 제공함으로써 초기 투자비용 없이 빅데이터와 추천 알고리즘 등의 분석 서비스를 가능하게 하는데, 모형을 사용한 시간만큼의 비용을 지불하도록 하는 과금 방식이 매력이다.

진정한 웹과 앱의 진화

우리는 너무 빨리 변화하는 IT 산업 시대에 살고 있다. 과거 산업혁명의 시기와는 비교할 수 없을 정도로 빠른 주기로 기술은 교체되고 있으며, 사용자들은 여느 때보다도 높은 기대를 가지고 지켜보고 있다. 자연스럽게 이를 만족하기 위한 기술과 서비스들로 무장한 앱과 웹이 하루에도 수백 개씩 쏟아지고 있는 상황이다. 어찌 보면, 이런 상황에서 개발자나 디자이너는 정글에 홀로 남겨진 채 살아남아야 하는 것 같은 기분을 느낄 수도 있겠다. 인류가 생존을 위해서 진화되고 선택됐듯이 앞으로의 개발자나 디자이너들도 나름의 경쟁력을 보유해야만 존재할 수 있다고 본다. 결국 이러한 결과물로서, 운영 중이거나 기획 중인 웹 서비스나 앱은 자연스럽게 진화하는 과정을 겪을 것이다. 그렇게 하기 위해서는 위에서 언급한 것들을 반영하고 내재화하지 않는다면 생태계에서처럼 도태되는 과정을 밟을 것이다.

우리가 종사하는 IT 산업에는 큰 흐름이 존재했다. 대형 시스템에서 클라이언트 서버로 전환하는 시기가 그랬고, 인터넷의 등장과 함께 웹이라는 파도가 몰려왔다. 그리고 지금은 모바일과 스마트 디바이스, 그리고 IoT(Internet of Things: 사물 인터넷)의 시대에 살고 있다. 한 가지 확실한 것은 모든 것을 직접 맨 밑바닥에서부터 하는 시대는 끝났다는 것이다. 이미 웹 서비스를 제공하기 위한 인프라 환경뿐 아니라 분석을 위한 서비스, 빅데이터를 저장하고 통찰력을 얻을 수 있고, 글로벌하게 시스템을 구축하기 위한 다양한 서비스가 존재하고 있다. 앞으로는 이러한 기존의 시스템을 분해해 클라우드 서비스를 기반으로 재조합해 사용할 수 있는 능력이 필요한 시대가 될 것이다. 그렇게 하기 위해서는 기존에 가지고 있는 클라우드에 대한 편견을 버리고 새로운 진화를 위한 서비스를 클라우드 기반 위에서 만들어 보는 것이 어떨까 생각해 본다. 다윗은 골리앗에게 승리했다. 그러나 21세기의 관점에서는 골리앗도 다윗 못지 않은 훈련을 거듭하고 있다. 골리앗과 싸워서 이길 것인가? 아니면 골리앗의 어깨 위에 올라탈 것인가. 결정은 본인의 몫이다.