클로저 클로저란 특정 기능을 담은 코드를 블럭으로 모아둔 형태이자, 일급 객체로 완벽한 역할을 할 수 있습니다. 일급 객체란 전달 인자로 보낼 수 있고, 변수/상수 등으로 저장하거나 전달할 수 있으며, 함수의 반환 값이 될 수도 있습니다. 실제 우리가 알고 있는 함수는 클로저의 한 형태로, 이름이 있는 클로저입니다. 기본 형태 { (매개 변수들) -> 반환 타입 in 실행 코드 } Basic Closure let simpleClosure = { print("This is SimpleClosure!!") } simpleClosure() let closureParameter = { (str: String) -> Int in return str.count } let count = closureParameter..
옵셔널(Optionals)에 대해 알아 보겠습니다. 옵셔널 옵셔널은 스위프트의 특징 중 하나인 안전성(Safe)를 담당하는 기능입니다. 다른 언어에서 볼 수 없었던 옵셔널이란 무엇일까요? 단어 뜻 그대로 옵셔널은 선택적인,즉 값이 있을수도 있고 없을 수도 있다는 뜻을 나타냅니다. 이는 변수나 상수에 나타낼 수 있는데 상수나 변수에는 꼭 값이 있다는 보장이 없죠? 값이 없을땐 nil일 수도 있다는 뜻입니다. 옵셔널? 다시 말하자면, swift에선 nil을 사용하기 위해선 옵셔널을 사용해야만 합니다. var name: String = "jinTonics" name = nil // 오류 위에 소스를 보시면 왜 nil을 넣는데 오류가 날까요? 답은 name이라는 변수가 옵셔널이 아니라서 그렇습니다. 옵셔널에서만..
접근제어(Access Control) 접근제어란 코드끼리 상호작용을 할 때 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능 입니다. 이런 접근제어가 왜 필요할까요? 객체지향 프로그래밍 패러다임에서 중요한 캡슐화와 은닉화를 구현하려면 외부에서 보이지 않거나 접근하지 말아야 할 코드가 있습니다. 불필요한 접근으로 의도치 않은 결과를 초래하거나 꼭 필요한 부분만 제공해야하는데 전체 코드가 노출될 가능 성이 있을 때 우리는 접근제어를 통해 우리가 의도한 대로 코드를 사용하는 프로그래머에게 코드를 작성 하도록 유도할 수 있습니다. Swift접근 제어 모델은 모듈과 소스파일의 개념을 기반으로 합니다. 모듈 import 를 통해 다른 모듈로부터 불러들일 수 있는 하나의 코드 묶음 단위 Library / Fram..
참조 객체지향, 함수형, 프로토콜 지향 패러다임까지 한 번에! 야곰 / 한빛미디어 프로퍼티(Property)에 대해 알아 보겠습니다. 1. 프로퍼티 프로퍼티는 크게 5가지가 존재합니다. 저장 프로퍼티(Stored Properties) 지연 저장 프로퍼티(Lazy Stroed Properties) 연산 프로퍼티(Computed Properties) 프로퍼티 감시자(Property Observers) 타입 프로퍼티(Type Properties) 1.1 저장 프로퍼티(Stored Properties) 가장 단순한 개념의 프로퍼티로써 클래스 또는 구조체의 인스턴스와 연관된 값을 저장하는 프로퍼티입니다. 구조체의 저장 프로퍼티가 옵셔널이 아니더라도, 구조체는 저장 프로퍼티를 모두 포함하는 이니셜라이저를 자동으로 ..
구조체와 클래스에 대해 알아 보겠습니다. 구조체와 클래스 구조체와 클래스는 프로그래머가 데이터를 용도에 맞게 묶어 표현하고자 할 때 용이하고, 프로퍼티와 메소드를 사용하여 구조화된 데이터와 기능을 가질 수 있어 하나의 새로운 사용자정의 데이터 타입을 만들어 주는 것입니다. 스위프트에선 구조체와 클래스의 모습과 문법이 거의 흡사 합니다. 하지만 구조체의 인스턴스는 값 타입이고, 클래스이 인스턴스는 참조 타입이라는 차이점이 있습니다. 또 중요한 점은 데이터 타입과 열거형은 모두 값 타입입니다. 1. 구조체 먼저 구조체에 대해 알아 보겠습니다. 1.1 구조체 정의 구조체는 strcut키워드로 정의 한다. struct 구조체 이름 { 프로퍼티와 메서드 } 1.2 구조체 인스터스 생성 및 초기화 구조체의 인스턴스..