November 11th, 2012
주말이면 언제나 산에서 아침을 맞았던 적이 있습니다.
촉촉한 공기와 함께 맞이한 아침은 이내 맑은 공기가 되어 폐부를 정갈히 해주었습니다.
비록 전일의 고된 산행과 인생의 고뇌 한잔에 탱탱하게 부은 얼굴도 아무도 부담스럽지 않았습니다.
땀에 젓은 속옷에서 나의 진한 체취를 느끼며 진땀은 그렇게 지리지 않는다 것을 알게되었습니다.
이제 집에서 두 딸아이와 아내와 함께 빗소리를 들으며 주말을 조용히 지내며 추억해봅니다.
진땀은 결코 지리지 않다는 것을…

주말이면 언제나 산에서 아침을 맞았던 적이 있습니다.

촉촉한 공기와 함께 맞이한 아침은 이내 맑은 공기가 되어 폐부를 정갈히 해주었습니다.

비록 전일의 고된 산행과 인생의 고뇌 한잔에 탱탱하게 부은 얼굴도 아무도 부담스럽지 않았습니다.

땀에 젓은 속옷에서 나의 진한 체취를 느끼며 진땀은 그렇게 지리지 않는다 것을 알게되었습니다.

이제 집에서 두 딸아이와 아내와 함께 빗소리를 들으며 주말을 조용히 지내며 추억해봅니다.

진땀은 결코 지리지 않다는 것을…

September 13th, 2012

애플에서 자동차를 좀 만들어줬으면 해…!

태어나 처음으로 H자동차를 타봤다. 이런 망할… 욕밖에 안나온다.

애플에서 자동차를 안만들더라도 UX 가이드라도 좀 만들어줬으면 좋겠다. 제발 Apple TV처럼 취미라도 어떻게 안되겠니? H자동차 같은데에 기준을 좀 제시하게…응?

H자동차(중형 G모델이다. 뭐 대한민국 국민차)를 타면서 황당한 점들 (이시간 이후 계속 추가할 예정이다.)

  • 황당1) 좌석조절기가 대쉬보드 끝의 문짝에 붙어있다. 정말 이건 대박이다. 보통 상식적으로 좌석을 조절기는 좌석의 아래쪽에 손을 뻗으면 닿는 위치에 두기 마련인데 대쉬보드 끝에 문짝에 붙여놓다니 참 배려돋는다. 그래 좌석을 완전히 뒤로 눕히는 일은 거의 없으니 굳이 좌석에 두어서 고장을 야기하는 것보다 낫다고 얘기할 수도 있겠다. 하지만 좌석을 약 15도 정도 눕히기만 해도 손이 닿지 않는다. 이건 뭐 리모콘이 필요할 정도다.
  • 황당2) 후진기어를 넣으면 오디오 작동이 안된다. 만약 주차할 때 크게 음악을 켜놓은 상태로 주차했다면 시동을 걸고 후진기어를 바로 넣고 브레이크에서 발을 떼면서 후회를 할 것이다. 옆에 다른 차가 주차를 기다리거나 내가 후진하므로 길을 막게된다면 잠시 멈추고 기어를 교체할 수 없다. 어쩌라구…!
  • 황당3) 초강력 와이퍼의 반란 - 요즘 거의 100% 전자화되있는 자동차는 시동을 끄면 전조등, 실내등이 자동으로 꺼진다. 근데 이 황당한 초강력 와이퍼는 시동을 끄자마자 중간에 딱 멈춰선다. 나보고 어쩌라구… 다시 시동을 켠다. 와이퍼 조절기를 끔 위치로 아주 공손하게 옮긴다. 시동을 끈다.  아 짜증 지대로다!
  • 황당4) 에어컨 다이얼은 풍속 조절기 - 나만 그런지는 모르지만 언제 부턴가 자동차 에어컨은 거의 자동Auto에 맞춰져있다. 자동으로 맞춘상태에서 가장 많이 조작하는 것은 실내온도이다. 그런데 온도는 다이얼 옆에 쬐끄만 버튼에 위/아래 버튼을 눌러야 온도를 조절할 수 있다. 네비는 운전 중에 조작시 책임지지 않는다고 장광설을 늘어놓으면서 니들이 만든 온도조절 버튼 누르다 사고나면 책임질래? 풍속이야 말로 버튼으로 만들어도 아무 상관없을 듯 하다. 자동차가 여름에 햇볕에 서있거나 겨울에 꽁꽁 얼어있을때를 제외하고 풍속버튼을 사용할 때가 있는가? 대쉬보드 설계자를 좀 만나보고 싶다.
  • 황당5) 드넓은 대쉬보드에 시계 실종, 누가 집나간 시계 좀 데려다줄래? - 자동차가 mobile의 원조이긴하지만 휴대폰과 같이 기지국과 상시 통신하는 장비도 아니고 아날로그 시계가 연간 1~2분 틀려도 경찰에 신고 안한다. (하려나? ㅋㅋ) 시계라는 것은 말이다 항상 같은 위치에 있어서 언제든지 확인할 수 있어야 의미가 있는거란다. 니들 편한데로 네비키면 왼쪽 구석지에 음악켜면 윗쪽 귀통이에 마지못해 표시하는게 시계가 아니란 말이다. 오도미터의 중앙에 공간도 많은데 시계도 안넣어놓은 대쉬보드 설계자 정말 만나보고 싶다.
  • 황당6) 연탄차 - 사실 드라마 주인공처럼 ‘베티’같은 예쁜 이름은 지어주지 못했다. 그 특징을 잘 살려서 ‘연탄1호’라고 부른다. 자동차의 배기구는 정말 소음과 진동에 중요한 역할을 하는 장치이다. 무엇보다도 연소된 가스 - 대부분 일산화탄소인 - 를 배출하는 장치이다. 이 장치를 익스테리어에 포함시킨 차체 디자이너도 만나보고 싶다. 왜 니들 멋부리는데 우리가 목숨을 걸어야하냔 말이다. 얘기인즉 배기구를 범퍼 내부에 위치시키면서 트렁크를 타고 뒷자리로 상당량의 일산화탄소가 넘어온다. (내가 직접 측정은 못해봤다. 카페 같은데서 장비로 실제 측정을 해본 사람들의 전언이 그렇다. 기회가 되면 꼭 내손으로 측정해보고 싶다.) 수리센터가서 테이핑(?)처리 받기 전에는 2시간 정도 운전하면 심한 두통과 구토 증세까지 있었다. 이건 사실이다. 그래서 ‘연탄1호’다. 뭐 정확히 지금은 ‘테이핑한 연탄1호’라고 할 수 있겠지만서도…

