| 로그인 | 회원가입 | 고객센터 | 안내요청
 
HOME > 새로나온책
 
 
: : 피씨북입니다. : :
제목 : 아이폰 앱 개발 완벽 가이드
페이지 : 1366P
정가 : 43,000원
판형 : 4X6 배판
발행일 : 2011년 5월 20일
저자 : 아울연구소
요약 :

“안드로이드 앱 개발 완벽 가이드”의 아이폰 버전입니다. 베스트셀러로 많은 독자의 사랑을 받고 있는 전작을 통해 저자의 친절한 가이드와 실용적인 코드는 이미 증명이 되었습니다. 초보자를 위해서 마치 그림 책 보듯이 학습하도록 하는 세심한 배려와 후발 개발자들을 위해서 개발 노하우가 담긴 실용 코드를 제시하는 저자의 노력이 아이폰에서도 그대로 재현되었습니다.

[ 이 책에서 제시하는 내용 ]
 

이 책은 다음과 같은 기준으로 기획, 집필되었습니다.

 

초보자에게는 세밀하고 탄탄한 기초를!

후발 개발자에게는 실용 코드와 개발 노하우를!

SNS, 스마트워크, 실무 활용 앱 개발!

 

대부분의 앱 개발 서적들이 기능별로 분류하여 사전식으로 API만을 설명하고 있어 실제 앱을 만드는 경험은 할 수가 없습니다. 앱을 만드는 작업은 API를 참조하는 것 이외도 다양한 개발 테크닉을 필요로 하기 때문에 실무에 즉시 적용할 수 있는 앱 솔루션을 확보하는 것이 중요합니다. “아이폰 앱 개발 완벽 가이드”는 바로 그런 점에 주목하여 실무에서 즉시 활용할 수 있는 다양한 앱을 구현하는 프로그래밍 기법을 설명함으로써 현업에서의 개발이나 취업에 대비할 수 있도록 했습니다. 

 

이 책에서는 개발 툴의 설치부터 단말기와 개발자 등록 절차, 오브젝트 C, 코코아 터치까지 기본적인 지식을 습득한 후, 실무에서 필수적으로 사용되는 앱사이트, 앱보드, 회원 관리 시스템을 완벽한 코드로 구현합니다. 또한 현장에서 즉시 사진이나 동영상 촬영을 하고 글을 입력해서 서버로 전송하고, 그 콘텐츠를 공유해서 볼 수 있는 “스마트 리포터”라는 앱을 만들면서 소셜 네크워크 구현을 위한 코드를 개발합니다. CoreData를 이용한 데이터베이스 처리와 서버 연동 등 고급 테크닉을 학습합니다.
 

초보자를 위해서는 기초부터 하나씩 노하우를 축적해갈 수 있도록 개념 설명과 코드 작성의 순서를 배려하였습니다. 또한 경력이 있는 개발자들은 자신이 필요한 부분만 뽑아서 활용할 수 있도록 설명 단계를 세분화했습니다. 특히 개발의 정형만을 보여주는 것이 아니라, 저자의 오랜 경험을 바탕으로 실수하거나, 간과하기 쉬운 부분들을 일일이 체크, 조언하고 있습니다. 앱 개발에 필요한 실전 코드뿐만 아니라, 개발 프로세스에 관한 저자의 경험을 그대로 전수받을 수 있다는 것이 이 책의 큰 특징의 하나입니다. 

 

책의 설명 순서를 정하고, 코드를 짜고, 집필하기까지 아울연구소의 이두진 소장을 중심으로 3명의 연구원이 함께 열정적으로 작업했습니다. 

 

이 책에서는 iOS 앱 개발자를 위하여 다음과 같이 5가지 테마를 제시합니다.

 

1부,2부 : iOS 앱을 개발하기 위해 기본적으로 갖춰야 할 지식을 제공합니다.

iOS 개발 환경을 구축하고, Xcode로 간단한 프로젝트를 생성, 실험합니다. Mac OS X의 개발 언어인 Objective-C 언어를 살펴보고, Objective-C를 기반으로 하는 Cocoa Touch Frameworks에 대해 설명합니다. 
 

3부 : 앱 사이트를 만들기 위해서 필요한 기능들을 살펴봅니다.

UI를 구성하면서 각 객체 간의 연관 관계를 파악하고 다양한 디자인 요소들을 다루는 방법을 살펴봅니다. Info 메뉴 화면을 실제로 구현하면서 핵심적인 API를 사용해보고 기본 UI이외에 사용자 아이콘을 처리하는 방법과 페이지 넘김 애니메이션 효과도 살펴봅니다. 

 

4부 : 공지사항 게시판을 앱에서 구현하는 방법을 소개합니다.

웹사이트의 게시판(Board)을 앱에서 구현한 "앱보드"를 만듭니다. 여기서 보여주는 앱보드 기술은 커뮤니케이션이라는 기본적인 목적을 구현하기 충분하도록 "NS 객체들의 기본 활용 및 형 변환“부터 ”검색을 지원하는 UISearchBar"까지 다양한 기술들을 제시합니다.

 

