앱스토어 도전 1.5년

최근 앱스토어 판매 현황입니다. 앱판매는 매출의 70%, 광고는 3.3% 제외한 금액입니다.

작년 3월부터 9월까지는 작업을 거의 못했고, 10월부터 여러개의 앱을 출시했습니다.
Free Music Download Player : 해외에서 비슷한 앱이 차트에 있는걸 보고, 2주정도 작업해서 만들었습니다. 아이폰과 아이패드 동시에 작업했으며, 아이패드에서 아이폰의 인터페이스를 최대한 활용했습니다. 기존에 비슷한 앱이 있었고, 현재 미국 무료 음악차트 100위안에 20여개의 비슷한 앱이 있습니다. 하지만 UI나 기능면에서 더 잘 만들수 있다고 생각해서 만들었고, 수익도 꾸준히 나오고 있습니다.
Live Lock Screen : iOS5의 새로운 기능을 활용하여 주말 작업으로 앱을 만들었습니다. 크게 투자하지 않고 아이디어로 괜찮은 결과가 있었습니다.
구입목록삭제 : 리뷰에 올라오는 “구입목록삭제해주세요”라는 글 보고 만들었습니다. 제가 출시한 앱 중에 가장 실패한 앱인거 같네요. 처음으로 정보성 앱 만들다보니 생각보다 시간도 오래걸리더군요. 1주일 정도 걸렸습니다.
FoxTube : 유튜브 캐싱해주는 다른 앱을 보고 제작했습니다. 혹시를 위해서 12월에 애플 techtalk 행사에 가서 앱스토어 리뷰팀과 면담도 했었습니다. 기존에 있던 앱보다 더 잘 만들수 있다고 생각했고, UI도 신경을 많이 써서 만들었습니다. 아직 앱 출시한지 얼마되지 않아서 좀더 지켜봐야겠네요. 이 앱은 2달 가까이 테스트하면서 만들었습니다.
앱 다운로드 현황입니다. 현재 전체 다운로드가 400만 넘었네요. 안드로이드 벨소리 앱이 지속적으로 사용자 유입이 많네요. flurry 집계라서 정확한 수치는 아닙니다. (jailbreak, 중복 device 설치, 앱 무료 이벤트 등). 유료앱은 수치를 가렸습니다.

사용자 삽입 이미지

Ringtone Architect 안드로이드 버전은 출시후 거의 업데이트 없이 꾸준하게 사용자가 늘고 있습니다. 안드로이드가 광고 플랫폼도 다양해서 별도로 더 수익을 늘릴수 있지만 현재는 사용자 늘리는데 집중하고 있습니다. 푸쉬형 광고 넣었다가 사용자 반발로 뺐습니다. 수익은 지금의 2배 이상 날듯하더군요.
Ringtone Architect 아이폰 버전은 무료는 많이 다운로드되지만, 유료는 판매가 별로 없어서 주기적으로 무료로 전환해서 사용자를 모으고 있습니다.
Free Music Download Player 유료 버전이 무료와 거의 차이가 없어서 다운로드가 많지 않았는데, 잠시 무료로 풀었을때 30만 가까운 다운로드가 발생했고, 그 이후 리뷰가 쌓이면서 수익이 많이 올라갔습니다.
대부분의 iOS 앱에 iRate를 붙여서 사용자가 몇일 이상 앱을 사용할 경우, 리뷰를 올리도록 팝업을 띄우고 있습니다. 확실히 평점도 올라가고, 많은 리뷰가 올라오네요. 2011년 11월 29일에 별5개 1000개를 넘었는데, 3달도 안되서 이제 2000개(2012년 2월 9일)를 넘었습니다.
사용자 삽입 이미지
FoxTube와 FoxTube HD는 평은 괜찮은거 같고, 몇가지 사용자 의견 반영해서 업데이트하면 꾸준히 팔리는 앱이 될듯하네요.
매출 그래프입니다. 계속 늘어나고 있습니다. ^^

사용자 삽입 이미지

교훈 :
1. 앱스토어에서 업데이트 안하고 새 앱 출시안하면 매출 떨어짐.
2. 유료앱을 무료로 풀어서 알리는거도 때로는 효과있음.
3. 앱스토어는 차트에서 떨어지면 다운로드 급감. 안드로이드는 유입 사용자가 많아서 꾸준히 사용자 증가
4. iOS 업데이트될때 새로운 기능 이용해서 앱 만들면 효과 있음.
5. 앱판매, 국내 광고, 해외 광고, iOS/Android 등 균형있게 수익이 들어오다보니 외적인 요인으로 수익이 크게 흔들리지 않는거 같습니다.

앱스토어 도전 1년간 정리

네이버 맥부기 카페에 올린 글입니다.

