
|
- 안녕하세요 고객님, 비제..
01/06 - Bj - 문법보다는... 코드 구현..
01/04 - 자랑쟁이 - 안녕하세요 독자님, 비제..
01/02 - Bj - 이거 공부하다보니 오탈자..
2011 - 자랑쟁이 - 안녕하세요, 독자님. 상용..
2011 - Bj
오픈소스 툴을 이용한 디지털 포렌식
시리즈명: 철통보안 시리즈 004
저자: 할랜 카비, 코리 알사이드
역자: 고원봉
출간예정일: 2012년 1월 26일(목)
정가: 26,000원
페이지: 350p
판형: 190 x 245
ISBN: 978-89-94774-09-1 (93560)
원서정보: Digital Forensics with Open Source Tools
원서 소개
아마존닷컴 소개
Elsevier(원출판사) 소개
샘플 챕터
책 소개
오픈소스 컴퓨터 포렌식 툴을 이용한 디지털 포렌식 수사
지침서
《오픈소스 툴을 이용한 디지털 포렌식》은 오픈소스 도구를 이용한 컴퓨터 시스템/매체에 대한 수사와 분석에 대한 최고의 책이다. 이 책은 기술적 절차에 대한 안내서이며 컴퓨터 리눅스 또는 윈도우즈 포렌식 플랫폼에서 이런 도구들을 사용하는 방법에 대해 설명하고 있다. 뿐만 아니라 넓은 범위의 시스템과 아티팩트에 대한 분석을 커맨드라인 명령이나 그래픽 기반 오픈소스 컴퓨터 포렌식 도구를 이용해서 참신한 방식으로 설명하고 있다.
특징
- 현업에서 일하고 있는 세계적인 유명 포렌식 분석가가 집필했다.
- 포렌식 파일 시스템 분석의 핵심 개념과 기술에 대해 상세히 설명한다.
- 윈도우즈, 맥 그리고 리눅스 운영 체제 아티팩트에 대해 분석한다.
독자 대상
- 초중급자용
기술 서적을 쓸 때 저자가 반드시 대답해야 하는 첫 번째 질문은 “독자 대상이 누구입니까?”라는 물음이다. 저자는 반드시 이 질문을 마음 속에 항상 간직하고 글을 써야 한다. 이 책을 읽은 모든 독자에게 이 책이 쓸모가 있었으면 좋겠지만 예상 독자는 크게 두 그룹으로 나뉜다.
첫 번째 그룹은 새로 들어온 포렌식 종사자다. 이들의 종류는 디지털 포렌식 세계에 처음 입문한 학생부터 지금도 현역으로 일하고 있는 사람, 자신의 경력을 바꾸고자 하는 노련한 시스템 관리자까지 다양하다. 이 책이 여러분이 이 분야에서 성공하기 위해 필요한 모든 포렌식 지식을 담고 있는 단 하나의 완벽한 개론서는 아니지만, 바라건데 여러분이 디지털 포렌식을 시작하기에는 충분할 것이다.
두 번째 독자는 오픈소스 도구를 처음 접하는 경험 많은 디지털 포렌식 종사자다. 이들은 확실히 넓은 층을 형성하고 있다. 상용, 특허 제품만을 선호하는 포렌식 조사관들이 많기 때문이다. 현재 일하고 있는 많은 조사관들은 단일 상용 벤더에 의존하여 조사를 하곤 한다. 이들은 핵심 포렌식 플랫폼을 위해 하나의 벤더에 의존하며 주 도구가 전혀(또는 잘) 처리하지 못하는 몇몇 일들을 수행하기 위해 약간의 다른 상용 도구를 가지고 있을 수도 있다. 오픈소스 도구에 대한 약간의 또는 전무한 경험을 가지고 있는 이런 노련한 조사관에게는 이 책의 내용이 충분히 많은 도움이 될 것이다.
저자소개
할랜 카비
Terremark Worldwide, Inc의 Advanced Security Project의 부회장이다. 플로리다 마이애미에 위치한 Terremark 사는 IT 인프라스트럭처와 “클라우드 컴퓨팅” 서비스를 전세계에 공급하는 선두 기업이다. Harlan은 Engagement Services practice의 주요 기여자이며 내외부의 고객들에게 디스크 포렌식 분석과 컨설팅, 교육을 제공하고 있다. 또한 그는 연방 정부나 법 집행 기관은 물론 관광 산업과 금융 기관을 위한 포렌식 분석 서비스도 제공하고 있다. Harlan의 주요 관심사는 윈도우즈즈 플랫폼에 초점을 맞춘 참신한 분석 솔루션을 연구하고 개발하는 것이다. 그는 Virginia Military Institue에서 전기 공학을 전공하고 Naval Postgraduate School에서 동일한 전공으로 석사 학위를 취득했다. 현재 노던 버지니아에서 가족과 함께 살고 있다.
코리 알사이드
구글의 보안 엔지니어이며 주로 포렌식과 침해사고를 담당하고 있다. 구글 이전에는 포춘 500 기업, 방위 산업 및 사이버 범죄 예방, 전세계의 은행들의 네트워크 보안과 관련된 정보 보안 컨설턴팅 회사인 MANDIANT에서 일했다. 그는 MANDIANT 사의 최고위 컨설턴트로써 다양한 고객을 위해 수많은 침해사고를 처리했으며 일반 회사와 법 집행 기관을 위한 훈련을 개발하고 교육하기도 했다.
또한 National Nuclear Security Administration(NNSA)의 Information Assurance Response Center(IARC)에서 수석 네트워크 포렌식 전문가로 일했다. 이런 능력을 바탕으로 잠재적으로 위험한 코드를 분석하고 미 에너지국(Department of Energy) 시설물의 무선 평가를 수행했으며 새로운 포렌식 기술을 연구하기도 했다. 그뿐만 아니라 다양한 에너지국 지국을 위해 실습 가능한 포렌식 훈련을 개발하여 제공했고 Southern Nevada Cyber Crimes Task Force의 멤버들과 긴밀히 협력하여 흔하지 않은 디지털 매체에 대한 조사 기법도 연구했다.
Cory는 컴퓨터 포렌식 저널인 Digital Investigation에 여러 논문을 개재했으며 Unix and Linux Forensic Analysis(2008)와 The Handbook of Digital Forensics and Investigation(2010)의 공저자다. 또한 Digital Forensics Research Workshop 프로그램 위원회의 주요 멤버이기도 하다.
역자소개
고원봉
성균관대학교 전기전자컴퓨터 공학부를 졸업하고 동 대학원 정보보호학과를 수료한 후 KT의 스팸대응센터에서의 근무를 시작으로 본격적으로 정보보호 분야에 발을 디디게 되었다. 그 후 SKT의 고객정보보호 운영실에 근무하면서 디지털 포렌식을 처음 접하게 되었고 이 분야에 큰 흥미를 느껴 책과 인터넷을 통해 공부를 시작하였다. 현재는 국방부 조사본부 사이버범죄수사과에서 디지털 포렌식 분석 업무를 수행중이다.
저술사항) 《윈도우 포렌식 실전 가이드》, 한빛미디어
자격사항) EnCE, CISSP, CISA
기타) 현, 한국 CISSP 협회 개인정보보호팀 팀장
목차
1장. 오픈소스 도구를 이용한 디지털 포렌식
“오픈소스 도구를 이용한 디지털 포렌식”의 세계에 오신 것을
환영합니다.
“디지털 포렌식”이란 무엇인가?
“오픈소스”란 무엇인가?
오픈소스 도구의 장점
요약
2장. 오픈소스 조사 플랫폼
조사 시스템 준비하기
리눅스 호스트
윈도우즈 호스트
요약
3장. 디스크와 파일 시스템 분석
매체 분석 개념
슬루스 킷
파티셔닝과 디스크 레이아웃
특수 컨테이너
해싱
카빙
포렌식 이미징
요약
4장. 윈도우즈 시스템과 아티팩트
윈도우즈 파일 시스템
레지스트리
이벤트 로그
프리패치 파일
바로가기 파일
윈도우즈 실행파일
요약
5장. 리눅스 시스템과 아티팩트
리눅스 파일 시스템
리눅스 부트 프로세스와 서비스
리눅스 시스템 구조와 아티팩트
사용자 계정
홈 디렉터리
로그
예약된 작업
요약
6장. 맥 OS X 시스템과 아티팩트
OS X 파일 시스템 아티팩트
OS X 시스템 아티팩트
사용자 아티팩트
요약
7장. 인터넷 아티팩트
브라우저 아티팩트
메일 아티팩트
요약
8장. 파일 분석
파일 분석 개념
이미지
오디오
비디오
아카이브
문서
요약
9장. 자동 분석과 기능 확장
그래픽 기반 수사 환경
자동 아티팩트 추출
타임라인
요약
부록. 무료지만 오픈소스는 아닌 도구들
개요
3장: 디스크와 파일 시스템 분석
4장: 윈도우즈 시스템과 아티팩트
7장: 인터넷 아티팩트
8장: 파일 분석
9장: 분석 자동화와 기능 확장
검증 및 테스트용 자원
이 책의 구성
2장에서는 오픈소스 조사 플랫폼에 대해서 설명한다. 우리는 소스 코드를 실행 코드로 컴파일하고 인터프리터를 설치하기 위해 필요한 전제 조건과 우분투와 윈도우즈즈에서 소프트웨어를 빌드하기 위해 필요한 적당한 환경을 만들기 위한 전제 조건을 모두 보여줄 것이다. 또한 우리의 목적을 위해 윈도우즈즈가 리눅스와 “기능적 동등함”을 갖도록 해주는 몇몇 추가 패키지를 사용하여 윈도우즈즈에서 리눅스 에뮬레이션 환경을 구성할 것이다.
3장에서는 슬루스 킷(Sleuth Kit)을 이용하여 디스크와 파일 시스템 분석을 상세히 설명한다. 슬루스 킷은 대표적인 오픈소스 파일 시스템 포렌식 분석 프레임워크다. 슬루스 킷의 사용 방법, 매체 분석의 기본 원리, 디스크와 파티션 구조, 파티 시스템 개념 등에 대해 설명하고 그 외 해싱이나 포렌식 이미지 생성과 같은 추가적인 핵심 디지털 포렌식 주제에 대해서도 살펴볼 것이다.
4장 윈도우즈 시스템과 아티팩트는 운영체제 조사에 해당하는 장의 도입 부분이다. FAT와 NTFS 파일 시스템 분석과 NTFS Master File Table의 내부 구조, 레지스트리 하이브의 추출과 분석, 이벤트 로그 그리고 다른 윈도우즈즈 특유의 아티팩트에 대해 다룬다. 마지막으로 멀웨어와 관련된 침해사고가 점점 더 일반화되고 있기 때문에 윈도우즈즈 실행 파일에서 수집할 수 있는 일부 아티팩트에 대해 논의한다.
5장 리눅스 시스템과 아티팩트에서는 가장 흔한 리눅스 파일 시스템(Ext2와 Ext3)과 리눅스 서버, 데스크톱에서 발견되는 아티팩트의 식별, 추출, 분석에 대해서 논의한다. 시스템 수준의 아티팩트는 리눅스 부트 프로세스, 서비스 컨트롤 스크립트 그리고 사용자 계정 관리와 관련된 아이템들을 포함한다. 사용자가 만든 아티팩트에는 최근 열린 문서, 마운트된 볼륨 등과 같은 것들을 가리키는 리눅스 그래픽 기반 사용자 환경 흔적이 포함된다.
6장은 운영체제와 관련된 마지막 장이며 여기서는 맥 OS X 시스템과 아티팩트에 대해 조사해본다. 슬루스 킷이나 HFSXplorer같은 HFS 전용 도구를 사용하여 HFS+ 파일 시스템을 조사한다. 또한 OS X 환경설정 정보와 사용자 아티팩트의 상당수를 만드는 Property List 파일에 대해서도 분석해본다.
7장에서는 인터넷 아티팩트를 검토한다. 인터넷 익스플로러, 모질라 파이어폭스, 애플 사파리 그리고 구글의 크롬 아티팩트는 아웃룩, Maildir, mbox로 포맷된 로컬 메일과 마찬가지로 처리되고 분석된다.
8장 전체는 파일 분석에 관한 내용이다. 이 장은 단일 시스템 또는 단일 운영체제에 얶매일 필요가 없는 파일의 분석에 대해 다룬다-문서, 그래픽 파일, 비디오 등. 어떤 수사에서는 이런 파일 타입에 대한 분석이 중요한 부분이 될 수 있고 자주 시스템 사이를 이동하는 특징으로 인해 많은 파일이 그것의 원천 시스템에 대한 흔적을 가지고 있을 가능성이 있다. 추가로 이런 파일 포맷 중 상당수가 파일 시스템이 사라지거나 어떤 다른 악의적 변경에도 불구하고 그대로 유지되는 임베디드 정보를 가지고 있다.
9장은 분석 자동화와 기능 확장이라는 주제에 속하는 내용을 다룬다. PyFLAG와 DFF 그래픽 기반 수사 환경에 대해 논의하며 자동화된 포렌식 데이터 추출에서 수고를 덜어주기 위해 만들어진 fiwalk 라이브러리에 대해서도 살펴본다. 뿐만 아니라 타임라인 만들기와 분석은 물론 조사중 시간적 분석에 대해 생각해볼 수 있는 몇몇 대안적 방법에 대해서도 논의한다.
부록에서는 오픈소스 도구가 아직 완벽히 다루지 못하는 부분을 대신 채워주는 일부 비-오픈소스 도구에 대해 알아본다. 이런 도구는 무료로 사용 가능하지만 오픈소스 소프트웨어로 제공되지 않기 때문에 이 책의 주 내용과는 직접적으로 맞아 떨어지지는 않는다. 하지만 저자는 이런 도구가 매우 값어치가 있는 것을 알게 되었으며 그것에 대한 일부 설명이 저자가 게으른 탓에 이 책에서 빠져있다는 핀잔을 듣고 싶지 않다.
이 책에서 다루지 않는 것들
이 책의 목적은 초급에서 중급 조사관에게 알맞은 내용을 전달하는 것이지만 만약 여러분이 리눅스 명령어라인에 익숙하지 않다면 도구들을 사용하여 예제를 따라하는 것이 어려울지도 모른다. 극히 소수의 도구만이 리눅스 전용이지만, 도구의 설치와 예제 사용법 대부분은 리눅스 콘솔에서 실행되었다.
이 책은 데드 드라이브 포렌식 분석-오프 라인 시스템의 매체와 이미지들-에 거의 모든 초점을 맞추고 있다. 동작중인 시스템의 휘발성 데이터의 수집과 분석은 다루지 않는다. 리눅스 시스템 밖에서 이런 임무를 수행하는 도구의 대부분은 오픈소스가 아니다. 그렇기는 하지만 우리가 살펴볼 대부분의 분석 기법은 동작중인 시스템에서 수집한 아티팩트와 아이템에 동일하게 적용이 가능하다.
| [출간예정] 오픈소스 툴을 이용한 디지털 포렌식 (0) | 2012/01/06 |
|---|---|
| [출간완료] 예제로 배우는 CUDA 프로그래밍 (0) | 2011/10/05 |
| [예약판매] 프로세싱, 날개를 달다: 다니엘 쉬프만의 인터랙티브 미디어아트를 위한 Processing (0) | 2011/05/31 |
| [출간완료]철통보안, SQL Injection: SQLi 공격과 방어의 원리 (0) | 2011/05/13 |
저자 아론 힐리가스, 조 콘웨이
역자 최윤선, 백선덕
출간예정일 2012년 1월 10일(화)
정가 35,000원
페이지 640p
판형 190 x 245
ISBN 978-89-94774-08-4 (93560)
원서정보 iOS Programming: The Big Nerd Ranch Guide 2/e
책 소개
아론 힐리가스의 아이폰/아이패드 프로그래밍
“이 책은 종종 여러분이 이해하기도 전에 코드를 먼저 입력하라고 한다. 아마도 자신이 잘 알지도 못하는 코드를 입력만 하는 잘 훈련된 원숭이가 된 것처럼 느낄 수도 있다. 하지만 코딩을 배우는 가장 좋은 방법은 잘못된 부분을 찾아 고치는 것이다. 이런 기본적인 디버깅 과정에서 복잡한 코드를 제대로 이해하게 된다. 그런 이유로 코드를 직접 입력하기를 권유한다. 단순히 코드를 내려 받을 수도 있지만, 복사해서 붙여 넣는 것은 프로그래밍이 아니다. 우리는 여러분이 이 책을 통해 더 잘 배우길 바란다.
독자 여러분에게 왜 이런 이야기를 하는 걸까? 이런 방식은 신뢰가 필요하기 때문이다. 그리고 우리를 믿고 따르길 바라기 때문이다. 이런 방식에는 인내심도 요구된다.
이 책의 각 장을 진행하면서 어떤 일들이 일어나고 있는지 설명하며 여러분이 편안하게 느끼도록 노력할 것이다. 하지만 때로는 우리를 믿고 따라와야 할 때도 있다. 당장 이해되지 않는 개념이 나왔다고 낙담할 필요는 없다. 일부러 모든 지식을 한 번에 전달하지 않는다는 것을 기억하라. 어떤 개념이 당장 명확하게 이해되지 않더라도 뒷부분에서 필요할 때 자세히 다룰 것이다. 시작할 때는 명확하지 않았던 개념들이 처음으로 구현한 순간 갑자기 이해되는 경험을 하게 될 것이다.”
– 아론 힐리가스, 조 콘웨이
《iOS, 날개를 달다》는 iOS, Xcode 및 iPad 개발을 아우르는 내용으로 업데이트되고 확장되어 iOS 앱을 개발하기 위한 필수적인 도구와 기법을 안내한다.
이 책은 Big Nerd Ranch에서 저자들의 인기 있는 강의 프로그램인 iOS 부트캠프 코스와 검증된 강의 방법에 기초를 두고 있다. 개념과 코딩을 함께 다루어 유용한 가르침이 될 것이다.
이 책을 마친 후 여러분은 iOS 프로젝트를 다루기 위해 필요한 지식, 경험 그리고 자신감을 갖게 될 것이다.
이 책에서 다루는 내용
■ Xcode 4, 인스트루먼트 및 디버거
■ 아이폰과 아이패드 모두를 위한 유니버설 앱
■ 멀티-터치, 모션 이벤트 및 가속센서 데이터 접근하기
■ 툴바, 네비게이션 컨트롤러 및 스플릿 뷰 컨트롤러
■ 코어 로케이션 및 국제화
■ 레퍼런스 카운팅, 리테인 카운트 및 메모리 관리
■ 오브젝티브-C의 블록 및 카테고리
■ 음악과 비디오 플레이하기
■ 백그라운드 실행과 멀티 태스킹
■ 데이터 저장하기/불러오기: 아카이빙과 코어 데이터
■ 푸시 노티피케이션
■ 웹 서비스와 통신하기
■ Bonjour와 NSStream을 사용하는 네트워크 프로그래밍
iOS 개발자가 되려면 세 가지 기본 문제를 해결해야 한다
■ 오브젝티브-C 언어를 배워야 한다. 오브젝티브-C는 C 언어를 약간 확장한 간결한 언어다. 이 책 앞부분의 네 개 장을 본 후에는 오브젝티브-C의 실무 지식을 갖추게 되므로 너무 걱정하지 않아도 된다.
■ 몇 가지 중요한 개념을 정확히 이해해야 한다. 메모리 관리 기법, 델리게이트, 데이터 저장, 뷰 컨트롤러의 사용법 등이 이에 해당한다. 이런 중요한 개념들을 이해하는 데는 시간이 좀 걸리지만, 이 책의 중간까지 읽은 후에는 잘 이해할 수 있게 될 것이다.
■ 프레임워크를 정복해야 한다. 최종 목표는 iOS의 모든 프레임워크에 있는 모든 클래스와 모든 메소드의 사용법을 아는 것이다. 이는 평생 걸릴 프로젝트다. iOS에는 3000여 개의 메소드와 200여 개의 클래스가 있다. 더욱 어려운 것은 애플이 새로운 iOS 버전마다 새 클래스와 새 메소드를 추가한다는 것이다. 이 책에서는 iOS SDK를 구성하는 각각의 하위 시스템을 배우지만 모든 하위 시스템을 깊이 다루지는 않을 것이다. 우리의 목표는 여러분을 애플의 참고문서를 검색하고 이해할 수 있는 위치까지 이끄는 것이다.
이 책의 내용은 Big Nerd Ranch의 iOS 개발 교육을 위한 부트캠프에서 여러 차례 사용되어 왔다. 이 책의 내용은 충분히 검증되었으며, 수백 명 이상이 iOS 앱 개발자가 될 수 있도록 도와주었다. 이 책이 여러분에게도 도움이 되기를 진심으로 바란다.
독자대상
초중급자용
저자소개
NeXT와 애플에서 일했으며 Big Nerd Ranch의 iOS 프로그래밍 클래스를 가르치고 있다. NeXT에서는 OpenStep에 대한 첫 코스와 오늘날의 코코아(Cocoa) 도구의 전신을 작성했다. 이 책은 Big Nerd Ranch 코스에 기초하고 있으며 OpenStep과 코코아에 관한 거의 20년간의 작업으로부터 영향을 받았다.
조 콘웨이
Big Nerd Ranch의 iOS 시니어 강사로 처음부터 iOS 플랫폼에 대한 컨설팅을 해왔다. 위스콘신 대학교를 졸업했고 OS X 이후부터 오브젝티브-C와 코코아 코드를 작성해왔다. 조는 아주 인기가 많은 Big Nerd Ranch의 iOS 부트캠프의 교재를 작성했고, 이 책 또한 그의 교재에 기초하고 있다.
역자소개
최윤선
한양대학교 전자계산학과 학사 학위를 받았으며 LG 소프트, 드림라인, 네오위즈를 거쳐서 11년간 줄곧 인터넷분야에서 프로그래머로서 일해왔다. 현재는 iOS 프로그래밍에 몰두하고 있다.
백선덕
한양대학교와 포항공과대학에서 산업공학과 학사와 석사 학위를 받았으며 한국오라클, 호주 오라클을 거쳐서 13년간 소프트웨어 분야에서 일해왔다. 현재는 호주 현지회사에서 소프트웨어 엔지니어로 근무중이다.
목차
Chapter 01 간단한 iOS 앱
Xcode 프로젝트 만들기
인터페이스 만들기
모델-뷰-컨트롤러
선언
커넥션 만들기
메소드 구현하기 43
빌드하고 시뮬레이터에서 실행하기
앱 배포하기
앱 아이콘
런치 이미지
Chapter 02 오브젝티브-C
객체
인스턴스 사용하기
RandomPossessions 툴 작성하기
오브젝티브-C 클래스의 하위 클래스 만들기
예외와 콘솔 윈도우
고속 열거형
도전 과제
Chapter 03 메모리 관리
메모리 관리의 기본
레퍼런스 카운팅
좀 더 흥미 있는 분을 위해: 더 심화된 메모리 관리
Chapter 04 델리게이션과 코어 로케이션
프로젝트, 타깃, 프레임워크
코어 로케이션
델리게이션
디버거 사용하기
도전 과제: 헤딩
좀 더 흥미 있는 분을 위해: 빌드 페이스, 컴파일러 에러, 링커 에러
Chapter 05 맵킷과 텍스트 입력
객체 다이어그램
맵킷 프레임워크
인터페이스 프로퍼티
MapView 델리게이트 되기
도전 과제: 어노테이션 확장
도전 과제: 역지오코딩(Reverse Geocoding)
Chapter 06 UIView 하위 클래스 만들기
커스텀 뷰 만들기
텍스트와 그림자 그리기
UIScrollView 사용하기
확대하기
상태 바 가리기
도전 과제: 색깔
좀 더 흥미 있는 분을 위해: 리테인 사이클
좀 더 흥미 있는 분을 위해: 뷰 다시 그리기
Chapter 07 뷰 컨트롤
뷰 컨트롤러와 XIB 파일
뷰 컨트롤러 사용하기
나타났다 사라지는 뷰
뷰 컨트롤러 수명 주기와 로우-메모리 경고
뷰 컨트롤러의 하위 클래스와 템플릿
도전 과제: 맵 탭
Chapter 08 가속센서
가속센서 설정하기
가속센서 데이터 구하기
가속도의 위치와 크기
가속센서 데이터 사용하기
가속센서 데이터 다듬기
흔들기 제스처 감지하기
도전 과제: 색 바꾸기
좀 더 흥미 있는 분을 위해: 필터링과 주파수
좀 더 흥미 있는 분을 위해: 레티나 디스플레이
Chapter 09 노티피케이션과 회전
노티피케이션 센터
UIDevice 노티피케이션
자동회전
가로 모드 강제설정하기
도전 과제: 근접 노티피케이션
좀 더 흥미 있는 분을 위해: 자동회전을 오버라이드하기
Chapter 10 UITableView와 UITableViewController
Homepwner 앱 시작하기
UITableViewController
UITableView의 데이터 소스
UITableViewCells
코드 스니펫 라이브러리
도전 과제: 섹션
Chapter 11 UITableView 편집하기
편집 모드
행 추가하기
행 삭제하기
행 이동하기
Chapter 12 UINavigationController
UINavigationController
추가적인 UIViewController
UINavigationController로 내비게이트하기
도전 과제: 숫자 패드
Chapter 13 카메라
이미지 보여주기와 UIImageView
도전 과제: 이미지 삭제하기
좀 더 흥미 있는 분을 위해: 비디오 녹화하기
Chapter 14 UIPopoverController와 모달 뷰 컨트롤러
Homepwner 유니버설로 만들기
UIPopoverController
모달 뷰 컨트롤러
Chapter 15 저장, 읽기, 멀티태스킹
앱 샌드박스
파일 경로 구성하기
아카이빙
앱 상태, 변환, 멀티태스킹
NSData를 파일시스템에 쓰기
로우-메모리 경고에 대해
모델-뷰-컨트롤러-스토어 디자인 패턴
도전 과제: Whereami 아카이브하기
좀 더 흥미 있는 분을 위해: 앱 상태 변환
좀 더 흥미 있는 분을 위해: 파일시스템에 읽고 쓰기
좀 더 흥미 있는 분을 위해: 앱 번들
Chapter 16 UITableViewCell의 하위 클래스 만들기
HomepwnerItemCell 생성하기
이미지 조작
도전 과제: 액세서리 인디케이터
도전 과제: 메인 이미지 줄이기
Chapter 17 코어 데이터
객체-관계 매핑
Homepwner를 코어 데이터로 이동하기
SQL에 대해 좀 더 알아보기
영구적 메커니즘의 장단점
도전 과제: 새로운 Asset 타입
도전 과제: 아이패드에서의 Asset
Chapter 18 현지화
NSLocale을 이용해 현지화하기
리소스 현지화하기
NSLocalizedString과 문자열 테이블
도전 과제: 또 다른 현지화
좀 더 흥미 있는 분을 위해: 국제화에서 NSBundle의 역할
Chapter 19 설정
Whereami 갱신하기
NSUserDefaults
좀 더 흥미 있는 분을 위해: 설정 앱
Chapter 20 터치 이벤트와 UIResponder
터치 이벤트
TouchTracker 앱 만들기
터치를 라인으로 바꾸기
응답자 체인
도전 과제: 저장하기와 로딩하기
도전 과제: 원
좀 더 흥미 있는 분을 위해: UIControl
Chapter 21 인스트루먼트
정적 분석기
인스트루먼트
Xcode 스킴
빌드 세팅
Chapter 22 코어 애니메이션 레이어
레이어와 뷰
CALayer 생성하기
레이어 컨텐트
암시적 애니메이션이 가능한 프로퍼티
좀 더 흥미 있는 분을 위해: 프로그램 코드로 컨텐트 만들어내기
좀 더 흥미 있는 분을 위해: 레이어, 비트맵, 컨텍스트
도전 과제: 동적 레이어 컨텐트
Chapter 23 CAAnimation으로 애니메이션 제어하기
애니메이션 객체
CABasicAnimation으로 회전하기
CAKeyframeAnimation으로 바운스하기
도전 과제: 추가 애니메이션
좀 더 흥미 있는 분을 위해: 프레젠테이션 레이어와 모델 레이어
Chapter 24 블록과 카테고리
TouchDrawView에 색 입히기
블록
카테고리
좀 더 흥미 있는 분을 위해: 메모리 관리와 블록
좀 더 흥미 있는 분을 위해: 콜백 옵션의 장단점
Chapter 25 웹 서비스와 UIWebView
웹 서비스
UIWebView
좀 더 흥미 있는 분을 위해: NSXMLParser
좀 더 흥미 있는 분을 위해: The Request Body
좀 더 흥미 있는 분을 위해: Credentials
도전 과제: 좀 더 많은 데이터
도전 과제: UIWebView 더 다루기
Chapter 26 UISplitViewController
Nerdfeed 분할하기
마스터-디테일 커뮤니케이션
세로 모드에서 마스터 뷰 컨트롤러 보여주기
Nerdfeed 앱을 유니버설하게 만들기
Chapter 27 미디어 재생과 백그라운드 실행
미디어플레이어 앱 만들기
시스템 사운드
시스템 사운드 등록하기
시스템 사운드 재생하기
압축된 오디오 파일
무비 파일 재생하기
백그라운드 프로세스
로우-레벨 API
도전 과제: 오디오 레코딩
Chapter 28 봉쥬르와 웹 서버
봉쥬르
HTTP 통신
좀 더 흥미 있는 분을 위해: TXTRecords
Chapter 29 푸시 노티피케이션과 네트워킹
푸시 노티피케이션을 위해 클라이언트 준비시키기
푸시 노티피케이션 전달하기
푸시 노티피케이션 보내기
클라이언트에서의 추가적 노티피케이션 처리
프로덕션 서버 및 향후의 할 일
좀 더 흥미 있는 분을 위해: 피드백 서비스
Chapter 30 후기
다음으로 할 일
자화자찬
이 책의 사용법
이 책은 우리가 빅 너드 랜치(Big Nerd Ranch: 필자들이 운영하는 교육 프로그램)에서 가르치는 수업에 기본을 두고 있으며 우리의 수업방법에 맞게 만들어졌다.
“난 매일 한 장씩 공부할 거야.”와 같은 실현 가능한 목표를 세워라. 한 장을 공략하려 할 때 적어도 한 시간은 방해 받지 않을 조용한 장소를 찾아가라. 이메일, 트위터 프로그램, 채팅 프로그램을 모두 꺼라. 멀티태스킹보다는 집중이 필요하다.
실제로 프로그래밍을 해라. 먼저 한 장을 전부 읽어도 된다. 하지만 직접 코딩을 해야 비로소 진정으로 자기 것이 된다. 프로그램을 작성해봐야, 더 중요하게는 디버깅을 해 봐야 진정으로 개념을 이해할 수 있다.
몇몇 연습문제는 보조적인 파일을 필요로 한다. 예를 들어 첫 번째 장에서는 퀴즈 앱을 위한 아이콘이 필요하다. 리소스와 솔루션은 다음 웹 사이트에서 내려받을 수 있다:
배우는 방법에는 두 가지가 있다. 남북전쟁에 대해 배울 때는 여러분이 이미 이해한 것에 구체적인 사실들만 더해가면 된다. 우리는 이것을 “이지 러닝(Easy Learning)”이라 한다. 그렇다. 남북전쟁에 대해 배우는 것은 시간이 오래 걸릴 수는 있지만 당황할 필요 없이 차근히 하기만 하면 누구나 할 수 있다.
그러나 iOS 프로그래밍은 “하드 러닝(Hard Learning)”이다. 아마 처음 며칠은 상당히 혼란스러울 것이다. 이 책을 쓰면서 여러분의 학습곡선을 완만하게 하려고 노력했다. 여러분이 좀 더 쉽게 배울 수 있는 두 가지 방법은 다음과 같다:
■ 이미 iOS 애플리케이션을 만드는 방법을 알고 있으며 당신의 질문에 답해 줄 사람을 찾아라. 특히 첫 앱을 디바이스에 올릴 때에는 경험자의 도움이 없다면 절망적인 상황에 빠질 수도 있다.
■ 잠을 충분히 잔다. 잠이 모자라면 뭘 배웠는지 기억하지 못한다.
이 책의 구성
이 책의 각 장은 다음과 같이 구성되어 있다. 먼저 iOS 개발에 대한 하나 이상의 개념을 가르치고 나서 실제로 프로그래밍을 하게 한다. 연습이 더 필요하다고 생각되면 각 장의 뒷부분에서 도전해볼 만한 주제를 소개한다. 최소한 몇 개는 도전해보길 권장한다. 이 주제들은 각 장에서 배운 개념을 더욱 공고하게 다져주며 iOS 프로그래밍에 자신감을 갖게 해준다. 마지막으로 각 장의 마지막에 나오는 “좀더 흥미 있는 분을 위해” 섹션에서는 앞에서 소개한 개념을 활용할 방법을 설명한다.
1장에서는 어느 정도 쉬운 앱을 개발하고 디바이스에 설치하면서 iOS 프로그램을 배우게 된다. 프로젝트 및 파일을 생성하는 과정을 겪으면서 Xcode와 iOS 시뮬레이터를 충분히 경험하게 될 것이다.
2장과 3장에서는 오브젝티브-C와 메모리 관리에 대한 개요를 배운다. iOS 앱을 만들지는 않지만 RandomPossessions라는 툴을 작성하고 디버깅할 것이다. (이 툴은 계속 사용될 것이며 10장에서 소개되는 Homepwner 앱에서는 이와 관련된 클래스를 사용하게 될 것이다.)
4장과 5장에서는 코어 로케이션과 맵 킷 프레임워크를 배우고 Whereami라는 지도 앱을 만들 것이다. 델리게이션 디자인 패턴, 프로토콜, 프레임워크, 객체 다이어그램 및 애플 문서를 사용해 볼 것이다.
6장과 7장에서는 Hypnosister와 HypnoTime 앱을 통해 iOS 유저 인터페이스에 초점을 맞출 것이다. 스크롤, 확대, 탭 바를 이용한 화면 간 이동과 함께 뷰와 뷰 컨트롤러를 사용해본다.
8장에서는 가속센서를 다룬다. 흔들기 제스처를 포함한 동작 이벤트를 다루기 위해 가속센서에서 데이터를 가져오고, 필터링하고, 사용하는 법을 배운다. HypnoTime 앱에 새로운 기능을 추가하기
위해 가속센서의 데이터를 사용하게 된다.
9장에서는 노티피케이션과 회전에 대해 배우면서 HeavyRotation이란 앱을 만든다. 또한 HeavyRotation을 아이패드 화면에도 잘 맞도록 하기 위해 오토리사이징을 사용할 것이다.
10장에서는 이 책에서 가장 큰 애플케이션인 Homepwner를 소개한다(“Homepwner”는 오타가 아니다. “pwn”의 의미는 www.urbandictionary.com에서 찾을 수 있다). 이 앱은 화재나 재난에 대비해 여러분의 소지품 목록을 기록하고 보관한다. Homepwner는 총 아홉 개의 장을 통해 구현이 완료된다.
10장, 11장, 16장에서 여러분은 정보 목록을 표시한다. 테이블 뷰, 뷰 컨트롤러, 데이터 소스에 관해 배운다. 데이터를 테이블에 표시하는 방법, 사용자가 테이블을 편집할 수 있게 만드는 방법, 인터페이스를 향상시키는 방법을 배운다.
12장에서는 7장에서 배운 내비게이션에 대해 상세히 다룬다. UINavigationContoller를 사용하는 방법을 배우고 Homepwner에 좀 더 정교한 인터페이스와 네비게이션 바를 추가한다.
13장에서는 카메라로 사진을 찍는 방법과 이미지를 Homepwner에서 표시하고 저장하는 방법을 배운다. NSDictionary와 UIImagePickerController도 배울 것이다.
14장에서는 아이패드를 위한 UIPopoverController와 모달 뷰 컨트롤러에 대해 배운다. 여기에서는 Homepwner를 아이폰과 아이패드 모두에서 자연스럽게 동작하는 앱으로 만든다.
15장에서는 데이터를 저장하고 불러오는 방법에 대해 살펴본다. 특히 NSCoding 프로토콜을 사용해 Homepwner 앱에 데이터를 저장할 것이다. 또한 멀티태스킹과 액티브, 백그라운드, 일시 중지와 같이 앱 상태를 변환하는 방법을 보여준다.
17장은 코어 데이터에 대한 도입부다. NSManagedObjectContext를 사용해 데이터를 저장하고 불러오도록 Homepwner 앱을 변경할 것이다.
18장에서는 국제화(internationalization) 및 지역화(localization)의 개념과 기법을 소개할 것이다. Homepwner를 지역화하면서 NSLocale, 문자열 테이블, NSBundle에 대해 배울 것이다. 이 장에서 Homepwner 앱이 완성된다.
19장에서는 사용자 설정을 저장하기 위해 NSUserDefaults를 사용하는 방법을 배운다.
20장에서는 TouchTracker라는 그림 그리기 앱을 만든다. 멀티터치를 지원하는 방법과 터치 이벤트에 대해 배운다. 또한 최초 응답자와 응답자 체인의 개념을 접하게 될 것이다. NSDictionary도 더 연습하게 될 것이다.
21장에서는 TouchTracker의 성능과 메모리 문제를 디버깅하면서 인스트루먼트에 대해 배운다. Xcode의 기능과 소스 코드 정적 분석기에 대해 다룰 것이다.
22장과 23장에서는 HypoTime 앱에 애니메이션을 구현하면서 레이어와 코어 애니메이션 프레임워크를 소개한다. 뷰 객체의 애니메이션 기능과 CABasicAnimation, CAKeyframeAnimation 같은 애니메이션 객체에 대해 배운다.
24장에서는 오브젝티브-C의 중요한 두 개념인 블록과 카테고리를 다룬다.
25장에서는 Nerdfeed 앱을 만들면서 웹 서비스의 세계로 나아간다. Nerdfeed 앱은 NSURLConnection과 NSXMLParser를 사용해 서버로부터 RSS 피드를 가져와서 해석한다. 또한 UIWebView로 웹 페이지를 표시한다.
26장에서는 UISplitViewController에 대해 배우고 아이패드의 큰 화면을 이용하기 위해 Nerdfeed 앱에 스플릿 뷰 UI를 추가한다.
27장에서는 MediaPlayer 앱을 만들면서 오디오와 비디오를 재생하는 방법을 배운다. 또한 오디오 및 비디오 리소스를 저장하는 위치, 스트리밍 한계, 저수준의 오디오 API에 대해 배운다. MediaPlayer가 백그라운드 상태로 음악을 연주할 수 있게 하면서, 백그라운드 실행을 위한 지침에 대해서도 배운다.
28장에서는 맥(Mac) 데스크톱을 위한 코코아 앱을 만든다. 네트워크에서 데스크톱 앱을 찾기 위해 봉쥬르(Bonjour)를 사용하는 iOS 앱도 만든다. 데스크톱 앱이 검색되면 HTTP를 이용해 통신한다.
29장에서는 여러분의 iOS 디바이스로 푸시 노티피케이션을 보내도록 데스크톱 앱을 확장할 것이다.
| iOS, 날개를 달다: 아론 힐리가스의 아이폰/아이패드 프로그래밍 (0) | 2011/12/15 |
|---|---|
| [출간완료!] 프로페셔널 ALM 1장 공개 (0) | 2011/11/01 |
| [출간완료] 스마트 그리드 보안: 차세대 전력망 공격과 방어 (0) | 2011/09/01 |
| [신간소개] 철통보안, 윈도우즈 레지스트리 포렌식: 보안 전문가를 위한 디지털 포렌식 분석 (0) | 2011/08/02 |