내가 가지는 개발자로서의 기본 성향

아래 글은 IBM에 재직 중이던 2014년 2월 25일 밤에 서식 중이던 모바일 커뮤니티에 썼던 글입니다. 예전 자료를 찾다가 발견했는데, 지금도 별반 다르지 않은 것 같아서 옮겨 봅니다.


음. 그냥 이런저런 잡생각도 나고 해서 자기 전에 지껄여 봅니다.

사실 저는 예나 지금이나 기술적으로 대단한 위치에 있는 고수이거나 그런 사람은 아닙니다. 단지 저는 개발에 있어서 몇 가지 장점을 가지고 있는데, 이 장점이 일반적으로 고수라고 불리는 사람들에게서는 찾기 힘든 것이기에 지금까지 용케 살아남을 수 있었다라고 생각합니다.

보통 고수의 반열에 오르거나 그러기를 바라는 개발자의 경우

  • 남의 소스 별로 안 좋아 합니다. 읽는 것도 싫어합니다.
  • 밑바닥의 아키텍처에는 관심이 많으나 유저 인터페이스 쪽에는 소질이 없습니다.
  • 기능 구현이 우선이고, 외관은 나중이라고 생각합니다.
  • 이것저것 뜯어 고치는 것 좋아합니다. 남이 해 놓은 대로 쓰는 거 싫어합니다.
  • 남이 해 놓은 것 보고 이건 어떻게 했을까 궁금해 하고 파헤치는 거 좋아합니다. 그거 돈 안 되어도 별로 상관 안 합니다.
  • 리눅스를 좋아하는 경우가 많고, 윈도우는 싫어하는 경우가 많습니다.

인 경우가 꽤 많은 편입니다.

저는… 정반대의 성향을 가지고 있습니다.

  • 남의 소스를 분석하고 내가 응용하는데 소질이 있는 편입니다. 남이 망가뜨린 소스 보고 버그 추적하는거 좋아합니다.
  • 남의 기술을 내 것으로 만드는 것을 좋아하지만, 내가 할 필요 없는 건 안 합니다.
  • 유저 인터페이스를 중시합니다. 내부는 가능하면 잘 돌아가는 거 가져다 쓰는 게 안전합니다.
  • 가급적이면 모든 작업은 상업적으로 내세울 수 있는 외부 수준이 되는 것을 선호합니다. 내부 기능이야 예전에 다 만들었어도 UI 개판이면 출시 안합니다.
  • 성능이 처지더라도 더 나은 결과물을 보여줄 수 있다면 그걸 선택하지만, 같은 일을 하는데 있어서 최적의 알고리즘을 사용하려고 노력합니다.
  • 리눅스에는 관심이 없습니다. 윈도우는 예술적인 작품이라고 생각하고 있고, 소니와 MS 빠입니다.

따라서 해커쪽이랑은 정반대의 성향을 가지고 있고, 그래서 XDA나 루팅 관련된 쪽은 문외한입니다.

그럼 flyneko는 왜 만들었냐고 물어 보시고 싶으실 텐데, 간단합니다. 기존의 T-OMNIA(SCH-M480)용 커스텀 롬들이 너무나 허접하고 쓰레기 같았기 때문입니다. 기본적으로 커스텀 롬을 쿠킹하는 것은 적절하게 파일 조합해서 도구에 넣고 돌리면 튀어 나오는 것이기 때문에 기술적으로 어렵지 않습니다. 하지만 그것을 안정적으로 돌리려면 좀 더 생각을 해야 하는데, 그 당시에 쿠킹된 커스텀 롬들은 하나같이 기술적인 부분에 있어서 초하수들이 만든 것들입니다. 예를 들어 기본적인 내부 동작을 MortScript라는 스크립트 인터프리팅 툴을 이용하기 때문에 램 사용량이든 속도든 어느 하나 제대로 굴러가는 것이 없었습니다. 기껏해야 몇몇 삼성에서 만든 부가 앱 빼내고, 레지스트리 값 수정하며 노는 초보적인 것들 뿐이었으니까요.

저는 앞에서 말했듯이 기능이 다 잘 돌아가도 UI가 개판이고 성능이 뒷받침되지 않은 그런 제품을 경멸하는 사람이었기 때문에, 그것들을 쓰기는 싫고 Windows Mobile 6.5는 써 보고 싶었기에 어찌어찌 툴을 돌리는 방법과 기본적인 Windows Mobile 롬 추출 데이터의 구조를 파악하는 것에 주력했습니다. 그게 끝나고 나서 다음으로 한 일은 일단 제대로 돌아가는 롬을 순정 상태 그대로 빌드해 보는 것이었습니다. 여기까지 사흘이 걸렸고, 이 상태에서 하나씩 커스터마이징을 시작해서 관련 유틸리티를 네이티브 C/C++로 개발하고 남의 롬 데이터를 분석해서 좋은 기능은 가져다 넣고 하면서 일주일 만에 퍼블릭으로 공개한 것이 바로 flyneko의 첫 버전입니다.

뭐… 더 예전으로 돌아가서 PDA를 만지기 시작한 것은 취미가 아니라 일이 먼저였습니다. 유학에서 돌아와서 터보 C 정복 저자였던 임인건님이 사수로서 불러주셨던 첫 직장을 2년도 안 되어 말아먹고. 두 번째 직장을 찾다가 들어간 곳이 지인의 도움으로 들어갔던 직원 수 6명 쯤 되는 작은 곳이었는데, 그 곳에서 iPAQ을 처음 만져보고, 또 그런 것을 개발하는 분야가 있다는 것도 처음 알았습니다. 꽤 늦깎이였던 셈입니다.

사실 PDA 개발에 대한 서적 집필도 PDA 개발을 잘해서 쓴 것이 아니라 서적 집필을 하려고 마음 먹은 후에 대상을 찾은 것이 그 쪽이기도 합니다. PDA 관련 앱 개발은 PC 앱과는 다르게 규모가 작기 때문에 훨씬 적은 리소스를 투입해서 진행할 수 있었고, 또 그것이 혼자서 Infrev를 구축하고, 이를 기반으로 이찬진 사장에게 프레젠테이션하고 데모 버전을 만들고 이를 시작으로 드림위즈에 모바일 팀을 꾸리고 하는 일련의 일을 진행할 수 있었던 거죠. 만약 PC처럼 여러 인원이 붙어서 해야하는 일이었다면 아마 쉽지 않았을 겁니다.

일단 시작을 하다 보니 OS의 버전 업과 제 자신의 프로그래밍 스킬 업에 따라서 InSuite도 버전 업을 해 오고, 그게 무려 10년이라는 긴 시간을 끌어오게 되었습니다.

회사도 어쩌다 보니 이후 KT 산하에서 1년, SKT 산하에서만 10년을 다니고, 지금은 또 외국계 기업에서 아키텍트로서, 개발은 하지 않고 매니지먼트만 하고 있습니다. 그러다 보니 개발에서는 손 놓고 있고, 심지어는 안드로이드 폰이나 아이폰 조차 쓰지 않고 있습니다.


이 글을 쓰고 나서 얼마 안 있어 건강에 큰 이상이 생겨 IBM을 그만두었고, 다시 개발을 하기 시작했고 지금까지 계속해서 그 일을 이어오고 있습니다. 다음 주부터 새 직장에 출근하게 되는데, 이미 온라인에서 이야기를 나누고 있기 때문에 새 직장 같은 느낌이 덜하네요.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.