Swift 0. 스위프트에 대하여
스위프트는 현대적인 접근 방법을 사용해서 좀더 안전하고 성능 좋고 소프트웨어 다지인 패턴인 적인 범용 목적의 프로그래밍언어 입니다.
스위프트 의 목표는 시스템 프로그래머 부터 모바일, 테스크탑, 클라우드 서비스 까지 다양한 사용자가 이용가능한 베스트한 언어를 만드는 것입니다. 가장 중요한 것은, 스위프트는 개발자가 좀더 정확한 프로그램을 쉽게 작성하고 유지할 수 있도록 디자인 되었습니다. 이를 달성하기위한 가장 명확한 방법은
- Safe
- Fast
- Expressive
Swift-based 의 놀이터는 XCode 에서, web-based REPL 은 Linux server-side code 와 함께.
스위프트는 코드를 좀더 쉽게 읽고 쓸 수 있도록 하는 특징들을 포함하고 있으며, 개발자에게 진정한 시스템 프로그래밍 언어에 필요한 제어 기능을 제공합니다. 스위프트는 코드를 좀더 깨끗하게 하고 실수를 덜하게끔 하는 추론 타입을 지원합니다. 그리고 모듈들은 헤더들을 제거하고, namespace 를 제공합니다. 메모리는 자동적으로 관리되고, semi-colon 을 칠 필요도 없습니다. 스위프트는 또 다른 언어에서 장점을 빌려왔는데, 예를 들어 Object-C 에서 가져온 named parameter 는 스위프트의 API 들을 쉽게 읽고 관리할 수 있도록 해주는 깨끗한 문법으로 느껴집니다.
스위프트의 특징들은 스위프트를 좀더 파워풀하고 재밌게 쓸 수 있도록 함께 디자인 되었습니다. 다음은 몇가지의 특징입니다.
- funtion pointers 로 통합된 Closures
- Tuple and multiple return values
- Generics
- range 또는 collection 을 통한 빠르고 정확안 iteration
- methods, extensions, protocols 를 지원하는 Structs
- Funtional programming patterns (ex. map, filter)
- 강력한 error handling 이 내장됨
do
,guard
,defer
,repeat
키워드를 통한 흐름 제어
스위프트는 처음부터 C-based 언어들보다 안전하게 설계되었습니다. Variables 는 항상 사용전에 초기화되어야 하고, arrays 와 integers 은 overflow 를 체크하며, 메모리는 자동적으로 관리됩니다. 나의 의도를 쉽게 정의할 수 있도록 문법이 정의되었습니다. 예를 들면, 간단한 3 문자로 variable 은 var, constant 는 let 으로.
또 다른 안전한 특징은 기본적으로 스위프트 obejcts 는 nil
이 될 수 없고, nil
object 를 만들거나 사용하려고 하면 compile-time error 가 발생합니다. 이것이 code 를 좀더 깨끗하고 안전하게 만들어주고, runtime crashes 의 일반적인 원인들을 방지해 줍니다. 그러나, nil
이 적절한 케이스도 있습니다. 이런 상황을 위해 스위프트는 혁신적인 특징으로 알려진 optionals 를 가지고 있습니다. optional 은 nil
을 포함할 수 도 있습니다만, 스위프트의 문법은 컴파일러에게 ‘내가 이 행동을 이해했고, 안전하게 다룰 거야’ 라는 뜻의 ?
을 사용하게끔 나에게 강제 해서 좀더 안전하게 다룰 수 있도록 합니다.
2015년 12 월 3일 부터, 스위프트 언어는 Apache 2.0 license with Runtime Library Exception (opens in a new tab) 을 따르는 libraries, debugger 그리고 package manager 를 지원하고 있습니다. 그리고 Swift.org 가 project 를 host 하기 위해서 만들어졌습니다. souce code 는 Github 에 host 되었습니다. 모든이를 환영합니다.
Comunity Overview (opens in a new tab) 에 스위프트 커뮤니티가 어떻게 관리되는지에 대한 자세한 정보를 포함하고 있습니다.
스위프트 언어는 각각의 저장소에 있는 프로젝트들의 모음으로 관리됩니다. 현재 프로젝트들은 다음과 같습니다.
- Swift compiler (opens in a new tab) - command line tool
- Standard library (opens in a new tab) - 언어의 일부분이 번들된
- Core libraries (opens in a new tab) - higher-level functionality 를 제공하는
- LLDB debugger (opens in a new tab) - Swift REPL 을 포함한
- Swift package manager (opens in a new tab) - 스위프트 소스코드 배포와 빌드를 위해
- Xcode playground support (opens in a new tab) - Xcode 에서의 놀이터를 가능하게 하는
스위프트를 개발하면서 가장 재밌는 면중 하나는 다양한 플랫폼, 장치 및 사용 사례에 이식할 수 있다는 점입니다.
우리의 목표는 모든 플랫폼에 걸져 Swift 를 위한 호환성을 제공하는 것입니다. 비록 실제 구현 메카니즘은 플랫폼에 따라 달려지겠지만.
Swift core libraries 프로젝트는 Object-C 런타임의 의존성 없이 기본적인 Apple frameworkds 의 구현들을 제공할 수 있는 Swift 의 cross-platform 능력을 확장하는 것이 목표입니다. 비록 core libraries 가 아직 개발단계에 있지만, 그들은 결국 모든 플랫폼에서 Swift code 를 위한 소스 호환성을 제공할 것입니다.
Open-source 인 Swift 는 Mac 에서 모든 Apple platforms 를 타켓으로 사용 될 수 있습니다. iOS, macOS, watchOS, tvOS. 게다가 스위프트의 Binary builds 는 Xcode 에 대해 완벽히 지원합니다.
리눅스 에서 스위프트 라이브러리와 앱을 만들기 위해 Swift 를 사용할 수 있습니다. Open Source Swift 는 Swift compiler 와 standard library, Switt REPL 및 debugger(LLDB), core libraries 를 제공합니다.
희망중이라고 합니다.
출처 : https://www.swift.org/about/ (opens in a new tab)
작성일 : 2021.01.10
© Muleo.