Swift 란?
Swift는 2014년 애플에서 발표한 프로그래밍 언어입니다. Objective-C 언어를 대체하기 위해 만들어졌으며, iOS, macOS, watchOS 및 tvOS 애플 플랫폼에서 개발하는 데 사용됩니다.
Swift는 다양한 프로그래밍 패러다임을 지원하며, 안정성, 안전성, 효율성 등의 특징을 가지고 있습니다. 또한, 가독성이 높고 코드 작성이 간결하며, 개발 생산성을 높이는 다양한 기능들이 포함되어 있습니다.
Swift의 기본 구성 요소는 변수, 상수, 데이터 타입, 함수, 클로저, 제네릭 등이 있습니다. 변수와 상수는 값을 저장하는 데 사용되며, 데이터 타입은 변수 또는 상수가 저장할 수 있는 값의 종류를 지정합니다. 함수는 특정 작업을 수행하기 위한 코드 블록이며, 클로저는 함수와 유사하지만, 코드 블록을 변수 또는 상수에 할당할 수 있습니다. 제네릭은 일반적으로 사용할 수 있는 함수나 타입을 만들기 위한 기능입니다.
Swift는 Objective-C와 호환되기 때문에 기존의 Objective-C 코드와 함께 사용할 수 있습니다. 또한, Swift는 오픈소스로 공개되어 있기 때문에 개발자들이 함께 개선하고 발전시키는 데 기여할 수 있습니다.
Swift는 애플 플랫폼에서 개발하는 데 필수적인 언어이며, 빠르고 안정적인 애플리케이션 개발을 위해 꼭 익혀두어야 합니다.
Swift의 장점
- 안정성과 안전성: Swift는 안정적이고 안전한 언어입니다. 옵셔널이라는 기능을 제공하여 코드에서 nil을 사용할 수 있도록 하면서도, 안정성을 보장합니다. 또한, 메모리 관리 기능이 내장되어 있어 메모리 누수 등의 문제를 예방할 수 있습니다.
- 가독성과 간결성: Swift는 간결하고 가독성이 높은 코드를 작성할 수 있도록 다양한 문법적 요소를 제공합니다. 예를 들어, 변수나 함수의 선언에서 데이터 타입을 생략할 수 있고, if-else 구문에서는 괄호를 생략할 수 있습니다.
- 빠른 컴파일 속도: Swift는 LLVM 컴파일러를 사용하여 빠른 컴파일 속도를 제공합니다. 이는 개발자들이 코드를 작성하고 빠르게 결과를 확인할 수 있도록 도와줍니다.
- 다양한 프로그래밍 패러다임 지원: Swift는 다양한 프로그래밍 패러다임을 지원합니다. 객체 지향 프로그래밍, 함수형 프로그래밍, 프로토콜 지향 프로그래밍 등 다양한 스타일의 코드를 작성할 수 있습니다.
- 오픈소스: Swift는 오픈소스로 공개되어 있으며, 개발자들이 함께 개선하고 발전시키는 데 기여할 수 있습니다. 이는 Swift의 생태계를 더욱 다양하고 활발하게 만들어주며, 개발자들이 더욱 많은 지원과 자료를 참고할 수 있도록 도와줍니다.
Swift의 단점
- 빈번한 언어 업데이트: Swift는 아직까지도 언어 업데이트가 빈번하게 이루어지고 있습니다. 이는 기존 코드가 새로운 버전의 Swift에서 잘 작동하지 않을 가능성이 있으며, 이에 따라 코드를 업데이트해야 할 필요성이 있습니다.
- 적은 개발자 수: Swift는 아직까지 많은 개발자들이 사용하는 언어는 아닙니다. 이는 Swift로 개발할 때 필요한 지원 및 자료가 상대적으로 부족하다는 것을 의미합니다.
- 높은 학습 곡선: Swift는 Objective-C와 다른 언어의 개념을 결합하여 만들어졌기 때문에, 초보자들이 처음에는 학습하는 데 어려움을 겪을 수 있습니다.
- iOS만을 위한 언어: Swift는 iOS와 macOS 애플리케이션을 개발하는 데 최적화되어 있습니다. 따라서 다른 플랫폼에서 사용할 때는 호환성 문제가 발생할 수 있습니다.
- Xcode에 대한 의존성: Swift를 사용하려면 Xcode와 같은 Apple의 개발 도구가 필요합니다. 이는 Swift를 사용할 때에는 Xcode와 같은 도구를 사용해야 한다는 의존성을 가져온다는 것을 의미합니다.
변수와 상수
Swift에서 변수(Variable)와 상수(Constant)는 각각 var와 let으로 선언할 수 있습니다.변수는 값이 변할 수 있는 데이터 타입으로, 선언 시에 초기 값을 할당할 수 있습니다. 예를 들어, 다음과 같이 변수를 선언할 수 있습니다.
var myVariable = 42 // 변수
myVariable += 42
let yourVariable = 42 // 상수
//yourVariable += 42 // error
위의 코드에서 myVariable은 변수로 선언되었기 때문에, 초기 값으로 42을 할당하고 이후에 값 더하여 값을 바꿀 수 있습니다.
반면, 상수는 값이 변하지 않는 데이터 타입으로, 선언 시에 초기 값을 할당하고 이후에는 변경할 수 없습니다. 예를 들어, 다음과 같이 상수를 선언할 수 있습니다.
상수는 값이 변하지 않기 때문에, 코드에서 값을 변경하면 안 되는 경우에 사용됩니다. 예를 들어, 계산기에서 원주율 값을 사용할 때는 상수로 선언하여 값이 변경되지 않도록 해야 합니다.
타입지정
Swift는 정적 타입 언어이기 때문에 변수나 상수를 선언할 때 해당 변수나 상수의 데이터 타입을 지정해야 합니다.
변수나 상수의 타입을 지정하는 방법은 다음과 같습니다.
1. 타입 어노테이션(Type Annotation)을 사용하는 방법
변수나 상수의 이름 뒤에 콜론(:)을 붙이고 그 뒤에 데이터 타입을 적어서 타입 어노테이션을 사용할 수 있습니다.
예를 들어, 정수형 데이터 타입을 갖는 변수를 선언하려면 다음과 같이 타입 어노테이션을 사용할 수 있습니다.
var myInteger: Int
2. 타입 추론(Type Inference)을 사용하는 방법
변수나 상수의 값을 할당할 때, Swift는 해당 값의 데이터 타입을 추론하여 타입을 자동으로 지정합니다.
예를 들어, 다음과 같이 변수에 값을 할당할 때, Swift는 이 값을 정수형 데이터 타입으로 추론하여 타입을 자동으로 지정합니다.
var myInteger = 10
let inplicitInteger = 70
let implicitDouble = 70.5
let explicitDouble: Double = 70 // 자동형 변환이 되는지… 확인요망
// 실습: 명시적으로 Float 타입인 상수를 만들고 4라는 값을 할당해보자
타입 추론을 사용하면 코드를 더 간결하게 작성할 수 있으며, 코드의 가독성을 높일 수 있습니다.
Swift에서 지원하는 데이터 타입은 다양하지만, 기본적으로 다음과 같은 데이터 타입을 제공합니다.
- Int: 정수형 데이터 타입
- Float, Double: 부동 소수점 데이터 타입
- Bool: 불리언 데이터 타입
- String: 문자열 데이터 타입
이외에도 배열(Array), 딕셔너리(Dictionary), 튜플(Tuple) 등의 데이터 타입을 제공합니다.
특정변수의 데이터형을 알고 싶으면 변수위에 Option+Click을 하면 타입을 알 수 있음
형 변환
좌우 데이터 타입이 다른 경우 형 변환이 필요합니다.
let label = "The width is "
let width = 94
let widthLabel = label + String(width)
// 실습: 마지막 줄에 명시한 String 타입 변환 부분을 제거해보자. 어떤 에러가 발생하는가?
₩()
문자열 안에 변수 값 적용
let apples = 3
let oranges = 5
let appleSummary = "I have \(apples) apples."
let fruitSummary = "I have \(apples + oranges) pieces of fruit.”
// 실습: \() 를 이용해 문자열 안에 실수형 계산을 포함하도록 해보고, 인사말 안에 누군가의 이름을 넣어보자.
배열과 딕셔너리
Swift에서 배열과 딕셔너리는 데이터를 그룹화하는 데 사용되는 컬렉션 타입입니다.
배열(Array)
배열은 동일한 타입의 값들의 순서있는 컬렉션입니다. Swift에서 배열을 생성하려면, 배열의 요소 타입을 지정하고, 대괄호([]) 안에 요소를 나열하여 배열을 초기화합니다.
예를 들어, 문자열 타입의 배열을 생성하고 초기화하는 방법은 다음과 같습니다.
var myArray: [String] = ["apple", "banana", "orange"]
또는 타입 추론을 이용하여 다음과 같이 간단하게 배열을 생성할 수 있습니다.
var myArray = ["apple", "banana", "orange"]
배열의 요소에 접근하려면, 인덱스를 사용합니다. 배열의 첫 번째 요소는 인덱스 0으로 시작합니다.
var firstElement = myArray[0] // "apple"
딕셔너리(Dictionary)
딕셔너리는 키와 값이 쌍을 이루는 컬렉션입니다. 키와 값은 모두 어떤 타입이든 될 수 있습니다. Swift에서 딕셔너리를 생성하려면, 딕셔너리의 키와 값의 타입을 지정하고, 대괄호([]) 안에 키와 값을 쌍으로 나열하여 딕셔너리를 초기화합니다.
예를 들어, 문자열 타입의 키와 정수형 타입의 값을 가지는 딕셔너리를 생성하고 초기화하는 방법은 다음과 같습니다.
var myDictionary: [String: Int] = ["apple": 3, "banana": 2, "orange": 5]
또는 타입 추론을 이용하여 다음과 같이 간단하게 딕셔너리를 생성할 수 있습니다.
var myDictionary = ["apple": 3, "banana": 2, "orange": 5]
딕셔너리의 요소에 접근하려면, 해당 요소의 키를 사용합니다.
var valueOfApple = myDictionary["apple"] // 3
딕셔너리는 키와 값의 쌍을 가지므로, for-in 루프를 사용하여 딕셔너리의 모든 요소를 순회할 수 있습니다.
for (key, value) in myDictionary {
print("\(key): \(value)")
}
// "apple: 3"
// "banana: 2"
// "orange: 5"
'Programming Language > Swift' 카테고리의 다른 글
[Swift] Swift 간단 정리 5, Error Handling (0) | 2023.04.29 |
---|---|
[Swift] Swift 간단 정리 4, Type Casting (0) | 2023.04.29 |
[Swift] Swift 간단 정리 3 ,Optional (0) | 2023.04.29 |
[Swift] Swift 간단 정리 2, 흐름제어문 (0) | 2023.04.28 |