일단 여기까지 적는다. 시비는 거부, 딴지는 환영한다.

September 7th, 2012

이제 코로나 맥주(?)와 모바일 앱을 개발하는 시대

오늘 ‘코로나 SDK’가 무엇이고 어떤 점이 좋은 지 혹은 나쁜 지와 어떻게 사용될 수 있는지를 설명할 생각이다. 이 글을 통해 ‘코로나 SDK’의 매력을 직접 느낄 수 있으리라 기대한다.

 코로나라면 퍼뜩 떠오르는 것은 해변과 레몬 곁들인 시원한 ‘코로나 맥주’일 것이다. 또한 코로나는 태양에서 수백만킬로미터를 뻗어나가는 거대한 불꽃을 일컫기도 한다. 여러분이 모바일 업계에 종사한다면 오늘 또 하나의 뜻을 알게될 것이다. ‘코로나 SDK’…!

 썰렁하게 ‘코로나 SDK’ 소개를 시작하는 이유는 특정 솔루션에 대한 각인 효과는 역시 솔루션의 이름일 것이라는 생각에서이다. 이 글을 쓰기 시작하면서 코로나로 명명한 배경에 대해서 Corona Labs에 공식적으로 문의를 했으나 아직 답변은 받지 못했다. 코로나는 세계에서 가장 많이 팔리는 코로나 맥주와 같이 투명하고 시원하게 해주겠다는 의지와 로고의 강렬한 주황색은 태양과 같이 강렬함을 선사하겠다는 Corona Labs의 의지를 투영한 이름이 아닐런지 미루어 짐작해본다.

[그림1] 코로나 SDK 로고 이미지

 자 이제 ‘코로나 SDK’의 세계로 여행을 떠나보자!