5부 : 앱으로 회원을 관리하기 위한 회원관리시스템을 만듭니다.

 스마트폰으로 언제 어디서나 회원가입을 할 수 있기 때문에 회원제 시스템은 아주 중요합니다. 회원약관과 로그인/로그아웃, 회원 접근 제어, 회원정보 변경과 탈퇴 등 회원가입과 관련된 모든 작업을 구현합니다. 또한 고객센터를 만들면서 문자 서비스, 음성전화, 이메일, 웹사이트, 지도 찾기 등의 기능을 구현합니다.

 

6부 : 소셜 네트워크를 구현하는 핵심 테크니컬 코드를 개발합니다.

기사 취재나 여행을 하면서 현장에서 동영상이나 사진 촬영을 하고 글을 입력한 후 바로 서버로 전송하고 그 콘텐츠를 공유하여 볼 수 있는 “스마트 리포트”라는 앱을 만듭니다. CoreData를 이용한 데이터베이스와 서버 연동 등 고급 기술을 익힙니다.



저자 소개

 

1997년에 설립된 “아울연구소”(www.owllab.com)는 “아울”(www.owl.co.kr)이라는 소프트웨어 개발 회사가 앞선 IT 기술의 동향과 발전 추이를 스터디하는 목적으로 설립한 연구소입니다. 웹 시절부터 모바일 연동 개발을 해왔기 때문에 스마트폰의 탄생과 함께 바로 앱 개발을 진행해 왔으며, 앱북과 앱콘텐츠의 개발, 배포 사업과 스마트워크와 관련된 다양한 솔루션을 제공하고 있습니다. 

 

또한 그간의 개발 경험을 바탕으로 초보자와 후발 개발자들과 개발 노하우를 공유하고자 “안드로이드 앱 개발 완벽 가이드”를 출간하여 베스트셀러로 많은 사랑을 받고 있습니다.

 

아울은 다음과 같은 개발을 했습니다.

 

“쇼핑몰 엔진 개발, 원격강의 시스템 개발, 문제은행 시스템 개발, SiteBuilder 엔진 개발, 대형 커뮤니티 엔진 개발, 쇼핑몰 검색 엔진 개발, 전자 카탈로그 엔진 개발, NetOffice 서비스(프로젝트형 인트라넷 엔진) 개발, OWL DBMS V2.0 출시, OWL CMS V2.0 출시, 전력 제어관리 앱 개발, 앱 앨범 개발, 앱 북 개발, 앱 문화컨텐츠 개발”

 

[ 목차 ]
 

제 1 부 iOS의 기초

[1장] 개발 환경 구축하기         
                                       

     1 애플 개발자 등록
     2 Xcode와 iOS SDK 설치본 다운받기
     3 Xcode와 iOS SDK 설치하기 

[2장] Xcode 프로젝트 생성과 실험

    
     1 앱 프로젝트 생성
     2 iPhone 가상기기에서 앱 실험

[3장] 프로젝트 소스 버전 관리 

     1 프로젝트 소스 버전 관리 - Snapshots
     2 공동 소스 버전 관리 - Repositores
     3 배포 버전 관리 - Archives
           맥용 소스 서버 설치 - MAX OS X 내장 Subversion

[4장] 실물 단말기에 실험하기

  
     1 실물 단말기에 대한 인증서
     2 iOS 개발 프로그램 구매
     3 iOS Provisioning Portal에서 인증 과정 시작
     4 WWDR(Worldwide Developer Relations) 인증서 다운받아 설치하기
     5 CSR 생성 및 인증서 요청
     6 개발용 단말기 등록
     7 App ID에 대해서
     8 Provisioning Profile 등록
     9 개발용 인증서 다운받고 설치하기
     10 배포 과정 살펴보기
     11 등록된 개발용 단말기 연동 실험
     12 실물 단말기 화면 캡처
     13 프로젝트 속성에서 Code Signing 살펴보기 

[5장] iOS 응용프로그램 유형 살펴보기

 
    1 내비게이션 앱 - Navigation-based Application
     2 OpenGL 애니메이션 앱 - OpenGL ES Application
     3 iPad용 분할 뷰 앱 - Split View-based Application
     4 탭 바 앱 - Tab Bar Application
     5 유틸 앱 (회전문 효과) - Utility Application
     6 뷰 앱 - View-based Application
     7 윈도우 앱 - Window-based Application
     8 프로젝트 이름 바꾸기



제 2 부  iOS 앱 개발을 위한 기본 지식

