검수요청.png검수요청.png

엑스코드

위키원
sua332 (토론 | 기여)님의 2021년 2월 18일 (목) 09:47 판
이동: 둘러보기, 검색
엑스코드(Xcode)
애플(Apple)

엑스코드(Xcode)는 애플의 macOS, iOS, watchOStvOS 개발 전용 통합개발환경 를 말한다.

개요

엑스코드는 2020년 10월 22일 기준 최신 버전은 12.1이다. 2003년에 출시되어, 17년의 역사를 가지고 있는 장수 통합개발환경이다. 만약 그 전신인 프로젝트 빌더까지 연대기에 넣는다면 1988년 출시로, 무려 29년의 역사를 자랑하는 통합개발환경이 된다. 그리고 엑스코드보다 애플 제품에 깊숙이 관여하는 통합개발환경은 존재하지 않는다. 오직 엑스코드만이 애플의 코콬아 프레임워크에 직접 접근할 수 있기 때문에, 젯브레인즈의 앱 코드나 안드로이드 스튜디오, 또는 MS의 비주얼 스튜디오 for Mac도 iOS/macOS용 소프트웨어를 최종 컴파일하려면 엑스코드가 설치되어 있어야 한다. 게임메이커와 유니티도 iOS 컴파일 하려면 이게 필요하다. 심지어는 크로스플랫폼인 리액트 네이티브의 iOS 앱을 컴파일 할 때도 엑스코드가 필요하다. 또한, 엑스코드는 애플 LLVM/클랭을 주 컴파일러로 삼고 LLDB를 주 디버거로 이용한다. 공식적으로 지원하는 언어는 C, C++, Objective-C, 스위프트, 애플스크립트, 자바, 파이썬, 루비이며, 제3자 도구를 이용하면 파스칼, 에이다, C#, , D도 사용 가능하다. 엑스코드에 내장된 인터페이스 빌더는 OS X에서 코코아 프레임워크를 가장 목적에 맞게, 그리고 가장 아름답게 디자인할 수 있는 유일한 도구로, QtSDL, wxWidgets, GTK+ 같은 크로스 플랫폼 UI 툴킷이 그 태생상 절대 따라갈 수 없는 디자인을 가능케 한다. 초창기의 엑스코드는 버전 관리를 지원하지 않거나 SVN만 맛보기 형식으로 지원하는 수준이었지만 엑스코드 4의 출시와 함께 을 내장하여 강력한 소스 코드 버전 관리가 가능하도록 하였다. 간혹 애플의 개발자 프로그램에 유료로 등록해야만 엑스코드를 사용할 수 있다고 잘못 알고 있기도 한데, 엑스코드는 개발자 등록이 필요 없는 무료이다. 다만, 그래도 애플의 개발자 프로그램이 나중에는 필요하게 되는 일도 있는데, 바로 앱 스토어를 이용할 때이다. 앱 스토어에 앱을 올리고자 한다면 유료 개발자 등록이 되어야하기 때문이다. 또한 실물 단말기를 활용할 때도 유료 개발자 인증이 필요하다. 엑스코드 7로 업데이트 되면서 단말기에 자신의 앱을 개발자 프로그램 없이 설치할 수 있게 되었다. 엑스코드 고스트 사건이 있었는데, 이후 엑스코드를 공식 경로가 아닌 토렌트 등 웹하드로 다운받아서 사용하는 행위는 자제되었다.[1]

역사

엑스코드 1

2003년 10월 24일 출시된 버전으로, 사실상 프로젝트 빌더의 개명 버전에 가깝다. 다만, 넘어오면서 UI 변경, 코드 센싱(소스 코드를 인덱스하여 자동 완성을 제공하는 기능) 추가 등이 있었다. 별로 특별한 것은 없었던 버전이다.

엑스코드 2

2005년 4월 29일 출시된 버전으로, OS X Tiger의 출시와 함께 공개되었다. 쿼츠컴포저라는 쿼츠익스트림용 시각화 프로그래밍 도구를 탑재했다. 그리고 이 때부터 애플의 개발자 문서를 통합개발환경 자체에서 빠르게 검색할 수 있도록 하였다. 추후 타이거의 인텔 칩 이전에 의해 유니버셜 바이너리를 생성할 수 있는 기능이 추가되었다.

