[App 개발] PCWEB 이란 곳에 올라온 코코아 강좌(1)
본문
이번에 제 1회를 부족한 일본어 실력으로 해석해 보았는데, 해보니 번역기를 돌린것과 비슷하게 되어버렸습니다.
결국 그렇게 좋지 못한 해석이 될것 같지만, 부디 열정으로 봐 주세요.
그리고 저작권문제로 우선 그림같은것은 링크된 사이트에서 보시고 글만 해석해 보았습니다.
만약 이것도 저작권에 걸릴것 같으면, 자료실 마스터님게서 적절한 조치를 취해 주시길 기대합니다.
그럼 제 1회를 http://pcweb.mycom.co.jp/column/objc/001/
#################################################################################
제 1회 Cocoa 와 Object C 와 동적오브젝트지향
Mac OS X 10.4 Tiger의 발매, 차기 매킨토시의 인텔칩 채용, 일본 아이튠스 뮤직 스토어의 시작, 시부야 애플 스토어의 오픈등, 최근 애플 컴퓨터에 관계된 화제가 끊이지 않습니다. 이것은 최근 갑자기 일어난 이야기가아닌, 수년전부터 종자를 뿌린 것들이 열매를 맺다 라고 생각해야만 합니다.
이러한 안에서도, 가장 큰 복선중에 하나는 무엇이냐고 묻는다면, 필자는 Mac OS X 의 등장과 코코아 프레임웍의 채용이라고 답합니다. NEXT에 유래를 갖는 Mac OS X은 견고한 커널을 초석으로 하여 소프트웨어가 활동하기위한 토양을 토대로 코코아 프레임웍을 채용해서 safari 나 iApp라 부르는 많은 소프트웨어들이 등장하고 있습니다
그럼 그 코코아란, 코코아란 이름은 높은 완성도의 객체지향 프레임웍으로 들어본적이 있을것입니다. 그러나, 많은 분이 고개를 돌리는 것이 그 프로그램언어로서 매우 마이너한 오브젝트 C를 채용하고 있기때문입니다. 이 이유는 일단, 역사적인
경위를 구해보는 것이 가능합니다. 코코아의 전신이라 하는 NEXTSTEP 의 개발이 시작된것이, 1980년 후반, 당시 C를 기초로한 객체지향언어라고 하면, C++ 과 오브젝트 C가 등장하고있었지만, 어느쪽이나 주류에 이르고 있다고는 말할수 없고, 오브젝트 C 를 선택하는것이 그 정도 부자연스럽지는 않았을것입니다.
다른 언어를 채용할 기회가 없었다는 이야기는 아닙니다. 애플사에 코코아 프레임웍을 등장할 때 자바로부터 코코아를 조작하는 Cocoa Java API 도 공개되엇습니다. 또한 이와 똑같이 오브젝트 C로 쓰여져 있는 프레임웍 WebObject 도 전면적으로 자바로 바꿔 써져서. 단번에 자바채용으로 기울까 하고 생각되어졋습니다. 그러나, 그 이후에 등장한 프레임웍 어플리케이션은 모두 오브젝트 C 채용 했을뿐아니라, Java API 의 지원도 타이거를 마지막으로 끝나는 것이 분명하게 되어졌습니다.
왜 오브젝트 C 일까요? 거기에는 과거와의 호환성뿐만 아니라 기술적인 이유도 있다고 필자는 생각합니다. 그 키워드는 동적(Dynamic)입니다. 동적인 형을 붙이는, 메소드의 동적결합, 동적인 클래스 읽기를 포함하는등, 오브젝트 C는 컴파일 할때가 아닌, 실행할때 결정 할 수있는 사항이 많습니다. 이것이야말로 같은 동적인 특성을 충분히 활용하고 있습니다. 코코아프레임웍과 가장 훌륭히 어울리는 것이 되는 이유입니다.
본연재에서는 오브젝트 C와 Cocoa 가 가진 동적인 특성을 하나하나씩 철저하게 명확히 해가자는 것이 목적입니다. 오브젝트 C의 유연성과 확장성, 그리고 현역의 프레임웍인 코코아가 이것을 어떻게 활용하고 있는 가를 설명해 갈 예정입니다.
이것은 동시에 이미 컴파일되어 실행되고 있는 어플리케이션 을 변경하기 쉽다고 말하는 것을 의미하고 있습니다. 결국, 코코아의 핵심은 쉽다는 것입니다. 이 다음에는 실전적인 테크닉도 소개해 보겟습니다.
Class-Dump
본격적으로 오브젝트 C 의 세계에 빠지기 전에 편리한 유틸리티를 한개 소개해둡니다. 동적인 언어라 함은, 한마디로 말해 실행시 클래스또는 메소드의 정보를 얻는 것이 가능하다 란 것입니다. 컴파일 된 파일의 어디선가, 그러한 메타정보를 간직하고 있음이 틀림이 없습니다. 그렇다면 그것을 표시하면 그 파일이 가지고 있는 전부의 클래스와 메소드를 알수 있는 것이 가능합니다. 그렇게 하기 위한 유틸리티가 클래스-덤프입니다. Cocoa프로그래머라면, 반드시
애용하고 있는 하나의 물건입니다.
클래스 덤프는 커맨드 라인으로 부터 실행되어 프레임웍 이나 어플리케이션등의 바이너리가 가진 모든 글래스 와 메소드를 헤더파일 형태로 표시해줍니다. 예를 들어 코코아의 기본적인 프레임웍인 파운데이션 클래스와 메소드를 표시해 볼까요.
% class-dump /System/Library/Frameworks/Foundation.framework/Foundation > ~/Foundation.h
많은량의 출력이 나오는데요, 위의 예에서는 파일에 써져 있습니다. 이것이 파운데이션 프레임웍이 가진 메타정보입니다.
출력되어진 파일을 눈여겨보면 경험이 있는 코코아 프로그래머라면 본적이 없는 클래스와 메소드가 잇는 것을 눈치 챌 것입니다. 이것들은 헤더파일에서 공개된 것이 아니라 Private 선언된 메소드나 클래스입니다. 이것들을 사용하면, 보증되어질수는 없지만, 프레임웍의 숨긴 기능을 불러 내는 것이 가능합니다. 이것이 코코아의 핵심의 최초의 한걸음으로서의 사용되어진 손입니다.
코코아 프로그래머라면, 새로운 프레임웍이 개발 되어지면, 우선 클래스덤프를 이용해서 숨긴 클래스와 메소드를 눈 여겨 보는 것이 가장 먼저입니다.
그럼 다음회에는 본격적으로 오브젝트 C 의 특징을 찾아가 보도록 합시다.
######################################################################################
여기서 언급된 클래스 덤프 프로그램 사이트 주소는 http://www.codethecode.com/Projects/class-dump/ 입니다.
참고하세요.
최신글이 없습니다.
최신글이 없습니다.
댓글목록 1
mini태한님의 댓글
잘 보았습니다. 계속 부탁드려요~