스위프트("swift")의 특징

2022. 5. 5. 13:24카테고리 없음

기본적으로 스위프트는 정적 바인딩 언어이다.
동적 바인딩(파이썬, 자바) 언어가 아닌 정적 바인딩(C, C++ 오브젝티브-C) 언어이다.

정적 바인딩-실행 이전에 값이 확정되면 정적  바인딩
컴파일 타임에 호출될 함수가 결정되는것으로 함수는 기본적으로 정적 바인딩된다.

동적 바인딩-실행 이후 값이 확정 되면 동적 바인딩이라고 한다.
런타임에 호출될 함수가 결정 되는것 

 

ex)    int a = 1

int 가 바인딩 되는 것은 프로그램을 컴파일 할때 메모리에 할당 되므로 정적 바인딩

a 변수 또한 컴파일 할때 메모리에 할당 되므로 정적 바인딩

하지만 1은 실행 시에 값으로 할당되므로 "동적 바인딩"이다.

개발 생산성관 앱 성능 모두에서 만족할 만한 결과를 가져오는 언어로 포지셔닝 되어있다.
또한, 데이터 타입에 대한 구분이 엄격하다. 선언된 변수와 상수는 컴파일 단계에게 데이터 타입이 미리 정의되어 있어야한다.
변수의 데티어 타입이 정의되면 다른 타입으로 변경할 수 없다. 이같이 엄격하여 컴파일러는 타입에 맞지않는 데이터가 변수에 대입되는
것을 사전에 차단하여 안전성을 높일 수 있다.

구조적인 특징
1.빠르다
-오브젝티브-C 보다 빠른 성능, 컴파일에서 코드 최적화를 사용하여 소스 컴파일과 최적화를 수행하여 성능을 극대화 한다.

2.안전성
-포인터 직접 접근 시도 차단, 클래스를 통한 간접적으로만 레퍼런스 참고 제한
ARC를 이용하여 자동으로 메모리를 관리하므로 메모리 누수 현상에 대한 안전성도 높다.

3.현대성
-쉬운 문법 채택 코드작성 디버깅, 유지보수 과정에서 기존의 오브젝티브-C보다 적은 양의 코드가 사용
옵셔널, 제네릭, 클로저, 튜플 만이 아니라 현대 프로그래밍 언어의 특성까지 포함 되어 있다.

4.상호반응
-플레이 그라운드 편집기 사용 메모리 스택 등의 정보 확인을 즉시 확인하여
상호반응적 코드 작성을 할 수 있으면 디버깅도 쉽다. 이로써 스위프트 코딩의 효율성이 높다.

5.완전한 플랫폼
-코코아 프레임워크나 코코아 터치 프레임워크 의 모든 API를 스위프트로 호출할 수 있다.
오브젝티브-C 코드에 의존하지 않고도 프로그램을 작성할 수 있다

통합
-스위프트는 C 언어나 오브젝티브-C 언어를 완전히 대체할 수 있습니다.
객체지향 언어의 특성을 모두 제공하는 동시에 자료형과 흐름 제어, 연산자 같은 저수준 언어의 기본 요소들을 포함한다.
오브젝티브-C와 함께 사용할 수 있도록 통합성을 가지고 있습니다.