일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- memory
- 레지스터
- 이더리움
- Unity
- 암호화
- 유니티
- 에러
- 던파
- 유니티에러
- 메타마스크
- 머신러닝
- 반도체
- 아두이노우노
- 면접
- 컴퓨터구조
- 네트워크보안
- 메모리
- 네오플
- 던전앤파이터
- 게임기획
- 아두이노함수
- 인터럽트
- MuchineRunning
- 보안
- 반도체 취업
- MLAgent
- 네트워크
- neople
- 아두이노
- 반도체 엔지니어
- Today
- Total
Dreaming Deve1oper
Swift (스위프트)란? 본문
스위프트 [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 |
---|