# 2.2 Xcode란?

&#x20;Xcode는 앞으로 우리가 인터넷 브라우저만큼이나 자유자재로 다루어야 할 툴로서, iOS와 macOS용 앱을 개발할 수 있도록 애플에서 제공하는 IDE 입니다. 맥북 등 애플 컴퓨터의 운영체제인 맥 OS에서만 실행되는 어플리케이션 입니다. 우리는 이 Xcode를 이용하여 오브젝티브-C나 스위프트를 작성하고, 어플리케이션을 개발합니다.

&#x20;일반적으로 C 기반의 코드를 컴파일할 때에는 GCC라는 표준 컴파일러를 사용하는데, Xcode는 GCC의 성능을 더욱 개선한 LLVM을 메인 컴파일러로 사용합니다. 오브젝티브-C나 스위프트 코드 모두 실행 파일로 만들어질 때에는 LLVM 컴파일러에 의해 컴파일됩니다. Xcode가 공식적으로 지원하는 언어에는 C, C++, 오브젝티브-C, 스위프트, 자바, 파이썬, 루비 등이 있으며, 플러그인을 사용하면 파스칼, C#, 펄 등의 언어도 지원 가능합니다.&#x20;

&#x20;Xcode에서 아이폰용 앱을 만들 수 있게 된 것은 Xcode 3 버전부터입니다. 이 때 애플의 메인 컴파일러인 LLVM도 함께 덧붙여졌습니다.&#x20;

&#x20;Xcode 4는 객체를 메모리에서 제거할 타이밍을 계산하기 위한 참조 카운팅을 컴파일러에서 스스로 처리하는 ARC 기능이 추가되었을 뿐만 아니라, 현재의 Xcode 외형과 비슷한 모습을 가지게 된 것도 이 버전부터입니다.  또 별도의 독립 어플리케이션 형태였던 인터페이스 빌더가 이 버전부터 Xcode 내부에 모듈 형태로 탑재됨에 따라 Xcode 하나만으로 앱을 개발할 수 있게 되었습니다.

&#x20;Xcode5에서는 스토리보드가 추가되었습니다. 개별 UI 화면 단위로 하나씩만을 다루던 nib 파일 기반의 인터페이스 빌더가 스토리보드(storyboard) 파일 형식의 통합 인터페이스 빌더 위주로 대체된 것이 가장 큰 이슈라고 할 수 있습니다. 스토리보드 형식은 화면 인터페이스를 설계할 때 여러 개의 화면을 하나의 스토리보드 파일에 모아 다룸으로써 화면 간의 연결 관계나 흐름을 쉽게 파악할 수 있도록 지원하는 형식입니다.

&#x20;이후 스위프트와 함께 공개된 Xcode 6은 외견상 큰 변화는 없었습니다. 하지만 Xcode가 스위프트를 지원하기 시작하면서 실시간으로 스위프트 코드를 작성하고 결과를 확인할 수 있도록 해주는 플레이그라운드가 추가된 점은 특기할 만한 사항입니다.&#x20;

&#x20;다음 해인 Xcode7은 스위프트2를 지원할 뿐 아니라, 맥 OX X, iOS, watchOS용 앱을 모두 만들 수 있는 더욱 확장된 개발 환경을 제공하였습니다.&#x20;

&#x20;Xcode8에서는 스토리보드를 여러 단계로 축소 또는 확대해서 작업할 수 있게 되었습니다. 또한, 스토리 보드 축소 시에도 UI 편집 작업이 가능하게 되었습니다.

&#x20;Xcode 9에서는 iOS 시뮬레이터가 드라마틱하게 변신했다는 점을 주목할 만합니다. 이전 버전까지의 시뮬레이터는 단순히 화면과 기능만 테스트할 수 있는 밋밋한 일반 창 형태에 불과했던 것이, Xcode 9에서는 아이폰 형태를 그대로 본딴 모습으로 재탄행되었습니다. 뿐만 아니라, iPhone 외에 watchOS, tvOS용 시뮬레이터도 동시에 실행하여 결과를 확인할 수 있게 되었죠.

&#x20;이외에도 추가된 점은 깃허브 연동을 위한 소스 컨트롤 기능이 네비게이터 패널에 추가되었다는 점, 오토 레이아웃 설정 시 화면상의 변화를 바로바로 확인 할 수 있게 되었다는 점, Swift 3 코드의 호환성 유지를 위한 컴파일러 버전 설정이 추가되었다는 점 등을 들 수 있을 것 같습니다. 전체적으로 Xcode 9은 Swift 3와 Swfit 4 버전 간의 호환성을 유지하는 데에 주력한 면이 큽니다.

&#x20;이처럼 해마다 버전이 업그레이드 되면서 Xcode는 그 기능을 꾸준히 향상시켜 나가고 있습니다. 주의 할 것은, 최신 iOS 버전을 기준으로 개발 작업을 진행하기 위해서는 항상 최신 버전의 Xcode를 사용해야 한다는 점입니다. Xcode는 새 버전의 전체 업데이트를 통해서만 최신 iOS를 지원하는 앱을 제작할 수 있습니다. 따라서 앱을 개발할 때에는 Xcode의 버전 업데이트 여부를 항상 신경 써야 합니다.&#x20;

&#x20;스위프트 언어를 지원하기 시작하는 Xcode 버전은 6부터이지만 이 책에서 다루는 스위프트 5 문법은 Xcode 10 버전부터 지원합니다. 이 책에서는 앱스토어를 통해 Xcode 정식 버전을 설치하는 방법과 개발자 사이트를 통해 베타 버전을 설치하는 방법 모두를 알아보겠습니다.
