반응형

iOS/Swift 문법 29

[Swift] GCD / Queue / Sync 와Async 차이

IOS개발하면서, 동시성을 제공해 주기위해 사용할 수 있는 API에 GCD가 있습니다. API란? Application Programming Interface의 약자로 언어로 응용프로그램을 만들 때, 1000여개 이상의 함수로 구성된 운영체제와 응용프로그램의 통신에 사용되는 인터페이스입니다. GCD란? Grand Central Patch의 약자로 애플은 GCD provides and manages FIFO queues to which your application can submit tasks in the form of block objects. Work submitted to dispatch queues are executed on a pool of threads fully managed by the ..

iOS/Swift 문법 2022.03.23

[Swift] Networking, Concurrency(동시성)

Concurrency란? 한번에 여러가지 일을 수행하는 것입니다. 앱이 하는 일 사용자 인터랙션 처리 서버와 네트워킹 백그라운드에서 파일 다운로드 파일 저장하고 읽기 네트워킹 하느라 사용자 인터랙션 처리를 안해주면 사용자가 열받아 합니다. 그래서 동시성이 중요합니다. 작업1 = 사용자 인터랙션 처리 작업2 = 서버와 네트워킹 작업3 = 백그라운드에서 파일 다운로드 작업4 = 파일 저장하고 읽기 작업1 = 스레드1 작업2 = 스레드2 작업3 = 스레드3 작업4 = 스레드4 컴퓨터는 스레드 1,2,3,4를 거의 동시에(사용자가 못느끼게끔) 처리해야 합니다. 이것을 동시성이라고 합니다. 사용자 인터랙션 처리 = Main Thread -> UI표시 작업합니다. 나머지 무거운 작업들 = 나머지 234 Thread..

iOS/Swift 문법 2022.03.23

[Swift] D11, Closure 심화

Funtion(Global)과 Closure의 차이점 Funtion 이름이 있다 func 키워드 필요하다 Closure 이름 없다. func 키워드 필요가 없다. Funtion과 Closure의 공통점 인자 받을 수 있다 값 리턴할 수 있다. 변수로 할당할 수 있다 First ClassType이다. First classType이란? 변수에 할당할 수 있습니다. 인자로 받을 수 있습니다. 리턴 할 수 있습니다. Closure가 실무에서 언제 쓰일까요? Completion Block Higher Order Funtions Completion Block (=완료됐을 때 실행되야하는 블록) ex. 네트워크를 통해서 데이터를 받아온다고 할 때, 네트워크 환경에 따라 빨리, 혹은 늦게 받아질 수 있는데 그 상황이 ..

iOS/Swift 문법 2022.03.08

[Swift]D10-3 Closure

closure란?= 이름이 없는 메소드 (사전 뜻은 폐쇄) ex) ok 버튼을 눌렀을 때 수행해야 하는 코드 블록 1. 클로저는 두 가지로 이루어진 객체입니다. / 하나는 내부 함수이며, 또 다른 하나는 내부 함수가 만들어진 주변 환경입니다. 2. 클로저는 외부 함수 내에서 내부 함수를 반환하고, 내부 함수가 외부 함수의 지역 변수나 상수를 참조할 때 만들어집니다. 즉 클로저란, 내부 함수와 내부 함수에 영향을 미치는 주변 환경을 모두 포함한 '객체'입니다. 무슨 말인지 모르겠으니 예제를 통해 알아보도록 하겠습니다. Closure의 표현식은 다음과 같습니다. { (매개변수) -> 반환 타입 in 실행할 구문} 1. 두 개의 수를 곱하는 Closure을 만들어 보겠습니다. 위 표현식에 따라 어디가 Clos..

iOS/Swift 문법 2022.03.06

[Swift] 10-1 Dictionary