[6장] Objective-C 기초 문법

                
                Cocoa Touch    
                Objective-C와 C++의 차이
                Objective-C의 특성의 이해 
                언어는 외우는 것이 아니고 이해하고 익숙해지는 것...

     1 클래스 작성법
                xxx.mm 소스 파일
               클래스(Class)는 객체(Object)입니다
               @interface란? 
               @implementation이란? 
                NSString의 "NS"의 의미
                "Instance Method"와 "Class Method"
                NSString의 copy 메소드는 어디에 있나요?
               Jump to Definition

    2 메소드(Method) 호출 방식

        2.1 다른 언어와의 메소드 호출 방식 비교

        2.2 메소드 호출 사례

           두 번째 메소드 이름은 매개변수의 용도를 의미

    3 메시징 - Messaging

           메시징과 셀렉터는 개념적인 용어일 뿐

        3.1 메시징 표기법 - Messaging Syntax

           대괄호 구문(Bracket Syntax)과 점 구문(Dot Syntax)

        3.2 셀렉터(Selector)

    4 클래스 활용 및 메모리 관리

        4.1 프로젝트에 클래스 추가 - user.h user.m

        4.2 헤더파일(.h) 작성 - user.h

           클래스 id

            NSString과 같은 포인터 객체는 "*"으로 선언

            고정 배열(NSArray)과 가변 배열(NSMutableArray)의 차이

        4.3 메모리 관련 용어 요약

        4.4 클래스 초기화 - (id)init() - alloc - init

           NSObject copy는 retain과 release 기능을 모두 지원

        4.5 종료 시 메모리 초기화 - (void)dealloc{} - release

        4.6 get/set 메소드 정의

        4.7 변수값의 변경 방법 - if changed - retain - release - set new value

        4.8 mutableCopy - NSMutableArray NSArray

        4.9 Autorelease Pool 사례 - NSAutoreleasePool

    5 프로퍼티(속성변수) - @property, @synthesize

        5.1 프로퍼티 개요 및 종류

        5.2 프로퍼티 사례

           프로퍼티 기본값 readwrite, assign은 생략 가능

    6 NSString과 메모리 관리 - alloc, init, autorelease, retain, release

           NSString 메모리 관리가 iOS 개발의 시작이자 끝

        6.1 @로 문자열 정의하기

        6.2 포맷(Format)으로 문자열 정의하기

           포맷 변수 (Format Specifiers)

        6.3 외부 클래스의 값의 설정과 호출 - user.h

        6.4 retain-release 디버깅 사례

        6.5 속성 변수 getter 메소드 호출 사례 


[7장] Cocoa Touch

     1 Cocoa Touch의 개요
     2 Cocoa의 유래
     3 Foundation과 UIKit 프레임웍
              iOS에서 지원하는 기본 프레임웍들이 iOS의 DNA
     4 iOS의 여러 가지 프레임웍 찾기


제 3 부  앱 사이트 만들기

 

[8장]  기본 소스 구성과 화면 디자인


     1 프로젝트 생성
     2 기본 소스 구성
     3 기본 템플릿 실험하기
     4 앱의 시작 클래스 소스분석 - main.m
              alloc는 메모리를 할당하는 기능
              init는 클래스를 초기화하는 기능
     5 공통 헤더파일 - xxx_Prefix.pch
     6 윈도우 닙(nib) 파일 - MainWindow.xib
             닙(nib) 파일
             Interface Builder는 GUI 환경에서 개발
     7 닙(nib) 객체의 속성창 - Attribute Inspector
     8 닙(nib)의 기본 클래스 - File's Owner
             클래스의 계층정보의 의미
     9 닙(nib) 객체의 연결 관계 - Outlets
             델리게이트(delegate) 속성
             Outlets, Referencing Outlets, IBOutlet
     10 Window 객체의 속성 - UIWindow
             객체의 가변 위치와 가변 크기 - Autoresizing
     11 디자인 편집용 상태 바 - Status Bar
     12 뷰 배경 - View > Background

     13 Tab Bar 메뉴 설정
     14 디자인 편집기의 가로/세로 화면 전환
           가로/세로 가변크기와 고정 위치 설정 사례
     15 디자인 편집기에서 본 "View Controller"들
     16 Tab Bar Controller의 구성
     17 View Controller의 NIB Name을 잘못 설정한 소스에 대한 디버깅 사례
     18 View Controller에 닙 파일 로드하기
     19 탭 바 아이템 속성 - Tab Bar Item
           사용자의 권한에 따라 메뉴 사용을 제한하는 "Bar Item > Enabled"
     20 탭 메뉴 아이콘 배치 - Image Inset
     21 탭 메뉴의 배지(Badge)와 기본 아이콘(Identifier)
           탭 메뉴의 배지(Badge) 기능은 동적인 알림 기능으로 활용
     22 화면 구성 둘러보기

[9장] 내비게이션 바와 웹뷰로 Info 메뉴 화면 만들기

     1 뷰(View)형 닙 파일 생성하기 - infoView.xib
     2 디자인 영역 설정하기 - Simulated User Interface Elements
     3 프로젝트에 이미지 등록하기
     4 라이브러리 객체를 뷰에 추가하기
     5 이미지 출력하기 - Image View
     6 라운드 버튼 만들기
     7 객체의 디자인 배치 - Alignment, Placement
     8 뷰에 추가한 객체 구성 보기 - infoView.xib
     9 웹뷰(WebView)형 닙 파일 생성 - webView.xib
     10 디자인 영역 설정하기
     11 웹뷰(WebView) 객체 추가하기
           웹뷰 속성 기능 찾아보기 - Scaling, Detection
     12 툴 바(Toolbar) 추가하기
     13 뷰에 추가한 객체 구성 보기 - webView.xib
     14 infoView 클래스 만들기
     15 infoView.xib의 기본 연결 관계 정의
     16 내비게이션 바 설정하기
     17 웹뷰(WebView) 클래스 생성
     18 webView.xib의 기본 연결 관계 정의
     19 webView 클래스 작성
           IBOutlet의 의미
     20 infoView 클래스 작성
           IBAction의 의미
     21 webView.xib의 IBAction 연결 관계
     22 MainWindow.xib의 infoView 클래스 호출
     23 내비게이션 바와 웹뷰 실험하기

 

