이곳의 프로그래밍관련 정보와 소스는 마음대로 활용하셔도 좋습니다. 다만 쓰시기 전에 통보 정도는 해주시는 것이 예의 일것 같습니다.^^;
질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.
질문이나 오류 수정은 siseong@gmail.com 으로 주세요. 감사합니다.
글수 139
모바일 플렛품의 한계 / 설계 상의 주의점
대부분의 모바일 플렛폼이 그렇듯이 iPhone도 메모리 관리 부분에 있어서 상당히 치명적인 문제점을 가지고 있다. 메모리를 제대로 관리하지 않으면 메모리의 부족현상이 일어나고 iPhone이 재부팅되는 현상이 벌어진다. 이것은 iPhone이 외장 메모리(또는 하드디스크)에 가상메모리를 생성하고 스왑핑 (Swapping) 하는 기능을 보유하고 있지 못하기 때문이다. 만약 여러분 작성한 앱이 상당히 큰 그래픽이나 멀티미디어 파일을 로드하여 메모리가 부족하게되면 iPhone은 해당 앱을 자동으로 종료시킬 수도 있으니 주의해야 한다.
모바일 환경에서 사용자의 입력도구는 상당히 제한적이다. 물리적인 키보드와 마우스가 없기 때문이고 스크린의 크기도 데스크탑이나 노트북에 비해면 매우 협소하기 때문이다. 더군다나 Text입력을 위한 가상 터치 키보드가 뜨면 거의 화면의 절반을 차지해버린다. 하지만 iPhone은 이런 제약점을 극복할 수 있도록 도와주는 효과적 UI와 디자인 도구를 지원한다.
모바일 환경 중 가장 극복하기 힘든 부분은 소형의 밧데리로 공급되는 전원이 제한적이라는 점일 것이다. iPhone의 SDK는 이런 문제점을 보완하기 위해 전력을 가장 많이 사용하는 CPU 부분의 전원 공급을 효율적으로 조절하는 기능 제공한다. 이로서 iPhone의 배터리가 금방 소모되어 버리고 마는 현상을 줄일 수 있다.
다른 모바일 플렛폼들과는 다르게 iPhone은 "one-application-at-a-time"이라는 정책을 고수하고 있다. 이말은 서드파티가 개발하는 앱은 Apple's Mail 이나 전화기 프로그램처럼 백그라운드로 실행될 수 없다는 것을 말한다. 여러분이 작성한 프로그램은 한번에 하나 씩만 실행되어야 한다. 이것은 단점이자 큰 장점이 될 수도 있는 문제인데 아무튼 이런 제약 덕분에 iPhone의 플렛폼은 더욱 가벼워지고 확실한 안정성을 보장 받을 수 있게되는 것이다.
마지막으로 iPhone 프로그램을 설계할 때는 사용자가 앱의 실행을 중단하고 나중에 다시 실행하더라도 마지막에 저장된 상태나 자료들이 신속하게 복원될 수 있도록 해야하는데 이것은 모바일의 특성상 사용자가 어떤 상황에 처했을 때에(예를 들어 친한 친구가 갑자기 나타났다) 앱의 실행을 중단하더라도 상태나 자료가 손실되지 않는 다는 믿음에 가질 수 있도록 해야하기 때문이다.

