Top

스위프트로 하는 iOS 9 프로그래밍

  • 원서명iOS 9 Programming Fundamentals with Swift (ISBN 9781491936771)
  • 지은이매트 뉴버그(Matt Neuburg)
  • 옮긴이동준상, 이지훈
  • ISBN : 9788960778290
  • 40,000원
  • 2016년 03월 10일 펴냄
  • 페이퍼백 | 796쪽 | 188*250mm
  • 시리즈 : 모바일 프로그래밍

책 소개

이 책의 예제는 저자의 깃허브(https://github.com/mattneub/Programming-iOS-Book-Examples)에서 내려받을 수 있습니다.

요약

이 책은 지난 판인 『Swift로 하는 iOS 프로그래밍』의 개정판 격으로, 가장 최신 버전인 iOS 9, 스위프트 2.0, Xcode 7으로 업데이트된 내용을 담고 있다. 따라서, 이 책은 전작에 비해 작게는 콘솔 출력문의 변화부터, 크게는 스위프트 객체 타입의 유연성을 위한 프로토콜, 제너릭, 익스텐션, 그리고 콜렉션 타입에 이르기까지 꽤 광범위한 부분에서 개선 및 추가, 보완이 이뤄졌다.

이 책에서 다루는 내용

스위프트의 변수와 함수, 유효 범위(Scope)와 네임스페이스, 객체 타입과 인스턴스 등을 통한 객체지향형 콘셉트 소개

스위프트의 숫자, 문자열, 레인지, 튜플, 옵셔널, 배열, 딕셔너리 등 다양한 데이터 타입 소개

스위프트 객체 타입인 enum, struct, class의 선언, 초기화, 수정 방법

스위프트의 강력한 기능인 프로토콜, 제네릭의 이해 및 활용

스위프트 2.0에 추가된 옵션 세트, 프로토콜 확장, 오류 처리, 가드(guard) 명령, 이용 가능성 확인 등의 최신 기능

엑스코드 프로젝트의 생성부터 앱스토어 제출까지의 모든 과정 소개

iOS 애플리케이션의 인터페이스 파일인 닙(nib)과 닙 편집기인 인터페이스 빌더 활용법

코코아 프레임워크의 이벤트 구동형 모델과 주요 디자인 패턴, 핵심 기능

스위프트와 기존 코코아 프레임워크에 있는 C, 그리고 오브젝티브C API 간의 소통 방식

이 책의 구성

1부, 스위프트 언어에서는 독자분들이 프로그래밍 언어를 접해본 적이 없다고 가정하고 스위프트 언어의 기초를 소개한다. 애플의 개발자 문서와는 달리, 체계적이면서 계통적으로 프로그래밍 언어의 요소를 정리하고 교육학 이론에 입각해 각각의 요소를 결합함으로써 프로그래밍 언어의 기초를 설명한다. 이와 동시에 프로그래밍에 있어 필수적인 내용을 함께 소개한다. 스위프트가 방대한 프로그래밍 언어는 아니지만, 반드시 이해해야 할 미묘한 부분과 지엽적인 부분이 꽤 있다. 하지만 지금 당장 그 모든 내용을 깊이 이해할 필요는 없으며, 이 책에서도 그러한 부분에 대해 상세히 다루지 않는다. 앞으로 프로그래밍하면서 지엽적인 요소들을 한 번도 써보지 않을 수 있지만, 혹시 그 요소들을 활용해야 할 상황이 된다면, 여러분은 이 책에서 다루지 못한, 깊이 있는 스위프트의 세계로 진입했다고 생각해도 될 듯하다. 바꿔 말하면, 이 책을 무난히 다 읽은 독자라 하더라도 인터넷 등에서 난생 처음 보는 스위프트 코드를 보고 당황할 수 있다는 것이다. 이 책은 iOS 프로그래밍 실용 예제를 소개할 뿐만 아니라 실용 예제들을 이해하는 데 필요한 보편적인 내용과 언어의 실용적인 활용법을 중심으로 스위프트를 설명하기 때문이다.

2부, IDE에서는 사실상 거의 모든 iOS 프로그래밍 작업이 진행되는 엑스코드에 대해 설명한다. 엑스코드 프로젝트의 정의, 앱으로의 변환 방법, 편안하게 엑스코드를 활용하기 위한 문서 참조, 코드 작성, 메뉴 이동, 디버그 방법, 실제 iOS 기기를 통해 앱을 테스트하는 방법, 앱스토어에 앱을 제출하는 방법 등에 대해 소개한다. 또한 인터페이스 구현에 있어 매우 중요한 역할을 하는 닙 파일, 닙 편집기인인터페이스 빌더, 여기서 설정하는 아웃렛과 액션, 닙 파일의 로딩 방식 등에 대해 설명한다. 단, iOS 인터페이스 개발의 특징 중 하나인 자동레이아웃, 제약에 대한 내용은 기초 수준을 넘어서므로 이 책에서 다루지 않고 자매서에서 소개한다.

3부, 코코아에서는 코코아 터치 프레임워크에 대해 설명한다. 코코아 터치 프레임워크는 애플이 만든 iOS 프로그래밍을 위한 유용한 도구 모음이라 할 수 있다. 코코아는 애플이 만든 여러 프레임워크를 통칭해서 부르는 말이며, iOS 프로그래밍을 위한 전용 API 브랜드가 바로 코코아 터치다. 개발자가 작성한 코드 대부분은 사실상 코코아 프레임워크 요소들과의 상호작용을 위한 것이라 할 수 있다. 코코아 터치 프레임워크는 iOS 앱 구현에 필요한 주요 기능을 제공한다. 프레임워크 사용에 앞서, 개발자는 프레임워크의 작동 방식에 대해 이해할 필요가 있고, 프레임워크가 처리할 수 있는 코드를 작성해야 하며, 프레임워크 활용을 위해 필요한 여러 사항을 빠짐없이 챙겨줘야 한다. 현 상황에서의 특이점은 코코아는 오브젝티브C라는 언어로 작성됐는데 여러분은 스위프트라는 언어를 사용한다는 점이다. 이 때문에 스위프트 코드를 통해 코코아의 주요 기능과 작동 방식을 조절할 수 있는 방법을 터득해야 한다. 이 책에서는 코코아가 제공하는 기초 클래스와 카테고리, 프로토콜, 델리게이션, 노티피케이션 등 프로그램의 구조를 이루는 주요 요소를 소개하고, 메모리 관리 기법에 대해 설명한다. 아울러 키-값 코딩, 키-값 옵저빙 기법에 대해서도 소개한다.

저자/역자 소개

지은이의 말

“애플의 새로운 프로그래밍 언어를 소개합니다.”
2014년 6월 2일, 애플은 WWDC 키노트 연설이 끝날 무렵 놀라운 뉴스를 전했다. 애플이 새로운 프로그래밍 언어를 만들었다는 소식은 기존의 오브젝티브C 언어에 익숙해진 개발자 커뮤니티에 큰 충격으로 다가왔고, 과연 애플이 이미 굳건히 자리 잡은 언어를 대체할 수 있는 새로운 프로그래밍 언어를 내놓을 수 있을지 의심하는 목소리가 컸다.

하지만 스위프트가 소개되면서 개발자 커뮤니티의 의심은 이내 사라졌다. 새로운 언어가 실제로 공개되자, 다수의 개발자는 스위프트라 알려진 이 언어를 요모조모 살펴보며 실체를 파악하기 시작했고, 내용 파악, 기능 분석, 적용 가능성 판단 등의 작업을 진행했다. 내가 가장 먼저 한 일은 기존에 오브젝티브C 언어를 사용해 만들었던 iOS 앱을 스위프트 언어로 바꿔서 구현해보는 것이었다. 그 결과, 스위프트는 새로 iOS 프로그래밍을 접하게 될 개발자가 충분히 믿고 사용할 수 있으며, 이 책을 읽을 많은 독자들 역시 유용하게 사용할 수 있는 언어라는 결론을 얻었다.

프로그래밍 언어로서 스위프트는 다음과 같은 개발 철학을 바탕으로 만들어졌다.

객체지향성
스위프트는 현대적이며, 객체지향적인 언어다. ‘모든 것은 객체다.’라고 표현할 정도로 스위프트는 객체지향적이다.

명료성
스위프트는 읽기 쉽고 쓰기 쉬운 언어이며 최소한의 문법 규칙과 일부 단축 표현만 알면 사용할 수 있다. 스위프트의 문법은 분명하고, 일관되며, 명시적이다.

안전성
스위프트는 강력한 데이터 타입 지정 방식을 통해 언어 스스로는 물론, 개발자인 여러분과 해당 데이터를 참조하는 모든 객체가 언제라도 데이터 타입의 유형, 상태 정보를 알 수 있게 한다.

경제성
스위프트는 간소한 언어를 추구하며, 약간의 기본적인 데이터 타입과 핵심 기능 이외의 요소는 포함하지 않는다. 프로그래밍에 필요한 다른 요소는 여러분이 작성한 코드와 코코아(Cocoa) 등의 라이브러리를 통해 가져올 수 있다.

메모리 관리
스위프트는 자동으로 메모리를 관리하므로 개발자가 메모리 관리에 신경 쓸 일이 거의 없다.

코코아 호환성
코코아 API는 C와 오브젝티브C 언어로 작성됐으며, 스위프트는 거의 대부분의 코코아 API와 완벽하게 상호작용할 수 있는 언어다.

스위프트가 지닌 이와 같은 배경 철학과 핵심 요소는 iOS 프로그래밍을 처음 배우려는 많은 개발자에게 훌륭한 조건이라 할 수 있다.
iOS 프로그래밍을 위한 또 다른 언어인 오브젝티브C는 여전히 많은 개발자가 사용 중이며 여러분 역시 사용할 수 있다. 앱 개발에서 스위프트와 오브젝티브C의 코드를 함께 쓰는 것 역시 가능하다. 하지만 기존의 언어인 오브젝티브C는 스위프트가 지닌 여러 장점을 감안할 때 상대적으로 부족하다. 오브젝티브C는 C 언어 위에 객체지향성을 추가한 것이다. 따라서 언어 중 일부만이 객체지향적이고, 현대적인 의미의 객체와 전통적인 스칼라 데이터 타입이 함께 사용되며, 객체는 반드시 특수한 C 데이터 타입(포인터)에 넣어서 전달해야만 한다. 또한, 오브젝티브C의 문법은 까다로운 편이다. 거듭 중첩된 메소드 호출을 읽고 쓰다 보면 머리가 어지러울 지경이고, 암묵적인 nil 테스트를 수시로 해야 한다. 오브젝티브C의 타입 체크 기능은 꺼져 있기 일쑤며, 엉뚱한 타입의 객체를 전달해 프로그램 충돌로 이어지기도 한다. 또한 오브젝티브C는 초기에 수동으로 메모리 관리를 하다가 지금은 이를 자동화한 ARC(automatic reference counting, 자동 참조 카운팅) 기능을 제공해서 오류를 현저히 줄였으나, 관련 오류가 완전히 제거된 것은 아니며 궁극적으로는 개발자가 직접 메모리 관리에 관여해야 한다.

오브젝티브C는 최근 몇 년 동안 ARC, 합성, 자동 합성 등 새로운 기능을 추가한 것 외에도 리터럴 배열, 딕셔너리 문법, 블록 등 기존 요소도 지속적으로 개선함으로써 좀더 이해하기 쉽고 편리하게 만들어졌다. 하지만 이러한 노력이 오히려 언어를 복잡하고 거대하게 만들었으며, 혼란 역시 가중됐다. 오브젝티브C는 C와 완벽하게 호환돼야 하므로 기능 확장과 개선에 한계가 있을 수밖에 없었다. 반면, 스위프트는 여타의 제약 조건 없이 가볍게 출발했다. 오브젝티브C를 완전히 새롭게 개편하고 싶다는 소망이 있었다면, 스위프트가 그 결과라고 할 수 있다. 스위프트는 개발자와 코코아 API를 연결하기 위한 가장 최신의 언어다.
따라서 이번 개정판에서는 오브젝티브C를 본격적으로 소개하는 목적보다, 스위프트 프로그램을 작성할 때 마주치게 되는 오브젝티브C 기준의 다양한 개념과 실용 예제를 이해하기 쉽게 설명하는 데 중점을 둔다. 3부, ‘코코아’에서는 오브젝티브C 스타일로 생각하는 방법을 소개하며 오브젝티브C의 근간을 이룬다고 할 수 있는 코코아 API의 구조와 기능에 대해 심도 있게 설명 한다. 그리고 이 책의 마지막에 있는 부록에서는 스위프트와 오브젝티브C가 서로 소통하는 방법에 대해 자세히 소개하고, 여러분의 앱을 일부는 스위프트로, 나머지는 오브젝티브C로 혼용해 작성하는 방법에 대해 설명한다.

이 책에서는 스위프트를 통해 해결할 수 없는 내용은 오브젝티브C를 통해 해결한다.
물론 이 책은 오브젝티브C 교본이 아니며, 오브젝티브C에 대한 상세한 내용을 알고 싶다면 이 책의 기존 판을 보길 바란다. 이 책에서는 스위프트를 익히는 과정에서 접하게 될 개발 문서, 인터넷상의 자료를 이해하기 위한 오브젝티브C의 기반 지식을 충실히 다루고 있으며, 책 본문에서도 종종 오브젝티브C 코드를 볼 수 있을 것이다. 6장에서는 스위프트와 오브젝티브C를 적절히 혼합해서 하나의 애플리케이션을 만드는 방법을 소개한다. 특히 3부, ‘코코아’ 영역에서는 오브젝티브C에 기초를 둔 코코아 API의 구조와 작동 방식을 제대로 이해할 수 있도록 오브젝티브C 스타일로 생각하는 방법에 대해 소개 한다. 그리고 부록에서는 스위프트와 오브젝티브C 코드가 상호작용하기 위한 세부 내용을 설명한다.

지은이 소개

매트 뉴버그(Matt Neuburg)

서양고전학 박사로, 다수의 대학에서 강의해왔다. 「맥테크(MacTech)」 매거진의 편집자이자 「TidBITS」의 객원 편집자이며, 다수의 OS X, iOS 애플리케이션 개발 서적을 저술했다. 저서로 『Programming iOS 8』, 『REALbasic: The Definitive Guide』, 『AppleScript: The Definitive Guide』, 『Swift로 하는 iOS 프로그래밍』(에이콘, 2015) 등이 있다.

옮긴이의 말

2010년 무렵, iOS는 비교 대상이 없는 최고의 모바일 플랫폼이었고, 오브젝티브C는 개발에 관심 있는 사람이라면 누구나 한 번쯤 배우고 싶어 하는 언어였다. 하지만 iOS 5가 배포됐던 2012년 무렵에는 안드로이드의 급격한 상승세 때문에 iOS와 오브젝티브C가 쇠퇴할 것으로 예상하는 개발자를 자주 만날 수 있었다. 하지만 2015년 12월 기준으로 iOS는 외국 모바일 브랜드의 무덤으로 알려진 한국 시장에서 무려 38%에 육박하는 시장 점유율을 기록 중이고, 일본 시장에서는 55%, 중국 시장에서는 27%를 넘어섰다(미국 마켓 펄스(Market Pulse) 자료 참조). 따라서 iOS에 대한 이해는 결국 모바일 플랫폼에서의 경쟁력으로 이어지고 있다.

2007년 등장 이후 쉼 없이 혁신을 거듭해온 덕분에 iOS는 앱 개발사에게 수익을 가져다줄 수 있는 가장 강력한 유료 콘텐츠 플랫폼으로 자리잡았지만, 앱을 구현하기 위한 기본 도구인 오브젝티브C의 문법적인 난해함은 신규 개발자 유입을 막는 원인이 됐다. 또한 자바, C++ 등 다른 프로그래밍 언어를 사용하는 경험 많은 개발자는 1983년부터 만들어지기 시작한 오브젝티브C 특유의 분위기에 적응하는 과정을 비효율적으로 여기기도 했다. 이 때문에 지난 수년간 아이폰 사용자의 수는 전 세계적으로 급증했지만 개발자의 수는 크게 늘지 않았다.

이와 같은 상황에서, 애플은 이제 막 애플리케이션 개발에 관심을 갖게 된 UI 디자이너와 개발자, 그리고 다른 언어에서 일정 수준 이상의 성취를 이룬 개발자가 좀 더 쉽게 접근할 수 있는 프로그래밍 언어로 스위프트를 소개하기에 이르렀다. 스위프트는 루비(Ruby), 스칼라(Scala), C# 등 현대 프로그래밍의 주요 트렌드인 스크립트 언어 스타일의 간결한 문법을 지향하므로 다른 개발자가 공개한 모듈도 쉽게 읽고 쉽게 수정할 수 있다.

거의 30여 년간 애플의 정체성을 대변해온 오브젝티브C와 이제 막 등장한 스위프트를 하나의 모듈에서 혼용할 수 있다는 점, 그리고 런타임 역시 동일하다는 점은 이미 오 브젝티브C에 익숙해진 수만 명의 앱스토어 기반 개발자가 새로운 언어에 적응하기 위해 최소한의 시간과 노력만을 투입하면 된다는 의미이기도 하다. 스위프트에는 오브젝티브C에 없던 클로저, 제네릭, 다중 반환 타입, 네임스페이스 등의 문법이 추가돼 프로그래밍 편의성이 향상됐고, 세미콜론, 명시적인 타입 선언, 헤더 파일, 포인터, 메모리 할당과 초기화 등의 작업은 생략할 수 있게 됐다.

이 책의 저자인 매트 뉴버그는 오브젝티브C의 장점과 단점까지도 훤히 꿰뚫고 있는 20년차 프로그래머이자 ICT 분야 교육자다. 이 덕분에 애플리케이션 개발에서 스위프트를 어떤 방식으로 익혀 실무에 적용해야 할지를 비롯해 오브젝티브C 언어의 어떤 단점을 보완해주고 새로 등장한 스위프트와 기존 언어가 어떤 부분에서 불협화음을 내는 지까지 생생하게 설명할 수 있지 않았나 생각한다.

스위프트를 컴파일러 등의 연관 개발 도구와 함께 오픈소스 언어로 개방할 것이라는 소식이 있다. 2016년 이후에는 스위프트가 iOS와 OS X 애플리케이션 개발자만의 전유물이 아니라 전 세계의 남녀노소 누구나 쉽게 접할 수 있는 프로그래밍 언어로 성장할 수 있길 바라며, 스위프트를 통해 앱 개발자, 모바일 UI 디자이너, ICT 기획자 모두가 쉽게 이해하고 참여할 수 있는 프로그래밍 세계가 열리길 기대한다.

옮긴이 소개

동준상

넥스트플랫폼 대표이자 ICT 제품과 서비스 상용화 멘토다. iOS와 안드로이드, 웹 애플리케이션 분야에서 UI 개발과 UX 표준화 관련 일을 하며 한국생산성본부, KT, 국민 데이타시스템, 신세계INC 등에서 모바일 프로젝트를 위한 UX 디자인과 UI 개발에 대해 강의하고, 관련 교재를 저술했다. 2015~2016년 KMEPA의 ICT 상용화 멘토이며, 대구콘텐츠코리아랩 IoT 부문 대표 멘토, 글로벌 앱 챌린지 심사위원, 한국콘텐츠진흥원, 대구디지털산업진흥원, 부산정보진흥원 기술 심사 및 멘토로 활동했다.

번역서로는 에이콘출판사에서 펴낸 『jQuery UI 1.8 한국어판』(2012), 『The iOS 5 Developer’s Cookbook (Third Edition) 한국어판』(2012), 『The Core iOS 6 Developer’s Cookbook (Fourth Edition) 한국어판』(2013), 『The Advanced iOS 6 Developer’s Cookbook (Fourth Edition) 한국어판』(2013), 『The Book of CSS3』(2014), 『Swift로 하는 iOS 프로그래밍』(2015) 등이 있다.

이지훈

아이폰/안드로이드 앱 개발자로, 새로운 수익 모델을 창출하기 위해 노력 중이다. 빅데이터 기반의 게임 플랫폼을 만들고 있으며, 전문번역 커뮤니티 GoDEV의 멤버로 활동하고 있다. 저서로는 『나홀로 개발자를 위한 안드로이드』(에이콘, 2011), 『현업 개발자의 실무 멘토링 Java 프로그래밍 입문』(북스홀릭, 2013) 등이 있고, 번역서로는 『Hbase 인 액션』(비제이퍼블릭, 2013), 『제대로 배우는 Backbone.js 프로그래밍』(비제이퍼블릭, 2013), 『프로그래머를 위한 안드로이드』(정보문화사, 2014), 『Swift로 하는 iOS 프로그래밍』(에이콘, 2015), 『나만의 드론 만들기』(에이콘, 2015) 등이 있다.

목차

목차
  • 1부 스위프트 언어
  • 1장 스위프트 아키텍처
  • 프로그래밍 기초
  • 모든 것은 객체인가
  • 세 가지 객체 타입
  • 변수
  • 함수
  • 스위프트의 파일 구조
  • 유효 범위와 생애주기
  • 객체 멤버
  • 네임스페이스
  • 모듈
  • 인스턴스
  • 인스턴스를 사용하는 이유
  • self
  • 객체 내부 정보의 보안
  • 디자인 전략

  • 2장 함수
  • 함수의 파라미터와 반환 값
  • 외부 파라미터 이름
  • 오버로딩
  • 기본 설정 파라미터 값
  • 다수의 인수를 지니는 파라미터
  • 무시되는 파라미터
  • 수정 가능 파라미터
  • 함수 안의 함수
  • 재귀
  • 값으로서의 함수
  • 익명 함수
  • 함수 정의와 호출
  • 클로저
  • 커리 함수

  • 3장 변수와 데이터 타입
  • 변수의 유효 범위와 생애주기
  • 변수 선언
  • 컴퓨터 연산에 의한 초기화
  • 컴퓨터 연산에 의한 변수 생성
  • 세터 옵저버
  • 지연 초기화
  • 내장된 변수 타입

  • 4장 객체 타입
  • 객체 타입의 선언 방식과 타입별 특징
  • 열거형
  • 구조체
  • 클래스
  • 다형성
  • 캐스팅
  • 타입 레퍼런스
  • 프로토콜
  • 제네릭
  • 익스텐션
  • 엄브렐러 타입
  • 컬렉션 타입

  • 5장 플로우 컨트롤, 프라이버시, 메모리 관리
  • 플로우 컨트롤
  • 연산자
  • 프라이버시
  • 내적 관찰
  • 메모리 관리

  • 2부 IDE
  • 6장 엑스코드 프로젝트의 구조
  • 새로운 프로젝트
  • 프로젝트 윈도우
  • 프로젝트 파일과 관련된 파일
  • 타깃
  • 프로젝트에서 앱 실행까지
  • 프로젝트 내 항목에 대한 이름 변경

  • 7장 닙관리
  • 닙 에디터 인터페이스 살펴보기
  • 닙 로딩
  • 커넥션
  • 닙 기반 인스턴스의 추가 설정

  • 8장 도큐멘테이션
  • 도큐멘테이션 윈도우
  • 클래스 도큐멘테이션 페이지
  • 샘플 코드
  • 퀵 헬프
  • 심볼
  • 헤더 파일
  • 인터넷 리소스

  • 9장 프로젝트 생명주기
  • 디바이스 아키텍처와 조건부 코드
  • 버전 관리
  • 코드 편집과 탐색
  • 시뮬레이터에서 실행하기
  • 디버깅
  • 테스트
  • 클린
  • 디바이스에서 실행하기
  • 프로파일링
  • 지역화
  • 아카이빙 및 배포
  • 애드혹 배포
  • 앱 배포를 위한 마지막 준비사항
  • 앱스토어에 제출

  • 3부 코코아
  • 10장 코코아 클래스
  • 서브클래스화
  • 카테고리와 익스텐션
  • 프로토콜
  • 파운데이션 클래스
  • 접근자, 속성, 키-값 코딩
  • NSObject의 비밀

  • 11장 코코아 이벤트
  • 이벤트를 받는 이유
  • 서브클래싱
  • 노티피케이션
  • 델리게이션
  • 데이터 소스
  • 액션
  • 리스폰더 체인
  • 키-값 옵저빙
  • 다양한 코코아 이벤트
  • 지연성능

  • 12장 메모리 관리
  • 코코아 메모리 관리 법칙
  • 코코아 메모리 관리 규칙
  • ARC의 개념과 역할
  • 코코아 오브젝트가 메모리를 관리하는 방법
  • 오토릴리스 풀
  • 인스턴스 프로퍼티에서 메모리 관리
  • 리테인 사이클과 위크 레퍼런스
  • 비정상적인 메모리 관리 상황
  • 닙 로딩과 메모리 관리
  • CFTypeRef의 메모리 관리
  • 프로퍼티 메모리 관리 정책
  • 메모리 관리 실수 디버깅

  • 13장 오브젝트 간 통신
  • 인스턴스화의 가시성
  • 관계에 의한 가시성
  • 전역 가시성
  • 노티피케이션과 KVO
  • 모델-뷰-컨트롤러

  • 부록 C, 오브젝티브C, 그리고 스위프트

도서 오류 신고

도서 오류 신고

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

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

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