[10장] 아이콘 처리와 페이지 넘김 효과

     1 아이콘 등록
     2 앱 아이콘 디자인
     3 탭바(Tab Bar) 아이콘
           아이콘 이미지가 너무 큰 사례
           이미지 색상과 무관한 탭바 아이콘
     4 탭바 위치 바꾸기
     5 페이지 넘김 애니메이션 - CurlUp
           "nil"로 객체를 초기화
 

제 4 부  앱보드 만들기 - AppBoard

 

[11장] 고정 데이터 기반의 목록-TableView with Dictionary Data
    
     1 목록 화면 클래스 생성 - noticeList.h, noticeList.m, noticeList.xib
     2 내비게이션 바 안에서 목록 화면 클래스 호출 - MainWindow.xib
     3 상세 화면 클래스 생성 - noticeDetail.h, noticeDetail.m, noticeDetail.xib
     4 목록 클래스 작성하기
        4.1 목록 헤더파일 - noticeList.h
           NSMutableArray와 NSArray 활용의 차이
           @property 변수는 반드시 @synthesize 처리
           @property의 nonatomic은 동시성이 없는 속성 변수에 사용
        4.2 목록 소스 파일 - noticeList.m
        4.3 뷰 메소드 정의 - view
           UITableViewController는 UIViewController를 포함
           super는 상위 클래스 모두를 ...
           "NSMutableArray addObject:"로 배열 데이터 추가
           NSDictionary는 KeyValuePair 형
           NSMutableDictionary는 테이블형 데이터 객체
           tableView는 UITableViewController의 속성 객체
        4.4 메모리 관리 메소드 - -MemoryWarning, -Unload, dealloc
        4.5 테이블 뷰 메소드 - tableView:-
        4.6 로직별 소스 분류 - #pragma mark
     5 실험하기 

[12장] XML 생성기 만들기 - XML Generator With PHP-MySQL

     1 Mac OS X에서 MySQL을 관리하는 도구
        1.1 Navicat Lite 설치
        1.2 MySQL 접속 정보 설정
            MySQL 접속 정보
            웹호스팅의 경우 서버 관리 지침에 따라...
        1.3 공지사항 테이블 생성 - notice_demo
        1.4 공지사항 실험 데이터 등록하기
     2 XML 생성기 작성
        2.1 세션 파일 - session.php
           PHP 태그는 서버 환경에 따라 약간의 차이가...
        2.2 데이터베이스 연동 모듈 - dbcon_light.php
           MySQL은 UTF-8을 utf8로...
        2.3 공지사항 XML 생성 로직 - notice_list.php
            "태그"를 "노드", "엔트리", "객체"라고도...
     3 공지사항 XML 실험하기 - Safari
            GET 방식의 한글 검색 오류 시 URL Encode 방식으로...
        3.1 보안 프로토콜을 통한 XML 실험 - https
            웹호스팅을 할 때 HTTPS 서비스가 지원되는지 확인...
            Safari에서 XML 문서 구조를 확인하려면...

 [13장] 웹서버 통신 - NSURLConnection

     1 서버와 통신을 위한 객체 선언 - noticeList.h
     2 서버와 통신을 위한 로직 추가 - noticeList.m
        2.1 import와 @synthesize 처리
        2.2 속성 변수 초기화 - initPage
        2.3 GET / POST 통신 로직 - getURLData
        2.4 통신 델리게이트 메소드 처리 - connection:~
        2.5 viewDidLoad 메소드 수정
     3 서버 통신 실험하기
        3.1 정상적인 서버 연결 실험
        3.2 네트웍 차단 시 실험
     4 보안 프로토콜을 이용한 통신 - HTTPS
        4.1 SSL 신뢰 관련 로직 추가
        4.2 SSL 연동 실험
        4.3 SSL 자동 신뢰 처리하지 않을 경우 

[14장] 데이터 모델링과 XML 해독
    
     1 레코드용 데이터 모델 - notice.h notice.m
     2 정보용 데이터 모델 - noticeInfo.h noticeInfo.m
     3 XML 해독 클래스 - noticeParseOperation.h noticeParseOperation.m
     4 XML 해독에 대한 델리게이트 처리 - noticeList.h, noticeList.m
            앱은 필요에 따라 네트웍에 접근할 수 있어야...
     5 XML 서버 통신과 해독 과정 정리
        5.1 XML 서버와 통신 과정
        5.2 XML 해독과 테이블 데이터 매핑 과정
     6 실험 및 Warning 처리 

