<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=ProgrammingInObjectiveC%3AChapter_20</id>
	<title>ProgrammingInObjectiveC:Chapter 20 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=ProgrammingInObjectiveC%3AChapter_20"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=ProgrammingInObjectiveC:Chapter_20&amp;action=history"/>
	<updated>2026-04-09T07:41:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=ProgrammingInObjectiveC:Chapter_20&amp;diff=3661&amp;oldid=prev</id>
		<title>Onionmixer: OC2 20장 :: 코코아 소개 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=ProgrammingInObjectiveC:Chapter_20&amp;diff=3661&amp;oldid=prev"/>
		<updated>2013-07-31T13:53:21Z</updated>

		<summary type="html">&lt;p&gt;OC2 20장 :: 코코아 소개 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;3장 코코아와 아이폰 SDK / 20장 : 코코아 소개&lt;br /&gt;
&lt;br /&gt;
==20장 :: 코코아 소개==&lt;br /&gt;
&lt;br /&gt;
지금까지 작성한 프로그램들은 사용자 인터페이스가 간단했다. 모두 NSLog 루틴에 기대어 콘솔에 메시지를 표시하였다. 이 루틴은 매우 유용하지만, 그만큼 기능이 제한되어 있다. 맥에서 사용했던 프로그램들은 우리가 만든 프로그램처럼 낯설거나 어색해 보이지 않았을 것이다. 사실, 맥의 명성은 사용자 친화적인 다이얼로그와 쉬운 사용방식이 기반을 이룬다. 다행스럽게도 Xcode 와 인터페이스 빌더를 결합하면 여러분도 충분히 명성에 걸맞는 프로그램을 만들 수 있다. 이 두 프로그램을 결합하면 편집이나 디버깅 도구는 물론 온라인 문서에 편리하게 접근하여 프로그램을 개발하는 데 강력한 환경이 조성된다. 그 뿐 아니라 복잡한 그래픽 사용자 인터 페이스(GUI)를 손쉽게 개발할 환경도 마련된다.&lt;br /&gt;
&lt;br /&gt;
여러분에게 풍부한 사용자 경험을 제공하는 응용 프로그램을 만들도록 지원해주는 프레임워크를 코코아라고 부른다. 이는 두 프레임워크로 구성되어 있다. 바로 이미 낯익은 Foundation 프레임워크와 Application Kit(혹은 AppKit) 프레임워크다. Application Kit 프레임워크에서는 창, 버튼, 목록등에 연관된 클래스들이 제공된다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===프레임워크 계층도===&lt;br /&gt;
&lt;br /&gt;
맨 아래에 있는 하드웨어와 최상위에 있는 응용 프로그램을 분리하는 계충을 하나씩 설명할 때, 보통 도표를 사용한다. 그림 20.1 역시 그런 도표 가운데 하나다.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;커널&amp;#039;은 &amp;#039;장치 드라이버&amp;#039;의 형태로 하드웨어와 저수준 통신을 할 수 있게 한다. 커널은 시스템 자원을 관리한다. 자원에는 실행, 메모리 관리와 전원, 기본 I/O 작업 수행 등을 조율하는 프로그램 들이 포함된다.&lt;br /&gt;
&lt;br /&gt;
이름에서 알 수 있듯이 &amp;#039;코어 서비스&amp;#039;는 위 레이어에서 사용히는 저수준 핵심(core) 기술을지원한다. 예를들어 컬렉션, 네트워킹, 디버깅, 파일관리, 폴더, 메모리 관리, 스레드, 시간, 전원 등을 여기서 지원한다.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;애플리케이션 서비스&amp;#039; 계층은 Quartzz, OpenGL, QuickTime 등을 포함하여 인쇄와 그래픽 렌더링을 지원한다.&lt;br /&gt;
&lt;br /&gt;
[[image:OBJC_image_20_01.png|none|그림 20.1 응용 프로그램 계층도]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
응용 프로그램 바로 밑에는 코코아 계층이 존재한다. 이미 말했듯이, &amp;#039;코코아&amp;#039; 에는 Foundation 과 AppKit 프레임워크가 들어 었다. Foundation 은 컬렉션, 스트링,메모리 관리, 파일시스템, 아카이빙 등을 다루는 클래스를 제공한다. AppKit 에는 Mac OS X 의 강점인 뷰, 윈도우, 도큐먼트 같이 풍성한 사용자 인터페이스를 만드는 클래스들이 들어 있다.&lt;br /&gt;
&lt;br /&gt;
이 설명을 듣고 나면, 몇몇 계층 사이에는 중복되는 기능이 있다고 생각하게 될 것이다. 컬렉션은 코코아와 코어 서비스 계층에 모두 존재한다. 그러나 엄밀히 말하면 코코아가 코어 서비스 계층을 기반으로 한다. 또한, 이따금 특정 계층을 건너뛰는 일도 있다.&lt;br /&gt;
&lt;br /&gt;
예를 들어 Foundation 클래스 가운데 파일시스템을 다루는 클래스를 보자. 이 클래스는 애플리케이션 서비스 계층을 건너뛰고 바로 코어 서비스계층의 기능을 사용한다. 대부분 FOllndation 프레임워크는 (보통 절차적 언어 C로 작성된) 저수준 코어 서비스 계층에 정의된 데이터 구조의 객체지향 매핑을 정의한다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===코코아 터치===&lt;br /&gt;
&lt;br /&gt;
아이폰에는 MacOSX의 축소 버전을 구동시키는 컴퓨터가 담겨 있다. 가속도 센서 같은 몇몇 기능은 아이폰에만 있는 독특한 기능이다. 이는 MacBook 이나 iMac 과 같은, 다른 Mac OS X 컴퓨터 에서는 볼 수 없다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{ObjcNoticeOne|사실, 맥 노트북에는 가속도 센서가 들어 있어서 컴퓨터를 떨구면 하드디스크가 멈춰진다. 그러나 여러분의 프로그램에서는 이 가속도 센서에 직접 접근할 수 없다.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
코코아 프레임워크는 Mac OS X 데스크톱과 노트북 컴퓨터용 응용 프로그램을 개발하고자 고안되었다. 반면 코코아 터치 프레임 워크는 아이폰과 아이팟 터치에서 실행할 응용 프로그램을 개발할 용도로 고안되었다.&lt;br /&gt;
&lt;br /&gt;
코코아와 코코아 터치 모두 Foundation 프레임워크를 공통으로 가지고 있다. 그러나 코코아 터치에서는 UIKit 이 AppKit 을 대체하여 창, 뷰, 버튼, 텍스트필드 같은 동일한 형의 객체를 지원한다. 게다가 코코아 터치에는 가속도 센서 , GPS 와 WiFi 신호로 위치를 찾는 삼각 측정, 터치 기반 인터페이스 등을 다루는 클래스를 제공한다. 또한 인쇄 지원 같이 필요 없는 클래스는 제거하였다.&lt;br /&gt;
&lt;br /&gt;
이것으로 코코아에 대한 짧은 소개를 마친다. 다음 장에서는 아이폰 SDK의 일부인 시뮬레이터를 사용하여 아이폰용 응용프로그램을 작성하는 방법을 배울 것이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ProgrammingInObjectiveC]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>