분류 전체보기

Question. iOS에서 프로세서관리는 무엇인가? iOS에서 각각의 프로세스들은 하나 혹은 여러개의 스레드로 구성됩니다. 각각의 스레드는 단일 경로 실행의 역활을 합니다. iOS에 각각의 앱은 앱의 main 함수를 동작하는 하나의 스레드로 시작합니다. Question. 프로세스 제어블록의 구성요소의 이름을 나열해주세요 Question. 운영체제에서 프로세스 상태를 서술하세요 New: 프로세스 생성 Ready: 생성된 프로세스가 프로세서(CPU)를 할당받기를 기다리는 단계 Waiting: 프로세스가 특정 이벤트가 일어나길 기다리는 상태 Running: 명령들이 실행되는 상태 Terminated: 프로세스가 실행을 완료한 상태
Question. 스위프트가 가지고 있는 literal의 타입은 무엇이 있을까? Literal은 코드 상에서 정수, 실수, 문자열을 나타내기위한 표현 방식이다. 정수 literal 2진수 literal = 0b1001 8진수 literal = 0o11 16진수 literal = 0x8 10진수 literal = 8 실수 literal = 0.28 문자열 literal = "hello world" Question. 프로세서 관리는 무엇인가? 프로세서 관리는 프로세서들은 분석, 최적화, 제어를 위한 툴들과 자원을 제공합니다. 작업의 스케쥴링, 프로세스 스케쥴링, 인터럽트 관리를 합니다. Question. 스위프트에서 control transfer statement에 대해서 어떤 것이 있는 말해보세요. con..
처음 ios 공부를 시작하고 가장 보는 메소드는 viewDidLoad()인거 같습니다. 처음에는 "저게 뭐야.. 그냥 앱이 시작하면 동작하는 코드를 작성하는 곳이구나!"라고 지나쳤습니다. 오늘은 viewDidLoad와 같이 뷰 컨트롤러의 상태에 따라 호출되는 메소드들을 학습해 보겠습니다. View Controller Lifecycle 오늘 배울것은 "view controller liefcycle"입니다. 한국어로는 "뷰 컨트롤러 생명주기"라고 부릅니다. 코드의 의해 뷰 컨트롤러가 생겨나고 뷰 컨트롤러가 사라질때까지 특정 상태들에 따라 호출되는 메소드들 입니다. 관련 methods viewDidLoad() 보통 맨 처음으로 호출되는 함수라고 여겨짐 해당 함수는 메모리에 로드되었을때 호출 주로 정의되는 내용..
· 오픈소스
Kingfisher github에서 Kingfisher의 설명을 보면, 순수 swift라이브러리로 웹으로부터 이미지들을 다운로드와 캐싱을하기 위한 라이브러리라고 합니다. 캐싱(caching)이란? 오래 걸리는 작업의 결과물을 임시 저장소에 저장하여 사용했던 데이터를 다시 효율적으로 그리고 빠르게 사용할 수 있게 하는 통신 방식입니다. 앱 개발에서 캐싱 이미지 만약에 웹에서 이미지 url를 가지고 이미지를 다운을 받게 된다면, 요청을 하고 네트워크 환경에 따라 지연이 발생할 수 있습니다. 만약 한번 다운받은 이미지 파일을 로컬 캐시 디렉토리에 저장하게 된다면, 불필요한 네트워크 요청을 줄일 수 있습니다. Kingfisher 사용 예제 캐시 디렉토리 저장 & 이미지 뷰에 이미지 디스플레이 UIKit에서 Ki..
Responder object UIResponder의 객체는 UIKit의 이벤트핸들링에 있어 중요한 역활을 합니다. 많은 주요한 객체들은 모두 responder(응답자)의 속성을 가지고 있다. 예를 들어, UIApplication object, UIViewController objects, 모든 UIView objects(UIWindow를 포함하는) 이러한 객체들이 응답자를 가지고 있습니다. 이 말은 즉, 위에 객체들이 이벤트를 응답할 수 있다는 뜻입니다. 이벤트(터치, 모션, 프레스)가 발생하게 된다면, UIKit은 응답자는 이벤트를 받고 이벤트를 다룹니다. 이벤트들을 응답자가 다루기 위해서는 이벤트에 상응하는 동작들을 정의해주어야 합니다. 예를 들어, 터치 이벤트를 다루기 위해, touchesBega..
· Swift🐤
처음 프로그래밍에 대해서 배울 때 전역 변수, 지역 변수를 접했을 때 사용하기 편한 전역변수만 사용하고 싶은데, 선생님 아니면 선배들은 그러면 안 된다는 소리를 자주 듣곤 했습니다. 교재에서는 이것을 "스파게티 코드??"라고 말하긴 하는데 직접 와닿진 않았습니다. 그래서 이번에 그 이유에 대해서 한번 찾아보았습니다. Global VS Local 프로그래밍을 배우다 보면 변수를 선언하는 위치에 따라 전역변수, 지역변수로 나뉘게 됩니다. 이렇게 영역을 나누는 이유는 크게 4가지로 나눌 수 있습니다. 1. 변수의 범위 제한 전역변수는 프로그램 전체에서 접근이 가능하여 어디서든 사용이 가능하고 지역 변수의 경우 생성된 지역 내부에서만 접근이 가능하게 합니다. 이렇게 범위를 제한함으로써, 프로그램을 작성함에서 있..
Question. 어떻게 저장 프로퍼티를 type(class, struct, enum, protocol)에 extension을 사용해서 추가할 수 있나요? 기존에 타입에 추가적인 저장 프로퍼티를 추가하는것은 불가능합니다. 연산 프로퍼티 혹은 함수를 추가하는 것은 가능하지만 타입자체와 상속받은 타입자체를 변경하는것은 불가능합니다. 만약 저장 프로퍼티를 추가하게 된다면, 새로운 값의 추가적인 메모리가 필요하기 때문입니다. extension은 그러한 작업을 관리하지는 못합니다. Question. Half Open Range Operators가 무엇인가요? 스위프트에서는 다양한 범위 연산자를 지원합니다. 그 중에 Half Open Range Operators가 있습니다. a부터 b로 범위를 지정하게 된다면 a부..
· Swift🐤
처음 프로퍼티 옵져버를 보게 된것은 MVVM패턴을 공부하던 와중에 model view와 view controller를 binding하는 과정에서 API 요청을 받은 후에 요청값의 변화가 생겼을때 View Controller를 update하는 코드 분석할때 발견하게 되었습니다. EmployeesViewModel의 타입의 객체 생성함과 API 요청을 하고 요청값을 객체의 프로퍼티에 전달 됩니다. 이때 변화하는 순간을 관찰하고 있다 didSet 이하의 코드가 실행이 되게 됩니다. 이처럼 프로퍼티의 변화하는 순간을 관찰하고 있다가 특정 시점(did 또는 will)에 맞추어 명령어의 아래에 정의된 코드를 실행하는 것이 프로퍼티 옵져버입니다. swift 공식문서를 보면 자세히 설명되어 있습니다. 프로퍼티의 값의 ..
성실농장주
'분류 전체보기' 카테고리의 글 목록 (4 Page)