Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

Cappuccino 스터디 회고

왠만하면 뭔가 했을때 회고를 남기려고 하고 있어서 Cappuccino스터디가 끝나서 회고를 남깁니다. Cappuccino 스터디는 제가 바리스타가 되어볼려고 하는 것은 아니고 프론트앤드의 차세대 프레임워크로 보통 거론이 되는 CappuccinoSproutCore의 그 Cappuccino입니다. 이번 스터디는 프론트앤드 개발자 모임인 FRENDS에서 진행되었던 스터디로 저희가 주제를 정하고 트위터에서 사람을 모아서 진행을 하였습니다. 보통 스터디는 초기에 비해서 이탈율이 엄청난 편인데 아직 네임밸류가 없어서 그런지 별로 이탈되는 사람 없이 무사히 마친 것 같습니다.

사실 스터디가 시작될 당시 저에게 공부할 여력이 있는가에 대해서 고민을 많이 했지만 모임에 뜻하는 바도 있어서 참가했었는데 결과적으로는 시간투자를 많이 하지 못하고 어느정도 어영부영한 꼴이 되어버렸습니다.(약간 반성의 시간...) 보통 스터디를 하게 되면 블로그에 스터디 하면서 알게된 것들의 흔적을 남기는 편인데 개념을 좀 이해하고 남기자 하다보니까 어느새 스터디가 종료되어버렸습니다. ㅡㅡ;;




Cappuccino는 Objective-C를 JavaScript로 포팅한 Objective-J라는 언어에 기반한 웹프레임워크입니다. 일반적으로 프론트앤드에서 사용하는 HTML, DOM, CSS등을 신경쓰지 않고 Objective-J로만 코딩하여 웹애플리케이션을 만들어내는 프레임워크입니다. 사이트에서도 밝히고 있듯이 웹사이트에는 별로 적합치 않고 웹애플리케이션에 더 적합하다고 느껴지고 아직 모바일에서 사용하기에는 무리가 있는 듯 합니다.(요즘같은 때에 모바일에 취약한 것은 꽤 단점이 될 듯 합니다.)

일단 어렵습니다. 그것도 많이 어렵습니다. Cappuccino 공부에 시간을 별로 투자하지 못해서(일주일에 몇시간 정도..) 프레임워크에 대해서 판단한다는 것이 무리라는 생각은 들지만 그냥 제가 받은 인상정도로 생각해 주시면 될것 같습니다. 저는 아주 기초지만 Objective-C를 만져보고 있음에도 상당히 비슷한 문법의 Cappuccino는 또다른 어려움으로 다가왔습니다. 그리고 이 어려움은 관련 리소스의 부족함도 한 몫하고 있습니다. 처음 스터디를 시작할때 280north에서 제공하는 튜토리얼 정도도 괜찮겠다 싶었는데 막상 공부하다보니 그외의 자료는 거의 찾아볼 수가 없었습니다. 블로그 몇개와 Github에 올라온 약간의 소스들이 전부였고 API문서도 막상 무언가 찾아보려고 하면 꽤나 빈약하게 느껴졌습니다.

물론 개인차가 있고 잘 다루는 사람은 잘 다루겠지만 스터디 멤버가 경력들이 짧은 것도 아니고 그래도 코딩을 좀 하신다 하는 분들이었음에도 폰트 사이즈 변경에 몇시간 보내고 버튼에 이미지 넣는데 몇시간씩 걸린다는 것은 진입장벽이 상당히 크다는 느낌이었습니다. Cappuccino가 강점으로 말하는 것은 HTML이나 CSS를 전혀 몰라도 된다고 하지만(실제로 그럴리는 없지만요.) 나머지를 공부하는것보다 Cappuccino의 공부량이 훨씬 크게 느껴졌습니다.




