본문 바로가기

Swift 문서 탐방

(8)
[Swift 공부] Swift에서 옵셔널(Optional)이란 무엇이며, 언제 사용해야 하나요? 옵셔널(Optional)은 Swift에서 '값이 있을 수도 없을 수도 있는 상황'을 안전하게 처리하기 위해 도입된 데이터 타입으로, 내부적으로 열거형(enum)으로 구성되어 있습니다. 옵셔널은 .none(값이 없는 상태)과 .some(Value)(값이 있는 상태) 두 가지 케이스로 나뉘는데, 이러한 구조 덕분에 "nil이 될 가능성"을 코드 차원에서 명확히 표현할 수 있습니다. 이를 통해 런타임 오류를 예방하고 Swift의 타입 안정성을 높일 수 있습니다. 옵셔널을 사용하는 상황은 크게 두 가지로 요약할 수 있습니다. 첫 번째로, 외부에서 받은 값이나 형 변환의 결과물처럼 값의 존재 여부가 불투명한 데이터를 처리해야 할 때이고, 두 번째로 명시적으로 nil 상태를 표현해야 할 때입니다. 예를 들어 네트워..
[Swift 문서 탐방] OOP, POP에 관하여 OOP란 무엇일까?객체 지향 프로그래밍(Object-Oriented Programming, OOP)은 현실 세계의 사물을 코드로 모델링하여 문제를 해결하는 프로그래밍 패러다임입니다. OOP의 핵심은 클래스와 객체를 활용하는데 있으며, 클래스는 데이터와 동작을 정의하는 청사진이고, 객체는 이 클래스에서 생성된 실체입니다. 예를 들어, "Car"라는 클래스를 만들고 , "myCar"라는 객체를 생성해 속성(Property)과 동작(Method)를 구현할 수 있습니다. OOP의 4대 핵심 원칙OOP의 핵심 원칙으로 캡슐화, 상속, 추상화, 다형성가 있습니다.캡술화는 데이터와 메서드를  하나로 묶는 개념으로, 외부 접근을 제한하여 데이터를 보호합니다.상속은 기존 클래스의 특성을 새로운 클래스에 물려주는 개념으로..
[Swift 문서 탐방] Structures and Classes 구조체(Structure)와  클래스(Class)는 프로그램 코드의 기본적인 구성 요소로 프로퍼티(Property)와 메서드(Method)를 함게 정의하여 데이터와 기능을 묶어 관리하는 커스텀 타입입니다.Comparing Structures and Classes구조체와 클래스은 아래와 같은 공통점을 가지고 있습니다.데이터를 저장하기 위한 프로퍼티(Property)가 존재합니다.기능을 정의하기 위한 메서드(Method)가 존재합니다.서브스크립트 구문을 사용하여 값에 대한 액세스를 제공하기 위해 서브스크립트를 정의할 수 있습니다.초기값 설정을 위해 생성자(Iitializer)를 가지고 있습니다.기본 구현을 넘어 기능을 확장하도록 확장이 가능합니다.특정 종류의 표준 기능을 제공하기 위한 프로토콜을 준수합니다...
[Swift 문서 탐방] Enumerations 참고사이트https://docs.swift.org/swift-book/documentation/the-swift-programming-language/enumerations#Initializing-from-a-Raw-Value (Swift 공식 문서 - Enumerations)EnumerationsEnum은 관련된 값들을 한 그룹으로 묶어놓은 타입을 의미하며, 이 관련된 값들을 Type-safe 하게 사용할 수 있습니다.여기서 관련된 값의 타입은 String, Character, Interger, Float 등의 다양한 타입이 될 수 있습니다.(Raw Value)또한, Enum은 각각의 다른 케이스 값과 함께 저장될 모든 유형의 연관된 값(Associated Value)를  지정할 수 있습니다. 마지막으..
[Swift 문서 탐방] 기본 자료형(feat. CS)(작성중) StringString은 일련의 Character들로 이루어진 데이터 타입으로, Copy-on-Write(CoW) 기법을 통해 메모리 성능 최적화합니다. 추가적으로 String을 이루는 Character들은 Extended Grapheme Cluster(확장된 문자소 클러스터)로 이루어져 있으며, 또 이 Extended Grapheme Cluster는 Unicode Scalar Value(유니코드 스칼라 값)들로 이루어져 있습니다.Copy-on-Write(CoW)Copy-on-Write 기법은 말 그대로 쓰기 작업이 일어날 때 복사가 된다는 의미입니다.String에서는 CoW 전략을 사용할 때 버퍼(Buffer)에 데이터를 임시로 저장합니다. 만약 이 버퍼를 여러 다른 문자열 인스턴스가 참조하고 있을 경..
[Swift 문서 탐방] Swift 기본 타입(2) - String과 Character String은 "hello, world" 또는 "albatross"와 같이 일련의 Character들로 이루어집니다. String과 Character은 빠르며, 유니코드와 호환되는 방식으로 텍스트를 다룹니다. 여기에 String간의 연결은 단순히 + 연산자로 연결이 가능하며, 보간법(Interpolation)을 이용하여 더 긴 문자열을 표현해줄 수 있습니다. 특히, String은 Swift 언어의 조상격인 Objective-C의 NSString과 브리징(Bridging)되어 NSString에서 정의되어 있는 메서드들을 String에서 NSString에 형변환(Casting) 과정없이 사용가능합니다.String LiteralsString Literal은 큰 따옴표("")로 묶인 문자 시퀀스(Sequence..
[Swift 문서 탐방] Swift 기본 타입(1) Swift 언어에는 기본적으로 Int, Double, Bool, String의 기본 타입과 Array, Set, Dictionary의 Collection Type을 가지고 있습니다. 여기에 여러 타입의 데이터를 한대 묶어주는 Tuple이라는 데이터 타입도 존재합니다. Swift 언어는 Optional 타입도 가지고 있습니다. 이는 값의 부재 여부를 다루며, 값이 있는지 없는지에 대한 값을 나타내 줍니다. Swift는 Type-Safe한 언어기도 합니다. 여기서 Type-Safe한 언어라는 의미는 코드에서 사용할 수 있는 값의 유형을 명확하게 알 수 있다는 것입니다. 예를 들어, String 타입이 저장되어야 할 변수 A에 Int 타입을 저장할 수 없고, 만약 실수로 할당을 시도했다면 컴파일러가 오류를 나..
[Swift 문서 탐방] ARC(Automatic Reference Counting) 정리 Swift 공식 문서 중 ARC에 관한 내용 정리입니다. ARC란?Automatic Reference Counting의 약자로, Swift 언어에서 앱의 메모리 사용에 관해 추적(track)하고, 관리(manage)해주는 모델을 의미합니다.ARC는 이름에서도 알 수 있듯이 오직 Reference 타입인 Class에서만 사용이 가능합니다.Structure나 Enumeration은 Value 타입이므로 ARC가 적용되지 않습니다. ARC 작동방식기본적으로 Class의 Instance가 생성되면, ARC는 관련된 저장 속성(Stored Property)들에 대해 메모리를 할당하고, Class의 Instance가 더 이상 사용되지 않으면, ARC는 할당되었던 메모리르 해제시킵니다. 하지만 만약 ARC가 사용중인..