Xcode 2 2007. 10. 1. 11:52
그동안 바쁘다는 핑계로 포스트를 뜸하게 했지만, 10월 부터는 다시 초심의 마음으로 열심히 할려고 합니다. 우선 이전부터 생각했던 것인데 XCode를 처음 사용할 때 만나는 다소 생소한 용어들을 정리해 볼려고 합니다.

일단 간단히 정리만 해놓고 계속 업데이트를 할려고 합니다. 티스토리에 위키 기능이 있었으면 좋겠다는 생각이 드네요.

자료는 ADC의 문서와  Cocoa Programming for MAC OS X, Step into Xcode 서적을 참고하였습니다.

Action (액션)
버튼 등의 UI 컨트롤이 변경될 때 호출되는 메소드로 인터페이스 빌더에서 연결된다.

awakeFromNib [메소드]
어플리케이션이 실행되어 nib파일에서 읽어들인 정보로, 객체를 할당하고 초기화(init 메시지 발송)를 한 후에 nib에 있는 모든 오브젝트들에게 보내지는 메지지. init은 아울렛이 설정되기 전에 불려 지므로, 다른 객체에 메시지를 보낼 수 없다. 이럴 때는 awakeFromNib파일을 이용한다.

Bundle (번들)
패키지된 실행가능한 파일들과 이미지, 사운드, nib파일등의 리소스들을 가지고 있는 디렉토리이다. 응용 프로그램과 프레임워크는 일반적인 번들의 예이다.

FirstResponder
기존의 클래스에 추가하는 메소드들의 집합. 이벤트를 처리하는 첫번째 NSResponder 객체이며 First Responder가 받은 이벤트를 처리하지 않는 다면, 핸들러를 찾을 때까지 Responder 체인을 찾는다.

Framework (프레임워크)
헤더파일, 동적으로 로드되는 라이브러리와 단일 디렉토리의 하부 디렉토리에 있는 리소스들을 포함하고 있는 번들이다. Framworks는  디렉토리이지만 .framework의 확장자를 가진다.

Method (메소드)
class 내부 함수. 메시지를 보내서 호출한다.

MVC (Model-View-Controller)
디자인 패턴, 클래스는 MVC중 하나로 분류될 수 있어야 한다.
Model
데이터를 의미하면, 데이터를 변경하는 연산을 지원한다.

View
사용자에게 Model을 보여주는 역활을 한다. 하나의 Model에 관하여 출력 방식이 다른 다양한 View가 존재할 수 있다.

Controller
사용자의 입력과 로직을 처리하여 Model을 변경한다.

Nan (난)
Not a number의 약자로 숫자가 와야 할 곳에 오류 또는 숫자가 아닌 다른 값일  경우를 나타내는 상태다. 숫자값이 NaN이 된 상태에서는 다른 연산도 모두 NaN이 된다.

Nib 파일
NeXT Interface Builder의 약자이며, 오브젝트의 속성, 연결 등의 정보를 가지고 있는 패키지이다. 인터페이스 빌더에서 생성되며 해당 어플리케이션이 실행시에 로드된다.

nil (닐)
객체의 포인터가 NULL일 경우에는 nil로 사용한다.

Outlet (아울렛)
객체를 가르키는  인스턴스 변수. 인터페이스 빌더에서 다른 객체를 지정하는 포인터로 사용된다.

Package (패키지)
OS X의 파인더가 실제로는 디렉토리이며 내부에는 하부 디렉토리를 가지고 있다고 하더라도, 사용자에게는 하나의 파일 형태로 보여주는 디렉토리이다. 응용프로그램과 RTFDs와 같은 복합적인 문서들이 일반적인 예이다.

Protocol (프로토콜)
Objective-C에서 클래스가 구현하기로 약속한 method의 한벌(suit). 만약 클랙스가 프로토콜의 모든 메시지를 구현하지 않으면 컴파일러는 오류를 내보낸다. id <ProtocolName>의 오브젝트 포인터 타입은 구현된 어떠한 ProtocolName 프로토콜의 타입을 정의한다.

메소드선언의 목록이며, 프로토콜을 구현한 클래스를 생성하면 클래스는 선언한 모든 메소드를 구현하여야 한다.

ZeroRink (제로링크)
Xcode에서 빌드 속도를 높이기 위해 어플리케이션이 실행되기 전 링크를 생략한다. 어플리케이션을 실행하기 위한 모듈만 링크되며, 다른 모듈들은 호출될 때만 링크가 된다.

ZeroLink된 어플리케이션은 현재 개발중인 컴퓨터에 종속되며, 다른 컴퓨터에서는 적용 되지 않는다.Deployment로 빌드하면 어플리케이션에서 디버깅 심벌을 제가하고 실제로 링크 작업을 한다.

AND