한마디로 ’코로나 SDK’는 아이폰, 아이패드, 안드로이드용 모바일 애플리케이션을 개발하는 개발툴킷이다. 물론 개발자를 위한 툴킷이다. 이쯤에서 독자 중 상당수는 여행을 취소하고 ‘코로나 SDK’여행 환불을 요구하고 나설 것이다. 하지만 조금만 더 읽어보시라.

 여러분은 ‘앵그리버드’라는 게임을 들어보거나 해봤을 것이다. 자, 웹브라우저를 열고 ‘30분만에 앵그리버드 만들기(From Zero to Angry Birds in 30 minutes)’를 검색해보시라. 아마 검색 결과의 상단에 랭크된 링크의 대부분이 바로 ‘코로나 SDK’로 만든 결과물에 대한 이야기들일 것이다. 솔직히 필자도 우연히 검색된 링크를 따라가서 Seb Lee-Delisle란 사람이 떠드는 것을 30분 동안 바라보면서 눈을 의심하지 않을 수 없었다. ‘코로나 SDK’를 사용하면 앱을 아주 빠르게 제작이 가능하다. 그리고 한번 작성된 소스코드로 iOS와 안드로이드에서 동시에 사용이 가능하다. Corona Labs는 10배 빠른 개발이 가능하며 다양한 해상도의 디바이스에 보다 쉽게 적용가능하다고 주장한다. 글보다는 영상을 보는 것도 괜찮을 듯 하다.

 Corona Labs의 주장대로라면 이제 Objective-C 개발자나 Java나 Javascript 개발자에게 의지하지 않고도 쉽게 모바일 애플리케이션을 개발할 수 있다는 이야기인 것이다. 이쯤에서 “‘코로나 SDK’는 어떤 언어로 누가 개발할 수 있을까?”란 물음이 생길것이다. 바로 Lua라는 프로그래밍 언어이다. 루아는 특히 게임에서 많이 사용된다. 예를 들면 ‘월드 오브 워크래프트’에서는 사용자 인터페이스, 캐릭터 애니메이션, 게임 내의 외관을 루아를 사용해서 변경할 수 있다. 

 이처럼 루아는 프로그래밍 언어 자체보다는 디자이너 프렌들리한 확장 스크립트 언어로 더 유명하다. 게임의 캐릭터의 움직임을 표현하기 위해 여러장의 이미지를 사용하는데 여러장의 이미지의 묶음을 스프라이트라고 부른다. 스프라이트를 디자이너가 개발자에게 전달하기 위해서는 각 프레임의 크기가 다를 경우 좌표, 크기 그리고 순서를 일일이 표시를 해줘야한다. 때문에 대부분의 게임 개발사에서는 스프라이트를 생성할 수 있는 툴(PC 프로그램)을 자체 제작하여 사용해왔다. 디자이너에게는 회사마다 다른 이런 스프라이트 툴을 배워야했으며 적응하는 어려움이 있었을 것이다. 루아를 확장 스크립트로 사용하면서 디자이너들은 이런 툴을 사용하는 대신 루아로 스프라이트의 섬세한 움직임을 기술할 수 있고 이는 게임업계에 공통으로 사용이 가능해졌다. 루아는 배우기 쉬운 프로그래밍 언어임은 틀림없다.

 다음은 스프라이트를 표현하는 루아 예제 코드이다.

    local SpriteSheet = { }
    SpriteSheet.getSprite = function ( )
         return {
             frames = {
                 {
                      name=“foo1.png”, 
                      x=2, y=358, width=55, height = 72
                  },
                 {
                     name=“foo2.png”, 
                      x=59, y=434, width=55, height = 70
                  },
             },
             sheetContentWidth = 256,
             sheetContentHeight = 512,
         }
    end
    return SpriteSheet

 보시다시피 루아는 각 행의 구분자로 세미콜론(;)을 사용하지 않으며 콤마(,) 사용에 대하여 관대하다.

 다음의 팩토리얼을 계산하는 루아 예제 코드를 보자.

    function factorial( n )
        if n == 0 then
            return 1
        end

        return n * factorial( n - 1 )
    end

  보통의 절차적 언어에서 보이는 선언부, 구현부의 구분이 없으며 함수 재귀호출도 쉽게 허용된다.

 이제 여러분들도 [그림2]와 같이 CoronaLabs.com에서 Corona SDK Trial을 받아서 당장 프로그래밍을 해볼 수 있다.

[그림2] CoronaLabs.com의 초기 화면

 다음 [그림3]은 Corona SDK 를 실행한 화면이다. 시뮬레이터를 내장하고 있으며 예제와 튜토리얼을 프로그램 내에서 실행하고 배울 수 있도록 되있다.

[그림3] Corona SDK의 초기 화면

