본문 바로가기

전체 글23

11. 열거형(enum)과 관련 기능 Swift에서 열거형(enum)은 관련된 값을 하나의 이름으로 그룹화하고, 그 안에서 명확한 선택지를 정의할 수 있는 타입입니다.단순한 열거뿐만 아니라 연관 값, 원시 값, 메서드 정의, 패턴 매칭 등 다양한 기능을 지원하여 매우 강력하게 활용할 수 있습니다.타입 안전성을 보장하면서도 코드의 가독성과 유지 보수성을 높이는 데 매우 유용합니다.1. 기본 열거형 정의enum Direction { case north case south case east case west}let move = Direction.northDirection이라는 열거형은 네 방향을 나타내며, 값은 점 표기법(.)으로 접근합니다.2. 축약된 선언 방식enum Direction { case north, sou.. 2025. 4. 1.
10. 이니셜라이저(initializer)의 종류와 사용법 Swift에서 이니셜라이저는 인스턴스를 생성할 때 필요한 초기 상태를 설정하는 특별한 메서드입니다. 클래스나 구조체가 인스턴스로 만들어질 때 각 프로퍼티에 초기값을 지정하고, 내부 설정을 마무리하는 역할을 합니다. Swift는 안전성을 위해 모든 저장 프로퍼티가 초기화되었는지를 컴파일 시점에 검사하며, 이를 위해 다양한 초기화 방식이 존재합니다.1. 기본 이니셜라이저 (Default Initializer)구조체 또는 클래스가 모든 저장 프로퍼티에 기본값을 가지고 있다면, Swift는 자동으로 이니셜라이저를 생성합니다.struct User { var name: String = "이름 없음" var age: Int = 0}let user = User()print(user.name) // 이름 없음.. 2025. 4. 1.
9. 접근제어(Access Control) 접근 제어는 코드의 구성 요소(클래스, 구조체, 함수, 변수 등)에 대한 외부 접근을 제어하는 기능입니다.다른 모듈이나 타입에서 특정 속성이나 메서드에 접근하는 것을 제한함으로써 코드의 캡슐화(encapsulation)를 유지하고, 의도치 않은 사용을 방지할 수 있습니다.Swift는 접근 제어를 위한 다섯 가지 수준을 제공합니다.1. 접근 제어 수준접근 수준설명open모듈 외부에서 상속, 재정의 가능 (클래스 및 클래스 멤버 전용)public모듈 외부에서 사용 가능하지만, 상속이나 재정의는 불가능internal동일 모듈 내에서만 사용 가능 (기본값)fileprivate같은 파일 내에서만 접근 가능private같은 타입 내부에서만 접근 가능Swift에서 접근 제어는 기본적으로 internal입니다. 별도로.. 2025. 3. 31.
8. 프로퍼티와 프로퍼티 옵저버 Swift에서 프로퍼티(Property)는 클래스나 구조체, 열거형에 포함된 값(데이터)을 저장하거나 계산하는 데 사용되는 변수 또는 상수입니다.Swift는 세 가지 종류의 프로퍼티를 제공합니다: 저장 프로퍼티(stored property), 계산 프로퍼티(computed property), 그리고 프로퍼티 옵저버(property observer)입니다.프로퍼티는 객체의 상태를 표현하며, 프로퍼티 옵저버를 통해 값의 변경을 감지하고 이에 따른 반응을 정의할 수 있습니다.1. 저장 프로퍼티 (Stored Property)저장 프로퍼티는 인스턴스의 일부 데이터를 저장하는 변수 또는 상수입니다.구조체 또는 클래스 정의 내부에 선언하며, 인스턴스를 만들 때마다 새로운 저장 공간이 생성됩니다.struct User.. 2025. 3. 31.
7. 구조체(Struct)와 클래스(Class) Swift에서 데이터를 표현하고 다루는 데 가장 기본이 되는 두 가지 유형은 구조체(Struct)와 클래스(Class)입니다.이 둘은 매우 비슷한 문법을 갖지만, 중요한 차이점을 가지고 있으며 용도에 따라 선택적으로 사용해야 합니다.Swift는 구조체 중심 언어(structure-oriented language)로 설계되었기 때문에, 클래스보다 구조체를 더 자주 사용하게 됩니다.1. 구조체 정의와 사용구조체는 struct 키워드를 사용하여 정의하며, 프로퍼티(속성)와 메서드(함수)를 포함할 수 있습니다.struct User { var name: String var age: Int func introduce() { print("저는 \(name)이고, \(age)세입니다.") .. 2025. 3. 30.
6. 옵셔널(Optional)과 안전한 언래 Swift에서 옵셔널(Optional)은 값이 있을 수도 있고 없을 수도 있는 상태를 표현하기 위한 타입입니다. Objective-C에서 nil을 허용하는 것과는 달리, Swift는 값이 없음을 명시적으로 표현하고 이를 안전하게 처리할 수 있도록 설계되어 있습니다.옵셔널은 Swift의 안정성을 높여주는 핵심 기능 중 하나이며, 이를 잘 다루는 것이 Swift 개발의 중요한 요소입니다.1. 옵셔널 선언var name: String? = "민수"var age: Int? = nil위 코드에서 name은 String? 타입으로, 값이 존재할 수도 있고 존재하지 않을 수도 있습니다. age는 현재 nil로 초기화되어 있습니다.2. 옵셔널이 필요한 이유var city: String = "서울"// city = ni.. 2025. 3. 30.