안녕하세요. 몇번에 걸쳐서 제 앱에 대한 내용 올렸지만, 이제 개인적으로 애플 개발자 등록한지 1년을 맞이해서 지난 1년을 정리해보았습니다.
회사에서는 이미 앱개발을 하고 있어서, 개인으로 앱개발자 등록은 마지막에 했습니다.
2010/07/20 : 앱개발자 등록
2010/08/02 : SpeedUp Player 등록
                   1달 정도 개발했습니다.
2010/08/28 : SpeedUpTV 등록
                   SpeedUp Player 올라가고, 초기 버전은 2주정도 개발했습니다.
                   등록후 열심히 업데이트와 홍보하고 있습니다.
2010/12/24 : Ringtone Architect(iOS) 등록
                   10월초에 앱심사 요청. 심사가 아주 오래걸렸습니다.
                   다른 앱 홍보용으로 만들었지만, 효과가 크지 않고 오히려 광고수익이
                   괜찮아서 방향을 전환했습니다.
2011/04/01 : Ringtone Architect(Android) 등록
                   아이폰 버전의 선전으로 혼자 개발만 고민하다가, 지인의 도움으로
                   3주만에 만들었습니다. 저는 mp3 알고리즘과 광고 붙이는걸 하고,
                   UI는 다른분이 맡아주셨습니다.

이제 수익적인 부분 공개하겠습니다. 금액은 공개하지 않고 매출 비율만 공개하도록 합니다.
먼저 1년간 수익 비율입니다. 수익은 SpeedUp Player와 SpeedUpTV는 앱스토어 판매에서발생이고, Ringtone Architect(iOS, Android)는 광고이며, 둘다 실제적으로 제가 받는 금액을 기준으로 했습니다. 앱스토어는 매출의 70%, 광고는 3.3% 제외한 금액.

사용자 삽입 이미지
SpeedUpTV와 SpeedUp Player의 비율이 높지만 등록된지 오래되서 그렇고, 아래 그래프 보시면 점차 무료앱의 광고 수익 비율이 높아지고 있는 데이타 확인할수 있습니다.

사용자 삽입 이미지

아래는 각 앱과 전체 수익을 정리한 그래프입니다. 그래도 다행히 전체 수익은 증가하고 있습니다 :)

사용자 삽입 이미지

위 그래프에서 5월달은 Ringtone Architect(iOS)의 매출 비율이 50%를 넘었었네요. 올초에 비해서 배너광고의 수익률이 많이 줄었지만, 앱스토어의 순위 알고리즘 변경으로 꽤 오래동안 차트에서 유지되면서 수익이 꾸준히 발생하고 있습니다. 그리고 비디오 광고도 매출의 큰 역할을 했었는데, 최근에 광고 플렛폼에서 나라별로 출력제한을 해서 비디오 광고 수익은20% 이하로 떨어졌습니다. TT

현재까지 Ringtone Architect(iOS)는 65만 다운로드, 안드로이드 버전은 55만 다운로드. 짧은 기간에 비해서 안드로이드가 선전하고 있는데, 광고 수익(클릭율)은 많이 떨어지더군요. 앱 판매, 앱내 구매 등으로 추가적인 수익을 얻기 위해서 노력하고 있습니다.
아래는 광고별 매출비율입니다. 아직은 국내 비중이 압도적으로 높지만, 어떻게 보면 해외에서 큰 가능성이 있다고 볼수도 있겠네요.

사용자 삽입 이미지
1년동안 많은 것을 경험했고, 기대했던것 보단 더 이룬것도 있었지만, 지금 생각해보면 잘못된 선택도 많이 했던거 같습니다. 직접 사용자들과 소통하면서 많은 것을 얻을수 있었고, 직접 프로그래밍 이외의 다른 일들을 하면서 많은 것을 배울수 있고, 제 한계도 느낄수 있었던 시간이었습니다.

아직 앱 등록하지 않으신 분들은 꼭 도전해보시기 바랍니다.  앱스토어에 개인적으로 앱 올리고나서 많은 것을 얻을수 있었습니다.
개발자 분들 모두 화이팅입니다!

앱스토어 무료앱으로 수익

해외에서 유료앱을 홍보하기 위한 수단으로 무료앱인 Ringtone Architect Free를 만들었었는데, 제 의도와는 상관없이 한국에서 갑자기 다운로드가 많이 발생하면서 무료앱 순위권에 올라갔습니다^^ 처음에는 전혀 예상을 못했었기 때문에 adwhirl을 통해서 iAd -> admob -> house ad 형태로 광고를 출력하도록 했습니다. iAd와 admob으로 돈 벌 생각보다는 제 다른 유료앱들을 house ad를 통해서 홍보하기 위한 목적이었습니다.