오늘 책 주문할 것이 있어 강컴에 갔다가 메인페이지에서 정말 놀랍고 반가운 소식을 보았습니다. 눈에 띄는 예약도서에 아론 힐리가스의 Cocoa programming form mac OS X가 번역본이 있는 것 입니다.
사용자 삽입 이미지
강컴yes24에서 9월 15까지 예약 주문을 받고 9월 16일 부터 발송한다고 합니다. 가격은 19,800원 입니다. 원서가 있지만 당장 신청해야겠습니다.

다소 걱정되었던 부분은 번역서는 역자도 중요한데, 박진형이라는 분으로 Osxdev의 공동회장을 맡고 계시고 블로그를 가보니 모르는 제가 보기에도 실력이 굉장한 분 같아 마음이 놓입니다.

출판사는 요새 좋은 책들을 많이 내고 있는 인사이트 입니다. 사이트를 가보 았는데 블로그만 운영하고 있더군요. 아무리 블로그가 중요한 시대지만 좀 아니라고 봅니다.  강컴에는 예약판매가 메인페이지에 있는데 막상 출판사 홈페이지에서는  쉽게 찾을 수가 없더군요.

사용자 삽입 이미지
cocoa로 검색하니 이전에 나온 내용이 있어 보고 있는데, 낯익은 아이디를 볼 수 있었습니다.  제 블로그에 간혹 댓글을 남겨 주셨던 프린이님이네요. ^^ 그곳에서 보니 반가웠습니다.

저는 영어가 짧은 관계로 앞으로 더욱 많은 한국어 관련서적을 볼 수 있었으면 합니다.
AND

사용자 삽입 이미지
유료라 별로 관심을 두지 않다가 호기심에 한번 설치를 해보았습니다. 리얼베이직 사이트에 가시면 일정기간 사용할 수 있는 맥/윈도우/리눅스용 데모버젼을 다운 받을 수 있습니다.

스텐다드 버젼은 99달러에 프로페셔널 버젼은 500달러에 판매하고 있습니다. 두 버젼의 가장 큰 차이점은 크로스-플랫폼 컴파일 기능의 유무인 것 같습니다. 아카데미 버젼이 존재하니 학생들은 더 저렴하게 구입할 수 있을 것 같습니다.


1. 첫느낌
사용자 삽입 이미지
설치 후 리얼베이직 폴더에 있는 Realbasic Quick Start.pdf의 파일에 있는 간단한 프로그램을 만들어 보았습니다.

URL을 리스트에 추가/삭제하고 Connect 버튼을 클릭하면 해당 URL을 브라우져에서 연결하는 매우 간단한 프로그램입니다.

베이직이라는 언어가 주는 느낌처럼 쉽게 어플리케이션을 만들수 있게 해 주는 것 같습니다.

일반적인 업무용 프로그램이라면 코코아에서의 개발보다 더 빠르게 작업을 할 수 있을 것 같습니다.

당연해야될 얘기지만 별다른 설정 없이 한글 사용과 출력에 아무 문제도 없었습니다.


2. UI
좌측과 같이 각종 컨트롤들을 배치하고 속성을 설정할 수 있는 창이 있는 Layout과  코드를 작성할 수 있는 code 화면을 제공합니다. 일반적인 개발툴들과 크게 다르지 않은 모습이기에 쉽게 적응할 수 있습니다.
사용자 삽입 이미지 사용자 삽입 이미지

사용자 삽입 이미지
좌측과 같이 De까지 입력을 하면  매칭되는 함수를 흐린글씨로 보여 주고 Tab키를 누르면 자동으로 입력됩니다.

코드 자동완성이나 제안 기능은 Xcode 보다 사용이 더 편리한 것 같았습니다.


3. 리얼 SQL 서버
사용자 삽입 이미지
이 회사 제품을 또 하나 보면 리얼 SQL 서버(500달라)라는 DB 서버를 제공합니다.

좌측은 보시는 바와 같이 Demo 라이센스로 서버를 구동해 본 모습니다.

확인해 보지는 않았지만 Real Basic이랑 좋은 궁합을 이루어 편리하게 데이터 베이스 어플리케이션을 작성할 수 있도록 해줄 것 같습니다.





아래와 같이 매우 기본적인 관리자 툴도 제공을 합니다. DB서버로서의 성능은 모르겠지만 관리툴은 상용 답지 않게  조금 부실해 보이는 것 같습니다.
사용자 삽입 이미지

제 데모사용기간이 3일 남았으니 앞으로는 사용해 볼 수가 없을 것 같아 급히 사용해 보고 간단한 느낌을 올려 보았습니다.

가격도 개발툴로서는 저렴한 편이고 무엇보다도 크로스-플랫폼을 지원하니, 다양한 OS를 지원할 필요가 있는 DB를 사용하는 업무용 소프트웨어 제작시에는 매우 매력적인 개발툴인 것 같습니다.


AND