洪民憙 (홍민희) 블로그

이하의 글은 2010년에 쓴 것입니다. 오래된 글인 만큼, 현재의 생각과 전혀 다른 내용도 많이 포함되어 있고, 당시와는 상황이 많이 달라진 점도 있습니다. 또한, 그 당시에 잘못 알려졌던 정보도 포함되어 있을 수 있습니다. 어찌됐든 저는 제 오래된 글이 회자되는 것을 저어합니다. 읽기에 앞서 양해를 부탁드립니다.

모바일 앱 개발에 대한 얘기가 들리지 않는 날이 없다. 대개 iPhone의 성공을 단일 플랫폼과 적절한 통제에 기인한다고들 말하는데, 맞는 말이긴 하다. 해상도나 장비에 포함된 기능 집합까지 똑같거나 거의 같기 때문에 배포할 때 곯머리도 안 썩고 만들 때도 편한 것이다.

하지만 그것과 별개로 나는 여러 환경에 대한 고려가 좀더 나은 디자인을 만든다고 믿는 사람이다. 여러 환경을 고려하다보면 결국 적절한 추상화를 하게 되는데, 객체 지향 프로그래밍이라면 다형성을 적절히 쓸 것이고, 함수형 프로그래밍이라면 특수화를 잘 쓸 것이다.

단위 테스트가 있는 코드가 대개 없는 코드보다 디자인이 나은 경우가 많다. 왜 그렇냐면 단위 테스트 자체가 클라이언트 코드를 두 개 이상으로 만드는 효과를 주기 때문이다. 클라이언트 코드가 두 개 있는 것과 세 개 있는 것은 별 차이가 없지만, 하나 있는 것과 여럿 있는 것은 꽤 크게 차이가 난다. 클라이언트 코드라면 호출하는 쪽, 사용하는 쪽을 얘기하는데 결국 클라이언트 코드 자체가 환경이라는 말이다.

하지만 모바일 앱을 만드는데는 이런건 부질 없는 이야기다. 모바일 앱은 대체로

마무리 짓는게 관건1인데, 여러 환경 고려하며 품질 높고 좋은 디자인의 코드를 만들어 내다간 반쯤 농담으로 대작 MMORPG 만드는 비용이 들어가게 된다. 후 하고 불면 불꽃이 흔들리는 앱 하나 만들겠다고 그런 비용을 지불하려는 사람은 별로 없을 것이다.

결론: Apple은 사악하고 Android는 갈 길이 멀다.


  1. 사실 그렇다기 보다는 트렌드.