Dictionary란? Array와 마찬가지로 집합의 한 가지 종류인데 Dictionary는 순서가 없습니다. key와 value의 짝으로 구성되어 있습니다. 값을 의미 단위로 찾을 때 유용합니다. (Array는 순서 단위에 편리함) 1. Dictioinary로 데이터 집합을 묶는 방법 2가지 각각은 key: value 형태로 저장됩니다. 2. 실제로 데이터가 있는지 확인 해보면 chassi와 ming은 실제 key와 value값으로 들어갔기 때문에 존재하지만 ddongchul은 값을 넣어주지 않기 때문에 nil로 출력됩니다. 3. Dictionary를 다 비워보도록 하겠습니다. = [:] 가 Dictionary를 완전히 비우는 데에 사용됩니다. Array와 마찬가지로 .isEmpty는 자료 값을 확인하..

iOS/Swift 문법 2022.03.05

[Swift]9-2, Array

※Swift에서 Collection은 많은 변수들을 묶어서 관리 하는 기능입니다. Array란? 여러 변수를 관리하는 묶음의 타입입니다. (=쉽게 집합) 1. Type이 같은 Type끼리만 허용됩니다.(ex. 커피 트레이에 음료수를 담을 수는 없다.) 2. Element끼리 순번이 있습니다. / 각 Element는 index를 가지는데 0부터 시작합니다. Array를 언제 쓰는가? ex.1 순서가 있는 아이템 ex.2 아이템의 순서를 알면 유용할 때 Index란? 변수를 관리하는 묶음(집합)에 하나씩 번호 스티커를 붙여준 것인데 첫 번째 값에 0을 두 번째 값에 1을 마찬가지로 n 번째 값에 n-1의 번호스티커를 붙여준 것이고 인덱스 값으로 집합 내에 내용물을 출력할 수 있습니다. 1. 짝수를 모아놓은 ..

iOS/Swift 문법 2022.03.05

[Swift]D9-1 Optional

Optional의 기능 값이 존재 해도 존재 안해도 할당 해줄 수 있는 기능입니다. nil = 없다는 뜻입니다. ex. 차 이름을 담는 변수를 작성해라(타입은 String) '?' 가 optional 기능인데, 값이 위처럼 chacha로 있을 수도 있고 없을 수도 있다. 없으면 nil로 표기한다. Optional의 4가지 기능 1. forced unwrapping 2. if let을 이용한 Optional binding 3. guard를 이용한 Optional binding 4. 값이 없을 경우 디폴드 값을 주는 nil coalescing 하나하나 예제로 살펴보면 1. forced unwrapping 말 그대로 래핑을 까서 강제로 내용물을 보겠다는 말입니다. print(carName) 의 값은 Optio..

iOS/Swift 문법 2022.03.04

[Swift] D8, Fuction, inout

fuction은 기능을 수행하는 코드 블록 vs 매소드 오브젝트에 속해서 기능을 수행한다. method object.methodName() fuction functionName() ex. print() 기본적인 함수 틀 func 함수이름(파라미터){ } output일 때 func 함수이름(파라미터) -> 파라미터{ return returnValue } Q1 성, 이름을 받아서 fullname을 출력하는 함수 만들기 *** function 이후에 입력값을 취한다. 2. 1번에서 만든 함수에서, 파라미터 이름을 제거하고 fullname을 출력하는 함수 만들기 *** 파라미터를 간소화 해서 넣고자 할 때 '_'를 넣어준다. 3. 성, 이름을 받아서 fullname을 return하는 함수 만들기 *** retu..

iOS/Swift 문법 2022.03.03

[Swift]D7-3, Switch구문

Switch구문은 확인 하려는 변수를 앞에두고 블록 안에서 가능한 케이스를 체크하고 해당 케이스에 부합하면 출력하는 형식이다. ex. 3이라는 숫자가 (range 0~10) 1. 0인지 2. 1~9 사이 수인지 3. 10인지 switch를 사용해서 출력해봐라 먼저 판단 조건을 정해주고 그 조건이 어떤 것에 해당하는지 case를 입력해서 그 케이스에 부합하면 출력한다. ex. 동물이 dog면 "귀엽지"로 출력하고 그 외의 값이면 "무섭지"로 출력해 봐라 case입력과 default값. ex. where조건문을 사용하여 20이 짝수인지 홀수인지 출력해라 num = 20 선조건 case _ (변수 공란) where 조건 case _ where 상수 % 2 == 0: // 몫을 2로 나눠서 나머지가 0인 수(짝..

iOS/Swift 문법 2022.03.02
반응형