🐣 지난 글
지난 글에서는 Swift 언어의 탄생에 대해서 아주 간략하게 알아봤다. 이번 글에서는 그렇다면 이렇게 등장하게 된 Swift 언어의 특징은 무엇이 있을까에 대한 것을 알아보려고 한다.
[Swift] Swift 언어의 탄생
🦜 시작하기 앞서사실 어떻게 보니 내가 사용하고 있는 프로그래밍 언어 Swift의 탄생과 특징에 대한 정리를 제대로 못했던 것 같아 이렇게 정리하게 되었다. 왜 탄생하게 되었는지, 그리고 특징
swift-library.tistory.com
✨ Swift 의 특징
사실 가장 크게 생각나는 특징은 Swift로 코드를 작성하면 macOS, iOS, iPadOS, watchOS 애플의 모든 기기에서 작동할 수 있는 앱을 만들 수 있다는 점이다. 그 이외에 프로그래밍 적으로 살펴본다면...
🌐 공식 홈페이지
Swift의 공식 홈페이지에서 설명하는 Swift 특징부터 살펴보자.
Swift - Apple Developer
Swift is a powerful and intuitive programming language for iOS, iPadOS, macOS, tvOS, and watchOS. Writing Swift code is interactive and fun, the syntax is concise yet expressive, and Swift includes modern features developers love.
developer.apple.com
Swift.org
Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.
www.swift.org
Swift 공식 홈페이지에서 강조하는 단어는 fast, modern, safe, joy라고 생각된다.
이러한 내용들이 있는데 각 항목별로 요약해 보자면...
👷🏻♂️ Safe
- 타입 안정성: 명시적 타입 지정과 타입 추론을 통해 컴파일 단계에서 확정되어 타입과 관련하여 런타임 단계에서 발생할 수 있는 오류를 미리 방지할 수 있다. guard let, if let으로 옵셔널 타입의 안전한 원래핑이 가능하다. 옵셔널 체이닝을 통해 안전하게 접근할 수 있다.
- ARC 메모리 관리: ARC(Automatic Reference Counting)으로 메모리 누수 위험을 방지한다.
🧑🏻💻 Modern
Swift는 최신 프로그래밍 패러다임을 적극적으로 수용하며, 개발자가 더욱 효율적으로 코드를 작성할 수 있게 한다.
- 함수형 프로그래밍: map, filter, reduce 등 다양한 고차함수를 제공하며 값 타입 중심의 프로그래밍이 가능하다.
- 프로토콜 지향 프로그래밍: 객체 지향 프로그래밍보다 유연하고 확장성 있는 코드 작성이 가능하다. Swift의 표준 라이브러리도 구조체 + 프로토콜의 조합으로 이루어져 있다.
- SwiftUI와 선언형 프로그래밍: UI를 선언적으로 작성할 수 있고, @State, @Binding으로 상태 관리도 용이하다.
아래와 같은 간단한 코드로 아이폰에 Hello, World! 문구를 정중앙에 띄울 수 있다!
struct Hello: View {
var body: some View {
Text("Hello, World!")
}
}
🕹️ Joy
간결하고 직관적인 문법을 가지고 있다. 세미콜론(;)을 생략한다는 점이 처음에 가장 크게 느꼈던 부분이다. 또한 내부, 외부 파라미터 구분을 통해 조금 더 자연스러운 문장으로 코드를 작성하는 듯한 느낌이 들게 된다.
아래처럼 문장을 작성하듯이 코드를 작성할 수 있는 것도 큰 매력인 것 같다.
func greet(to name: String) {
print("Hello, \(name)!")
}
greet(to: "Swift")
공식 문서도 비교적 잘 정리가 되어있고, 공식 홈페이지에서 Swift 연습을 할 수 있는 샘플코드도 많이 제공되고, Playground를 통해 간단하게 코딩도 가능하여 접근성도 좋은 것 같다.
⚡️ Fast
사실 빠르다는 부분이 크게 와닿지는 않은 것 같다. 실제 개발하면서 느껴보기는 힘든 것 같다. 하지만 값 타입 중심의 설계, LLVM 컴파일러, ARC를 활용한 메모리 관리 최적화, 불필요한 복사를 막은 Copy on Write(COW) 최적화 등으로 성능면에서도 뛰어나다고 한다.
이 부분은 다른 언어를 사용하면서 실제로 느껴봐야 이해할 것 같다.
☁️ Shared Mutable State
최신 애플에서는 맥북 에어가 출시되었다. 최신 노트북들을 보면 8코어 10코어... 뭐 엄청나다. 난데없이 제품화면을 들고 온 이유는...
현대에 와서는 컴퓨터의 성능이 올라가면서 동시에 여러 작업을 충분히 할 수 있게 되었다. 이렇게 된다면 공유되는 상태, 데이터에 대한 접근 방식이 더더욱 중요해질 수 밖에 없다. 많은 프로그래밍 언어에서도 중요한 이슈로 다뤄지고 있는 것은 분명하다. Swift는 불변성을 지향하고 있다는 것을 알 수 있는데, 그 증거 중 하나가 Swift 공식 문서에서 값타입인 struct, enum을 사용하기를 권장하고 있다.
'🦜 Swift' 카테고리의 다른 글
[Swift] Swift 언어의 탄생 (0) | 2025.03.09 |
---|