최근에 SWx Monitor를 모처럼 업데이트하면서 이 앱에 관한 글들을 계속 올리고 있습니다. 오늘은 SWx Monitor와 IDL의 관계에 대하여 소개하려고 합니다. 앱을 실행하면 처음에 다음과 같은 스플래쉬 화면이 뜨는데 여길 보면 "Powered by IDL"이라는 문구가 당당히 걸려있습니다.
물론 이러한 문구를 걸어놓은 이유는, 최근에 2회에 걸쳐 소개했듯이 이 앱내에서 표출되는 그림들이 모두 IDL로 생성되고 있기 때문입니다. 물론 앱 자체는 iOS 기반이므로 당연히 Objective-C로 코딩되어 있습니다. 하지만 이 앱 자체는 표출그림들을 직접 그리지 않고, IDL이 어디선가 그려서 생성해놓은 그림파일들을 링크만 해서 보여줍니다. 이와 같은 내부적인 흐름에 관하여 조금만 더 자세히 소개를 드릴까 합니다.
바로 앞에서 제가 강조한 "어디선가"라는 문구에 대하여 좀 더 자세히 설명을 하면, 제가 몸담고 있는 (주)에스이랩에는 이 SWx Monitor의 운용을 위하여 마련된 서버 PC가 있습니다. 대단한 것은 아니고 그냥 윈도우즈 7이 깔려있는 일반적인 PC입니다. 물론 이 PC에는 IDL 8.1이 설치되어 있습니다. 그리고 SWx Monitor에서 표출될 그림들을 그리는 역할을 하도록 제가 짜놓은 IDL 프로그램이 따로 있습니다. 이 프로그램은 "SWx Updater"라는 이름이 붙어있는데, 크게 다음과 같은 세가지 역할을 합니다.
1. 각종 SWx 관련 raw data들을 제공하는 FTP 또는 HTTP 사이트들에 접속하여 필요한 raw data를 다운로드받는다
2. 다운로드받은 raw data를 사용하여 표출용 이미지들을 PNG형식의 파일들로 생성한다
3. 생성된 이미지 파일들을 (주)에스이랩의 웹서버상에 업로드한다
이 모든 과정들을 주기적으로 반복합니다. 이러한 작업들의 수행주기는 자료 종류별로 약간씩 다르지만 대개 30분~1시간 정도로 설정되어 있습니다. 최근에 2회에 걸쳐 올렸던 게시물에서 대략적인 과정은 소개한 바 있습니다.
그리고 막상 SWx Monitor 앱에서는 특정 이미지를 보기 위하여 버튼을 터치하면 앞서 기술한 웹서버상의 해당 이미지 파일의 내용을 가져와서 보여주게 됩니다. 이러한 작업의 내막을 좀 살펴보면, 앱의 소스코드상에서 NSData라는 클래스의 자료에 해당되는데 이 클래스가 내장하고 있는 initWithContentsOfUrl이라는 메서드를 사용하여 웹서버상의 이미지 파일의 내용을 가져오는 방식으로 진행됩니다.
다음 그림은 SWx Monitor의 운용을 위한 전체 시스템을 도식적으로 나타낸 그림입니다. 생각보다는 그리 간단치만은 않은 작업이라는 것을 그림만 봐도 쉽게 짐작할 수 있습니다.
사실 iOS 기기 자체만으로 raw data들을 다운로드받고 그림을 생성하는 과정까지 다 소화하기는 버겁기 때문이 굳이 이러한 과정을 거칠 수 밖에 없습니다. 아마도 상당수의 스마트폰 앱들이 이와 비슷한 운용방식을 갖고 있을겁니다. 예를 들면, 제가 알기로는 아이폰앱들 중 국내 아이폰 도입 초창기에 매우 많이 애용되었던 서울버스 앱의 경우도 그 앱에서 표출하는 내용들은 사실 그 앱 개발자가 자택에서 운영하는 서버가 있어서 그 서버에서 서울시의 버스운행에 관한 원시자료들을 받아서 가공하는 작업을 하고, 앱 자체에서는 그렇게 가공이 끝난 자료들을 보여주는 방식으로 운영되었던 것으로 기억합니다. 그래서 자택에서 서버를 24시간 운용하다보니 그 운용비가 개인이 감당하기에는 너무 부담이 컸기 때문에, 원래 앱 자체는 무료였지만 이러한 비용 감당에 도움이 될까 해서 개발자가 앱내에 iAd 광고를 삽입을 했는데 그것때문에 일부 유저들에게서 초심을 잃었다는 둥의 터무니없는 비난을 받고 이걸 또 감당하기 힘들었는지 다시 광고를 내린 적이 있습니다. 사실은 이와 같은 나름 눈물겨운 사연이 있는데 말이죠. 저도 당시 그 모습을 보고 열받아서 앱 개발자에게 10달러를 기부했던 적이 있습니다.
갑자기 얘기가 딴 곳으로 새어버렸는데, 하여간 SWx Monitor는 기업차원에서 운용되기 때문에 원시자료의 가공 역할을 하는 서버의 운용에 있어서 개인의 희생이 요구되는 경우는 아닙니다. 그렇기 때문에 무료 앱으로의 운영도 가능한 것이겠지요. 앱을 사용하시면서 이러한 점들은 그냥 한번 생각해주시면 고맙겠습니다. 그리고 차후에 앱의 UI를 좀 더 세련되게 바꿔볼 생각으로 다시 공부를 좀 하고 있는 중입니다. 정확히 언제가 될지는 장담못하겠지만, 많은 기대와 성원 부탁드립니다.
※ 그래도 명색이 글로벌 앱이라서 이 내용은 영문으로도 올려야 할 것 같네요. 앱 내에 Support Web Site를 여기로 해놓았기 때문입니다. 조만간 영문버전도 올리겠습니다.
'SWx Monitor' 카테고리의 다른 글
꽃보다 청춘 오로라에 관하여 (0) | 2016.01.28 |
---|---|
SWx Monitor의 근황에 관하여 (Recently about SWx Monitor) (0) | 2012.01.16 |
SWx Monitor 버전 업데이트 (0) | 2011.12.07 |
SWx Monitor 그림 수정 업데이트 (0) | 2011.09.26 |
2011년 3월 8일 태양 폭발현상 (0) | 2011.03.08 |