본문 바로가기

media & world/and more

잡담: 무엇을, 얼마나 공개해야 하는가 (애플의 private API)

애플의 앱스토어에 올라온 몇몇 어플리케이션이 내려지고 있다고 합니다. 세카이 카메라증강현실 어플리케이션들이 대상이라고 하더군요.

애플의 폐쇄적인 운영방식과 횡포를 증명하는 또 하나의 예라고 하시는 분들도 많은데 테크크런치 등 여러 기사를 보고 이해가 되더군요. 테크크런치의 기사 내용을 포함하여 관련 내용을 간단하게 요약하면 다음과 같습니다.

  • 증강현실 앱 중 하나인 세카이 카메라가 최근 경고 없이 앱스토어에서 사라졌다.
  • 이 어플은 GPS를 이용해서 사용자와 물체와의 거리를 파악하는 기능이 있다.
  • 이 어플은 GPS 신호가 약한 곳에서는 PlaceEngine 이라는 기술에 의존한다.
  • 이 PlaceEngine은 GPS 대신 와이파이의 엑세스 포인트의 위치 정보를 이용해 위치를 파악하는 기술이다.
  • 이 PlaceEngine은 private API를 사용하고 있다.
  • private API를 사용한 앱들은 애플의 SDK agreement 에 의해 앱스토어에 등재가 불가능하다.

정리하면 간단합니다. 세카이 카메라에는 사용하면 안되는 API를 이용해서 만들어진 부분이 있다는 거죠. 규칙을 어겼기 때문에 앱스토어에서 내려간 거고요.

*                               *                               *

애플의 아이폰 SDK의 private API를 다른 말로 표현하면 undocumented API 혹은 low-level API 라고 할 수 있습니다. 즉, 실제로 존재는 하지만 개발자들에게 배포된 SDK (와 문서)에는 없는 기능이죠.

이런 차별(?)이 존재하는 이유는 대부분 둘 중 하나입니다.
첫째, 사용 방법이나 세부 기능이 앞으로도 계속 바뀔 수 있는 가능성이 있거나.
둘째, 애플 내부 개발자 이외의 개발자들에게는 공개하고 싶지 않거나.

즉 개발상 편의를 위해서는 private API를 사용하면 좋겠는데 애플의 정책에 따라 삽질을 해야 하는 경우가 생기기도 하고, 심지어는 아예 특정 기능의 구현 자체가 불가능하기도 하다는 거죠. 바꿔 말하면 애플 입장에서는 자신들만 핸들링해야 하는 API가 필요한 거고, 개발자들은 통째로 오픈된 API를 원하는 겁니다.

*                               *                               *

많은 분들은 상황이 이렇게 됐을 때 애플의 편을 들면 애플빠, (SDK를 완전히 개방하라고 주장하는) 일반 개발자의 편을 들면 애플까로 나누곤 하죠. 저는 스스로를 애플빠라고 생각하지는 않지만 이 경우에는 애플의 생각에 동의하는 편입니다.

즉 모든 걸 공개하는 것만이 문제를 해결해 주지 않는다는 게 제 생각이죠. 예를 들면 바탕화면이나 아이콘을 바꿀 수 있는 API가 공개되거나 설정 화면에 들어가지도 않고 각종 설정을 해줄 수 있는 API가 공개되면 어떻게 될까요?

세상에는 정말 편리한 기능을 성실한 모델로 개발하는 모범적인 개발자들도 존재하기 때문에 그들에게 날개를 달아줄 수도 있겠죠.

하지만 위의 두 가지 예만 생각해봐도 - 앱들 간 UI의 통일성이 깨질 것은 불을 보듯 뻔할 것이고, 서로 다른 앱에 비해 비교우위를 점하려고 사용자들은 원치않는 아이콘 바꾸기, 바탕화면 깔아대기 등이 벌어지겠죠. 이게 과연 사용자들에게 유리한 걸까요?

모바일 디바이스에서 앱을 판단하고 유료로 설치해서 사용해야 하는데 기본 기능의 모범적인 사용 유무까지 판단해야 한다면 - 만약 기능을 효과적으로 쓴 어플, 악의적으로 쓴 어플까지 애플에서 관여한다면 애플의 앱스토어는 지금보다 훨씬 더 폐쇄적인 앱스토어가 됐을 것이고 그렇다면 15만개의 앱이 등록되는 일은 없었을 겁니다.

*                               *                               *

마지막으로 조금은 다르지만 구글의 예를 들어보죠. 구글은 정말 많은 분야에서 API를 공개하고 많은 서비스를 무료로 제공하는 대표적인 회사입니다. 심지어는 유료 서비스 중이던 회사를 인수해서 무료로 풀어버리기 까지 하고 있죠. 그렇다고 구글이 자신들이 사용하는 모든 수준의 API를 공개하나요?

그들 역시 애플과 마찬가지로 자신들이 검색에서 가진 데이터에 접속할 수 있는 권한과 그것들을 이용한 서비스를 제공하긴 하지만 그들이 가진 검색 기술이나 그들이 데이터를 엑세스하는 수준으로 API를 공개하지는 않습니다. 하지만 많은 사람들에게 있어서 구글은 개방된 무료, 애플은 폐쇄된 유료 (그것도 비싼!) 라는 이미지로 인식되고 있죠. (이 이야기는 다른 글에서 더 하겠습니다^^)

즉, 구글과 애플의 포지션은 많은 사람들에게 서로 다르게 인식되어 있지만 사실 그들은 기술이 가진 잠재력과 가치를 끌어올리기 위해 동일한 (혹은 상당히 유사한) 방법을 사용하고 있다는 거죠. 바로 '공개'입니다. '무엇을 공개하느냐', '어느 선까지 공개하느냐'에 대한 논란은 공개를 접는 그날까지 계속될 수 밖에 없겠죠. :-)