Nano Blog - 오병우

초창기에 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