[WWDC 2013 - 1] What’s new in Xcode 5

안녕하세요.

업무가 바쁘다는 핑계로 이제서야 뒷 북치는 느낌으로 WWDC에서 발표한 자료 동영상을 가지고 블러그를 다시 시작합니다. 어차피 회사에서 하고 있는 업무에 적용을 해야하는 입장이니 정리를 한번 해두면 좋을 것 같아서 많은 사람과 함께 공유했으면 합니다. 도움이 되시면 좋을 것 같고 혹시 부족한 부분이나 잘못 된 부분이 있다면 주저 마시고 댓글 달아주시면 감사하겠습니다.

 

Xcode 5

Xcode 5

 

What’s new in Xcode 5

대표적인 변화:

# 툴바 (Tool Bar):

만약 여러분들도 Xcode 5를 설치하셨다면 먼저 눈에 띄는 것이 아마 넓어진 작업 영역일 것이다. 여러가지 이유가 있겠지만 발표자의 주장에 의하면 ‘툴바’의 영역이 더 적어진 것을 이유로 뽑는다. 실제로 더 얇아 졌으며 UI 버튼들이 상당히 사라지고 정말 기본적인 것만 남아 있다.

Tool Bar

Tool Bar

# 레퍼런스 문서 뷰어:

Xcode 5는 기본적으로 Xcode 4 위에서 발전이 된 모습이다. 레퍼런스 문서 뷰어 같은 경우는 기존의 Xcode 4에서는 ‘Organizer’에 포함 되어 있었던 부분인데, 이제는 단독으로 웹 브라우저의 느낌으로 열리게 된다. 여기에서 주목할 점은 이젠 멀티 탭이 열린다는 점이다. 개발자라면 아마 기존 Xcode의 뷰어에서 상당한 불편함을 느꼈을 부분인데, 멋진 발전이라고 생각한다. 그 외에 PDF로 열기등 다양한 기능이 생겨서 보다 편리함을 준다.

Reference Viewer

Reference Viewer

# Source Control :

드디어 소스 컨트롤 기능이 Xcode에 강력한 모습으로 들어왔다. 아이폰 개발전 저자의 개발 환경은 대부분 ‘이클립스’ 바탕에서 이루워졌기 때문에 Xcode로 오면서 아쉬웠던 부분 중 하나인데 이제서야 들어왔다. Xcode를 처음에 실행하면서 부터 Checkout을 받을 수 있는 장치가 있으며, 메뉴바에 ‘Source Control’ 기능이 추가되어 브랜치를 따거나, 머지를 하는 등 이제는 서드 파티 앱을 사용하지 않고도 보다 쉽게 형상관리가 가능하게 되었다.

Source Code Control

Source Code Control

# Automatic Configuration

iOS 관련 프로젝트를 하다 보면 provisioning profile 관련된 설정 때문에 번거러운 적이 한 두번이 아닐꺼라고 생각된다. Xcode 5를 발표하면서 관람자들이 환호했던 부분중 하나인데, 이제는 수동으로 provisioning profile을 선택하지 않아도 된다고 한다. 그 외에도 iCloud, Game Center와 같은 설정도 이젠 Xcode에서 편리하게 사용 여부를 쉽게 설정할 수 있다.

이젠 팀별로 프로젝트 별로 Profile를 관리 선택 할 수 있다.

이젠 팀별로 프로젝트 별로 Profile를 관리 선택 할 수 있다.

# Interface Design

Xcode는 다른 IDE에 비해 강력한 장점 중 하나는 IDE에서 인터페이스 디자인도 상대적으로 쉽게 구현 할 수 있다는 점이다. 그런데 소소하게 여러가지 기능이 추가되고 향상되었지만 크게 눈여겨 봐야 할 것은 두개 정도라고 생각되어진다.

- Auto-layout: iOS 6에서 부터 적용되었던 relative auto layout이 보다 향상되어 돌아왔다. UI 컴포넌트를 선택을 하고 미스된 Constrains가 있으면 바로 적용 시켜주는 기능부터, 국제화에 대비한 보다 정확한 레이아웃을 자동으로 구사해주는 기능까지 더욱 더 강력해진 기능을 제공한다.

- Asset Catelog: 기억하는가? 레티나용 디자인 소스 파일 뒤에는 ‘@2x’를 붙이며 관리했던 디자인 소스를 이제는 보다 강력한 툴을 사용하여 관리할 수 있게 되었다. 개인적으로 Xcode 프로젝트를 할 때면 프로젝트 내에서 그룹을 생성하면 실제 파일 시스템에서 폴더가 생기는 것이 아니라 소프트 레러펀스를 해주는 가상의 그룹이 생겨서 실제 파일을 보면 복잡하기 그지 없었는데, 이미지 파일까지 네이밍 룰이 따로 있어 힘들었던 그 시절을 이젠 잊어도 될 듯 싶다.

Screen Shot 2013-08-27 at 6.52.26 PM

# Apple LLVM 5 (컴파일러)

