본문 바로가기

카테고리 없음

첫번째 아이폰 프로젝트를 끝냈다. (웹노가다 안녕)

아이폰, 사실 프로젝트라고 하기에는 일한 단위가 한달로 적지만, 아이폰 개발자가 되기로 마음먹고 무려 3개월 백수생활 독학하고, 아이폰 개발자를 내걸고 시작한 첫번째 일이 끝났습니다.

첫번째 일이 아예 아이패드 일이었습니다. 기존 아이폰 어플을 아이패드 어플로 포팅하는데 특정 모듈을 담당했습니다. 이게 처음 설계부터 개발이 들어간게 아니고 일이 빵구가 나서 땜방으로 찾은 개발자가 저 였습니다. 그래서 번갯불에 콩구워먹듯 일하면서 많이 고생했습니다.

제가 아이폰 개발자로 전향한 몇가지 이유가 있습니다. 그래서 예를들면 '내가 아이폰 개발자로 전향한 이유'의 제목으로 제대로 포스팅하려고 했지만, 바쁘고 귀찮아서 미뤘습니다. 제가 아이폰 개발자로 전향한 가장 큰 이유는 이겁니다. '웹노가다 탈출~!'

정말이지 자바 좋아하고 열심히 공부했지만 자바 개발자하면 결국 웹프로젝트가 제일 많습니다. 저는 자바 서버나 프레임워크 개발자로 경력을 특화하려고 했지만, 결국엔 웹노가다질로 빠집니다. 가장 마지막 웹프로젝트에서는 신입때 짜던 조회/수정/삭제/등록 게시판을 만지작 거렸습니다. 제 생각에 자바 개발자로 특정 고급 분야로 특화하기란..정말 불가능하지 않나요?

요구사항 분석부터 개발까지 제대로 된 프로젝트는 아니었지만 어쨌든 첫번째 일을 끝나고 느낀점을 메모 적듯이 적어 봅니다.

- 빠듯한 일정속에 종종 '넘사벽'을 느끼곤 했다. 시간만 주어지면 왠만한 문제는 해결하는데 이건 도저히 해결기미가 안보이는 무거운 압박감이 나를 엄습했다. 그런데 '넘사벽'의 문턱을 경험했던 이슈는 기술적인 문제보다는 xcode 주변 환경 문제가 컸다. 딱부러지게 설명하기는 어려운데 xcode는 빌드/클린으로는 해결안되는 민감한 컴파일 환경특성을 타곤한다. 이게 알면은 문제 없는데 모른상태에서는 아무리해도 해결이 안되니깐 엄청나게 답답했다.

- 처음 아이폰 개발할때 오브젝티브C나 코코아API등의 기술적인것도 잘알아야 되지만 xcode사용법이나 애플 인증서, 프로파일 얻는 방법등의 주변환경에 대해서도 잘 알아는 것이 중요하다.

- 처음 약간의 굴욕도 받았다. 이런 기능을 구현해야 한다길래 API를 찾아보고 안될것 같다고 하니깐, 상대편 개발자가 이러이렇게 구현하면 된다고 조용히 그러나 전체 메일로..ㄷㄷㄷ.. 알려준적이 있다. 상대편 개발자는 나보다 어리고 총IT경력도 적은것 같지만 일을 나보다 잘한다. 나중에는 그 덕도 좀 보긴 했다.

- 아이폰하고 아이패드하고의 차이점이 거의 없다. 같은 오브젝티브시로 거의 똑같이 돌아간다. 다만 아이패드 XIB(UI VIEW)가 아이폰보다 월등히 커서 내 작은 노트북 화면을 가려.. 개발하기 약간 불편했다.

- 내가 좋아서 얻은게 아니고 일 때문에 아이패드를 만져보니 아이패드에 별로 정이 안갔다. 프로젝트 테스트말고는 아이패드 거의 손을 안댔다.

- 아이폰은 거의 누구나 써서 장비 테스트가 쉬운데 아이패드는 누구나 없고 당시 정식발매도 안되서 귀했다.

- xcode가 이클립스보다 훨씬 가볍고 빠르나 무언가 설명하기 힘든 환경특성을 많이 탄다. 내가 만진 모듈이 여러 라이브러리를 같이 컴파일 하느라 문제가 종종 발생했다. 그런데 한번 알면 그 상황에 대처할 수 있을 것 같다.

- 자바에서 아이폰개발자로 전향하는것보다 C개발자에서 아이폰개발자로 전향하는것이 좀 더 쉬운것은 사실이나, C개발자가 오브젝티브C에 익숙하기까지도 쉽지만은 않다고 그들이 말한다. 오히려 자바개발자라면 객체지향 개념에서 덕을 더 볼수도 있다.

- 나를 평균적인 실력을 가진 개발자라고 봤을때 아이폰개발자로 전향하는데 3개월 걸렸고(안드로이드등 다른 공부도 같이 했지만...), 지금 하나 일끝내고 생각하면 여기 진입장벽이 꽤 있는것 같다. 아니면 나만 좀 어려웠을수도 있다. 대신 진입장벽을 넘으면 개발하기가 웹노가다 보다는 훨씬 편하고 재미있다.

- 아이폰/아이패드 UI작업은 정말 웹노가다에 비하면 엄청 빨리 끝나고 간단하다.

일단 스쳐가는 생각을 적어봤고요. 사실 숨이 턱턱 막히는 '넘사벽'의 문턱을 종종 경험했는데 이 대부분이 xcode 컴파일 환경 특성 때문이었고..이걸 해결하면서 많은 경험 얻었네요. 그리고 Objective C나 API, xcode등에 익숙하기 까지 진입장벽이 좀 있는것 같은데..(저는 그랬습니다..;) 이 진입장벽을 넘으면,

웹노가다를 탈출했냐고 되물어본다면, 분명히 웹노가다를 탈출할수 있었습니다~! UI작업도 많이 했는데 웹노가다보다는 훨씬 빠르고 편하게 개발했습니다. 다 거기서 거기라고 꿈깨라는 말도 들었지만 틀릴수도 있습니다.

뭔가 비유를 한다면은.. 아이폰 개발을 하는것을 웹프로젝트에 비교한다면 '모든 웹프로젝트에서 무조건 스프링 프레임워크를 똑같이 쓰는것과 같다' 라고 표현할 수 있습니다. 사실 아이폰 개발환경이나 안드로이드나 스프링 처럼 견고한 프레임워크 위에서 개발하는것이죠~! 반드시 이런 좋은 프레임워크 위에서 개발해야 하니 표준성도 높고 개발생산성도 스파게티 웹프로젝트보다는 훨씬 좋습니다.

그래서 일단 웹노가다를 탈출해서 기쁩니다. 그런데 HTML5가 활성화되면 다시 웹노가다 해야 하나요...HTML5는 좀 프로그래밍스러울까..

개인 어플도 오픈해야 하는데 거의 다 만들어놓고 최적화 작업한다고 계속 미루고 있습니다. 좌우지간 좀 빡씬 첫번째 아이폰 일을 끝내니 후련합니다~!

[일 때문인지 별로 정이 안갔던 아이패드와, 새색시 흰둥이에서 후줄근하게 변한 맥북,
그러나 일이 끝날때쯤 슬슬 욕심이 나던 아이패드]