Top

완전 초보를 위한 오브젝티브C 프로그래밍

  • 원서명Objective-C for Absolute Beginners: iPhone, iPad and Mac Programming Made Easy (ISBN 9781430228325)
  • 지은이게리 베넷, 밋치 피셔, 브래드 리스
  • 옮긴이이동욱
  • ISBN : 9788960773653
  • 25,000원
  • 2012년 11월 30일 펴냄
  • 페이퍼백 | 368쪽 | 185*235mm
  • 시리즈 : 모바일 프로그래밍

책 소개

이 책은 프로그래밍 언어에 대한 기본 개념이 없어도 누구나 쉽게 오브젝티브C를 익힐 수 있도록 쓰여졌다. 변수 개념 같은 프로그래밍 언어를 처음 배울 때 익히는 내용부터 오브젝티브C의 문법까지도 다룬다. 맥 혹은 iOS 애플리케이션 개발을 목표로 하는 프로그래밍 입문자를 위한 배려가 돋보이는, 초보자를 위한 필독서다.


[ 소개 ]

주변을 보면 많은 이들이 애플의 아이폰과 아이패드용 앱을 개발하고 있다. 그들은 어떻게 앱 제작 방법을 익혔을까? iOS와 맥 OS X 모두에서 근간 언어로 사용되는 오브젝티브C를 익히면 된다. 하지만 그 시작은 만만치 않다. 만일 프로그램을 배워본 적이 없다면 이 책은 좋은 출발점이다!

저자진의 모든 경력을 다 합하면 근 50년에 이르는 소프트웨어 개발 경험, 그리고 카네기멜론 대학이 제시한 접근법을 기반으로, 효과적인 오브젝티브C 학습 요령을 알려준다. 이 책의 저자들이 애플의 아이폰이 세상에 소개될 때부터 수백 명의 완전 초보를 대상으로 아이폰, 아이패드, 맥 용 앱 개발을 가르쳤기에 가능한 일이다.


[ 이 책에서 다루는 내용 ]

■ 변수 개념, 자료 구조 결정, 파일 시스템 작업 등 컴퓨터 프로그래밍 기초
■ 객체 지향 프로그래밍에 대한 기본 개념과 클래스, 객체, 메소드 사용법
■ 엑스코드 설치와 다양한 기능, 그리고 오브젝티브C 프로그램 작성 방법
■ 코코아와 코코아 터치 기능(근사한 맥 OS X 혹은 iOS용 앱 작성)


[ 이 책의 대상 독자 ]

정답은 ‘모든 독자’이다! 이 책은 오브젝티브C를 사용해 맥 혹은 iOS용 앱을 개발하고 싶어하는 모든 이들을 위해 만들어졌다. 프로그래밍 경험이 전혀 없어도 상관없다.


[ 이 책의 구성 ]

객체 지향 프로그래밍(OOP)과 프로그램 로직에 대한 개념을 앨리스(Alice)에서 먼저 익힌 다음 엑스코드 환경에서 오브젝티브C를 이용하는 단계로 진행한다. 시각적인 자료나 실습을 이용하면 학습 효과는 크게 증가하는데, 이 책은 두 가지 기법을 모두 사용할 예정이다. 시각적인 학습 자료를 이용해 주제와 개념을 알아보고, 관련 예제를 단계별로 제공해 확실히 익히도록 유도한다.

이 책에서는 앞에서 다룬 주제를 새로운 방식으로 적용해보기 위해 다시 반복해 강조하는 경우도 있는데, 이런 서술 방법은 초보 프로그래머를 좀 더 숙련시키고, 자신이 알고 있는 내용을 확인하며 성취감을 느끼게 해준다.

저자/역자 소개

[ 저자 서문 ]

"프로그램을 만들어 본 적은 없지만 기가 막힌 아이폰(혹은 아이패드) 앱 아이디어가 있어요. 프로그래밍을 배워볼까요?" 지난 수년간 수도 없이 받은 질문이다. 그럴 때마다 우리는 항상 "물론이죠. 하지만 자신을 믿고 끝까지 나가야 합니다."라고 답한다. 못한다고 중도 포기하는 것은 바로 자신이기 때문이다.

