- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- programmers
- 프로그래머스
- 알고리즘
- sort
- 프로그래머스 level1
- 디자인 패턴
- swift 알고리즘
- 스위프트
- 정렬알고리즘
- datastructure
- Algorithm
- 감성에세이
- coding test
- 프로그래머스 swift
- 다트
- 코딩테스트
- 디자인패턴
- rxswift
- Design Pattern
- 정렬 알고리즘
- swift 코딩테스트
- 코테
- 스위프트디자인패턴
- 정렬
- dart
- 자료구조
- 프로그래머스 레벨2
- swift split
- swift
- programmer
목록CS(컴퓨터 과학)/Swift (21)
Bill Kim's Life...
Swift5의 ARC에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다. #. 개발 환경 Xcode 11.x 이상 Swift 5 Memory Management 언어마다 메모리를 관리하는 방법은 다를 수 있습니다. 메모리 관리 방법은 참조 방식을 통하여 분류할 수 있는데 참조 계산 시점에 따라서 크게 두가지 방법으로 나눠서 생각할 수 있습니다. GC(Garbage Collection) 참조 계산 시점 : Run time 장점 : 인스턴스가 해제될 확률이 비교적 높은, 특별히 규칙을 신경쓰지 않아도 됨 단점 : Run tiem에 참조를 계속 추적하므로 추가 리소스 사용 및 성능 저하가 발생할 수 있음, 개발자가 메모리 해제 시점을 예측하기 어려움 RC(Reference Counting) 참조 계산 시점 :..
Swift5의 Closure(클로저)에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다. #. 개발 환경 Xcode 11.x 이상 Swift 5 Closure 클로저는 사용자의 코드 안에서 전달되어 사용할 수 있는 로직을 가진 중괄호“{}”로 구분된 코드의 블럭이며, 일급 객체의 역할을 할 수 있습니다. 클로저의 정의를 구체적으로 살펴보면 아래와 같습니다. - 일급 객체는 전달 인자로 보낼 수 있고, 변수/상수 등으로 저장하거나 전달할 수 있으며, 함수의 반환 값이 될 수도 있다. - 클로저는 참조 타입(Reference Types)이다. - 함수는 클로저의 한 형태로, 이름이 있는 클로저이다. Closure vs Function Closure 1) 이름이 없다. 2) func 키워드가 존재하지 않는다...
Swift5의 Higher-Order Function(고차함수)에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다. #. 개발 환경 Xcode 11.x 이상 Swift 5 Higher-Order Function Higher-Order Function : 고차함수 1) 다른 함수를 전달인자로 받거나 2) 함수실행의 결과를 함수로 반환하는 함수 Swift에서는 대표적으로 아래의 고차함수 등을 제공합니다. - map - filter - reduce - flatMap - compactMap map 기존 데이터를 변형하여 새로운 컨테이너를 만들어 줍니다. 기존 데이터는 변형되지 않습니다. map은 기존의 for-in 구문과 큰 차이가 없지만, map 사용시 다음과 같은 이점이 있습니다. 장점 코드의 간결성 재사용..
Swift5의 Extensions에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다. #. 개발 환경 Xcode 11.x 이상 Swift 5 Extensions Swift에서는 익스텐션(Extensions)를 이용하여 클래스, 구조체, 열거형 혹은 프로토콜 타입에 대한 기능을 확장할 수 있습니다. 익스텐션은 타입에 새 기능을 추가할 수 있지만 오버라이드는 할 수 없습니다. 익스텐션을 활용하여 아래와 같은 기능을 할 수 있습니다. 1) 계산된 인스턴스 프로퍼티와 계산된 타입 프로퍼티의 추가 2) 인스턴스 메소드와 타입 메소드의 추가 3) 새로운 이니셜라이저 제공 4) 서브스크립트 정의 5) 중첩 타입의 선언과 사용 6) 특정 프로토콜을 따르는 타입 만들기 7) 코드를 분리 Extension Syntax E..
Swift5의 Protocol(프로토콜)에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다. #. 개발 환경 Xcode 11.x 이상 Swift 5 Protocols 프로토콜은 특정 기능 수행에 필수적인 요수를 청의한 청사진(blueprint)입니다. 프로토콜을 만족시키는 타입을 프로토콜을 따른다(conform)고 말합니다. 프로토콜에 필수 구현을 추가하거나 추가적인 기능을 더하기 위해 프로토콜을 확장(extend)하는 것이 가능합니다. Protocol Syntax 프로토콜의 정의는 클래스, 구조체, 열거형 등과 유사합니다. protocol SomeProtocol { // protocol definition goes here } struct SomeStructure: SomeProtocol { // st..
Swift5의 Tuple에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다. #. 개발 환경 Xcode 11.x 이상 Swift 5 Tuple 사전적 의미 튜플(Tuple) 이란 유한 개의 사물의 순서있는 열거 Swift에서의 튜플은 다양한 값(데이터)의 묶음이다. 튜플의 구성 요소들은 서로 다른 타입이 가능하며 개수도 사용하고 싶은 만큼 사용이 가능합니다. Tuple Basic Usage 튜틀의 기본 사용은 () 안에 다양한 데이터 값을 넣어주면 됩니다. var tuple:(String, Int, Bool) = ("Bill", 100, true) var simpleTuple = ("Joyce", 200, false) // 추론을 통한 데이터 타입을 생략 print(tuple.0) // Bill prin..
Swift5의 Type Inference에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다. #. 개발 환경 Xcode 11.x 이상 Swift 5 Inference 추론은 이미 알고 있는 또는 확인된 정보로부터 논리적 결론을 도출하는 행위 또는 과정이다. 따라서 추론은 '어떠한 판단을 근거로 삼아 다른 판단을 이끌어 내는 것’이라고 할 수 있습니다. Type Inference Swift에서의 타입 추론은 애플에서도 Swift의 강력한 기능이라고 소개하고 있다. 타입 추론은 변수나 상수를 생성할 때 데이터 타입을 생략하면 컴파일러가 변수 값의 타입을 추론하여 타입을 지정한다. let name1: String = “Bill Kim” // String 타입으로 상수 선언 let name2 = “Joyce” ..
Swift5의 Subscripts에 대해서 그 정의와 사용 방법에 대해서 살펴봅니다. #. 개발 환경 Xcode 11.x 이상 Swift 5 Subscripts 콜렉션, 리스트, 시퀀스 등 집합의 특정 멤버 엘리먼트에 간단하게 접근할 수 있도록 해주는 문법 서브스크립트를 이용하면 간편하게 추가적인 메소드 없이 특정 값을 할당하거나 가져올 수 있게된다. 즉 내가 원하는 값을 쉽게 찾기 위해 정의하는 문법을 서브스크립트 (예 : array[1] 과 같이, array에도 이미 내부에 서브스크립트가 구현되어 있음) Subscript Syntax 기본적인 서브스크립트 문법은 아래 코드와 같이 subscript 지시어와 함께 get, set을 정의하여 사용할 수 있습니다. struct TimesTable { let..