한국 무료앱 순위에서 3위까지 올라갔지만, 광고 수익은 크지 않았습니다. admob에서 대부분의 광고가 영어로 나오다보니, 클릭하는 사람도 별로 없고, 클릭단가도 아주 낮습니다. 광고주한테는 좋은 플렛폼이지만, 왠만큼 사용자가 많지 않으면 큰 수익을 얻기는 힘들듯하네요.
한국에서 순위 올라가는 거 보고 몇가지 국내 광고 플렛폼을 알아보고 붙였습니다. 언어가 한국어가 아닐때는 adwhirl (iAd, admob 포함)로 연결. 언어가 한국일때는 서버 설정에 따라서 2가지 광고 플렛폼을 붙였습니다. 앱을 시작하면 서버에서 언어 세팅에 따라서 어떤 광고를 노출시킬지 가져오게 했고, 혹시 서버 접속이 안될경우를 대비해서 마지막 설정은 기억하게 했습니다.
이렇게 해서 3위한지 2주일 정도 만에 심사통과후 국내광고가 노출됐습니다– 한 일주일 정도 유료앱 판매보다도 훨씬 많은 금액이 들어왔는데, 안타깝게도 설날이 있어서 사용자가 확 줄었습니다.
나중에 업데이트하면서 국내 광고 플렛폼을 하나더 추가했고, adwhirl에서 mobclix로 갈아탔습니다. adwhirl에서 새로운 광고플렛폼 붙이기 위해서 따로 가입하고 개별적으로 입금받아야하는데, mobclix는 가입도 원클릭, 입금까지 모아서 줍니다. 다만 iAd와 admob은 똑같이 개별 지급받아야합니다.
순위권에서 밀려나면서 추가적인 수익을 위해서 지인이 알려준 비디오 광고도 붙였습니다. 비디오 광고는 클릭할때 수익이 발생하는 방법이 아니라 뷰 단위로 수익이 납니다. 벨소리 앱의 경우, 벨을 만들때 비디오 광고를 보여주고 진행하는 방식으로 붙였습니다. 배너 광고의 40% 정도의 수익이 들어오고 있습니다.
현재 100위 밖으로 밀려나고 지금 사용중인 국내 광고 플렛폼이 광고주 부족으로 9시 이후로는 광고가 출력이 안되고 있는데도… 지금 배너 광고 수익이 3위일때 admob 수익보다도 높습니다. 처음에 국내 광고를 달았다면 큰 수익이 났었을거 같습니다 TT.
느낀점 정리해봅니다.
1. 국내 사용자 대상으로 무료앱에 광고 달려면, 국내 서비스가 수익률이 좋아요. (적어도 현재는)
2. 광고 플렛폼 여러개 붙이고 테스트해보세요. 테스트 해보기 전에는 어떤 쪽 수익이 더 클지는 알수 없습니다. 클릭 단가야 어느정도 알려져 있지만, 클릭율은 달아보기 전에는 모릅니다.
3. 광고 플렛폼 동적으로 서버에서 변경 가능하도록 하세요. 아직 국내 플렛폼들이 안정화가 안되서 서버가 다운되는 경우도 있고, 광고가 없어서 출력이 안되는 경우도 많습니다. 저는 2가지 플렛폼을 시간에 따라서 자동적으로 선택해서 쓰고 있습니다.
4. 무료앱을 통해서 유료앱으로 전환은 정말 쉽지 않은거 같네요. 특히 국내에서는요. 해외에는 약간의 전환은 발생합니다.
5. 비디오 광고를 붙이고, 평점은 바닥을 긁었지만 –, 사용률과 배너 클릭률은 변화가 크게 없었습니다.
6. 단순 호기심 유발하는 앱에 비해서 유틸리티라 좀더 오래갈수 있는거 같습니다.
7. 무료 앱이라도 홍보없이는 순위 올라가기 힘든거 같네요 TT 한국외에는 별로 반응이 없습니다.

앱스토어 무료앱 도전 2개월

아래글은 네이버 맥부기 카페에 2011년 1월 19일 제가 올린 글입니다:

안녕하세요. Tip&Tech에 얼마전에 글[링크] 썼다고 생각했었는데, 벌써 한달하고 보름이 지났네요.
생각보다 많은 분들이 글 봐주시고 댓글 써 주셔서, 이런 정보가 많이 부족하다는 생각으로
제 경험들을 다시 공유해보겠습니다.

제 유료앱 SpeedUpTVSpeedUp Player가 국내와 일본에서는 어느정도 팔렸었지만,
시간이 지날수록 순위도 떨어지고 노출도 안되니 매출을 다시 올릴수 있는 방법을 찾아보고 있었습니다.
큰 돈을 투자해서 홍보할수 있는것도 아니고, 광고 했을때 그 효과를 장담할수도 없죠.
결과가 좋지 않다는 의견들이 많아서 저는 무료 앱으로 제 유료 앱들을 홍보하는 전술을 택했습니다.