[15장] 목록 페이징 기능 - UIPageControl

     1 페이징 관련 인터페이스 추가 - noticeList.h
     2 페이징 관련 로직 추가 - noticeList.m
     3 페이징 뷰 객체 추가 및 연결 관계 정의
     4 실험하기

[16장] 앱보드 검색 기능 - UISearchBar

     1 검색 관련 인터페이스 추가 - noticeList.h
     2 검색 관련 로직 추가 - noticeList.m
            URL 인코딩
            UISearchDisplayController
            Data Type의 변수는 release 처리하지 않습니다
            필터링 옵션
            NSOrderedSame
            객체를 붙여넣을 때 객체를 선택하면 안 됩니다
     3 검색 화면 디자인 - noticeSearch.xib
     4 검색 객체 연결 관계 정의 - noticeSearch.xib
     5 실험하기

[17장] 앱보드 상세보기 기능
    
     1 상세보기 클래스 인터페이스 작업 - noticeDetail.h
     2 상세보기 클래스 로직 작성 - noticeDetail.m
     3 목록 화면과의 연동 - noticeList.m
     4 테이블 뷰 유형에 따른 데이터 객체 구분 연산 로직 - noticeList.m
     5 상세 화면 디자인 - noticeDetail.xib
     6 상세 화면 객체 연결 관계 - noticeDetail.xib
     7 실험하기 

[18장] 메모리 누수 점검 사례 - Instruments Leaks

     1 성능 계측기 Instrument 실행
     2 메모리 누수 찾기 및 디버깅 - noticeList, noticeParseOperation
     3 검색 관련 추가 디버깅 - noticeList didFinishParsing: withInfo:

[19장] 네트웍 장애 시 로컬 데이터로 전환 - SQLite

      1 터미널을 통한 SQLite 데이터베이스 생성 - notice.sqlite
            터미널에 경로를 입력할 때, 탭 키 또는 드래그앤드롭.
        1.1 테이블 생성 - notice_demo
            SQL문은 세미콜론이 실행 명령어입니다
        1.2 터미널을 통한 SQLite 관리
        1.3 GUI 프로그램을 통한 SQLite 관리
     2 .sqlite 파일을 리소스에 등록 - notice.sqlite
     3 SQLite 제어 클래스 생성 - noticeDB.h noticeDB.m
        3.1 SQLite 프레임웍 등록 - libsqlite3.dylib
        3.2 클래스 헤더 작성 - noticeDB.h
        3.3 클래스 소스 작성 - noticeDB.m
            NSCAssert는 조건 로그입니다
            데이터베이스를 잘 닫아야...
     4 로컬용 뷰 클래스 생성 - noticeLocal.h, noticeLocal.m, noticeLocal.xib
        4.1 닙 화면 디자인 - noticeLocal.xib
        4.2 클래스 헤더 작성 - noticeLocal.h
        4.3 클래스 소스 작성 - noticeLocal.m
     5 서버용 뷰 클래스의 연동 기능 추가 - noticeList.h, noticeList.m
            UIAlertView는 otherButtonTitles로 알림 창에 여러 개의 버튼을...
     6 실험하기
            가상기기에서 앱 파일과 .sqlite 파일의 위치

[20장] 액션 메뉴와 테이블 수정 기능

     1 액션 델리게이션 및 메소드 추가 선언 - noticeLocal.h
     2 액션 메뉴 출력 기능 추가 - noticeLocal.m
     3 UIActionSheet로 콘텍스트 메뉴 구현 - noticeLocal.m
     4 테이블 수정 기능 추가 - noticeLocal.m
     5 네트웍 장애 화면 디버깅 - noticeList.xib
     6 실험하기

[21장] 섹션과 인덱스 테이블 뷰 - Indexed TableView with Sections

     1 섹션형 페이징 기능 추가 - noticeLocal.m
     2 테이블 뷰에 인덱스 붙이기 - noticeLocal.m
     3 실험하기

 

 제 5 부  회원제 시스템 구축하기

 

