지난번 이지스퍼블리싱에서 "Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린(개정판)" 서평단에 당첨되고 나서 이지스퍼블리싱 인스타그램 계정을 팔로잉하고 있었는데, 며칠 전 "Do it! 스위프트로 아이폰 앱 만들기 입문 - 개정 6판" 서평단도 마침 모집하고 있길래 냅다 신청해보았다. 이렇게 모바일 애플리케이션 개발 언어 책 둘 다 갖게 되었고^^;
1. 스위프트(Swift)란?
본격적인 책 리뷰에 앞서 스위프트(Swift)란 무엇인지에 대해 알아보자. 스위프트는 애플의 iOS(iphone용 OS)와 macOS(Macbook용 OS)를 위한 프로그래밍 언어이다. 기존에는 애플 운영체제용 언어로 오브젝티브-C(Objective-C)라는 언어를 사용했었으나, 2014년 6월 애플 세계 개발자 회의(WWDC: Worldwide Developers Conference)에서 소개된 이후 빠른 속도로 도입되고 있다.
스위프트는 오브젝티브-C와 마찬가지로 LLVM으로 빌드되고, 같은 런타임을 공유한다. 따라서 자바-코틀린의 관계와 같이 컴파일 시 같은 형태의 중간 언어로 번역된다. 만약 기존 legacy 프로젝트가 오브젝티브-C언어로 구성되어있고, 그 위에 Swift 코드를 추가로 개발한다고 해도 프로그램이 작동 가능하다.
또한 스위프트에는 오브젝티브-C에는 없었던 현대적인 프로그래밍 언어가 갖고있는 기능이 많이 탑재되어있다. 다만, C언어를 기반으로 작성된 오브젝티브-C와는 달리, Swift는 자체적인 문법을 사용하며, 3.0 버전 이후에는 C형식의 for 문이 삭제되는 등 많은 변경이 있어 하위 버전 호환은 어려울 수 있다는 특징이 있다.
스위프트는 Xcode라는 IDE(Integrated Development Environment: 통합 개발 환경)를 이용해 개발하게 되는데, 통합 개발 환경은 아주아주 간단하게 설명하면 코드 편집기라고 생각하면 된다. 코린이들을 위해서 더 간단하게 설명하면 컴퓨터에서 문서 작업할 때 마이크로소프트의 워드를 사용할 수도 있고, 폴라리스 오피스도 사용할 수 있고, 한글과 컴퓨터에서 나온 한글 시리즈로도 문서 편집을 할 수 있지만 .hwp 파일 작성할 때는 한글과 컴퓨터를 사용하는 게 가장 좋은 것과 비슷하다고 생각하면 될 듯.
2. 스위프트(Swift) vs 오브젝티브-C(Objective-C)
그렇다면 스위프트와 오브젝티브-C의 차이점은 무엇일까?
1. 파일 관리의 편의성
- 오브젝티브-C: Header(.h 확장자: 함수 정의 및 프로퍼티 특징 정의) 파일과 Implementation(.m 확장자: 정의된 함수의 구체적 기능 명시) 파일이 분리되어 있다.
- 스위프트: 헤더파일과 수행 파일이 분리되어있지 않아(.swift 파일에 통합 관리) 파일 관리가 비교적 용이하다.
2. 포인터 사용 유무 & 타입 유추
- 오브젝티브-C: 포인터 반드시 사용 O & 개발자가 타입 명시 필요
- 스위프트: 포인터 사용 X & 타입 유추 기능
특히 포인터는 메모리의 주소를 저장하는 주소로 메모리 할당과 해제 작업이 필요하기 때문에 컴퓨터 공학에 대한 기본적인 개념 이해가 되어야 한다. 반면 스위프트는 포인터를 신경 쓰지 않아도 되기 때문에 비교적 초심자도 접하기 쉬운 언어라고 할 수 있다.
3. 개발 속도 & 실행속도
- 오브젝티브-C: 개발 속도 비교적 느림 & 실행 속도 빠름
- 스위프트: 개발속도 비교적 빠름 & 실행 속도 느림
오브젝티브-C의 경우 C언어를 기반으로 하고 있기 때문에 Swift에 비해 실행 속도는 빠르나, 위에서 설명되었듯 작업이 필요한 내용이 더 많기 때문에 개발에 소요되는 시간은 상대적으로 오래 걸리는 편이다.
양 쪽 모두 장단점이 있어 상황에 맞게 사용하면 되는데, 최근에는 스위프트를 더 많이 사용하는 경향이 있는 듯.
3. "Do it! 스위프트로 아이폰 앱 만들기 입문 - 개정 6판"의 장점
이지스퍼블리싱에서 출간한 이 스위프트 책은 코딩 책 좀 봤다 하면 다 알 법한 Do it! 시리즈 중 하나로, "Do it! 스위프트로 아이폰 앱 만들기 입문"은 아이폰 앱 개발 분야에서 1위를 차지한 도서.
책을 받은 지 일주일도 안되어 서 아직은 첫째 마당과 둘째 마당 정도만 읽어보았는데, 확실히 코딩 입문자-friendly 하게 구성되어있었다.
일단 초반에 문법을 길게 설명하는 다른 코딩 책들과는 달리, 개발 환경 구성 거의 바로 다음부터 기능 구현에 들어가는 구성. 보통 비전공자가 코딩 배우다가 포기하는 지점이 이해하기 어려운 프로그래밍 언어의 문법만 주야장천 보다 기능 구현까지 도달하지 못하는 경우일 때가 많은데, 이 책은 흥미를 잃지 않도록 초반부터 기능 구현으로 들어가서 실습할 수 있는 구성으로 되어있다.
그리고 기능 구현에 필요한 코드들에 대한 설명도 자세히 되어있어 초심자들도 따라 하기 쉬운 편. 그리고 중간중간 스위프트 개발에 필요한 팁과 상식이 들어가 있어 지루하지 않게 코딩 지식을 얻어갈 수 있다.
또한 기존에 개발경험이 있거나 심화단계를 학습하고 싶은 학습자들을 위해 도전! 미션이라는 코너를 마련해 실습한 내용 외에 추가적으로 본인이 해당 기능을 만들어 볼 수 있는 코너도 마련되어 있어, 코딩 초심자나 기존에 개발경험이 있지만 스위프트를 처음 접하게 되는 개발자에게 추천하고 싶은 책이었다.
"이지스퍼블리싱에서 서평단 활동을 위해 책을 제공받아 작성된 서평입니다."
'Review' 카테고리의 다른 글
[나는 리뷰어다 2022]’MLOps 도입 가이드’ 리뷰 (0) | 2022.07.02 |
---|---|
[나는 리뷰어다 2022]'찐 UXer가 알려주는 UX/UI 실무 가이드’ 리뷰 (0) | 2022.04.24 |
[나는 리뷰어다 2022]'소프트웨어 아키텍처 101’ 리뷰 (1) | 2022.03.31 |
[서평단 리뷰]Do it! 깡샘의 안드로이드 앱 프로그래밍 with 코틀린(개정판) (0) | 2022.03.06 |
[나는 리뷰어다 2022]'무던한 개발자를 위한 모던한 자바스크립트' 리뷰 (0) | 2022.02.22 |