안녕하세요. 오늘은 Swift의 서브스크립트에 대해 알아보는 시간을 갖겠습니다. 서브스크립트란? 별도의 설정자나 접근자 없이 인덱스를 통해 값을 가져오기 설정할 수 있습니다. Array에서 [index]로 접근하거나 Dictionary의 [key]로 접근하여 값을 설정하고 가져오는 문법이 바로 서브스크립트입니다. 서브스크립트 사용 문법 subscript(index: Int) -> String{ set(value){ // 생략 가능하며 newValue로 전달인자를 사용할 수 있습니다. print(index, value) } get{ return "hello world" } } 간단하죠? 만약 설정자가 필요없고 값을 가져오는 기능만 하고 싶다면 다음과 같이 선언이 가능합니다. subscript(index: ..
안녕하세요. 오늘은 Swift의 접근지정자에 대해 알아보겠습니다. 객체지향의 은닉화를 위해 접근지정자를 사용하는데요. Swift는 총 5개의 접근지정자를 가지고 있습니다. 모듈과 소스파일 Swift는 모듈과 소스파일을 기반으로 접근지정자가 설계되었습니다. 모듈은 하나의 코드의 묶음입니다. 하나의 프레임워크 하나의 라이브러리 하나의 애플리케이션이 모듈의 단위입니다. 소스파일은 .swift파일 하나의 단위입니다. Swift는 기존의 언어와 달리 하나의 .swift파일에 여러 타입을 정의할 수 있습니다. 접근지정자 Swift의 접근지정자는 총 5개로 open, public, internal, fileprivate, private로 이루어져 있습니다. public, open public은 어디서든 사용될 수 있..
안녕하세요. 오늘은 Swift의 가장 강력한 기능 중 하나이자 Rx프로그래밍을 하면 자주 사용하게 되는 클로저에 대해 알아보겠습니다. 일급 객체 일급 객체라는 말은 함수형 프로그래밍을 하다보면 자주 만나게 되는 말입니다. 아래 3가지 조건을 충족하면 1급 객체라고 할 수 있습니다. 변수나 데이터로 할당 할 수 있어야 한다. 객체의 인자로 넘길 수 있어야 한다. 객체의 반환 값으로 리턴 할 수 있어야 한다. Swift에서 함수는 일급 객체입니다. 다른 말로는 Swift에서는 함수를 인자로, 반환 값으로, 변수나 상수에 할당 할 수 있습니다. 클로저 Swift의 클로저는 함수를 블럭의 모양으로 표현하는 것입니다. Swift의 클로저는 함수의 매개변수와 반환타입을 생략할 수 있는 축약 문법을 지원하며 클로저의..
안녕하세요. 오늘은 Swift의 프로퍼티에 대해 알아보겠습니다. 먼저 이 글은 제가 경험하면서 해석한 정의이기에 오류가 있을 수 있습니다. (오류사항은 하단에 댓글로 남겨주시면 바로 수정하겠습니다!) 객체의 속성과 동작 객체 지향 프로그래밍은 객체들의 상호작용으로 하나의 커다란 문제를 해결합니다. 객체는 속성과 동작을 가지는데 속성은 그 객체가 가지고 있는 특성이며 동작은 객체가 속성을 가지도 어떠한 행동을 정의한 것이며 여러 객체의 동작의 상호작용을 통해 문제를 해결합니다. 그렇기에 객체를 생성하기 위해 속성과 동작은 필수적입니다. 오늘 말할 프로퍼티는 이 객체가 가지고 있는 특성을 Swift로 정의하는 것을 의미합니다. 프로퍼티 Swift의 프로퍼티는 3가지로 나눌 수 있습니다. 저장 프로퍼티 : 인..
안녕하세요. 오늘은 클래스와 구조체에 대해 알아보는 시간을 가지겠습니다. 클래스와 구조체 Swift는 데이터를 구조화 하거나 객체를 생성하기 위한 방법으로 클래스와 구조체라는 두가지 방법을 가지고 있습니다. 클래스와 구조체의 공통점 & 차이점 공통점 값을 저장하기 위해 프로퍼티를 정의할 수 있습니다. 기능 수행을 위해 메서드를 정의할 수 있습니다. 서브스크립트 문법을 사용할 수 있습니다. 생성자와 익스텐션을 사용할 수 있습니다. 프로토콜을 준수할 수 있습니다. 차이점 구조체는 상속할 수 없습니다. 타입캐스팅은 클래스의 인스턴스만 가능하다. 가장 큰 클래스와 구조체의 차이점은 클래스는 참조타입이며 구조체는 값타입이라는 것 입니다. 구조체는 값타입이기에 소멸자도 ARC도 적용되지 않습니다. 클래스는 참조타입..
안녕하세요. 오늘은 Swift의 강력한 기능 중 하나인 옵셔널에 대해 알아보겠습니다. nil이란? Swift에는 nil이라는 키워드가 있습니다. 기존 언어의 null과 같은 의미인 데이터 없음을 나타내는 기능입니다. 함수의 동작 중 진행 불가를 나타낼 때, 상태 없음, 데이터 없음을 나타낼 때 사용하며 만약 nil인 데이터를 작동시키면 ERROR를 나타내며 프로그램이 작동 중단을 하게 됩니다. (Java - Null Point Exeption) 이러한 문제로 인해 Safe(안전성)을 중시하는 Swift는 데이터 타입에 nil을 넣을 수 없습니다. 옵셔널이란? 옵셔널은 해당 변수 또는 함수의 반환값으로 nil(데이터 없음)이 나타날 수 있음을 명시적으로 알려줍니다. 그렇기에 옵셔널 데이터 타입으로 명시한 ..
안녕하세요. 오늘은 Swift를 통해 흐름을 제어할 수 있는 반복문과 조건문에 대해 알아봅시다. 스위프트의 흐름 제어문은 소괄호를 생략할 수 있지만 중괄호는 생략할 수 없습니다. if 문 Swift의 if 문의 조건의 값이 꼭 Bool 타입이여야 합니다. switch 문 break 키워드는 선택사항이며 case가 연속적으로 실행하도록 만드려면 fallthrough라는 키워드를 사용하면 됩니다. case에 들어갈 비교 값은 입력 값과 데이터 타입이 같아야 합니다. 비교될 값이 명확히 한정적인 값이 아닐 때에는 default를 꼭 사용하여야 합니다. 또한 where 절을 사용하여 조건을 확장할 수 있습니다. 쉼표를 사용하여 여러 값과 함께 비교할 수 있습니다. let data = 10 switch data{..
안녕하세요. 오늘은 Swift의 함수에 대해 알아보겠습니다. Swift의 특별한 점을 중점적으로 다루는 글이니 함수에 대해 알고 보시면 더욱 좋을 것 같습니다. 매개변수 이름 Swift의 함수에서 매개변수를 받는다면 매개변수 이름을 설정할 수 있습니다. name : type 와 같이 설정하여 매개변수를 받을 수 있습니다. 또한 전달인자 레이블을 설정할 수 있는데 이를 통해 밖에 보이는 매개변수 이름과 함수안에서 사용하는 매개변수 이름을 다르게 설정할 수 있습니다. name label : type 와 같이 설정할 수 있으며 전달인자 레이블은 안에서 사용하는 매개변수 이름, 매개변수 이름은 밖에 보이는 매개변수 이름 으로 정의 할 수 있습니다. 매개변수 이름을 사용하고 싶지 않다면 와일드카드 식별자를 통해 ..
안녕하세요. 오늘은 Swift의 메모리를 관리하는 ARC(자동 참조 갯수)에 대해 알아 보겠습니다. 블로그의 내용은 때로는 까칠하게님의 블로그의 내용을 각색하여 작성하였습니다. ARC 작동 방식 클래스의 새로운 인스턴스를 만들 때 ARC는 인스턴스의 정보를 저장하기 위해 메모리를 할당합니다. 또한 ARC는 인스턴스가 더 이상 사용되지 않는다고 판단하면 메모리를 해제합니다. 레퍼런스 프로퍼티에 인스턴스를 할당하면 ARC는 참조되는 프로퍼티의 갯수를 카운팅하여 참조하는 모든 변수가 인스턴스를 해제하기 전에 ARC는 인스턴스를 메모리에서 해제하지 않습니다. 강한 순환 참조 상호간의 인스턴스 안에서 서로의 인스턴스를 참조하는 프로퍼티가 있다면 두 인스턴스를 해제하여도 ARC는 두 인스턴스를 메모리에서 해제하지 ..
안녕하세요. 오늘은 Swift의 사용자 정의 연산자 부분에 대해 알아보려고 합니다. Swift는 사용자가 원하는 동작을 하는 연산자를 생성할 수 있습니다. 그렇기에 Swift에서 연산자는 부호로 표현하는 함수라고 할 수 있습니다. 연산자의 종류 연산자를 만들기 전에 Swift의 연산자 종류를 먼저 알아 보겠습니다. Swift의 연산자는 총 3 종류로 전위, 중위, 후위로 구성됩니다. 전위 연산자 연산자가 피연산자 앞에 위치하는 연산자입니다. // 대표적인 예) 논리 부정 연산자 a = !a 중위 연산자 연산자가 두 피연산자 사이에 위치하는 연산자입니다. // 대표적인 예) 기본적인 연산자들 a + b a += b a - b 후위 연산자 연산자가 피연산자 뒤에 위치하는 연산자입니다. // 대표적인 예) 옵..
- Total
- Today
- Yesterday