Leopard 기술 개요
Leopard는 여섯번째 Mac OS X 메이저 버전으로 현재 가장 강력하고 앞선 기술입니다. 사용자들에게는 다양하고 새로운 기능과 우아한 사용자 환경의 개선으로 즐겁게 Mac을 사용할 수 있게 하며, 개발자들에게는 그 이상을 제공합니다. Leopard는 첨단 프레임워크, 막힘없는 개발자 툴, 새로운 응용 프로그램 기술, 시스템 차원의 강력한 기초 등 다양한 기술을 포함하고 있으며, 어떤 종류의 개발자라도 만족할 수 있는 새로운 기능을 제공합니다.
혁신적으로 설계된 운영 체제
Leopard에 수많은 새 개발 기술을 추가한 목적은 개발자 여러분이 다양한 기능을 가진 놀랍고 탁월한 응용 프로그램을 쉽게 제작할 수 있게 하는 것입니다. 과거에는 훌륭한 응용 프로그램의 기준이 프로그램이 제공하는 기능성이었지만, 시간이 흐르면서, 사용하기 쉬운 응용 프로그램이 각광을 받게 되었으며, 작업을 단순하게 수행하는 것이 아니라 얼마나 쉽고 간단하게 수행할 수 있는지가 더욱 중요해졌습니다. 지난 몇 년간 그 기준은 다시 높아졌습니다. 지금은 그 기능과 쉬운 사용은 물론이고, 얼마나 즐겁게 사용할 수 있는가로 훌륭한 응용 프로그램의 기준이 결정됩니다.
Leopard의 기술을 십분 활용하여 여러분의 응용 프로그램을 한 차원 높은 수준으로 끌어올릴 수 있습니다. 여러분의 응용 프로그램에 감탄할만한 요소를 추가함으로써 고객을 사로잡을 수 있습니다.
Leopard Early Start Kit으로 Leopard 개발을 시작해 보십시오. ADC Premier와 Select 회원에게 제공되는 이 개발 킷은, Leopard 개발자 센터, iTunes의 ADC의 WWDC 2006 Leopard 세션 비디오를 통해 제공되는 Leopard 사전배포 소프트웨어, 문서, 예제 코드를 포함한 Leopard 기술을 이용한 혁신적 개발을 돕는 개발 자료에 앞서 접근할 수 있게 합니다.
Leopard 기술 알아보기
ADC는 여러분이 Leopard에 익숙해질 수 있도록 몇 달에 걸쳐 Leopard 기술에 대한 문서 시리즈를 제공할 것이며, 이 문서를 통해 Xcode, Objective-C 2.0, Core Animation, Image Kit, Instruments 등을 깊이 있게 다룰 것입니다.
Leopard에 소개되는 24개 이상의 새롭고 강력한 기술, 툴, API에 대한 개요로 시리즈를 시작합니다.
개발자 툴
개발자로서 Leopard를 설치하고 가장 먼저 해야할 일은 새로운 개발자 툴을 살펴보는 것입니다. Apple은 여러분이 대형 프로젝트를 쉽게 제작하고 관리할 수 있도록 Xcode와 Interface Builder를 개선하기 위해 많은 시간과 노력을 기울여 왔습니다. Leopard에서는 거기서 멈추지 않고, 완전히 새로운 Instruments와 Dashcode 툴을 소개합니다. Instruments는 이전에는 불가능했던 방법으로 응용 프로그램의 구동을 모니터링 할 수 있게 합니다. Dashcode는 Dashboard 위젯을 빠르게 제작할 수 있게 합니다.
Xcode 3.0
Xcode는 모든 Mac OS X용 코드를 개발할 수 있는 Apple의 통합 개발 환경(IDE)으로, 개발 과정에서 매우 중요한 부분을 담당하고 있기 때문에 개발 작업의 꽃이라고 할 수 있습니다. Apple은 여러분의 생산성을 향상시킬 수 있도록 더욱 원활하고 빠른 Xcode 최신버전을 만들기 위해 많은 시간을 들였습니다. 텍스트 에디터를 사용하는 순간, 여러분은 Xcode가 개선되었음을 금방 알아차릴 수 있을 것입니다. 코드 폴딩, 스코프 하이라이팅, 브레이크 포인트는 물론 빌드 경고와 에러를 나타내는 iChat형 말풍선 등 주요 에디팅 기능이 새롭게 강화되었습니다.
새로운 Research Assistant는 작업하는 동안 문서에 접근할 수 있도록 작고 편리한 패널로 여러분 코드의 기호에 대한 관련 정보를 나타내 줍니다. 더 자세한 정보가 필요할 경우에는 클릭 한 번으로 전체 문서를 보여주는 창을 열 수 있습니다. 또한, 코드를 테스트할 경우에는, Project Snapshot으로 여러분의 프로젝트 상태를 기록했다가 나중에 언제라도 그 상태로 돌아갈 수 있습니다. 따라서, 프로젝트 소스 코드 리포지토리를 확인하지 않고도 신속하게 여러분의 아이디어를 테스트해 볼 수 있습니다.
Interface Builder 3.0
Interface Builder는 직관적이고 사용하기 쉬운 사용자 인터페이스 리소스 파일 (nib 파일) 저작 및 에디팅 툴입니다. 이 파일은 인터페이스 객체들과 그 관계 집합을 나타내며, 여러분의 응용 프로그램 로직과의 연결을 보여 줍니다. Leopard에서는 Leopard의 새로운 인터페이스 기술을 지원하면서 여러분이 더욱 쉽게 응용 프로그램을 개발 할 수 있도록 Interface Builder를 완전히 새롭게 업데이트하였습니다.
새로운 Interface Builder에서는 여러분의 사용자 인터페이스를 레이아웃하는 것 이외에도, iChat 슬라이딩 리스트 뷰 또는 Keynote 스타일 트랜지션과 같은 인상적인 Core Animation 기반 비헤이비어를 여러분의 응용 프로그램에 몇 분만에 추가할 수 있습니다. 응용 프로그램 인터페이스 버전 간 차이점을 확인할 수 있는 기능을 개선시켰습니다. 또한, 플러그인 개발자를 위한 새로운 Interface Builder Kit API도 함께 제공합니다.
Instruments
Instruments는 최신 타임라인 기반 성능 시각화 툴로 여태까지는 불가능했던 방법으로 여러분의 응용 프로그램이 작동하는 것을 모니터링 할 수 있는 기능을 제공합니다. CPU, 디스크 I/O, 메모리 사용, 가비지 콜렉션, 이벤트 등을 시간 기반 그래프 형식으로 보여 줍니다.
예를 들면, UI 이벤트를 실시간 추적하고 이들이 I/O 활동, CPU 부하량에 어떤 영향을 미치는지 동시에 확인할 수 있습니다. 데이터가 수집되면 응용 프로그램의 구동 과정을 앞뒤로 스캐닝하며 정확하게 어떤 상황이 언제 발생했는지 확인할 수 있습니다.
Instruments는 오픈소스 DTrace 유틸리티 위에 구축되었습니다. DTrace는 포괄적인 명령어 모니터링 유틸리티로 거의 모든 시스템 성능을 감시할 수 있으며, 제로에 근접하는 오버헤드로 모든 일반적 시스템 성능을 포함하는 대규모 툴 세트, 커널 및 사용자 코드와 함께 제공됩니다. Instruments에서 지원하지 않지만 추적을 원하는 시스템 성능이 있다면 D 프로그래밍 언어를 이용하여 스스로 툴을 만들어 감시할 수 있습니다.
Dashcode
Dashcode는 Apple의 새로운 Dashboard 위젯 개발 환경으로 내장 디버거와 텍스트 에디팅과 같은 전문 IDE 기능을 제공합니다. JavaScript 소스코드를 통해 위젯 실행을 추적할 수 있을 뿐 아니라 브레이크포인트를 설정하고 조회할 수 있습니다.
Dashcode는 위젯 개발자라면 수준에 관계없이 사용할 수 있습니다. 사전 구축된 템플릿으로 시작하고 필요에 맞게 변경하거나, 위젯의 외양과 동작을 규정하는 JavaScript, CSS, HTML을 깊이있게 사용할 수 있습니다.
응용 프로그램 기술
Leopard는 Cocoa 응용 프로그램 프레임워크 세트에 다양한 기능을 개선하고 추가하였습니다. 가장 눈에 띄는 것은 뛰어난 인터페이스를 더욱 쉽게 제작할 수 있는 새로운 Core Animation 프레임워크입니다. 새로운 그래픽 컨트롤, BSD 코어 시스템에서 그래픽, 사운드, 네트워킹에 이르는 전체 Cocoa 스택을 64비트 성능으로 무장한 것, 가비지 콜렉션을 Objective-C에 추가한 것도 크게 드러나지는 않지만 중요한 개선 사항입니다. 또한, Leopard는 Core Data의 성능을 열 배 증가시킬 수 있게 합니다.
Core Animation
Core Animation은 단순하고 접근가능한 프로그래밍 모델을 이용하여 애니메이션, 컴포지션, 동적 사용자 인터페이스를 제작하기 위한 Cocoa 프레임워크입니다. 이를 이용하여 제작한 유연한 애니메이션은, Quartz, OpenGL, Core Image로 사용할 수 있으면서도, Application Kit 뷰 아키텍쳐를 미러링하는 NSView 스타일 계층 구조로 나타나므로 더욱 친숙합니다. Spaces 및 Time Machine을 포함하여 Leopard에 새롭게 추가된 다수의 사용자 수준 기능은 Core Animation을 활용하여 사용자 인터페이스 트랜지션을 수행합니다.
Core Animation을 이용하면 쉽게 여러분의 응용 프로그램에서 영화같은 사용자 환경을 제공할 수 있습니다. 사용자 인터페이스 엘리먼트를 스크린 주변으로 부드럽게 이동시킬 수도 있고, 페이드 인, 아웃이 가능하며, 몇 줄의 코드만으로 효과를 추가할 수도 있습니다. Quartz와 Core Image 이외에도, Core Video와 Quartz Composer를 활용하여 광범위한 시각적 효과를 구현할 수 있습니다. 코드 또는 Interface Builder를 이용하여 직접 Core Animation을 사용할 수 있습니다.
Objective-C 2.0
Objective-C는 동적 객체지향 확장 ANSI C 호환 언어입니다. Smalltalk 스타일의 메시지의 강력함과 C언어의 네이티브 시스템 수준 접근 및 성능을 결합하였습니다. Objective-C의 성능은 Cocoa 프레임워크를 기반으로 한 것입니다. Leopard에서는 Objective-C 런타임을 업데이트하였고, 전체적으로 최신 및 최고 성능의 가비지 콜렉션 시스템을 포함시킴으로써, 더 이상 메모리 관리가 필요없게 되었습니다.
Objective-C 2.0에서 새로운 또 한가지는 프로퍼티 액세서 (property accessors)와 빠른 euumeration을 포함한 개선된 신택스입니다. 이와 같은 개선으로 Objective-C 2.0은 현대적인 개발자들의 기대에 부응하는 최신 언어로 거듭났습니다. 또한, Objective-C 2.0은 기존 Objective-C 소스와 호환되기 때문에 언제든지 여러분이 원하는 시점에 2.0으로 전향할 수 있습니다.
iChat 통합
인스턴트 메시징은 사용자들의 소통과 협력 면에서 필수적인 도구가 되어 왔습니다. Leopard에서는 협력 기능이 한 차원 높아졌습니다. iChat 세션에서는, 사용자들이 iChat Theatre를 이용하여 iPhoto, Keynote와 같은 다른 응용 프로그램의 데이터를 가져와 화상 회의 기능의 한 부분으로 프리젠테이션하는 것이 가능해졌습니다. 여러분이 제작한 응용 프로그램도 Core Video와 Core Audio API를 통해 Instant Messaging 프레임워크를 이용하여, 같은 방법으로 iChat과 통합시킬 수 있습니다. 통합된 응용 프로그램에서는 Instant Messaging 프레임워크가 H.264 코덱을 이용하여 자동으로 컨텐트를 압축하고, 네트워크를 통해 원격 사용자의 디스플레이로 전송합니다.
Instant Messaging 프레임워크의 또 다른 기능은 현재 상태를 관리할 수 있다는 것입니다. 이는 여러분의 응용 프로그램이 사용자의 iChat 상태가 대화 가능인지, 혹은 다른 용무 중인지, 상태 메시지가 무엇인지, 쿼리하는 것은 물론 이를 변경할 수도 있다는 것을 의미합니다. 또한, 대화상대 목록에 접근할 수도 있습니다. 여러분이 컨텐트를 중심으로 한 협업 응용 프로그램을 구축 중이라면, 사용자들에게 친구나 동료들의 온라인 여부를 알려주는 API를 사용할 수 있습니다.
해상도 독립성
디스플레이 기술의 발전으로 디스플레이가 72dpi라는 설정은 진부한 내용이 되었습니다. 요즘 판매되는 Mac은 네이티브 해상도가 100dpi 이상인 디스플레이를 탑재하고 있습니다. 더구나, 인치 당 픽셀의 수는 향후 몇 년 간 큰 폭으로 증가할 것입니다. 이는 디스플레이가 더욱 선명하고 부드러워 진다는 것을 의미하지만, 픽셀 기반 인터페이스가 축소된다는 것을 의미하기도 합니다. 해결 방법은 일반적으로 받아들여왔던 72 dpi 설정에서 벗어나는 것입니다. Leopard에서는, 스케일 팩터를 이용하여 시스템이 사용자 인터페이스 요소를 불러내는 것이 가능합니다. 따라서, 높은 dpi 디스플레이의 해상도와 선명도를 구현함과 동시에 물리적으로 동일한 크기의 사용자 인터페이스를 유지할 수 있습니다.
해상도 독립성의 도입은 여러분의 응용 프로그램을 최대한 보기 좋게 만들기 위해 해야 할 작업이 있다는 것을 의미합니다. 현대적 Cocoa 응용 프로그램의 경우, 대부분의 작업은 래스터 기반 리소스를 중심으로 이루어 집니다. QuickDraw를 사용하는 구형 응용 프로그램의 경우에는, QuickDraw 기반 호출을 Quartz 호출로 대체하기 위해 더 많은 작업들이 필요합니다.
Calendar Store
Calendar Store 프레임워크는 사용자의 iCal 캘린더 데이터에 접근할 수 있게 합니다. 이 프레임워크를 이용하여 캘린더, 이벤트, iCal 데이터 스토리지의 작업을 를 가져올 수 있습니다. 따라서, 여러분의 응용 프로그램은 관리자가 스케줄 및 할일과 같은 항목을 관리하기 위해 사용하는 iCal, Mail, 기타 응용 프로그램과 동일한 데이터를 사용할 수 있습니다.
그래픽 & 미디어
각 Mac OS X 릴리즈는 QuickTime, Quartz, OpenGL, Core Audio의 기능 상에서 구축되었으며, 이를 확장시켜 왔습니다. Leopard도 마찬가지입니다. Leopard의 Graphics & Media 프레임워크는 더욱 높은 수준의 응용 프로그램 기술을 가능하게 하였을 뿐 아니라, 이를 새롭고 흥미로운 방법으로 확장시켰습니다.
Image Kit
Image Kit은 새롭고 강력한 Core Image 및 Core Animation을 사용한 Cocoa 기반 프레임워크입니다. 이는 여러분의 응용 프로그램에 강력한 이미징 서비스를 쉽게 통합할 수 있으며, 콜렉션의 이미지를 검색, 브라우징, 조회할 수 있는 기능을 제공한다는 것을 의미합니다. 이미지를 그룹 뷰로 재배치 할 수 있음은 물론 개별 이미지로 회전할 수도 있습니다. Image Kit은 이미지 상의 Core Image 필터를 찾고, 미리보기하고, 설정할 수 있는 방법도 제공합니다.
OpenGL 개선
OpenGL은 이동식 쌍방향 2D 및 3D 응용 프로그램을 개발할 수 있는 업계 표준 API입니다. Mac OS X은 아웃셋에서 OpenGL을 지원해 왔으며, Leopard는 sRGB 색상 공간에 픽셀 버퍼 오브젝트, 색상 관리 텍스쳐 이미지를 추가하였으며, 셰이더 프로그래밍 API를 개선하였습니다.
Leopard는 또한 또 다른 쓰레드 상의 CPU 기반 프로세싱을 줄이고 나중에 별도의 CPU 코어에서 GPU 피딩을 수행하며 구동시킴으로써 획기적으로 증가된 OpenGL 성능을 제공합니다. 이 방법은 OpenGL 기반 응용 프로그램의 성능을 전반적으로 증가시키며, 어떤 경우에는 2배까지도 증가시킬 수 있습니다.
QuickTime 개선
QuickTime을 이용한 비디오 작업은 Mac OS X의 강점이 되어 왔습니다. 이제 여러분의 응용 프로그램에 사전에 녹화된 비디오로 작업하는 것만큼이나 쉽게 비디오 캡쳐 기능을 구축할 수 있게 되었습니다. QTKit Capture API를 이용하여, iSight, USB (VDC), FireWire (IIDC), DV 카메라로부터 비디오를 캡쳐할 수 있습니다. 이 API는 멀티 아웃풋도 지원합니다.
QuickTime의 구조는 Leopard에서 상당한 발전을 이루었습니다. H.264 인코딩 처리를 강화하였으며, 64비트를 지원할 수 있게 되었습니다. 64비트 QuickTime 기능은 오직 QTKit 프레임워크를 통해서만 제공된다는 것을 알아 두십시오. C 기반 QuickTime API는 32비트 모드로만 지원됩니다.
Picture Taker 패널
Mac OS X은 다수의 응용 프로그램에서 이미지를 사용해 왔습니다. 일례로 Mac OS X은 최초 설정시 내장 또는 부착된 카메라로 여러분의사진을 찍습니다. Leopard는 Picture Taker 패널을 사용하는 모든 응용 프로그램에서 사용자의 사진을 찍을 수 있는 기능을 제공합니다. 이는 사용자가 내장 또는 장착된 카메라를 가지고 있는지에 대한 상세한 내용을 처리할 뿐 아니라, 플래시 라이트 기능도 제공합니다. 여러분은 짧은 시간 안에 Picture Taker 패널을 열고, 사용자가 사진에 만족할 경우, 여러분의 응용 프로그램에 사진의 반환값을 넘겨주게 할 수 있습니다.
OS 기초
Leopard에서는 Mac OS X의 중심, 즉 Darwin이라고 알려진 Open SourceMach 및 BSD 기반 UNIX 레이어의 개선이 계속되고 있음을 확인할 수 있습니다. 최신 Mac 하드웨어는 더 높은 수준의 프로세싱 파워, 코어, 메모리를 제공합니다. Leopard의 커널은 이와 같은 발전된 하드웨어를 충분히 활용할 수 있도록 계속해서 발전하고 있습니다.
Leopard는 단지 이름 뿐인 UNIX 계열이 아닙니다. Apple은 Leopard와 Leopard Server를 Open Group에 제출하여 UNIX '03 제품 기준에 부합한다는 것을 인증받을 예정입니다.
Leopard의 64비트 지원
Tiger에서 처음 UNIX 차원 실행을 구현한 후, Leopard는 Mac OS X 응용 프로그램 차원의 64비트 지원을 제공합니다. 여러분은 현재 사용되는 Intel 기반 CPU를 이용하여 128TB라는 엄청난 대형 데이터 집합을 다루는 64비트 응용 프로그램을 제작할 수 있습니다. Mac OS X에서 사용된 64비트 모델은 LP64라는 이름으로 알려져 있으며, Sun, SGI, 64비트 Linux의 다른 64비트 UNIX 시스템에 사용된 것과 동일한 모델입니다.
이 밖에도 Mac OS X은 64비트 지원과 함께 현재의 32비트 응용 프로그램 구동도 계속 지원합니다. Intel 프로세서의 경우, 64비트 응용 프로그램은 64비트모드에서 가능한 CPU 레지스터 수가 증가하였으며, 32비트에 비해 빠르게 작동합니다.
정보 기술
Mac OS X과 Mac OS X Server는 다양한 기능을 제공하며, 다양한 솔루션을 가능하게 합니다. Mac OS X Server 각 버전은 사용하기 쉬운 관리 툴을 제공함과 동시에 그 기능성을 대폭 향상시켰습니다. Leopard는 가장 강력한 Server 버전으로, Mac 개발 및 테스트 랩을 운영하는 시스템 관리자, IT 매니저, 개발자들이 서버를 관리할 수 있는 도구와 오픈 소스 제품의 호스트 상에 구축되었습니다.
무엇보다, Leopard Server는 Leopard와 동일한 커널을 사용하고 동일한 64비트 기능을 지원하는 Leopard의 수퍼셋이라고 볼 수 있습니다. Leopard의 64비트 프레임워크를 바탕으로 구축된 Leopard Server의 모든 서비스는 64비트가 가능하므로, 엉청난 양의 메모리를 활용할 수 있을 뿐 아니라, Intel 기반 64비트 프로세서의 증가된 성능을 즐길 수 있습니다.
Open Directory 4
Leopard Server는 LDAP 프록싱, 교차 도메인 승인, 캐스케이딩 리플리케이션, 레플리카 세트를 지원하는 Open Directory 업데이트 버전과 함께 제공됩니다. 또한 여러분의 사무실 또는 캠퍼스에 설치된 AirPort 베이스 스테이션을 위한 RADIUS 인증도 지원합니다.
Calendaring Server
Darwin Calendar Server는 조직 내에서 사용자들이 캘린더를 공유하여 협력 작업을 진행할 수 있게 하며, 스케줄을 저장하고 기기 간 동기화를 수행할 수 있는 공유 위치도 제공합니다. 또한, 사용자들이 서로 이벤트 초대장을 보낼 수 있게 합니다. CalDAV 프로토콜을 이용하여 실행되므로, Leopard의 iCal, Mozilla의 Sunbird, OSAF의 Chandler, Microsoft의 Outlook을 포함한 다중 캘린더링 클라이언트를 지원합니다.
Ruby on Rails
Leopard Serve는 높은 생산성의 강력한 Ruby on Rails 웹 응용 프로그램 프레임워크 내장 설치 기능을 제공합니다. Ruby on Rails는 생산성을 지속가능하게 만드는 풀 스택 프레임워크입니다. Leopard Server는 웹 기반 응용 프로그램의 단순화된 개발과 이행을 위한 Mongrel과 함께 제공됩니다.
Leopard 시작하기
세계에서 가장 앞선 운영 체제의 차세대 버전이 나왔습니다. Mac OS X Leopard의 혁신적인 기술을 경험하고 여러분의 제품을 새롭고 놀라운 기능들로 설계하여 보십시오. ADC Premier 또는 Select 회원들에게는, iTunes의 ADC, Coding Headstarts, ADC 호환성 랩 등 Apple 엔지니어와 전문가들이 제공하는 광범위한 개발 자료가 제공됩니다. 코딩 단계에서 출시 단계까지 Apple의 전문적인 혜택을 누릴 수 있는 ADC 회원 가입에 대해 자세히 알아 보십시오.
업데이트: 2007-11-08