🍏/Swift 기초 공부(22)
-
[Swift] @_exported
@_exported import 키워드는 Swift에서 내부 모듈에서 사용된 외부 모듈을, 해당 내부 모듈을 사용하는 다른 모듈에서 별도의 import 없이 사용할 수 있게 해주는 기능입니다. 이는 모듈 간의 의존성을 관리할 때 편리함을 제공하지만, Swift 공식 문서에는 아직 내부적인 사용(_로 시작)을 의미하는 비공개 API로 분류되어 있으며, 향후 변경될 가능성이 있습니다. 사용 이유 간결성: 상위 모듈에서 하위 모듈의 기능이나 타입을 사용할 때, 모든 곳에 동일한 import 구문을 반복해서 작성할 필요가 없어 코드가 더 간결해집니다. 편의성: 특정 라이브러리나 프레임워크를 내부적으로 사용하는 모듈을 만들 때, 이 모듈을 사용하는 사용자가 내부적으로 사용된 라이브러리나 프레임워크에 대해 알 필요..
2024.04.01 -
[Swift] 불투명 반환 타입 / Equatable
보호되어 있는 글입니다.
2023.04.15 -
[Swift] (복습) Struct & Class / 구조체 & 클래스
구조체와 클래스구조체 (Struct)값 타입.애플은 성능과 안정성 측면에서 구조체 사용을 권장합니다.사용 사례:데이터를 복사해야 할 때.상속이 필요하지 않을 때.데이터를 캡슐화하면서 비교적 간단한 로직만 필요할 때.서로 연관된 몇 개의 기본 데이터 타입들을 캡슐화하여 묶는 것이 목적일 때캡슐화된 데이터에 상속이 필요하지 않을 때캡슐화된 데이터를 전달하거나 할당하는 과정에서 참조 방식보다는 값이 복사되는 것이 합리적일 때캡슐화된 원본 데이터를 보존해야 할 때클래스 (Class)참조 타입.상속, 다형성, 객체 간 데이터 공유가 필요할 때 사용합니다.사용 사례:상속이 필요할 때.여러 객체가 동일한 데이터 인스턴스를 참조해야 할 때.런타임에 객체의 생명 주기를 관리해야 할 때.구조체의 사용사례에서 벗어날 때 일..
2022.09.01 -
[Swift] (기초) Extension / 익스텐션
:: 익스텐션 :: 1. 익스텐션 익스텐션(Extension) 은 스위프트의 강력한 기능 중 하나입니다. 익스텐션은 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가 할 수 있는 기능입니다. 기능을 추가하려는 타입의 구현된 소스 코드를 알지 못하거나 볼 수 없다 해도, 타입만 알고 있다면 그 타입의 기능을 확장할 수도 있습니다. 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티 타입 메서드 / 인스턴스 메서드 이니셜라이저 서브스크립트 중첩 타입 특정 프로토콜을 준수할 수 있도록 기능 추가 ** 익스텐션은 타입에 새로운 기능을 추가할 수는 있지만, 기존에 존재하는 기능을 재정의할 수는 없습니다. 이 둘은 비슷해보이지만 실제 성격은 많이 다릅니다. 클래스의 상속은 클래스 타입에서만 가능하지만 익스텐..
2021.09.11 -
[Swift] (기초) Protocol / 프로토콜
프로토콜은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. 구조체, 클래스, 열거형은 프로토콜을 채택 해서 특정 기능을 수행하기 위한 프로토콜의 요구사항을 실제로 구현 할 수 있습니다. 어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다고 표현합니다. 타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야합니다. 즉 프로토콜은 기능을 정의하고 제시 할 뿐이지 스스로 기능을 구현 하지는 않습니다. /*프로토콜*/ //프로토콜은 특정 역할을 수행하기 위한 //메서드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의합니다. //구조체, 클래스, 열거형은 프로토콜을 채택(Adopted)해서 프로토콜의 요구사항을 실제로 구..
2021.09.01