Languages/Objective-C2009.12.16 06:42
얼마전에 Programming in Objective-C 2.0을 받았다. 아이폰 어플을 개발해보려고 하던 차라, 마침 필요하던 책이었다.

Objective-C를 입문할 때 C++이나 Java 프로그래머가 가장 헷갈리는 부분을 꼽으라면?

1. 메모리 관리 (retain, copy, release, autorelease...)
2. [와 ]로 표현되는, 다소 생뚱맞은 메시지 전달 방식
3. C++과는 달리, 대충 대충 해도 일단은 넘어가주는 클래스 선언 방식

C++이나 Java 프로그래머에게 있어서 Objective-C의 진입장벽은 다소 낮은 편이다. 뭐 어차피 다 같은 객체지향 언어이므로, 사실 거기서 거기다. 그러니 저런 부분만 파악하면 쉽게 쉽게 코딩을 할 수 있지 않을까 생각해서 애플에서 제공하는 Objective-C 2.0 가이드를 대충 본 다음에 바로 코딩에 들어갔었다.

그런데 아니나 다를까... 역시 대충 대충 공부한 탓인지 결정적인 부분에 가면 꼭 막혔다. -_-;

- - -

C++을 한 8년 가까이 한 이후, Java The Programming Language를 한 일주일 정도 보고 나서 바로 Java 프로그래밍을 할 수 있었다. 객체지향 언어라는 것에 대해 익숙해진 탓도 있었겠지만, 책이 워낙 잘 씌여진 탓도 있었다. 좋은 교과서가 있으면 실패할 확률이 줄어든다.

Objective-C의 실질적인 교과서를 꼽으라면, 이 책일 것이다. 크게는 2부로 나뉘어 있다. 언어적인 특성을 설명한 1부. 그리고 C++의 STL에 해당하는 Foundation Framework에 대해서 설명한 2부.

다른 프로그래밍 언어 서적들과 크게 다른 구성을 가지고 있지 않고, Java나 C++과의 차이점을 비교설명하고 있지 않으므로 그런 부분만을 재빨리 파악한 다음에 바로 프로그래밍을 시작하려는 사람에게는 그다지 적당하지는 않다. 하지만 책이 평이하고 쉬운 어조로 서술되어 있으므로, 일주일 정도 투자하면 완독할 수 있을 것이라고 생각한다.



정 시간이 없는 사람은 부록 B만 읽고 넘어가도 된다. -_-; 언어를 전반적으로 요약해두었으니 Objective-C에 대한 기본적인 사항을 이미 알고 있는 사람이라면 그래도 될 것이다.

그러나 아쉬운점은, 부록 B에 적힌 내용을 좀 더 자세히 알고 싶을 경우 본문의 어디를 보아야 하는지를 전혀 알 수가 없다는 점이다. (C++ The Programming Language의 경우, 관련된 부분에 대한 링크가 일일이 달려 있는 것과는 대조적이다.) 가령, property를 사용할 경우 retain, copy 등의 속성을 property를 선언할 때 지정해 주게 되고 이것이 메모리 관리와 연관이 있다는 내용이 부록 B에는 친절하게 정리되어 있는데, 이게 메모리 관리와 실질적으로 어떤 관계를 맺고 있는지를 파악하려면 어디를 보아야 하는지 알 수가 없다. 목차를 보면 17장 "메모리 관리"를 보면 되겠구나 싶겠지만, 아니다. 관련된 부분은 책 여기 저기에 흩어져 있다. (가령 nonatomic과 copy에 대한 내용은 482페이지에 가서야 설명된다.)
 
그런 사소한 불편함을 빼면, Objective-C를 공부하는 사람은 가지고 있어야 할 책이라고 생각한다. 객체지향 언어에 이미 익숙한 사람에게는 설명이 너무 많아 장황하게 느껴질 수도 있겠지만, 나처럼 나중에 개고생하지 않으려면 이런 책을 꼼꼼하게 읽어두는 것이 좋다. 원래 교과서라는 게 다 처음에는 재미가 없다. -_-;
Posted by 이병준

소중한 의견, 감사합니다. ^^