swift?
Swift란?
Apple이 개발한 프로그래밍 언어이다.
'신속한, 재빠른'이란 뜻의 영단어로 iOS, macOS, watchOS 같은 다양한 플랫폼 애플리케이션을 개발할 때 사용한다.
Apple은 iOS와 macOS를 지원하는 주 언어로 Objective-C를 사용하였다.
Swift는 Objective-C보다 더 나은 현대 프로그래밍 언어가 가진 기능을 포함하여 보완되었다.
Swift는 컴파일 시에 미리 타입 안전성을 체크하기 때문에 Objective-C보다 코드 실행 속도가 빠르다.
Objective-C로 개발된 앱들이 거의 Swift로 넘어온 추세이지만, 아직 혼용하여 사용된 곳도 많다.
Swift 특징
Safe (안전 중심 설계)
Swift는 여러 방법으로 불안정성을 없앤다. 변수는 항상 사용 전 초기화를 하고, 배열/정수에 대해 오버플로우 검사를 하고,
메모리는 자동으로 관리한다. 또한 옵셔널 타입이라는 것이 존재해 옵셔널 타입이 아닌 변수는 절대로 nil 값이 할당되지 않도록 보호한다.
Swift는 컴퍼일 언어로, 컴파일 시에 이런 불안정성을 검사하여 런타임에 발생할 수 있는 오류를 사전에 방지한다.
Fast (빠르고 강력한 성능)
Swift는 C언어를 기반으로 한 C++, Objective-C와 같은 프로그래밍 언어를 대체하려는 목적으로 개발되었다.
성능을 최대화한 C언어에 가깝게 맞추려했다.
실행속도의 최적화 뿐만아니라 컴파일러의 지속된 개량을 통해 더 빠른 컴파일 성능을 구현했다.
Expressive(더 나은 표현성)
수많은 프로그래밍 언어 문법을 참고해 좀 더 사용하기 편하고 보기 좋은 문법을 구현하려 노력했다.
개발자들이 사용하기 좋은 문법과 최신 기능을 제공한다.
그 외 특징
여러가지 프로그래밍 패러다임을 차용한 다중 패러다임 프로그래밍 언어
- 명령형 프로그래밍 패러다임
- 프로그램의 상태를 변경하는 구문의 관점에서 연산을 설명하는 패러다임
- 연산이 프로그램의 상태를 변화시키는데, 이 연산들(명령)은 컴퓨터가 작업을 어떻게 처리할 지를 표현한 것
- 즉, 명령형 프로그램은 컴퓨터가 수행할 명령들을 순서대로 써놓은 것
- 객체지향 프로그래밍 패러다임
- 프로그램을 명령어의 목록으로 보는 시각이 아닌 여러 개의 독립된 객체들의 모임으로 보는 것
- 강한 응집력과 약한 결합력을 지향해야 됨
- 함수형 프로그래밍 패러다임
- 자료 처리를 수학적 함수로의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 패러다임
- 대규모 병렬처리가 굉장히 쉬움
- 프로토콜 지향 프로그래밍 패러다임
- 참조 타입인 클래스의 인스턴스보다 값 타입을 더 효율적으로 사용하고, 오류를 줄일 수 있음.
- 프로토콜에 익스텐션을 활용할 수 있어져, 프로토콜 지향 프로그래밍이 가능해짐.
- 참조 타입의 참조 문제에서 더 자유로워지고, 다중상속이 불가능한 한계를 뛰어 넘으며 더 나은 추상화 메커니즘을 구현할 수 있음