관리 메뉴

나만을 위한 블로그

[Swift] Swift란? 본문

iOS/Swift

[Swift] Swift란?

참깨빵위에참깨빵 2024. 1. 11. 22:34
728x90
반응형

2024년에 공부해 볼 언어는 자바스크립트 / 타입스크립트, 스위프트로 설정했는데 스위프트를 좀 더 알고 싶어서 스위프트란 어떤 언어고 어떤 특징이 있는지 확인해 봤다.

 

https://en.wikipedia.org/wiki/Swift_(programming_language)

 

Swift (programming language) - Wikipedia

From Wikipedia, the free encyclopedia General-purpose compiled programming language SwiftLogoParadigmMulti-paradigm: protocol-oriented, object-oriented, functional, imperative, block structured, declarative, concurrentDesigned byChris Lattner, Doug Gregor

en.wikipedia.org

스위프트는 애플과 오픈소스 커뮤니티에서 개발한 고급 범용, 다중 패러다임, 컴파일된 프로그래밍 언어다. LLVM 기반 컴파일러라서 기계어 코드로 컴파일된다. 2014년 6월 처음 출시됐고 스위프트 툴체인은 2014년에 출시된 버전 6부터 Xcode에 포함돼 있다. 애플은 스위프트가 Objective-C와 관련된 많은 핵심 개념, 특히 동적 디스패치, 광범위한 지연 바인딩(late binding), 확장 가능한 프로그래밍 및 유사 기능을 지원하게 의도했지만 소프트웨어 버그를 더 쉽게 잡을 수 있도록 더 안전한 방식으로 지원했다
스위프트에는 널 포인터 역참조와 같은 몇 가지 일반적 프로그래밍 오류를 해결하는 기능이 있고 파멸의 피라미드를 피하는 데 도움이 되는 syntactic sugar를 제공한다. 스위프트는 타입, 구조체, 클래스에 적용 가능한 확장성 시스템인 프로토콜 확장성 개념을 지원한다. 애플은 이를 프로토콜 지향 프로그래밍이라 부르는 프로그래밍 패러다임의 실질적인 변화로 홍보한다

스위프트는 2014년 WWDC(세계 개발자 회의)에서 소개됐다. WWDC 2015에서 스위프트 2로 업그레이드됐다. 2015년 12월 3일 애플 플랫폼, 리눅스용 아파치 라이센스 2.0에 따라 오픈소스 소프트웨어로 만들어졌다. 버전 3부터 스위프트 구문은 핵심 팀이 이후 버전에서 소스 안정성에 초점을 맞추며 더 발전했다. 2018년 1분기에 인기도에서 Objective-C를 능가했고 2017년 출시된 스위프트 4.0에선 일부 내장 클래스, 구조가 변경됐다. 2019년 3월에 출시된 스위프트 5는 애플 플랫폼에 안정적인 바이너리 인터페이스를 도입해서 스위프트 런타임을 애플 OS에 통합할 수 있게 했다. 스위프트 5.1은 2019년 9월에 공식 출시됐고 모듈 안정성을 도입해서 언어의 안정적 기능을 컴파일 타임으로 확장했다. 이 모듈 안정성 도입으로 향후 스위프트 릴리스에서 작동할 바이너리 프레임워크를 생성, 공유하는 게 가능해졌다. WWDC 2021에서 공개된 스위프트 5.5는 동시성 및 비동기 코드에 대한 언어 지원을 크게 확장하며, 액터 모델에 대하 고유 버전을 도입한다. 현재 버전인 스위프트 5.9는 2023년 9월에 출시됐고 매크로 시스템, 일반 매개변수 팩, 새 소비 연산자 같은 소유권 기능을 포함한다

스위프트 개발은 2010년 7월 Chris Lattner에 의해 시작됐고, 애플의 초기 프로그래밍 언어인 Objective-C를 대체하기 위해 만들어졌다. Objective-C는 80년대 초반 이후 크게 변하지 않았고 현대적인 언어 기능이 부족했다. 스위프트는 Objective-C, 러스트, 하스켈, 루비, 파이선, C# 등 너무 많은 다른 것에서 아이디어를 가져왔다
스위프트가 지원하는 플랫폼은 애플 OS(Darwin, iOS, iPadOS, macOS, tvOS, watchOS, 리눅스, 윈도우, 안드로이드다...(중략)...스위프트는 모든 메모리를 자동으로 관리하고 변수가 사용 전에 항상 초기화됨을 보장한다...(중략)

 

간략하게 스위프트의 역사를 볼 수 있다. 2024년 1월 11일 현재 다운로드할 수 있는 최신 스위프트 버전은 5.9.2로 확인되고 Xcode 15.1 버전부터 사용할 수 있는 듯하다.

 

 

아래는 스위프트 공식 홈페이지에서 제공하는 무료 메뉴얼이다. 최신 버전인 5.9.2 버전이 반영됐다.

 

https://docs.swift.org/swift-book/documentation/the-swift-programming-language/

 

Documentation

 

docs.swift.org

 

스위프트라는 언어 자체는 처음부터 Objective-C를 대체할 필요성에서 시작한 것으로 보이는 최신 프로그래밍 언어다. 

그럼 스위프트의 장단점은 뭐가 있는가?

 

https://www.altexsoft.com/blog/the-good-and-the-bad-of-swift-programming-language/

 

Pros and Cons of Swift Programming Language

What is Swift programming language and why use it? Review the main pros and cons of Swift for iOS native development and check out which tools are used with it.

www.altexsoft.com

< 장점 >
- 신속한 개발 프로세스
- 제품과 팀의 확장이 더 쉬워짐
- 향상된 성능, 개발 속도, 안정성
- 메모리 공간 감소
- Objective-C와의 상호 운용성
- ARC를 통한 자동 메모리 관리
- 풀스택 잠재력, cross-device 지원
- 활발한 오픈소스 커뮤니티, 학습 가능성

< 단점 >
- 젊은 언어
- 제한된 인재 풀
- 타사 도구, IDE와의 상호 운용성 부족
- 불완전한 크로스 플랫폼 지원
- iOS 구버전에 대한 지원 부족

 

언어 장단점을 다루는 글들이 그렇듯 추상적인 말이 더 많다. 코틀린과 동일하게 풀스택으로 활용할 수 있다는 점은 흥미롭다.

메모리 관리를 자동으로 해준다는 점은 자바와 비슷하고, 세미콜론을 안 써도 된다는 장점도 있는데 코틀린도 동일하기 때문에 다른 글을 읽어도 와닿는 장점은 보이지 않는다. 아직 써보지 않아서 그런 걸 수 있으니 장단점에 대해선 넘어간다. 장단점 아무리 읽어봤자 직접 써보고 느끼는 것만 못하다.

 

또한 스위프트도 최신 언어답게 스위프트로 만들어진 프로그램에 함수형 프로그래밍 패러다임을 적용할 수 있다. 패러다임과 스위프트 문법을 알고, 코틀린으로 함수형 프로그래밍을 해 본 경험이 있다면 큰 어려움 없이 스위프트로 함수형 프로그래밍을 할 수 있을 것이라 생각된다.

반응형

'iOS > Swift' 카테고리의 다른 글

[Swift] 클래스와 구조체  (0) 2024.02.11
[Swift] 반복문 (for-in, while, repeat-while)  (0) 2024.01.17
[Swift] 조건문 (if, switch)  (0) 2024.01.15
[Swift] 변수와 상수, 자료형  (0) 2024.01.14
Comments