Dreaming Deve1oper

Swift (스위프트)란? 본문

스위프트

Swift (스위프트)란?

주현테크 2021. 11. 6. 15:24

스위프트 [Swift]

Apple WWDC14에서 공개된 애플의 신규 프로그래밍 언어이다.

Objective-C의 단점을 보완하고 LLVM/Clang 컴파일러로 빌드되며 기존 Objective-C에 비해 클로저, 다중 리턴 타입, 타임 스페이스, 제네릭, 타입 인터페이스 등 Objective-C에는 없었던 현대 프로그래밍 언어가 가지고 있는 기능을 다수 포함시켰으며 일정한 성능 향상을 보인다. macOS, iOS, watchOS, tvOS를 대상으로 한다.

 

 

※ PoStscript

①Objective-C:

C 언어에서 파생된 객체 지향 프로그래밍 언어. C 언어에 무형성 순수 객체 지향 언어인 스몰토크 형식의 객체 지향 패러다임을 확장 형태로 얹었다. 실제로는 C 언어라고 봐도 무방하다. Swift가 등장하기 전 애플의 표준 프로그래밍 언어로 사용되었다.

 

②LLVM

오픈소스 컴파일러 프로젝트 혹은 툴체인(연쇄적으로 사용되는 소프트웨어 개발 도구들의 집합)의 이름이다.

 

③ Clnag

프론트엔드로 구성된 C, C++, Objective-C의 컴파일러이며 LLVM 프로젝트의 메인 프론트엔드이다. 소스코드를 LLVM IR로 컴파일하는 역할을 담당한다.

 

 

 

■ 스위프트가 제공하는 기능

- 함수 포인터와 통합된 클로저

- 튜플 및 멀티플 반환 값

- 제네릭

- 범위 또는 컬렉션에서의 빠르고 간결한 반복

- 메소드, 확장 프로그램 및 프로토콜을 지원하는 구조

- 함수형 프로그래밍 패턴 (ex: map 및 filter)

- try/catch/throw를 사용한 기본 오류 처리

 

: 다음과 같은 기능을 통해 코드의 표현력을 높인다. 이를통해 현대적인 프로그래밍 언어가 될 수 있었다.

 

 

 

특징

WWDC에서 공개한 Swift의 특징은 Safe(안전성), Fast(신속성), Expressive(표현성)으로 3가지가 존재한다.

하위 호환성도 보장하고 있기 때문에 코드 내부에서 C언어 Objective-C 코드를 섞어 사용하거나 스크립트 언어처럼 프로그래밍 가능하다. Rust, Haskell, C#, Python, Ruby, Kotlin 등에서 영향을 받아 개발되었으며 Rust가 가장 큰 영향을 끼쳤다고한다.

 

 

■ 문제점

Objective-C에 비해 문제점이 존재했다. 초기 3년동안 언어동작, API등이 지속적으로 변경되었다. LLVM/Clnag의 실시간 오류 검출 기능은 Xcode의 컨디션에 좌지우지되는데 Apple 개발자 포럼에선 이와 관련된 문제가 많다고 보고된다.

Objective-C에 비해서 빌드 속도가 현저히 느리며 Xcode를 사용하면서 CPU 사용을 지속적으로 full 하여 전반적인 동작이 느리다. 또한 문자열 조작이 매우 불편하다. 

 

'스위프트' 카테고리의 다른 글

Windows os에서 Swift 개발하기  (0) 2021.11.07
Comments