Swifter {Swift Developer}

메뉴

1. Swift언어란?

[vc_row][vc_column][vc_column_text]Swift언어는 Apple이 매년 열고 있는 WWDC(World Wide Developers Conference) 2014에서 발표된 새로운 개발언어입니다. Apple은 현재 Xcode 및 다양한 환경에서 사용되고 있는 컴파일러 LLVM 제작자이기도 한 Chris Lattner가 2010년 7월 개발하기 시작한 언어이기도 합니다.

개발시작단계부터 2014년 6월  WWDC에서 발표하기 까지 4년이상의 시간이 걸린 대형 프로젝트로써 2013년 7월 개발자를 추가 투입하고 Apple의 개발도구 그룹의 중요 프로젝트가 되었습니다. 2015년 현재 Swift 2로 더 쉽고 안전한 언어로 빠르게 발전하고 있습니다.[/vc_column_text][vc_row_inner][vc_column_inner width=”2/3″][vc_single_image image=”481″ img_size=”full”][/vc_column_inner][vc_column_inner width=”1/3″][vc_column_text]

1-1 Swift 언어의 특징

Swift언어는 Swift 2가 발표된 상황에서도 초기부터 표방한 “고속화(Fast)”, “현대화(Modern)”, “안전성(Safe)”, “상호작용(Interactive)”을 계승하고 있고, 실행속도는 정식 공개된 이후 타 인터프리터 언어 외 컴파일 언어인 Objective-C보다 더 빠릅니다. 아마도 앞으로도 더 최적화되면 더 고속화될 것으로 예상됩니다.

개발 효율성을 확인할 수 있는 문법과 함수도 현대적인 언어 사양을 지원하며, 변수 선언 방법이나 형 생략 등을 통해 간결하게 처리하며 튜플(Tuple) 및 제네릭, 쿼리등의 지원과 Optional형, Haskell에서 사용되던 map, filter등의 고차함수도 지원하는 현대적인 언어입니다.[/vc_column_text][/vc_column_inner][/vc_row_inner][vc_column_text]안전성에서는 Swift는 변수형을 정적으로 체크하여 변수 초기화가 언어 수준에서 요구될 뿐만 아니라, 변경 가능한 변수와 변경불가능한 변수를 구별하는  선언등 변수값의 안전성을 유지시켜 줍니다.

또한 개발을 하다보면, 개발자의 실수로 인해 발생하는 버그가 있습니다. 이런 경우를 대비한 구문 검토 및 실수가 일어나지 않도록 설계되어 있습니다. 예로,  Objective-C에서는 switch문을 사용하면 case 끝에 break를 추가하여 버그가 발생하기 쉬운데 Swift는 break문을 폐지하고 각 case문별로 완전히 닫힌 형태로 구성되어 있습니다. 또한 nil을 사용시, Optional형을 사용하여 의도하지 않는 데이터가 변수에 들어가는 경우를 최대한 방지하려고 노력된 부분도 보입니다.

또한 Swift언어는 컴파일러 언어이기 때문에 컴파일하기 전까지는 실행할 수 없습니다. 다만, 컴파일러가 빠른 것을 이용하면 인터프리터 언어처럼 실행되고 작성한 코드가 자동으로 실행되어 바로 결과를 볼 수 있는 Playground라는 기능도 새롭게 공개되어 있습니다.

Playground를 사용하면 컴파일을 할 생각없이 간단한 코드 및 View 실행상태를 확인할 수 있습니다. 이 상호작용을 통해 Swift 코딩능력 향상과 디버깅도 편리하게 할 수 있습니다. 개발자 육성을 위한 소스코드와 같이 바로 결과가 표시되기 때문에 소스코드를 직관적으로 이해하기 쉽습니다.

그리고 다양한 주석 기술을 통해 교재 및 자료의 소스코드 재사용도 가능하도록 개발자를 배려한 측면도 있습니다.

참고로 Swift언어는 iOS와 OS X앱을 개발할  수 있고 Objective-C로 만들어진 Cocoa 프레임웍등은 Swift에 브릿지한 것밖에 지나지 않습니다. 또한 프레임웍을 구현함에 있어, Objective-C라이브러리는 Swift에서 그대로 볼 수 있고 그 친화성은 높습니다.

Swift 언어가 공개된 이후 현재 Swift 2가 Swift만으로 개발되는 앱들도 많아지고 있고 Swift로 작성된 오픈소스 라이브러리도 많아지고 있습니다. 실무 환경에서도 Swift언어가 확산됨에 따라 Apple도 Objective-C언어에서 Swift로 비중을 옴겨가고 있는듯 합니다.

어떤 경우에는 프레임웍을 Swift로 네이티브하게 작성할 수 있지만 엄청난 프레임웍을 Swift로 바꾼다는 것은 Apple이라고 해도 큰 일입니다. 따라서 단계적으로  Swift로 전환하는 계획이 있을 것이라고 생각됩니다.  그런 이유로 Objective-C만으로 개발을 계속해도 되지만 단계적으로 Swift와 같이 진행하는 것이 현명할 것 같지만, 소스코드 작성의 용이함과 쉽게 재미있게 개발할 수 있는 Swift를 활용하길 기대해 봅니다.[/vc_column_text][vc_separator][vc_column_text]

1-2. Swift 1.0에서 Swift 2.0으로

2014년 발표된 Swift 1.0은 2015년 Swift 2.0으로 발전하고 있습니다. Swift 1.0이 나왔을 때도 초기 버전에 비해 상당한 완성도를 보였고 1년만에 언어 사양과 개발 환경 모두 크게 발전되었습니다.

Swift 2부터 형검사 및 현변환등이 더 정교해지고 안전성이 향상되었습니다. 또한 조기 리턴을 위한 구조와 오류처리 도입, 운영체제와 버전에서 소스코드 분리방법, 프로토콜 메소드 확장 가능한 새로운 구문이 도입되었고 더욱 더 간결해진 코드를 가지고 있습니다.

그리고 삭제되거나 명칭이 변경된 구만과 함수도 존재하며 디버깅시 자주 사용하던 println은 폐지되고 print로 통일 되었습니다. 그외 find함수는 indexOf로 변경되었고 count함수는 컬렉션 속성이 있습니다. Enumurate도 메소드로 변경되는등 글로벌 함수가 프로토콜 확장으로 구현되도록 변경되었습니다.  또한 주석 작성하는 방법이 좀더 세밀하게 바뀌었습니다.

[참고자료]

[/vc_column_text][vc_separator][vc_btn title=”목차로 이동하기” color=”orange” align=”center” link=”url:%2Fswift-2-korean-book%2F|title:%EB%AA%A9%EC%B0%A8|target:%20_blank”][/vc_column][/vc_row]

Facebook Comments

카테고리:   Swift Books

댓글

죄송하지만 댓글은 닫혀 있습니다.