본문 바로가기

Stupid Computer/1. About Computer

[애플]swift 언어 사용기_클리앙 사용기게시판 글

애플에서 발표한 Swift 핸드북을 발표후 쭉 살펴봤습니다.

그동안 Objective C에서 아쉬웠던 부분이 대부분 해소가 되었네요.

String과 Character가 정식으로 자료형으로 편입이 되었고, Boolean type도 더이상

매크로가 아닌 자료형으로 사용하게 되었습니다.(기존에도 자료형으로 있긴 했지만 적극적으로 쓰이지 않았죠.

정수형만 지원이 되던 case switch가 object도 사용이 가능하고 range operator가 사용가능해졌습니다.

이제 귀찮게 if else if else를 쓰지 않아도 되는거죠.

그리고 함수의 리턴값이 여러 값을 동시에 리턴할 수 있게 되었고,

변수나 상수 선언시 초기 literal 값에 의해 자료형이 결정될 수도,

명시적으로 자료형을 선언 할 수도 있게되었죠.(사실 도입이 많이 늦은거죠.)

그리고 다른 OOP언어처럼 템플릿으로 클래스를 선언해서 제네럴 타입을 만들수도 있고, 

 

기존 자료형에 extension으로 기능을 추가할 수도 있구요.

enumerate도 강력해져서 그냥 자료를 열거하는 타입이 아니라 내부적으로 연산도 가능하도록 바뀌었네요.

클래스에 initializer(타 언어에서 constructor)가 없어서 편법적으로 메소드명으로 할당과 초기화를 진행했던 

부분이 사라지고, 그외 @syncronize로 선언해주던 부분, @property로 getter, setter를 만들어주는 부분등

사족처럼 붙는 것들이 전부 사라졌습니다.

그리고 포인터가 완전히 사라졌습니다. 즉 allocation 하는 단계가 최소한 개발자에게서는 사라지게 된 것이죠.

연산자들은 훨씬 더 강력해져서, reminder연산자는 정수형만 되고, 나머지 자료형에서는 함수로 제공되던 것이

자료형에 관계없이 동일하게 reminder연산자를 사용할 수 있게되었습니다. 그외에 연산자들이 너무 많아져서

항상 레퍼런스를 당분간은 옆에 끼고 있어야 할 듯 합니다.

array, dictionary도 정규 자료형으로 포함이 되었고, 마치 linked list처럼 작동합니다. 굳이 불편한 NSArray나

NSDictionary를 쓸 필요가 없어졌죠.

다만, Cocoa SDK의 사용법이 생각보다 많이 바뀌었습니다. 

기존에 인터넷에 축척되었던 코드들을 swift로 사용하기 위해서는 머리를 좀 많이 굴려야 한다는 점입니다.

포인터가 사라지는 바람에 기존에 포인터에 익숙하던 개발자들은 초반의 혼란은 피할 수 없습니다.

그럼에도 불구하고, 여러 장점들이 많아져서 새로 개발을 진행한다면 swift로 개발을 할 것 같습니다.

그동안 objective C는 그 기능에 비해서 사족이 지나치게 많았거든요.