엑스코드 3

2007년 10월 26일 출시된 버전으로, OS X Leopard의 출시와 함께 공개되었다. 여러 가지 명령줄 도구의 추가와 함께 Objective-C 2.0 지원이 추가되었으며 프로젝트 스냅샷 기능과 SVN 지원으로 기초적인 소스 코드 버전 관리가 가능해졌다. 또, 운영 체제의 전반적인 64비트 전환과 함께 64비트 컴파일이 가능해졌고, 아이폰의 공개에 따라 아이폰 OS용 앱을 빌드할 수 있게 되었다. 이 때 LLVM GCC 컴파일러가 스리슬쩍 더해졌다.

엑스코드 4

2011년 3월 9일 출시된 버전으로, 엑스코드의 화려한 변신이 행해진 첫 버전이다. 인터페이스 빌더가 엑스코드 내부에 모듈 형태로 탑재됨에 따라 이제 개발 시에는 엑스코드 하나면 켜놓으면 된다. 초기 버전은 맥 앱 스토어에서 $4.99에 판매되었으나, 항의가 거세지자 스리슬쩍 무료로 전환했다. 이 버전부터 파워PC 바이너리는 일체 지원되지 않는다. 엑스코드 4.1과 함께 Objective-C에서 객체의 레퍼런스 카운팅을 컴파일러가 스스로 행하는 ARC가 추가되었다. 엑스코드 4.2에서는 엑스코드 자체가 완벽하게 단일 애플리케이션으로 패키지되었다. 이전까지는 맥 앱 스토어에서 내려받는 프로그램이 엑스코드 설치 프로그램이었으나, 이제는 엑스코드 자체를 내려받는다. 사용자는 내려받은 후 실행하면 끝. 처음 내려받았을 때나 업데이트 시 한정으로 내부 프레임워크를 시스템에 설치하는 짧은 절차를 거친다.

엑스코드 5

2013년 9월 18일에 정식 출시된 버전으로, OS X Mountain Lion과 iOS 7의 소프트웨어 개발 키트가 포함되었고, LLVM/Clang 컴파일러가 애플 A7 AP를 위한 64-bit 앱을 컴파일할 수 있게 되었다. iOS 7이 기존과 UI면에서 상당히 달라진 만큼 기존의 UI와 iOS 7에 맞춘 UI를 동시에 개발하여 적용하기 쉽도록 되어있다. 원 클릭으로 아이클라우드나 게임센터 서비스를 적용시킬 수 있게 되었다.

엑스코드 6

WWDC 2014 때 공식적으로 발표된 엑스코드로, 최초로 스와이프를 지원한다. 스와이프가 궁금하다면 해당문서 참조. OS X Yosemite 에서만 사용가능케 했다. 그리고 새로운 플레이그라운드 기능을 추가했는데, 이건 코드를 직접 컴파일하거나 실행하지 않고도 결과물을 실시간으로 확인할 수 있게 해 준다. 엑스코드 6.1 버전부터 Mac용 앱을 스와이프로 만들 수 있게 되었다.

엑스코드 7

2015년 9월 17일 정식 출시된 버전으로, iOS 9 소프트웨어 업테이트와 동시에 앱 스토어에서 발표되었다. 스와이프 2와 iOS 9에 대응하는 소프트웨어 개발 키트, watchOS 2, OS X 10.11 El Capitan 및 tvOS 의 개발 코드가 추가되었다. 이 버전부터는 개발자 프로그램 ($99) 등록을 하지 않아도 iOS 앱을 자신의 기기에서 실행해 볼 수 있다. 물론 앱 스토어에 앱을 올리는것은 개발자 프로그램을 필요로 한다. 엑스코드 7.1 은 iOS 9.1, watchOS 2, tvOS 및 OS X 에 사용할 수 있는 스와이프 2.1 소프트웨어 개발 키트가 추가되었다.

엑스코드 8

