Swift 입문자를 위한 기초 문법 완벽 정리 (with 예제 & 꿀팁)
Swift 기초 문법 정리
Swift는 문법 표현이 매우 다양한 언어이다. 그래서 Swift의 문법을 모두 완벽히 이해하기까지는 시간이 꽤나 걸릴 수 있다. 그렇지만 최소한의 핵심적인 문법만 익혀도 무리 없이 Swift를 사용할 수 있다. 우선 깊고 어려운 내용보다는 가장 중요한 부분을 중점적으로 다루고, 이후 Apple의 Swift Programming Language Guide나 타 Swift 관련 서적을 참고하면서 공부해야겠다(:
ps. Swift 가이드 문서의 변경 내역을 확인하는 것도 좋은 방법이다. 또한 클래스, 함수, 변수명은 Swift의 API 가이드라인에 맞게 작성하는 것이 좋다.
Documentation
docs.swift.org
1. 명명법, 콘솔로그, 문자열 보간법
1.1 명명법
Swift에서는 변수나 함수, 클래스 이름을 정할 때 명명 규칙을 지켜야 한다. 이를 통해 코드의 가독성도 높아지고 일관성을 유지할 수 있다.
- Lower Camel Case: 함수, 메서드, 변수, 상수 이름에 사용된다. 첫 단어는 소문자, 이후 단어는 대문자로 시작한다.
- 예시: someVariableName, printUserInfo(), isHidden
- Upper Camel Case: 타입 이름(클래스, 구조체, 열거형 등)에 사용된다. 모든 단어의 첫 글자는 대문자로 작성된다.
- 예시: Person, UserProfile, Weekday
- 대소문자 구분: Swift는 대소문자를 구분한다. 즉, username과 userName은 전혀 다른 변수로 인식된다.
- 예시: var username = "John"과 var userName = "John"은 서로 다른 변수이다.
1.2 콘솔로그 남기기
Swift에서 콘솔에 로그를 남길 때 사용할 수 있는 함수는 두 가지가 있다. 바로 print()와 dump()이다.
- print(): 단순한 문자열을 출력하는 함수다.
- print("Hello, Swift!")
- dump(): 객체나 구조체 등의 더 많은 정보를 출력해준다. 객체의 프로퍼티나 구조를 보고 싶을 때 유용하다.
- dump(someObject)
1.3 문자열 보간법 (String Interpolation)
문자열 내에 변수나 상수의 값을 포함시키는 방법이다. \(변수명)을 사용하여 문자열 안에 변수의 값을 표현할 수 있다.
let name = "Yagom"
let message = "Hello, \(name)!"
print(message) // 출력: Hello, Yagom!
2. 상수와 변수 선언
- let: 값을 변경할 수 없는 상수를 선언할 때 사용한다.
- var: 값을 변경할 수 있는 변수를 선언할 때 사용한다.
// 상수와 변수 선언
let constant: String = "상수 값"
var variable: String = "변수 값"
// 타입이 명확한 경우 타입 생략 가능
let pi = 3.14159 // Double 타입으로 추론됨
var name = "Yagom" // String 타입으로 추론됨
상수는 한 번 값이 정해지면 변경할 수 없으며, 변수는 값을 자유롭게 바꿀 수 있다.
var greeting = "Hello"
greeting = "Hi!" // 변수는 값 변경 가능
// let constant = "new value" // 오류: 상수는 값을 변경할 수 없음
3. 타입 추론과 명시적 타입 선언
Swift는 타입 추론 기능을 지원한다. 변수나 상수를 선언할 때, 그 값에 맞는 타입을 자동으로 추론한다. 그러나 명시적으로 타입을 선언할 수도 있다.
let number = 42 // Swift는 이를 Int 타입으로 추론
let text = "Hello" // Swift는 이를 String 타입으로 추론
이렇게 타입을 자동으로 추론할 수 있지만, 경우에 따라 타입을 명시적으로 선언할 수도 있다.
let number: Int = 42
let text: String = "Hello"
4. Swift의 기본 데이터 타입
4.1 Bool
Bool은 참(True)과 거짓(False)만을 값으로 가지는 타입이다.
var isTrue: Bool = true
var isFalse: Bool = false
Bool은 조건문에서 자주 사용되며, 그 값은 true 또는 false만 가능하다.
4.2 Int와 UInt
- Int: 음수와 양수를 모두 처리할 수 있는 정수 타입이다.
- UInt: 양의 정수만 처리할 수 있는 타입이다.
var someInt: Int = -100 // 음수 정수
var someUInt: UInt = 100 // 양수 정수
4.3 Float과 Double
- Float: 32비트 부동소수점 숫자 타입으로, 소수점 이하 자릿수가 약 6자리에서 7자리 정도로 제한된다.
- Double: 64비트 부동소수점 숫자 타입으로, 소수점 이하 자릿수가 약 15자리까지 정확하게 처리된다.
var pi: Float = 3.14159 // Float 타입
var weight: Double = 65.5 // Double 타입
예시:
var someFloat: Float = 3.14159265358979
print(someFloat) // 출력: 3.141593 (정밀도 손실 발생)
var someDouble: Double = 3.14159265358979
print(someDouble) // 출력: 3.14159265358979 (정밀도 유지)
- Float은 약 6자리에서 7자리 정도의 정확도를 가지고, 긴 소수점 숫자에 대해선 Double이 더 정확하다.
4.4 Character와 String
- Character: 하나의 문자만을 표현하는 타입이다.
- String: 여러 문자를 포함하는 문자열 타입이다.
var someCharacter: Character = "A"
var someString: String = "Hello, Swift!"
5. 생각해보기 (상수와 변수 선택)
다음과 같은 경우, 각 값은 상수(let)로 선언할지 변수(var)로 선언할지 고민해보자.
- name = "Yagom" → var (이름은 자주 바뀔 수 있다)
- numberToAdd = 5 → let (변경되지 않는 값이므로 상수로 선언)
- pi = 3.14159 → let (변경되지 않으므로 상수로 선언)
- maxItemCount = 1000 → let (변경되지 않으므로 상수로 선언)
상수와 변수는 값이 변경될지 안 될지에 따라 결정하면 된다. 값이 변경되지 않을 것 같으면 let을 사용하고, 변경될 필요가 있으면 var를 사용하면 된다.
6. 타입 확인하기
Swift에서 변수나 상수의 타입을 확인할 때는 type(of:)를 사용할 수 있다.
let integer = 100
let floatingPoint = 12.34
let apple = "A"
print(type(of: integer)) // 출력: Int
print(type(of: floatingPoint)) // 출력: Double
print(type(of: apple)) // 출력: String
'IT' 카테고리의 다른 글
Swift 자료구조 기본 – Array, Dictionary, Set 비교와 사용법 (0) | 2025.04.22 |
---|---|
한눈에 이해하는 Swift Any, AnyObject, nil 차이와 예제 (0) | 2025.04.20 |
스택, 큐, 딕셔너리 — 알고리즘 문제 해결의 기본기 (0) | 2025.04.15 |
트라이(Trie) 자료구조: 빠르고 효율적인 문자열 검색 (0) | 2025.04.15 |
해시 테이블(Hash Table) 개념 정리 – 왕초보도 바로 이해되는 자료구조 노트(: (0) | 2025.04.15 |
댓글
이 글 공유하기
다른 글
-
Swift 자료구조 기본 – Array, Dictionary, Set 비교와 사용법
Swift 자료구조 기본 – Array, Dictionary, Set 비교와 사용법
2025.04.22 -
한눈에 이해하는 Swift Any, AnyObject, nil 차이와 예제
한눈에 이해하는 Swift Any, AnyObject, nil 차이와 예제
2025.04.20 -
스택, 큐, 딕셔너리 — 알고리즘 문제 해결의 기본기
스택, 큐, 딕셔너리 — 알고리즘 문제 해결의 기본기
2025.04.15 -
트라이(Trie) 자료구조: 빠르고 효율적인 문자열 검색
트라이(Trie) 자료구조: 빠르고 효율적인 문자열 검색
2025.04.15