Swift 의 장점에 대해서!

2023. 8. 22. 11:45swift

 

Objective-C 에서 넘어오면서 Swift의 특징은 Fast, Modern, Safe, Interactive 였다.

그리고 이후에는 Safe(안정성), Fast(신속성), Expressive(표현성)으로 변경되었다.

 

Safe(안정성), Fast(빠름), Expressive(표현)

- Safe 안정성 에 있어서 옵셔널

  • Objective-C 에서 nil 과 Null이라는 상수를 기술적으로 혼용이 가능하다. nil ->객체참조 사용, null은 그밖의 다른 포인트에 자료형
  • Objective-C에서는 변수나 프로퍼티에 nil 값을 할당할 수 있습니다. 이는 해당 변수가 값이 없음을 나타냅니다. 그러나 이것은 컴파일러나 런타임에서 강제적으로 체크되지 않습니다.

NPE

  • java 용어 이며, 프로그램이 실행되는 도중에 값이 null인 상태에서 객체에 접근하려고 할 때 발생하는 오류이다.
  • 옵젝씨에서는 변수나 프로퍼티에 `nil` 값을 할당 할 수 있었고, 이  nil 값이 객체에 대한 참조로 사용 되면 런타임 중에 애플리케이션 크래시가 발생할 수 있었습니다. 이와 같은 상황은 NPE와 비슷한 상황이며 값이 없는 상태에서 객체에 접근하려고 할 때 발생 하는 문제 이다.
  • NPE는 프로그램에서 null값으로 인해 객체에 접근할 수 없는 상황을 이다. Objective-C에서도 nill값을 가진 객체에 접근하면 유사한 런타임 오류가 발생 할 수 있다. Swift에서는 옵셔널 개념을 도입하여 문제를 사전에 방지하고 코드 안정성을 강화했다.

 

Swift에서 옵서녈 개념이 도입된 이유 중 하나는 이런 NPE 문제를 방지하고 코드 안전성을 향상 시키기 위해서 이다.

Swift에서 변수나 프로퍼티 값이 nil 일 수 있는 경우 해당 값을 옵셔널이며 컴파일러가 값이 있는지 없는지 체크하도록하며, 값이 없을 경우에 대비한 안전한 코드 작성을 강제하여 런타임 시에 NPE와 유사한 문제를 사전에 방지 할 수 있게 된다.

 

  • Expressive
  • 표현력: Swift는 표현력이 뛰어난 언어로, 간결하면서도 읽기 쉬운 문법을 제공합니다. 이러한 특징으로 코드 작성과 이해가 쉬워져 코드의 가독성과 유지보수성이 향상됩니다.

 

  • 타입추론: 다른 언어와는 다르게 타입을 추론하지않는다 타입을 정확히 정해줘야지 타입을 알고 실행이 된다 컴파일에서부터 알려준다!
  • Swift는 타입 추론을 지원합니다. 변수나 상수를 선언할 때 개발자가 타입을 명시하지 않아도, 컴파일러가 초기 값을 기반으로 해당 변수나 상수의 타입을 추론합니다. 하지만 이 추론은 컴파일 시에 이루어지며, 런타임 중에 동적으로 타입이 변경되는 것은 아닙니다.