2012년 9월 20일 목요일

구글 안드로이드 개발자 간담회, In-app Billing 발표내용과 그 논란에 대해.

9월 17일 있었던 구글 안드로이드 개발자 간담회의 세번째 세션, Using In-app billing at Google Play는 최근 논란이 된 내용이라 재밌었기도 하고, 간단히 해당 내용과 제 생각을 좀 정리해 봅니다.



In-app billing.
얼마전 구글이 애플처럼 사악해져서 개발자들의 결제 모델을 통제하기 시작한다는 기사가 휘몰아쳤죠.
이용료는 없지만 일부 아이템등을 현금으로 살 수 있는 온라인 게임처럼 안드로이드 앱들 중에도, 설치는 공짜거나 싼 가격이지만, 앱 내에서 카톡 선물처럼 게임 아이템을 사거나 특정 서비스를 추가로 요청할 때 사용자에게 요금을 받는 경우가 있습니다.
이처럼 앱 내에서 추가 결제를 하는 것을 앱 내 결제라고도 하곤 하는데요.
애플은 이를 위한 서비스를 자체적으로 제공하면서, 앱스토어에서 이 서비스 외의 방법으로 앱 내 결제를 하는 앱은 삭제해 버리겠다고 하고, 실제로 그렇게 해 논란을 일으킨 적 있습니다.

구글에서도 이번에 이와 마찬가지로 구글 플레이에서 앱 내 결제를 위한 in-app billing 이라는 서비스를 내놓으면서, 구글 플레이에서 유통되는 앱은 앱 내 결제를 위해선 이 서비스만 이용해야 한다는, 애플과 똑닮은 정책을 내놓았습니다.
애플과 달리 나름 개방적이라 여겨지던 구글의 이같은 강제 정책에 여러 논란이 있었던 것(아니, 현재 진행형인가요?)이지요.
이에 대해 이야기를 해주셨습니다.

