備忘log

스마트폰 OS의 양대 산맥. iOS 와 안드로이드.
(M$에서 들으면 섭섭하려나? ㅋㅋ)
사용자 입장에서도...
전혀 다른 플랫폼인지라 각각의 호불호가 극명한 OS들이다.

일반 엔드 유저들이 직접 사용하는 프로그램의 코딩은
이제 다시는 안한다 라고 생각을 했지만....
단순한 호기심 때문에 시작한 iOS 기반의 어플리케이션(이하 앱) 개발.
그리고 역시나... 호기심을 바탕으로 회사일 때문에 최근에 맛을 보게 된
안드로이드 개발 환경.
이 두 환경에 대해 그간 느꼈던 것을 기록해 남겨 두려 한다.

먼저, iOS 앱 개발 환경.
사용자 삽입 이미지

[ Xcode 3.2.5 + iOS 4.2 SDK 환경에서 iPAD 용 그림판 앱 제작 화면 ]

당연한(?) 이야기 이지만, iOS용 앱을 만들기 위해선... 맥이 필요하다.
아니, 정확히 말하면 MacOS 10.6 버전이 필요하다.
아직도 쓰시는 분들도 많이 계시겠지만...
PowerCPU 가 장착된 파워맥이나 파워북에서도 XCode 가 설치는 된다.
Xcode 란 넘은 OSX 용 프로그램 개발할 때도 쓰이기 때문에 당연히 설치가 된다.
Xcode 는 통합개발환경이고 여기에 SDK(Software Development Kit)을 설치하여
개발 환경을 완벽하게 갖추게 되는데,
iOS SDK 는 MacOS 10.5.x 에는 설치가 되지 않는다.
반드시 10.6.x 를 준비하여야 하는데, 또 이 버전은 인텔CPU 기반의 맥에만 설치가 된다.
본인 역시... 그러한 이유로....
씽크패드를 팔아 묵고 iMac 27인치 짜리 두 대를 사서
하나는 회사에, 하나는 집에 두고 쓰고 있다.

암튼...
Xcode 나 iOS SDK 는 애플 개발자 홈페이지에서 간단한 등록 절차만 거치면
무료로 누구나 다운 받을 수 있다.
용량이 상당히 크기 때문에 인내심을 가지고 다운을 받고 설치를 마쳤다면
준비는 '반 이상'은 끝낸 셈이다.
왜.... 어째서.. '완전'히 마친게 아니라 '반 이상' 마친 것일까...

iOS 기반의 디바이스(아이팟/폰/패드)에 자신이 제작한 앱을 쑤셔 넣기 위해서는
'돈'을 지불해야 한다.
iOS SDK에서 에뮬레이터를 제공을 하지만... 에뮬은 어디까지나 에뮬일 뿐...
자신이 애써 만든 앱을 자신의 디바이스에 넣어 보지 못 한다는게 말이 되나.
그리고 정확한 테스트를 위해서도 반드시 실제 디바이스는 필요하다는 것은
말할 필요조차 없을 것이다.

1년에 99USD 였던가?
등록비용을 지불하고 (아 쉬밤바. 이거 처리 해 주는데도 거의 하루 정도 걸리더라.)
등록이 완료되었다는 메일을 받으면 테스트용 디바이스의 일련 번호를 등록해 주면...
비로소 앱 개발 준비가 완료된 것이다.
(디바이스 등록은 계정당 폰/팟/패드 구분 없이 100개까지 등록이 가능하다.)

Xcode 는 동작이 가볍다.
하드디스크를 차지 하는 용량 자체는 크지만
OSX에 최적화가 잘 되어 있어서 그렇게 무겁다는 느낌은 받지 못한다.
에뮬레이터 역시 바리바리 잘 뜬다.
좀 귀찮긴 하지면 클릭질 몇번의 설정으로 멀티터치 역시 에뮬레이터에서 확인이 가능하다.
그러나...
어찌 보면 가장 많은 시간을 할애해야 하는 소스 코딩하는 환경, 다시 말해 에디터는...
다른 개발환경에서 제공하는 에디터에 비해서 아쉬운 점이 많다.
검색/치환 기능이랄지, 하나의 편집창 안에 탭으로 구분이 안되고
드랍박스에서 일일이 눌러서 찾아야 한다는 점.
현재 커서의 라인:칼럼 위치를 색상으로 구분을 못한다는 점 등...
어찌 보면 많은 다른 플랫폼의 개발 환경에 익숙한 개발자들에겐
불편할 수도 있는 요소들이 많이 눈에 띈다.

그럼 이제 안드로이드 앱 개발 환경에 대해서도 한번 노가리 까 보자.
사용자 삽입 이미지

[ 이클립스(헬리오스) + 안드로이드 SDK 환경에서 간단한 메모장 앱 제작 화면 ]

역시나... 많은 분들이 알고 계시 듯...
안드로이드 앱은 자바 기반이다.
자바에는 훌륭한 개발환경인 이클립스(Eclipse) 라는 것이 있다.
아.. 이넘.. 막강하다. 죽여 준다.
자바의 장점이자 강점이 플랫폼에 독립적인 것인데...
이클립스 역시 다양한 플랫폼과 개발환경을 지원한다.

그러나... 이 장점이 단점으로도 작용한다.
일단, 플랫폼에 독립적이라는 말은 다시 말해 여러 플랫폼에서 동일하게 돌아간다는 이야기인데
시간과 비용이 충분하다면 OS단에서 지원해 주는 라이브러리를 사용하면
실행시간, CPU 로드, 메모리 소모 면에서 적은 리소스로도 실행시킬 수 있다.
하지만 현실은 그러하지 않기 때문에...
유지 보수를 위해서 별도의 라이브러리를 적용을 하게 되고
모든 OS에 맞춰 최적화 하기가 현실적으로 힘들기 때문에
프로그램이 무거워 질 수 밖에 없다.
그래도 이클립스 자체는 최적화가 꽤 잘 된 프로그램이라 할 수 있지만...
정작 가장 중요한 JDK 자체가 무겁기 때문에 전체적으로 무겁다는 느낌을 지울수가 없다.

