소개
Swift 언어에서 iOS/macOS 등 운영체제의 애플리케이션의 개발을 하는 것 외에 뭘 더 할 수 있을까요? Swift 탄생 10주년을 맞아 다양한 활용처에 대해 간단하게 알아보겠습니다.
서버 (웹 백엔드 등) – Vapor
Vapor는 Swift 언어를 사용해 서버를 구축할 수 있는 솔루션입니다. Vapor 는 Swift로 작성된 오픈소스 라이브러리이며 애플의 공식적인 지원은 아직 없지만 이미 Swift 공식 사이트와 Apple WWDC에서도 여러차례 언급되는 등 Swift 서버의 준공식 라이브러리의 위상을 차지하고 있습니다.
네이티브 언어인 Swift로 만들어졌기 때문에 속도 면에서 Spring 등 Java를 사용하는 언어로부터 우위를 가지고 있고, 쉬운 러닝 커브, 프로토콜 중심 개발로 타입 안전성(type-safety)가 보장되는 등 여러 장점을 지니고 있습니다.
Vapor는 아래 기술들과 결합해 웹 사이트 서버, HTTPS 서버, 백엔드 서버 등 다양한 형태의 서버를 만들 수 있고, Docker등의 기술과 결합해 AWS, Heroku등 클라우드 서비스와도 연동하여 배포할 수 있습니다.
- Fluent
- JWT
- Leaf
- Postgres
- MySQL
- SQLite
- MongoDB
- Queues
- APNS
- Redis 등등…
임베디드 프로그래밍 – Embedded Swift
Embedded Swift는 최근 WWDC24에서 발표된 임베디드 기기 등을 위한 경량화 버전입니다. Swift는 C, C++과의 연동성이 뛰어난 네이티브 언어인 장점을 이용하여 임베디드 프로그래밍에서도 Swift의 기능을 거의 대부분 활용할 수 있도록 컴파일러 등을 새롭게 정비하였습니다.
임베디드 프로그래밍에 있어 성능 및 경량화는 필수불가결하기 때문에 일부 제한된 항목이 있습니다. Mirror(리플렉션)과 any
키워드 등 일부 기능은 컴파일링 및 런타임 성능을 위해 제한됩니다. 다시 말하면 그 외에는 Swift의 쉬운 문법 및 개발 방법 등을 대부분 그대로 활용하여 보다 쉽게 임베디드 프로그래밍이 가능하다는 이야기가 됩니다.
인터넷에 여러 예제가 올라와 있으며 앞으로 Swift가 더 많은 영역에서 활용될 것입니다.
모바일 앱 크로스플랫폼 – Skip(유료)
Xamarin, React Native 등 크로스플랫폼 개발 도구가 등장한 이래로 모바일 앱 개발 경향도 점점 크래스플랫폼 위주로 개편되고 있습니다. 기존 네이티브 개발 관계자들은 ‘네이티브만이 답이다’이라고 주장하고 있지만 현실은 네이티브 개발자들에게 매우 가혹해진 것이 사실입니다.
이런 와중 Swift를 메인으로 하는 크로스플랫폼이 등장했습니다. Skip라는 이름의 개발 도구이며, Swift와 Kotlin의 유사성을 활용해 Swift 및 SwiftUI로 작성을 하면 이 코드를 Kotlin 및 Composer 형태로 변환해 iOS 앱과 실시간으로 동시에 빌드할 수 있습니다. 특히 Xcode와 Swift를 이용하여 앱 개발을 하던 개발자들은 안드로이드 앱 개발을 위한 별도의 학습이 없이도 크래스플랫폼 앱을 개발할 수 있어 매우 반가워할 것 같습니다.
단점은 유료인 점과, 인지도 및 커뮤니티 부족 등이 있을 것입니다. 평가기간 동안은 무료로 사용할 수 있으며 이후 유료로 전환됩니다.가격은 소규모 비즈니스는 연 299달러, 프로 비즈니스는 연 999달러를 지출해야 합니다. 그 외에도 파편화 등 크로스플랫폼 개발에서 나타날 수 있는 각종 단점들도 그대로 가지고 올 수 밖에 없다는 한계도 있습니다.
게임 엔진 – Godot에서 Swift를 메인 언어로 사용 (비공식)
- https://godotengine.org/
- https://github.com/godotengine
- Swift Godot – https://github.com/migueldeicaza/SwiftGodot
Godot은 아르헨티나에서 2014년에 출시된 게임 엔진입니다. 읽는 방법은 ‘고도’라고 읽습니다. 쉬운 사용법과 MIT라이선스의 전면 무료임을 내세워 인디게임 시장 중심으로 점유율을 넓혀가고 있습니다. mac을 포함한 여러 운영체제에서 개발 환경이 마련되었다는 점도 장점입니다.
게임 엔진은 코어 부분을 비롯하여 게임 엔진을 편리하게 이용할 수 있도록 하는 GUI 소프트웨어 및 개발 언어/스크립트 언어 등으로 구성됩니다. 여기서 개발 언어는 게임 개발의 특성상 성능이 최우선되기 때문에 C/C++/C#가 대부분인 것이 현실입니다. 고도도 처음엔 Python을 사용하다가 성능 한계 등으로 인해 Python 대신 사용할 자체 언어를 개발하였고, 그 외에도 공식적으로 C/C++/C#을 지원합니다.
공식 지원 언어는 아니지만, Godot은 다양한 언어를 통한 개발이 가능합니다. Swift Godot를 통해 Swift를 스크립트 언어로 사용할 수 있습니다. Swift는 네이티브 컴파일을 지원하며 C/C++과 호환성이 매우 높으면서도, 훨씬 직관적이고 쉬운 문법을 지녔습니다. 또한 가비지 컬렉션(Garabage Collection)이 없다는 점도 장점입니다. 아래 영상(영어)에서 Swift Godot에 대한 보다 자세한 내용이 있습니다.
0개의 댓글