본격적인 WWDC08 강행군의 시작


첫째날 세션이 끝나고 컨퍼런스 참가자에게 메일이 한통 왔습니다. 메일 내용중에서 특이한 것은 그날 발표한 세션중에서 인기 있는 세션을 다음날 저녁에 다시 해준다는 내용이 포함되어있었습니다. 일명 “앙코르 세션”! 월요일 앙코르 세션으로 선정된 것은 옆에 그림에서 보는 것 처럼 Mac & iPhone 개발에 대한 소개 세션이었습니다. 다행하게도 제가 듣지 않은 세션이라 이걸 듣게 되면 좀 더 많은 세션을 듣게되는 효과를 누릴 수 있습니다. 때문에 화요일부터 듣고 싶은 세션 선정에 있어서 급 수정에 들어갔습니다. 사람들이 정말 많이 몰릴 것 같은 세션은 살포시 빼주는 센쓰! 를 발휘하면 다음날 또 앙코르 세션에서 들을 수 있으니 혼자서 더 많은 세션을 듣기 위한 전략으로 괜찮은 선택 같습니다. 그리고 보통 WWDC 가 끝나게 되면 일정 시간(보통 9월까지는 나온다고 osxdev 의 LingoStar님이 얘기해주었습니다)이 지난 후에, 세션에 대한 동영상을 다운로드 받을 수 있기 때문에 일반적인 튜토리얼성 세션에 대해서는 바로 컨퍼런스 기간중에 집중해서 들을 필요는 없을 수도 있겠습니다.

여하튼 둘째날 부터는 이제 애플 개발자들과 IT Administrator 들이 관심가질 만한 세션들이 시작됩니다. 모든 세션들은 대체로 연계가 되는 편이라 주초에 시작된 세션의 심화 주제가 주 후반부 세션까지 이어지게 됩니다. 어떤 줄기를 잡고 주욱 따라가는 것이죠. 이번에는 3G iPhone 출시가 한국에서 늦어질 것이라는 키노트의 내용에 따라서 첨에는 iPhone 위주의 세션을 따라가려 했지만, 이것은 추후에 동영상으로 대체하기로 하고 다른 세션들 사냥에 나서게 되었습니다.

사냥 결과! 오늘은 앙코르 세션을 포함해서 도합 6개의 세션을 듣는 강행군을 했습니다. 아 집중력에 한계를 느끼게 되는군요. 그래도 정리 할만한 것들을 추려서 정리해보도록 하겠습니다. 

(팁 하나, 앙코르 세션의 경우에는 경험해보니 직접 과외 받는 듣한 착각이 들 정도로 소수의 인원이 집중력있게 들을 수 있어서 추천할만 합니다)

Integration Your Organization’s First Macs

이 세션에서는 여러가지 내용이 있었지만 모바일 서비스를 준비하는 사람들에게 어떤 점을 중점적으로 고려해서 모바일 애플리케이션을 만들어야 하는지에 대한 내용과 그 셈플 사이트들을 소개해주었습니다. 특히 기존에 서비스를 보유하고 있는 회사가 어떻게 효과적으로 모바일로도 서비스 할 수 있는지에 대한 내용이 인상적이었습니다. 

훌륭한 iPhone 애플리케이션이 갖추어야할 덕목중 일부를 소개하면 :

  • Focused : 모두 표현하려하지 말고 서비스의 일부 기능또는 내용을 서머라이즈 하는 등의 컨텐츠에 집중에서 보여줘야 한다는 내용이었습니다.
  • Fast : 당연히 속도가 중요한데 잘 Focused 하면 속도가 빨라질 것이다는 것이죠.
  • Formatted : 이 항목은 이왕이면 패닝이나 줌 같은 것이 없도록 하는 것이 좋다고 하였습니다. 그냥 웹을 축소만 해놓고 계속 확대해서 본다면 정말 짜증나는 일일겁니다.
  • Familiar UI / Nav : 이건 꼭 모바일용 애플리케이션이 아니어도 고려해야 하는 내용입니다.
  • Intuitively Integrated : 기존에 있는 애플리케이션들하고 잘 통합하는 것도 중요하다고 꼽았습니다.