그 뿐만이 아니라...
모든게 클릭 몇번으로 해결되는 Xcode 나 비졀스튜디오와는 달리
이클립스를 이용한 자바 관련 개발 환경을 꾸미기 위해서는
몇단계의 과정을 거쳐야만 한다.
JDK의 다운로드 및 설치, 환경 변수 설정, 이클립스 설치, 안드로이드 SDK 설치 등...
그리고 안드로이드 기반의 디바이스도 종류가 참으로 다양하다.
그렇기 때문에 에뮬레이터를 구동하기 위해서 가상 기기인 AVD 를 설정을 해 주어야 한다.
(가장 중요한 것이 해상도. 기기마다 액정크기나 지원되는 해상도가 상이하기 때문이다.)
그리고 이 에뮬레이터 역시 상당히 무겁다.
CPU 사용량이 iOS 디바이스 에뮬레이터에 비해 월등히 높다.

안드로이드 OS 자체가 오픈소스 라는 것 역시 단점으로 작용할 소지가 있다.
본인 개인적으로 오픈소스 자체는 지지하는 입장이지만
보안적인 측면에서 OS나 개발툴 같은 것들의 오픈소소는 반대하는 입장이다.

그러나...
프로비저닝 등 까다로운 배포 절차를 가진 iOS 앱 개발환경에 비해서
이도 저도 필요없이 디바이스 자체를 USB로 연결하기만 하면
RUN 시키는 것 만으로 앱이 디바이스에 바로 쑤셔 박히는
안드로이드 개발 환경이 더 편한 것 같다.
한 컴퓨터에서 여러개의 iOS 용 앱을 만들면 테스트 단계에서
프로파일 관리하는 것이 다소 귀찮기 때문이다.

그리고 이클립스라는 막강한 개발 환경... 멋진 소스 편집기...
강력한 검색/치환 기능 등은
이미 전세계의 무수히 많은 개발자들의 의견을 수렴해 만든
최고의 개발툴 이라는 이름값을 하는 것 같다.

전혀 다른 기기인 만큼..
개발 환경 역시도 차이가 많이 나는 것 같다.
Objective C 와 JAVA..
둘 다 객체지향언어이긴 하지만... 문법 역시 차이가 많이 나기 때문에
어느게 좋다 나쁘다 라고 말할 수... 그리고 말할 필요도 없는 것 같다.
서로의 태생이나 목적이 완전히 다르기 때문이다.

ANSI C 신봉자인 본인은 객체지향이 아닌 객체를 '지양' 하는 주의이기 때문에
그나마 조금 덜 객체지향 언어인 Objective C 가 더 맞는 것 같다.

뭐.. 하고 싶은 이야기는 대충 다 한 것 같고....
끝으로.... 간혹 소셜 네떡 사이트에서 특정 진영을 완전히 까는 양반들을 자주 접한다.
제발 좀 그카지 말자!
하기 싫음 하기 싫다고, 하고 싶은데 능력이 안된다고... 솔직하게 이야기 하자.
어차피 둘은 언넘이 좋고 언넘이 나쁘다 라는 비교 자체를 할 수 가 없다.
걍 목적에 맞게, 자신의 패러다임이나 스타일에 맞게 선택하면 좋지 않을까 싶다.

꽤 장문인 이번 포스팅...
끗!!!
2011/01/05 00:52 2011/01/05 00:52

trackbacks

trackbacks rss

http://blog.piano000.net/trackback/139


facebook comments


  1. 김재원 2011/02/13 09:15
    M/D R
    시시껄렁한 아이디어만 몇 개 있고, 프로그래밍에 P자도 모르는 저 같은 사람에겐 둘 다 그림의 떡이지만, 두 체제의 특성에 대해 이해가 잘 되네용. 좋은 포스팅 이리 저리 공유합니다. ^^
    • M/D
      아.. 그냥 주관적인 생각을 적은
      시시껄렁한 포스팅일 뿐인데,
      좋은 포스팅이라니요.. ㅎㅎ
      부끄럽습니다.
      주말에는 방문자가 적은 편인데
      오늘은 좀 높은거 같아 왜 그런가 했습니다. ㅋㅋ
  2. Landvibe 2011/05/18 17:33
    M/D R
    잘 읽었습니다.
    xcode 설명에서 "하나의 편집창 안에 탭으로 구분이 안되고..."라고 하셨는데요,
    저는 xcode 3점대 version를 쓰는데 되더라구요~
    • M/D
      뻘글에 댓글까지 달아 주시고..
      감사합니다. ^^

      저 역시도 xcode3 를 사용하고 있는데,
      하나의 창 안에 여러개의 탭으로 나눠져 있는게 아닌
      하나의 창에서 히스토리 개념으로 여러 파일을
      불러와서 편집이 가능한게 아닌가요?

      개발환경 이라는 걸로만 비교했을 땐
      아무래도 이클립스가 훨씬 더 낫지 않나 싶습니다. ㅎㅎ
  3. 서광석 2012/05/17 15:58
    M/D R
    앱 개발에 대한 총체적인 자료가 필요했는데 많은 도움이 되었네요 모바일 쪽은 이번이 첨이라 이것저것 찾아보는데 IOS가 맥 기반에서만 돈다는건 생각지도 못했던 사실이네... 이런 초보적인 사실을 간과하고 넘어갈뻔해서 다행이네요 많은 도움을 주셔서 감사합니다

Leave a Comment