[1일차]윈도우에서+Objective-C(1-1) Objective-C2010. 5. 7. 19:07
드디어 Objective-C 학습을 시작합니다.
개발 손놓은지가 언젠데.. -_- ;; 막상 다시 하려니 걱정이 반입니다.
어떻게 학습을 해야할까요? 음.. 그냥 순서대로 해보렵니다.
먼저 학습을 위한 환경을 만들어야겠네요.. 어차피 아이폰 개발을 위해 Objective-C를 공부하는거니 Xcode에서 개발해도 되겠지만.. 순서대로 차근차근히 해보겠습니다.
Objective-C의 기원은 어디일까요? 혹자는 C, C++이라고합니다.
정말 그럴까요? 어떻게 Objective-C가 만들어졌을까요?
Objective-C는 Brad j. Cox가 Smalltalk의 특징들을 C에 추가해서 만든언어입니다.
여기서 "Smalltalk"란 또 무엇일까요?
* Smalltalk *
간단히 말하면 객체지향언어입니다.
JAVA C++같은거요 그러나 C++같은거보다 더 객체지향적인 언어라고 알고있습니다
미국 제록스(XEROX)사의 Palo Alto 연구 센터(PARC)에서 개발한 객체 지향 프로그램 작성 언어와 개발 시스템.
제1판은 1972년에 개발된 Smalltalk-72이며, 그 후 개량이 계속되어 1980년에 완성된 Smalltalk-80이 처음으로 상품화되어 출시되었습니다.현재 널리 사용되고 있는 객체 지향 언어인 C++와 비교해 다음과 같은 장점이 있습니다.
㉠소프트웨어를 재이용하기가 쉽다.
C++보다 엄격하게 객체 지향적이어서, 프로그램은 반드시 논리와 데이터가 일체화된 객체의 형태로 실현된다.
㉡품질이 양호한 클래스 라이브러리(객체의 표본)가 풍부하다.
예를 들면, 대표적인 스몰토크 제품인 VisualWorks는 900종 이상의 클래스 라이브러리를 가지며, 이것들에 의해 응용 프로그램 개발 효율이 대폭 향상되었다.
㉢클래스를 검색하는 브라우저(browser)나 기억 장치의 비어 있는 영역을 자동적으로 확보하는 폐영역 회수(garbage collection) 등을 표준적으로 구비하고 있어서 개발 환경이 충실하게 되어 있다.
주요한 스몰토크 처리 시스템으로는 IBM사의 VisualAge, 스몰토크와 같은 Parkplace Digitalk사의 VisualSmalltalk 등이 있다. 최근 수년 간 기업용 클라이언트/서버 시스템 개발에 스몰토크가 이용되고 있으나, 객체 지향 언어로서 스몰토크와 비슷한 장점을 갖추고 있는 자바 언어가 등장하면서 자바 언어가 더 주목을 받고 있다.
StepStone이란 회사를 차려서 Objective-C 컴파일러를 만들었고 그것을 NeXT사에서 라이센스받아 NeXTSTEP에 넣음으로써 본격적으로 사용되어졌습니다. 그후 Dennis Glatting과 Richard Stallman이 GCC에 Objective-C 런타임을 추가하였습니다.
현재 리눅스에 깔려있는 gcc에서 사용가능하게 되었고 애플에서도 이 gcc를 Mac OS X에서 사용중입니다.
XCode에서 사용하는 컴파일러도 gcc 입니다.
Mac OS X의 가장 핵심적인 개발 Framework - Carbon과 Cocoa
- Carbon
C로 이루어진 API로 윈도우의 Win32 API와 상당히 유사하고
예전 Toolbox API셋으로부터 발전한 것입니다.
매킨토시의 레거시 코드의 재활용을 위해 만들어 졌다고 합니다.
- Cocoa
NeXTSTEP으로 부터 온 것으로 Objective-C로 만들어진 Framework
예전 NeXTSTEP API를 상당히 그대로보존하고 있습니다.
Mac OS X는 NeXTSTEP + Mac OS 로 이루어진 OS 입니다.
프로그래밍 언어로서 Objective-C는..?
- C 언어의 확장
C언어와 fully compatible 함.(C프로그램은 Objective-C 컴파일러로 컴파일되고 결과물도 똑같음)
하지만 Objective-C는 클래스, 메세지, 상속과 같은 객체지향 구조를 포함하고 있씁니다..
Objective-C가 Python, Ruby 와 더 유사하다는 주장하는 분도 계십니다.
Python, Ruby, Groovy 는 요즘 인기있는 스크립트 언어입니다.
Rails는 Ruby에서 사용하는 프레임워크로 Groovy는 Grails, Python에는 Django 등이 있습니다.
3개의 스크립트 언어 모두, 웹어플을 만드는데 주로 사용될 것 같습니다.
더 자세한 내용은 내공이 부족하여.. ㅠㅠ
- Objective-C의 객체모델.
Smalltalk-76의 객체모델(root class 구조, super class, 클래스, 메타클래스 관계구조)를 기반.
Smalltalk-80에서 사용된 메타클래스 구조는 Objective-C에서 사용되지 않습니다.
오늘은 여기까지... 오늘이 벌써 2일차인데.. 1일차도 다 정리를 못하네요..
1일차.. 계속 이어집니다.. 1일차에서.. 최소한 gcc 컴파일 환경까지는 세팅해야겠지요? ^^