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