[22장] 회원약관/회원가입

     1 클래스 파일 생성하기
        1.1 회원약관 클래스 생성 - userAgree.h, userAgree.m, userAgree.xib
        1.2 회원가입 클래스 생성 - userInfo.h, userInfo.m, userInfo.xib
        1.3 XML 해독 클래스 생성 - OWLXMLParser.h, OWLXMLParser.m
     2 동적 XML 해독기 작성 - OWLXMLParser.h, OWLXMLParser.m
           가변 객체 안에 가변 객체를 추가할 때는 autorelease 처리
           OWLXMLParser의 결과 객체 구조
     3 회원약관 클래스 작성 - userAgree.h, userAgree.m
        3.1 조건부 버튼 구현
        3.2 다른 클래스에 객체 전달
        3.3 탭 바를 이용한 화면 전환
        3.4 쿠키 데이터 가져오기
        3.5 탭 바를 통한 화면 전환
     4 회원가입/변경/탈퇴 클래스 작성 - userInfo.h, userInfo.m
        4.1 원격 이미지 출력
        4.2 다목적 클래스 구현
        4.3 스크롤 뷰 작동 구현
           스크롤 뷰는 콘텐트 영역이 프레임을 넘쳐야...
        4.4 입력란에 아이콘 출력 - UITextFeild setLeftView
        4.5 활성된 입력란이 보이게 자동 스크롤 - scrollRectToVisible
        4.6 입력란에 대한 제어 - UITextfield
           입력란 제어를 위한 연결 관계
           정규 표현식과 NSPredicate
        4.7 탈퇴/취소/저장 버튼 메소드
           내비게이션 바의 popViewControllerAnimated:는 이전 화면이 있을 때만 유효  
        4.8 안내창과 확인 버튼 처리
           자동으로 입력란을 선택하는 becomeFirstResponder
        4.9 서버와의 통신
           URL 인코딩은 Escape 처리하는 것과 같은 의미
        4.10 서버에서 쿠키 받아오기 - NSHTTPCookie, NSHTTPCookieStorage
        4.11 서버 요청 결과 처리
        4.12 로컬 쿠키 가져오기 및 삭제하기
     5 서버에 회원 테이블 생성 - user_demo
     6 등록코드 이미지 생성기 - user_addhint.php
           세션과 쿠키, 그리고 보안
     7 세션 쿠키 로직 추가 - session.php
     8 서버용 회원 프로세스 소스 작성하기 - user_proc.php
     9 회원약관 화면 구성 - userAgree.xib
        9.1 회원약관 화면의 연결 관계 설정
     10 회원가입 화면 구성 - userInfo.xib
        10.1 회원가입 화면의 연결 관계 설정
           디자인 편집기에서 숨은 객체 선택하기
        10.2 탭 바에 메뉴에 추가하기 - User Agreement, Create ID
        10.3 탭 바 아이콘 등록 및 설정
     11 실험하기

[23장] 로그인/로그아웃 뷰 클래스

     1 클래스 파일 생성하기
        1.1 로그인 클래스 생성 - loginView.h loginView.m loginView.xib
        1.2 로그아웃 클래스 생성 - logoutView.h logoutView.m logoutView.xib
     2 로그인 클래스 작성 - loginView.h, loginView.m
     3 로그아웃 클래스 작성 - logoutView.h logoutView.m
     4 로그인 화면 구성 - loginView.xib
     5 로그인 화면의 연결 관계 설정
     6 로그아웃 화면 구성 - logoutView.xib
     7 로그아웃 화면의 연결 관계 설정

 
[24장] 화면 접근 제어/회원정보 변경/탈퇴

     1 화면 접근 제어
        1.1 탭 바 아이콘 이미지 등록 - helpdesk.png, login.png, logout.png, user.png
        1.2 탭 바에 메뉴 추가하기 - Help Desk, Login, Logout, My Info
        1.3 고객센터(Help Desk) 탭 메뉴 설정
        1.4 로그인(Login) 탭 메뉴 설정
        1.5 로그아웃(Logout) 탭 메뉴 설정
        1.6 회원정보 변경(My Info) 탭 메뉴 설정
        1.7 텝 아이템의 뷰 컨트롤 클래스 정의 - loginView, logoutView, userInfo
        1.8 탭 아이템 제목 정의
        1.9 화면 접근 제어 로직 추가
      2 실험하기
        2.1 로그인 화면 실험하기
        2.2 로그아웃/회원정보 변경 화면 실험하기
        2.3 탈퇴 실험하기 

 
[25장] 서비스 연동을 이용한 고객센터 - UIApplication openURL:
     
     1 고객센터 클래스 생성 - helpDesk.h, helpDesk.m, helpDesk.xib
     2 고객센터 클래스 작성 - helpDesk.h, helpDesk.m
           copy를 초기화하지 않은 객체에 대입할 때...
     3 고객센터 화면 구성 - helpDesk.xib
     4 고객센터 화면의 연결 관계 설정
     5 메인 탭 바와 고객센터 클래스 연동 - MainWindow.xib
     6 관리자 정보 XML - admin_info.php
     7 실험하기
        7.1 가상기기에서 실험하기
        7.2 실물 단말기에서 실험하기
     8 웹 뷰를 이용한 연동 서비스 보정
        8.1 웹 뷰 연동 로직 추가 - helpDesk.h, helpDesk.m
        8.2 웹 뷰를 통한 웹사이트 연동 실험
        8.3 웹 뷰에서 길 찾기 실험
           현재 위치는 GPS 시스템이 아닌 네트웍을 통해서도 가능

 
 제 6 부  소셜 네트워크 / Smart Reports

[26장] CoreData 설계 및 연결고리 구현

     1 Smart Reports 소스 그룹 만들기
     2 CoreData 설계 - reports.xcdatamodel
        2.1 .xcdatamodel 파일 생성
        2.2 Utilities 뷰와 Navigators 뷰 Show/Hide
        2.3 Entity 추가
        2.4 Entity > Attribute 추가
           CoreData에서 Entity는 "테이블", Attribute는 "필드"
           실제 테이블은 CoreData 객체명 앞에 "Z" 접두어가 붙어 생성됩니다
        2.5 Entity 설정 정보 - Data Model Inspector 뷰
        2.6 Entity > Attribute 설정 정보 - Data Model Inspector 뷰, Report
           대중을 대상으로 할 때는 별명을...
        2.7 ReportType 엔티티 작성
        2.8 Image 엔티티 작성
        2.9 엔티티 간의 연결 관계 설정 - Relationships
     3 CoreData의 모델 클래스 생성 - NSManagedObject subclass
           @dynamic과 @synthesize
     4 UIImage와 NSData의 연동 - ImageToDataTransformer

 