2016년 9월 14일 정식 출시된 버전으로, 스와이프 3, iOS 10 소프트웨어 개발 키트, watchOS 3, tvOS 10 그리고 macOS Sierra의 애플리케이션 개발을 지원한다. 추가된 사항으로는 디버그 메모리 시각화 기능, 인터펭치스 빌더 개선 및 편집기 확장 대응, iOS 10의 시리 확장, 아이메세지 앱, 메세지를 위한 스티커팩 빌드, 디바이스 셋업, 코드 센싱 간소화, 기타 개발용 테마 및 폰트 추가라거나 등의 개발 편의사항이 상당한 부분 증대되었다.

엑스코드 9

2017년 9월 19일 정식출시된 버전으로, 스와이프 4.0을 정식 지원한다. 리팩토링 기능이 추가되었다. 버그가 매우 많은데 예를들면 터치 바 커스텀이 안된다던가 플레이그라운드에서 코드 실행이 안되는경우가 있다.

엑스코드 10

2018년 9월 12일에 iOS / tvOS 12, macOS Mojave 10.14, 그리고 watchOS 5 업데이트와 함께 출시되었다. 제일 큰 변경점으로는 macOS Mojave 때 추가된 다크 모드를 지원한다.

엑스코드 10.2

2019년 3월 26일에 iOS / tvOS 12.2, macOS Mojave 10.14.4, 그리고 watchOS 5.2 업데이트와 함께 업데이트되었다. 스와이프 5를 지원한다. 애플은 이 언어를 완벽 대응하면 앱 용량을 획기적으로 줄이고 앱 실행 성능을 대폭 향상 시킬 수 있다고 주장한다.

엑스코드 11

엑스코드 11은 2019년 6월 9일 WWDC 2019에서 발표되었다. 스와이프 5.1, iOS 13, tvOS 13, watchOS 6, macOS 10.15 소프트웨어 개발 키트에 관한 지원이 추가되었다. 애플 계열 프로그램 UI 디자인을 위한 새로운 프레임워크인 스와이프UI도 추가되었다. 그 외에도 부가적인 변경 사항으로는 iPad용으로 만들어진 프로그램을 Mac 컴퓨터에 손쉽게 가져올 수 있는 기능의 추가, iOS 13의 다크 모드 지원 등이 있다.

엑스코드 12

애플 실리콘 지원을 추가하면서 용량이 매우 커졌다.[1]

특징

엑스코드는 주로 프로젝트 관리, 코드 편집, 디버깅을위한 소프트웨어이다. 기타 클래스 브라우저나 문서 브라우저등이 통합되어 있다. 델파이와 비주얼 베이직과 달리 단독으로는 RAD적인 도구는 아니지만, 인터페이스 빌더와 잘 연계 되어 있으며, 간단한 텍스트 편집기등이라면 코드도 작성하지 않고 개발할 수있다. distcc 분산 빌드를 지원하고 봉주르에의한 네트워크 검색 및 구조를 실시한다. 또한 OSX 10.4에 제공된 Version 2.0은 Core Data / WebObjects 에서 사용하는 UML에 준한 모델 편집기가 통합 되었다. 파일 관리는 회사의 iTunes등에 준한 형식으로 전반적으로 잘 정리되어 있어 비교적 프로그래머 치우치지 않는 도구 이다. 기타 특징으로 ZeroLink를 들 수있다. 이것은 컴파일후 링크 과정을 런타임까지 지연하여 빠른 소프트웨어 를 다시 시작을 행하는 것으로, 델파이 및 C # 정도는 아니지만, 상당한 속도로 소프트웨어를 재구성 할 수있다.[2]

사건

엑스코드고스트사건

