'Trivial ideas' 카테고리의 글

항공택배5

[관련기사] http://www.ktpress.co.kr/news/article.html?no=15815

기사들을 좀 훑어 보다가, 금호아시아나그룹이 대한통운을 인수하면서 새로운 항공기 택배서비스를 런칭했다는 기사를 봤다. 그런데 브랜드가 ‘항공택배5′라니… 이 무심한듯 시크한 브랜드를 만든 사람은 초고단수이거나 많이 귀찮았던 모양이다;

왠지 ‘지나가던 행인 2′라든지 이런게 연상이 되는구나…-_-;

Xcode

코드를 만드는 일이 어느새 업이 되다보니, 이걸 취미로 하기에는 다소 심리적인 거부감이 있는게 사실이다. 가수들이 제일 싫어하는게 같이 노래방 가서 자기 노래 시키는거라던데?-_- 여하튼 그런 중에도 예외가 있으니 바로 ‘돈이 되지 않는’ 코드를 만드는게 바로 그런거다. 아무리 만들어도 돈으로 환산되는 가치가 없으니 이 얼마나 비생산적-소비적이고 취미스러운가!(?)

여기에 다른 한 가지 조미료로 좀 더 마이너한 플랫폼에 마이너한 언어를 고르면 보다 취미로서 손색없는 모양을 갖출 수 있다. 참, 오픈소스 프로젝트에 기여한다든지 하는 선택도 가능하겠지만, 내 취향엔 아무래도 플랫폼 오덕;이 좀 더 맞는 것 같다.

 

주로 작업하던 것과 다른 플랫폼에서 돌아가는 뭔가를 취미로 만들 때의 첫 번째 고려사항은 아무래도 그것이 돌아가는 환경을 내가 가지고 있는지가 될것이다.

학교를 병행하면서 졸업프로젝트에 참여하다 보니, 다른 프로젝트 팀들은 위피라든지 안드로이드라든지 다른 플랫폼을 타겟으로 잡아놓고 에뮬레이터를 띄워가면서 고생하던데, 개인적으론 그걸 무슨 재미로 하는지 모르겠다. 같은 관점에서 학교에서 어셈블리를 배울 때 인텔 어셈블리를 배울 수 있었던건 좋은 기회였다. 가르치기 좋다고 ARM 에뮬레이션 환경에서 많이 하던데, 아무래도 내가 이 머신을 실제로 쓰고 있다는 쾌감(이렇게 얘기하면 좀 이상한가-_-)이 없다는건 아무래도 아쉽게 느껴진다.

성취감면에서도 가시적으로 피드백이 바로바로 오는 편이 즐겁지 않을까. 여담이지만 이전에 다니던 회사에서 버스 광고를 집행할 때, 광고 타겟층의 유동이 별로 없어 보이는 회사 근처 노선들에 광고가 붙어 돌아 다니는걸 보면서 관련 업무를 하는 사람의 프로페셔널하지 못함에 개탄한 적이 있었는데, 어쨌거나 그 사람은 그걸 보면서 뿌듯하지 않았을까. 그게 일로 한게 아니라 취미였다면 좋았을텐데;

최근에 비슷한 느낌을 받은게 미국산 쇠고기 수입을 반대하는 자발적인 신문 광고들이었다. 주로 경향신문이나 한겨레에 광고가 실리는데 이래서야 광고를 통해서 반대하는 사람들의 결속을 높이는 효과가 있을진 모르겠지만, 왜 반대하는지 모르는 이들에게(주로 조중동을 보는 경우가 많으니) 수입 반대의 취지를 알린다든지, 이 분(link)께 목소리를 전한다든지 하는 의도는 거의 실현 효과가 없는게 아닐까.(물론 광고단가라든지 하는 문제가 있는건 알지만)

여담이 너무 길었는데, 어쨌거나 취미라면 전혀 문제가 되지 않으니 역시 눈에 보이는 일을 하는게 즐겁다. 그러려면 내가 가지고 있는 플랫폼 중에서 고르는게 유리하다.

 

다른 환경에서 개발을 할 때, 우선 가장 망설여 지는 부분이 개발 편의성이다. MS의 플랫폼과 개발툴들은 이런 저런 불평도 많이 듣긴 하지만, 막상 대안을 찾아보면 그만한 환경도 찾기 힘든게 사실이다. 예를 들어 리눅스가 대변하는 오픈소스 환경을 개발툴들은 분명히 대부분의 기능들을 완전하게 제공하긴 하지만 ‘편하게’되지는 않는다. 이 편하다라는건 다분히 주관적이고 익숙함의 문제도 있으니 개인적인 견해로 하자. 여담이지만 리눅스 데스크탑이 성장 못하는 이유도 개인적으론 편하지 않기 때문이라고 생각한다. 무슨 기능이 안 되고…의 차원이 아니라 User Experience의 문제가 주요하다.