이런 항목을 잘 적용해서 구현한 소개된 셈플로 소개된 서비스들은 Fandango, Directory 등이 있었습니다. 애플의 사례에서는 Salse Report 같은 경우를 iPhone 용으로 서비스를 하는 단계에서 Focused 항목에 맞추어 복잡한 표를 단순히 컬럼만 줄이는데 그치는 것이 아니라. 완전히 새로운 개념으로 UI 디자인을 새로 했다고 합니다. 없던 그래프 까지 넣어가면서 …  같은 내용도 받아들여서 소화하는 능력에 따라서 완전히 새롭고 신선한 접근이 가능하다는 것을 애플이 잘 보여주는 것 같습니다.

iPhone 애플리케이션 종류와 사용특징

iPhone 애플리케이션은 Native Apps와 Web Apps 의 두가지로 나뉘는데 업데이트와 사용빈도 측면에서 비교를 해보면 :

  Native Apps Web Apps
업데이트 빈도 낮다 높다
사용빈도 높다 낮다

와 같이 비교를 하였습니다. 이런 두가지 애플리케이션의 활용에 대한 경계 영역을 일종의 Hot Spot 으로 분류하고 이 경계를 잘 활용해서 애플리케이션의 특성에 따라서 어떤 형태의 애플리케이션으로 개발할 것인지 결정해야 한다고 하였습니다. iPhone 용 애플리케이션 개발에 있어서 Native 로 가야하나 아니면 Web 버젼으로 가야하나 고민이 되는 사람에게는 약간의 참고가 될 수 있겠습니다. 한국 개발자들에게는 아직 시간적인 여유? 가 본의 아니게 생겨서 앞으로 나오게될 애플리케이션들을 주시해 보는 것도 좋은 전략이 될 수 있겠습니다.

이어지는 세션들… 세션들…

이어지는 세션에서는 MacOS의 주요 개발툴에 대한 사용방법과 메인 프레임웍인 Cocoa 그리고 이 프레임웍을 이루고 있는 Objective-C  의 장점이나 주요 구성요소들에 대해서도 찬찬히 설명을 해주는데 이 내용들은 대부분 애플 개발자 사이트에서 참고 자료로 충분히 구할 수 있는 것들이라고 생각되었습니다.

Objective-C 와 함께 코코아 홀짝 거리기

이중에서 역시나 개발자이다 보니 어쩔 수 없이 Objective-C 언어에 관심이 가지 않을 수 없었는데요, 한국 루비계의 큰산!인  deepblue 님이 이 언어를 좋아라 하는 이유들에 대해서 조금은 알 수 있었습니다.

여러가지 feature 들이 있겠지만 몇가지를 추려보면 :

  • Target-Action : 타겟은 오브젝트의 인스턴스이고 액션은 콜할 메소드이다. (명쾌한 말입니다 – Cocoa 프로그래밍을 할 때 헷갈리는 것중에 하나인데 어떤걸 Target 으로 하고 어떤걸 Action으로 해야하는지 모호하 다고 느낄 때가 많았는데 이렇게 단순하게 정리해놓고 나서 생각하면 좋을 것 같습니다)
  • Delegation : 이 개념은 구현을 위해서 항상 subclassing 을 하지 않고 delegate 해줄 수 있으니 (예를 들어서 윈도우 오브젝트에게 delegation 오브젝트를 따로 만들어서 윈도우 내에 어떠어떠한 객체들에게서 이벤트가 발생하면 변화를 알려줘 라고 설정만 해주면 되는 것이죠 – 이런 설정의 핵심에 인터페이스 빌더 라는 걸출한 개발툴이 자리잡고 있습니다). 이렇게 개발자의 수고를 덜어주고 간결해질 수 있어서 좋았던 것 같습니다. 다이내믹 하면서도 Static 한 feature 들을 두루 가지고 있는 Objective-C 는 기존에 C 언어들의 강력한 라이브러리들을 같은 코드내에서 그냥 바로 쓸 수 있기에 더욱 강력해 지는 것 같습니다.
  • 메모리 관리 측면에서도 두가지가 현재는 병행 지원된다고 볼 수 있는데요 :

    • Reference counting : MacOSX 전 버젼과 iPhone 에서 사용되고 있음
    • Garbage collection : MacOSX 10.5 이후 버젼에서 사용되나 iPhone 에서는 지원안함

    이런 두가지가 모두 지원되고 있었습니다. 앞으로 메모리 관리에 대한 변화의 방향이 보이네요.

 