초보 프로그래머에게
이 책은 여러분이 프로그램을 해본 적이 전혀 없다는 가정에서 출발한다. 객체 지향 프로그래밍(OOP)을 전혀 해본 적이 없는 이들 또한 대상이다. 오브젝티브C에 대한 책은 많지만, 대다수 책은 OOP에 대한 지식이 있다고 가정한다. 프로그래밍에 대한 지식이 전혀 없는 독자들이 오브젝티브C로 프로그래밍하도록 도와주는 것이 이 책의 목표다.
저자들은 지난 2년간 xcelMe.com에서 수백 명의 학생에게 아이폰/아이패드 프로그래밍을 가르쳤다. 초기에 진행된 두 가지 과정인 객체 지향 프로그래밍 및 아이폰/아이패드 개발자 과정을 진행하며 얻은 경험을 이 책에 모두 담았다.

중급 이상 프로그래머에게
프로그램을 작성한 지 오래 됐거나 OOP가 아닌 언어로만 개발 경험이 있다면, 오브젝티브C를 본격적으로 시작하기 전에 OOP의 개념을 익혀야 한다. 이 책은 OOP에 대한 개념을 익히고 아이폰/아이패드 개발에 적용하는 과정까지 친절히 안내해 줄 것이다.


[ 저자 소개 ]

게리 베넷(Gary Bennett)
xcelMe.com의 사장이다. xcelMe는 온라인으로 아이폰/아이패드 프로그래밍 과정을 가르치는 회사이다. 게리는 수백 명의 학생을 대상으로 아이폰/아이패드 개발을 가르쳤다. 게리가 가르친 학생 중에는 아이튠즈 앱 스토어에 등록해 큰 인기를 끈 앱을 만든 이들도 있다. 게리는 첨단 기술 및 국방 분야에 25년간 종사했다. 미 해군에서 10년간 핵 관련 엔지니어로 근무하며 핵 잠수함에 두 차례 승선한 경험이 있다. 해군을 전역한 뒤 소프트웨어 개발자, CIO, 사장으로 몇몇 회사에서 근무했다. CIO 시절인 2002년에는 비스타케어(VistaCare)라는 회사의 인수에 참여하기도 했다. 게리는 『아이폰 쿨 프로젝트』의 공동 저자이기도 하다. 현재 아내 스테파니와 네 명의 아이들과 함께 아리조나의 스콧데일에서 살고 있다.

밋치 피셔(Mitch Fisher)
아리조나의 피닉스에 살고 있는 개발자다. 64K가 대용량 메모리이고, 1MHz가 초고속 컴퓨터라 여겨지던 1980년대부터 PC의 세계에 입문했다. 그리고 25년간 여러 규모의 회사에서 개발자 혹은 소프트웨어 아키텍트 역할을 수행했다. 수백만 달러 규모의 프로젝트에서 개발팀을 이끌기도 했다. 현재는 iOS 애플리케이션 개발 및 서버사이드 유닉스 기술에 주로 시간을 할애하고 있다.

브래드 리스(Brad Lees)
애플리케이션 개발 및 서버 관리에서 12년 이상의 경력을 가지고 있다. 그는 부동산 개발 시스템 및 금융 기관용 소프트웨어 개발 전문가다. 주된 경력으로는 라일 앤더슨(Lyle Anderson) 사의 정보 시스템 담당자, 스마쉬(Smarsh) 사의 제품 개발 관리, 아이네이션(iNation)의 애플리케이션 개발 담당 부사장, 아리조나 최대의 건설 회사인 오컷/윈슬로 파트너쉽(Orcutt/Winslow Partnership)에서 IT 담당자를 역임했다. 아리조나 주립대학을 졸업했고, 아내 나탈리와 다섯 아이들과 함께 피닉스에서 살고 있다.


[ 옮긴이의 말 ]

완전 초보라는 단어로 시작하는 제목이 말하듯 이 책은 프로그래밍 언어에 대한 기본 개념이 없어도 오브젝티브C를 익힐 수 있도록 쓰여졌습니다. 변수 개념과 같은 프로그래밍 언어를 처음 배울 때 익히는 내용부터 오브젝티브C의 문법까지도 다루고 있습니다. 내용을 살펴보면 맥 혹은 iOS 앱 개발을 목표로 하는 프로그래밍 입문자를 위한 배려가 돋보입니다.

2년 전 『코어 데이터』 책을 번역했을 때에도 iOS 기기의 엄청난 보급으로 오브젝티브C의 인기가 치솟고 있었지만, 2012년 TIOBE 언어 순위 등을 살펴보면 오브젝티브C의 성장은 여전히 수직 상승에 가까움을 확인할 수 있습니다. iOS, 맥 OS X을 탑재한 기기들은 더욱 많아졌고, 오브젝티브C를 이용한 개발도 그만큼 많아졌습니다.

