iPhone Developer Program License Agreement의 추가 사항에 대한 또다른 견해를 하나 이야기해볼까 합니다.

크로스 컴파일을 허용함은, 곧 그만큼의 관리 비용 증가를 뜻하는 것은 아닐까요?

이는 '출제자의 의도 파악 문제[각주:1]'와도 관련이 있을 것이고, 또 앞서 이야기한 'Apple의 사용자 중심 정책[각주:2]'과도 관련이 있을 것입니다.

iPhone의 Objective-C 기반 API를 A라 하고, Packager for iPhone을 A' 라고 할 때, 

  1. A에 대한 지식이 없는 개발자가 A'를 이용하여 어플리케이션을 개발할 때, A'에서 사용하는 A의 기능들이, 원래 A가 의도했던 범위 내에서만 사용이 될 수 있을까요?
  2. 이번 iPhone OS 4.0과 같이 A에 수많은 기능들이 추가되었을 때, A'에 그러한 기능들이 모두 적용되려면 얼마나 걸릴까요?
  3. A의 특정 API의 기능이 일부 변경되었을 때, 이 기능을 사용하는 A'의 모든 API가 적절한 시간과 비용 안에서 변경될 수 있을까요?
  4. 만약 A'에 문제가 있어, A'를 이용하여 개발된 여러 어플리케이션에서 동시다발적으로 버그가 발생하였을 때, 사용자들은 A'를 탓할까요, 아니면 A를 탓할까요?
  5. A'를 이용하여 개발된 어플리케이션이 점점 늘어나는 경우, A'의 영향력 또한 강해지기 마련인데, A'의 요구사항이 A에게서 받아들여지지 않을 때, 이 비난의 화살은 누구를 향할까요?

Safari와 Flash Player의 사례

Mac OS의 기본 브라우저인 Safari는 상당히 빠르고 안정적인 브라우저입니다. 하지만, Flash Player의 성능 및 안정성 문제로 인해 Safari 자체의 안정성과 성능이 퇴색되고 있다는 점은, Mac 사용자라면 누구나 인정하실 것입니다.

특히 4항을 예로 들면, Safari의 경우, Crash 등의 문제가 발생하였을 때 그 문제를 Apple에 리포트하는 기능이 있는데, 저의 경우, 하루에 2~3번 정도는 (일반적인 웹 서핑 중) 이 리포트 창을 봅니다. 그런데, 수년간 Mac과 Safari를 사용하면서, Flash Player 외의 문제로 리포트 창이 뜬 적은 거의 없었습니다. 사용자들은 Safari가 느리고 불안정하다고 이야기하지만, Apple은 이 문제를 해결할 수 없습니다.

또한 5항의 예로, Mac용 Flash Player의 마우스 휠 지원, 그리고 3D 가속 문제 등으로, Adobe의 개발자들은 몇 차례 Apple을 비난(?)한 바 있습니다. 그런데, Apple 입장에서는, (Flash Player를 제외하고는) 이러한 기능을 구현할 이유가 없습니다. 오직 Flash Player를 위한 API를 만들어줘야 한다는 것인데, 그 API의 개발 비용 및 향후 수 년간 유지 비용은 Adobe에서 전액 지불하던가요? 당연히 Apple은 이 요구 사항을 받아들이지 않았고, Adobe는 이 문제를 'Apple 지원해주지 않아서'라고 언급하였습니다. Adobe 측 개발자들 중 상당수는, 아직도 이 문제가 Apple의 문제라고 생각합니다.

Mac OS와 Adobe AIR의 사례

2항의 예로는, Trackpad 및 횡스크롤 지원을 예로 들 수 있습니다. Mac은 수년전부터 Trackpad를 메인 포인팅 디바이스로 사용하고 있으며, 360도 스크롤은 그보다도 더 오래되었습니다. 하지만 Adobe의 AIR에서는, 아직 베타 버전인 AIR 2.0에서 이를 부분적으로 지원하기 시작하였으며, 현재 Trackpad를 사용하는 Mac 사용자들은, Adobe AIR로 개발된 어플리케이션에서, 스크롤 시 적지 않은 불편함을 느끼고 있습니다. 더 큰 문제는, AIR 2.0에서도 '부분적'으로 지원한다는 점입니다. 개발자들은 이를 위해 별도의 UI 관련 API를 사용해야하며, 그 기능들은 아직 기존 기술에 적절히 녹아들지 않았습니다. 개발자든 사용자든, 앞으로 한동안은 더 불편함을 감수해야 합니다.

1항, 3항은 현재 적절한 예가 떠오르지 않습니다만, 어떤 내용인지는 쉽게 추측하실 수 있으리라 생각합니다.

정리

위의 5 가지 항목을 한 단어로 요약하면, '파급 효과'라고 요약할 수 있습니다. 또한, 크로스 컴파일러의 허용은, 그러한 파급 효과들에 대한 커다란 관리 비용을 감수하여야 가능합니다.

이제껏 널리 이야기되어온 '사업 모델'의 통제(control)는, 사실 구체적인 예시를 찾기 힘들어, 저는 잘 믿지 않는 편입니다.


Reference

Associate

위 내용은 어제 저녁, 평소 친분이 있던 IT 업계에서 종사하시는 어떤 분과의 대화를 토대로 작성되었으며, 저만의 고유한 생각은 아님을 미리 밝힙니다.

  1. http://blog.chanik.com/entry/출제자의-의도-파악-문제 [본문으로]
  2. http://blog.chanik.com/entry/Apple의-사용자-중심-정책 [본문으로]
저작자 표시 비영리 변경 금지
Posted by 찬익

트랙백 주소 : http://blog.chanik.com/trackback/92 관련글 쓰기

댓글을 달아 주세요