먼저 사람들이 가장 관심을 갖을만하고, 제가 쉽게 도전할수 있는 아이템 선정을 했습니다.
벨소리 앱이 미국 앱스토어 순위권에 올라오는걸 보고, 비슷하게 만들어서 무료로 뿌리면
승산이 있지 않을까 하고, 구현을 했습니다. 10월 말쯤에 구현 완료해서 앱스토어에 심사
요청했지만 왜그런지 In Review 상태에 계속 머물고 있더군요. itunesconnect에 있는 내부
보고를 이용해 연락도 5번인가 했는데 자동응답 메일만 오고 아무런 진행도 안되더군요.
하여간 이렇게 계속 기다릴수 없다 판단하여, 제 유료 앱의 무료 버전을 만들었습니다.

  1. SpeedUp Player Lite : SpeedUp Player의 주요 기능은 그대로 나두고, 사용자들이 계속 쓰려면
    필요하다고 판단한 멀티태스킹과 리모콘 기능만 빼고, 광고 탑재해서 내보냈습니다.
  2. SpeedTube : SpeedUpTV를 체험해 볼수 있도록 YouTube에 있는 비디오만 속도조절해서 볼수
    있는 앱을 만들어서 올렸습니다.
  3. Ringtone Architect :
  4. 벨소리 앱은 처음에 유료로 올렸고, 무료로 전환해서 많은 사용자들을 끌어모을 계획을 하고 있었습니다.
    하지만 심사가 안되니… 초조해 지고 음악 카테고리만의 문제는 아닐까 하고, 다른 카테고리로
    바꾸고 광고 등을 넣어서 무료버전을 만들어서 다시 심사 요청을 했습니다. 이거도 역시 심사에서
    In Review 상태로 계속 남더군요. –;

하여간 심사때문에 호주에 전화도 하고, 메일도 아주 상세하게 어떤부분이 문제의 소지가 있을수 있다 라던지..
예측해서 보내고… 계속적으로 애플에 압력(?)을 가했습니다. 그래서인지, 아니면 휴가 떠나는 기쁜맘으로인지
12월 23일 벨소리 앱 2개가 동시에 심사가 통과되어버렸습니다. 두번째 올린 무료앱은 키워드도 제대로 등록
안된 상태로 나갔습니다. 유료앱은 하루 몇개 밖에 안팔렸습니다. 무료앱이 있어서 그럴수도 있었다고 생각할수
있겠지만 무료앱도 다운로드가 많이 일어나지 않았습니다. 무료버전에 iAd 탑재했는데, iAd 활성화도 안된
상태였습니다 ㅎㅎ

한글로 검색이라도 되야하기 때문에 업그레이드 하면서 “무료벨소리제작 Ringtone Architect Free”로 이름을 바꿨습니다.
그랬더니 몇일만에 국내 순위에서 막 오르기 시작하더니 전체 무료앱 3위까지 올랐습니다 :)
올라가는 속도는 유료앱 보다는 많이 느리더군요. 물론 지금은 어느정도 순위가 내려갔습니다.
현재 17만명 정도가 받았습니다. 3위 올랐을때 하루 36000명 받았었고요.. 지금은 13000명 정도로 줄고,
9~10위 정도 하고 있습니다. 아마도 20만명 정도 다운로드 넘으면 순위에서 밀려날듯 하네요.

여기까지 유료앱을 홍보하기 위해서 무료앱을 앱스토어에 등록하면서 일어난 일들입니다.

이제 앱별로 결과를 정리해보겠습니다.

1. SpeedUp Player Lite: 20000 다운로드. 기능 제한이 거의 되지 않아서 유료앱의 실적을 깎는 결과가 있었습니다.
실제적으로 써보지 않고 구매할때에 비해서 무료가 있으니 써보고, 맞지 않는 제품으로 생각하고 구매안하거나,
무료로도 쓸만하네라고 판단하는 경우등.. 유료앱으로 전환이 제대로 이루어지지 않고 있었습니다. 특히나 국내에서는
그런 현상이 더욱 심해서 최근에 한국 앱스토어에서 판매를 중지했습니다.
광고를 navigation view안에 넣었는데 노출은 늘지만, eCPM이 상당히 낮았습니다.
들어오는 광고 매출은 거의 없다고 볼정도로 작았습니다.
광고는 Adwhirl 통해서 iAd와 admob을 넣었습니다. 그리고 house ad로 제 다른 앱들을 홍보하고 있습니다.
iAd가 수익이 많이 발생하긴 하지만 서비스되는 나라도 적고, 광고주도 많지 않습니다. 다른 앱들도 같은 방법으로
광고를 넣었습니다.