Xcode 4 버전 까지 Xcode는 LLVM과 llvm-gcc 4.2를 컴파일러로 채택하고 사용자들에게 선택의 권한을 부여했었다. 하지만 Xcode 5에서는 이제 gcc를 더 이상 볼수가 없게 되었다. 이와 동시에 수많은 프래임워크의 import를 통해 .m파일들이 점점 커지는 부작용이 일어났다 이것을 해결하기 위해 Apple은 ‘Modules’이라는 개념을 가지고 들어오게 된다.

기존의 파일을 빌드해주고 컴파일 해주는 과정을 간략하게 설명하면, 한 .m 파일에 여러게의 헤더 파일들이 import 되어 있다. 그런데 그 밑 물에서는 컴파일 타임 때 임포트 되어 있는 파일들을 다 해당 .m에 붙이게 되기 때문에 .m 파일이 커대해질 수 밖에 없는 상황이였다. 그런데 Xcode에서 채택한 ‘모듈’이라는 매카니즘을 통해 이 비효율적인 방식을 버릴수 있게 되었다고 한다.

- 모듈: 은 일종의 데이터 베이스로써 프래임 워크를 디비에 담고 그것이 필요한 .m 파일마다 컴파일 타임 때 링크 시켜 주기 때문에 이제는 더 이상 소스 파일이 커질 일이 없다고 한다. 이런 효과를 통해서 개발 성능이 눈에 띄게 좋아졌는데, 빌드, 분석, 인덱싱 등 평균적인 상향이 2.3 배나 좋아졌다고 한다.

모듈의 매커니즘

모듈의 매커니즘

- 그 밖에: C++ 11 지원, Auto-Vectorizer

 

# Xcode Debugger (LLDB)

- Data Tips: Xcode 5의 눈 부신 변화 중 하나로는 디버그에 대한 혁신이 있다. 이제는 더 이상 gdb를 사용하지 않는 다고 한다. 그리고 소스 코드에서 디버깅 타임 때 ‘Data Tips’라고 해서 말 풍선으로 커서 아래 있는 변수에 대한 데이터 정보를 보다 멋지게 보여주는 기능이 포함되었다. 예를 들어 아래 사진과 같이 클래스 변수에 커서를 올리면 멤버 변수에 대한 내용이 말 풍선으로 나오는데, 만약 이미지가 포함 되어 있는 인스턴스라면 이미지까지도 소스코드 위에서 바로 볼 수가 있다.

- break point: 이젠 각 브레이크 포인트 마다 조건을 부여할 수 있는 기능이 생겼다. 생각지도 못했던 기능인데, 정말 좋은 기능임은 분명한 것 같다.

- Debug Gauges: 가장 맘에 드는 기능중 하나는 Analyzer의 light 버젼인 ‘디버깅 게이지’이다. 이 툴은 Analyzer가 했던 기능을 보다 가볍게 사용 하는 툴로써 디버깅 시간에 보다 간편하고 빠르게 사용 가능하다는 점이 장점으로 뽑힌다.

디버깅 타임 때 소스 코드 위해서 데이터 팁을 보여주는 장명

디버깅 타임 때 소스 코드 위해서 데이터 팁을 보여주는 장면

# Test Navigator

Xcode는 유닛 테스트의 지원이 거의 미미하다가 Xcode 4에서 OCUnit을 채택하여서 사용하고 있었다. 그런데 이번 새 버젼에서 XC Test가 적용되면서 더욱 매력적이 툴이 되었다. 이 툴은 테스팅을 할 때 마다 모든 테스팅을 하지 않고 원하는 테스트만 골라서 테스팅하는 기능을 포함 하고 있다. 그 외에도 더 많은 기능들이 있는데, 그것은 프로젝트에 직접 적용을 하면서 추가하다록 하겠다.

Screen Shot 2013-08-27 at 6.56.05 PM

# Bots

마지막으로 Bots이라는 QA 팀에 필요한 툴이 생겼다. 봇을 통해서 어떤 개발자가 테스트에 많이 실패를 하였는데, 혹은 빌드에 대한 히스토리를 보여주는 프로젝트 모니터링 툴로써 매우 신기한 툴이 제공되기 시작한다. 자세히 써본 일이 없어 얼마나 도움을 줄지는 모르겠으나 프로젝트를 관리하는 역할의 사람들에게는 비쥬얼 적인 부분에 제공으로 뛰어난 성능과 기능을 제공할 것이다.

Screen Shot 2013-08-27 at 6.56.57 PM

 

 

# 그 밖의

개인적으로 무엇 보다도 자동 문서화 시켜주는 기능이 맘에 든다. 기존 Xcode에는 해당 기능이 없어 오픈 소스를 적용해야만 가능했던 부분이 이제는 기본으로 적용되어, 커맨드를 통해 자동으로 문서를 뽑아준다고 하니 정말 감사하다는 생각 밖에 안든다.

 

해당 프리젠테이션을 보면서 느낀 점은 정말 말로는 표현을 못하고 있던 가려운 부분을 잘 알아서 글거주는 기분이라고나 할까? ^^ 아무튼 Xcode는 최신인 만큼 역대 최대의 기능과 성능으로 무장했음이 틀림없다.

 

Leave a Comment.