[27장] CoreData, UITableView, 서버 연동

     1 UITableViewCell 활용 - ReportTableViewCell
           CGRectMake() 함수
     2 CoreData 및 서버 연동 관련 선언문 추가 - smartReport.h
     3 CoreData 및 서버 연동 관련 로직 추가 - smartReport.m
        3.1 참조 및 속성 객체 정의 등 기본 구문 작성
        3.2 질의 객체를 생성하는 메소드 - NSFetchedResultsController
        3.3 NSFetchedResultsControllerDelegate 메소드들
        3.4 질의 객체의 실행 - NSFetchedResultsController performFetch:
        3.5 UITableView와 CoreData 연동
        3.6 액션 메뉴 관련 메소드들
        3.7 화면 전환 메소드들
        3.8 서버에서 CoreData로 다운받는 메소드들
           NSURLRequest의 Cache와 Timeout 기본 값
           바이너리 데이터의 다운로드 방법론
           NSData를 UIImage로 변환 - UIImage imageWithData:
           NSData 읽기 - NSData dataWithContentsOfURL:
           NSData 쓰기 - NSData writeToFile: atomically:
        3.9 UITableView에서 CoreData 삭제하기
        3.10 형변환 유틸 메소드들
        3.11 뷰 라이프 사이클
     4 IB(Interface Builder) 디자인 - smartReports.xib
     5 탭 바 추가 및 IB 연결 관계 설정 - MainWindow.xib
     6 XML 서버 작업
        6.1 서버 테이블 작성
        6.2 XML 제너레이터 작성
        6.3 XML 실험
        6.4 첨부 파일만 다운받는 XML - smartreport_file.php
           다운로드 폴더의 보안조치 필요
           리포트 첨부 파일명의 규칙
           서버에서 동영상 섬네일 파일 생성
           앱/서버 튜닝 - 목록은 가볍게...
     7 실험하기
        7.1 기존 앱 삭제 후 실험하기
        7.2 CoreData가 생성한 SQLite 파일
        7.3 다운받기 실험

[28장] CoreData 쓰기 / 수정 / 상세 

     1 쓰기 뷰 클래스 - smartWriter
        1.1 쓰기 뷰 클래스 생성
        1.2 화면 구성과 IBOutlet 연결 관계 설정 - smartWriter.xib, 소스 연결 방식
        1.3 헤더파일 작성 - smartWriter.h
        1.4 소스파일 작성 - smartWriter.m
     2 수정 / 상세보기 뷰 클래스 - smartView
        2.1 수정 / 상세보기 뷰 클래스 생성
        2.2 tableHeaderView 닙 생성 및 디자인 - smartViewHeader.xib
        2.3 소스 연결 관계 설정 - smartViewHeader.xib, smartView.h
        2.4 헤더파일 작성 - smartView.h
        2.5 소스파일 작성 - smartView.m, tableHeaderView, UISwitch, UITableViewCell, setEditing:~
     3 Smart Reports 상세 보기 연동 - smartReports.m
     4 실험하기

[29장] 관리 기능을 포함한 테이블 뷰 - myReport

     1 헤더파일 작성 - myReports.h
     2 소스라인 작성 - myReports.m
        2.1 나의 리포트 출력하기 - NSFetchedResultsController
        2.2 CoreData와 편집용 테이블 뷰 연동
        2.3 액션 메뉴 추가
        2.4 쓰기 화면과 연동
        2.5 탭 바 전환과 쿠키 메소드 추가
        2.6 카테고리 데이터와 나의 리포트 다운받기
           서버와 로컬 데이터 동기화, Sync
        2.7 형변환 유틸 및 뷰 라이프 사이클
     3 실험하기
        3.1 로그인 동기화 관련 디버깅
        3.2 한글 자판 설정
        3.3 UISwitch IBAction Event 디버깅 - smartViewHeader.xib
     4 My Reports와 Smart Reports의 다운로드 동기화 디버깅
        4.1 종합 테스트를 통한 버그 검출
        4.2 콘솔의 로그 분석 및 데이터 조사
        4.3 Breakpoint를 이용한 오류 원인 추적
        4.4 가설을 이용한 오류 범위 축소
        4.5 NSFetchedResultsController의 동기화 특성 파악
        4.6 가설을 사실로 확신하기 위한 근거 실험
           디버깅에서 가설의 함정과 현명함
        4.7 NSFetchedResultsController의 캐시 관리
           문제의 해결은 본질의 이해에 해결책이...
        4.8 Breakpoint 해제
        4.9 최종 확인 실험
           디버깅은 객체의 본질 및 특성에 대한 이해를 시작으로...