2. SpeedTube : 4000 다운로드. 전세계적으로 고르게 다운로드되고 있습니다.주로 youtube 검색어로 검색되어 사용자들이 들어오는 듯 합니다. SpeedUpTV의 매출에 제일 기여한듯하네요 (무료앱 중에서). 광고도 하단에 항상 박혀있어서 요청수 대비 수익이 높은 편입니다. 아직 사용자 수가 안되서 하루 수익이 $2~$3 정도입니다.

3. Ringtone Architect Free : 170000 다운로드. 주로 한국에서 다운로드가 일어났으며, 유료 전환은 거의 없다고 생각하시면 됩니다. 광고도 admob의 fillrate가 높지 않아서 많이 발생하지 않았으며 차트에서 내려가면서 급격히 광고 수익이 줄고 있습니다. 국내 타겟으로 광고한다면 admob은 적절하지 않은거 같네요. 실제적으로 국내에서 많은 다운로드가 일어나고, 순위에도 꽤 올라갔지만, 금전적인 이익은 크지 않았고 급격히 바닥을 항해가고 있습니다.

무료앱으로 아직 많은 사용자들을 확보하지는 못했지만, 해외에서는 어느정도 효과는 있으며, 무료앱 만들때 기능 제한을
잘 생각하고 만들어야 할듯 합니다. 무료앱을 어떻게 홍보해야할지도 고민스러운 부분이네요. 무료앱에 In App Purchase
기능을 넣어서 테스트도 해보려고 합니다. 그리고 아직 앱이 많지 않은 맥 앱스토어에도 도전하고 있습니다. 맥 앱스토어와
iOS 앱스토어와 서로 영향이 있을지는 모르겠지만, 맥앱스토어에서는 그나마 눈에 띌수 있는 가능성은 높아 보이네요.

매출은 12월달에 최하를 찍고 1월달에 30% 정도 올랐습니다. (12월 첫주와 1월 첫주 비교)

그리고 마지막으로 하나 더, 무료앱 리뷰 볼때는 더 마음을 비워야겠네요 TT
별하나 주면서 리뷰를 계속 업데이트하는 사람도 있더군요!

4개월간 앱스토어 매출 그래프와 느낀점

아래 글은 네이버 맥부기 카페에 제가 2010년 12월 8일날 올린 글입니다.

먼저 이 글은 제 앱들을 앱스토어에서 판매하면서 느꼈던 점만을 기준으로하며,
다른 카테고리의 앱들은 다를수 있다는것을 알려드립니다. 특히 게임등 유행에
민감한 카테고리는 많이 틀릴거 같습니다.

현재 두가지 앱을 판매중입니다.

1. SpeedUp Player
2. SpeedUpTV
각 앱의 기능들 관심있는분은 앱스토어에서 찾아보세요. 생산성/유틸리티 카테고리의
앱입니다. 두 앱의 매출 그래프입니다.
사용자 삽입 이미지
SpeedUp Player를 준비하면서는 올리는것에 초점을 두고 개발만 했었습니다.
소수의 사용자층을 위한 niche 앱으로 생각했고, 많이 팔릴거라는 예상을 안했습니다.
결과도 역시 많이 팔리지는 않더군요. 다행히 생산성 카테고리는 유행에 민감한 편이
아니라서 몇개라도 꾸준히는 팔리더군요.
두번째 앱은 좀더 여러 사람들이 찾을수 있는 앱으로 해야겠다는 생각을 하고,
기획하여 개발했습니다. 첫 앱에 비해서 훨씬 개발은 빨리 할수 있었고,
심사요청한 상태에서 마케팅/홍보에 대한 고민을 했습니다. 하지만, 뭔가를
준비할만큼 심사기간이 길지는 않더군요. 국내 커뮤니티 사이트 몇곳을 통해서
약간의 홍보를 하고 심사가 통과 되었습니다.
SpeedUpTV 앱은 여러 사용자들의 요구를 충족시켰는지 몇일만에 한국 유료앱
1위를 달성하게 되었습니다^^ 기쁘기도 했지만… 앱스토어 관련 마케팅 책들을
보면서 떨어질거를 알았기때문에 상당히 초조했었습니다. 1위는 유지했어도 하루하루
매출 떨어지는게 눈에 보였습니다. 대부분의 구매는 국내에서 일어났고, 해외 시장이
훨씬 더 클거라는 예상을 했기 때문에 어떻게 해외시장을 공략할까라는 고민이 많았죠.
북미/일본 리뷰 사이트에 리뷰요청을 했지만, 리뷰가 올라오지는 않더군요.
일본의 블로그등에 소개되면서, 트위터에서도 앱에 대한 내용이 올라오고 하면서
두번째 그래프가 올라가는 시점이 생겼습니다. 이때는 TV와 Player가 동시에 올라가면서
전체 매출은 한국에서 1위할때보다도 높았습니다.
이제 앞으로 해외에서 어떻게 제 앱들을 홍보 할지에 대해서 고민을 하고 있습니다.
제가 4개월간 느꼈던 점들 정리해보면,
1. 해외시장 준비하세요.
2. 비슷한 종류의 앱이 여러개 있으면 서로 상승 작용이 있습니다.
3. 구글 알리미, 트위터 검색 등으로 앱관련 동향 파악하세요.
4. 그래프가 어디까지 올라가는냐 보다는 어디서 멈추느냐가 더 중요합니다.
5. 사용자에게 귀 기울이세요. 좋은 의견 많이 주십니다.
iTunes 리뷰는 대응이 어려우니 이메일이나 커뮤니티 사이트 이용하세요.
6. iOS 새버전 나올때 신규 API로 남들보다 앞서서 준비하세요.
7. iTunes 리뷰 보실때는 마음을 비우세요 –;