in-app billing 서비스가 뭐고, 어떻게 사용하면 되는지에 대한 자세한 정보는 여기(http://developer.android.com/guide/google/play/billing/index.html)를 참고하시면 됩니다.

간단히 정리해보자면, 사용자의 기기에 있는 구글 플레이 어플리케이션에게 Binder를 통해 요청 메세지를 보내면 마켓 어플리케이션이 사용자 계좌로부터 개발자 계좌로의 금액 결제를 대신해 주는 건데요.


그리고, in-app billing의 제약사항은 다음 링크에 있으며, in-app billing 에 대한 내용은 다음과 같습니다.

http://play.google.com/about/developer-content-policy.html#showlanguages

  • In-app purchases: Developers offering additional content, services or functionality within an application downloaded from Google Play must use Google Play's payment system as the method of payment, except:
    • where payment is primarily for physical goods or services (e.g. buying movie tickets; e.g. buying a publication where the price also includes a hard copy subscription); or
    • where payment is for digital content or goods that may be consumed outside of the application itself (e.g. buying songs that can be played on other music players)

간단히 번역해보죠.
사용자가 구글 플레이에서 다운받은 어플리케이션 내에 추가적인 컨텐트나 서비스 또는 기능을 제공하는 개발자는 그 결제 수단으로 반드시 구글 플레이의 결제 시스템을 사용해야 한다.
예외조건:

  • 물리적 물건이나 서비스를 위한 결제의 경우(예를 들어, 영화 표를 산다거나, 실물책 구독 등과 같은 간행물 구매 시) 또는,
  • 어플리케이션 자체 외부에서 사용되는 디지털 컨텐트인 경우(예를 들어, 어플리케이션 외의 mp3 플레이어 등에서 재생 가능한 음악 - mp3 -)


결국, in-app billing은 구글 플레이와 연동되어서 제공되는, 앱 내 결제 서비스 입니다. 구글 플레이에서 유료 앱을 구매하면 구글 플레이에서 자동으로 통신사와 연결해서, 또는 신용카드 정보 등을 이용해서 결제를 하죠. 상당히 편리하고, 이미 익숙한 방법입니다.
저는 100원 앱 세일 할 때 유료 앱 몇개 결제해 봤는데, 별다른 정보를 입력하거나 active-x 따위와 씨름할 필요 없이, 통신사와 연결되어서 클릭 몇번으로 결제가 끝나더군요.

in-app billing은 그러한 구글 플레이의 결제 시스템을 앱 내에서도 제공할 수 있도록 하는 서비스입니다. 앱 개발자는 in-app billing 서비스를 이용함으로써, 별도의 결제 시스템을 구축할 필요 없어 좋고, 사용자는 이미 친숙하고 신뢰 할 수 있는(구글느님께서 만드셨다는데 신뢰해야지 어쩌겠습니까) 구글 플레이 구매 시스템을 이용해 결제를 할 수 있도록 할 수 있는 거죠.
발표자께서도 특히 사용자 입장에서의 편리성을 강조하시며, consistent experience를 제공할 수 있는게 큰 장점이니, 부디, 부디(please, please) in-app billing을 사용해 달라 하시더군요.
또한, in-app billing의 수수료는 30%나 되지만, 이는 대부분 통신사 등에 가는 돈이지 구글에서 돈벌어 먹으려 그러는 게 아니고, 통신사로 가는 30%가 크다고 생각할 수도 있지만 어디까지나 유저에게 편리한 일관된 사용경험을 만들기 위한 비용이며, 유저의 일관된 사용경험은 그럴만한 가치가 있다고 이야기 했습니다.

이외에 질답을 통해 환불이 가능하고, in-app billing의 강제 조건의 예외 조건 등을 이야기 해주셨습니다만, 발표자께서 말씀해주신 주요 내용은 여기까지구요.
제 생각을 좀 더 정리해 보겠습니다.

대부분 동의합니다. 유료 앱을 구매한 건 몇번 안되지만, 구글 플레이가 제공하는 결제 방식은 비교적 편리했고, 마음에 들었습니다. 이런 경험을 앱 내에서의 결제 방식에도 가져간다는 것은 앱에게 큰 장점이 될거라고 생각합니다. 구매도 구글 플레이에서 했는데, 앱 내 결제도 구글 플레이 방식으로 한다는 건 말 되는 이야기죠. 더구나 그걸 도와주는 서비스라니, 제가 앱 내 결제를 사용하려는 개발자라면 이걸 사용하겠습니다.
일관된 사용자 경험, 얼마나 좋습니까?

문제는, 구글 플레이에 올린 앱에서 in-app billing이 아닌 다른 수단으로 앱 내 결제를 하면 구글 플레이에서 퇴출된다는 강제사항인데요.

MUST. 반드시.

아, 굉장히 맘에 안드는 단어입니다.

좋은 서비스란 건 알겠는데, 세상에는 많은 이해관계가 있고, 많은 특수성이 있기 마련인데, 반드시 그것만 써야 한다니...
애플은 사악하고 closed 되어 있는 독재체제지만 안드로이드는 그렇지 않다고 믿어왔고, 자랑거리였는데, 이제 더이상 그렇지 않은 걸까요? 구글이나 애플이나 그놈이 그놈이고 다 장사꾼이니 세상에 믿을 놈 하나 없는 걸까요? 구글 의존성을 막기 위해 우리나라만의 독자적인 OS를 만들어야 할 것 같습니다. 한민족의 힘을 보여줍시다.

좀 과장해 봤습니다만, 저런 생각 중 일부는 드는 것도 사실입니다.
하지만, 조금 더 생각해 보죠.

기술로써의 안드로이드(조금 더 정확히는 AOSP)는 항상 개방적이었고, 여전히 개방적이고, 앞으로도 개방적일 것(바램에 불과하지 않기를...)입니다. 누구나 소스 코드를 이용할 수 있고, 이걸 가져다가 조금 변형해서 뭘 만들든 자유입니다.

구글 또한 여타 third party 제조사/소프트웨어 개발사들과 마찬가지입니다. 아마존이 기술로써의 안드로이드를 가져다가 Kindle Fire를 만들고  자신만의 앱 판매 서비스를 제공하듯, 구글 또한 기술로써의 안드로이드를 가져다가 Google Android라는 이름으로 사업을 하는 거죠.

구글의 안드로이드 사업은 예전에는 신경을 안쓰는 건가 싶을 정도로 개방적이었고, 지금은 조금씩 체제를 정비해 가고 있는데, UX만 괜찮아 진 게 아니라 좀 논란스러운 강제조건도 생겨나고 있습니다. 하지만, 이런 논란스럽고 강제적인 내용은 기술로써의 안드로이드는 개방된 상태를 유지하는 것을 보장하는 한계 내에서 부가적인 방식으로 진행되고 있습니다.

in-app billing 또한 마찬가지입니다. 기술로써의 안드로이드는 in-app billing과 전혀 관계 없습니다. in-app billing이 강제조항이라 맘에 안들지만 기술로써의 안드로이드는 in-app billing과 무관한 개방 상태기 때문에 구글 플레이로 배포하지만 않는다면 대안은 많아요.
국내는 T-store가 구글 플레이보다 더 개발자 수익성에 도움이 된다는 이야기도 있구요.

하지만, 구글이 사업으로 제공하는 서비스인 구글 플레이를 사용하려면 구글의 조건을 들어야 한다는 거죠. 구글 플레이는 apk 올려둘 수 있는 무료 웹하드가 아니라 보다 좋은 사용자 경험으로 사용자와 개발자들이 만날 수 있도록 제공하면서 구글이 돈버는(하지만 in-app billing의 수수료는 거의 다 통신사 등에 간다더군요) 서비스 사업이니까요.

쉴드는 여기까지.
그렇다곤 해도, 구글의 안드로이드 사업은 아마존의 안드로이드와 달리, 사실상의 안드로이드 표준이기 때문에, 이 강제조항이 미치는 파급효과는 무시할 수 없습니다.
누가 기술과 사업의 안드로이드를 구분해서 생각합니까? 그냥 대충 한뭉텡이로 묶어서 안드로이드지. 이게 그냥 대충도 아니고, 정말 안드로이드를 위에서 밥벌어먹는 사람에게 구글의 사업 정책 변화는 정말 중요한 요소입니다.
상당히 reasonable 한 이유고, 사용자를 위한 방향이라고 하지만, 어쨌건 폐쇄적인 게 옳지 못하다고 생각하는 사람들은 이걸 가지고 구글을 깔 명분은 충분하다고 봅니다.

호텔 식당에 한복 입은 사람은 들어오지 말라고 호텔이 말했다고 해도 어쩌겠습니까, 호텔 소유지인데. 하지만 좋게만 볼 순 없는 일입니다. 더구나 그 호텔이 사막 한가운데 위치한 몇개 안되는 호텔 가운데 하나라면요. 그 한복이란 게 실은 벼룩과 세균이 득시글거리는 걸인이 걸친 넝마였고, 호텔에서는 식당 입장을 위한 멋지고 튼튼한 옷을 거의 무료로 제공하거니와, 이를 몇번이나 공지했는데도 들은척도 안하더라는 비교적 합리적인 설명이 있으면 주관에 따라 개개인의 생각은 바뀌겠지만요.
어쨌건 충분히 생각해 보고, 까야겠다고 여전히 생각하는 사람은 까야 할 사안이라고 봅니다.


어쨌건 이제 우린 어떡하면 좋을까요?
사실, 너무 걱정할 필요는 없다고 봅니다. 구글 플레이에서 구매한 앱에서는 In-app billing을 사용하고, 다른 앱 내 결제가 반드시 필요하다면 T-store 나 Samsung apps 등에 올리면 되죠.

개발할 때 여러개의 앱 내 결제를 구현해야 하고, 구글 플레이에서 구매한 앱인지, 다른데서 구매한 앱인지 체크해야 하는 번거로움이 있지만, 어쨌든 대안은 존재합니다.

하지만, 개발자 분들은 좀 더 일이 늘었고, 회사의 결정에 따라 없어도 될 코드를 짜야 하는 경우가 많아질 것이며, 이를 위한 충분한 시간을 주지는 않는 경우가 많을 것 같습니다.
이런 불운한 상황에 처한 분들께는 그저 애도를 표합니다...

2012년 9월 18일 화요일

Google Android 개발자 간담회 후기

9월 17일 월요일, 구글 코리아에서 구글 안드로이드 개발자들과의 간담회가 있었습니다.
http://googledevkr.blogspot.kr/2012/09/google-android.html

상당히 많은 분들이 참가신청을 한 것 같아 보였는데, 한정된 장소 탓에 참가를 못하게 된 분들도 있었던 것 같지만, 운좋게도 저는 참가를 할 수 있게 되었습니다.
시작시간은 6시. 비교적 이른 시간이었는데도 다들 일찍 오셨더군요.


발표 내용은 다양했고, 개발자로써 역시 첫번째와 두번째 세션이 가장 재밌었습니다.
첫번째 세션은 Definitive Android Design. 안드로이드 어플리케이션 디자인에 대한 내용이었는데요. 이미 많이 들은 이야기라 식상하게 들렸을 수도 있지만, 원론적인 이야기만 하는게 아니라 구체적인 사례와 실제 수치 등을 들어가며(48dp 는 약 9mm 라든지) 상당히 구체적인 경우들을 이야기하는 게 인상적이었습니다. 흔히 말하는 1000피트 뷰로 이야기 하지만, 가려운 곳은 1피트까지 내려가 주는 기분이었달까요?
두번째 세션은 What's new in Android? 라는 주제로, 젤리빈에서 있었던 변화들을 이야기 했는데, 역시 Project Butter 이야기가 재밌었습니다. Google IO 영상으로 한번 들은 이야기지만, 다시 들으니 좀 더 이해가 잘 되고, 모호하던 부분이 좀 이해되더군요.

세번째, 네번째 세션은 각각 Using In-app billing at Google Play, How to get featured 라는 제목으로, 구글 플레이에 대한 이야기가 있었는데요. 비교적 짧은 시간으로 발표를 마치고 주로 QnA를 가졌습니다.

발표는 영어로 진행됐지만 다들 잘 알아들으시더군요. 전 잘 못알아듣겠던데... 그래도 발표자들께서 또박또박 천천히 이야기 해주는 편이어서 그나마 몇마디는 알아들었습니다.
QnA도 영어로 진행됐고, 몇몇 분은 한국어로 질문하시고 행사를 진행하신 권순선님께서 영어로 이를 옮겨주시는 형식을 취하기도 했는데, 발표자 분들이 한국어로 한 질문을 이해해 버리기도 했습니다. 역시 개발자는 만국공통인 걸까요.

저는 갤럭시S3가 ICS면서도 기본 앱들은 액션바를 안쓰는 경우도 있고, 심지어 메뉴키를 유지한데 대해 어떻게 생각하는지, 메뉴키 없애도록 강제할 생각은 없는가 하는 질문을 던졌는데, 안드로이드 개방성 특성이고, 강제로 메뉴키 없앨 계획은 없다고 역시 유연하게 답변하시더군요.
저 또한 강제적으로 메뉴키를 없애려 한다면 실망했을 것 같긴 하지만 너무 유연하고 일반적인 답변은 재미가 없는 것도 사실이죠. 그렇다고 거기서 리누스 토발즈가 nvidia에 세번째 손가락 보여준 것처럼 Samsung에 f... 뭐 그러길 바란 것도 아니긴 하지만요 ;)

발표가 다 끝나고 나서는 자유롭게 갈사람은 가고, 할 이야기 있는 사람들은 발표자들과 자유롭게 이야기 하는 시간이 있었는데요. in-app billing 쪽이 역시 인기가 좋더군요.

저는 남들 이야기 하는거 들어보기도 하고, 그간 개발자 모임에서 낯이 익은 능력자 개발자 분들과 이야기 좀 더 하고 몇분들과는 자리를 옮겨서 커피 한잔 하며 이야기좀 하고 돌아왔습니다.

상당히 즐겁고 유익한 시간이었고, 항상 개발자들 위해 물심양면 노력해 주시는 구글 코리아와 권순선 님께 감사의 말씀 드립니다.