차세대 프론트앤드의 기대주라서 주제를 택하였었는데 개인적으로는 약간 실망한 편입니다. 정확히는 실망이라기 보다는 관심도가 전보다는 좀 떨어진 편입니다. 아직 완성도가 부족한 느낌이고 사실 현업에서 쓰일려면 버그등에 대해서도 개발자가 수정하거나 하는 등의 여지가 있어야 하는데 그럴려면 JavaScript로 구현된 Objective-J의 인터프리터까지 수정해야 하기 때문에 과연 가능할까 하는 의문이 들고 가볍게 만져봤음에도 크로스브라우징에 문제가 있는 약간의 버그들을 발견할 수 있었기 때문에(물론 Cappuccino의 버전은 아직 0.8.1입니다.) 현업에서 쓰기에는 좀 무리가 있지 않나하는 생각입니다.

또한 언제부터 차세대로 주목받기 시작했는지는 알 수 없지만 최근 2-3년 사이에 HTML5가 전면적으로 대두되면서 프로트앤드에서 가능한 부분에 엄청난 변화가 있었습니다. Cappuccino의 장점이라면 기존에 만들기 쉽지 않았던 데스크탑 수준의 애플리케이션을 좀 더 쉽게 만들수 있다는 것인데 웹브라우저의 강력한 성장으로 인하여 그 우위에 대해서 얘기하기가 쉽지 않아졌다고 느껴집니다. 물론 280 Slides의 퀄리티는 상당히 훌륭하지만 Google Docs의 슬라이드기능도 딱히 못하지 않는데다가 CSS3등을 활용하면 Cappuccino만큼의 화려함도 충분하리라 생각합니다.(물론 이런 부분에는 아직 크로스 브라우징에 대한 이슈는 있지만요.)

많이 공부도 안하고서는 너무 안좋은 소리만 하는 것은 좀 아닌것 같아서 제가 느낀 인상은 여기까지만 하겠습니다. 스터디를 종료하면서 어쨌든 새로운 언어에 플랫폼이었으므로 뭔가 만들어보자해서 졸업작품식으로 각자 주제를 정해놓고 프로젝트를 진행했습니다.(마찬가지로 프로잭트에도 많은 시간을 들이지 못했습니다. ㅠㅠ)

1to50 화면

위와 같이 심플한 화면에 아이폰에서 인기를 끌었던 빠른 시간내에 1부터 50까지의 숫자를 차례대로 클릭하는 게임을 구현한 것입니다. 만들어진 결과물은 여기서 볼 수 있습니다. (소스는 Github에 올려놓았습니다.) Cappuccino의 장점이 제대로 나오려면 좀 더 동적이고 화려한 UI를 가져야 하는건데 아무래도 그정도까지는 구현하기에는 제 학습이 좀 부족했습니다. (처음에는 Cappuccino의 IDE인 Atals를 이용해서 개발을 해보려고 했지만 이건 아직 완성이 안되서 그런지 어떻게 써야할지 잘 모르겠더군요. Xcode에 비교해서 그런지 빠진 기능도 많은것 같고요.)

뭐 결과물은 사실 공유하기도 민만할 정도로 나왔고 막상 코딩을 하다보니 Cappuccino 개발에 참고할 소스가 많지 않아서(저같은 경우는 그냥 Objective-C 소스를 참고했습니다.) 어려움이 좀 있었지만 그래도 직접 코딩을 하다보니 그냥 학습만 하던거 보다는 확실히 감이 오는 것 같았습니다. 지속적으로 개발하다보면 어느정도 감이 올듯 하시만 앞에서 말한 것처럼 관심도가 약간 떨어졌기 때문에 당분간은 안보게 될듯 합니다.

Cappuccino가 좀 어렵게 느껴져서 스터디도 진도가 생각처럼 나가지 않고 힘든 점이 있었지만 새로운 좋은 사람들도 많나고 즐거운 시간이었던 것 같습니다. 카푸치노를 좀 이해해보려고 했던 목적은 이루지 못했지만 대충 어떤 것인지는 알게 되었기 때문에 앞으로 Cappuccino가 발전해 나가는 것을 보는데도 도움이 될 것 같습니다.
2011/01/28 23:51 2011/01/28 23:51