Published by AppleBug
Swift는 Apple WWDC 2014에서 최초로 공개된 프로그래밍 언어로 당시 Objective-C의 단점을 보완하며 등장한 언어이다.
Swift는 초기버전부터 현재의 Swift5에 이르기까지 다양한 기능들이 추가되고 사라지며 업데이트가 되어왔고, 같은 애플의 언어인 Objective-C에 비해 사람이 이해하기 쉬운 언어(비교적 고급언어)이다.
TIOBE라는 사이트에서 선정한 2021년 4월 기준 검색어 점유율 상위 20개 프로그래밍 언어 중 15위(1.19%)를 차지할 만큼 영향력이 있는 프로그래밍 언어이다. (Swift의 대체제로 Obj-C가 있고 사용되는 분야가 Apple한정이라는 점에서 의미는 더 크다고 생각된다.)
출처:TIOBE Index for April 2021, Game over for Objective-C
Objective-C와 완벽한 호환이 가능하다.
PlayGround를 통해서 빠르고 간단하게 코드 테스트가 가능하며, 아이패드에서도 학습을 할 수 있다.
빠른 속도를 보여준다.
Swift공개시 사용된 자료를 인용하면 Objective-C의 약 1.5배, python의 약 220배가 빠르다고 발표를 하였다. (RC4 암호화 기준)
사실 빠른속도라고 해도 우리가 체감하기는 어려운것 같음...
함수형 프로그래밍 패턴 (예: map 및 filter)
메소드, 확장 프로그램 및 프로토콜을 지원하는 구조
메소드(함수)는 파이썬의 함수 선언과 비슷함
extension을 통해 기존에 존재하는 Class에 기능을 추가해 넣을 수 있음
프로토콜은 서비스를 이용할때 해야할 일들의 목록, 자바의 상속, 인터페이스와 비슷함
//----------------메소드
func printName(){ // 메소드 선언
print("My Name is Tom")
}
func add(_ a:Int, _ b: Int) -> Int { // 메소드 선언 및 파라미터와 리턴값 제약 조건
return a+b
}
//----------------extension
class SwiftClass { // 기본 클래스 선언
...
}
extension SwiftClass { // 기본 클래스에 extension을 통해 추가 선언
...
}
//----------------프로토콜
class ViewController: UIViewController { // UIViewController가 프로토콜이며 해당 프로토콜에 약속된 규칙들이 정의되어있다.
override func viewDidLoad() {
super.viewDidLoad()
}
최신의 프로그래밍 패턴을 따른다.(Swift 공식문서에 따르면)
var text_var: String // (0)
var text_var: String = "변수 초기화를 함께 해주지 않아도 됩니다." // (0)
let text_let: String // (x)
let text_let: String = "상수는 항상 초기화를 해주어야 합니다." // (0)
nil
values are handled explicitly. (Optional이라는 개념을 통해 '없다'를 nil로 표현할 수 있다.)Apple환경에서만 사용이 가능하다.
한글자료 양의 부족하다.
Xcode를 활용하여 코딩 및 앱개발이 이루어진다.
변화가 잦아 코드수정이 필요할 수 있다 (Swift 버전 업그레이드 시)
Java와 Python을 메인언어로 공부했던 저로써는 겪어보지 않은 Obj-C 시절의 이야기는 너무 옛날 이야기 같이 들리고 그래서인지 Obj-C에 비해서 편리하다는 말은 와닿지가 않았다.
맨처음 Swift를 접했을 때는 자바(프로젝트 구성과 함께 클래스 생성)와 파이썬(Swift 플레이그라운드)을 합쳐놓은 것 같다는 느낌을 크게 받았고, C, C#등 설치하는 것 부터 거부감이 드는 언어보다 접근성과 배우기가 편리했다.(실제로는 뭐부터 배워야할 지 모르겠어서 해맴)
Xcode는 너무 무거워서 대체제가 나왔으면 합니다...
출처
https://macclub.tistory.com/302
https://brunch.co.kr/@myoungjun/24