Mac OSX 사용하면서 불편한 점들

OSX 사용하면서 제가 느끼기에 가장 불편한 점은 PgUp/PgDown의 동작이 Windows나 다른 OS와 다르다는 겁니다. PgDown을 누르면 당연히 커서가 따라갈거라 생각하는데, 안그렇습니다. 특히 프로그램 짤때 에디터(Xcode)에서 PgUp/Down으로 이동하다가 이부분 편집해야지 하고 입력을 하거나 화살표를 누르면 커서 원래 있던 곳으로 돌아갑니다. 무슨 생각으로 이렇게 만들었는지 아무리 생각해도 이해가 안되더군요. 그리고 맥북에서 PgUp/PgDown은 Function-위/아래 화살표입니다! 키보드에 표시도 안되어 있죠.

해결 방법은 ~/Library/KeyBindings 폴더를 만들어주고, DefaultKeyBinding.dict 파일을 아래 내용대로 저장하고, 재로그인 하면 해결됩니다.

{

/* http://www.hcs.harvard.edu/~jrus/site/cocoa-text.html */

/* page up/down with moving insertion point, caret */
“\UF72C” = “pageUp:”;
“\UF72D” = “pageDown:”;

“^\UF700″ = “pageUp:”; /* Control up */
“^\UF701″ = “pageDown:”; /* Control down */

/* Option/Alt + PgUp/PgDn */
“~\UF72C” = “scrollPageUp:”;
“~\UF72D” = “scrollPageDown:”;
}

다만, Finder에서도 PgUp/Down이 이런식으로 동작하는데, 해결 방법을 아직 찾지 못했습니다. 그리고 OSX 사용하다 보면 가끔 마우스를 쓰지 않으면 안될때가 있더군요. 마우스 없어도 대부분의 작업을 키보드로 할수 있는 면에서는 윈도우즈가 약간 더 좋은거 같네요 –;

또한 창 버튼 중 + (최대화) 버튼의 동작이 어플마다 미묘하게 다릅니다. 대표적으로 iTunes는 누르면 미니창으로 바뀝니다. iTunes 창크기가 화면 크기를 넘어가서 창 줄일려니 마땅한 방법이 없더군요 –. 한참 고민하다가 방법은 찾았습니다. option + 클릭하면 최대화가 되더군요. 크롬은 + 누르면 어정쩡하게 최대화됩니다. 아직 로직을 파악 못하겠네요. 위아래로만 되는거도 아니고, 전체화면 되는거도 아니고… 뭐 어플 잘못일수도 있지만… 시스템 버튼 영역이 일관성이 없는건 애플답지 않네요.

