알라딘

헤더배너
상품평점 help

분류

이름:매트 뉴버그 (Matt Neuburg)

최근작
2016년 3월 <스위프트로 하는 iOS 9 프로그래밍>

매트 뉴버그(Matt Neuburg)

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

대표작
모두보기
저자의 말

<스위프트로 하는 iOS 9 프로그래밍> - 2016년 3월  더보기

"애플의 새로운 프로그래밍 언어를 소개합니다." 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 코드가 상호작용하기 위한 세부 내용을 설명한다.

가나다별 l l l l l l l l l l l l l l 기타
국내문학상수상자
국내어린이문학상수상자
해외문학상수상자
해외어린이문학상수상자