분류 전체보기56 [TIL] 20230321: Fetching Website Data into Memory 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. Overview remote 서버와 작은 상호작용의 경우, 응답 데이터를 메모리로 받아오기 위해서 URLSessionDataTask 클래스를 사용할 수 있다. (데이터를 직접적으로 파일 시스템에 저장하는 URLSessionDownloadTask 클래스를 사용하는 경우와 반대로) 데이터 작업은 웹 서비스 endpoint를 호출하는 것과 같은 용도에 이상적이다. URL 세션 인스턴스를 사용해서 작업을 생성할 수 있다. 만약 요구사항이 간단하다면, URLSession 클래스의 shared 인스턴스를 사용할 수 있다. 만약 델리게이트 콜백을 통한 전송과 상호작용하려면, shared 인스턴스를 사용하는 대신에 세션 하나를 만들어야할 .. 2023. 3. 25. [TIL] 20230317: Responder Chain / Touch Event 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. Touch Event Handling 사용 import UIKit class ViewController: UIViewController { var horizontalDirectionText = String() var verticalDirectionText = String() var touchLocation: CGPoint = CGPoint(x: 0, y: 0) { didSet { if touchLocation.x > oldValue.x { horizontalDirectionText = "우" } else if touchLocation.x < oldValue.x { horizontalDirectionText = "좌" } el.. 2023. 3. 18. [CODE STARTER 복습] 20230317: week01 본문은 야곰 아카데미 코드 스타터 캠프를 통해 복습한 내용을 회고한 글입니다. 11. 기본 데이터 타입 문자 타입 Character값에 유니코드 문자 사용 가능 한글도 유니코드 문자에 속하므로 swift 코드의 변수 이름으로 사용할 수 있음 문자열 타입 이니셜라이저를 통해 빈 문자열을 생성할 수 있음 var introduceText: String = String() append(): 문자열을 이어붙일 수 있음(+연산자와 같은 기능) introduceText.append("우리 강아지 이름은 ") // 우리 강아지 이름은 introduceText += "호두입니다." // 우리 강아지 이름은 호두입니다. isEmpty: String의 경우에도 빈 문자열인지 확인할 수 있음 var introduceText:.. 2023. 3. 17. [TIL] 20230314: wait()/notify(queue:) 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. wait()/notify(queue:) wait()의 경우 synchronous하게 동작하고, notify의 경우 asynchronous하게 동작한다. wait() 이전에 제출된 업무들이 끝나길 기다리는 메서드이다. wait()을 사용한 코드는 다음과 같다: import Foundation struct Printer { func printNumbersOne() { let group = DispatchGroup() let count = 10 DispatchQueue.global().async(group: group) { for number in 1...count { print(number*2 - 1) } } DispatchQu.. 2023. 3. 14. [토요스터디A반] 20230311: Protocol Oriented Programming 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. Protocol Oriented Programming STEP01 main과 Chargeable 소스파일을 만든 후 commit해준다. main.swift: typealias WattPerHour = Int typealias Watt = Int Chargeable.swift: protocol Chargeable { var maximumWattPerHour: WattPerHour { get set } func convert(chargeableWattPerHour: WattPerHour) -> WattPerHour } 그리고 STEP01을 commit 해준다. commit 해주기 이전에 POPExercise.xcodeproj파일.. 2023. 3. 13. [TIL] 20230309: Sync/Async/Blocking/Non-Blocking 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. Sync/Async/Blocking/Non-Blocking ㅇㅇ 2023. 3. 9. [TIL] 20230307: 동기/비동기/직렬/동시성, DispatchQueue 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. 동기/비동기/직렬/동시성 Sync/Async/Serial/concurrent 동기/비동기 Sync/Async 동기와 비동기는 하나의 스레드 내에서 작업을 수행하는 방식의 차이를 의미한다. 일반적인 동기와 비동기에 대한 설명은 다음과 같다: 동기 Synchronous 비동기 Asynchronous 큐에 보낸 태스크들이 완료될 때까지 기다린 후 다음 태스크를 실행하는 것을 의미한다. 요청과 그 결과가 동시에 일어난다는 것이다. 바로 요청을 하면 시간이 얼마나 걸리든 요청한 자리에서 결과가 주어져야한다. 순서에 맞춰 진행되는 장점이 있지만, 여러가지 요청을 동시에 처리할 수 없다. 설계가 매우 간단하고 직관적이라는 장점이 있다. .. 2023. 3. 7. [TIL] 20230303: 프로토콜로 id 지정하기 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. 프로토콜로 id 지정하기 다음과 같은 코드로 프로토콜을 통해 identifier를 지정할 수 있다: import UIKit protocol IdentifierType { static var identifier: String { get } } extension IdentifierType { static var identifier: String { return String(describing: self) } } extension UIViewController: IdentifierType { } extension CustomTableViewCell: IdentifierType { } IdentifierType이라는 프로토콜을 생성.. 2023. 3. 4. [컨벤션] 컨벤션 0. 기본 컨벤션은 리팩토링시 적용하는게 아니라 코드를 짜는 즉시 적용합니다. 1. 일반 1.1 임포트 파일이 필요로 하는 최소의 모듈만을 임포트 합니다. 예를 들어, Foundation으로 충분하면 UIKit은 임포트하지 않습니다. 모듈 임포트는 알파벳 순으로 정렬합니다. 내장 프레임워크를 먼저 임포트하고, 개행으로 구분해 3rd-party 프레임워크를 임포트 합니다. 1.2 개행 개행에는 공백이 포함되지 않도록 합니다. 변수 선언, 조건문, 반복문, 함수 호출 사이에 개행을 줍니다. 1.3 들여쓰기 들여쓰기는 Xcode에서 제공하는 ctrl+i 를 눌렀을 때 적용되는 space를 사용합니다. 최대 가로 길이는 100characters를 사용합니다. 1.4 띄어쓰기 콜론(:)을 사용할 때는 콜론의 오른.. 2023. 3. 3. 이전 1 2 3 4 5 ··· 7 다음