Programming/Swift

[1] SWIFT? 뭘까?

ilovecoffee 2015. 9. 7. 17:56




1. SWIFT? 이건 뭐지?


애플이 2014년 6월 2일(현지시간) 미국 샌프란시스코에서 열린 세계 개발자 대회 「WWDC 2014」에서 공개한 독자적 컴퓨터 프로그램언어


기존 Objective-C의 단점을 보완하며, 같은 LLVM컴파일러로 빌드되며 같은 런타임을 사용하는 애플의 신규 언어체계이다.

기존 Objective-C에 비해 클로저, 다중 리턴 타입, 네임스페이스, 제네릭스, 타입 인터페이스 등 Objective-C에는 없었던 현대 프로그래밍

언어가 갖고 있는 기능을 많이 포함시켰으며, 이에 따라 일정한 성능향상을 보이고 있다.


기존 Objective-C와 새로운 Swift파일을 혼합시켜 코딩을 할 수 있다.


2. Objective-C와의 관계


많은 사람들이 Objective-C를 이제 묻혀질 언어로만 생각하고 있지만, 의외로 그렇지 않다.

Swift 프로젝트에서도 Objective-C는 아무런 제약 없이 사용 가능하다(!!). Swift의 컴파일러와 Objective-C의 컴파일러는 둘다 LLVM으로 동일하며, 따라서 어떤 언어를 사용해서 코드를 작성하던간에 컴파일된 결과는 같다. 이때문에 Objective-C로 작성되어있는 클래스를 아무런 문제 없이 Swift에서 사용하는것이 가능해진다. 물론 반대의 경우도 가능하다.

실전에서는 Swift에서 기존 Objective-C로 작성되어 있는 라이브러리를 사용하기 위해서라도 Objective-C는 반쯤 현역으로 사용된다. 프로젝트 내에서 대부분의 코드는 Swift로 작성되지만, Objective-C 기반으로 작성되어 있는 기존 코드가 상당수이기 때문에, Swift가 정착된 후에도 Objective-C의 사용은 계속될 것으로 보인다.


3. Objective-C보다 Swift가 더 좋은 점.[간단하게]

1. 세미콜론의 삭제

기존의 Objective-C는 ;를 꼭 붙여주어야 했다. 하지만 Swift는 전혀 필요없다.[있어도 된다.없어도 컴파일에 문제는 없다.]


2. 변수 선언

타입을 명시하지 않아도 된다.


  var count = 1 //타입을 명시하지 않아도 Int형

  var text = "TEXT" //타입을 명시하지 않아도 String형

  var count = 1.0 //타입을 명시하지 않아도 Double형

  var text : String = "TEXT" // 이렇게 타입을 써줄 수도 있음.

* var : 변수, let : 상수



3. entry Point가 없어짐.
기 Objective - C에서도 entrypoint인 main()이 존재했지만, Swift는 Main이 없다.




4. 앞으로 더욱 강력해질 SWIFT 2.0


기존 SWIFT 1.2에 비해 더 간략해지는 Swift 2.0. 이번 가을에 10.10 Yosemite 다음 OS인 10.11 El Capitan에서 볼 수 있을 것 같다.