[swift 기초] swift

silverCastle·2021년 8월 7일
0

💡swift의 언어적 특성

애플은 iOS, macOS, watchOS, tvOS 등 자사의 제품 개발에 활용하기 위해 새 프로그래밍 언어인 swift를 만들었는데 이 언어의 특징은 Safe, Fast, Expressive이다.

swift 로고
  • 안전성(Safe)
    프로그래밍하는 중에 프로그래머가 저지를 수 있는 실수를 엄격한 문법을 적용하여 때론 강제적이라고 느낄 수 있지만 버그를 수정하거나 실수를 찾아내는 시간을 절약할 수 있다.
  • 신속성(Fast)
    C언어를 기반으로 한 C, C++, Objective-C와 같은 프로그래밍 언어를 대체하려는 목적으로 만들어졌다. 아직은 미흡한 부분도 있지만 빠른 컴파일 선능을 구현해 나가고 있다.
  • 더 나은 표현성(Expressive)
    수많은 프로그래밍 언어의 장단점을 참고해 좀 더 사용하기 편하고 보기 좋은 문법으로 덕분에 개발자들이 원하던 현대적이고 세련된 문법을 구사할 수 있다.

이 세가징 특징 외에도 많은 특징이 있는데 패러다임 관점에서 가장 강조하는 부분은 바로 함수형 프로그래밍 패러다임프로토콜 지향 프로그래밍 패러다임이다.

  • 함수형 프로그래밍 패러다임
    최근 프로그래밍 패러다임의 대세로 떠오르고 있는 가운데 가장 큰 장점은 대규모 병렬처리가 굉장히 쉽다는 점이다. 한눈에 이해하기 쉽게 우리가 한번씩은 들어본 명령형 프로그래밍과 비교를 해보겠다.

    명령형 프로그래밍함수형 프로그래밍
    프로그래머가 초점을 두는 곳작업 수행 알고리즘
    상태의 변경 추적
    원하는 정보
    필요한 변환
    상태 변경중요없음
    실행 순서중요낮은 중요도
    주요 흐름 제어제어 구문(반복문, 조건문 등)
    함수(메서드)호출
    순환(재귀)함수 호출 등의 함수 호출로 제어
    주요 조작 단위클래스나 구조체의 인스턴스함수
  • 프로토콜 지향 프로그래밍 패러다임
    참조 타입인 클래스의 인스턴스보다 값 타입을 더 효율적으로 사용하며, 오류를 줄이는 패러다임이다. 프로토콜에 익스텐션을 활용할 수 있기 때문에 참조 타입의 문제에서 조금 더 자유로워질 수 있고, 다중상속이 불가능한 한계를 뛰어넘을 수 있으며, 더 나은 추상화 메커니즘을 구현할 수 있다.

💡swift의 규칙

기본 명명 규칙
모든 프로그래밍 언어가 그렇듯 스위프트 언어 자체에 명시된 규칙은 없지만 권장하는 명명법이나 코딩 규칙이 존재한다. 프로그래밍을 하다보면 종종 변수명이나 함수명을 정할 때 고민을 하는 경우가 생기는데 아래와 같은 명명법을 지킨다면 고민하는 시간을 단축할 수 있다.

  • 함수, 메서드, 인스턴스 이름은 첫 글자를 소문자로 사용하는 소문자 카멜케이스를 사용한다.
  • 클래스, 구조체, 익스텐션, 프로토콜, 열거형 이름은 타입의 이름이기 때문에 첫 글자를 대문자로 사용하는 대문자 카멜케이스를 사용한다.

세미콜론
swift에서 명령 구문 뒤에 세미콜론(;)을 붙이는 것은 선택 사항이다. 기존 프로그램밍 언어의 습관대로 세미콜론을 붙여도 상관없지만 새로운 문법에 적응하기 위해 붙이지 않기를 권장한다.

변수와 상수
변수와 상수는 특정 데이터 타입에 해당하는 값의 이름이다. 변수는 생성 후 데이터값을 변경할 수 있지만, 상수는 한번 값을 설정하면 다음에 변경할 수 없다.

  • 변수

    var [변수명]: [데이터 타입] = [값]

  • 상수

    let [상수명]: [데이터 타입] = [값]

    데이터 타입을 생략할 경우 컴파일러가 타입을 추론하여 지정하지만 자칫 잘못된 타입 추론으로 인해 오류가 생기면 골치아프니 타입 추론을 권장하지 않는다.

0개의 댓글