애플이 모바일 및 PC 시장에서 나름의 확고한 위치를 점하고 있기는 하지만 경쟁은 치열하며, 안드로이드 진영의 발전도 매번 무서울 정도로 새롭습니다. 그러나 오브젝티브C를 익히고 애플의 각종 기기에서 동작하는 앱을 만드는 일은 여전히 프로그래밍을 재미있게 익힐 수 있는 방법 중 하나입니다.

이번에도 출간 즈음이 되니 아쉬움이 많이 남습니다. 그래도 역자로서 원서의 내용을 더 쉽게 전달하기 위해 나름대로 노력했기에, 오브젝티브C를 이용해 애플리케이션을 작성하려는 개발자, 혹은 예비 개발자들에게 조금이라도 더 도움이 되면 좋겠습니다.


[ 옮긴이 소개 ]

이동욱
현재 SK Planet 플랫폼 기술원에서 일하고 있다. 초등학교 때 애플 II로 컴퓨터 프로그래밍을 배우기 시작한 게 생생하지만, 어느덧 IT 업계 10년 차가 됐다고. 하지만 여전히 프로그래밍 세계에서 더 많은 희로애락을 느끼려고 이런 저런 계획을 세우고 있다. 특히 개발자들이 장인으로 거듭나고, 전문가로 인정받는 사회를 꿈꾸며 자신의 역할을 가늠하는 중이다.
배움에 있어서 나름의 개똥철학도 있는데, 세상에는 느려야 제맛인 것들이 있다고 주장하며 생각의 영역을 넓히는 과정을 느긋한 마음으로 즐기고 있다. 오브젝티브C뿐만 아니라, 스칼라(Scala) 등 각종 언어에 관심이 많다. 현재 구글 그룹스에서 한국 스칼라 사용자 모임(/scala-korea)을 개설하고 참여자들과 함께 모임을 3년째 꾸려가고 있다. 번역한 책으로는 『코어 데이터』(에이콘출판, 2010)가 있다.
원래 지식은 서로 만나고 그 경계와 구분은 인간이 만들었다는 변명으로 자신의 산만함을 감춰보지만, 하고 싶은 것과 해야 할 것에 둘러싸여 어지럽다며 비명을 지를 때가 많다.

목차

