Offcanvas

How To / 신기술|미래 / 애플리케이션

애플의 스위프트에 관해 알아야 할 10가지

2014.07.23 Paul Rubens  |  CIO


스위프트 코드를 실험할 수 있는 ‘운동장'이 있다. 스위프트의 가장 흥미로운 기능 중 하나로 ‘플레이그라운드(Playground)’라는 이름의 쌍방형 환경을 들 수 있다.

이 도구를 이용하면 컴파일러를 이용해 코드를 구동하고 실행하는 지루한 과정을 거치지 않고도 당신이 입력한 코드에 따른 변화나 추가 사항을 확인할 수 있다.

플레이그라운드에는 특정 변수, 입력, 명칭 값을 코드 내 독립된 라인으로 ‘검토(watch)'하고 사이드 바를 통해 이것의 현재 값을 볼 수 있는 기능이나 이미지, 열 등의 그래픽 디스플레이 콘텐츠를 보여주는 ‘빠른 보기(Quick Look)’ 버튼들도 포함된다.

스위프트는 유형 추론을 제공한다. 스칼라(Scala)나 오파(Opa)와 같은 신흥 프로그래밍 언어들처럼 스위프트 역시 유형 추론(type inference)을 수행한다. 코더들은 유형 정보와 관련한 변수 주석을 다느라 시간을 보내거나 그 과정에서 실수를 할 위험에서 자유로워지는 것이다. 대부분의 경우 이 컴파일러는 변수의 설정한 값으로부터 유형을 추론할 수 있다.

그 결과는 코드 내 숨어있는 타입 관련 버그 감소, 스마트한 최적화를 통한 코드 구동 속도 개선 등의 효과로 이어진다.

스위프트는 제네릭스를 제시한다. 정적 타이핑에서는 기능 작성 시 그것의 매개 변수 유형을 명시하는 과정이 요구된다. 그런데 다른 상황에서 다른 유형으로 작업하기를 원하는 기능이 있다면, 문제는 복잡해진다.

이러한 문제를 해결하는 것이 제네릭스(Generics)다. 제네릭스는 각 유형에 따른 재작성의 필요 없이 서로 다른 유형들에 재활용될 수 있는 기능이라는 점에서 C++ 내 탬플릿과 많은 부분에서 유사성을 띈다. 일정 배열의 콘텐츠를 추가하는 기능 등을 사례로 생각해볼 수 있을 것이다. 콘텐츠는 정수일 수도 있지만 일부 경우에는 부동 소수점수일 수도 있다.

스위프트는 문자열을 보다 쉽게 다룬다. 오브젝티브-C의 문자열(string)을 다루는데 진저리치는 당신이라면 스위프트와 쉽게 사랑에 빠질 수 있을 것이다. 문자열을 다루는 방식이 큰 폭으로 간소화됐기 때문이다. 가장 주목할만한 변화는 "isEqualToString:"와 같은 번거로운 입력 대신 “+=”나 "=="를 통해 문자열을 연쇄, 비교할 수 있게 된 부분이다.

스위프트 튜플은 혼성 변수를 제공한다. 튜플(tuple)은 복수의 인자를 하나의 혼성 변수로 묶어내는 역할을 한다. 스위프트 튜플 내 값들은 어떤 유형이든 될 수 있으며 각 값이 동일한 유형일 필요는 없다. 튜플의 배열 역시 (Int, Int, Int), (int, String), (String,Bool) 등 필요한 어떤 방식으로건 가능하다.

튜플 내 값을 얻는 방법은 다양하다. 인덱스 넘버(0부터 시작하는)를 통해 접근할 수도 있고, 튜플을 분리된 상수와 변수로 분석할 수도 있다.

스위프트의 지배자는 애플이다. 오브젝티브-C는 30여 년 간 이용되어 온 탄탄한 프로그래머 기반을 지닌 언어다. 애플이 이를 포기하고 굳이 스위프트를 제시하는 이유는 뭘까? 이에 관한 공식적인 설명은 없었지만, 가장 가능성 높은 설은 이 새로운 언어의 창작자로서 원하는 어떤 기능이건 언제나 자유롭게 추가, 변경할 수 있길 원한다는 것이다.

또 스위프트가 주류로 자리잡게 되면 iOS 앱들을 안드로이드로 옮겨가는 과정이 더욱 어려워진다는 경쟁력도 있을 것이다. 오브젝티브-C를 자바로 복사해주던 기존의 도구들은 이제 더 이상 사용이 어려울 것이다. ciokr@idg.co.kr
 

CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
Sponsored
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

발행인 : 박형미 편집인 : 천신응 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.