‘코로나 SDK’의 탄생

 Corona Labs(전 Ansca Mobile)는 월터 루Walter Luh와 카를로스 이카자Carlos Icaza가 2007년에 어도비Adobe사를 퇴사하며 세운 회사이다. 두 사람은 어도비사에서 모바일 엔지니어로 ‘플래쉬 라이트’를 개발했다. ‘코로나 SDK’는 2009년에 첫 베타버전이 일반에 공개됐다. 이후 2010년 4월에 2.0 베타가 릴리즈되었다. 2.0에서 아이폰, 아이패드, 안드로이드 디바이스에 대한 크로스 플랫폼 지원이 첫 선을 보였다. 2011년 1월에 Windows XP용 ‘코로나 SDK’ 프로그램을 내놓았다. PC에서는 android용 빌드는 가능하지만 iOS용은 Mac에서만 가능하다. 2011년 4월에는 반스앤노블Barnes & Noble의 누크 컬러Nook Color에도 배포가 가능해졌다.

‘코로나 SDK’의 특징

 첫째, OpenGL-ES 엔진을 이용해 하드웨어 그래픽 가속을 사용하며 GPU 최속으로 스프라이트 애니메이션이 가능하다. 둘째, Box2D 물리엔진을 내장하고 트랜지션Transition 라이브러리로 스프라이트의 이동, 회전, 크기, 알파 등을 자유롭게 조절이 가능하다. 셋째, 연단위 계약을 통해 최신 업데이트를 받을 수 있다. (iOS/Android 각각은 $199USD/yr, Pro는 $349USD/yr, Enterprise는 $3,000/yr) 넷째, 카메라, 엑셀레로미터, 마그네토미터, 비디오 플레이어, 콤파스, GPS 등 디바이스 고유 기능을 사용할 수 있다. (일부 제한 있음. 로드맵 문서 참고) 

‘코로나 SDK’의 장점

 첫째, 열배 빠른 앱 개발이 가능하다. 둘째, 크로스 플랫폼에 적용이 가능하다. 셋째, OpenGL, OpenAL, Google Maps, Box2D physics, Facebook Connect, Game Center, In-app Purchases 등 업계의 표준을 준수한다. 넷째, 안드로이드 파편화에 대응이 용이하다. 다섯째, HTML5 호환 WebView를 제공한다. 여섯째, 연단위 계약자에게는 커뮤니티, 이벤트, 리소스, 툴 등을 제공된다. (프로그램에 따라 일부 제외)

‘코로나 SDK’의 단점

  첫째, 새로운 프로그래밍 언어인 Lua를 배워야한다. 둘째, Corona Labs에 종속적이다. 셋째, 다른 크로스 플랫폼 솔류션에 비해 가격이 비싸다. 넷째, 코로나 엔터프라이즈Corona Enterprise의 경우 맥킨토시Macintosh에서만 iOS, Android 빌드가 가능하다.

결론 

 eBook 시장에서 강조되는 인터렉티브한 앱북을 제작할 수 있을 것으로 예상한다. 특히 미니 게임과 유아용 애플리케이션 제작이 용이할 것이다. 결론은 간단하다. 지난 3주간 파일럿한 내용을 동영상에 담았다. 참조란을 보시라!

참고

 다음 동영상은 지난 3주간 파일럿으로 진행했던 iOS용 애플리케이션 동영상이다.  
 코로나 엔터프라이즈 라이브러리, 넷앤티비 라이브러리, 넷앤티비로 저작한 ‘인어공주’ 컨텐츠를 포함하는 네이티브 앱을 보여준다. 참고로 코로나 프로와 달리 엔터프라이즈는 코로나 엔진을 라이브러리 형태로 제공받을 수 있다. (Corona Enterprise 트라이얼 2012.878 버전을 사용했다.)
(=== URL은 저작권 문제로 삭제함 ===)
 ’앱북과 코로나’ 세미나 자료
 ’코로나 SDK’ 위키피디아
 http://en.wikipedia.org/wiki/Corona_(software_development_kit)