[30장] 접근 제어 및 카테고리 선택

     1 탭 바를 통한 접근 제어 - owllabSiteAppDelegate
     2  카테고리 선택 - typeView
        2.1 카테고리 테이블 뷰 클래스 생성
        2.2 헤더파일 작성 - typeView.h
        2.3 소스라인 작성 - typeView.m
     3 수정 폼과 카테고리 테이블 뷰 연동 - smartView.m
     4 실험하기

[31장] CoreData와 포토 이미지 연동 - smartView, photoView

     1 포토 이미지 보기 - photoView
        1.1 포토 이미지 보기 뷰 클래스 생성
        1.2 닙 화면 구성 - photoView.xib, UIImage
        1.3 소스 연결 관계 설정 - photoView.xib, photoView.h
        1.4 헤더파일 작성 - photoView.h
        1.5 소스파일 작성 - photoView.m
     2 포토 편집/선택 - UIImagePickerController, smartView
        2.1 UIImagePickerController와 UINavigationControllerDelegate - smartView
     3 실험 및 디버깅
        3.1 상세 이미지 보기 실험
        3.2 가상기기 포토앨범에 이미지 넣고 실험
        3.3 이미지 픽커 실험
        3.4 내비게이션 바 Back 버튼 안보임 현상 디버깅

[32장] 이미지 뷰 줌 기능 추가 - UIScrollViewDelegate, UIImageView

     1 스크롤 객체 안의 이미지 뷰 - photoView.xib
        1.1 View에 UIScrollView 추가
        1.2 UIImageView 가로/세로 비율 유지 - Aspect Fit
           복잡한 디자인 구조는 Navigator를 활용...
        1.3 스크롤 뷰의 콘텐트 영역과 UIImageView의 크기
     2 소스 연결 관계 설정 - photoView.xib, photoView.h
     3 줌 델리게이트 - photoView.m, UITapGestureRecognizer
     4 탭 바 가리기 기능 추가 - smartView selectPhoto:
     5 실험하기

 
[33장] CoreData와 동영상 연동 - smartView

     1 MediaPlayer.framework 추가
     2 동영상 선언 구문 - smartView.h
     3 동영상 선택 - UIImagePickerController
     4 동영상 섬네일 - MPMoviePlayerController thumbnailImageAtTime:~
     5 동영상 포토앨범에 저장 - UISaveVideoAtPathToSavedPhotosAlbum()
     6 동영상 재생 - MPMoviePlayerViewController
     7 동영상 편집 참고 소스 - UIVideoEditorController
     8 카메라 참고 소스 - UIImagePickerControllerSourceTypeCamera
     9 가로/세로 화면 전환 - TabBarController
        9.1 TabBarController 클래스 생성
        9.2 TabBarController 소스 작성 - TabBarController.h, TabBarController.m
        9.3 UITabBarController를 UITabBarController로 교체 - MainWindow.xib
     10 실험하기
        10.1 가상기기 회전 실험
        10.2 실물 단말기 - 동영상 선택/재생/회전 실험
        10.3 실물 단말기 - 이미지 회전 실험

[34장] CoreData를 서버에 업로드 - multipart/form-data

     
      1 통신 관련 선언문 추가 - smartView.h
      2 통신 관련 구문 추가 - smartView.m
        2.1 통신 관련 객체 정의와 메모리 관리
        2.2 수정 완료시 업로드 확인 요청
        2.3 multipart/form-data로 업로드 요청
           나만의 솔루션은 쌓여가는 실험적인 경험치
        2.4 통신 델리게이트 메소드들
           로컬과 서버 데이터의 동기화와 여건에 대한 고민
        2.5 결과 XML 해독 및 업로드 후속 처리
           고민 후, 관례와의 비교
        2.6 기타 유틸리티 메소드들
     3 업로드 서버 구현
           업로드 서버에 대한 지식 필요
        3.1 업로드 프로세스 작성 - smartreport_upload.php
        3.2 실험용 등록폼 만들기 - smartreport_upload_form.php
        3.3 Safari에서 실험하기
     4 실험하기


[35장] 성능 개선과 고급화 - Tuning


     1 첨부 파일 다운로드 시점 튜닝
         1.1 목록 다운시 첨부 파일 제외 - smartReports initReports:, myReports initMyReports:
      2 Thread와 Loading 표시 - performSelectorInBackground:, performSelectorOnMainThread:
        2.1 포토(사진) 버튼 클릭시 이미지 다운로드 실행 - smartView selectPhoto:-
        2.2 동영상 버튼 클릭시 다운로드 실행 - smartView selectMovie:-
           동영상 다운로드 방식과 스트림 방식
      3 속성 객체를 이용한 동영상 섬네일 - smartView
           튜닝은 근본 대책과 신속한 대책을 모두...
        3.1 동영상 섬네일 속성 객체 선언 - movieThumb
        3.2 섬네일 다운로드 시점 튜닝
      4 My Reports 삭제 동기화
        4.1 삭제시 서버에 삭제 요청 - myReports
        4.2 서버에 리포트 삭제 로직 - myreports_delete.php
      5 실험하기


회사소개