목차
  • 1장 뛰어난 아이폰, 아이패드, 맥 프로그래머가 되려면
    • 개발자처럼 생각하기
    • 개발 라이프 사이클 마무리
    • 객체 지향 프로그래밍 소개
    • 앨리스 인터페이스를 이용해 작업하기
    • 요약
    • 연습 문제
  • 2장 프로그래밍 기초
    • 앨리스 둘러보기
      • 내비게이션 메뉴
      • 가상 세계 윈도우
      • 앨리스의 클래스, 객체, 인스턴스
      • 객체 트리
      • 에디터 영역
      • 디테일 영역
      • 이벤트 영역
    • 앨리스 앱 만들기
    • 첫 오브젝티브C 프로그램 작성하기
      • 엑스코드 설치하기
      • 엑스코드 시작하기
    • 요약
    • 연습 문제
  • 3장 본격적으로 데이터에 대해 알아보기
    • 프로그래밍에 쓰이는 수 체계
      • 비트
      • 무어의 법칙
      • 바이트
      • 16진수
      • 유니코드
    • 데이터 타입
    • 앨리스에서 변수와 데이터 타입 사용하기
    • 오브젝티브C의 데이터 타입
    • 문제 식별하기
    • 요약
    • 연습 문제
  • 4장 의사 결정과 프로그램 흐름 계획
    • 부울 논리
      • 진리표
      • 비교 연산자
    • 앱 설계
      • 의사 코드
    • 디자인 요구 사항
      • 순서도 그리기
      • 예제 앱 디자인 및 순서도 작성
      • 앱 디자인
      • 루프를 이용해 프로그램 구문 반복하기
    • 앨리스에서의 예제 코드
    • 오브젝티브C 예제 애플리케이션 작성하기
    • 중첩 if 문과 else-if 문
    • 리팩토링으로 코드 개선하기
    • 앨리스와 작별하기
    • 요약
    • 연습 문제
  • 5장 오브젝티브C로 배우는 객체 지향 프로그래밍
    • 객체
    • 클래스란 무엇인가
    • 클래스 계획하기
    • 클래스 구현하기
    • 상속
    • 왜 OOP를 사용하는가?
      • 중복 코드의 제거
      • 디버깅 용이성
      • 변경 용이성
    • 고급 주제
      • 인터페이스
      • 다형성
    • 요약
    • 연습 문제
  • 6장 오브젝티브C와 엑스코드 소개
    • 오브젝티브C의 간략한 역사
    • C 언어의 기초
    • 오브젝티브C를 객체 지향 언어답게 사용하기
    • 엑스코드 소개
    • 엑스코드 시작하기
    • 첫 프로젝트 만들기
    • 새 클래스 추가하기
      • 새로 작성한 프로그램 빌드하고 수행하기
    • 요약
    • 연습 문제
  • 7장 오브젝티브C 클래스, 객체, 메소드
    • 오브젝티브C 클래스 작성
      • 인터페이스와 인스턴스 변수 선언
      • 메소드에서 메시지 보내기
      • 구현 파일 관련 작업
      • 메소드 구현
    • 새로 작성한 클래스의 사용
      • 기본적인 동작 재정의하기
      • 클래스 메소드, 그리고 다음 단계
    • 엑스코드 문서에 접근
    • 요약
    • 연습 문제
  • 8장 오브젝티브C 프로그래밍의 기초
    • 간단한 커맨드 라인 도구 만들기
    • 인스턴스 변수 소개
      • 인스턴스 변수에 접근하기
      • Getter와 Setter 메소드 작성하기
    • 프로퍼티 소개
      • 프로퍼티 사용하기
      • 관례의 중요성
    • MyBookstore 프로그램 작성
      • NSMutableDictionary 클래스 사용하기
      • 객체를 동작시키기
      • 동작 구현하기
      • 작성한 객체 정리하기
      • Bookstore 객체와 Book 객체 사용하기
    • 요약
    • 연습 문제
  • 9장 데이터 비교
    • 부울 논리
    • 관계 연산자
      • 숫자 비교
      • 엑스코드 애플리케이션 예제 만들기
    • 부울 표현식
      • 문자열 비교
      • 날짜 비교
      • 여러 비교식 결합하기
    • switch 문
    • 변수를 그룹으로 묶기
      • NSArray
      • NSMutableArray
    • 요약
  • 10장 사용자 인터페이스 만들기
    • 인터페이스 빌더 소개
    • 모델-뷰-컨트롤러
    • 휴먼 인터페이스 가이드라인(HIG)
      • 인터페이스 빌더를 이용한 아이폰 앱 작성
      • 인터페이스 빌더 사용하기
      • 라이브러리
      • 인스펙터 패널
      • 난수 발생기 뷰 작성
      • 아울렛과 객체 연결하기
      • 액션과 객체 연결하기
      • 구현 파일
    • 요약
    • 연습 문제
  • 11장 메모리, 주소, 포인터
    • 메모리 이해하기
      • 비트, 바이트, 진수 체계
    • 메모리 주소 체계의 기본
    • 메모리 요청하기
      • 자동 변수와 포인터로 작업하기
    • 메모리 해제하기
      • 특수한 포인터 사용하기
    • 오브젝티브C의 메모리 관리
      • 획득/반환 모델 사용하기
      • 암시적으로 retain 메시지 보내기
      • dealloc 메시지 보내기
    • 무언가 잘못된다면
    • 요약
    • 연습 문제
  • 12장 엑스코드로 프로그램 디버깅하기
    • 디버깅 시작하기
      • 브레이크포인트 설정하기
      • 디버깅 기초
      • 디버깅 제어하기
    • 프로그램 디버깅하기
      • 스텝 제어 버튼 사용하기
      • 스레드 윈도우와 호출 스택 살펴보기
      • 변수 디버깅하기
      • 여러 브레이크포인트 지우기
      • 브레이크포인트 막아놓기
      • 보다 많은 양의 호출 스택 다루기
    • 요약
    • 연습 문제
  • 13장 정보 저장
    • 자료 저장 시 고려 사항
    • 설정 정보
      • 설정 정보 쓰기
      • 설정 정보 읽기
    • 데이터베이스
    • 데이터베이스에 정보 저장하기
    • 코어 데이터 시작하기
    • 모델
      • 관리 객체 컨텍스트
    • 사용자 인터페이스 만들기
    • 요약
    • 연습 문제
  • 14장 프로토콜과 델리게이트
    • 다중 상속
    • 프로토콜 개념 잡기
      • 프로토콜 관련 문법
    • 델리게이트 개념 잡기
    • 다음 단계

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안