그리고 취향의 차이이겠지만, 전 Command-Tab, Command-` 의 조합으로 프로그램 이동하는거보다, 윈도우즈의 Alt-Tab이 더 편하네요.

또한가지, 외부모니터로 보다가 모니터 연결 빼고 나면, 어떻게도 창을 못찾는 상태가 되는 경우가 있습니다. 키보드 단축키가 없으니 화면 밖으로 사라진 창을 가져올 방법이 없더군요. 이련 경우가 저만 당한게 아니라 그런지 찾아보니 창 모아주기 애플스크립트가 있습니다. 외부 모니터 연결한다면 꼭 필요한 스크립트입니다.

— Example list of processes to ignore: {“xGestures”} or {“xGestures”, “OtherApp”, …}
property processesToIgnore : {}

— Get the size of the Display(s), only useful if there is one display
— otherwise it will grab the total size of both displays
tell application “Finder”
    set _b to bounds of window of desktop
    set screen_width to item 3 of _b
    set screen_height to item 4 of _b
end tell

tell application “System Events”
    set allProcesses to application processes
    set _results to “”
    repeat with i from 1 to count allProcesses
        set doIt to 1
        repeat with z from 1 to count processesToIgnore
            if process i = process (item z of processesToIgnore) then
                set doIt to 0
            end if
        end repeat
       
        if doIt = 1 then
            tell process i
                repeat with x from 1 to (count windows)
                    set winPos to position of window x
                    set _x to item 1 of winPos
                    set _y to item 2 of winPos
                   
                    if (_x < 0 or _y < 0 or _x > screen_width or _y > screen_height) then
                        set position of window x to {0, 22}
                    end if
                end repeat
            end tell
        end if
    end repeat
end tell

applescript 편집기에 내용 붙여넣고 저장하시고 사용하시면 됩니다.

저는 iphone simulator가 자주 그런 경우를 당했는데, 프로그램 재시작해도 안나옵니다. 창 옮기는거 단축키 혹시 있으면 알려주세요 TT

제가 터미널에서 많이 작업하는데, 터미널 창의 가장자리가 없어서 많이 불편합니다. 여러창을 동시 띄우면 구별이 잘 안되고, 특히 투명도 주면(디폴트) 머리가 산만해지더군요. 지금은 투명도 안주고 어느정도 적응해서 참으며 쓰고 있습니다.

물론 좋은점도 많습니다. UI 예쁘고, UNIX 기반, Spotlight, 속도, 바이러스로부터 비교적 안전. 프로그램 설치/제거 쉬움. 유닉스에 없는 상용 프로그램들.

20100511

맥북에서 GarageBand를 이용해서 만든 음악입니다. 회사에서 업무시간 피해서(?!) 만들었습니다. GarageBand 프로그램은 정말 깔끔한데, 기능면에서는 아쉬운 점이 많네요.

제목은 아직 못 정했어요. 20100511

mix1009-20100511a.2.mp3     

오랜만에…

작년말부터 계속 글을 못올렸네요.

작년 12월초에 아이폰을 구매하면서부터 컨텐츠 소비(주로 구글리더)를 출퇴근시간에 하다보니 따로 시간 내어서 블로그에 글쓰는게 더 어려워졌던거 같네요.

아이폰 쓰기 시작하면서부터 플랫폼으로써 가능성이 보여서 혼자 공부도 하고, 노트북(Lenovo X61)에 OSX도 깔아보고, 회사에 어필한 결과 올해 2월부터 맥북으로 아이폰앱을 개발하게 됐었습니다. OS도 새롭고, 개발환경도 새롭고, 언어는 더 생소해서 여러가지로 많이 배울수 있었던 시간이었네요. 다만 4월말에 개발이 완료 됐는데, 애플의 정책정리로 얼마전에서야 앱스토어에 올라오게 됐습니다.

생각보다 반응이 괜찮아서 올린지 하루만에 카테고리 1위하고, 열흘정도 됐는데 아직 카테고리 1위를 유지하고 있습니다. 전체 순위도 6위까지 올라갔다가, 현재는 상당히 밀렸네요. iOS4에 맞춰서 새로운 기능이 들어가서 나름 선전한거 같습니다.

개인적으로 만들어보고 싶은 여러가지 어플들이 있는데, 집에 오면 다 귀찮아져서… 아직 개인 앱은 올리지 못하고 있습니다.

아이폰 개발하면서 그전에 사용하던 언어와 개발환경에 대해서 다시 생각해보는 계기가 되었네요.

제가 사용하거나 했던 언어와 개발 환경 정리입니다.

  • BASIC (C-64)
  • UNIX – C, pro-c, X11, Motif, Tcl/Tk, Qt
  • Java
  • FreeBSD/Linux – C, lex/yacc
  • Python
  • Windows – Visual C++, MFC
  • Flash – Actionscript3
  • iOS – Objective-C

언어와 제가 느낀 점.

  • BASIC  – 제가 접한 첫 언어. 초딩때 게임도 만들었어요.
  • C – 가장 기본이 되는 언어.
  • Tcl/Tk – 스크립트 언어로서 UI와 UI builder(XF)까지 놀라웠죠. (95년?)
  • Python – 간결함과 표준 라이브러리가 인상적. 자료구조 쉽게 쓸수 있어서 프로그래밍 방식 변화
  • C++ – STL 좋음. 언어는 너무 복잡. 자유도 많아서 안좋음.
  • Java – 언어는 모르겠고, JVM에는 관심갑니다.
  • Actionscript3 – FlashDevelop와 사용하면 너무 편한 언어. 도움말 및 예제 굿! Javascript에 비하면 좀더 일반적인 객체지향 언어.
  • Objective-C – 강력한 개발환경과 애플의 개선을 위한 필사적인 노력.

이외 관심있는 언어:

  • OCaml
  • LISP
  • Erlang
  • JVM 위에서 돌아가는 함수형 언어들

UNIX man 페이지, Wikipedia 글을 PDF로 변환

아이리버 스토리로 읽을 책도 많지만… man 페이지는 잘 안보게 되지만, 유용한 정보가 많은 자료죠.

여기서 설명하는 PDF 생성은 한글이 되는지는 확인 안해봤습니다.

1. UNIX man페이지 변환 방법

man2pdf.sh 이용. (groff와 ghostscript가 있어야 합니다.)

man2pdf.sh 파일 저장후

% chmod 755 man2pdf.sh
% ./man2pdf.sh man

이렇게 하면 man.1.pdf 파일이 생성됩니다. 1은 메뉴얼이 속한 섹션입니다.

가끔 안되는 게 있더군요:

$ ./man2pdf.sh varnishd
cat: /usr/local/man/cat1/varnishd.1.gz (source: /usr/local/man/man1/varnishd.1.gz): No such file or directory

이럴 경우.. 아래처럼 실행하면 되더군요.

$ zcat /usr/local/man/man1/varnishd.1.gz | groff -t -E -Tps -mandoc -ma4 | gs -q -sDEVICE=pdfwrite -sOutputFile=”v.pdf” -dNOPAUSE -dBATCH -sPAPERSIZE=’a4′ –

2. Wikipedia 웹페이지를 PDF로 변환 방법

리눅스용 firefox에서 페이지를 PDF로 출력하는 기능이 있긴 하지만, 불편하고 메뉴 부분등을 제거하려면 추가의 노력이 들어갑니다. 그리고 파일도 따로 생성되죠.

위키피디아(영문) 문서를 변환하는 건 이 링크를 이용해서 들어가시면 쉽게 만들수 있습니다. “start book creater”를 누르시면 위키피디아로 연결됩니다. 상단에 두개의 영역이 노출되는데 위쪽은 광고이고, 중간에 Book creater에서 add(+)를 누르면 현재 페이지가 추가됩니다. 여러 페이지 왔다갔다하면서 문서를 추가하고 “show book” 하면 오른쪽에 PDF로 만들수 있는 버튼이 있습니다. 하나의 PDF 파일로 만들어서 다운로드 할수 있습니다 :)

우분투 firefox에서 SSH protocol 링크

여러대의 서버를 관리하면서, 모니터링할수 있는 페이지를 만들고, 해당 서버를 클릭하면 SSH로 바로 연결할수 있도록 MIME 링크를 만들어서 사용하고 있습니다. MIME 링크 처리는 윈도우즈에서 프로그램을 제작해서 ssh:// 형태의 MIME type에 대해서 처리하게 했습니다. 프로그램은 단순히 putty를 찾아서 실행해주는 간단한 구조입니다.

이걸 리눅스에서 할려고 했더니 어떻게 해야하는지 좀 헤맸습니다. mime type이라는 건 서버에서 파일이 내려갈때 HTTP header에 붙어서 가고, 이를 브라우저에서 처리하는 거라… ssh:// 형태의 링크는 mime 링크로는 처리가 안되고, 이를 처리하는 걸 protocol handler라고 하더군요. 검색어 자체가 잘못되서 해결책을 찾는데 꽤 시간이 걸렸습니다.

먼저 gnome에서 ssh 프로토콜을 프로그램 연결하는 부분입니다.

$ gconftool-2 -s /desktop/gnome/url-handlers/ssh/command ‘/usr/bin/gnome-terminal -e “~/bin/handle_protocol.sh %s”‘ –type string
$ gconftool-2 -s /desktop/gnome/url-handlers/ssh/enabled -t boolean true

참고 URL: http://kb.mozillazine.org/Register_protocol

~/bin/handle_protocol.sh 파일 내용입니다.

#!/bin/sh

link=$1
proto=`echo "$link"|cut -d: -f1`
host=`echo "$link"|cut -d/ -f3`
echo "$proto $host"
exec $proto $host


파일 만들고 실행되도록 chmod 해야 합니다.

$ chmod a+x ~/bin/handle_protocol.sh

이렇게 하면 firefox에서 ssh:// 로 시작하는 링크 누르면 gnome-terminal이 뜨면서 ssh로 연결됩니다. telnet도 똑같은 방법으로 등록하면 사용이 가능합니다.

이렇게 설정했는데 우분투(9.10)에서 원격 접속했을때 윈도우즈에서 putty 이용했을때보다 속도가 많이 느리더군요. /etc/ssh/ssh_config에서 맨 아래 두줄을 주석 처리하면 빨라집니다.

#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no

출처: http://onlyubuntu.blogspot.com/2007/04/fix-for-ssh-slow-to-ask-for-password-in.html