Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

[Book] 프로그래밍 오브젝티브-C 2.0

프로그래밍 오브젝티브-C 2.0

프로그래밍 오브젝티브-C 2.0 - 8점
스티브 코찬 지음
박세현 옮김
인사이트

아이폰 개발에도 발을 좀 걸쳐보려고 작년에 시작하세요! 아이폰 3 프로그래밍를 읽어보았는데 대충 책보고 이것저것 따라해 볼 수는 있었지만 일단 아이폰 개발의 기본인 Obejctive-C에 대한 지식도 없는데다가 문법도 익숙치 않다보니 전체 개념을 잡기가 꽤 어려워서 Objective-C를 먼저 봐야겠다는 생각으로 읽기 시작한 책입니다. 두께도 600페이지가 넘는 상당히 두꺼운 책이고 여러가지 다른걸 같이 하다보니 거의 3달도 넘게 책을 읽었던 것 같습니다.

일단 책은 상당히 괜찮다는 느낌입니다. 책에 앞에서도 얘기하듯이 이 책은 다른 언어의 개발자가 Objective-C에 적응하는 것을 타게팅한 것이 아닌 프로그래밍을 모르는 사람들을 타게팅해서 쓰여졌기 때문에 초반에는 데이터형이나 if문, for문 연산자 등등에 대해서 설명하기 때문에 다른 언어의 개발자라면 쉬운 내용이라 약간 지루할 수도 있기는 한데 기존에 C개발자가 아니라면 가벼운 마음으로 봐두는 건 괜찮은 것 같습니다.

1부 Objective-C에서는 이런 프로그래밍의 기본적인 문법과 함께 객체지향 프로그래밍의 클래스나 상속, OOP등에 대한 설명들이 나오기 때문에 프로그래밍에 대한 설명을 보는 듯한 느낌이 들기도 하지만 함께 섞여서 Objective-C의 문법설명이 같이 나오기 때문에 개념을 잡으면서 Objective-C의 기본을 익히는데 꽤 유용한것 같습니다. Objective-C의 언어적인 특징과 함께 어떻게 사용하는지 예제소스와 함께 설명해 주고 있으며 Objective-C언어에서 볼 수 있는 카테고리나 프로토콜 그리고#을 이용한 전처리기 문들에 대해서 어떤 경우에 사용해야 하는지 잘 나와있습니다. 거의 모든 문법에 대해서 설명해 주고 있어서 레퍼런스용으로 가지고 참고하기도 좋아 보입니다.

2부인 Foundation 프레임워크 부분부터 실제 iOS에서 익히 보던 소스들이 나오기 시작합니다.(아이폰이 아닌 Objective-C책이기 때문에 Mac 개발을 포함해서 설명하고 있습니다.) 1부가 언어적인 특징들만 설명했다면 2부에서는 프레임워크에서 지원하는 NS 접두사가 붙는 객체들이나 파일, 아카이빙에 대해서 Foundation이 어떤 기능들을 제공해주고 어떻게 사용해야 하는지 설명되어 있습니다. 저같은 경우는 C에 대해서 아는 것이 거의 없기 때문에 C의 특성과 Objective-C의 특성에 대해서도 잘 몰랐는데 2가지를 구분해서 설명해 주고 있기 때문에 개념을 잡기도 좋고 책의 두께가 있다보니 꽤 친절히 설명해 주고 있습니다. 특히 인상적이었던 부분은 잘 모르겠던 메모리 관리부분에서 오토릴리즈 풀이 어떻게 동작하고 어떤 때에 관리해주어야 하는지 설명해 준 부분은 어떤게 객체를 관리해주는 것이 좋고 왜 그래야 하는지까지 알려주고 있어서 이해하기가좋았습니다.

3부 코코아와 아이폰 SDK에서는 간략한 코코아에 대한 설명과 함께 아이폰 예제프로그램을 만드는 부분이 포함되어 있습니다. 분수계산기를 만드는 부분이기는 하고 저같은 경우에는 간단한 예제들을 해본적이 있어서 따라해보기에 어렵지 않았지만 처음 보는 사람이라면 아이폰 예제앱부분은 충분한 설명은 아닌것 같습니다. 이 책에서는 Obejctive-C에 대한 부분만 익히고 아이폰 개발에 대한 부분은 따로 책을 보는 것이 더 나을 듯 합니다.

부록에는 Objective-C 2.0 언어 요약부분은 전체 언어에 대한 요약이기는 하지만 설명도 꽤 충실히 되어 있기 때문에 급하면 요약부분 먼저 읽어봐도 도움이 될것 같고 문법이 헷갈릴때 참고하기에도 유용할 것 같습니다. 저번에 아이폰 개발책을 본 뒤로 이런 저런 공부를 좀 더 했기 때문에 이해할 수 있는 부분이 더 많았던 것도 있겠지만 Obejctive-C를 이해하는데 꽤 도움이 되는 책이었습니다.
2011/03/01 02:48 2011/03/01 02:48