일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- react
- 스위프트
- 개발자
- 호키스
- 자스민
- 계명대 이종호
- HTML
- 리액트 예제
- 호키도키
- hokeys
- Svelte
- 스벨트
- 리액트
- 자바스크립트
- 개발
- 비동기
- javascript
- 이종호
- 힛잇
- Hitit
- 자바스크립트 자료구조
- data structure
- queue
- IOS
- TDD
- hokidoki
- 계명대
- SWIFT
- 자료구조
- jest
- Today
- Total
목록스위프트 (9)
Dog foot print
비동기와 동시의 차이 학생들과 이야기 해보면 비동기 와 동시 의 의미를 헷갈리는 경우가 종종 존재한다. Serial 과 Concurrent를 설명하기 전에 집고 넘어가도록 하자. 비동기는 말그대로 어떤 작업을 기다리지 않는다라는 의미이며, 동시라는 의미는 같은 시간에 어떤 작업이 말 그래도 동시에 일어 날 수 있는 것을 의미한다. Serial Queue SerialQueue는 순서가 중요한 작업들을 처리할 때 사용 되는 큐이다. 아래의 코드를 보도록 하자. let queue = DispatchQueue(label : "serial") queue.async{ sleep(3); print("1") } queue.async{ sleep(2); print("2") } queue.async{ sleep(1); p..
상속이란 ? 클래스에서만 가능한 기능으로 상속은 특정 클래스의 메서드와 프로퍼티를 그대로 물려 받는 것 으로 정리가 가능합니다. 그래서 상속은 정의를 물려주는 클래스와 물려 받는 클래스가 존재하는데, 각각 슈퍼 클래스 와 서브 클래스 로 불리웁니다. 이를 번역 할 때 다른 이름으로 불리기도 하는데, 이를 정리하면 다음과 같습니다. 하위클래스 == 서브클래스 == 자식클래스 == 파생 클래스 상위클래스 == 슈퍼클래스 == 부모클래스 == 기본 클래스 상속을 받기 위한 class 를 정의 하는 것은 다음과 같습니다. class [name] : [상속받을 클래스] { 정의 부분 }만약 : 옆에 있는 클래스 이외에 다른 것이 있다면 이는 protocol 구현을 위한 구문 입니다. Ex : class Super..
클로져란 ? 보통 다른 프로그래밍 언어를 배울 때 Closure를 의미하는 것은 함수가 스코프가 유지 되었을 경우, 함수 내부에 있는 변수는 메모리에서 해제 되지 않는 것 을 의미하는데, 이는 소프트웨어 아키텍쳐 적인 의미의 클로져이다. swift에서의 클로져는 익명 함수 를 의미 합니다. 익명함수는 재사용 할 가능성이 적어 특정 코드 부분에서만 사용 되는 코드 집합으로, 콜백 패턴과 더불어 사용해서 함수 내부에 필요한 시기에 코드를 실행 할 수 있다는 장점이 존재합니다. 스위프트에는 다음과 같은 3개의 클로저 객체가 존재합니다. 전역 함수 이름이 있으며 주변 환경에서 캡처할 어떤 값도 없는 클로저 중첩 함수 이름이 있으며 자신을 둘러싼 함수로부터 값을 캡처할 수 있는 클로저 클로저 표현식 이름이 없으며..
Dictionary란 key와 값이 쌍으로 이루어진 집단 자료형이다. // [키 : 값] let countries = ["korea" : "seoul"]딕셔너리 제약 하나의 키는 하나의 데이터에만 연결되어야 한다. 하나의 딕셔너리에서 키는 중복될 수 없고, 만약 이를 중복으로 처리하면 해당 키의 값이 재 할당된다. any 타입을 이용해서, value 와 key의 타입 제한을 없앨 수 있지만 다른 이를 위해 값은 항상 같은 타입의 데이터가 할당 되어야 한다. 딕셔너리는 아이템의 순서를 보장해주지 않는다. 즉 늦게 할당한 A가 B보다 뒤에 있으리라는 보장이 없다. Key는 타입 제한이 없지만, 해당 클래스가 Hashable 프로토콜을 구현해야 한다. 딕셔너리 선언과 초기화 let d_1 = ["hi" : "..
Set이란 ? Array와 다르게 Set은 공통된 값을 배열내에 저장 할 수 없는 자료구조입니다. Array를 통해 Set을 구현 할 수도 있지만, 스위프트에서는 기본 집단 자료형으로 Set을 제공합니다. 선언 및 초기화 import UIKit let countrySet : Set= ["korea","korea","usa","japan","china"]; let nonset = ["korea","korea"]; //["usa", "korea", "china", "japan"] //["korea", "korea"]Set의 리터럴은 배열과 동일한 [] 대괄호를 사용한다. 그렇기에, 타입 어노테이션으로 Set을 표시하지 않는다면, 배열로 인식되게 된다. 다음은 집합을 생성하는 다양한 예제이다. let stri..
문자열 보간법 문자열 보간법은 문자열 사이에 문자열이 아니거나 문자열인 자료형을 넣어, 동적으로 문자열을 만들어주는 방법을 의미합니다. 먼저 스위프트 보간법을 보기 전에 문자열 을 합치는 방법에 대해서 먼저 보도록 하겠습니다. 문자열과 문자열 1> let hello = "hello" 2> let world = "world" print(hello+" "+world) // hello world 출력 문자열과 문자열을 합치는 가장 고전적인 방법은 더하기 연산자를 통해, 문자열 타입을 합쳐주는 것이다. 문자열과 비문자열 let name = "lee" let age = 28 print(name+" is "+String(age)+" years old" 문자열과 비문자열을 합치기 위해서는 비문자열을 String으로 ..
자료형이란 자료형이란 어떤 값이 띄고 있는 성질이 속하는 타입을 의미한다. 아주 쉬운 예를 들면 10 + 안녕하세요. = X 수식의 X값을 구할 수 있을까 ? 구할 수 없다. 안녕하세요. 는 숫자가 아니기 때문이다. 이 처럼 동일한 숫자인듯 보이는 10과 “10”은 엄연히 다른 자료형인 숫자와 문자열이라는 타입을 가지고 있어서 연산이 가능하지 않다. 이처럼 자료형은 어떤 값이 수행 할 수 있는 연산과 기능을 달리하는데 기준이 된다. Note : Data type을 줄여 type이라 칭한다. 타입 선언과 추론 var variable : String = "hello swift"; let constants : String = "hello swift"; var ten : Int; ten = 20; ten = "..
Xcode 와 친해지기 Xcode 사양 V 12.5.1 Xcode 첫 실행 Note : 12버전 부터 Playground가 초기 실행 화면의 옵션에서 제거되고, File -> New -> Playground로 이동시 사용 가능하다. Create a new Xcode project Apple 제품에 사용되는 소프트웨어의 프로젝트를 새롭게 만들기 위한 버튼이다. Note : IpadOS가 IOS로부터 분리되었지만 현재는 IOS로 통합 되어있다. Note : 이전 11버전 까지는 Single View App이 존재하였으나, 지금은 App으로 명칭이 변경되었다. Clone an existing project Git을 사용하는 Bitbucket이나 Github와 같은 외부 저장소로 부터, 프로젝트를 클론하여 내 ..