Updates
2012.09.12 from David Rangel of Corona Labs
코로나랩의 COO인 David에게서 답변이 왔다. 필자의 두 번째 추측이 맞았다 ;-). 루아Lua가 포르투갈어로 ‘달’을 의미하므로 그 주변을 환하게 비추는 코로나가 되겠다는 단순한 생각에서 명명했다는 이야기다. Corona SDK는 Lua 프로그래밍 언어를 선택하면서 시작되었다는 이야기다. 참으로 흥미롭다.
(원문)
Where the name Corona came from :). 
Well, it does not make complete sense, but it is because Corona uses the Lua language. “Lua” means moon in Portuguese. Since the Corona SDK is a set of tools “around” Lua, they chose the name “Corona”, as in the corona of the moon (see: http://en.wikipedia.org/wiki/Corona_(optical_phenomenon))
August 6th, 2012

[Mac Tips] 마운틴 라이언 업그레이드 후 화면 확대/축소는?

오늘 정말 오랜만에 세미나 발표를 하던 중 화면을 확대하려고 Ctrl+스크롤을 했는데 아무것도 먹지를 않아서 완전 긴장했던 1人이다.

키보드 단축키이라도 알았더라면 그렇게 해메이지 않았어도 될 것을…쯔

마운틴 라이언 업그레이드 후에는 “화면 확대/축소”는 다음과 같이 “손쉬운 사용” 설정에 존재한다.

(친절하게 단축키도 그림에 잘 나와있다 ㅡ.ㅡ)

화면 확대/축소 2
화면 확대/축소 1

June 23rd, 2012
Bugs on my desk. Seek and destroy. ..! (Taken with GifBoom)

Bugs on my desk. Seek and destroy. ..! (Taken with GifBoom)

June 12th, 2012

Apple comes strong with a slew of announcements including a brand new MacBook Pro, and tons of features on iOS 6 and OS X. Read this blog post by Roger Cheng on Apple.

We got a pretty thorough preview of Mountain Lion when it was announced back in February, but Apple’s added a couple of nice new features at today’s Worldwide Developer Conference.

May 8th, 2012
[책읽기] 기업은 누구의 것인가? 김상봉著

(!응생각) 노동자에게 경영권을 돌려줘야한다는 발상은 반자본주의도 사회주의나 공산주의도 아니다. 그런데 주권은 국민으로부터 나온다는 헌법은 짓밟힌지 오래이며 국민의 목을 조르는 세력은 여전히 득세하는데 경영권을 노동자에게 준다고 노동자가  해방될까하는 의심이 든다.
 그리고 주주의 의결권에서 대표이사 선임권을 빼앗으면 뭐가 남는가?!
 우리나라 철학자들이 치열하게 노력해서 맑시즘을 넘어서는 시대정신을 한반도에서 만들어 세계의 정신세계를 주도했으면 한다.
 나도 내 할일하겠다!

[책읽기] 기업은 누구의 것인가? 김상봉著

(!응생각) 노동자에게 경영권을 돌려줘야한다는 발상은 반자본주의도 사회주의나 공산주의도 아니다. 그런데 주권은 국민으로부터 나온다는 헌법은 짓밟힌지 오래이며 국민의 목을 조르는 세력은 여전히 득세하는데 경영권을 노동자에게 준다고 노동자가 해방될까하는 의심이 든다.
그리고 주주의 의결권에서 대표이사 선임권을 빼앗으면 뭐가 남는가?!
우리나라 철학자들이 치열하게 노력해서 맑시즘을 넘어서는 시대정신을 한반도에서 만들어 세계의 정신세계를 주도했으면 한다.
나도 내 할일하겠다!

April 8th, 2012
[기술 책읽기] iPhone SDK 튜토리얼 2 - 윤성관 @lingostar 고준일 @goya320 공저
1편에 이어서 iOS 개발의 고급 기술과 깨알 필수상식 등을 제공한다. 예제의 수준은 거의 상용에 가까워 놀랍다. 코드 스니펫에 삭제되는 코드, 추가되는 코드가 분명히 표시되있어 필자가 바로 옆에서 불러주는 듯이 명쾌한 점이 아주 훌륭하다.

[기술 책읽기] iPhone SDK 튜토리얼 2 - 윤성관 @lingostar 고준일 @goya320 공저

1편에 이어서 iOS 개발의 고급 기술과 깨알 필수상식 등을 제공한다. 예제의 수준은 거의 상용에 가까워 놀랍다. 코드 스니펫에 삭제되는 코드, 추가되는 코드가 분명히 표시되있어 필자가 바로 옆에서 불러주는 듯이 명쾌한 점이 아주 훌륭하다.

April 2nd, 2012
gaksdesigns:

Ceramic artist  Tsang Cheung Shing

gaksdesigns:

Ceramic artist  Tsang Cheung Shing