등등 여러가지 수많은 이야기들을 하였지만 제 기억 용량의 한계로 여기까지만.. 여하튼 너무너무나 많은 강력한 라이브러리들의 탑재로 살펴볼 것이 산더미 같네요. 이건 차차 파해쳐 나가야 겠습니다. Cocoa 프레임웍이 개발된지가 20년이 되었다니 생각보다 나이가 많죠?

 

이 뿐만이 아니라 Cocoa 프레임웍을 사용하게되면 지원해주는 것들이 정말 많았는데 놀랐습니다. 예를들면 Cocoa 프레임웍 중에서 NSDocument 클래스를 사용하게 되면 개발자들은 별도의 노력 없이도 1) 지역화된 에러 리포팅 2) 지역화된 윈도우 타이틀 3) 저장, 다른이름으로 저장, 되돌리기 등의 기능 4) 최근 열어본 파일 5) 자동저장 등등의 많은 기능들을 갖도록 해주었습니다. 정말 강력합니다.

앙코르 세션

Deric Horn 이라는 애플의 기술 애반젤리트스가 메인 발표자 였습니다. 역시 애반젤리스트라서 그런지 몰라도 너무 말을 잘하더군요. 여기서 발표한 내용은 이번 WWDC08 의 전체 세션에 대한 아젠다 같은 성격을 갖고 있다고 봐도 될 것 같았습니다. 어떻게 접근해야 할지 머릿속에 맵을 그려주는 훌륭한 세션이었습니다. 전체적인 아키텍처와 Cocoa, Cocoa Touch, 개발툴 (Xcode, Interface Builder), Objective-C, Design Pattern, Cocoa 에 적용된 기술들, Cocoa Touch 의 View 에대해서.. 등등 (이부분은 http://hannibal.tistory.com/

후기

오늘 하루도 정말 치열하게 지나가는 것 같습니다. 내일은 본격적으로  Lab 세션들이 시작되는 날인데요. 저 같은 경우는 직접 만든 Cocoa 애플리케이션이 없다보니  Bring Your Code 라는 모토에 전혀 맞지 않아서 어떻게 될진 모르겠지만 함께 하고 있는 osxdev 개발자 분들을 응원이라도 해야겠네요. 정말 궁금합니다. 애플 개발자들을 직접 만나서 옆에서 페어를 하는 기분이 어떨런지 ~~~

어쨌든 둘째날 부터 사진이 거의 없다는 것을 느끼실 수 있을 겁니다. 역시나 세션에서 공유되는 내용에 대해서 사진을 찍어서 올려서는 안된다는 그런 정책 때문에 약간 조심해 하면서 글을 쓰고 있습니다.

그럼 내일 새로운 소식을 가지고 또 애플의 세계로 ~~ 제가 애플 직원인지 오픈마루 직원인지 모르겠네요. 왜이리 애플 홍보를 하는 것인지… 주변 소식을 나열하다보니 그렇게 된 것이라 널이 양해 바랍니다.

 

이 글은 스프링노트에서 작성되었습니다.