안녕하세요.
오늘은 Swift에 대해 알아보겠습니다. Swift를 공부하기에 앞서 간단하게 어떤 특성을 가진 언어인지 정리해봅시다.
Swift는 iOS, macOS, ipadOS을 위한 프로그래밍 언어입니다. Objective-C를 대체하기 위해 WWDC14에서 처음으로 발표되었습니다. 현대적 언어의 특성을 많이 갖고 있으며, Safe(안정성), Fast(신속성), Expressive(표현성)을 특징으로 합니다.
Safe(안정성)
Swift를 사용하다보면 안정성에 굉장히 신경을 많이 썼다는 것을 느낄 수 있습니다. 엄격한 문법을 통하여 사용자의 실수를 미연에 방지합니다. 대표적으로 변수는 사용전에 항상 초기화되어야 하며, 자동 Overflow 체크, 자동 메모리 관리 등이 있습니다. 제가 안정성을 가장 많이 체감한 부분은 '옵셔널'과 '옵셔널 바인딩'입니다. 이는 변수의 값이 Null로 되어있어 발생하는 오류를 미리 방지하고자 생긴 개념입니다. '옵셔널'은 값이 비어있을 수도 있고, 채워져 있을 수도 있는 변수입니다. 이 변수에 접근하기 위해서 '옵셔널 바인딩'을 하여 값의 유무를 확인해야만 합니다. 까다로운 문법이 조금 어렵긴 하지만, 숙련도가 올라갈수록 효율이 더해질 거라 생각됩니다.
Fast(신속성)
Obejective-C를 대체하기 위해 만들어진 만큼, 속도에서도 뒤처지지 않습니다. 최적화에 초점이 맞춰져 개발되어 성능 유지에도 탁월합니다. 또한, 컴파일러의 속도도 지속해서 발전하고 있습니다.
Expressive(표현성)
Swift는 여러 가지 프로그래밍 패러다임을 채용한 다중 패러다임 언어입니다. 객체지향 프로그래밍, 함수형 프로그램, 프로토콜 지향 패러다임을 채용했습니다. 특히, 이 중에서도 함수형 프로그래밍과 프로토콜 지향 패러다임을 중요시합니다. 이렇게 다중 패러다임을 지향하는 이유는 Swift가 쓰기 좋고, 보기 좋은 언어로 발전하기 위해서 입이다.
함수형 프로그래밍
어떻게 할지를 나타내기보다 무엇을 할 것인지를 먼저 표현하는 방식입니다. 보통 소프트웨어가 커지는 것에 비례해서, 소스코드 역시 복잡성이 증가합니다. 함수형 프로그래밍은 이러한 문제를 해결하기 위해 등장했습니다. 절차 지향 언어에서는 변수를 선언하고, 이를 제어하는 절차를 설계하여 프로그램을 작동시킵니다. 하지만 함수형 프로그래밍에서는 모든 것을 함수로 표현합니다. 작은 문제를 해결하기 위해 함수를 사용하고, 이를 매개 변수로 다른 함수에 전달합니다. 이런 형태를 사용하여 무엇을 할 것인지를 직관적으로 표현할 수 있습니다.
프로토콜 지향
프로토콜은 약속이라는 의미를 가지고 있습니다. 프로토콜을 선언하고, 이를 채택함으로써 여러 클래스가 연결될 수 있습니다. 같은 프로토콜을 사용한다는 것은 클래스끼리 약속된 부분을 갖는다는 것을 의미하기 때문에 가능한 이야기이죠. 프로토콜 지향 프로그래밍이 가능해지면서 참조 타입의 참조 문제에서 자유로워졌고, 다중 상속의 한계를 넘을 수 있으며, 더 나은 추상화 메커니즘이 가능해졌습니다.
함수형 프로그래밍과 프로토콜 지향 패러다임은 솔직히 저도 아직 잘 모르는 부분이 많습니다. 다음에 기회가 되면 다시 한번 정리를 해보도록 하겠습니다.
오늘은 Swift의 기본 정보에 대해 알아보았습니다. 다음 시간에는 '변수와 상수'에 대해 알아보겠습니다!
읽어주셔서 감사합니다.
참고
https://blog.yagom.net/526/
https://seolhee2750.tistory.com/1
'iOS' 카테고리의 다른 글
[iOS]Core Bluetooth 활용하기#03 - 블루투스 데이터 통신하기 (4) | 2023.12.22 |
---|---|
[iOS]Core Bluetooth 활용하기#01 - BLE와 Core Bluetooth란 무엇일까요? (0) | 2023.12.01 |
[iOS] Swift 알아보기 - 기본문법 1편 : 변수와 상수 (0) | 2022.03.29 |