보기 전에 한번 눌러주세요. 로그인이 필요없는 추천 뷰온 버튼!



이번 전문가 기고의 필진은 얼마전 10년 근속자 명예의 전당에도 오르신 서비스개발팀 김응식 차장님입니다. 항상 유엔젤에 新모바일 트렌드를 전도하고 계시죠. 이번엔 Corona 라는 다소 생소한 주제를 재밌게 풀어주셨습니다.  

(당 내용은 뉴스레터 사내 베타판에 실렸던 기고문을 업데이트하였습니다.)





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

 


코로나 맥주?


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


코로나 SDK’...!


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


>>업데이트 보려면 클릭



코로나 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

보통의 절차적 언어에서 보이는 선언부, 구현부의 구분이 없으며 함수 재귀호출도 쉽게 허용된다.
이제 여러분들도 CoronaLabs.com에서 Corona SDK Trial을 받아서 지금 바로 프로그래밍을 해볼 수 있다.

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 시장에서 강조되는 인터렉티브한 앱북을 제작할 수 있을 것으로 예상한다. 특히 미니 게임과 유아용 애플리케이션 제작이 용이할 것이다. 



저작자 표시
신고
Posted by 유엔젤 테크니컬라이터 손대리
comments powered by Disqus

댓글을 달아 주세요

티스토리 툴바