2015년 중국에서 최근 애플 iOS 개발 툴 ‘엑스코드(Xcode)’가 악성코드에 감염되고, 악성코드에 감염된 ‘엑스코드’로 개발된 아이폰(iPhone)·아이패드(iPad)용 애플리케이션(앱)이 사용자와 기기 정보를 빼내는 것으로 밝혀져 큰 사회적 이슈로 떠올랐었다. 중국에서 2015년 9월 21일‘엑스코드고스트(XCodeGhost)’로 불리는 이 악성코드에 감염된 아이폰·아이패드용 앱은 360여 종에 달하는 것으로 알려졌다. 특히, 중국에서 이 악성코드에 감염된 앱을 애플의 앱 스토어(App Store)에서 내려 받아 정보 유출 위험에 노출된 애플 기기 사용자는 1억 명에 이를 것으로 추산되었다. 중국에서 악성코드 감염 피해를 입은 애플 iOS용 앱과 사용자 수는 이번이 역대 최대 규모다. 이전에도 국내외에서 여러 차례 애플 iOS 관련 정보 유출 등 보안문제가 발생한 적이 있었지만, 이번처럼 중국에서 많은 규모의 애플 iOS용 앱과 기기 사용자들이 피해를 입은 것은 처음이어서 사회 각계의 이목이 쏠렸다. 악성코드 엑스코드고스트에 감염된 것으로 밝혀진 이유는 중국내 iOS용 앱들은 비공식 경로를 통해 다운로드 된 엑스코드로 만들어졌다는 게 중국 보안업계의 분석이다. 실제로 중국내 많은 iOS 앱 개발자들은 주로 애플의 공식 앱 스토어가 아닌 다른 비공식 경로를 통해 엑스코드를 내려 받아 쓰고 있다고 중국 보안 전문가들과 매체들은 지적했다. 애플 엑스코드의 공식 다운로드 경로는 Mac 앱 스토어이고, 공식 버전 엑스코드는 무료다. 그런데 중국내 프로그래머들은 주로 애플의 앱 스토어가 아닌 다른 곳에서 엑스코드를 내려 받아 썼던게 문제가 된 것이다. 그 사건으로 악성코드 엑스코드고스트에 감염된 iOS용 앱들은 자동으로 기기와 사용자 정보를 수집해 원격 서버 ‘init.icloud-analysis.com’로 보내는 것으로 드러났다. 유출 정보에는 스마트폰 모델 번호, 시스템 버전, 앱 명칭, 앱 사용 시간, 시스템 언어 등이 포함된 것으로 알려졌다.‘엑스코드고스트 악성코드 사건’이 보안 분야는 물론 매체에서 며칠째 주목을 받으면서 사회적 이슈가 되자, 자칭 ‘엑스코드고스트’ 개발자가 나타나 처음 입을 열었다. 그는 “이른바 엑스코드고스트는 iOS 개발자의 의외적인 발견”이라며 “엑스코드 컴파일러 구성 파일(configuration file)을 수정하면 지정한 코드 파일을 추가할 수 있으므로, 코드를 써서 테스트를 해 봤고, 내 온라인 사이트에 업로드 했다”며 사건의 자초지종을 설명했다. 그는 코드 중에 획득한 모든 데이터는 실제로 기본적인 앱 정보로, 앱 명칭, 앱 버전 번호, 시스템 버전 번호, 언어, 국가명, 개발자 부호, 앱 설치 시간, 기기 명칭, 기기 유형 등이라고 말했다. 그 밖의 어떠한 다른 데이터도 얻지 않았다고 그는 주장했다. 또한, 열흘 전에 스스로 서버를 닫았고, 모든 데이터를 삭제했으므로 어떤 사람에게든 아무런 영향도 끼치지 않을 것이라고 주장했다. 이후 엑스코드를 공식 경로가 아닌 토렌트 등 웹하드로 다운받아서 사용하는 행위는 자제되었다.[3]

각주

  1. 1.0 1.1 Xcode〉, 《나무위키》, 2021-02-12
  2. 샤인오버, 〈엑스코드(Xcode)에 관하여〉, 《티스토리》, 2013-11-24
  3. 권준, 〈中 엑스코드고스트 사태 일파만파...애플 사용자 1억명 비상〉, 《보안뉴스》, 2015-09-22

참고자료

같이보기


  질문.png 이 문서는 로고가 필요합니다.  

  검수요청.png검수요청.png 이 엑스코드 문서는 소프트웨어에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.