여하튼 Xcode로 맥에서 돌아가는 코드를 만드는건 이런 전제 조건들을 잘 충족시켜 준다. Xcode는 기본적으로 GCC+GDB와 연동되는 IDE이면서 점유율이 높은 툴들과 유사한 인터페이스를 가지고 있어서 쉽게 적응할 수 있었다. 별도의 플러그인 없이 기본 환경에서도 Syntax coloring이라든지 지원되는 자동완성 기능은 꽤 쓸만하다. Subversion이나 CVS 클라이언트 기능이 기본적으로 IDE에 통합 돼 있는 점도 마음에 든다. 무엇보다 공짜! 소프트웨어 벤더가 부족한 애플로서는 대안이 없으니 그랬겠지만, 코드워리어 같은 상용툴을 써야 했던 과거에 비해서 개발하는 입장에서는 부담이 없어서 좋은게 사실이다. 게다가 맥북에서 Mac OS X을 주력으로 열심히 쓰고 있으니 취미로 코딩하기 적합한 요소들을 두루 갖추지 않았는가.

 

Xcode를 쓰기 편한 이유 중 하나는 비쥬얼한 디버깅 환경을 제공하는 것이다. GDB 기능이 좋은건 인정을 하지만, 솔직히 커맨드로 브레이크 포인트 잡고 스텝을 진행하는게 편하다고는 못 하겠다.(익숙해질 지언정) Xcode는 GDB를 사용하지만 VS와 같은 IDE와 마찬가지로 비쥬얼하게 상황을 보면서 디버깅이 가능하다. 디버깅이 불편한 개발환경에서는 뭔가 만든다는것 자체가 고통스럽다.

C++를 사용하는 경우 STL 컨테이너의 원소값을 보는게 좀 어려운데, GDB 스크립트를 IDE에 연동해서 적용 가능한 방법이 있는지 알아봐야겠다. VC는 8.0(2005)부터 스크립트 개념의 Visualizer가 적용 돼 있어서 이런 것들을 디버깅 할 때 좀 더 가시적인 데이터로 가공 해 주는 기능이 적용되어 있다.

분산빌드나 리모트디버깅도 지원을 하는데, iPhone SDK를 이용해서 개발하는 경우에 iPhone/iPod Touch를 붙여서 리모트디버깅 하는 것도 가능하다.

 

같이 포함되어 있는 기본 분석 툴들이 상당히 좋다. 메모리나 오브젝트 할당, 파일IO, 하드웨어 모니터, CPU 샘플링 같은 프로파일링 기능들을 일목요연하게 정리해 놓았다.

Visual Studio 패키지에서 가장 아쉬운 점이 프로파일링 툴이라 별도의 솔루션들을 따로 구입해서 쓰곤 하는데, Xcode에 포함 된 툴들은 적절히 사용하면 별도의 상용 솔루션이 필요없을 정도로 강력한 기능들을 제공한다. DevPartner나 VTune와 유사하게 프로파일링이 가능하고, 이런 상용 솔루션들 보다 나은 부분들도 많다.

그 외에도 OS X의 플랫폼 중 하나인 Cocoa의 주 언어인 Objective-C 2.0의 바뀐 스펙(GC, Property, For-each같은 것들)을 보는것도 재미있다. (Obj-C는 C++보다도 C의 Superset이라는 인상이 강한데, GC가 적용되면서 malloc을 하고 free하지 않아도 된다든지 하는 재밌는 경우가 생겼다)

습작들

취미로 하던 코딩은 어느새 밥벌이가 되어버리고, 사진 찍는건 이제 웹서핑처럼 더 이상 취미라고 하기가 애매해져서(이런 것들은 이제 생활?), 고민하다 찾은 취미가 곡을 찍는 것.(곡을 쓰는게 아니라)

시작한지 대략 1년쯤 된 것 같은데, 평소 ‘취미는 끌릴 때에만 할 수 있어야 취미’라는 지론에 충실하다 보니 결과물이 양적으로나 질적으로나 미흡하다.

계정을 정리하다가 mp3 파일들이 몇개 보이길래 기록으로 남길겸 해서 적어본다. 시퀀서 사용법 익힐겸 만들어 본 것들이어서, 아직도 1호곡은 만들지도 않은 셈; 만들어진 순서는 역순.

지난 글들 »