반응형

아이폰 앱 개발을 하기위해서는 Objective-C 나 Swift 프로그래밍 언어 공부를 해야한다.

안드로이드 개발을 하기 위해서 자바(Java) 나 코틀린(Kotlin)을 공부해야하는 것과 마찬가지다 :)

그래서 Objective-C vs Swift  중 어떤 걸 선택해서 공부해야하나 고민 끝에 프로그래밍언어 트랜드와 실제 앱 개발이 가능할 정도의 공부 시간을 생각 했을 때 Swift가 우위에 있기 때문에 스위프트를 선택 하였다.

결론적으로 스위프트(Swift)를 선택 했지만 최소한 내가 공부하는 프래그래밍언어가 어떤 건지는 알고 공부를 해야한다고 생각하기 때문에 Swift 란 무엇인가 간단히 알아보았다.


스위프트(Swift) 란?


 스위프트(Swift)는 애플의 IOS와 macOS 개발을 위한 프로그래밍 언어로 2014년 6월 2일 WWDC (애플 세계 개발자 회의)에서 처음 소개 되었다. 기존에 애플 운영체제 개발을 위한 Objective-C 가 있었지만 같이 사용될 목적으로 만들어졌다. 위에서 언급한 자바와 코틀린의 관계랑 비슷하다고 볼수있다. 

 그렇다면 스위프트는 왜? 생겨났을까. 개인적인 생각으로는 스위프트 (Swift) 이름에 그 답이 있는게 아닌가 싶다.

 Swift 의 단어 뜻을 찾아보면 "신속한", "빠른", "칼새" 라고 나온다. 많은 경우에 이름에서 정체성이 드러나듯이 스위프트의 로고는 이름 그대로 칼새를 의미하는 것 같고, 스위프트의 철학 또는 목표는 "신속하고 빠르게" 를 의미하는 것 같다. 여기서의 빠름은 성능 상의 빠름을 의미할 수도 있지만 다른 한편으로 개발이나 학습의 측면에서도 빠름을 의미하는게 아닌가 싶다. 애플에서도 스위프트를 소개할 때 가장 먼저 배우기쉬운 강력한 프로그래밍 언어 라고 설명한다. 

이러한 설명을 뒷받침 하듯이 애플 홈페이지 (https://www.apple.com/kr/swift/) 에서도 교육과정에 Swift를 도입한 대학들을 자랑(?) 한다. 

아직 많은 부분들을 공부해보진 못했지만 스위프트를 사용해본 경험으로는 코드 표현이 직관적이며, 코드를 굉장히 간단하게 표현하려는 프로그래밍언어라는 느낌을 받았다. (다만 실제로 그렇게 사용하기 위해선 아직 많은 연습과 코드 표현의 습관이 필요해 보인다...  )
결국 스위프트는 애플의 차세대 그리고 현재의 개발자 생태계 확보를 위해 만들어진 언어라고 보여진다.

 성능 상으로도 Objective-C을 개발하면서 흔히 발생하는 에러를 줄일 수 있도록 보완해서 스위프트를 만들었다고 하고, 

스위프트로 만들어진 앱이 Objective-C 로 만들어진 앱 보다 성능이 더 좋다고 애플에서 직접 발표했다고 하니 애플에서도 개발 생태계의 흐름을 고려해 Objective-C 와 스위프트가 병행은 하지만 사실상 스위프트로 대체해 나가는 것 같다. 


기준에 따라 프로그래밍언어의 순위는 달라 질 수 있지만 다양한 기준의 여러가지 지표를 비교해봐도 이미 스위프트가 Objective-C 를 앞서나가고 있으며 대체해 나가고 있음을 보여준다.





지표1 ) Github 기준 프로그래밍 언어 통계 순위 (2018 / 2분기)

Github 에서 해당  프로그래밍 언어들이 얼마나 사용 되었는지 기준






지표 2) TIOBE Index for October 2018 

해당 프로그래밍 언어를 이용하는 엔지니어 및 업체 수와 구글, 야후 등의 검색 엔진을 통해 검색되는 결과물 수 기준







지표3 ) The RedMonk Programming Language Rankings : January 2018 

GitHub 와 Stack Overflow 에서 해당 프로그래밍 언어의 이용 기준

 






스위프트(Swift) 의 역사


이 글을 작성하는 기준 ( 2018. 10 ) 스위프트의 버전은 4.2 이다. 이는 스위프트 버전이 1,2,3 ~ 4.1 이 있었다는 의미이다.

2014년 스위프트가 처음 공개되고 2015년 스위프트2, 2016년 스위프트3, 2017년 스위프트 4 가 차례대로 나왔지만 2018년에는 스위프트 5가 나오지 않았다. 대신 스위프트 4.2가 공개되었다. 버전이 바뀐다는 것은 프로그래밍 언어에 큰 변화가 있음을 의미한다. 매년 버전이 새롭게 나오다가 올해만 스위프트5가 나오지 않았다는 것은 활발하게 업데이트 되던 스위프트가 스위프트4에서 아직까지 큰 변화가 필요하기 보다 기존 걸 개선하고 보완하는 정도가 필요하다는 의미에 가까운것 같다. 이제는 어느정도 안정권에 들어선게 아닌게 싶다. 


스위프트1~ 4까지 많은 변화가 있었겠지만 

어차피 이제까지의 변화 내용은 스위프트 4.2에 모두 담겨져 있으므로 스위프트4.2 의 특징을 알아보았다.




스위프트 공식 문서를 참고하다 보니 다 영어로 되어있지만 잘 이해했다고 믿는다. 

클로저 부터 시작해 오류 처리까지 아직 제대로 기능들을 사용해보지 못해 앞으로 공부 하면서이해해 나가야 할 부분들이다.

다만 인상깊은 특징으로는 메모리가 자동으로 관리된다는 점과 세미콜론을 입력할 필요가 없다는 것이다!!

GC 야 이미 자바에서도 충분히 체감한 부분이라 하더라도 세미콜론이 없다는 부분은 정말 새로웠다.

세미콜론을 사용하지 못하는 건 아닌데 한줄에 구분없이 코드를 입력하는게 아니면 따로 입력할 필요가 없다.





* 해당 포스팅은 스위프트(Swift)4  버전을 기준으로 하고 있습니다.

* 참고 : https://swift.org/ 

* Swift 공부가 필요한 사람이 있으면 함께 공부해 나가면 좋겠습니다 :)



반응형

+ Recent posts