본문 바로가기
IOS App Programming/Swift

[Swift 공부] Swift란?

by B_Tori 2022. 11. 1.

Swift란?

스위프트는 iOS, macOS, watchOS, tvOS를 개발하기 위해 애플에서 제공하는 프로그래밍 언어

 

Swift 특성

swift의 특성은 Safe, Fast, Expressive 세 가지로 표현할 수 있다.

안정성 : Safe

스위프트는 안전한 프로그래밍을 지향한다.

배포 전 프로그래밍 과정에서 프로그래머가 저지를 수 있는 실수를 엄격한 문법을 적용해 미연에 방지하도록 노력하고 있다.

-> 옵셔널, guard구문, 오류 처리, 강력한 타입 통제 등

 

신속성 : Fast

스위프트는 C언어 수준과 동등한 성능을 일정한 수준으로 유지하는데 초점을 맞춰 개발되었다.

실행 속도의 최적화뿐만 아니라 컴파일러를 지속적으로 개량해 더 빠른 컴파일 성능을 구현해 나가고 있다.

 

더 나은 표현성 : Expressive

프로그래밍 언어 각각의 문법은 다양한 장단점이 있다.

스위프트는 이런 장단점을 참고해 조금 더 사용하기 편하고 보기 좋은 문법을 구현하려 노력했다.

 

차용 패러다임

객체지향 프로그래밍 패러다임

컴퓨터 프로그램을 명령어의 목록으로 보는 기존의 명령형 프로그래밍의 시각에서 벗어나 여러 개의 독립된 단위인 객체의 모임으로 파악하고자 하는 패러다임

각각의 객체는 서로 메시지를 주고 받고 데이터를 처리할 수 있다.

[장점]

- 프로그램을 유연하고 쉽게 변경할 수 있도록 작성할 수 있어 대규모 소프트웨어 개발에 많이 사용됨

- 소프트웨어 개발과 유지보수를 간편하게 할 수 있음

- 직관적으로 코드를 분석할 수 있음

함수형 프로그래밍 패러다임

프로그램이 상태의 변화 없이 데이터를 수학적 함수 계산으로 취급하고자 하는 패러다임

기존의 객체 지향 프로그래밍이나 명령형 프로그래밍에서는 프로그램에서 값이나 상태의 변화를 중요하게 여기지만 함수형 프로그래밍은 함수 자체의 응용을 중요시하게 여긴다.

순수하게 함수에 전달된 인자 값만 결과에 영향을 주므로 상태 값을 갖지 않고 순수하게 함수만으로 동작한다. -> 어떤 상황에서 프로그램을 실행하더라도 일정하게 같은 결과를 도출

모나드, 함수 객체, 필터, 맵, 플랫맵, 리듀스 등의 기능을 사용할 수 있다.

 

함수형 프로그래밍의 큰 특징 중 하나는 함수를 일급 객체로 다룬다는 점이다.

[일급 객체 조건]

- 전달인자로 전달할 수 있다.

- 동적 프로퍼티 할당이 가능하다.

- 변수나 데이터 구조 안에 담을 수 있다.

- 반환 값으로 사용할 수 있다.

- 할당할 때 사용된 이름과 관계없이 고유한 객체로 구별할 수 있다.

 

프로토콜 지향 프로그래밍

프로토콜 지향 프로그래밍은 참조 타입인 클래스의 인스턴스보다 값 타입을 효율적으로 사용하며, 오류를 줄일 수 있다.

스위프트에서는 구조체와 열거형에 기존의 클래스에서 구현할 수 있었던 캡슐화, 추상화, 접근제어 등의 기능을 모두 구현할 수 있다.

더불어 프로토콜에 익스텐션을 활용할 수 있기 때문에 프로토콜 지향 프로그래밍이 가능해졌다.

[장점]

- 참조 타입의 참조 문제에서 조금 더 자유로움

- 다중상속이 불가능한 한계를 뛰어넘음

- 더 나은 추상화 메커니즘 구현

댓글