Nano Blog - 오병우

Cocoa는 Objective-C 또는 Objective-C++ 언어를 사용하기 위한 Application Frameworks 이다.


Application Frameworks는 지난 글에 설명한 바와 같이 응용 프로그램이 기본적으로 동작하는 틀(프레임)을 제공하여, 프로그래머가 응용 프로그램에서 만들고자 하는 Business Logic의 설계 및 구현에만 전념할 수 있도록 도와 준다.


응용 프로그램을 작성할 때 백지상태의 처음부터 모든 프로그램을 직접 짤 필요 없이, 응용 프로그램이 기본적으로 동작하기 위한 구조 위에 필요한 부분만을 구현하여 얹어 놓을 수 있도록 해준다.


객체 지향 개념과 소프트웨어 공학에 대한 이해가 깊다면 쉽게 이해할 수 있다.


Cocoa는 Model 또는 Document 역할의 Foundation frameworks와 View 역할의 Application frameworks로 나뉜다.


- Foundation frameworks는 데이터, 파일, 메모리 등 담당

- Application frameworks는 UI (User Interface) 관련 컨트롤, 이벤트 처리 제공


XCode에서 프로젝트 생성시에 Cocoa 응용 프로그램을 선택하여 만들고 Command + Enter로 실행해 보자.


<Homework>

1. MFC의 Document/View 구조에 대해 조사하라.

2. Design Patterns에 대해 간략히 조사하라.

3. Design Pattern에서 MVC (Model-View-Controller)에 대해 자세히 조사하라.

'프로그래밍 > iOS 프로그래밍' 카테고리의 다른 글

물결 효과 (cocos2d)  (0) 2012.06.20
이미지 크기 (작성중)  (0) 2012.06.17
Application Frameworks 란 무엇인가  (0) 2012.05.15
Cocoa, Carbon, Quartz 등의 용어들  (0) 2012.05.15
XCode - Mac의 개발툴  (0) 2012.05.15

초창기에 MS에서 윈도우즈 프로그램을 개발하기 위해서는 메세지 처리, 윈도우 생성 등의 과정을 모든 프로그램에서 유사하게 반복적으로 작성해 줘야 했다.


MS에서는 윈도우즈 프로그래머들의 편의를 위해서 매번 반복하던 작업들을 묶어서 틀(프레임, 와꾸?)을 제공하기 위한 프로젝트를 진행했는데 이름이 AFX이다. Applicarion Frameworks의 줄임말이다.  X는 어디서 튀어 나왔을까? 여기서 X는 "~크" 발음에 해당한다. (크리스마스 X-mas)

참고로, 컴퓨터 분야에서 X는 trans- 라는 통신의 의미로도 자주 사용된다. (오늘의 퀴즈: Mac OS X의 X는 무슨 의미라고 했는지 기억나세요?)


다시 MS로 돌아와서, 프로젝트의 멋진 이름인 AFX는 발표할 때는 MFC (Microsoft Foundation Class)라는 MS는 들어가지만 가슴에 와 닿지 않는 이름으로 변경되는 설움을 겪는다. MFC는 MS가 만들어 준 기반 클래스라는 뜻이라서 응용 프로그램을 만들 때 쓰이는 틀이라는 의미가 축소되었다. 그렇다고 AFX라는 개발 당시의 이름을 모두 바꾸기는 힘들었는지 그대로 발표되어, 아직도 윈도우즈에서 MFC 프로그래밍하다 보면 Afx prefix(접두사)를 많이 만나게 된다.


이제 Mac OS X 얘기를 해보자. 지난 글에 설명한 운영 체제의 전체 구조에서 보면 Application Frameworks Layer(계층)가 있다. 앞서 설명한 MFC와 같이 응용 프로그램을 개발하기 위한 틀, 프레임, 기본적인 구조 역할을 해주는 것이다.


운영 체제에서 동작하는 기본적인 응용 프로그램의 기능들은 모두 제공을 해주므로, 프로그래머는 응용 프로그램에서 만들고자 하는 Business Logic에만 전념할 수 있다.


운영 체제에서 동작하는 응용 프로그램들이 유사한 인터페이스를 제공하고 유사하게 사용할 수 있도록 해주는 기능도 가지고 있다.


<Homework>

1. MS 윈도우즈에서 API 프로그래밍 방법과 MFC 프로그래밍 방법에 대해 비교하라.

2. 객체 지향 개념에서 상속의 개념에 대해 복습하라.

3. MS 또는 애플사에서 만들어 준 틀(AFX)이 그대로 동작하면서 그 소스를 뜯어 고치지 않으면서도, 응용 프로그래머가 원하는 부분을 바꿀 수 있도록 해주는 방법을 생각해 보라. (Hint: 2번 객체 지향 개념의 상속 참고)

'프로그래밍 > iOS 프로그래밍' 카테고리의 다른 글

물결 효과 (cocos2d)  (0) 2012.06.20
이미지 크기 (작성중)  (0) 2012.06.17
Cocoa 란 무엇인가 (Mac OS X)  (0) 2012.05.15
Cocoa, Carbon, Quartz 등의 용어들  (0) 2012.05.15
XCode - Mac의 개발툴  (0) 2012.05.15

XCode를 설치하고 실행했지만 당황스럽게 다양한 용어가 나온다.


아이폰이나 아이패드에서 프로그래밍하고 싶다는 일념하에 어렵게 해킨토시를 설치하거나 큰 맘 먹고 맥을 구매하였다면 먼저 우리가 만들 응용 프로그램이 어떤 곳에서 동작할지 운영 체제에 대해 알아봐야 한다.


MS의운영 체제 이름이 Windows인 것 처럼 맥의 운영 체제 이름은 Mac OS X이다. X는 로마자 10이다. Mac OS 9의 다음 버전이라는 의미이다.


시스템을 설계할 때는 주로 계층 구조를 많이 사용하는데 맥의 개발자 사이트에서도 Mac OS X를 계층 구조로 설명하고 있다.


애플사의 개발자 사이트 주소는 다음과 같다.

http://developer.apple.com/


위의 사이트에 들어가서 Mac OS X의 구조를 보면 Aqua, Spotlight, Cocoa, Carbon, Quartz, Darwin 등의 용어가 있음을 알 수 있다.


처음에 모두 알 필요는 없지만 어떤 것들이 있는지와 간단한 역할 정도는 알아두어야 한다.


<Homework>

Mac OS X의 전체적인 구조에 대해 조사하고 각 부분의 역할을 설명하라.

'프로그래밍 > iOS 프로그래밍' 카테고리의 다른 글

물결 효과 (cocos2d)  (0) 2012.06.20
이미지 크기 (작성중)  (0) 2012.06.17
Cocoa 란 무엇인가 (Mac OS X)  (0) 2012.05.15
Application Frameworks 란 무엇인가  (0) 2012.05.15
XCode - Mac의 개발툴  (0) 2012.05.15